Skip to content

Commit 7c5f363

Browse files
committed
[✨] Added a custom item for bed home
1 parent 29493f9 commit 7c5f363

6 files changed

Lines changed: 42 additions & 6 deletions

File tree

src/main/java/fr/snipertvmc/essentialsxgui/infrastructure/models/files/InventoryFile.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,8 @@ public Map<String, String> getPlaceholders() {
208208
"value_materialHomeItem", "GRASS",
209209
"value_materialAdminModeItem", "EYE_OF_ENDER",
210210
"value_materialCreateHomeItem", "PISTON_BASE",
211-
"value_materialCreateKitItem", "PISTON_BASE"
211+
"value_materialCreateKitItem", "PISTON_BASE",
212+
"value_materialBedHomeItem", "BED"
212213
);
213214
}
214215

@@ -221,7 +222,8 @@ public Map<String, String> getPlaceholders() {
221222
"value_materialHomeItem", "GRASS_BLOCK",
222223
"value_materialAdminModeItem", "ENDER_EYE",
223224
"value_materialCreateHomeItem", "PISTON",
224-
"value_materialCreateKitItem", "PISTON"
225+
"value_materialCreateKitItem", "PISTON",
226+
"value_materialBedHomeItem", "RED_BED"
225227
);
226228
}
227229
}

src/main/java/fr/snipertvmc/essentialsxgui/infrastructure/models/inventories/homes/EXGHomesInventoryConfig.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ public EXGHomesInventoryConfig(String title, int rows, EXGItemConfig borderItems
3838
public EXGItemConfig getHomeItem() {
3939
return homeItem;
4040
}
41+
public EXGItemConfig getBedHomeItem() {
42+
return homeItem;
43+
}
4144
public EXGItemConfig getNoHomesItem() {
4245
return noHomesItem;
4346
}
@@ -71,6 +74,9 @@ public InventoryScheme getInventoryScheme() {
7174
public void setHomeItem(EXGItemConfig homeItem) {
7275
this.homeItem = homeItem;
7376
}
77+
public void setBedHomeItem(EXGItemConfig homeItem) {
78+
this.homeItem = homeItem;
79+
}
7480
public void setNoHomesItem(EXGItemConfig noHomesItem) {
7581
this.noHomesItem = noHomesItem;
7682
}
@@ -111,6 +117,7 @@ public EXGHomesInventoryConfig copy() {
111117
);
112118

113119
copy.setHomeItem(this.getHomeItem().duplicate());
120+
copy.setBedHomeItem(this.getBedHomeItem().duplicate());
114121
copy.setNoHomesItem(this.getNoHomesItem().duplicate());
115122

116123
copy.setCreateHomeItem(this.getCreateHomeItem().duplicate());

src/main/java/fr/snipertvmc/essentialsxgui/inventories/homes/HomesInventory.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import fr.snipertvmc.essentialsxgui.infrastructure.models.EXGHome;
88
import fr.snipertvmc.essentialsxgui.infrastructure.models.inventories.homes.EXGHomesInventoryConfig;
99
import fr.snipertvmc.essentialsxgui.infrastructure.models.inventories.structure.EXGItemConfig;
10-
import fr.snipertvmc.essentialsxgui.utilities.ConsoleLogger;
1110
import fr.snipertvmc.essentialsxgui.utilities.MessagesUtils;
1211
import fr.snipertvmc.essentialsxgui.utilities.other.SoundsUtils;
1312
import org.bukkit.Bukkit;
@@ -97,6 +96,21 @@ public HomesInventory(Player player) {
9796
addContent(config.getNoHomesItem().build());
9897
}
9998

99+
if (player.hasPermission("essentials.home.bed") && config.getBedHomeItem().isEnabled()) {
100+
setItem(config.getBedHomeItem().getSlot(), config.getBedHomeItem()
101+
.updateVariables(Map.of("player", player.getName()))
102+
.build(), e -> {
103+
104+
if (player.hasPermission("essentials.home.bed")) {
105+
player.performCommand("essentials:home bed");
106+
return;
107+
}
108+
109+
player.sendMessage(MessagesUtils.get(EXGMessage.NO_PERMISSION, null));
110+
SoundsUtils.playSound(player, EXGSound.ACTION_FAILURE);
111+
});
112+
}
113+
100114

101115
if (config.getCreateHomeItem().isEnabled()) {
102116
setItem(config.getCreateHomeItem().getSlot(), config.getCreateHomeItem()

src/main/java/fr/snipertvmc/essentialsxgui/managers/FilesManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public class FilesManager {
4848
"messages", "1.0",
4949

5050
"homeEditing", "1.0",
51-
"homes", "1.0",
51+
"homes", "1.1",
5252

5353
"kitsAdminView", "1.0",
5454
"kitsPlayerView", "1.0",

src/main/java/fr/snipertvmc/essentialsxgui/managers/InventoriesManager.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ private void loadHomesInventory(String title, int rows, String inventoryName, EX
7171

7272
homesInventoryConfig.setHomeItem(inventoryFile.getItem(
7373
"homeItem"));
74+
homesInventoryConfig.setBedHomeItem(inventoryFile.getItem(
75+
"bedHomeItem"));
7476
homesInventoryConfig.setNoHomesItem(inventoryFile.getItem(
7577
"noHomesItem"));
7678
homesInventoryConfig.setCreateHomeItem(inventoryFile.getItem(

src/main/resources/inventories/homes/homes.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
############################################################
2020

2121
# Please do not change this value as it may cause the file to be reset.
22-
# Default: "1.0"
23-
config-version: "1.0"
22+
# Default: "1.1"
23+
config-version: "1.1"
2424

2525
############################################################
2626
# +------------------------------------------------------+ #
@@ -70,6 +70,17 @@ homes:
7070
- ""
7171
- "&7Home Name: &f&o{homeName}"
7272

73+
bedHomeItem:
74+
enabled: true
75+
material: "%%value_materialBedHomeItem%%"
76+
slot: 8
77+
displayName: "&2Bed Home"
78+
lore:
79+
- "&7The bed home is an automatic home"
80+
- "&7set when you sleep in a bed."
81+
- ""
82+
- "&f&lRight Click &7to teleport to your bed home."
83+
7384
# 'slot' value will be ignored in this section. The item will be placed in the first slot like a kit item.
7485
# The item will be displayed if the player doesn't have any homes set.
7586
noHomesItem:

0 commit comments

Comments
 (0)