Skip to content

Commit 73152a5

Browse files
committed
Added a customizable to change round amount and added customization for kit rules
1 parent ed6923b commit 73152a5

22 files changed

Lines changed: 268 additions & 29 deletions

Plugin/src/main/java/dev/lrxh/neptune/configs/ConfigService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public class ConfigService {
2121
private ConfigFile armorTrimsConfig;
2222
private ConfigFile shieldPatternsConfig;
2323
private ConfigFile soundsConfig;
24+
private ConfigFile signsConfig;
2425

2526
public static ConfigService get() {
2627
if (instance == null) instance = new ConfigService();
@@ -42,6 +43,7 @@ public void load() {
4243
armorTrimsConfig = new ConfigFile("armor-trims");
4344
soundsConfig = new ConfigFile("sounds");
4445
shieldPatternsConfig = new ConfigFile("shield-patterns");
46+
signsConfig = new ConfigFile("signs");
4547

4648
initialize();
4749
}
@@ -54,6 +56,7 @@ public void initialize() {
5456
ScoreboardLocale.TITLE.load();
5557
CosmeticsLocale.LIGHTNING_DISPLAY_NAME.load();
5658
SoundsLocale.MATCH_START.load();
59+
SignsLocale.CUSTOM_KIT_NAME.load();
5760

5861
HotbarLocale.LOBBY_PARTY_CREATE_NAME.update();
5962
MessagesLocale.MATCH_FOUND.update();
@@ -62,5 +65,6 @@ public void initialize() {
6265
ScoreboardLocale.TITLE.update();
6366
CosmeticsLocale.LIGHTNING_DISPLAY_NAME.update();
6467
SoundsLocale.MATCH_START.update();
68+
SignsLocale.CUSTOM_KIT_NAME.update();
6569
}
6670
}

Plugin/src/main/java/dev/lrxh/neptune/configs/impl/MenusLocale.java

Lines changed: 91 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,95 @@ public enum MenusLocale implements IDataAccessor {
636636

637637
CUSTOM_KIT_RULES_TITLE("CUSTOM_KIT.RULES.TITLE", DataType.STRING, "&eCustom Kit Rules"),
638638
CUSTOM_KIT_RULES_SIZE("CUSTOM_KIT.RULES.SIZE", DataType.INT, "54"),
639+
640+
KIT_RULE_HIDDEN_ENABLED_NAME("KIT_RULES.HIDDEN.ENABLED-NAME", DataType.STRING, "&aHidden"),
641+
KIT_RULE_HIDDEN_DISABLED_NAME("KIT_RULES.HIDDEN.DISABLED-NAME", DataType.STRING, "&cHidden"),
642+
KIT_RULE_HIDDEN_LORE("KIT_RULES.HIDDEN.LORE", DataType.STRING_LIST, "&7If the kit shouldn't appear in the queue and party events menu (Used mainly for FFA-only kits)", "", "&7Click to toggle"),
643+
KIT_RULE_HIDDEN_MATERIAL("KIT_RULES.HIDDEN.MATERIAL", DataType.STRING, "REDSTONE_TORCH"),
644+
KIT_RULE_BUILD_ENABLED_NAME("KIT_RULES.BUILD.ENABLED-NAME", DataType.STRING, "&aBuild"),
645+
KIT_RULE_BUILD_DISABLED_NAME("KIT_RULES.BUILD.DISABLED-NAME", DataType.STRING, "&cBuild"),
646+
KIT_RULE_BUILD_LORE("KIT_RULES.BUILD.LORE", DataType.STRING_LIST, "&7Allow/Deny Players to place and break blocks placed by them.", "", "&7Click to toggle"),
647+
KIT_RULE_BUILD_MATERIAL("KIT_RULES.BUILD.MATERIAL", DataType.STRING, "LAVA_BUCKET"),
648+
KIT_RULE_HUNGER_ENABLED_NAME("KIT_RULES.HUNGER.ENABLED-NAME", DataType.STRING, "&aHunger"),
649+
KIT_RULE_HUNGER_DISABLED_NAME("KIT_RULES.HUNGER.DISABLED-NAME", DataType.STRING, "&cHunger"),
650+
KIT_RULE_HUNGER_LORE("KIT_RULES.HUNGER.LORE", DataType.STRING_LIST, "&7Allow/Deny Players losing Hunger", "", "&7Click to toggle"),
651+
KIT_RULE_HUNGER_MATERIAL("KIT_RULES.HUNGER.MATERIAL", DataType.STRING, "COOKED_BEEF"),
652+
KIT_RULE_SUMO_ENABLED_NAME("KIT_RULES.SUMO.ENABLED-NAME", DataType.STRING, "&aSumo"),
653+
KIT_RULE_SUMO_DISABLED_NAME("KIT_RULES.SUMO.DISABLED-NAME", DataType.STRING, "&cSumo"),
654+
KIT_RULE_SUMO_LORE("KIT_RULES.SUMO.LORE", DataType.STRING_LIST, "&7Allow/Deny Sumo", "", "&7Click to toggle"),
655+
KIT_RULE_SUMO_MATERIAL("KIT_RULES.SUMO.MATERIAL", DataType.STRING, "LEAD"),
656+
KIT_RULE_FALL_DAMAGE_ENABLED_NAME("KIT_RULES.FALL_DAMAGE.ENABLED-NAME", DataType.STRING, "&aFall Damage"),
657+
KIT_RULE_FALL_DAMAGE_DISABLED_NAME("KIT_RULES.FALL_DAMAGE.DISABLED-NAME", DataType.STRING, "&cFall Damage"),
658+
KIT_RULE_FALL_DAMAGE_LORE("KIT_RULES.FALL_DAMAGE.LORE", DataType.STRING_LIST, "&7Allow/Deny Player to take Fall Damage", "", "&7Click to toggle"),
659+
KIT_RULE_FALL_DAMAGE_MATERIAL("KIT_RULES.FALL_DAMAGE.MATERIAL", DataType.STRING, "DIAMOND"),
660+
KIT_RULE_DENY_MOVEMENT_ENABLED_NAME("KIT_RULES.DENY_MOVEMENT.ENABLED-NAME", DataType.STRING, "&aDeny Movement"),
661+
KIT_RULE_DENY_MOVEMENT_DISABLED_NAME("KIT_RULES.DENY_MOVEMENT.DISABLED-NAME", DataType.STRING, "&cDeny Movement"),
662+
KIT_RULE_DENY_MOVEMENT_LORE("KIT_RULES.DENY_MOVEMENT.LORE", DataType.STRING_LIST, "&7Allow/Deny Movement on match start", "", "&7Click to toggle"),
663+
KIT_RULE_DENY_MOVEMENT_MATERIAL("KIT_RULES.DENY_MOVEMENT.MATERIAL", DataType.STRING, "WATER_BUCKET"),
664+
KIT_RULE_BOXING_ENABLED_NAME("KIT_RULES.BOXING.ENABLED-NAME", DataType.STRING, "&aBoxing"),
665+
KIT_RULE_BOXING_DISABLED_NAME("KIT_RULES.BOXING.DISABLED-NAME", DataType.STRING, "&cBoxing"),
666+
KIT_RULE_BOXING_LORE("KIT_RULES.BOXING.LORE", DataType.STRING_LIST, "&7Allow/Deny Boxing", "", "&7Click to toggle"),
667+
KIT_RULE_BOXING_MATERIAL("KIT_RULES.BOXING.MATERIAL", DataType.STRING, "DIAMOND_CHESTPLATE"),
668+
KIT_RULE_ALLOW_ARENA_BREAK_ENABLED_NAME("KIT_RULES.ALLOW_ARENA_BREAK.ENABLED-NAME", DataType.STRING, "&aArena Break"),
669+
KIT_RULE_ALLOW_ARENA_BREAK_DISABLED_NAME("KIT_RULES.ALLOW_ARENA_BREAK.DISABLED-NAME", DataType.STRING, "&cArena Break"),
670+
KIT_RULE_ALLOW_ARENA_BREAK_LORE("KIT_RULES.ALLOW_ARENA_BREAK.LORE", DataType.STRING_LIST, "&7Allow Players to break blocks from the arena (They need to be whitelisted)", "", "&7Click to toggle"),
671+
KIT_RULE_ALLOW_ARENA_BREAK_MATERIAL("KIT_RULES.ALLOW_ARENA_BREAK.MATERIAL", DataType.STRING, "WOODEN_AXE"),
672+
KIT_RULE_DAMAGE_ENABLED_NAME("KIT_RULES.DAMAGE.ENABLED-NAME", DataType.STRING, "&aDamage"),
673+
KIT_RULE_DAMAGE_DISABLED_NAME("KIT_RULES.DAMAGE.DISABLED-NAME", DataType.STRING, "&cDamage"),
674+
KIT_RULE_DAMAGE_LORE("KIT_RULES.DAMAGE.LORE", DataType.STRING_LIST, "&7Allow/Deny Players to take Damage", "", "&7Click to toggle"),
675+
KIT_RULE_DAMAGE_MATERIAL("KIT_RULES.DAMAGE.MATERIAL", DataType.STRING, "DIAMOND_SWORD"),
676+
KIT_RULE_SATURATION_HEAL_ENABLED_NAME("KIT_RULES.SATURATION_HEAL.ENABLED-NAME", DataType.STRING, "&aNatural Regeneration"),
677+
KIT_RULE_SATURATION_HEAL_DISABLED_NAME("KIT_RULES.SATURATION_HEAL.DISABLED-NAME", DataType.STRING, "&cNatural Regeneration"),
678+
KIT_RULE_SATURATION_HEAL_LORE("KIT_RULES.SATURATION_HEAL.LORE", DataType.STRING_LIST, "&7If Players should regen from saturation", "", "&7Click to toggle"),
679+
KIT_RULE_SATURATION_HEAL_MATERIAL("KIT_RULES.SATURATION_HEAL.MATERIAL", DataType.STRING, "GOLDEN_APPLE"),
680+
KIT_RULE_SHOW_HP_ENABLED_NAME("KIT_RULES.SHOW_HP.ENABLED-NAME", DataType.STRING, "&aShow Health"),
681+
KIT_RULE_SHOW_HP_DISABLED_NAME("KIT_RULES.SHOW_HP.DISABLED-NAME", DataType.STRING, "&cShow Health"),
682+
KIT_RULE_SHOW_HP_LORE("KIT_RULES.SHOW_HP.LORE", DataType.STRING_LIST, "&7If players should see their enemies health under their name", "", "&7Click to toggle"),
683+
KIT_RULE_SHOW_HP_MATERIAL("KIT_RULES.SHOW_HP.MATERIAL", DataType.STRING, "APPLE"),
684+
KIT_RULE_ALLOW_KIT_EDITOR_ENABLED_NAME("KIT_RULES.ALLOW_KIT_EDITOR.ENABLED-NAME", DataType.STRING, "&aAllow Kit Editor"),
685+
KIT_RULE_ALLOW_KIT_EDITOR_DISABLED_NAME("KIT_RULES.ALLOW_KIT_EDITOR.DISABLED-NAME", DataType.STRING, "&cAllow Kit Editor"),
686+
KIT_RULE_ALLOW_KIT_EDITOR_LORE("KIT_RULES.ALLOW_KIT_EDITOR.LORE", DataType.STRING_LIST, "&7If players should be able to modify this kit in kiteditor.", "", "&7Click to toggle"),
687+
KIT_RULE_ALLOW_KIT_EDITOR_MATERIAL("KIT_RULES.ALLOW_KIT_EDITOR.MATERIAL", DataType.STRING, "WOODEN_AXE"),
688+
KIT_RULE_ALLOW_PARTY_ENABLED_NAME("KIT_RULES.ALLOW_PARTY.ENABLED-NAME", DataType.STRING, "&aAllow Party Events"),
689+
KIT_RULE_ALLOW_PARTY_DISABLED_NAME("KIT_RULES.ALLOW_PARTY.DISABLED-NAME", DataType.STRING, "&cAllow Party Events"),
690+
KIT_RULE_ALLOW_PARTY_LORE("KIT_RULES.ALLOW_PARTY.LORE", DataType.STRING_LIST, "&7If players should be able to play this kit in party events.", "", "&7Click to toggle"),
691+
KIT_RULE_ALLOW_PARTY_MATERIAL("KIT_RULES.ALLOW_PARTY.MATERIAL", DataType.STRING, "PARROT_SPAWN_EGG"),
692+
KIT_RULE_BED_WARS_ENABLED_NAME("KIT_RULES.BED_WARS.ENABLED-NAME", DataType.STRING, "&aBedwars"),
693+
KIT_RULE_BED_WARS_DISABLED_NAME("KIT_RULES.BED_WARS.DISABLED-NAME", DataType.STRING, "&cBedwars"),
694+
KIT_RULE_BED_WARS_LORE("KIT_RULES.BED_WARS.LORE", DataType.STRING_LIST, "&7Allow/Deny Bedwars", "", "&7Click to toggle"),
695+
KIT_RULE_BED_WARS_MATERIAL("KIT_RULES.BED_WARS.MATERIAL", DataType.STRING, "RED_BED"),
696+
KIT_RULE_PARKOUR_ENABLED_NAME("KIT_RULES.PARKOUR.ENABLED-NAME", DataType.STRING, "&aParkour"),
697+
KIT_RULE_PARKOUR_DISABLED_NAME("KIT_RULES.PARKOUR.DISABLED-NAME", DataType.STRING, "&cParkour"),
698+
KIT_RULE_PARKOUR_LORE("KIT_RULES.PARKOUR.LORE", DataType.STRING_LIST, "&7Allow/Deny Parkour", "", "&7Click to toggle"),
699+
KIT_RULE_PARKOUR_MATERIAL("KIT_RULES.PARKOUR.MATERIAL", DataType.STRING, "ENDER_PEARL"),
700+
KIT_RULE_RESET_ARENA_AFTER_ROUND_ENABLED_NAME("KIT_RULES.RESET_ARENA_AFTER_ROUND.ENABLED-NAME", DataType.STRING, "&aReset Arena After Round"),
701+
KIT_RULE_RESET_ARENA_AFTER_ROUND_DISABLED_NAME("KIT_RULES.RESET_ARENA_AFTER_ROUND.DISABLED-NAME", DataType.STRING, "&cReset Arena After Round"),
702+
KIT_RULE_RESET_ARENA_AFTER_ROUND_LORE("KIT_RULES.RESET_ARENA_AFTER_ROUND.LORE", DataType.STRING_LIST, "&7If the arena should be reset after the round", "", "&7Click to toggle"),
703+
KIT_RULE_RESET_ARENA_AFTER_ROUND_MATERIAL("KIT_RULES.RESET_ARENA_AFTER_ROUND.MATERIAL", DataType.STRING, "BARRIER"),
704+
KIT_RULE_DROPPER_ENABLED_NAME("KIT_RULES.DROPPER.ENABLED-NAME", DataType.STRING, "&aDropper"),
705+
KIT_RULE_DROPPER_DISABLED_NAME("KIT_RULES.DROPPER.DISABLED-NAME", DataType.STRING, "&cDropper"),
706+
KIT_RULE_DROPPER_LORE("KIT_RULES.DROPPER.LORE", DataType.STRING_LIST, "&7Allow/Deny Dropper", "", "&7Click to toggle"),
707+
KIT_RULE_DROPPER_MATERIAL("KIT_RULES.DROPPER.MATERIAL", DataType.STRING, "DROPPER"),
708+
KIT_RULE_ENDERPEARL_COOLDOWN_ENABLED_NAME("KIT_RULES.ENDERPEARL_COOLDOWN.ENABLED-NAME", DataType.STRING, "&aEnderpearl cooldown"),
709+
KIT_RULE_ENDERPEARL_COOLDOWN_DISABLED_NAME("KIT_RULES.ENDERPEARL_COOLDOWN.DISABLED-NAME", DataType.STRING, "&cEnderpearl cooldown"),
710+
KIT_RULE_ENDERPEARL_COOLDOWN_LORE("KIT_RULES.ENDERPEARL_COOLDOWN.LORE", DataType.STRING_LIST, "&7Enderpearls have a 15s delay when being used.", "", "&7Click to toggle"),
711+
KIT_RULE_ENDERPEARL_COOLDOWN_MATERIAL("KIT_RULES.ENDERPEARL_COOLDOWN.MATERIAL", DataType.STRING, "ENDER_PEARL"),
712+
KIT_RULE_SATURATION_ENABLED_NAME("KIT_RULES.SATURATION.ENABLED-NAME", DataType.STRING, "&aSaturation"),
713+
KIT_RULE_SATURATION_DISABLED_NAME("KIT_RULES.SATURATION.DISABLED-NAME", DataType.STRING, "&cSaturation"),
714+
KIT_RULE_SATURATION_LORE("KIT_RULES.SATURATION.LORE", DataType.STRING_LIST, "&7Allow/Deny Saturation from eating", "", "&7Click to toggle"),
715+
KIT_RULE_SATURATION_MATERIAL("KIT_RULES.SATURATION.MATERIAL", DataType.STRING, "ENCHANTED_GOLDEN_APPLE"),
716+
KIT_RULE_AUTO_IGNITE_ENABLED_NAME("KIT_RULES.AUTO_IGNITE.ENABLED-NAME", DataType.STRING, "&aAuto Ignite"),
717+
KIT_RULE_AUTO_IGNITE_DISABLED_NAME("KIT_RULES.AUTO_IGNITE.DISABLED-NAME", DataType.STRING, "&cAuto Ignite"),
718+
KIT_RULE_AUTO_IGNITE_LORE("KIT_RULES.AUTO_IGNITE.LORE", DataType.STRING_LIST, "&7Whether to automatically ignite TNT / creepers", "", "&7Click to toggle"),
719+
KIT_RULE_AUTO_IGNITE_MATERIAL("KIT_RULES.AUTO_IGNITE.MATERIAL", DataType.STRING, "TNT"),
720+
KIT_RULE_ROUNDS_MATERIAL("KIT_RULES.ROUNDS.MATERIAL", DataType.STRING, "GOLDEN_AXE"),
721+
KIT_RULE_ROUNDS_NAME("KIT_RULES.ROUNDS.NAME", DataType.STRING, "&eRounds: &a<rounds>"),
722+
KIT_RULE_ROUNDS_LORE("KIT_RULES.ROUNDS.LORE", DataType.STRING_LIST,
723+
"&7Players must win this many",
724+
"&7rounds to win the match.",
725+
"",
726+
"&aLeft-Click to increase",
727+
"&cRight-Click to decrease"),
639728
CUSTOM_KIT_ARENAS_TITLE("CUSTOM_KIT.ARENAS.TITLE", DataType.STRING, "&eSelect Arenas"),
640729
CUSTOM_KIT_ARENAS_SIZE("CUSTOM_KIT.ARENAS.SIZE", DataType.INT, "54"),
641730
CUSTOM_KIT_ARENAS_ITEM_NAME("CUSTOM_KIT.ARENAS.ITEM-NAME", DataType.STRING, "&f<arena>"),
@@ -693,7 +782,8 @@ public enum MenusLocale implements IDataAccessor {
693782

694783
ITEM_BROWSER_SEARCH_NAME("ITEM_BROWSER.SEARCH.NAME", DataType.STRING, "&eSearch"),
695784
ITEM_BROWSER_SEARCH_MATERIAL("ITEM_BROWSER.SEARCH.MATERIAL", DataType.STRING, "OAK_SIGN"),
696-
ITEM_BROWSER_SEARCH_SLOT("ITEM_BROWSER.SEARCH.SLOT", DataType.INT, "45");
785+
ITEM_BROWSER_SEARCH_SLOT("ITEM_BROWSER.SEARCH.SLOT", DataType.INT, "45"),
786+
ITEM_BROWSER_ITEM_LORE("ITEM_BROWSER.ITEM.LORE", DataType.STRING_LIST, "", "&eClick to select");
697787

698788
private final String path;
699789
private final String comment;
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package dev.lrxh.neptune.configs.impl;
2+
3+
import dev.lrxh.neptune.configs.ConfigService;
4+
import dev.lrxh.neptune.configs.impl.handler.DataType;
5+
import dev.lrxh.neptune.configs.impl.handler.IDataAccessor;
6+
import dev.lrxh.neptune.utils.ConfigFile;
7+
import lombok.Getter;
8+
import org.jetbrains.annotations.Nullable;
9+
10+
import java.util.ArrayList;
11+
import java.util.Arrays;
12+
import java.util.List;
13+
14+
@Getter
15+
public enum SignsLocale implements IDataAccessor {
16+
CUSTOM_KIT_NAME("CUSTOM_KIT.NAME", "Create custom kit sign lines. <input> = typed value.", DataType.STRING_LIST, "<input>", "Enter kit name"),
17+
CUSTOM_KIT_AMOUNT("CUSTOM_KIT.AMOUNT", "Custom kit item amount sign lines. <input> = typed value.", DataType.STRING_LIST, "<input>", "Enter amount", "1- 64"),
18+
CUSTOM_KIT_HEALTH("CUSTOM_KIT.HEALTH", "Custom kit health sign lines. <input> = typed value.", DataType.STRING_LIST, "<input>", "Enter max health", "1- 40"),
19+
ITEM_BROWSER_SEARCH("ITEM_BROWSER.SEARCH", "Item browser search sign lines. <input> = typed value.", DataType.STRING_LIST, "<input>", "Enter search");
20+
21+
private final String path;
22+
private final String comment;
23+
private final List<String> defaultValue = new ArrayList<>();
24+
private final DataType dataType;
25+
26+
SignsLocale(String path, @Nullable String comment, DataType dataType, String... defaultValue) {
27+
this.path = path;
28+
this.comment = comment;
29+
this.defaultValue.addAll(Arrays.asList(defaultValue));
30+
this.dataType = dataType;
31+
}
32+
33+
SignsLocale(String path, DataType dataType, String... defaultValue) {
34+
this.path = path;
35+
this.comment = null;
36+
this.defaultValue.addAll(Arrays.asList(defaultValue));
37+
this.dataType = dataType;
38+
}
39+
40+
@Override
41+
public String getHeader() {
42+
return "";
43+
}
44+
45+
@Override
46+
public ConfigFile getConfigFile() {
47+
return ConfigService.get().getSignsConfig();
48+
}
49+
50+
public void update() {}
51+
}

Plugin/src/main/java/dev/lrxh/neptune/feature/customkit/CustomKit.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public class CustomKit {
2929
private List<String> arenaNames;
3030
private List<Material> whitelistedBlocks;
3131
private double health;
32+
private int rounds = 1;
3233
private List<PotionEffect> potionEffects;
3334

3435
public CustomKit(UUID owner, String name) {
@@ -68,6 +69,7 @@ private CustomKit(UUID owner, Data d) {
6869
if (mat != null) whitelistedBlocks.add(mat);
6970
}
7071
this.health = d.health <= 0 ? 20 : d.health;
72+
this.rounds = Kit.clampRounds(d.rounds);
7173
this.potionEffects = new ArrayList<>();
7274
if (d.effects != null) for (String e : d.effects) {
7375
PotionEffect effect = PotionEffectUtils.deserialize(e);
@@ -126,7 +128,7 @@ public Kit toTransientKit() {
126128
HashMap<KitRule, Boolean> r = new HashMap<>(rules);
127129
r.put(KitRule.HIDDEN, true);
128130
return new Kit(name, displayName, new ArrayList<>(items), arenas, icon, r,
129-
0, 0, 0, 0, 0, health, new ArrayList<>(potionEffects), 1.0);
131+
0, 0, 0, 0, 0, health, new ArrayList<>(potionEffects), 1.0, rounds);
130132
}
131133

132134
public String serialize() {
@@ -141,6 +143,7 @@ public String serialize() {
141143
d.whitelist = new ArrayList<>();
142144
for (Material m : whitelistedBlocks) d.whitelist.add(m.name());
143145
d.health = health;
146+
d.rounds = rounds;
144147
d.effects = new ArrayList<>();
145148
for (PotionEffect e : potionEffects) d.effects.add(PotionEffectUtils.serialize(e));
146149
return GSON.toJson(d);
@@ -155,5 +158,6 @@ private static class Data {
155158
HashMap<String, Boolean> rules;
156159
List<String> arenas, whitelist, effects;
157160
double health;
161+
int rounds;
158162
}
159163
}

Plugin/src/main/java/dev/lrxh/neptune/feature/customkit/menu/CustomKitEditorMenu.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import dev.lrxh.neptune.API;
44
import dev.lrxh.neptune.configs.impl.MenusLocale;
55
import dev.lrxh.neptune.configs.impl.MessagesLocale;
6+
import dev.lrxh.neptune.configs.impl.SignsLocale;
67
import dev.lrxh.neptune.feature.customkit.CustomKit;
78
import dev.lrxh.neptune.feature.customkit.enchant.EnchantmentBrowserMenu;
89
import dev.lrxh.neptune.feature.itembrowser.ItemBrowserService;
@@ -71,7 +72,7 @@ public void onClick(ClickType type, Player p) {
7172
if (item != null && !item.getType().isAir()) {
7273
if (type == ClickType.SHIFT_RIGHT) {
7374
p.closeInventory();
74-
SignInputMenu.open(p, "", "Enter amount (1-64)", input -> {
75+
SignInputMenu.open(p, "", SignsLocale.CUSTOM_KIT_AMOUNT.getStringList(), input -> {
7576
try {
7677
item.setAmount(Math.max(1, Math.min(64, Integer.parseInt(input.trim()))));
7778
kit.setItemAt(contentsIndex, item);

Plugin/src/main/java/dev/lrxh/neptune/feature/customkit/menu/CustomKitManageMenu.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import dev.lrxh.neptune.API;
44
import dev.lrxh.neptune.configs.impl.MenusLocale;
55
import dev.lrxh.neptune.configs.impl.MessagesLocale;
6+
import dev.lrxh.neptune.configs.impl.SignsLocale;
67
import dev.lrxh.neptune.feature.customkit.CustomKit;
78
import dev.lrxh.neptune.feature.customkit.CustomKitService;
89
import dev.lrxh.neptune.feature.itembrowser.ItemBrowserService;
@@ -82,7 +83,7 @@ public ItemStack getItemStack(Player p) {
8283
@Override
8384
public void onClick(ClickType type, Player p) {
8485
p.closeInventory();
85-
SignInputMenu.open(p, "", "Enter max health (1-40)", input -> {
86+
SignInputMenu.open(p, "", SignsLocale.CUSTOM_KIT_HEALTH.getStringList(), input -> {
8687
try {
8788
double health = Double.parseDouble(input);
8889
if (health < 1 || health > 40) {

Plugin/src/main/java/dev/lrxh/neptune/feature/customkit/menu/CustomKitRulesMenu.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
import dev.lrxh.neptune.API;
44
import dev.lrxh.neptune.configs.impl.MenusLocale;
55
import dev.lrxh.neptune.feature.customkit.CustomKit;
6+
import dev.lrxh.neptune.game.kit.Kit;
67
import dev.lrxh.neptune.game.kit.impl.KitRule;
8+
import dev.lrxh.neptune.game.kit.menu.button.KitRoundsButton;
9+
import dev.lrxh.neptune.game.kit.menu.button.KitRuleButton;
710
import dev.lrxh.neptune.profile.impl.Profile;
8-
import dev.lrxh.neptune.utils.ItemBuilder;
911
import dev.lrxh.neptune.utils.menu.Button;
1012
import dev.lrxh.neptune.utils.menu.Filter;
1113
import dev.lrxh.neptune.utils.menu.Menu;
@@ -34,9 +36,7 @@ public List<Button> getButtons(Player player) {
3436
buttons.add(new Button(i++) {
3537
@Override
3638
public ItemStack getItemStack(Player p) {
37-
return new ItemBuilder(rule.getIcon())
38-
.name((kit.is(rule) ? "&a" : "&c") + rule.getName())
39-
.lore("&7" + rule.getDescription(), "", "&7Click to toggle").build();
39+
return KitRuleButton.buildRuleItem(rule, kit.is(rule));
4040
}
4141

4242
@Override
@@ -48,6 +48,20 @@ public void onClick(ClickType type, Player p) {
4848
}
4949
});
5050
}
51+
buttons.add(new Button(getSize() - 5) {
52+
@Override
53+
public ItemStack getItemStack(Player p) {
54+
return KitRoundsButton.buildRoundsItem(kit.getRounds());
55+
}
56+
57+
@Override
58+
public void onClick(ClickType type, Player p) {
59+
kit.setRounds(Kit.clampRounds(kit.getRounds() + (type.isRightClick() ? -1 : 1)));
60+
Profile profile = API.getProfile(p);
61+
if (profile != null) Profile.save(profile);
62+
CustomKitRulesMenu.this.update(p);
63+
}
64+
});
5165
buttons.add(new ReturnButton(getSize() - 9, new CustomKitManageMenu(kit)));
5266
return buttons;
5367
}

0 commit comments

Comments
 (0)