From 8f734eb1d13f0aa8f179a2f29d97e23047dfde0c Mon Sep 17 00:00:00 2001 From: jakub Date: Fri, 1 May 2026 17:19:46 +0200 Subject: [PATCH] =?UTF-8?q?-=20funk=C4=8Dn=C3=AD=20region=20command=20-=20?= =?UTF-8?q?p=C5=99=C3=ADprava=20men=C3=AD=C4=8Dek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xyz/soukup/ecoCraftCore/EcoCraftCore.java | 4 +- .../genericMenus/GroupSelector.java | 81 +++++++++ .../genericMenus/PlayerSelector.java | 13 +- .../ecoCraftCore/genericMenus/TextInput.java | 32 ++++ .../ecoCraftCore/gui/GuiItemBuilder.java | 25 ++- .../islands/IslandAdminCommand.java | 8 +- .../islands/IslandSelectorCommand.java | 10 +- .../{Messages.java => LangManager.java} | 63 ++++--- .../ecoCraftCore/mines/MineCommand.java | 18 +- .../ecoCraftCore/money/MoneyCommand.java | 24 +-- .../soukup/ecoCraftCore/objects/Island.java | 10 ++ .../ecoCraftCore/objects/PermissionGroup.java | 6 + .../soukup/ecoCraftCore/objects/Region.java | 18 +- .../positionMarker/MarkerCommand.java | 4 +- .../positionMarker/MarkerEvent.java | 10 +- .../regions/RegionAdminCommand.java | 14 +- .../ecoCraftCore/regions/RegionCommand.java | 110 ++++++------ .../ecoCraftCore/regions/RegionMenu.java | 163 ++++++++++++++++-- .../soukup/ecoCraftCore/shop/ShopCommand.java | 12 +- .../soukup/ecoCraftCore/shop/ShopLogic.java | 56 +++--- .../ecoCraftCore/sign/SignEditCommand.java | 26 +-- .../virtualChest/VirtualChestLogic.java | 8 +- src/main/resources/messages.yml | 22 +++ 23 files changed, 525 insertions(+), 212 deletions(-) create mode 100644 src/main/java/xyz/soukup/ecoCraftCore/genericMenus/GroupSelector.java rename src/main/java/xyz/soukup/ecoCraftCore/messages/{Messages.java => LangManager.java} (66%) diff --git a/src/main/java/xyz/soukup/ecoCraftCore/EcoCraftCore.java b/src/main/java/xyz/soukup/ecoCraftCore/EcoCraftCore.java index a843fe1..992fc82 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/EcoCraftCore.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/EcoCraftCore.java @@ -60,7 +60,7 @@ import xyz.soukup.ecoCraftCore.regions.RegionEvents; import xyz.soukup.ecoCraftCore.shop.ShopCommand; import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents; import xyz.soukup.ecoCraftCore.positionMarker.MarkerEvent; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import xyz.soukup.ecoCraftCore.shop.ShopLogic; import xyz.soukup.ecoCraftCore.sign.SignEditCommand; import xyz.soukup.ecoCraftCore.sit.LetMeSit; @@ -100,7 +100,7 @@ public final class EcoCraftCore extends JavaPlugin { try { plugin.saveConfig(); saveIslandTemplates(); - Messages.init(); + LangManager.init(); prepareDatabase(); registerCommands(); registerEvents(); diff --git a/src/main/java/xyz/soukup/ecoCraftCore/genericMenus/GroupSelector.java b/src/main/java/xyz/soukup/ecoCraftCore/genericMenus/GroupSelector.java new file mode 100644 index 0000000..224a8cc --- /dev/null +++ b/src/main/java/xyz/soukup/ecoCraftCore/genericMenus/GroupSelector.java @@ -0,0 +1,81 @@ +package xyz.soukup.ecoCraftCore.genericMenus; + +import com.github.stefvanschie.inventoryframework.gui.GuiItem; +import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; +import com.github.stefvanschie.inventoryframework.pane.OutlinePane; +import com.github.stefvanschie.inventoryframework.pane.PaginatedPane; +import com.github.stefvanschie.inventoryframework.pane.component.PagingButtons; +import com.github.stefvanschie.inventoryframework.pane.util.Slot; +import com.j256.ormlite.stmt.QueryBuilder; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import xyz.soukup.ecoCraftCore.gui.GuiItemBuilder; +import xyz.soukup.ecoCraftCore.messages.LangManager; +import xyz.soukup.ecoCraftCore.objects.PermissionGroup; +import xyz.soukup.ecoCraftCore.objects.Region; +import xyz.soukup.ecoCraftCore.objects.RegionMember; + +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +public class GroupSelector { + public static ChestGui selectGroup(Player viewer, Region region, Consumer selectAction){ + ChestGui chestGui = new ChestGui(3, LangManager.getLegacyString("gui.player-selector.title")); + PaginatedPane pane = new PaginatedPane(0,0, 9, 2); + List guiItems = new ArrayList<>(); + + chestGui.setOnGlobalClick(event -> event.setCancelled(true)); + + RegionMember regionMember = region.getRegionMember(viewer); + + if (regionMember == null){ + return null; + } + + QueryBuilder queryBuilder = PermissionGroup.getDao().queryBuilder(); + + try { + queryBuilder + .where() + .eq("region_id", region.getId()) + .and() + .lt("weight", regionMember.getPermissionGroup().getWeight()); + List groups = queryBuilder.query(); + + for (PermissionGroup group : groups){ + GuiItem guiItem = new GuiItemBuilder(group.getIcon(), + group.getName(), + group.getDescription(), + (event -> selectAction.accept(viewer))).build(); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + pane.populateWithGuiItems(guiItems); + PagingButtons pagingButtons = new PagingButtons(Slot.fromXY(0, 2),9, pane); + + chestGui.addPane(pane); + + + return chestGui; + } + + public static ChestGui selectGroup(Player viewer, Region region, Consumer selectAction, Consumer backAction){ + ChestGui chestGui = selectGroup(viewer, region, selectAction); + OutlinePane pane = new OutlinePane(4,2, 1, 1); + GuiItem backButton = new GuiItemBuilder(Material.REDSTONE, + "gui.player-selector.back-button.name", + "gui.player-selector.back-button.lore", + (event -> backAction.accept(viewer))) + .build(); + + pane.addItem(backButton); + chestGui.addPane(pane); + + return chestGui; + } +} diff --git a/src/main/java/xyz/soukup/ecoCraftCore/genericMenus/PlayerSelector.java b/src/main/java/xyz/soukup/ecoCraftCore/genericMenus/PlayerSelector.java index 4b2a8ee..c00517c 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/genericMenus/PlayerSelector.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/genericMenus/PlayerSelector.java @@ -12,17 +12,16 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.SkullMeta; import xyz.soukup.ecoCraftCore.gui.GuiItemBuilder; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import xyz.soukup.ecoCraftCore.messages.Replace; import java.util.ArrayList; import java.util.List; -import java.util.function.BiConsumer; import java.util.function.Consumer; public class PlayerSelector { - public static ChestGui selectPlayer(Player viewer, List players, BiConsumer selectAction){ - ChestGui chestGui = new ChestGui(3, Messages.getAsString("gui.player-selector.title")); + public static ChestGui selectPlayer(Player viewer, List players, Consumer selectAction){ + ChestGui chestGui = new ChestGui(3, LangManager.getLegacyString("gui.player-selector.title")); PaginatedPane pane = new PaginatedPane(0,0, 9, 2); List guiItems = new ArrayList<>(); @@ -31,14 +30,14 @@ public class PlayerSelector { for (Player player : players){ ItemStack itemStack = new ItemStack(Material.PLAYER_HEAD); SkullMeta skullMeta = (SkullMeta) itemStack.getItemMeta(); - Component name = Messages.get("gui.player-selector.name-format", new Replace("name", player.displayName())); + Component name = LangManager.get("gui.player-selector.name-format", new Replace("name", player.displayName())); skullMeta.setOwningPlayer(player); skullMeta.displayName(name); itemStack.setItemMeta(skullMeta); GuiItem guiItem = new GuiItem(itemStack); - guiItem.setAction(event -> selectAction.accept(viewer, player)); + guiItem.setAction(event -> selectAction.accept(viewer)); guiItems.add(guiItem); } @@ -51,7 +50,7 @@ public class PlayerSelector { return chestGui; } - public static ChestGui selectPlayer(Player viewer, List players, BiConsumer selectAction, Consumer backAction){ + public static ChestGui selectPlayer(Player viewer, List players, Consumer selectAction, Consumer backAction){ ChestGui chestGui = selectPlayer(viewer, players, selectAction); OutlinePane pane = new OutlinePane(4,2, 1, 1); GuiItem backButton = new GuiItemBuilder(Material.REDSTONE, diff --git a/src/main/java/xyz/soukup/ecoCraftCore/genericMenus/TextInput.java b/src/main/java/xyz/soukup/ecoCraftCore/genericMenus/TextInput.java index 09939d3..4ad75de 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/genericMenus/TextInput.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/genericMenus/TextInput.java @@ -1,4 +1,36 @@ package xyz.soukup.ecoCraftCore.genericMenus; +import io.papermc.paper.dialog.Dialog; +import io.papermc.paper.registry.data.dialog.ActionButton; +import io.papermc.paper.registry.data.dialog.DialogBase; +import io.papermc.paper.registry.data.dialog.action.DialogAction; +import io.papermc.paper.registry.data.dialog.input.DialogInput; +import io.papermc.paper.registry.data.dialog.type.DialogType; +import net.kyori.adventure.text.event.ClickCallback; +import org.bukkit.entity.Player; +import xyz.soukup.ecoCraftCore.messages.LangManager; + +import java.util.List; +import java.util.function.Consumer; + + public class TextInput { + public static Dialog textInput(Player viewer, String titleKey, String fieldDesctriptionKey, String initial , Consumer action){ + DialogAction dialogAction = DialogAction.customClick(((response, audience) -> action.accept(response.getText("input"))), ClickCallback.Options.builder().build())); + + return Dialog.create(builder -> builder.empty() + .base(DialogBase.builder(LangManager.get(titleKey)) + .inputs(List.of(DialogInput.text("input", LangManager.get(fieldDesctriptionKey)) + .initial(initial) + .maxLength(256) + .build())) + .build()) + .type(DialogType.confirmation( + ActionButton.builder(LangManager.get("gui.text-input.confirm")) + .action(dialogAction) + .build(), + ActionButton.builder(LangManager.get("gui.text-input.cancel")) + .build() + ))); + } } diff --git a/src/main/java/xyz/soukup/ecoCraftCore/gui/GuiItemBuilder.java b/src/main/java/xyz/soukup/ecoCraftCore/gui/GuiItemBuilder.java index 6ec70af..41b95bf 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/gui/GuiItemBuilder.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/gui/GuiItemBuilder.java @@ -7,7 +7,7 @@ import org.bukkit.Material; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import java.util.Arrays; import java.util.List; @@ -29,12 +29,29 @@ public class GuiItemBuilder { public GuiItemBuilder(Material material, String nameKey, String loreKey, Consumer onClick){ this.itemStack = new ItemStack(material); this.itemMeta = this.itemStack.getItemMeta(); - this.itemMeta.displayName(Messages.get(nameKey)); - this.itemMeta.lore(Arrays.stream(Messages.getAsString(loreKey).split("\\R")).map(MiniMessage.miniMessage()::deserialize).collect(Collectors.toList())); + this.itemMeta.displayName(LangManager.get(nameKey)); + this.itemMeta.lore(LangManager.getComponentList(loreKey)); this.onClick = onClick; } + public GuiItemBuilder(Material material, String nameKey, String loreKey, Consumer onClick, boolean toggle) { + this.itemStack = new ItemStack(material); + this.itemMeta = this.itemStack.getItemMeta(); + this.itemMeta.displayName(LangManager.get(nameKey)); + + List lore = LangManager.getComponentList(loreKey); + + if (toggle){ + lore.add(LangManager.get("gui.toggle.on")); + }else { + lore.add(LangManager.get("gui.toggle.off")); + } + + this.itemMeta.lore(lore); + this.onClick = onClick; + } + public GuiItemBuilder setName(Component component){ this.itemMeta.displayName(component); return this; @@ -47,7 +64,7 @@ public class GuiItemBuilder { return this; } - public GuiItemBuilder setRawLore(String rawLore){ + public GuiItemBuilder setLoreFromString(String rawLore){ List lore = Arrays.stream(rawLore.split("\\R")) .map(line -> MiniMessage.miniMessage().deserialize(line)) .collect(Collectors.toList()); diff --git a/src/main/java/xyz/soukup/ecoCraftCore/islands/IslandAdminCommand.java b/src/main/java/xyz/soukup/ecoCraftCore/islands/IslandAdminCommand.java index 458a819..6b42828 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/islands/IslandAdminCommand.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/islands/IslandAdminCommand.java @@ -17,7 +17,7 @@ import org.bukkit.entity.Player; import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; import xyz.soukup.ecoCraftCore.objects.Island; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import java.io.IOException; import java.sql.SQLException; @@ -198,7 +198,7 @@ public class IslandAdminCommand { Location spawn = player.getLocation(); String uuid = player.getWorld().getName(); islandManager.changeSpawn(spawn, uuid); - Messages.send(player, "island.setSpawn.success"); + LangManager.send(player, "island.setSpawn.success"); return 0; } @@ -208,7 +208,7 @@ public class IslandAdminCommand { IslandManager islandManager = new IslandManager(); String uuid = player.getWorld().getName(); islandManager.changeEnviroment(context.getArgument("environment", String.class), uuid); - Messages.send(player, "island.setEnvironment.success"); + LangManager.send(player, "island.setEnvironment.success"); return 0; } @@ -218,7 +218,7 @@ public class IslandAdminCommand { IslandManager islandManager = new IslandManager(); String uuid = player.getWorld().getName(); islandManager.changeBiome(context.getArgument("biome", String.class), uuid); - Messages.send(player, "island.set-biome.success"); + LangManager.send(player, "island.set-biome.success"); return 0; } diff --git a/src/main/java/xyz/soukup/ecoCraftCore/islands/IslandSelectorCommand.java b/src/main/java/xyz/soukup/ecoCraftCore/islands/IslandSelectorCommand.java index 1e88687..b6cf3cc 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/islands/IslandSelectorCommand.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/islands/IslandSelectorCommand.java @@ -21,7 +21,7 @@ import xyz.soukup.ecoCraftCore.objects.Island; import xyz.soukup.ecoCraftCore.objects.Region; import xyz.soukup.ecoCraftCore.objects.RegionMember; import xyz.soukup.ecoCraftCore.gui.GuiItemBuilder; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import java.sql.SQLException; import java.util.ArrayList; @@ -35,7 +35,7 @@ public class IslandSelectorCommand { } private static int displayIslandListSelectorGui(CommandContext context) { - String title = LegacyComponentSerializer.legacySection().serialize(Messages.get("menu.island-selector.title")); + String title = LegacyComponentSerializer.legacySection().serialize(LangManager.get("menu.island-selector.title")); HopperGui hopperGui = new HopperGui(title); hopperGui.setOnGlobalClick(event -> event.setCancelled(true)); @@ -110,7 +110,7 @@ public class IslandSelectorCommand { public static GuiItem selectorItem(String key, Material material, List islands){ GuiItemBuilder guiItemBuilder = new GuiItemBuilder(material); - guiItemBuilder.setName(Messages.get(key)); + guiItemBuilder.setName(LangManager.get(key)); GuiItem guiItem = guiItemBuilder.build(); guiItem.setAction(event -> openIslandListGui((Player) event.getWhoClicked(), islands)); return guiItem; @@ -118,7 +118,7 @@ public class IslandSelectorCommand { private static void openIslandListGui(Player player, List islands){ - String title = LegacyComponentSerializer.legacySection().serialize(Messages.get("menu.island-selector.title")); + String title = LegacyComponentSerializer.legacySection().serialize(LangManager.get("menu.island-selector.title")); ChestGui chestGui = new ChestGui(4, title); chestGui.setOnGlobalClick(event -> event.setCancelled(true)); @@ -167,7 +167,7 @@ public class IslandSelectorCommand { GuiItemBuilder guiItemBuilder = new GuiItemBuilder(material); guiItemBuilder.setName(Component.text(island.getDisplayName(), color)); - guiItemBuilder.setRawLore(island.getDescritpion()); + guiItemBuilder.setLoreFromString(island.getDescritpion()); GuiItem guiItem = guiItemBuilder.build(); guiItem.setAction(event -> { diff --git a/src/main/java/xyz/soukup/ecoCraftCore/messages/Messages.java b/src/main/java/xyz/soukup/ecoCraftCore/messages/LangManager.java similarity index 66% rename from src/main/java/xyz/soukup/ecoCraftCore/messages/Messages.java rename to src/main/java/xyz/soukup/ecoCraftCore/messages/LangManager.java index 0961674..c558fbe 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/messages/Messages.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/messages/LangManager.java @@ -10,14 +10,15 @@ import org.bukkit.configuration.file.YamlConfiguration; import java.io.File; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Objects; import static xyz.soukup.ecoCraftCore.EcoCraftCore.plugin; -public class Messages { +public class LangManager { private static YamlConfiguration messages; + private static final MiniMessage miniMessage = MiniMessage.miniMessage(); public static void init() throws IOException { File messagesFile = new File(plugin.getDataFolder(), "messages.yml"); @@ -36,11 +37,11 @@ public class Messages { public static Component get(String key) { String string = getString(key); - return MiniMessage.miniMessage().deserialize(string); + return miniMessage.deserialize(string); } - public static String getAsString(String key){ - return LegacyComponentSerializer.legacySection().serialize(Messages.get(key)); + public static String getLegacyString(String key){ + return LegacyComponentSerializer.legacySection().serialize(LangManager.get(key)); } public static Component get(String key, HashMap placeholders){ @@ -49,8 +50,7 @@ public class Messages { TagResolver.Builder resolverBuilder = TagResolver.builder(); placeholders.forEach((k, value) -> resolverBuilder.resolver(Placeholder.unparsed(k, value))); - - return MiniMessage.miniMessage().deserialize(string, resolverBuilder.build()); + return miniMessage.deserialize(string, resolverBuilder.build()); } public static Component get(String key, Replace... replaces){ @@ -77,28 +77,35 @@ public class Messages { sender.sendMessage(get(key, placeholders)); } - private static String getString(String key){ - StringBuilder string = new StringBuilder(); - - if (messages.isString(key)){ - string = new StringBuilder(Objects.requireNonNull(messages.getString(key))); - } else if (messages.isList(key)) { - - boolean isFirst = true; - - List list = messages.getStringList(key); - for (String s : list){ - if (isFirst){ - isFirst = false; - string.append(s); - }else { - string.append("\n").append(s); - } - } - }else { - string = new StringBuilder(key); + public static List getComponentList(String key){ + List componentList = new ArrayList<>(); + + for (String string : messages.getStringList(key)){ + Component component = miniMessage.deserialize(string); + componentList.add(component); + } + + return componentList; + } + + public static List getStringList(String key) { + if (!(messages.contains(key) && messages.isList(key))){ + return List.of(key); } - return string.toString(); + return messages.getStringList(key); } + + public static String getString(String key) { + if (messages.isList(key)) { + return String.join("\n", messages.getStringList(key)); + } + + if (messages.isString(key)) { + return messages.getString(key); + } + + return key; + } + } diff --git a/src/main/java/xyz/soukup/ecoCraftCore/mines/MineCommand.java b/src/main/java/xyz/soukup/ecoCraftCore/mines/MineCommand.java index f55c8ba..471249b 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/mines/MineCommand.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/mines/MineCommand.java @@ -8,7 +8,7 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; @SuppressWarnings("UnstableApiUsage") public class MineCommand { @@ -31,23 +31,23 @@ public class MineCommand { World world = MineWorldManager.getWorld(); if (world == null) { - Messages.send(sender, "mine.error.no-world"); + LangManager.send(sender, "mine.error.no-world"); return 0; } - Messages.send(sender, "mine.regenerating"); + LangManager.send(sender, "mine.regenerating"); for (Player player : world.getPlayers()) { player.teleport(player.getServer().getWorlds().getFirst().getSpawnLocation()); - Messages.send(player, "mine.teleported-out"); + LangManager.send(player, "mine.teleported-out"); } MineWorldManager.recreateWorld(newWorld -> { boolean success = MineManager.regenerate(newWorld); if (success) { - Messages.send(sender, "mine.regenerate-complete"); + LangManager.send(sender, "mine.regenerate-complete"); } else { - Messages.send(sender, "mine.error.regenerate-failed"); + LangManager.send(sender, "mine.error.regenerate-failed"); } }); return 1; @@ -58,18 +58,18 @@ public class MineCommand { World world = MineWorldManager.getWorld(); if (world == null) { - Messages.send(player, "mine.error.no-world"); + LangManager.send(player, "mine.error.no-world"); return 0; } Location spawn = MineWorldManager.getSpawnLocation(); if (spawn == null) { - Messages.send(player, "mine.error.no-world"); + LangManager.send(player, "mine.error.no-world"); return 0; } player.teleport(spawn); - Messages.send(player, "mine.teleporting"); + LangManager.send(player, "mine.teleporting"); return 1; } } diff --git a/src/main/java/xyz/soukup/ecoCraftCore/money/MoneyCommand.java b/src/main/java/xyz/soukup/ecoCraftCore/money/MoneyCommand.java index 6143474..95173be 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/money/MoneyCommand.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/money/MoneyCommand.java @@ -13,7 +13,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import xyz.soukup.ecoCraftCore.objects.Account; import xyz.soukup.ecoCraftCore.objects.Transaction; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import xyz.soukup.ecoCraftCore.messages.PHHM; @@ -70,11 +70,11 @@ public class MoneyCommand { private static int getBalance(CommandContext context) { CommandSender commandSender = context.getSource().getSender(); if (!(commandSender instanceof Player player)) { - Messages.send(commandSender, "generic.error.not-player"); + LangManager.send(commandSender, "generic.error.not-player"); return 0; } Account account = Account.getOrCreate(player); - Messages.send(player, "money.balance.self", PHHM.get(account)); + LangManager.send(player, "money.balance.self", PHHM.get(account)); return 1; } @@ -88,15 +88,15 @@ public class MoneyCommand { Account senderAccount = Account.getOrCreate(sender); if (amount > senderAccount.getBalance()) { - Messages.send(sender, "generic.error.no-funds"); + LangManager.send(sender, "generic.error.no-funds"); return 0; } Transaction transaction = new Transaction(amount, "player", sender .getName(), "player", receiver.getName(), "player"); transaction.process(); - Messages.send(sender, "money.send.player", PHHM.get(transaction)); - Messages.send(receiver, "money.receive.player", PHHM.get(transaction)); + LangManager.send(sender, "money.send.player", PHHM.get(transaction)); + LangManager.send(receiver, "money.receive.player", PHHM.get(transaction)); return 1; } @@ -110,7 +110,7 @@ public class MoneyCommand { Transaction transaction = new Transaction(amount, "admin", commandSender.getName(), "player", receiver.getName(), "admin"); transaction.process(); - Messages.send(commandSender, "money.give.player", PHHM.get(transaction)); + LangManager.send(commandSender, "money.give.player", PHHM.get(transaction)); return 1; } @@ -121,7 +121,7 @@ public class MoneyCommand { Transaction transaction = new Transaction(amount, "admin", player.getName(), "player", player.getName(), "admin"); transaction.process(); - Messages.send(player, "money.give.self", PHHM.get(transaction)); + LangManager.send(player, "money.give.self", PHHM.get(transaction)); return 1; } @@ -134,7 +134,7 @@ public class MoneyCommand { Transaction transaction = new Transaction(amount, "admin", commandSender.getName(), type, owner, "admin"); transaction.process(); - Messages.send(commandSender, "money.give.other", PHHM.get(transaction)); + LangManager.send(commandSender, "money.give.other", PHHM.get(transaction)); return 1; } @@ -147,7 +147,7 @@ public class MoneyCommand { Transaction transaction = new Transaction(amount, "player", sender.getName(), "admin", commandSender.getName(), "admin"); transaction.process(); - Messages.send(commandSender, "money.remove.player", PHHM.get(transaction)); + LangManager.send(commandSender, "money.remove.player", PHHM.get(transaction)); return 1; } @@ -158,7 +158,7 @@ public class MoneyCommand { Transaction transaction = new Transaction(amount, "player", player.getName(), "admin", player.getName(), "admin"); transaction.process(); - Messages.send(player, "money.remove.self", PHHM.get(transaction)); + LangManager.send(player, "money.remove.self", PHHM.get(transaction)); return 1; } @@ -171,7 +171,7 @@ public class MoneyCommand { Transaction transaction = new Transaction(amount, type, owner, "admin", commandSender.getName(), "admin"); transaction.process(); - Messages.send(commandSender, "money.remove.other", PHHM.get(transaction)); + LangManager.send(commandSender, "money.remove.other", PHHM.get(transaction)); return 1; } } \ No newline at end of file diff --git a/src/main/java/xyz/soukup/ecoCraftCore/objects/Island.java b/src/main/java/xyz/soukup/ecoCraftCore/objects/Island.java index 914e49f..fc850bf 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/objects/Island.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/objects/Island.java @@ -110,6 +110,16 @@ public class Island { return activeOn; } + + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public void setDescritpion(String descritpion) { + this.descritpion = descritpion; + } + public static Island findById(int id) { diff --git a/src/main/java/xyz/soukup/ecoCraftCore/objects/PermissionGroup.java b/src/main/java/xyz/soukup/ecoCraftCore/objects/PermissionGroup.java index 7aaba92..af352ac 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/objects/PermissionGroup.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/objects/PermissionGroup.java @@ -208,6 +208,10 @@ public class PermissionGroup { } } + public String getDescription() { + return description; + } + public void delete() { Dao memberDao = RegionMember.getDao(); try { @@ -219,4 +223,6 @@ public class PermissionGroup { region.dropCache(); } + + } diff --git a/src/main/java/xyz/soukup/ecoCraftCore/objects/Region.java b/src/main/java/xyz/soukup/ecoCraftCore/objects/Region.java index f8c7dc4..008b903 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/objects/Region.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/objects/Region.java @@ -9,7 +9,7 @@ import com.j256.ormlite.table.DatabaseTable; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import java.sql.SQLException; import java.util.Comparator; @@ -413,23 +413,23 @@ public class Region { } public PermissionGroup createDefaultGroupsAndReturnOwner(){ - String ownerDisplayName = Messages.getAsString("region.permission-groups.owner.name"); - String ownerDescription = Messages.getAsString("region.permission-groups.owner.description"); + String ownerDisplayName = LangManager.getString("region.permission-groups.owner.name"); + String ownerDescription = LangManager.getString("region.permission-groups.owner.description"); PermissionGroup owner = new PermissionGroup(this, "owner", ownerDisplayName, ownerDescription, Material.RED_CONCRETE, false, false, 101, 2147483647); owner.save(); - String adminDisplayName = Messages.getAsString("region.permission-groups.admin.name"); - String adminDescription = Messages.getAsString("region.permission-groups.admin.description"); + String adminDisplayName = LangManager.getString("region.permission-groups.admin.name"); + String adminDescription = LangManager.getString("region.permission-groups.admin.description"); PermissionGroup admin = new PermissionGroup(this, "admin", adminDisplayName, adminDescription, Material.YELLOW_CONCRETE, true, true, 90, 2147482623); admin.save(); - String memberDisplayName = Messages.getAsString("region.permission-groups.member.name"); - String memberDescription = Messages.getAsString("region.permission-groups.member.description"); + String memberDisplayName = LangManager.getString("region.permission-groups.member.name"); + String memberDescription = LangManager.getString("region.permission-groups.member.description"); PermissionGroup member = new PermissionGroup(this, "member", memberDisplayName, memberDescription, Material.GREEN_CONCRETE, true, true, 10, 2095231); member.save(); - String defaultDisplayName = Messages.getAsString("region.permission-groups.default"); - String defaultDescription = Messages.getAsString("region.permission-groups.default.description"); + String defaultDisplayName = LangManager.getString("region.permission-groups.default"); + String defaultDescription = LangManager.getString("region.permission-groups.default.description"); PermissionGroup defaultGroup = new PermissionGroup(this, "default", defaultDisplayName, defaultDescription, Material.GRAY_CONCRETE, true, false, 0,96); defaultGroup.save(); diff --git a/src/main/java/xyz/soukup/ecoCraftCore/positionMarker/MarkerCommand.java b/src/main/java/xyz/soukup/ecoCraftCore/positionMarker/MarkerCommand.java index d70f180..f23c0ce 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/positionMarker/MarkerCommand.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/positionMarker/MarkerCommand.java @@ -8,7 +8,7 @@ import org.bukkit.Material; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import xyz.soukup.ecoCraftCore.utilities.PDC; public class MarkerCommand { @@ -22,7 +22,7 @@ public class MarkerCommand { CommandSender commandSender = context.getSource().getSender(); if (!(commandSender instanceof Player player)){ - Messages.send(commandSender, "generic.error.not-player"); + LangManager.send(commandSender, "generic.error.not-player"); return 0; } diff --git a/src/main/java/xyz/soukup/ecoCraftCore/positionMarker/MarkerEvent.java b/src/main/java/xyz/soukup/ecoCraftCore/positionMarker/MarkerEvent.java index caba5ab..e861236 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/positionMarker/MarkerEvent.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/positionMarker/MarkerEvent.java @@ -10,7 +10,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import xyz.soukup.ecoCraftCore.utilities.PDC; import xyz.soukup.ecoCraftCore.messages.PHHM; @@ -50,7 +50,7 @@ public class MarkerEvent implements Listener { return; } chests.put(player, chest); - Messages.send(player, "marker.marked.chest", PHHM.get(chest.getLocation())); + LangManager.send(player, "marker.marked.chest", PHHM.get(chest.getLocation())); return; } @@ -60,7 +60,7 @@ public class MarkerEvent implements Listener { return; } signs.put(player, sign); - Messages.send(player, "marker.marked.sign", PHHM.get(sign.getLocation())); + LangManager.send(player, "marker.marked.sign", PHHM.get(sign.getLocation())); return; } @@ -73,7 +73,7 @@ public class MarkerEvent implements Listener { return; } primaryLocations.put(player, location); - Messages.send(player, "marker.marked.primary", PHHM.get(location)); + LangManager.send(player, "marker.marked.primary", PHHM.get(location)); return; } case RIGHT_CLICK_BLOCK -> { @@ -82,7 +82,7 @@ public class MarkerEvent implements Listener { return; } secondaryLocations.put(player, location); - Messages.send(player, "marker.marked.secondary", PHHM.get(location)); + LangManager.send(player, "marker.marked.secondary", PHHM.get(location)); return; } } diff --git a/src/main/java/xyz/soukup/ecoCraftCore/regions/RegionAdminCommand.java b/src/main/java/xyz/soukup/ecoCraftCore/regions/RegionAdminCommand.java index 08b59ba..761328b 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/regions/RegionAdminCommand.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/regions/RegionAdminCommand.java @@ -10,7 +10,7 @@ import io.papermc.paper.command.brigadier.Commands; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import xyz.soukup.ecoCraftCore.objects.Region; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import java.sql.SQLException; import java.util.List; @@ -63,16 +63,16 @@ public class RegionAdminCommand { private static int createRegion(CommandContext context) { Integer type = context.getArgument("type", Integer.class); if(!(context.getSource().getSender() instanceof Player player)){ - Messages.send(context.getSource().getSender(), "generic.error.not-player"); + LangManager.send(context.getSource().getSender(), "generic.error.not-player"); return 0; }; int status = RegionManager.createRegion(player, type, player.getName(), "player"); switch (status){ - case 0 -> Messages.send(player, "generic.success.created"); - case 1 -> Messages.send(player, "region.error.not-marked"); - case 2 -> Messages.send(player, "region.error.not-same-world"); + case 0 -> LangManager.send(player, "generic.success.created"); + case 1 -> LangManager.send(player, "region.error.not-marked"); + case 2 -> LangManager.send(player, "region.error.not-same-world"); } return 0; @@ -86,8 +86,8 @@ public class RegionAdminCommand { int status = RegionManager.addMember(id, "player", player, membership); switch (status){ - case 0 -> Messages.send(commandSender, "generic.success.created"); - case 1 -> Messages.send(commandSender, "region.error.not-exist"); + case 0 -> LangManager.send(commandSender, "generic.success.created"); + case 1 -> LangManager.send(commandSender, "region.error.not-exist"); } return 0; } diff --git a/src/main/java/xyz/soukup/ecoCraftCore/regions/RegionCommand.java b/src/main/java/xyz/soukup/ecoCraftCore/regions/RegionCommand.java index a24a81c..642eafc 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/regions/RegionCommand.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/regions/RegionCommand.java @@ -15,7 +15,7 @@ import io.papermc.paper.command.brigadier.argument.ArgumentTypes; import io.papermc.paper.command.brigadier.argument.resolvers.selector.PlayerSelectorArgumentResolver; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import xyz.soukup.ecoCraftCore.messages.Replace; import xyz.soukup.ecoCraftCore.objects.Permission; import xyz.soukup.ecoCraftCore.objects.PermissionGroup; @@ -120,10 +120,10 @@ public class RegionCommand { ItemStack itemStack = context.getArgument("icon", ItemStack.class); switch (RegionManager.changeGroupIconSafely(id, name, itemStack, player)){ - case NOT_EXIST -> Messages.send(player, "region.command.error.not-exist"); - case NOT_EXIST_GROUP -> Messages.send(player, "region.command.error.not-exist-group"); - case NO_PERMISSION -> Messages.send(player, "region.command.error.no-permission"); - case OK -> Messages.send(player, "region.command.icon-changed"); + case NOT_EXIST -> LangManager.send(player, "region.command.error.not-exist"); + case NOT_EXIST_GROUP -> LangManager.send(player, "region.command.error.not-exist-group"); + case NO_PERMISSION -> LangManager.send(player, "region.command.error.no-permission"); + case OK -> LangManager.send(player, "region.command.icon-changed"); } return 0; @@ -136,10 +136,10 @@ public class RegionCommand { String description = context.getArgument("description", String.class); switch (RegionManager.changeGroupDescriptionSafely(id, name, description, player)){ - case NOT_EXIST -> Messages.send(player, "region.command.error.not-exist"); - case NOT_EXIST_GROUP -> Messages.send(player, "region.command.error.not-exist-group"); - case NO_PERMISSION -> Messages.send(player, "region.command.error.no-permission"); - case OK -> Messages.send(player, "region.command.description-changed"); + case NOT_EXIST -> LangManager.send(player, "region.command.error.not-exist"); + case NOT_EXIST_GROUP -> LangManager.send(player, "region.command.error.not-exist-group"); + case NO_PERMISSION -> LangManager.send(player, "region.command.error.no-permission"); + case OK -> LangManager.send(player, "region.command.description-changed"); } return 0; @@ -152,10 +152,10 @@ public class RegionCommand { String displayName = context.getArgument("display-name", String.class); switch (RegionManager.changeGroupDisplayNameSafely(id, name, displayName, player)){ - case NOT_EXIST -> Messages.send(player, "region.command.error.not-exist"); - case NOT_EXIST_GROUP -> Messages.send(player, "region.command.error.not-exist-group"); - case NO_PERMISSION -> Messages.send(player, "region.command.error.no-permission"); - case OK -> Messages.send(player, "region.command.display-name-changed"); + case NOT_EXIST -> LangManager.send(player, "region.command.error.not-exist"); + case NOT_EXIST_GROUP -> LangManager.send(player, "region.command.error.not-exist-group"); + case NO_PERMISSION -> LangManager.send(player, "region.command.error.no-permission"); + case OK -> LangManager.send(player, "region.command.display-name-changed"); } return 0; @@ -170,21 +170,21 @@ public class RegionCommand { try { newOwner = newOwnerResolver.resolve(context.getSource()).getFirst(); } catch (CommandSyntaxException e) { - Messages.send(player, "region.command.error.not-exist"); + LangManager.send(player, "region.command.error.not-exist"); return 1; } if (!context.getInput().endsWith("confirm")){ - Messages.send(player, "region.command.confirm-warning.transfer-ownership", + LangManager.send(player, "region.command.confirm-warning.transfer-ownership", new Replace("id", String.valueOf(id)), new Replace("name", newOwner.getName())); return 1; } switch (RegionManager.transferOwnershipSafely(id, player, newOwner)){ - case NO_PERMISSION -> Messages.send(player, "region.command.error.no-permission"); - case NOT_EXIST -> Messages.send(player, "region.command.error.not-exist"); - case OK -> Messages.send(player, "region.command.transferred-ownership"); + case NO_PERMISSION -> LangManager.send(player, "region.command.error.no-permission"); + case NOT_EXIST -> LangManager.send(player, "region.command.error.not-exist"); + case OK -> LangManager.send(player, "region.command.transferred-ownership"); } @@ -199,11 +199,11 @@ public class RegionCommand { String permission = context.getArgument("permission", String.class); switch (RegionManager.removeGroupPermissionSafely(player, id, name, permission)){ - case NOT_EXIST -> Messages.send(player, "region.command.error.not-exist"); - case NOT_EXIST_GROUP -> Messages.send(player, "region.command.error.not-exist-group"); - case NOT_EXIST_PERMISSION -> Messages.send(player, "region.command.error.not-exist-permission"); - case NO_PERMISSION -> Messages.send(player, "region.command.error.no-permission"); - case OK -> Messages.send(player, "region.command.removed-permission"); + case NOT_EXIST -> LangManager.send(player, "region.command.error.not-exist"); + case NOT_EXIST_GROUP -> LangManager.send(player, "region.command.error.not-exist-group"); + case NOT_EXIST_PERMISSION -> LangManager.send(player, "region.command.error.not-exist-permission"); + case NO_PERMISSION -> LangManager.send(player, "region.command.error.no-permission"); + case OK -> LangManager.send(player, "region.command.removed-permission"); } return 0; @@ -216,11 +216,11 @@ public class RegionCommand { String permission = context.getArgument("permission", String.class); switch (RegionManager.addGroupPermissionSafely(player, id, name, permission)){ - case NOT_EXIST -> Messages.send(player, "region.command.error.not-exist"); - case NOT_EXIST_GROUP -> Messages.send(player, "region.command.error.not-exist-group"); - case NOT_EXIST_PERMISSION -> Messages.send(player, "region.command.error.not-exist-permission"); - case NO_PERMISSION -> Messages.send(player, "region.command.error.no-permission"); - case OK -> Messages.send(player, "region.command.added-permission"); + case NOT_EXIST -> LangManager.send(player, "region.command.error.not-exist"); + case NOT_EXIST_GROUP -> LangManager.send(player, "region.command.error.not-exist-group"); + case NOT_EXIST_PERMISSION -> LangManager.send(player, "region.command.error.not-exist-permission"); + case NO_PERMISSION -> LangManager.send(player, "region.command.error.no-permission"); + case OK -> LangManager.send(player, "region.command.added-permission"); } return 0; @@ -232,10 +232,10 @@ public class RegionCommand { String name = context.getArgument("name", String.class); switch (RegionManager.removeRegionGroupSafely(id, player, name)){ - case NOT_EXIST -> Messages.send(player, "region.command.error.not-exist"); - case NOT_EXIST_GROUP -> Messages.send(player, "region.command.error.not-exist-group"); - case NO_PERMISSION -> Messages.send(player, "region.command.error.no-permission"); - case OK -> Messages.send(player, "region.command.deleted-group"); + case NOT_EXIST -> LangManager.send(player, "region.command.error.not-exist"); + case NOT_EXIST_GROUP -> LangManager.send(player, "region.command.error.not-exist-group"); + case NO_PERMISSION -> LangManager.send(player, "region.command.error.no-permission"); + case OK -> LangManager.send(player, "region.command.deleted-group"); } return 0; @@ -252,10 +252,10 @@ public class RegionCommand { switch (RegionManager.addRegionGroupSafely(id, player, name, weight, icon, displayName, description)){ - case NOT_EXIST -> Messages.send(player, "region.command.error.not-exist"); - case NO_PERMISSION -> Messages.send(player, "region.command.error.no-permission"); - case ALREADY_EXISTS -> Messages.send(player, "region.command.error.already-exist"); - case OK -> Messages.send(player, "region.command.created-group"); + case NOT_EXIST -> LangManager.send(player, "region.command.error.not-exist"); + case NO_PERMISSION -> LangManager.send(player, "region.command.error.no-permission"); + case ALREADY_EXISTS -> LangManager.send(player, "region.command.error.already-exist"); + case OK -> LangManager.send(player, "region.command.created-group"); } return 0; @@ -378,10 +378,10 @@ public class RegionCommand { switch (RegionManager.removeMemberSafely(id, memberToRemove, senderPlayer)){ - case OK -> Messages.send(senderPlayer, "region.command.removed-member"); - case NOT_EXIST -> Messages.send(senderPlayer, "region.command.error.not-exist"); - case NO_PERMISSION -> Messages.send(senderPlayer, "region.command.error.no-permission"); - case NOT_MEMBER -> Messages.send(senderPlayer, "region.command.error.not-member"); + case OK -> LangManager.send(senderPlayer, "region.command.removed-member"); + case NOT_EXIST -> LangManager.send(senderPlayer, "region.command.error.not-exist"); + case NO_PERMISSION -> LangManager.send(senderPlayer, "region.command.error.no-permission"); + case NOT_MEMBER -> LangManager.send(senderPlayer, "region.command.error.not-member"); } @@ -398,12 +398,12 @@ public class RegionCommand { Player playerToAdd = playerSelectorArgumentResolver.resolve(context.getSource()).getFirst(); switch (RegionManager.addMemberSafely(id, playerToAdd, senderPlayer, groupName)){ - case OK -> Messages.send(senderPlayer, "region.command.added-member"); - case NOT_EXIST -> Messages.send(senderPlayer, "region.command.error.not-exist"); - case NO_PERMISSION -> Messages.send(senderPlayer, "region.command.error.no-permission"); - case NOT_EXIST_GROUP -> Messages.send(senderPlayer, "region.command.error.not-exist-group"); - case PLAYER_NOT_ON_ISLAND -> Messages.send(senderPlayer, "region.command.error.player-not-on-island"); - case ALREADY_MEMBER -> Messages.send(senderPlayer, "region.command.error.already-member"); + case OK -> LangManager.send(senderPlayer, "region.command.added-member"); + case NOT_EXIST -> LangManager.send(senderPlayer, "region.command.error.not-exist"); + case NO_PERMISSION -> LangManager.send(senderPlayer, "region.command.error.no-permission"); + case NOT_EXIST_GROUP -> LangManager.send(senderPlayer, "region.command.error.not-exist-group"); + case PLAYER_NOT_ON_ISLAND -> LangManager.send(senderPlayer, "region.command.error.player-not-on-island"); + case ALREADY_MEMBER -> LangManager.send(senderPlayer, "region.command.error.already-member"); } } catch (CommandSyntaxException e) { throw new RuntimeException(e); @@ -416,14 +416,14 @@ public class RegionCommand { int id = context.getArgument("id", Integer.class); if (!context.getInput().endsWith("confirm")){ - Messages.send(player, "region.command.confirm-warning.delete", new Replace("id", String.valueOf(id))); + LangManager.send(player, "region.command.confirm-warning.delete", new Replace("id", String.valueOf(id))); return 1; } switch (RegionManager.deleteRegionSafely(id, player)){ - case OK -> Messages.send(player, "region.command.deleted"); - case NOT_EXIST -> Messages.send(player, "region.command.error.not-exist"); - case NO_PERMISSION -> Messages.send(player, "region.command.error.no-permission"); + case OK -> LangManager.send(player, "region.command.deleted"); + case NOT_EXIST -> LangManager.send(player, "region.command.error.not-exist"); + case NO_PERMISSION -> LangManager.send(player, "region.command.error.no-permission"); } return 0; @@ -433,11 +433,11 @@ public class RegionCommand { Player player = (Player) context.getSource().getSender(); switch (RegionManager.createRegionSafely(player)){ - case OK -> Messages.send(player, "region.command.created"); - case NO_SELECTION -> Messages.send(player, "region.command.error.no-selection"); - case NO_PERMISSION -> Messages.send(player, "region.command.error.no-permission"); - case INVALID_SELECTION -> Messages.send(player, "region.command.error.invalid-selection"); - case REGION_NOT_ENVELOPS -> Messages.send(player, "region.command.error.region-not-envelops"); + case OK -> LangManager.send(player, "region.command.created"); + case NO_SELECTION -> LangManager.send(player, "region.command.error.no-selection"); + case NO_PERMISSION -> LangManager.send(player, "region.command.error.no-permission"); + case INVALID_SELECTION -> LangManager.send(player, "region.command.error.invalid-selection"); + case REGION_NOT_ENVELOPS -> LangManager.send(player, "region.command.error.region-not-envelops"); } return 0; } diff --git a/src/main/java/xyz/soukup/ecoCraftCore/regions/RegionMenu.java b/src/main/java/xyz/soukup/ecoCraftCore/regions/RegionMenu.java index 2cafb19..8e75fca 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/regions/RegionMenu.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/regions/RegionMenu.java @@ -1,46 +1,185 @@ package xyz.soukup.ecoCraftCore.regions; +import com.github.stefvanschie.inventoryframework.gui.GuiItem; import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; import com.github.stefvanschie.inventoryframework.pane.OutlinePane; +import com.github.stefvanschie.inventoryframework.pane.component.ToggleButton; +import io.papermc.paper.dialog.Dialog; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.genericMenus.PlayerSelector; +import xyz.soukup.ecoCraftCore.genericMenus.TextInput; +import xyz.soukup.ecoCraftCore.gui.GuiItemBuilder; +import xyz.soukup.ecoCraftCore.messages.LangManager; +import xyz.soukup.ecoCraftCore.objects.Island; +import xyz.soukup.ecoCraftCore.objects.Permission; import xyz.soukup.ecoCraftCore.objects.Region; -import xyz.soukup.ecoCraftCore.objects.RegionMember; + +import java.util.ArrayList; +import java.util.List; public class RegionMenu { - public static ChestGui regionGui(RegionMember regionMember, Region region){ + public static ChestGui regionGui(Player player, Region region){ - return buildGui(regionMember, region); + return buildGui(player, region); } - private static ChestGui buildGui(RegionMember regionMember, Region region){ + private static ChestGui buildGui(Player player, Region region){ String title; int regionLevel = region.getLevel(); if (regionLevel == -1){ - title = Messages.getAsString("gui.region.title-island"); + title = LangManager.getLegacyString("gui.region.title-island"); } else { - title = Messages.getAsString("gui.region.title"); + title = LangManager.getLegacyString("gui.region.title"); } ChestGui gui = new ChestGui(2, title); OutlinePane outlinePane = new OutlinePane(0, 0, 9, 2); - addIslandSettings(outlinePane, regionMember, region); - + addIslandSettings(outlinePane, player, region); + addMemberManagement(outlinePane, player, region); + + gui.addPane(outlinePane); return gui; } - private static void addIslandSettings(OutlinePane outlinePane, RegionMember regionMember, Region region) { + private static void addMemberManagement(OutlinePane pane, Player player, Region region){ + if (!region.hasPermission(player, Permission.MANAGE_MEMBERS)){ + return; + } + GuiItem addMemberButton = new GuiItemBuilder(Material.PLAYER_HEAD, + "gui.region.add-member.name", + "gui.region.add-member.description", + (event -> addMemberSelectPlayer(player, region))) + .build(); + } + + private static void addMemberSelectPlayer(Player player, Region region) { + World world = Bukkit.getWorld(region.getIsland()); + if (world == null){ + return; + } + + List players = world.getPlayers(); + List candidates = new ArrayList<>(); + + for(Player candidate : players){ + if (region.getRegionMember(candidate) != null){ + continue; + } + + candidates.add(candidate); + } + + ChestGui playerSelectGui = PlayerSelector.selectPlayer(player, + candidates, + (( selectedPlayer) -> addMemberSelectGroup(player, region, selectedPlayer)), + (event -> regionGui(player, region).show(player))); + + playerSelectGui.show(player); } - private static void setIslandDescription(InventoryClickEvent event, Region region, RegionMember regionMember) { + private static void addMemberSelectGroup(Player player, Region region, Player selectedPlayer){ + } - private static void setIslandName(InventoryClickEvent inventoryClickEvent, Region region, RegionMember regionMember) { + private static void addIslandSettings(OutlinePane pane, Player player, Region region) { + if (region.getLevel() != -1){ + return; + } + + if (!region.hasPermission(player, Permission.MANAGE_INFO)){ + return; + } + + Island island = Island.findByUuid(region.getIsland()); + + if (island == null){ + return; + } + + ToggleButton toggleButton = new ToggleButton(1,1); + + Dialog islandTitleDialog = TextInput.textInput(player, + "gui.region.name-island.name", + "gui.region.name-island.input", + island.getDisplayName(), + (s -> setIslandName(player, island, s))); + Dialog islandDescriptionDialog = TextInput.textInput(player, + "gui.region.description-island.name", + "gui.region.description-island.input", + island.getDescritpion(), + (s -> setIslandDescription(player, island, s))); + + GuiItem visibilityToggle = new GuiItemBuilder(Material.ENDER_EYE, + "gui.region.visibility-island.name", + "gui.region.visibility-island.description", + (event -> toggleIslandPublic(player, island, event)), + island.getPublic() + ).build(); + + GuiItem titleButton = new GuiItemBuilder( + Material.DARK_OAK_SIGN, + "gui.region.name-island.name", + "gui.region.name-island.description", + (event -> player.showDialog(islandTitleDialog)) + ).build(); + + GuiItem descriptionButton = new GuiItemBuilder( + Material.ACACIA_SIGN, + "gui.region.description-island.name", + "gui.region.description-island.description", + (event -> player.showDialog(islandDescriptionDialog)) + ).build(); + + pane.addItem(visibilityToggle); + pane.addItem(titleButton); + pane.addItem(descriptionButton); + + } + + private static void toggleIslandPublic(Player player, Island island, InventoryClickEvent event){ + island.setPublic(!island.getPublic()); + island.save(); + + ChestGui chestGui = (ChestGui) ChestGui.getGui(event.getInventory()); + + if (chestGui == null){ + return; + } + + OutlinePane pane = new OutlinePane(event.getSlot(), 1); + + GuiItem visibilityToggle = new GuiItemBuilder(Material.ENDER_EYE, + "gui.region.visibility-island.name", + "gui.region.visibility-island.description", + (clickEvent -> toggleIslandPublic(player, island, event)), + island.getPublic() + ).build(); + + pane.addItem(visibilityToggle); + chestGui.addPane(pane); + + + + } + + private static void setIslandDescription(Player player, Island island, String description) { + island.setDescritpion(description); + island.save(); + LangManager.send(player, "island.changed.description"); + } + private static void setIslandName(Player player, Island island, String name) { + island.setDisplayName(name); + island.save(); + LangManager.send(player, "island.changed.name"); } } diff --git a/src/main/java/xyz/soukup/ecoCraftCore/shop/ShopCommand.java b/src/main/java/xyz/soukup/ecoCraftCore/shop/ShopCommand.java index 9ffcee6..0c94bbd 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/shop/ShopCommand.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/shop/ShopCommand.java @@ -13,7 +13,7 @@ import xyz.soukup.ecoCraftCore.positionMarker.MarkerEvent; import xyz.soukup.ecoCraftCore.objects.Shop; import xyz.soukup.ecoCraftCore.objects.VirtualChest; import xyz.soukup.ecoCraftCore.inventory.InventoryUtils; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import xyz.soukup.ecoCraftCore.utilities.PDC; public class ShopCommand { @@ -46,7 +46,7 @@ public class ShopCommand { CommandSourceStack source = ctx.getSource(); if (!(source.getSender() instanceof Player player)) { - Messages.send(source.getSender(), "generic.error.not-player"); + LangManager.send(source.getSender(), "generic.error.not-player"); return 0; } @@ -55,20 +55,20 @@ public class ShopCommand { Sign sign = MarkerEvent.signs.get(player); if (sign == null || chest == null) { - Messages.send(player, "shop.error.not-marked"); + LangManager.send(player, "shop.error.not-marked"); return 0; } // 2. Validate Item in Hand ItemStack item = player.getInventory().getItemInMainHand(); if (item.isEmpty()) { - Messages.send(player, "shop.error.empty-hand"); + LangManager.send(player, "shop.error.empty-hand"); return 0; } // 3. Check if already a shop if (PDC.getInteger(sign, "shop") != null) { - Messages.send(player, "shop.error.already-shop"); + LangManager.send(player, "shop.error.already-shop"); return 0; } @@ -99,7 +99,7 @@ public class ShopCommand { shop.save(); shop.writeIntoSign(sign); - Messages.send(player, "shop.created"); + LangManager.send(player, "shop.created"); return 1; } } \ No newline at end of file diff --git a/src/main/java/xyz/soukup/ecoCraftCore/shop/ShopLogic.java b/src/main/java/xyz/soukup/ecoCraftCore/shop/ShopLogic.java index a60ac4b..6cda6a9 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/shop/ShopLogic.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/shop/ShopLogic.java @@ -30,7 +30,7 @@ import org.bukkit.inventory.PlayerInventory; import xyz.soukup.ecoCraftCore.virtualChest.VirtualChestLogic; import xyz.soukup.ecoCraftCore.gui.GuiItemBuilder; import xyz.soukup.ecoCraftCore.inventory.InventoryUtils; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import xyz.soukup.ecoCraftCore.objects.Account; import xyz.soukup.ecoCraftCore.objects.Shop; import xyz.soukup.ecoCraftCore.objects.Transaction; @@ -75,7 +75,7 @@ public class ShopLogic implements Listener { Player player = event.getPlayer(); if (VirtualChestLogic.openedChests.containsKey(shop.getVirtualChestID())){ - Messages.send(player, "shop.error.chest-open"); + LangManager.send(player, "shop.error.chest-open"); return; } @@ -129,7 +129,7 @@ public class ShopLogic implements Listener { public static ChestGui buildShopGui(Player player, Shop shop){ - ChestGui gui = new ChestGui(1, Messages.getAsString("gui.shop.title")); + ChestGui gui = new ChestGui(1, LangManager.getLegacyString("gui.shop.title")); gui.setOnGlobalClick(inventoryClickEvent -> { inventoryClickEvent.setCancelled(true); @@ -148,7 +148,7 @@ public class ShopLogic implements Listener { hashMap.put("price", String.format("%.2f", buyPrice)); GuiItem one = new GuiItemBuilder(Material.LIME_WOOL) - .setName(Messages.get("gui.shop.buy", hashMap)) + .setName(LangManager.get("gui.shop.buy", hashMap)) .build(); one.setAction(event -> { @@ -160,7 +160,7 @@ public class ShopLogic implements Listener { hashMap.put("price", String.format("%.2f", buyPrice*8)); GuiItem eight = new GuiItemBuilder(Material.LIME_WOOL) - .setName(Messages.get("gui.shop.buy", hashMap)) + .setName(LangManager.get("gui.shop.buy", hashMap)) .build(); eight.setAction(event -> { @@ -181,7 +181,7 @@ public class ShopLogic implements Listener { hashMap.put("price", String.format("%.2f", sellPrice)); GuiItem one = new GuiItemBuilder(Material.YELLOW_WOOL) - .setName(Messages.get("gui.shop.sell", hashMap)) + .setName(LangManager.get("gui.shop.sell", hashMap)) .build(); one.setAction(event -> { @@ -194,7 +194,7 @@ public class ShopLogic implements Listener { hashMap.put("price", String.format("%.2f", sellPrice*8)); GuiItem eight = new GuiItemBuilder(Material.YELLOW_WOOL) - .setName(Messages.get("gui.shop.sell", hashMap)) + .setName(LangManager.get("gui.shop.sell", hashMap)) .build(); eight.setAction(event -> { @@ -217,24 +217,24 @@ public class ShopLogic implements Listener { public static Dialog buildEditDialog(Shop shop){ return Dialog.create(builder -> builder.empty() - .base(DialogBase.builder(Messages.get("gui.shop-edit.title")) + .base(DialogBase.builder(LangManager.get("gui.shop-edit.title")) .inputs(List.of( - DialogInput.text("count", Messages.get("gui.shop-edit.inputs.count")) + DialogInput.text("count", LangManager.get("gui.shop-edit.inputs.count")) .initial(String.valueOf(shop.getAmount())) .build(), - DialogInput.text("sellprice", Messages.get("gui.shop-edit.inputs.price-sell")) + DialogInput.text("sellprice", LangManager.get("gui.shop-edit.inputs.price-sell")) .initial(String.valueOf(shop.getPriceSell())) .build(), - DialogInput.text("buyprice", Messages.get("gui.shop-edit.inputs.price-buy")) + DialogInput.text("buyprice", LangManager.get("gui.shop-edit.inputs.price-buy")) .initial(String.valueOf(shop.getPriceBuy())) .build(), - DialogInput.bool("changeitem", Messages.get("gui.shop-edit.inputs.change-item")) + DialogInput.bool("changeitem", LangManager.get("gui.shop-edit.inputs.change-item")) .build() )) .build()) .type(DialogType.confirmation( - ActionButton.builder(Messages.get("gui.shop-edit.button.confirm")) + ActionButton.builder(LangManager.get("gui.shop-edit.button.confirm")) .action(DialogAction.customClick( (view, audience) -> { changeShopParameters(view, audience, shop); @@ -244,7 +244,7 @@ public class ShopLogic implements Listener { .build() )) .build(), - ActionButton.builder(Messages.get("gui.shop-edit.button.cancel")).build() + ActionButton.builder(LangManager.get("gui.shop-edit.button.cancel")).build() )) ); @@ -253,7 +253,7 @@ public class ShopLogic implements Listener { public static void buy(Shop shop, Player player, int multiplier){ if (VirtualChestLogic.openedChests.containsKey(shop.getVirtualChestID())){ - Messages.send(player, "shop.error.chest-open"); + LangManager.send(player, "shop.error.chest-open"); return; } @@ -265,7 +265,7 @@ public class ShopLogic implements Listener { Account account = Account.getOrCreate(player); if (price > account.getBalance()){ - Messages.send(player, "generic.error.no-money.self"); + LangManager.send(player, "generic.error.no-money.self"); return; } @@ -278,12 +278,12 @@ public class ShopLogic implements Listener { Inventory playerInventory = player.getInventory(); if (InventoryUtils.getSpaceLeft(playerInventory, itemStack) < amount){ - Messages.send(player, "generic.error.no-space.self"); + LangManager.send(player, "generic.error.no-space.self"); return; } if (!virtualChest.removeItem(itemStack)){ - Messages.send(player, "generic.error.no-item.shop"); + LangManager.send(player, "generic.error.no-item.shop"); return; } @@ -300,7 +300,7 @@ public class ShopLogic implements Listener { hashMap.put("price", String.format("%.2f", price)); hashMap.put("item", PlainTextComponentSerializer.plainText().serialize(itemStack.displayName())); - Messages.send(player, "shop.buy", hashMap); + LangManager.send(player, "shop.buy", hashMap); } @@ -328,7 +328,7 @@ public class ShopLogic implements Listener { buyPrice = Float.parseFloat(Objects.requireNonNull(response.getText("buyprice"))); count = Integer.parseInt(Objects.requireNonNull(response.getText("count"))); } catch (NumberFormatException exception) { - Messages.send(player, "gui.error.invalid-input"); + LangManager.send(player, "gui.error.invalid-input"); return; } @@ -342,7 +342,7 @@ public class ShopLogic implements Listener { public static void sell(Shop shop, Player player, int multiplier){ if (VirtualChestLogic.openedChests.containsKey(shop.getVirtualChestID())){ - Messages.send(player, "shop.error.chest-open"); + LangManager.send(player, "shop.error.chest-open"); return; } @@ -354,7 +354,7 @@ public class ShopLogic implements Listener { Account account = Account.getOrCreate(shop.getOwnerType(), shop.getOwner()); if (price > account.getBalance()){ - Messages.send(player, "generic.error.no-money.self"); + LangManager.send(player, "generic.error.no-money.self"); return; } @@ -367,12 +367,12 @@ public class ShopLogic implements Listener { Inventory playerInventory = player.getInventory(); if (InventoryUtils.getCount(playerInventory, itemStack) < amount){ - Messages.send(player, "generic.error.no-item.self"); + LangManager.send(player, "generic.error.no-item.self"); return; } if (!virtualChest.addItem(itemStack)){ - Messages.send(player, "generic.error.no-space.shop"); + LangManager.send(player, "generic.error.no-space.shop"); return; } @@ -388,12 +388,12 @@ public class ShopLogic implements Listener { hashMap.put("price", String.format("%.2f", price)); hashMap.put("item", PlainTextComponentSerializer.plainText().serialize(itemStack.displayName())); - Messages.send(player, "shop.sell", hashMap); + LangManager.send(player, "shop.sell", hashMap); } public static HopperGui confirmBreakGui(Block block, Shop shop){ - HopperGui gui = new HopperGui(Messages.getAsString("menu.destroy-confirmation.title")); + HopperGui gui = new HopperGui(LangManager.getLegacyString("menu.destroy-confirmation.title")); OutlinePane pane = new OutlinePane(0,0, 5, 1); gui.setOnGlobalClick(inventoryClickEvent -> { @@ -401,11 +401,11 @@ public class ShopLogic implements Listener { }); GuiItem confirmButton = new GuiItemBuilder(Material.LIME_WOOL) - .setName(Messages.get("menu.destroy-confirmation.confirm")) + .setName(LangManager.get("menu.destroy-confirmation.confirm")) .build(); GuiItem cancelButton = new GuiItemBuilder(Material.RED_WOOL) - .setName(Messages.get("menu.destroy-confirmation.cancel")) + .setName(LangManager.get("menu.destroy-confirmation.cancel")) .build(); cancelButton.setAction(event -> { diff --git a/src/main/java/xyz/soukup/ecoCraftCore/sign/SignEditCommand.java b/src/main/java/xyz/soukup/ecoCraftCore/sign/SignEditCommand.java index af96002..b7250dd 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/sign/SignEditCommand.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/sign/SignEditCommand.java @@ -23,7 +23,7 @@ import org.bukkit.block.sign.Side; import org.bukkit.block.sign.SignSide; import org.bukkit.entity.Player; import org.bukkit.persistence.PersistentDataType; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import xyz.soukup.ecoCraftCore.regions.RegionManager; import xyz.soukup.ecoCraftCore.utilities.PDC; @@ -48,14 +48,14 @@ public class SignEditCommand { BlockState blockState = block.getState(); if (!(blockState instanceof Sign sign)){ - Messages.send(player, "sign-edit.error.not-sign"); + LangManager.send(player, "sign-edit.error.not-sign"); return 1; } Location location = sign.getLocation(); if (!RegionManager.isAllowedToInteract(player, location)){ - Messages.send(player, "region.error.not-allowed-to-interact"); + LangManager.send(player, "region.error.not-allowed-to-interact"); return 1; } @@ -78,16 +78,16 @@ public class SignEditCommand { - actionButtons.add(ActionButton.builder(Messages.get("gui.sign-edit.buttons.copy")) + actionButtons.add(ActionButton.builder(LangManager.get("gui.sign-edit.buttons.copy")) .action(DialogAction.customClick((view, audience) -> copySignText(view, player, sign), ClickCallback.Options.builder().build())) .build()); - actionButtons.add(ActionButton.builder(Messages.get("gui.sign-edit.buttons.paste")) + actionButtons.add(ActionButton.builder(LangManager.get("gui.sign-edit.buttons.paste")) .action(DialogAction.customClick((view, audience) -> pasteSignText(sign, player), ClickCallback.Options.builder().build())) .build()); - actionButtons.add(ActionButton.builder(Messages.get("gui.sign-edit.buttons.confirm")) + actionButtons.add(ActionButton.builder(LangManager.get("gui.sign-edit.buttons.confirm")) .action(DialogAction.customClick((view, audience) -> editSign(view, sign, player), ClickCallback.Options.builder().build())) .build()); - actionButtons.add(ActionButton.builder(Messages.get("gui.sign-edit.buttons.cancel")) + actionButtons.add(ActionButton.builder(LangManager.get("gui.sign-edit.buttons.cancel")) .action(DialogAction.customClick((view, audience) -> audience.closeDialog(), ClickCallback.Options.builder().build())) .build()); @@ -95,21 +95,21 @@ public class SignEditCommand { List finalLines = lines; return Dialog.create(builder -> builder.empty() - .base(DialogBase.builder(Messages.get("gui.sign-edit.title")) + .base(DialogBase.builder(LangManager.get("gui.sign-edit.title")) .inputs(List.of( - DialogInput.text("line1", Messages.get("gui.sign-edit.inputs.line1")) + DialogInput.text("line1", LangManager.get("gui.sign-edit.inputs.line1")) .initial(finalLines.getFirst()) .maxLength(256) .build(), - DialogInput.text("line2", Messages.get("gui.sign-edit.inputs.line2")) + DialogInput.text("line2", LangManager.get("gui.sign-edit.inputs.line2")) .initial(finalLines.get(1)) .maxLength(256) .build(), - DialogInput.text("line3", Messages.get("gui.sign-edit.inputs.line3")) + DialogInput.text("line3", LangManager.get("gui.sign-edit.inputs.line3")) .initial(finalLines.get(2)) .maxLength(256) .build(), - DialogInput.text("line4", Messages.get("gui.sign-edit.inputs.line4")) + DialogInput.text("line4", LangManager.get("gui.sign-edit.inputs.line4")) .initial(finalLines.get(3)) .maxLength(256) .build() @@ -148,7 +148,7 @@ public class SignEditCommand { lines.add(view.getText("line4")); clipBoard.put(player, lines); - Messages.send(player, "gui.sign-edit.success.copied"); + LangManager.send(player, "gui.sign-edit.success.copied"); pasteSignText(sign, player); } diff --git a/src/main/java/xyz/soukup/ecoCraftCore/virtualChest/VirtualChestLogic.java b/src/main/java/xyz/soukup/ecoCraftCore/virtualChest/VirtualChestLogic.java index eaf154f..2687086 100644 --- a/src/main/java/xyz/soukup/ecoCraftCore/virtualChest/VirtualChestLogic.java +++ b/src/main/java/xyz/soukup/ecoCraftCore/virtualChest/VirtualChestLogic.java @@ -17,7 +17,7 @@ import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; import xyz.soukup.ecoCraftCore.gui.GuiItemBuilder; import xyz.soukup.ecoCraftCore.objects.VirtualChest; -import xyz.soukup.ecoCraftCore.messages.Messages; +import xyz.soukup.ecoCraftCore.messages.LangManager; import xyz.soukup.ecoCraftCore.utilities.PDC; import java.util.HashMap; @@ -184,7 +184,7 @@ public class VirtualChestLogic implements Listener { } public static HopperGui confirmBreakGui(Block block, VirtualChest virtualChest){ - HopperGui gui = new HopperGui(Messages.getAsString("menu.destroy-confirmation.title")); + HopperGui gui = new HopperGui(LangManager.getLegacyString("menu.destroy-confirmation.title")); OutlinePane pane = new OutlinePane(0,0, 5, 1); gui.setOnGlobalClick(inventoryClickEvent -> { @@ -192,11 +192,11 @@ public class VirtualChestLogic implements Listener { }); GuiItem confirmButton = new GuiItemBuilder(Material.LIME_WOOL) - .setName(Messages.get("menu.destroy-confirmation.confirm")) + .setName(LangManager.get("menu.destroy-confirmation.confirm")) .build(); GuiItem cancelButton = new GuiItemBuilder(Material.RED_WOOL) - .setName(Messages.get("menu.destroy-confirmation.cancel")) + .setName(LangManager.get("menu.destroy-confirmation.cancel")) .build(); cancelButton.setAction(event -> { diff --git a/src/main/resources/messages.yml b/src/main/resources/messages.yml index 727bd76..10b19fe 100644 --- a/src/main/resources/messages.yml +++ b/src/main/resources/messages.yml @@ -12,6 +12,10 @@ generic: no-item: self: "Nemáš dostatek itemů" shop: "Obchod nemá dostatek itemů" +island: + changed: + name: "Jméno ostrova změněno." + description: "Popis ostrova změněn." region: command: created: "Úspěšně vytvořeno." @@ -110,21 +114,39 @@ menu: buy: "Koupit ks za $" sell: "Prodat ks za $" gui: + toggle: + on: "Povoleno" + off: "Zakázáno" + text-input: + confirm: "Potvrdit" + cancel: "Zrušit" player-selector: title: "Vyber Hráče" name-format: "" back-button: name: "Zpět" lore : "" + region: title: "Nastavení pozemku" title-island: "Nastavení ostrovního pozemku" + add-member: + name: "Přidat člena" + description: "Přidej hráče, jenž dostane
další práva na pozemku" + remove-member: + name: "Odebrat člena" + description: "Odstranit člena
z pozemku" name-island: name: "Změnit název ostrova" description: "Změní název jenž se
zobrauje ve výběru ostrovů" + input: "Nový název" description-island: name: "Změnit popis ostrova" description: "Změní popis jenž se
zobrauje ve výběru ostrovů" + input: "Nový popis" + visibility-island: + name: "Veřejný ostrov" + description: "Pokud je povoleno mohou hráči
tvůj ostrov najít v seznamu ostrovů" error: invalid-input: "Vámi zadané hodnoty nejsou platné." all: "Seznam guis: <1>, <2>"