From 907860065589654f55c5752ebf39ca95b7ec0bdc Mon Sep 17 00:00:00 2001 From: IanTapply22 Date: Thu, 2 Jan 2025 19:06:28 -0500 Subject: [PATCH 1/6] Fix initial issues with balloon removal --- pom.xml | 6 +- .../net/jeqo/bloons/balloon/BalloonCore.java | 22 ++-- .../jeqo/bloons/gui/menus/ExampleMenu.java | 117 ------------------ .../bloons/listeners/BalloonMenuListener.java | 5 +- .../bloons/message/MessageTranslations.java | 3 +- src/main/resources/plugin.yml | 2 +- 6 files changed, 24 insertions(+), 131 deletions(-) delete mode 100644 src/main/java/net/jeqo/bloons/gui/menus/ExampleMenu.java diff --git a/pom.xml b/pom.xml index fb26de32..4a499886 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ net.jeqo bloons - 2.0.0 + 2.1.0 jar Bloons @@ -105,13 +105,13 @@ io.papermc.paper paper-api - 1.20.4-R0.1-SNAPSHOT + 1.21.3-R0.1-SNAPSHOT provided net.kyori adventure-text-minimessage - 4.17.0 + 4.18.0 diff --git a/src/main/java/net/jeqo/bloons/balloon/BalloonCore.java b/src/main/java/net/jeqo/bloons/balloon/BalloonCore.java index fa640f25..ae6da84b 100644 --- a/src/main/java/net/jeqo/bloons/balloon/BalloonCore.java +++ b/src/main/java/net/jeqo/bloons/balloon/BalloonCore.java @@ -66,19 +66,12 @@ public void initialize() { * Copies the example balloons folder to the plugin's data folder if it doesn't exist */ public void copyExampleBalloons() { - // List of example balloon files - String[] exampleBalloons = new String[] { - "/color_pack_example.yml", - "/dyeable_example.yml", - "/multipart_example.yml" - }; - // Save all example files in the balloons folder in /resources for (String example : this.getExampleBalloons()) { File file = new File(Bloons.getInstance().getDataFolder() + File.separator + ConfigConfiguration.BALLOON_CONFIGURATION_FOLDER + File.separator + example); if (file.exists()) continue; - Bloons.getInstance().saveResource(ConfigConfiguration.BALLOON_CONFIGURATION_FOLDER + example, false); + Bloons.getInstance().saveResource(ConfigConfiguration.BALLOON_CONFIGURATION_FOLDER + File.separator + example, false); } } @@ -120,6 +113,19 @@ public SingleBalloonType getSingleBalloonByID(String ID) { return null; } + public SingleBalloonType getSingleBalloonByName(String name) { + // Loop over every single balloon in the registered balloons list + for (SingleBalloonType balloon : this.getSingleBalloonTypes()) { + // Check if the single balloon's name matches the specified name + if (balloon.getName().equalsIgnoreCase(name)) { + return balloon; + } + } + + // Return null if the single balloon is not found + return null; + } + /** * Checks if the registered balloons list contains a balloon with the specified ID * @param ID The ID of the balloon, type java.lang.String diff --git a/src/main/java/net/jeqo/bloons/gui/menus/ExampleMenu.java b/src/main/java/net/jeqo/bloons/gui/menus/ExampleMenu.java deleted file mode 100644 index 440b4198..00000000 --- a/src/main/java/net/jeqo/bloons/gui/menus/ExampleMenu.java +++ /dev/null @@ -1,117 +0,0 @@ -package net.jeqo.bloons.gui.menus; - -import net.jeqo.bloons.gui.GUI; -import net.jeqo.bloons.gui.GUIClickableItem; -import net.jeqo.bloons.gui.item.border.BlackGlassPaneBorder; -import net.jeqo.bloons.gui.item.filler.BlackGlassPaneFillerItem; -import net.jeqo.bloons.item.NBTItem; -import net.kyori.adventure.text.Component; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.Inventory; - -/** - * An example of a menu made with the custom GUI system - */ -public class ExampleMenu extends GUI { - Inventory inventory; - - /** - * The inventory that is displayed to the player - * @return The inventory, type org.bukkit.inventory.Inventory - */ - @Override - public Inventory inventory() { - this.inventory = Bukkit.createInventory(null, slots(), name()); - return this.inventory; - } - - /** - * The name that is displayed as the GUI title - * @return The name, type net.kyori.adventure.text.Component - */ - @Override - public Component name() { - return Component.text("Example GUI"); - } - - /** - * The number of slots that are present within the GUI - * It should be a multiple of 9. 27 and 54 are common values. - * @return The number of slots contained within the GUI, type int - */ - @Override - public int slots() { - return 27; - } - - /** - * The filler item that is used to fill empty slots in the GUI - * @return The filler item, type net.jeqo.bloons.gui.GUIClickableItem - */ - @Override - public GUIClickableItem fillerItem(int slot) { - return BlackGlassPaneFillerItem.getItem(slot); - } - - /** - * The border item that is used to create a border around the GUI - * @param slot The slot of the item in the inventory, type int - * @return The border item, type net.jeqo.bloons.gui.GUIClickableItem - */ - @Override - public GUIClickableItem borderItem(int slot) { - return BlackGlassPaneBorder.getItem(slot); - } - - /** - * Creates a clickable item that can't be picked up with the click event cancelled - * @param currentItem The item that is being clicked on - * @param slot The slot that the item is in - * @return A GUIClickableItem object that represents the item that can't be picked up, type net.jeqo.bloons.gui.GUIClickableItem - */ - @Override - public GUIClickableItem cantPickup(NBTItem currentItem, int slot) { - return new GUIClickableItem() { - @Override - public void run(InventoryClickEvent event) { - event.setCancelled(true); - } - - @Override - public int getSlot() { - return slot; - } - - @Override - public NBTItem getItem() { - return currentItem; - } - }; - } - - /** - * Determines what happens when the GUI is closed - * @param player The player that closed the GUI, type org.bukkit.entity.Player - */ - @Override - public void onClose(Player player) { - player.sendMessage("You closed the GUI!"); - } - - /** - * Determines what happens when the GUI is opened - * @param player The player that opened the GUI, type org.bukkit.entity.Player - */ - @Override - public void open(Player player) { - fillAllSlots(); - } - - /** - * Determines what happens when the GUI is updated (this happens every 20 ticks) - */ - @Override - public void update() {} -} diff --git a/src/main/java/net/jeqo/bloons/listeners/BalloonMenuListener.java b/src/main/java/net/jeqo/bloons/listeners/BalloonMenuListener.java index 1f3bba81..cf7977c7 100644 --- a/src/main/java/net/jeqo/bloons/listeners/BalloonMenuListener.java +++ b/src/main/java/net/jeqo/bloons/listeners/BalloonMenuListener.java @@ -5,6 +5,7 @@ import net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloonBuilder; import net.jeqo.bloons.balloon.multipart.MultipartBalloonType; import net.jeqo.bloons.balloon.single.SingleBalloon; +import net.jeqo.bloons.balloon.single.SingleBalloonType; import net.jeqo.bloons.colors.Color; import net.jeqo.bloons.colors.ColorCodeConverter; import net.jeqo.bloons.events.balloon.multipart.MultipartBalloonEquipEvent; @@ -99,7 +100,9 @@ public void onClick(InventoryClickEvent event){ // Check if a balloon needs to be added or removed SingleBalloonManagement.removeBalloon(player, Bloons.getPlayerSingleBalloons().get(player.getUniqueId())); - SingleBalloon.checkBalloonRemovalOrAdd(player, localizedName); + SingleBalloonType fromName = Bloons.getBalloonCore().getSingleBalloonByName(convertedColourBalloonName); + + SingleBalloon.checkBalloonRemovalOrAdd(player, fromName.getId()); } // Send equipped message and play sound diff --git a/src/main/java/net/jeqo/bloons/message/MessageTranslations.java b/src/main/java/net/jeqo/bloons/message/MessageTranslations.java index f798776f..8b785751 100644 --- a/src/main/java/net/jeqo/bloons/message/MessageTranslations.java +++ b/src/main/java/net/jeqo/bloons/message/MessageTranslations.java @@ -1,6 +1,7 @@ package net.jeqo.bloons.message; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.TextDecoration; import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.plugin.java.JavaPlugin; @@ -30,7 +31,7 @@ public Component getSerializedString(String messagePrefix, String messageSuffix) */ public Component getSerializedString(String message) { MiniMessage mm = MiniMessage.miniMessage(); - return mm.deserialize(message); + return mm.deserialize(message).decoration(TextDecoration.ITALIC, false); } /** diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 25a5b2f0..fd45b0e5 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: Bloons version: '${project.version}' main: net.jeqo.bloons.Bloons -api-version: 1.18 +api-version: 1.21 prefix: Bloons authors: [ Jeqo, Gucci Fox ] description: A unique balloons plugin. From f041d5e39a4c5190a810418838cc2649854c4ee4 Mon Sep 17 00:00:00 2001 From: IanTapply22 Date: Thu, 2 Jan 2025 19:16:37 -0500 Subject: [PATCH 2/6] Add spigot API dependency --- pom.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pom.xml b/pom.xml index 4a499886..1be8f260 100644 --- a/pom.xml +++ b/pom.xml @@ -89,6 +89,10 @@ Lumine Public https://mvn.lumine.io/repository/maven-public/ + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + @@ -114,6 +118,14 @@ 4.18.0 + + + org.spigotmc + spigot-api + 1.21.4-R0.1-SNAPSHOT + provided + + org.projectlombok From 8e0bbbd2e8a00373f3351260c567c703ea745743 Mon Sep 17 00:00:00 2001 From: IanTapply22 Date: Tue, 28 Jan 2025 14:35:02 -0500 Subject: [PATCH 3/6] Adapt to both Spigot and PaperMC --- pom.xml | 2 +- .../bloons/balloon/model/BalloonModel.java | 7 +++---- .../multipart/balloon/MultipartBalloon.java | 4 ++-- .../bloons/commands/manager/CommandCore.java | 4 ++++ .../configuration/PluginConfiguration.java | 20 +++++++++++++++++++ .../java/net/jeqo/bloons/logger/Logger.java | 12 +++++++++-- .../net/jeqo/bloons/logger/LoggingLevel.java | 13 +++++++----- 7 files changed, 48 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index 1be8f260..9de7fd64 100644 --- a/pom.xml +++ b/pom.xml @@ -58,7 +58,7 @@ run-paper-maven-plugin 1.1.0 - 1.20.4 + 1.21.4 true run diff --git a/src/main/java/net/jeqo/bloons/balloon/model/BalloonModel.java b/src/main/java/net/jeqo/bloons/balloon/model/BalloonModel.java index 1a572073..bb31dac9 100644 --- a/src/main/java/net/jeqo/bloons/balloon/model/BalloonModel.java +++ b/src/main/java/net/jeqo/bloons/balloon/model/BalloonModel.java @@ -12,7 +12,7 @@ * A class to handle the creation of balloon models with custom model data and color metadata */ public class BalloonModel { - private static final String LEATHER_MATERIAL_PREFIX = "LEATHER_"; // A constant to define a dyeable material + private static final String DYEABLE_MATERIAL_PREFIX = "LEATHER_"; /** * Generates a coloured model with the specified colour and custom model data @@ -23,7 +23,7 @@ public class BalloonModel { */ public static ItemStack createColouredModel(Material material, Color colour, int customModelData) { // Check if the material is dyeable and contains leather attributes - if (!material.name().contains(LEATHER_MATERIAL_PREFIX)) { + if (!material.name().contains(DYEABLE_MATERIAL_PREFIX)) { Logger.logError("Material " + material.name() + " is not a dyeable material."); return new ItemStack(material); } @@ -52,7 +52,7 @@ public static ItemStack createColouredModel(Material material, Color colour, int */ public static ItemStack createColouredModel(Material material, int colourRed, int colourGreen, int colourBlue, int customModelData) { // Check if the material is dyeable and contains leather attributes - if (!material.name().contains(LEATHER_MATERIAL_PREFIX)) { + if (!material.name().contains(DYEABLE_MATERIAL_PREFIX)) { Logger.logWarning(String.format(Languages.getMessage("material-not-dyeable"), material)); return new ItemStack(material); } @@ -72,7 +72,6 @@ public static ItemStack createColouredModel(Material material, int colourRed, in generatedItemMeta.setCustomModelData(customModelData); generatedItem.setItemMeta(generatedItemMeta); - return generatedItem; } diff --git a/src/main/java/net/jeqo/bloons/balloon/multipart/balloon/MultipartBalloon.java b/src/main/java/net/jeqo/bloons/balloon/multipart/balloon/MultipartBalloon.java index af4077dc..8a7b9a25 100644 --- a/src/main/java/net/jeqo/bloons/balloon/multipart/balloon/MultipartBalloon.java +++ b/src/main/java/net/jeqo/bloons/balloon/multipart/balloon/MultipartBalloon.java @@ -58,8 +58,8 @@ public class MultipartBalloon { public void initialize() { // Things that only need to be set up once and not looped over MultipartBalloonNode current = new MultipartBalloonNode((float) this.getOwner().getLocation().getX(), (float) this.getOwner().getLocation().getY(), (float) this.getOwner().getLocation().getZ(), - (float) ((float) this.getType().getDistanceBetweenNodes() + this.getType().getTailNodeOffset()), 0, getType(), this.getOwner(), - this.getType().getMaxNodeJointAngle(), this.getType().getYAxisInterpolation(), this.getType().getTurningSplineInterpolation()); + (float) ((float) this.getType().getDistanceBetweenNodes() + this.getType().getTailNodeOffset()), 0, getType(), this.getOwner(), + this.getType().getMaxNodeJointAngle(), this.getType().getYAxisInterpolation(), this.getType().getTurningSplineInterpolation()); // Add the current node to the list of model nodes this.getMultipartBalloonNodes().add(current); diff --git a/src/main/java/net/jeqo/bloons/commands/manager/CommandCore.java b/src/main/java/net/jeqo/bloons/commands/manager/CommandCore.java index 61473382..85223ccf 100644 --- a/src/main/java/net/jeqo/bloons/commands/manager/CommandCore.java +++ b/src/main/java/net/jeqo/bloons/commands/manager/CommandCore.java @@ -196,6 +196,8 @@ public boolean meetsRequirements(Command command, CommandSender sender) { */ private boolean shouldAddSingleBalloon(Player player, SingleBalloonType singleBalloonType) { if (this.getMessageTranslations().getString("hide-balloons-without-permission").equalsIgnoreCase("true")) { + if (singleBalloonType.getPermission() == null) return true; + return player.hasPermission(singleBalloonType.getPermission()); } return true; @@ -209,6 +211,8 @@ private boolean shouldAddSingleBalloon(Player player, SingleBalloonType singleBa */ private boolean shouldAddMultipartBalloon(Player player, MultipartBalloonType multipartBalloonType) { if (this.getMessageTranslations().getString("hide-balloons-without-permission").equalsIgnoreCase("true")) { + if (multipartBalloonType.getPermission() == null) return true; + return player.hasPermission(multipartBalloonType.getPermission()); } return true; diff --git a/src/main/java/net/jeqo/bloons/configuration/PluginConfiguration.java b/src/main/java/net/jeqo/bloons/configuration/PluginConfiguration.java index 9362a022..5f56e5c3 100644 --- a/src/main/java/net/jeqo/bloons/configuration/PluginConfiguration.java +++ b/src/main/java/net/jeqo/bloons/configuration/PluginConfiguration.java @@ -44,4 +44,24 @@ public static String getDescription() { public static String getURL() { return Bloons.getInstance().getDescription().getWebsite(); } + + public static boolean isSpigotServer() { + try { + // Check if a Spigot-specific class is available + Class.forName("org.spigotmc.SpigotConfig"); + return true; + } catch (ClassNotFoundException e) { + return false; + } + } + + public static boolean isPaperServer() { + try { + // Check if a Paper-specific class is available + Class.forName("com.destroystokyo.paper.PaperConfig"); + return true; + } catch (ClassNotFoundException e) { + return false; + } + } } diff --git a/src/main/java/net/jeqo/bloons/logger/Logger.java b/src/main/java/net/jeqo/bloons/logger/Logger.java index 3138fcd2..65810b7f 100644 --- a/src/main/java/net/jeqo/bloons/logger/Logger.java +++ b/src/main/java/net/jeqo/bloons/logger/Logger.java @@ -28,8 +28,16 @@ public static void logWithSTDOUT(String message) { * @param message The message to log, type java.lang.String */ public static void logToPlayer(LoggingLevel level, Player player, String message) { - Component component = Component.text("[" + level.getName() + "] " + message).color(level.getColor()); - player.sendMessage(component); + if (PluginConfiguration.isPaperServer()) { + Component component = Component.text("[" + level.getName() + "] " + message).color(level.getColor()); + player.sendMessage(component); + } else if (PluginConfiguration.isSpigotServer()) { + String formattedMessage = String.format("%s[%s] %s", level.getSpigotColor(), level.getName(), message); + player.sendMessage(formattedMessage); + } else { + String formattedMessage = String.format("%s[%s] %s", level.getSpigotColor(), level.getName(), "An invalid server software is currently being used. Please use either PaperMC or Spigot."); + player.sendMessage(formattedMessage); + } } /** diff --git a/src/main/java/net/jeqo/bloons/logger/LoggingLevel.java b/src/main/java/net/jeqo/bloons/logger/LoggingLevel.java index fc8eff5e..e3a29548 100644 --- a/src/main/java/net/jeqo/bloons/logger/LoggingLevel.java +++ b/src/main/java/net/jeqo/bloons/logger/LoggingLevel.java @@ -12,30 +12,33 @@ public enum LoggingLevel { /** * Used in the case there is a soft error */ - WARNING("WARNING", NamedTextColor.RED), + WARNING("WARNING", NamedTextColor.RED, "§c"), /** * Used in the case there is an informational message */ - INFO("INFO", NamedTextColor.YELLOW), + INFO("INFO", NamedTextColor.YELLOW, "§e"), /** * Used in the case there is a hard error */ - ERROR("ERROR", NamedTextColor.DARK_RED), + ERROR("ERROR", NamedTextColor.DARK_RED, "§4"), /** * Used for debugging purposes only */ - DEBUG("DEBUG", NamedTextColor.WHITE); + DEBUG("DEBUG", NamedTextColor.WHITE, "§f"); private final String name; private final NamedTextColor color; + private final String spigotColor; /** * Create a new logging level * @param name The name of the logging level to use in the console, type java.lang.String * @param color The Minecraft chat color of the logging level, type net.kyori.adventure.text.format.NamedTextColor + * @param spigotColor The colour used to send coloured messages using the spigot message system */ - LoggingLevel(String name, NamedTextColor color) { + LoggingLevel(String name, NamedTextColor color, String spigotColor) { this.name = name; this.color = color; + this.spigotColor = spigotColor; } } \ No newline at end of file From 850116f775502286c2f9b0745de3195e9232d6bd Mon Sep 17 00:00:00 2001 From: IanTapply22 Date: Tue, 28 Jan 2025 15:47:36 -0500 Subject: [PATCH 4/6] Strip paper only usages --- pom.xml | 17 ----- .../bloons/balloon/model/BalloonModel.java | 17 +++-- .../multipart/MultipartBalloonType.java | 5 ++ .../multipart/balloon/MultipartBalloon.java | 3 +- .../multipart/nodes/MultipartBalloonNode.java | 22 +++---- .../bloons/balloon/single/SingleBalloon.java | 19 +----- .../balloon/single/SingleBalloonType.java | 5 ++ .../jeqo/bloons/commands/CommandEquip.java | 30 ++------- .../bloons/commands/CommandForceEquip.java | 28 ++------ .../bloons/commands/CommandForceUnequip.java | 23 ++----- .../jeqo/bloons/commands/CommandReload.java | 10 +-- .../jeqo/bloons/commands/CommandUnequip.java | 17 +---- .../bloons/commands/manager/CommandCore.java | 17 ++--- .../bloons/commands/utils/ErrorHandling.java | 22 +++---- .../configuration/ConfigConfiguration.java | 27 +++++--- .../configuration/PluginConfiguration.java | 20 ------ .../net/jeqo/bloons/events/BloonsEvent.java | 66 ------------------- .../multipart/MultipartBalloonEquipEvent.java | 57 ---------------- .../MultipartBalloonForceEquipEvent.java | 57 ---------------- .../MultipartBalloonForceUnequipEvent.java | 26 -------- .../multipart/MultipartBalloonStoreEvent.java | 26 -------- .../MultipartBalloonUnequipEvent.java | 26 -------- .../single/SingleBalloonEquipEvent.java | 33 ---------- .../single/SingleBalloonForceEquipEvent.java | 25 ------- .../SingleBalloonForceUnequipEvent.java | 26 -------- .../single/SingleBalloonStoreEvent.java | 26 -------- .../single/SingleBalloonUnequipEvent.java | 26 -------- .../general/BloonsConfigReloadEvent.java | 9 --- src/main/java/net/jeqo/bloons/gui/GUI.java | 12 +--- .../java/net/jeqo/bloons/gui/GUICore.java | 5 -- .../gui/item/border/BlackGlassPaneBorder.java | 6 +- .../item/filler/BlackGlassPaneFillerItem.java | 7 +- .../jeqo/bloons/gui/menus/BalloonMenu.java | 6 +- .../bloons/listeners/BalloonMenuListener.java | 48 +++----------- .../listeners/BalloonUnleashListener.java | 11 ---- .../MultipartBalloonPlayerJoinListener.java | 6 -- .../MultipartBalloonPlayerLeaveListener.java | 9 +-- .../MultipartBalloonPlayerListener.java | 46 ++----------- .../single/SingleBalloonPlayerListener.java | 23 ------- .../java/net/jeqo/bloons/logger/Logger.java | 21 ++---- .../net/jeqo/bloons/logger/LoggingLevel.java | 17 ++--- .../management/SingleBalloonManagement.java | 17 ----- .../bloons/message/MessageTranslations.java | 26 -------- 43 files changed, 129 insertions(+), 816 deletions(-) delete mode 100644 src/main/java/net/jeqo/bloons/events/BloonsEvent.java delete mode 100644 src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonEquipEvent.java delete mode 100644 src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonForceEquipEvent.java delete mode 100644 src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonForceUnequipEvent.java delete mode 100644 src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonStoreEvent.java delete mode 100644 src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonUnequipEvent.java delete mode 100644 src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonEquipEvent.java delete mode 100644 src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonForceEquipEvent.java delete mode 100644 src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonForceUnequipEvent.java delete mode 100644 src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonStoreEvent.java delete mode 100644 src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonUnequipEvent.java delete mode 100644 src/main/java/net/jeqo/bloons/events/general/BloonsConfigReloadEvent.java diff --git a/pom.xml b/pom.xml index 9de7fd64..ff842f86 100644 --- a/pom.xml +++ b/pom.xml @@ -76,10 +76,6 @@ - - papermc-repo - https://repo.papermc.io/repository/maven-public/ - sonatype https://oss.sonatype.org/content/groups/public/ @@ -105,19 +101,6 @@ - - - io.papermc.paper - paper-api - 1.21.3-R0.1-SNAPSHOT - provided - - - net.kyori - adventure-text-minimessage - 4.18.0 - - org.spigotmc diff --git a/src/main/java/net/jeqo/bloons/balloon/model/BalloonModel.java b/src/main/java/net/jeqo/bloons/balloon/model/BalloonModel.java index bb31dac9..da5c960c 100644 --- a/src/main/java/net/jeqo/bloons/balloon/model/BalloonModel.java +++ b/src/main/java/net/jeqo/bloons/balloon/model/BalloonModel.java @@ -29,12 +29,14 @@ public static ItemStack createColouredModel(Material material, Color colour, int } ItemStack generatedItem = new ItemStack(material); - LeatherArmorMeta generatedItemMeta = (LeatherArmorMeta) generatedItem.getItemMeta(); + LeatherArmorMeta generatedItemLeatherMeta = (LeatherArmorMeta) generatedItem.getItemMeta(); + + if (generatedItemLeatherMeta == null) return generatedItem; // Set the color and custom model data of the item in the metadata - generatedItemMeta.setColor(colour); - generatedItemMeta.setCustomModelData(customModelData); - generatedItem.setItemMeta(generatedItemMeta); + generatedItemLeatherMeta.setColor(colour); + generatedItemLeatherMeta.setCustomModelData(customModelData); + generatedItem.setItemMeta(generatedItemLeatherMeta); return generatedItem; } @@ -68,6 +70,7 @@ public static ItemStack createColouredModel(Material material, int colourRed, in Color color = Color.fromRGB(colourRed, colourGreen, colourBlue); // Set the color and custom model data of the item in the metadata + assert generatedItemMeta != null; // Equivalent of setting to regular leather colour, assume we aren't generatedItemMeta.setColor(color); generatedItemMeta.setCustomModelData(customModelData); generatedItem.setItemMeta(generatedItemMeta); @@ -85,6 +88,12 @@ public static ItemStack createBlankModel(Material material, int customModelData) ItemStack generatedItem = new ItemStack(material); ItemMeta generatedItemMeta = generatedItem.getItemMeta(); + // Check if the item supports ItemMeta + if (generatedItemMeta == null) { + Logger.logError(String.format("The specified material does not support ItemMeta: %s", material)); + return generatedItem; + } + // Set the custom model data of the item generatedItemMeta.setCustomModelData(customModelData); generatedItem.setItemMeta(generatedItemMeta); diff --git a/src/main/java/net/jeqo/bloons/balloon/multipart/MultipartBalloonType.java b/src/main/java/net/jeqo/bloons/balloon/multipart/MultipartBalloonType.java index 57713fd8..4b0be698 100644 --- a/src/main/java/net/jeqo/bloons/balloon/multipart/MultipartBalloonType.java +++ b/src/main/java/net/jeqo/bloons/balloon/multipart/MultipartBalloonType.java @@ -2,6 +2,7 @@ import lombok.Getter; import lombok.Setter; +import net.jeqo.bloons.colors.ColorCodeConverter; /** * An object to store the data of a balloon created in the config.yml file @@ -133,4 +134,8 @@ public MultipartBalloonType(String id, String permission, String name, String[] this.setBodyModel(bodyModel); // required this.setTailModel(tailModel); // required } + + public String getName() { + return ColorCodeConverter.adventureToColorCode(this.name); + } } diff --git a/src/main/java/net/jeqo/bloons/balloon/multipart/balloon/MultipartBalloon.java b/src/main/java/net/jeqo/bloons/balloon/multipart/balloon/MultipartBalloon.java index 8a7b9a25..f7e4d373 100644 --- a/src/main/java/net/jeqo/bloons/balloon/multipart/balloon/MultipartBalloon.java +++ b/src/main/java/net/jeqo/bloons/balloon/multipart/balloon/MultipartBalloon.java @@ -6,7 +6,6 @@ import net.jeqo.bloons.balloon.multipart.MultipartBalloonType; import net.jeqo.bloons.balloon.multipart.nodes.MultipartBalloonNode; import net.jeqo.bloons.configuration.BalloonConfiguration; -import net.kyori.adventure.text.Component; import org.bukkit.Location; import org.bukkit.entity.Chicken; import org.bukkit.entity.Player; @@ -95,7 +94,7 @@ public void initializeBalloonLead() { this.getChicken().setAgeLock(true); this.getChicken().setAware(false); this.getChicken().setCollidable(false); - this.getChicken().customName(Component.text(BalloonConfiguration.BALLOON_CHICKEN_ID)); + this.getChicken().setCustomName(BalloonConfiguration.BALLOON_CHICKEN_ID); } /** diff --git a/src/main/java/net/jeqo/bloons/balloon/multipart/nodes/MultipartBalloonNode.java b/src/main/java/net/jeqo/bloons/balloon/multipart/nodes/MultipartBalloonNode.java index 3c331f7a..5a3154a6 100644 --- a/src/main/java/net/jeqo/bloons/balloon/multipart/nodes/MultipartBalloonNode.java +++ b/src/main/java/net/jeqo/bloons/balloon/multipart/nodes/MultipartBalloonNode.java @@ -6,7 +6,6 @@ import org.bukkit.Location; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Player; -import org.bukkit.inventory.EquipmentSlot; import org.bukkit.util.EulerAngle; import org.bukkit.util.Vector; @@ -271,17 +270,18 @@ public EulerAngle calculateHeadPose(Vector pointA, Vector pointB) { * Sets the correct position and item in the armor stand. */ public void display() { - EquipmentSlot slot = EquipmentSlot.HEAD; // Sets the segments finalized models based on their position in the balloon - if (this.getIndex() == this.getBalloonType().getNodeCount() - 1) { - // Set the head model - this.getBalloonArmorStand().setItem(slot, this.getBalloonType().getHeadModel().getFinalizedModel()); - } else if (this.getIndex() == 0) { - // Set the tail model - this.getBalloonArmorStand().setItem(slot, this.getBalloonType().getTailModel().getFinalizedModel()); - } else { - // Set the body model - this.getBalloonArmorStand().setItem(slot, this.getBalloonType().getBodyModel().getFinalizedModel()); + if (this.getBalloonArmorStand().getEquipment() != null) { + if (this.getIndex() == this.getBalloonType().getNodeCount() - 1) { + // Set the head model + this.getBalloonArmorStand().getEquipment().setHelmet(this.getBalloonType().getHeadModel().getFinalizedModel()); + } else if (this.getIndex() == 0) { + // Set the tail model + this.getBalloonArmorStand().getEquipment().setHelmet(this.getBalloonType().getTailModel().getFinalizedModel()); + } else { + // Set the body model + this.getBalloonArmorStand().getEquipment().setHelmet(this.getBalloonType().getBodyModel().getFinalizedModel()); + } } // Creates a new Bukkit vector based on the position of the two points diff --git a/src/main/java/net/jeqo/bloons/balloon/single/SingleBalloon.java b/src/main/java/net/jeqo/bloons/balloon/single/SingleBalloon.java index 373ba8ce..465414c6 100644 --- a/src/main/java/net/jeqo/bloons/balloon/single/SingleBalloon.java +++ b/src/main/java/net/jeqo/bloons/balloon/single/SingleBalloon.java @@ -8,13 +8,10 @@ import lombok.Setter; import net.jeqo.bloons.Bloons; import net.jeqo.bloons.configuration.BalloonConfiguration; -import net.jeqo.bloons.events.balloon.single.SingleBalloonEquipEvent; -import net.jeqo.bloons.events.balloon.single.SingleBalloonForceUnequipEvent; import net.jeqo.bloons.logger.Logger; import net.jeqo.bloons.message.Languages; import net.jeqo.bloons.management.SingleBalloonManagement; import net.jeqo.bloons.colors.Color; -import net.kyori.adventure.text.Component; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; @@ -127,7 +124,7 @@ public void initializeBalloonArmorStand() { e.printStackTrace(); } } - this.getArmorStand().customName(Component.text(BalloonConfiguration.BALLOON_ARMOR_STAND_ID)); + this.getArmorStand().setCustomName(BalloonConfiguration.BALLOON_ARMOR_STAND_ID); } /** @@ -143,7 +140,7 @@ public void initializeBalloonLead() { this.getChicken().setAware(false); this.getChicken().setCollidable(false); this.getChicken().setLeashHolder(this.getPlayer()); - this.getChicken().customName(Component.text(BalloonConfiguration.BALLOON_CHICKEN_ID)); + this.getChicken().setCustomName(BalloonConfiguration.BALLOON_CHICKEN_ID); } /** @@ -315,21 +312,9 @@ public void run() { SingleBalloon initialBalloon = Bloons.getPlayerSingleBalloons().get(player.getUniqueId()); if (initialBalloon != null) return; - // Call the unequip event and check if it's cancelled - SingleBalloonForceUnequipEvent unequipEvent = new SingleBalloonForceUnequipEvent(player, null); - unequipEvent.callEvent(); - - if (unequipEvent.isCancelled()) return; - // Remove the balloon from the player SingleBalloonManagement.removeBalloon(player, null); - // Call the equip event and check if it's cancelled - SingleBalloonEquipEvent equipEvent = new SingleBalloonEquipEvent(player, balloonID); - equipEvent.callEvent(); - - if (equipEvent.isCancelled()) return; - // Create a new balloon and add it to the player/start the runnables and add the player to the maps SingleBalloon balloon = new SingleBalloon(player, balloonID); balloon.runTaskTimer(Bloons.getInstance(), 0L, 1L); diff --git a/src/main/java/net/jeqo/bloons/balloon/single/SingleBalloonType.java b/src/main/java/net/jeqo/bloons/balloon/single/SingleBalloonType.java index 4dd0acbd..c60729bc 100644 --- a/src/main/java/net/jeqo/bloons/balloon/single/SingleBalloonType.java +++ b/src/main/java/net/jeqo/bloons/balloon/single/SingleBalloonType.java @@ -2,6 +2,7 @@ import lombok.Getter; import lombok.Setter; +import net.jeqo.bloons.colors.ColorCodeConverter; /** * Represents the contents of a configuration for a single balloon @@ -106,4 +107,8 @@ public SingleBalloonType(String key, String id, String permission, String materi this.setName(name); this.setLore(lore); } + + public String getName() { + return ColorCodeConverter.adventureToColorCode(this.name); + } } diff --git a/src/main/java/net/jeqo/bloons/commands/CommandEquip.java b/src/main/java/net/jeqo/bloons/commands/CommandEquip.java index c1bd0893..0961e643 100644 --- a/src/main/java/net/jeqo/bloons/commands/CommandEquip.java +++ b/src/main/java/net/jeqo/bloons/commands/CommandEquip.java @@ -8,14 +8,10 @@ import net.jeqo.bloons.balloon.single.SingleBalloonType; import net.jeqo.bloons.commands.manager.Command; import net.jeqo.bloons.commands.manager.types.CommandPermission; -import net.jeqo.bloons.events.balloon.multipart.MultipartBalloonEquipEvent; -import net.jeqo.bloons.events.balloon.multipart.MultipartBalloonUnequipEvent; -import net.jeqo.bloons.events.balloon.single.SingleBalloonEquipEvent; import net.jeqo.bloons.message.Languages; import net.jeqo.bloons.management.SingleBalloonManagement; import net.jeqo.bloons.message.MessageTranslations; import net.jeqo.bloons.management.MultipartBalloonManagement; -import net.kyori.adventure.text.Component; import org.bukkit.Sound; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -52,7 +48,7 @@ public boolean execute(CommandSender sender, String[] args) { // If the balloon ID isn't found in both balloon types, send a message to the player if (Bloons.getBalloonCore().containsSingleBalloon(balloonID) && Bloons.getBalloonCore().containsMultipartBalloon(balloonID)) { - Component balloonNotFoundMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("balloon-not-found")); + String balloonNotFoundMessage = Languages.getMessage("prefix") + Languages.getMessage("balloon-not-found"); player.sendMessage(balloonNotFoundMessage); return false; } @@ -62,7 +58,7 @@ public boolean execute(CommandSender sender, String[] args) { if (singleBalloonType != null) { if (!player.hasPermission(singleBalloonType.getPermission())) { - Component noPermissionMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("no-permission")); + String noPermissionMessage = Languages.getMessage("prefix") + Languages.getMessage("no-permission"); player.sendMessage(noPermissionMessage); return false; } @@ -70,7 +66,7 @@ public boolean execute(CommandSender sender, String[] args) { if (multipartBalloonType != null) { if (!player.hasPermission(multipartBalloonType.getPermission())) { - Component noPermissionMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("no-permission")); + String noPermissionMessage = Languages.getMessage("prefix") + Languages.getMessage("no-permission"); player.sendMessage(noPermissionMessage); return false; } @@ -81,22 +77,12 @@ public boolean execute(CommandSender sender, String[] args) { // If the player has a previous multipart balloon, unequip it if (previousBalloon != null) { - MultipartBalloonUnequipEvent multipartBalloonUnequipEvent = new MultipartBalloonUnequipEvent(player, previousBalloon); - multipartBalloonUnequipEvent.callEvent(); - - if (multipartBalloonUnequipEvent.isCancelled()) return false; - previousBalloon.destroy(); MultipartBalloonManagement.removePlayerBalloon(player.getUniqueId()); } // If the balloon ID is a multipart balloon type, equip the balloon with the multipart associated methods if (type != null) { - MultipartBalloonEquipEvent multipartBalloonEquipEvent = new MultipartBalloonEquipEvent(player, balloonID); - multipartBalloonEquipEvent.callEvent(); - - if (multipartBalloonEquipEvent.isCancelled()) return false; - MultipartBalloonBuilder builder = new MultipartBalloonBuilder(type, player); SingleBalloonManagement.removeBalloon(player, Bloons.getPlayerSingleBalloons().get(player.getUniqueId())); MultipartBalloon balloon = builder.build(); @@ -105,22 +91,16 @@ public boolean execute(CommandSender sender, String[] args) { MultipartBalloonManagement.setPlayerBalloon(player.getUniqueId(), balloon); - Component equippedMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), String.format(Languages.getMessage("equipped"), type.getName())); + String equippedMessage = Languages.getMessage("prefix") + String.format(Languages.getMessage("equipped"), type.getName()); player.sendMessage(equippedMessage); // If the balloon ID is a single balloon type, equip the balloon with the single associated methods } else { - // Call the equip event and check if it's cancelled, if it is, don't spawn the balloon or do anything - SingleBalloonEquipEvent singleBalloonEquipEvent = new SingleBalloonEquipEvent(player, balloonID); - singleBalloonEquipEvent.callEvent(); - - if (singleBalloonEquipEvent.isCancelled()) return false; - // Check if a balloon needs to be added or removed SingleBalloonManagement.removeBalloon(player, Bloons.getPlayerSingleBalloons().get(player.getUniqueId())); SingleBalloon.checkBalloonRemovalOrAdd(player, balloonID); - Component equippedMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), String.format(Languages.getMessage("equipped"), singleBalloonType.getName())); + String equippedMessage = Languages.getMessage("prefix") + String.format(Languages.getMessage("equipped"), singleBalloonType.getName()); player.sendMessage(equippedMessage); } diff --git a/src/main/java/net/jeqo/bloons/commands/CommandForceEquip.java b/src/main/java/net/jeqo/bloons/commands/CommandForceEquip.java index c521f630..90b96d4f 100644 --- a/src/main/java/net/jeqo/bloons/commands/CommandForceEquip.java +++ b/src/main/java/net/jeqo/bloons/commands/CommandForceEquip.java @@ -8,14 +8,10 @@ import net.jeqo.bloons.balloon.single.SingleBalloonType; import net.jeqo.bloons.commands.manager.Command; import net.jeqo.bloons.commands.manager.types.CommandPermission; -import net.jeqo.bloons.events.balloon.multipart.MultipartBalloonEquipEvent; -import net.jeqo.bloons.events.balloon.multipart.MultipartBalloonUnequipEvent; -import net.jeqo.bloons.events.balloon.single.SingleBalloonEquipEvent; import net.jeqo.bloons.message.Languages; import net.jeqo.bloons.management.SingleBalloonManagement; import net.jeqo.bloons.message.MessageTranslations; import net.jeqo.bloons.management.MultipartBalloonManagement; -import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -50,7 +46,7 @@ public boolean execute(CommandSender sender, String[] args) { // If the player isn't found, send a message to the sender if (player == null) { - Component playerNotFoundMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("player-not-found")); + String playerNotFoundMessage = Languages.getMessage("prefix") + Languages.getMessage("player-not-found"); sender.sendMessage(playerNotFoundMessage); return false; } @@ -59,7 +55,7 @@ public boolean execute(CommandSender sender, String[] args) { // If the balloon ID isn't found in both balloon types, send a message to the sender if (Bloons.getBalloonCore().containsSingleBalloon(balloonID) && Bloons.getBalloonCore().containsMultipartBalloon(balloonID)) { - Component balloonNotFoundMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("balloon-not-found")); + String balloonNotFoundMessage = Languages.getMessage("prefix") + Languages.getMessage("balloon-not-found"); sender.sendMessage(balloonNotFoundMessage); return false; } @@ -69,22 +65,12 @@ public boolean execute(CommandSender sender, String[] args) { // If the player has a previous multipart balloon, unequip it if (previousBalloon != null) { - MultipartBalloonUnequipEvent multipartBalloonUnequipEvent = new MultipartBalloonUnequipEvent(player, previousBalloon); - multipartBalloonUnequipEvent.callEvent(); - - if (multipartBalloonUnequipEvent.isCancelled()) return false; - previousBalloon.destroy(); MultipartBalloonManagement.removePlayerBalloon(player.getUniqueId()); } // If the balloon ID is a multipart balloon type, equip the balloon with the multipart associated methods if (type != null) { - MultipartBalloonEquipEvent multipartBalloonEquipEvent = new MultipartBalloonEquipEvent(player, balloonID); - multipartBalloonEquipEvent.callEvent(); - - if (multipartBalloonEquipEvent.isCancelled()) return false; - MultipartBalloonBuilder builder = new MultipartBalloonBuilder(type, player); SingleBalloonManagement.removeBalloon(player, Bloons.getPlayerSingleBalloons().get(player.getUniqueId())); MultipartBalloon balloon = builder.build(); @@ -93,24 +79,18 @@ public boolean execute(CommandSender sender, String[] args) { MultipartBalloonManagement.setPlayerBalloon(player.getUniqueId(), balloon); - Component equippedMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), String.format(Languages.getMessage("equipped"), type.getName())); + String equippedMessage = Languages.getMessage("prefix") + String.format(Languages.getMessage("equipped"), type.getName()); player.sendMessage(equippedMessage); // If the balloon ID is a single balloon type, equip the balloon with the single associated methods } else { SingleBalloonType singleBalloonType = Bloons.getBalloonCore().getSingleBalloonByID(balloonID); - // Call the equip event and check if it's cancelled, if it is, don't spawn the balloon or do anything - SingleBalloonEquipEvent singleBalloonEquipEvent = new SingleBalloonEquipEvent(player, balloonID); - singleBalloonEquipEvent.callEvent(); - - if (singleBalloonEquipEvent.isCancelled()) return false; - // Check if a balloon needs to be added or removed SingleBalloonManagement.removeBalloon(player, Bloons.getPlayerSingleBalloons().get(player.getUniqueId())); SingleBalloon.checkBalloonRemovalOrAdd(player, balloonID); - Component equippedMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), String.format(Languages.getMessage("equipped"), singleBalloonType.getName())); + String equippedMessage = Languages.getMessage("prefix") + String.format(Languages.getMessage("equipped"), singleBalloonType.getName()); player.sendMessage(equippedMessage); } diff --git a/src/main/java/net/jeqo/bloons/commands/CommandForceUnequip.java b/src/main/java/net/jeqo/bloons/commands/CommandForceUnequip.java index ff69e303..fc34c324 100644 --- a/src/main/java/net/jeqo/bloons/commands/CommandForceUnequip.java +++ b/src/main/java/net/jeqo/bloons/commands/CommandForceUnequip.java @@ -5,13 +5,10 @@ import net.jeqo.bloons.balloon.single.SingleBalloon; import net.jeqo.bloons.commands.manager.Command; import net.jeqo.bloons.commands.manager.types.CommandPermission; -import net.jeqo.bloons.events.balloon.multipart.MultipartBalloonUnequipEvent; -import net.jeqo.bloons.events.balloon.single.SingleBalloonUnequipEvent; import net.jeqo.bloons.message.Languages; import net.jeqo.bloons.management.SingleBalloonManagement; import net.jeqo.bloons.message.MessageTranslations; import net.jeqo.bloons.management.MultipartBalloonManagement; -import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -34,7 +31,7 @@ public boolean execute(CommandSender sender, String[] args) { // If the specified player doesn't exist, send a message to the sender if (player == null) { - Component playerNotFoundMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("player-not-found")); + String playerNotFoundMessage = Languages.getMessage("prefix") + Languages.getMessage("player-not-found"); sender.sendMessage(playerNotFoundMessage); return false; } @@ -44,33 +41,21 @@ public boolean execute(CommandSender sender, String[] args) { // If the player doesn't have any balloons equipped, send a message to the sender if (singleBalloon == null && multipartBalloon == null) { - Component notEquippedMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("not-equipped")); + String notEquippedMessage = Languages.getMessage("prefix") + Languages.getMessage("not-equipped"); player.sendMessage(notEquippedMessage); return false; } // If the player has a single balloon equipped, unequip it - if (singleBalloon != null) { - SingleBalloonUnequipEvent singleBalloonUnequipEvent = new SingleBalloonUnequipEvent(player, singleBalloon); - singleBalloonUnequipEvent.callEvent(); - - if (singleBalloonUnequipEvent.isCancelled()) return false; - - SingleBalloonManagement.removeBalloon(player, singleBalloon); - } + SingleBalloonManagement.removeBalloon(player, singleBalloon); // If the player has a multipart balloon equipped, unequip it if (multipartBalloon != null) { - MultipartBalloonUnequipEvent multipartBalloonUnequipEvent = new MultipartBalloonUnequipEvent(player, multipartBalloon); - multipartBalloonUnequipEvent.callEvent(); - - if (multipartBalloonUnequipEvent.isCancelled()) return false; - multipartBalloon.destroy(); MultipartBalloonManagement.removePlayerBalloon(player.getUniqueId()); } - Component unequipSuccessfulMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("unequipped")); + String unequipSuccessfulMessage = Languages.getMessage("prefix") + Languages.getMessage("unequipped"); sender.sendMessage(unequipSuccessfulMessage); return false; } diff --git a/src/main/java/net/jeqo/bloons/commands/CommandReload.java b/src/main/java/net/jeqo/bloons/commands/CommandReload.java index 1b4b9c19..efdde0da 100644 --- a/src/main/java/net/jeqo/bloons/commands/CommandReload.java +++ b/src/main/java/net/jeqo/bloons/commands/CommandReload.java @@ -3,10 +3,8 @@ import net.jeqo.bloons.Bloons; import net.jeqo.bloons.commands.manager.Command; import net.jeqo.bloons.commands.manager.types.CommandPermission; -import net.jeqo.bloons.events.general.BloonsConfigReloadEvent; import net.jeqo.bloons.message.Languages; import net.jeqo.bloons.message.MessageTranslations; -import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; @@ -32,12 +30,6 @@ public CommandReload(JavaPlugin plugin) { public boolean execute(CommandSender sender, String[] args) { MessageTranslations messageTranslations = new MessageTranslations(this.getPlugin()); - // Trigger a custom event upon the reload of the config - BloonsConfigReloadEvent bloonsConfigReloadEvent = new BloonsConfigReloadEvent(); - bloonsConfigReloadEvent.callEvent(); - - if (bloonsConfigReloadEvent.isCancelled()) return false; - // Reload the main config.yml and its defaults Bloons.getInstance().reloadConfig(); Bloons.getInstance().getConfig().options().copyDefaults(); @@ -46,7 +38,7 @@ public boolean execute(CommandSender sender, String[] args) { // Refresh balloons and their configurations from their respective files Bloons.getBalloonCore().initialize(); - Component configReloadedMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("config-reloaded")); + String configReloadedMessage = Languages.getMessage("prefix") + Languages.getMessage("config-reloaded"); sender.sendMessage(configReloadedMessage); return false; diff --git a/src/main/java/net/jeqo/bloons/commands/CommandUnequip.java b/src/main/java/net/jeqo/bloons/commands/CommandUnequip.java index 794ce9fa..87d7e7b4 100644 --- a/src/main/java/net/jeqo/bloons/commands/CommandUnequip.java +++ b/src/main/java/net/jeqo/bloons/commands/CommandUnequip.java @@ -5,13 +5,10 @@ import net.jeqo.bloons.balloon.single.SingleBalloon; import net.jeqo.bloons.commands.manager.Command; import net.jeqo.bloons.commands.manager.types.CommandPermission; -import net.jeqo.bloons.events.balloon.multipart.MultipartBalloonUnequipEvent; -import net.jeqo.bloons.events.balloon.single.SingleBalloonUnequipEvent; import net.jeqo.bloons.message.Languages; import net.jeqo.bloons.management.SingleBalloonManagement; import net.jeqo.bloons.message.MessageTranslations; import net.jeqo.bloons.management.MultipartBalloonManagement; -import net.kyori.adventure.text.Component; import org.bukkit.Sound; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -45,33 +42,23 @@ public boolean execute(CommandSender sender, String[] args) { // If the player doesn't have any balloons equipped, send a message to the player if (singleBalloon == null && multipartBalloon == null) { - Component notEquippedMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("not-equipped")); + String notEquippedMessage = Languages.getMessage("prefix") + Languages.getMessage("not-equipped"); player.sendMessage(notEquippedMessage); return false; } // If the player has a single balloon equipped, unequip it if (singleBalloon != null) { - SingleBalloonUnequipEvent singleBalloonUnequipEvent = new SingleBalloonUnequipEvent(player, singleBalloon); - singleBalloonUnequipEvent.callEvent(); - - if (singleBalloonUnequipEvent.isCancelled()) return false; - SingleBalloonManagement.removeBalloon(player, singleBalloon); } // If the player has a multipart balloon equipped, unequip it if (multipartBalloon != null) { - MultipartBalloonUnequipEvent multipartBalloonEquipEvent = new MultipartBalloonUnequipEvent(player, multipartBalloon); - multipartBalloonEquipEvent.callEvent(); - - if (multipartBalloonEquipEvent.isCancelled()) return false; - multipartBalloon.destroy(); MultipartBalloonManagement.removePlayerBalloon(player.getUniqueId()); } - Component unequipSuccessfulMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("unequipped")); + String unequipSuccessfulMessage = Languages.getMessage("prefix") + Languages.getMessage("unequipped"); player.sendMessage(unequipSuccessfulMessage); player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_HURT_SWEET_BERRY_BUSH, 1, 1); return false; diff --git a/src/main/java/net/jeqo/bloons/commands/manager/CommandCore.java b/src/main/java/net/jeqo/bloons/commands/manager/CommandCore.java index 85223ccf..d6058b79 100644 --- a/src/main/java/net/jeqo/bloons/commands/manager/CommandCore.java +++ b/src/main/java/net/jeqo/bloons/commands/manager/CommandCore.java @@ -12,7 +12,6 @@ import net.jeqo.bloons.colors.Color; import net.jeqo.bloons.message.Languages; import net.jeqo.bloons.message.MessageTranslations; -import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -104,7 +103,7 @@ public boolean onCommand(@NotNull CommandSender sender, org.bukkit.command.@NotN Player player = (Player) sender; if (!player.hasPermission("bloons.menu")) { - Component noPermission = this.getMessageTranslations().getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("no-permission")); + String noPermission = Languages.getMessage("prefix") + Languages.getMessage("no-permission"); player.sendMessage(noPermission); return true; } @@ -154,13 +153,13 @@ public boolean onCommand(@NotNull CommandSender sender, org.bukkit.command.@NotN if (currentCommand.getCommandAliases().contains(subcommand)) { // Check if the sender has the permission to execute the command if (!meetsRequirements(currentCommand, sender)) { - sender.sendMessage(this.getMessageTranslations().getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("no-permission"))); + sender.sendMessage(Languages.getMessage("prefix") + Languages.getMessage("no-permission")); return false; } // Check if the command is disabled if (currentCommand.getRequiredAccess() == CommandAccess.DISABLED) { - sender.sendMessage(this.getMessageTranslations().getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("command-disabled"))); + sender.sendMessage(Languages.getMessage("prefix") + Languages.getMessage("command-disabled")); return false; } @@ -237,7 +236,7 @@ private ItemStack createBalloonItem(SingleBalloonType singleBalloonType) { return null; } - meta.setLocalizedName(singleBalloonType.getKey()); + meta.setItemName(singleBalloonType.getKey()); setBalloonLore(meta, singleBalloonType); setBalloonDisplayName(meta, singleBalloonType); meta.setCustomModelData(singleBalloonType.getCustomModelData()); @@ -266,7 +265,7 @@ private ItemStack createBalloonItem(MultipartBalloonType multipartBalloonType) { return null; } - meta.setLocalizedName(multipartBalloonType.getId()); + meta.setItemName(multipartBalloonType.getId()); setBalloonLore(meta, multipartBalloonType); setBalloonDisplayName(meta, multipartBalloonType); meta.setCustomModelData(multipartBalloonType.getHeadModel().getCustomModelData()); @@ -312,9 +311,8 @@ private void setBalloonLore(ItemMeta meta, MultipartBalloonType multipartBalloon */ private void setBalloonDisplayName(ItemMeta meta, SingleBalloonType singleBalloonType) { String name = singleBalloonType.getName(); - MessageTranslations messageTranslations = new MessageTranslations(this.getPlugin()); if (name != null) { - meta.displayName(messageTranslations.getSerializedString(name)); + meta.setDisplayName(name); } } @@ -325,9 +323,8 @@ private void setBalloonDisplayName(ItemMeta meta, SingleBalloonType singleBalloo */ private void setBalloonDisplayName(ItemMeta meta, MultipartBalloonType multipartBalloonType) { String name = multipartBalloonType.getName(); - MessageTranslations messageTranslations = new MessageTranslations(this.getPlugin()); if (name != null) { - meta.displayName(messageTranslations.getSerializedString(name)); + meta.setDisplayName(name); } } diff --git a/src/main/java/net/jeqo/bloons/commands/utils/ErrorHandling.java b/src/main/java/net/jeqo/bloons/commands/utils/ErrorHandling.java index 4295aae0..568b327e 100644 --- a/src/main/java/net/jeqo/bloons/commands/utils/ErrorHandling.java +++ b/src/main/java/net/jeqo/bloons/commands/utils/ErrorHandling.java @@ -3,7 +3,6 @@ import net.jeqo.bloons.Bloons; import net.jeqo.bloons.configuration.PluginConfiguration; import net.jeqo.bloons.message.MessageTranslations; -import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; /** @@ -17,40 +16,41 @@ public class ErrorHandling { * @param sender The sender of the command, type org.bukkit.command.CommandSender */ public static void usage(CommandSender sender) { + // MessageTranslations will need to adapt for plain text MessageTranslations messageTranslations = new MessageTranslations(Bloons.getInstance()); - sender.sendMessage(Component.text("")); + sender.sendMessage(""); // Blank line for spacing if (sender.hasPermission("bloons.menu")) { - Component menuMessage = messageTranslations.getSerializedString(" /bloons - Open the balloon menu"); + String menuMessage = " §d/bloons §7- Open the balloon menu"; sender.sendMessage(menuMessage); } if (sender.hasPermission("bloons.equip")) { - Component equipMessage = messageTranslations.getSerializedString(" /bloons equip - " + Bloons.getCommandCore().getCommandDescription("equip")); + String equipMessage = " §d/bloons equip §7- " + Bloons.getCommandCore().getCommandDescription("equip"); sender.sendMessage(equipMessage); } if (sender.hasPermission("bloons.unequip")) { - Component unequipMessage = messageTranslations.getSerializedString(" /bloons unequip - " + Bloons.getCommandCore().getCommandDescription("unequip")); + String unequipMessage = " §d/bloons unequip §7- " + Bloons.getCommandCore().getCommandDescription("unequip"); sender.sendMessage(unequipMessage); } if (sender.hasPermission("bloons.force")) { - Component forceEquipMessage = messageTranslations.getSerializedString(" /bloons fequip - " + Bloons.getCommandCore().getCommandDescription("fequip")); - Component forceUnequipMessage = messageTranslations.getSerializedString(" /bloons funequip - " + Bloons.getCommandCore().getCommandDescription("funequip")); + String forceEquipMessage = " §d/bloons fequip §7- " + Bloons.getCommandCore().getCommandDescription("fequip"); + String forceUnequipMessage = " §d/bloons funequip §7- " + Bloons.getCommandCore().getCommandDescription("funequip"); sender.sendMessage(forceEquipMessage); sender.sendMessage(forceUnequipMessage); } if (sender.hasPermission("bloons.reload")) { - Component reloadMessage = messageTranslations.getSerializedString(" /bloons reload - " + Bloons.getCommandCore().getCommandDescription("reload")); + String reloadMessage = " §d/bloons reload §7- " + Bloons.getCommandCore().getCommandDescription("reload"); sender.sendMessage(reloadMessage); } // Send the credits no matter what at the end of the help section - sender.sendMessage(Component.text("")); - Component creditsMessage = messageTranslations.getSerializedString(" Bloons " + PluginConfiguration.getVersion() + " - Made by " + PluginConfiguration.DEVELOPER_CREDITS); + sender.sendMessage(""); // Blank line for spacing + String creditsMessage = " §dBloons " + PluginConfiguration.getVersion() + " §7- Made by " + PluginConfiguration.DEVELOPER_CREDITS; sender.sendMessage(creditsMessage); - sender.sendMessage(Component.text("")); + sender.sendMessage(""); // Blank line for spacing } } diff --git a/src/main/java/net/jeqo/bloons/configuration/ConfigConfiguration.java b/src/main/java/net/jeqo/bloons/configuration/ConfigConfiguration.java index 77e2edc9..defdcbec 100644 --- a/src/main/java/net/jeqo/bloons/configuration/ConfigConfiguration.java +++ b/src/main/java/net/jeqo/bloons/configuration/ConfigConfiguration.java @@ -1,5 +1,6 @@ package net.jeqo.bloons.configuration; +import lombok.Getter; import net.jeqo.bloons.Bloons; import net.jeqo.bloons.balloon.model.BalloonSegmentType; import net.jeqo.bloons.balloon.multipart.MultipartBalloonModel; @@ -16,6 +17,8 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; +import java.util.Objects; +import java.util.stream.Stream; /** * A class that contains configurations for the plugin configuration file @@ -30,19 +33,23 @@ public class ConfigConfiguration { */ public static final String LANGUAGES_CONFIGURATION_FOLDER = "languages"; + @Getter + private static final String balloonConfigurationFolder = Bloons.getInstance().getDataFolder() + File.separator + BALLOON_CONFIGURATION_FOLDER; + /** * Gets the number of configuration files currently in the balloon configuration folder * @return The number of configuration files in the balloon configuration folder. Returns 0 upon none found. type long */ public static long getBalloonConfigurationCount() { try { - Path path = Path.of(Bloons.getInstance().getDataFolder() + File.separator + BALLOON_CONFIGURATION_FOLDER); - return Files.walk(path).filter(Files::isRegularFile).count(); - } catch (IOException e) { - e.printStackTrace(); + Path path = Path.of(getBalloonConfigurationFolder()); + try (Stream paths = Files.walk(path)) { + return paths.filter(Files::isRegularFile).count(); + } + } catch (Exception e) { + Logger.logError(String.format("An error occurred while counting balloon configuration files: %s", e.getMessage())); + return 0; } - - return 0; } /** @@ -53,7 +60,7 @@ public static long getBalloonConfigurationCount() { public static ArrayList getSingleBalloons() { // Start an array of single balloon types that's empty ArrayList singleBalloons = new ArrayList<>(); - File folder = new File(Bloons.getInstance().getDataFolder() + File.separator + BALLOON_CONFIGURATION_FOLDER); + File folder = new File(getBalloonConfigurationFolder()); // Check if the folder exists if (!folder.exists() || !folder.isDirectory()) { @@ -211,19 +218,19 @@ public static ArrayList getMultipartBalloons() { new MultipartBalloonModel( BalloonSegmentType.HEAD, config.getString(key + ".head.material"), - config.getString(key + ".head.color"), + Objects.requireNonNull(config.getString(key + ".head.color")), config.getInt(key + ".head.custom-model-data") ), new MultipartBalloonModel( BalloonSegmentType.BODY, config.getString(key + ".body.material"), - config.getString(key + ".body.color"), + Objects.requireNonNull(config.getString(key + ".body.color")), config.getInt(key + ".body.custom-model-data") ), new MultipartBalloonModel( BalloonSegmentType.TAIL, config.getString(key + ".tail.material"), - config.getString(key + ".tail.color"), + Objects.requireNonNull(config.getString(key + ".tail.color")), config.getInt(key + ".tail.custom-model-data") ) )); diff --git a/src/main/java/net/jeqo/bloons/configuration/PluginConfiguration.java b/src/main/java/net/jeqo/bloons/configuration/PluginConfiguration.java index 5f56e5c3..9362a022 100644 --- a/src/main/java/net/jeqo/bloons/configuration/PluginConfiguration.java +++ b/src/main/java/net/jeqo/bloons/configuration/PluginConfiguration.java @@ -44,24 +44,4 @@ public static String getDescription() { public static String getURL() { return Bloons.getInstance().getDescription().getWebsite(); } - - public static boolean isSpigotServer() { - try { - // Check if a Spigot-specific class is available - Class.forName("org.spigotmc.SpigotConfig"); - return true; - } catch (ClassNotFoundException e) { - return false; - } - } - - public static boolean isPaperServer() { - try { - // Check if a Paper-specific class is available - Class.forName("com.destroystokyo.paper.PaperConfig"); - return true; - } catch (ClassNotFoundException e) { - return false; - } - } } diff --git a/src/main/java/net/jeqo/bloons/events/BloonsEvent.java b/src/main/java/net/jeqo/bloons/events/BloonsEvent.java deleted file mode 100644 index d465ea84..00000000 --- a/src/main/java/net/jeqo/bloons/events/BloonsEvent.java +++ /dev/null @@ -1,66 +0,0 @@ -package net.jeqo.bloons.events; - -import org.bukkit.event.Cancellable; -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; -import org.bukkit.plugin.Plugin; -import org.jetbrains.annotations.NotNull; - -/** - * A custom even class that can be used to create our own bloons events - * These are nearly the same as Bukkit events and can be used interchangeably - */ -public class BloonsEvent extends Event implements Cancellable { - - private static final HandlerList HANDLER_LIST = new HandlerList(); - private boolean cancelled; - - /** - * Gets all listeners that are listening to this event - * @return A list of handlers, type org.bukkit.event.HandlerList - */ - @Override - public @NotNull HandlerList getHandlers() { - return HANDLER_LIST; - } - - /** - * Returns whether the event is cancelled. - * @return true if the event is cancelled, false otherwise, type boolean - */ - @Override - public boolean isCancelled() { - return this.cancelled; - } - - /** - * Sets whether the event is cancelled. - * @param cancel true if you wish to cancel this event, false otherwise, type boolean - */ - @Override - public void setCancelled(boolean cancel) { - this.cancelled = cancel; - } - - /** - * Cancels the current event - */ - public void cancel() { - this.setCancelled(true); - } - - /** - * Unregisters the listener - * @param plugin the plugin to unregister the event from, type org.bukkit.plugin.Plugin - */ - public void unregister(Plugin plugin) { - this.getHandlers().unregister(plugin); - } - - /** - * Unregisters all listeners from the event - */ - public void unregisterAll() { - HandlerList.unregisterAll(); - } -} diff --git a/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonEquipEvent.java b/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonEquipEvent.java deleted file mode 100644 index 2bc2c50e..00000000 --- a/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonEquipEvent.java +++ /dev/null @@ -1,57 +0,0 @@ -package net.jeqo.bloons.events.balloon.multipart; - -import lombok.Getter; -import lombok.Setter; -import net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon; -import net.jeqo.bloons.events.BloonsEvent; -import org.bukkit.entity.Player; - -/** - * An event that is called when a player equips a multipart balloon - */ -@Getter @Setter -public class MultipartBalloonEquipEvent extends BloonsEvent { - private Player player; - private MultipartBalloon balloon; - private String balloonID; - - /** - * Constructor to trigger the MultipartBalloonEquipEvent - * @param player The player that is equipping the balloon, type org.bukkit.entity.Player - * @param balloon The balloon that is being equipped, type net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon - * @param balloonID The ID of the balloon that is being equipped, type java.lang.String - */ - public MultipartBalloonEquipEvent(Player player, MultipartBalloon balloon, String balloonID) { - this.setPlayer(player); - this.setBalloon(balloon); - this.setBalloonID(balloonID); - } - - /** - * Constructor to trigger the MultipartBalloonEquipEvent - * @param player The player that is equipping the balloon, type org.bukkit.entity.Player - * @param balloon The balloon that is being equipped, type net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon - */ - public MultipartBalloonEquipEvent(Player player, MultipartBalloon balloon) { - this.setPlayer(player); - this.setBalloon(balloon); - } - - /** - * Constructor to trigger the MultipartBalloonEquipEvent - * @param player The player that is equipping the balloon, type org.bukkit.entity.Player - * @param balloonID The ID of the balloon that is being equipped, type java.lang.String - */ - public MultipartBalloonEquipEvent(Player player, String balloonID) { - this.setPlayer(player); - this.setBalloonID(balloonID); - } - - /** - * Constructor to trigger the MultipartBalloonEquipEvent - * @param player The player that is equipping the balloon, type org.bukkit.entity.Player - */ - public MultipartBalloonEquipEvent(Player player) { - this.setPlayer(player); - } -} diff --git a/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonForceEquipEvent.java b/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonForceEquipEvent.java deleted file mode 100644 index bc4e153e..00000000 --- a/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonForceEquipEvent.java +++ /dev/null @@ -1,57 +0,0 @@ -package net.jeqo.bloons.events.balloon.multipart; - -import lombok.Getter; -import lombok.Setter; -import net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon; -import net.jeqo.bloons.events.BloonsEvent; -import org.bukkit.entity.Player; - -/** - * An event that is called when a player force equips a multipart balloon - */ -@Getter @Setter -public class MultipartBalloonForceEquipEvent extends BloonsEvent { - private Player player; - private MultipartBalloon balloon; - private String balloonID; - - /** - * Constructor to trigger the MultipartBalloonForceEquipEvent - * @param player The player that is equipping the balloon, type org.bukkit.entity.Player - * @param balloon The balloon that is being equipped, type net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon - * @param balloonID The ID of the balloon that is being force equipped, type java.lang.String - */ - public MultipartBalloonForceEquipEvent(Player player, MultipartBalloon balloon, String balloonID) { - this.setPlayer(player); - this.setBalloon(balloon); - this.setBalloonID(balloonID); - } - - /** - * Constructor to trigger the MultipartBalloonForceEquipEvent - * @param player The player that is equipping the balloon, type org.bukkit.entity.Player - * @param balloon The balloon that is being force equipped, type net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon - */ - public MultipartBalloonForceEquipEvent(Player player, MultipartBalloon balloon) { - this.setPlayer(player); - this.setBalloon(balloon); - } - - /** - * Constructor to trigger the MultipartBalloonForceEquipEvent - * @param player The player that is equipping the balloon, type org.bukkit.entity.Player - * @param balloonID The ID of the balloon that is being force equipped, type java.lang.String - */ - public MultipartBalloonForceEquipEvent(Player player, String balloonID) { - this.setPlayer(player); - this.setBalloonID(balloonID); - } - - /** - * Constructor to trigger the MultipartBalloonForceEquipEvent - * @param player The player that is equipping the balloon, type org.bukkit.entity.Player - */ - public MultipartBalloonForceEquipEvent(Player player) { - this.setPlayer(player); - } -} diff --git a/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonForceUnequipEvent.java b/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonForceUnequipEvent.java deleted file mode 100644 index e27ee8d8..00000000 --- a/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonForceUnequipEvent.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.jeqo.bloons.events.balloon.multipart; - -import lombok.Getter; -import lombok.Setter; -import net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon; -import net.jeqo.bloons.events.BloonsEvent; -import org.bukkit.entity.Player; - -/** - * An event that is called when a player force unequips a multipart balloon - */ -@Getter @Setter -public class MultipartBalloonForceUnequipEvent extends BloonsEvent { - private Player player; - private MultipartBalloon balloon; - - /** - * Constructor to trigger the MultipartBalloonForceUnequipEvent - * @param player The player that is unequipping the balloon, type org.bukkit.entity.Player - * @param balloon The balloon that is being force unequipped, type net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon - */ - public MultipartBalloonForceUnequipEvent(Player player, MultipartBalloon balloon) { - this.setPlayer(player); - this.setBalloon(balloon); - } -} diff --git a/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonStoreEvent.java b/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonStoreEvent.java deleted file mode 100644 index 0ad9738b..00000000 --- a/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonStoreEvent.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.jeqo.bloons.events.balloon.multipart; - -import lombok.Getter; -import lombok.Setter; -import net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon; -import net.jeqo.bloons.events.BloonsEvent; -import org.bukkit.entity.Player; - -/** - * An event that is called when a player stores a multipart balloon - */ -@Getter @Setter -public class MultipartBalloonStoreEvent extends BloonsEvent { - private Player player; - private MultipartBalloon balloon; - - /** - * Constructor to trigger the MultipartBalloonStoreEvent - * @param player The player that is storing the balloon, type org.bukkit.entity.Player - * @param balloon The balloon that is being stored, type net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon - */ - public MultipartBalloonStoreEvent(Player player, MultipartBalloon balloon) { - this.setPlayer(player); - this.setBalloon(balloon); - } -} diff --git a/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonUnequipEvent.java b/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonUnequipEvent.java deleted file mode 100644 index 7b019c02..00000000 --- a/src/main/java/net/jeqo/bloons/events/balloon/multipart/MultipartBalloonUnequipEvent.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.jeqo.bloons.events.balloon.multipart; - -import lombok.Getter; -import lombok.Setter; -import net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon; -import net.jeqo.bloons.events.BloonsEvent; -import org.bukkit.entity.Player; - -/** - * An event that is called when a player unequips a multipart balloon - */ -@Getter @Setter -public class MultipartBalloonUnequipEvent extends BloonsEvent { - private Player player; - private MultipartBalloon balloon; - - /** - * Constructor to trigger the MultipartBalloonUnequipEvent - * @param player The player that is unequipping the balloon, type org.bukkit.entity.Player - * @param balloon The balloon that is being unequipped, type net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon - */ - public MultipartBalloonUnequipEvent(Player player, MultipartBalloon balloon) { - this.setPlayer(player); - this.setBalloon(balloon); - } -} diff --git a/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonEquipEvent.java b/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonEquipEvent.java deleted file mode 100644 index f1947f4e..00000000 --- a/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonEquipEvent.java +++ /dev/null @@ -1,33 +0,0 @@ -package net.jeqo.bloons.events.balloon.single; - -import lombok.Getter; -import lombok.Setter; -import net.jeqo.bloons.events.BloonsEvent; -import org.bukkit.entity.Player; - -/** - * An event that is called when a player equips a single balloon - */ -@Getter @Setter -public class SingleBalloonEquipEvent extends BloonsEvent { - private Player player; - private String balloonID; - - /** - * Constructor to trigger the SingleBalloonEquipEvent - * @param player The player that is equipping the balloon, type org.bukkit.entity.Player - * @param balloonID The ID of the balloon that is being equipped, type java.lang.String - */ - public SingleBalloonEquipEvent(Player player, String balloonID) { - this.setPlayer(player); - this.setBalloonID(balloonID); - } - - /** - * Constructor to trigger the SingleBalloonEquipEvent - * @param player The player that is equipping the balloon, type org.bukkit.entity.Player - */ - public SingleBalloonEquipEvent(Player player) { - this.setPlayer(player); - } -} diff --git a/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonForceEquipEvent.java b/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonForceEquipEvent.java deleted file mode 100644 index bd4f86ee..00000000 --- a/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonForceEquipEvent.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.jeqo.bloons.events.balloon.single; - -import lombok.Getter; -import lombok.Setter; -import net.jeqo.bloons.events.BloonsEvent; -import org.bukkit.entity.Player; - -/** - * An event that is called when a player force equips a single balloon - */ -@Getter @Setter -public class SingleBalloonForceEquipEvent extends BloonsEvent { - private Player player; - private String balloonID; - - /** - * Constructor to trigger the SingleBalloonForceEquipEvent - * @param player The player that is equipping the balloon, type org.bukkit.entity.Player - * @param balloonID The ID of the balloon that is being force equipped, type java.lang.String - */ - public SingleBalloonForceEquipEvent(Player player, String balloonID) { - this.setPlayer(player); - this.setBalloonID(balloonID); - } -} diff --git a/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonForceUnequipEvent.java b/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonForceUnequipEvent.java deleted file mode 100644 index 79dfce3a..00000000 --- a/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonForceUnequipEvent.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.jeqo.bloons.events.balloon.single; - -import lombok.Getter; -import lombok.Setter; -import net.jeqo.bloons.balloon.single.SingleBalloon; -import net.jeqo.bloons.events.BloonsEvent; -import org.bukkit.entity.Player; - -/** - * An event that is called when a player force unequips a single balloon - */ -@Getter @Setter -public class SingleBalloonForceUnequipEvent extends BloonsEvent { - private Player player; - private SingleBalloon balloon; - - /** - * Constructor to trigger the SingleBalloonForceUnequipEvent - * @param player The player that is unequipping the balloon, type org.bukkit.entity.Player - * @param balloon The balloon that is being force unequipped, type net.jeqo.bloons.balloon.single.SingleBalloon - */ - public SingleBalloonForceUnequipEvent(Player player, SingleBalloon balloon) { - this.setPlayer(player); - this.setBalloon(balloon); - } -} diff --git a/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonStoreEvent.java b/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonStoreEvent.java deleted file mode 100644 index 7a8e1290..00000000 --- a/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonStoreEvent.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.jeqo.bloons.events.balloon.single; - -import lombok.Getter; -import lombok.Setter; -import net.jeqo.bloons.balloon.single.SingleBalloon; -import net.jeqo.bloons.events.BloonsEvent; -import org.bukkit.entity.Player; - -/** - * An event that is called when a player stores a single balloon - */ -@Getter @Setter -public class SingleBalloonStoreEvent extends BloonsEvent { - private Player player; - private SingleBalloon balloon; - - /** - * Constructor to trigger the SingleBalloonStoreEvent - * @param player The player that is storing the balloon, type org.bukkit.entity.Player - * @param balloon The balloon that is being stored, type net.jeqo.bloons.balloon.single.SingleBalloon - */ - public SingleBalloonStoreEvent(Player player, SingleBalloon balloon) { - this.setPlayer(player); - this.setBalloon(balloon); - } -} diff --git a/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonUnequipEvent.java b/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonUnequipEvent.java deleted file mode 100644 index c3ea93d1..00000000 --- a/src/main/java/net/jeqo/bloons/events/balloon/single/SingleBalloonUnequipEvent.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.jeqo.bloons.events.balloon.single; - -import lombok.Getter; -import lombok.Setter; -import net.jeqo.bloons.balloon.single.SingleBalloon; -import net.jeqo.bloons.events.BloonsEvent; -import org.bukkit.entity.Player; - -/** - * An event that is called when a player unequips a single balloon - */ -@Getter @Setter -public class SingleBalloonUnequipEvent extends BloonsEvent { - private Player player; - private SingleBalloon balloon; - - /** - * Constructor to trigger the SingleBalloonUnequipEvent - * @param player The player that is unequipping the balloon, type org.bukkit.entity.Player - * @param balloon The balloon that is being unequipped, type net.jeqo.bloons.balloon.single.SingleBalloon - */ - public SingleBalloonUnequipEvent(Player player, SingleBalloon balloon) { - this.setPlayer(player); - this.setBalloon(balloon); - } -} diff --git a/src/main/java/net/jeqo/bloons/events/general/BloonsConfigReloadEvent.java b/src/main/java/net/jeqo/bloons/events/general/BloonsConfigReloadEvent.java deleted file mode 100644 index 9f24f75c..00000000 --- a/src/main/java/net/jeqo/bloons/events/general/BloonsConfigReloadEvent.java +++ /dev/null @@ -1,9 +0,0 @@ -package net.jeqo.bloons.events.general; - -import net.jeqo.bloons.events.BloonsEvent; - -/** - * An event that is called when the Bloons config is reloaded - * No player or balloon is involved in this event so the constructor is empty - */ -public class BloonsConfigReloadEvent extends BloonsEvent { } \ No newline at end of file diff --git a/src/main/java/net/jeqo/bloons/gui/GUI.java b/src/main/java/net/jeqo/bloons/gui/GUI.java index a73e5120..597ada15 100644 --- a/src/main/java/net/jeqo/bloons/gui/GUI.java +++ b/src/main/java/net/jeqo/bloons/gui/GUI.java @@ -1,8 +1,6 @@ package net.jeqo.bloons.gui; -import net.jeqo.bloons.events.BloonsEvent; import net.jeqo.bloons.item.NBTItem; -import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; @@ -25,7 +23,7 @@ public abstract class GUI { * The name that is displayed as the GUI title * @return The name, type net.kyori.adventure.text.Component */ - public abstract Component name(); + public abstract String name(); /** * The number of slots that are present within the GUI @@ -56,14 +54,6 @@ public abstract class GUI { */ public abstract GUIClickableItem cantPickup(NBTItem item, int slot); - /** - * The event that is fired when the GUI is opened or triggered - * @return The event, type net.jeqo.bloons.events.BloonsEvent - */ - public BloonsEvent triggerEvent() { - return null; - } - /** * Determines what happens when the GUI is closed * @param player The player that closed the GUI, type org.bukkit.entity.Player diff --git a/src/main/java/net/jeqo/bloons/gui/GUICore.java b/src/main/java/net/jeqo/bloons/gui/GUICore.java index 966cc74e..79e1dea3 100644 --- a/src/main/java/net/jeqo/bloons/gui/GUICore.java +++ b/src/main/java/net/jeqo/bloons/gui/GUICore.java @@ -90,11 +90,6 @@ public void openGUI(GUI gui, Player player) { gui.open(player); player.openInventory(gui.inventory()); gui.startUpdater(this.getPlugin()); - - // Trigger the event specified in the GUI if it exists - if (gui.triggerEvent() != null) { - gui.triggerEvent().callEvent(); - } } /** diff --git a/src/main/java/net/jeqo/bloons/gui/item/border/BlackGlassPaneBorder.java b/src/main/java/net/jeqo/bloons/gui/item/border/BlackGlassPaneBorder.java index 7e3911d6..edff31da 100644 --- a/src/main/java/net/jeqo/bloons/gui/item/border/BlackGlassPaneBorder.java +++ b/src/main/java/net/jeqo/bloons/gui/item/border/BlackGlassPaneBorder.java @@ -2,7 +2,6 @@ import net.jeqo.bloons.gui.GUIClickableItem; import net.jeqo.bloons.item.NBTItem; -import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; @@ -35,7 +34,10 @@ public NBTItem getItem() { // Create and set the item meta for the black glass pane border NBTItem item = new NBTItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE)); ItemMeta meta = item.getItemMeta(); - meta.displayName(Component.text(" ")); + + if (meta == null) return null; + + meta.setDisplayName(""); item.setItemMeta(meta); return item; diff --git a/src/main/java/net/jeqo/bloons/gui/item/filler/BlackGlassPaneFillerItem.java b/src/main/java/net/jeqo/bloons/gui/item/filler/BlackGlassPaneFillerItem.java index 2482e178..35c5be6b 100644 --- a/src/main/java/net/jeqo/bloons/gui/item/filler/BlackGlassPaneFillerItem.java +++ b/src/main/java/net/jeqo/bloons/gui/item/filler/BlackGlassPaneFillerItem.java @@ -2,7 +2,6 @@ import net.jeqo.bloons.gui.GUIClickableItem; import net.jeqo.bloons.item.NBTItem; -import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; @@ -35,8 +34,12 @@ public NBTItem getItem() { // Create and set the item meta for the black glass pane filler NBTItem item = new NBTItem(new ItemStack(Material.COOKIE)); ItemMeta meta = item.getItemMeta(); - meta.displayName(Component.text(" ")); + + if (meta == null) return null; + + meta.setDisplayName(""); item.setItemMeta(meta); + return item; } }; diff --git a/src/main/java/net/jeqo/bloons/gui/menus/BalloonMenu.java b/src/main/java/net/jeqo/bloons/gui/menus/BalloonMenu.java index f8170f5e..81a70c5e 100644 --- a/src/main/java/net/jeqo/bloons/gui/menus/BalloonMenu.java +++ b/src/main/java/net/jeqo/bloons/gui/menus/BalloonMenu.java @@ -57,7 +57,7 @@ private Inventory getBlankPage(String name){ ItemStack nextPage = new ItemStack(Material.valueOf(this.getMessageTranslations().getString("buttons.next-page.material"))); ItemMeta nextMeta = nextPage.getItemMeta(); assert nextMeta != null; - nextMeta.displayName(this.getMessageTranslations().getSerializedString(this.getMessageTranslations().getString("buttons.next-page.name"))); + nextMeta.setDisplayName(this.getMessageTranslations().getString("buttons.next-page.name")); nextMeta.setCustomModelData(this.getMessageTranslations().getInt("buttons.next-page.custom-model-data")); nextPage.setItemMeta(nextMeta); @@ -65,7 +65,7 @@ private Inventory getBlankPage(String name){ ItemStack prevPage = new ItemStack(Material.valueOf(this.getMessageTranslations().getString("buttons.previous-page.material"))); ItemMeta prevMeta = prevPage.getItemMeta(); assert prevMeta != null; - prevMeta.displayName(this.getMessageTranslations().getSerializedString(this.getMessageTranslations().getString("buttons.previous-page.name")));; + prevMeta.setDisplayName(this.getMessageTranslations().getString("buttons.previous-page.name")); prevMeta.setCustomModelData(this.getMessageTranslations().getInt("buttons.previous-page.custom-model-data")); prevPage.setItemMeta(prevMeta); @@ -73,7 +73,7 @@ private Inventory getBlankPage(String name){ ItemStack removeBalloon = new ItemStack(Material.valueOf(this.getMessageTranslations().getString("buttons.unequip.material"))); ItemMeta removeMeta = removeBalloon.getItemMeta(); assert removeMeta != null; - removeMeta.displayName(this.getMessageTranslations().getSerializedString(this.getMessageTranslations().getString("buttons.unequip.name")));; + removeMeta.setDisplayName(this.getMessageTranslations().getString("buttons.unequip.name")); removeMeta.setCustomModelData(this.getMessageTranslations().getInt("buttons.unequip.custom-model-data")); removeBalloon.setItemMeta(removeMeta); diff --git a/src/main/java/net/jeqo/bloons/listeners/BalloonMenuListener.java b/src/main/java/net/jeqo/bloons/listeners/BalloonMenuListener.java index cf7977c7..b3d9d4cb 100644 --- a/src/main/java/net/jeqo/bloons/listeners/BalloonMenuListener.java +++ b/src/main/java/net/jeqo/bloons/listeners/BalloonMenuListener.java @@ -8,16 +8,11 @@ import net.jeqo.bloons.balloon.single.SingleBalloonType; import net.jeqo.bloons.colors.Color; import net.jeqo.bloons.colors.ColorCodeConverter; -import net.jeqo.bloons.events.balloon.multipart.MultipartBalloonEquipEvent; -import net.jeqo.bloons.events.balloon.multipart.MultipartBalloonUnequipEvent; -import net.jeqo.bloons.events.balloon.single.SingleBalloonEquipEvent; -import net.jeqo.bloons.events.balloon.single.SingleBalloonUnequipEvent; import net.jeqo.bloons.gui.menus.BalloonMenu; import net.jeqo.bloons.message.Languages; import net.jeqo.bloons.message.MessageTranslations; import net.jeqo.bloons.management.MultipartBalloonManagement; import net.jeqo.bloons.management.SingleBalloonManagement; -import net.kyori.adventure.text.Component; import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -52,7 +47,7 @@ public void onClick(InventoryClickEvent event){ // Get the display name of the item clicked and the converted balloon name String displayName = event.getCurrentItem().getItemMeta().getDisplayName(); - String localizedName = event.getCurrentItem().getItemMeta().getLocalizedName(); + String localizedName = event.getCurrentItem().getItemMeta().getItemName(); String convertedColourBalloonName = ColorCodeConverter.colorCodeToAdventure(displayName); // Weird parsing is needed for this because of the usage of minimessage // Always check for shift clicks @@ -68,38 +63,21 @@ public void onClick(InventoryClickEvent event){ MultipartBalloonType type = Bloons.getBalloonCore().getMultipartBalloonByID(localizedName); MultipartBalloon previousBalloon = MultipartBalloonManagement.getPlayerBalloon(player.getUniqueId()); if (previousBalloon != null) { - MultipartBalloonUnequipEvent multipartBalloonEquipEvent = new MultipartBalloonUnequipEvent(player, previousBalloon); - multipartBalloonEquipEvent.callEvent(); - - if (multipartBalloonEquipEvent.isCancelled()) return; - previousBalloon.destroy(); MultipartBalloonManagement.removePlayerBalloon(player.getUniqueId()); } + + MultipartBalloonBuilder builder = new MultipartBalloonBuilder(type, player); + SingleBalloonManagement.removeBalloon(player, Bloons.getPlayerSingleBalloons().get(player.getUniqueId())); if (type != null) { - MultipartBalloonBuilder builder = new MultipartBalloonBuilder(type, player); - SingleBalloonManagement.removeBalloon(player, Bloons.getPlayerSingleBalloons().get(player.getUniqueId())); MultipartBalloon balloon = builder.build(); - // Call the equip event and check if it's cancelled, if it is, don't spawn the balloon or do anything - MultipartBalloonEquipEvent multipartBalloonEquipEvent = new MultipartBalloonEquipEvent(player); - multipartBalloonEquipEvent.callEvent(); - - if (multipartBalloonEquipEvent.isCancelled()) return; - balloon.initialize(); balloon.run(); MultipartBalloonManagement.setPlayerBalloon(player.getUniqueId(), balloon); } else { - // Call the equip event and check if it's cancelled, if it is, don't spawn the balloon or do anything - SingleBalloonEquipEvent singleBalloonEquipEvent = new SingleBalloonEquipEvent(player); - singleBalloonEquipEvent.callEvent(); - - if (singleBalloonEquipEvent.isCancelled()) return; - // Check if a balloon needs to be added or removed - SingleBalloonManagement.removeBalloon(player, Bloons.getPlayerSingleBalloons().get(player.getUniqueId())); SingleBalloonType fromName = Bloons.getBalloonCore().getSingleBalloonByName(convertedColourBalloonName); SingleBalloon.checkBalloonRemovalOrAdd(player, fromName.getId()); @@ -107,7 +85,7 @@ public void onClick(InventoryClickEvent event){ // Send equipped message and play sound player.playSound(player.getLocation(), Sound.ENTITY_CHICKEN_EGG, 1, 1); - Component equippedMessage = messageTranslations.getSerializedString(Languages.getMessage("prefix"), String.format(Languages.getMessage("equipped"), convertedColourBalloonName)); + String equippedMessage = Languages.getMessage("prefix") + String.format(Languages.getMessage("equipped"), convertedColourBalloonName); player.sendMessage(equippedMessage); // Close inventory if the config is set to true @@ -158,37 +136,27 @@ else if(displayName.equals(ColorCodeConverter.adventureToColorCode(messageTransl if (singleBalloon == null && multipartBalloon == null) { // If no balloon equipped, play sound and send message notifying them player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_DIDGERIDOO, 1, 1); - player.sendMessage(messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("not-equipped"))); + player.sendMessage(Languages.getMessage("prefix"), Languages.getMessage("not-equipped")); } else { if (singleBalloon != null) { if (messageTranslations.getString("close-on-unequip").equals("true")) player.closeInventory(); - SingleBalloonUnequipEvent singleBalloonUnequipEvent = new SingleBalloonUnequipEvent(player, singleBalloon); - singleBalloonUnequipEvent.callEvent(); - - if (singleBalloonUnequipEvent.isCancelled()) return; - SingleBalloonManagement.removeBalloon(player, singleBalloon); // Play sound and send message saying the balloon is unequipped player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_HURT_SWEET_BERRY_BUSH, 1, 1); - player.sendMessage(messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("unequipped"))); + player.sendMessage(Languages.getMessage("prefix"), Languages.getMessage("unequipped")); } if (multipartBalloon != null) { if (messageTranslations.getString("close-on-unequip").equals("true")) player.closeInventory(); - MultipartBalloonUnequipEvent multipartBalloonEquipEvent = new MultipartBalloonUnequipEvent(player, multipartBalloon); - multipartBalloonEquipEvent.callEvent(); - - if (multipartBalloonEquipEvent.isCancelled()) return; - multipartBalloon.destroy(); MultipartBalloonManagement.removePlayerBalloon(player.getUniqueId()); // Play sound and send message saying the balloon is unequipped player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_HURT_SWEET_BERRY_BUSH, 1, 1); - player.sendMessage(messageTranslations.getSerializedString(Languages.getMessage("prefix"), Languages.getMessage("unequipped"))); + player.sendMessage(Languages.getMessage("prefix"), Languages.getMessage("unequipped")); } } } diff --git a/src/main/java/net/jeqo/bloons/listeners/BalloonUnleashListener.java b/src/main/java/net/jeqo/bloons/listeners/BalloonUnleashListener.java index 809eef75..cd903acd 100644 --- a/src/main/java/net/jeqo/bloons/listeners/BalloonUnleashListener.java +++ b/src/main/java/net/jeqo/bloons/listeners/BalloonUnleashListener.java @@ -33,15 +33,4 @@ public void onUnleash(PlayerUnleashEntityEvent event) { event.setCancelled(true); } } - - /** - * Prevents breaking of the lead from chicken with the internal ID - * @param event The event that is called when an entity is unleashed, type org.bukkit.event.entity.EntityUnleashEvent - */ - @EventHandler - public void onLeadBreak(EntityUnleashEvent event) { - if (event.getEntity().getCustomName() != null && event.getEntity().getCustomName().contains(BalloonConfiguration.BALLOON_CHICKEN_ID)) { - event.setCancelled(true); - } - } } diff --git a/src/main/java/net/jeqo/bloons/listeners/multipart/MultipartBalloonPlayerJoinListener.java b/src/main/java/net/jeqo/bloons/listeners/multipart/MultipartBalloonPlayerJoinListener.java index 311e8f02..549d8847 100644 --- a/src/main/java/net/jeqo/bloons/listeners/multipart/MultipartBalloonPlayerJoinListener.java +++ b/src/main/java/net/jeqo/bloons/listeners/multipart/MultipartBalloonPlayerJoinListener.java @@ -3,7 +3,6 @@ import net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon; import net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloonBuilder; import net.jeqo.bloons.balloon.multipart.MultipartBalloonType; -import net.jeqo.bloons.events.balloon.multipart.MultipartBalloonEquipEvent; import net.jeqo.bloons.management.MultipartBalloonManagement; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -19,11 +18,6 @@ public class MultipartBalloonPlayerJoinListener implements Listener { public void onPlayerJoin(PlayerJoinEvent event) { MultipartBalloon equippedBalloon = MultipartBalloonManagement.getPlayerBalloon(event.getPlayer().getUniqueId()); if (equippedBalloon != null) { - MultipartBalloonEquipEvent equipEvent = new MultipartBalloonEquipEvent(event.getPlayer(), equippedBalloon); - equipEvent.callEvent(); - - if (equipEvent.isCancelled()) return; - MultipartBalloonType balloonType = MultipartBalloonManagement.getPlayerBalloon(event.getPlayer().getUniqueId()).getType(); MultipartBalloonManagement.removePlayerBalloon(event.getPlayer().getUniqueId()); diff --git a/src/main/java/net/jeqo/bloons/listeners/multipart/MultipartBalloonPlayerLeaveListener.java b/src/main/java/net/jeqo/bloons/listeners/multipart/MultipartBalloonPlayerLeaveListener.java index be9c50c3..d477e57d 100644 --- a/src/main/java/net/jeqo/bloons/listeners/multipart/MultipartBalloonPlayerLeaveListener.java +++ b/src/main/java/net/jeqo/bloons/listeners/multipart/MultipartBalloonPlayerLeaveListener.java @@ -1,7 +1,6 @@ package net.jeqo.bloons.listeners.multipart; import net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon; -import net.jeqo.bloons.events.balloon.multipart.MultipartBalloonUnequipEvent; import net.jeqo.bloons.management.MultipartBalloonManagement; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -16,13 +15,9 @@ public class MultipartBalloonPlayerLeaveListener implements Listener { @EventHandler public void onPlayerLeave(PlayerQuitEvent event) { MultipartBalloon playerBalloon = MultipartBalloonManagement.getPlayerBalloon(event.getPlayer().getUniqueId()); - if (playerBalloon != null) { - MultipartBalloonUnequipEvent unequipEvent = new MultipartBalloonUnequipEvent(event.getPlayer(), playerBalloon); - unequipEvent.callEvent(); - if (unequipEvent.isCancelled()) return; + if (playerBalloon == null) return; - playerBalloon.destroy(); - } + playerBalloon.destroy(); } } diff --git a/src/main/java/net/jeqo/bloons/listeners/multipart/MultipartBalloonPlayerListener.java b/src/main/java/net/jeqo/bloons/listeners/multipart/MultipartBalloonPlayerListener.java index 5a69deff..28ef46fd 100644 --- a/src/main/java/net/jeqo/bloons/listeners/multipart/MultipartBalloonPlayerListener.java +++ b/src/main/java/net/jeqo/bloons/listeners/multipart/MultipartBalloonPlayerListener.java @@ -4,8 +4,6 @@ import net.jeqo.bloons.balloon.multipart.MultipartBalloonType; import net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloon; import net.jeqo.bloons.balloon.multipart.balloon.MultipartBalloonBuilder; -import net.jeqo.bloons.events.balloon.multipart.*; -import net.jeqo.bloons.events.balloon.single.SingleBalloonForceUnequipEvent; import net.jeqo.bloons.management.MultipartBalloonManagement; import net.jeqo.bloons.management.SingleBalloonManagement; import org.bukkit.event.EventHandler; @@ -26,13 +24,8 @@ public class MultipartBalloonPlayerListener implements Listener { public void onDeath(PlayerDeathEvent event) { MultipartBalloon balloon = Bloons.getPlayerMultipartBalloons().get(Objects.requireNonNull(event.getEntity().getPlayer()).getUniqueId()); - MultipartBalloonForceUnequipEvent multipartBalloonEquipEvent = new MultipartBalloonForceUnequipEvent(event.getPlayer(), balloon); - multipartBalloonEquipEvent.callEvent(); - - if (multipartBalloonEquipEvent.isCancelled()) return; - balloon.destroy(); - MultipartBalloonManagement.removePlayerBalloon(event.getPlayer().getUniqueId()); + MultipartBalloonManagement.removePlayerBalloon(event.getEntity().getUniqueId()); } /** @@ -41,23 +34,15 @@ public void onDeath(PlayerDeathEvent event) { */ @EventHandler public void onRespawn(PlayerRespawnEvent event) { - MultipartBalloon previousBalloon = Bloons.getPlayerMultipartBalloons().get(event.getPlayer().getPlayer().getUniqueId()); - MultipartBalloonType type = previousBalloon.getType(); + MultipartBalloon previousBalloon = Bloons.getPlayerMultipartBalloons().get(event.getPlayer().getUniqueId()); if (previousBalloon == null) return; - MultipartBalloonForceEquipEvent multipartBalloonEquipEvent = new MultipartBalloonForceEquipEvent(event.getPlayer(), previousBalloon); - multipartBalloonEquipEvent.callEvent(); - - if (multipartBalloonEquipEvent.isCancelled()) return; - - MultipartBalloonBuilder builder = new MultipartBalloonBuilder(type, event.getPlayer()); SingleBalloonManagement.removeBalloon(event.getPlayer(), Bloons.getPlayerSingleBalloons().get(event.getPlayer().getUniqueId())); - MultipartBalloon balloon = builder.build(); - balloon.initialize(); - balloon.run(); + previousBalloon.initialize(); + previousBalloon.run(); - MultipartBalloonManagement.setPlayerBalloon(event.getPlayer().getUniqueId(), balloon); + MultipartBalloonManagement.setPlayerBalloon(event.getPlayer().getUniqueId(), previousBalloon); } /** @@ -67,32 +52,13 @@ public void onRespawn(PlayerRespawnEvent event) { @EventHandler public void onWorldChange(PlayerChangedWorldEvent event) { MultipartBalloon balloon = Bloons.getPlayerMultipartBalloons().get(event.getPlayer().getUniqueId()); - MultipartBalloon previousBalloon = Bloons.getPlayerMultipartBalloons().get(event.getPlayer().getPlayer().getUniqueId()); + MultipartBalloon previousBalloon = Bloons.getPlayerMultipartBalloons().get(event.getPlayer().getUniqueId()); MultipartBalloonType type = previousBalloon.getType(); - MultipartBalloonForceUnequipEvent multipartBalloonForceUnequipEvent = new MultipartBalloonForceUnequipEvent(event.getPlayer(), balloon); - - MultipartBalloonStoreEvent storeEvent = new MultipartBalloonStoreEvent(event.getPlayer(), balloon); - storeEvent.callEvent(); - - if (storeEvent.isCancelled()) return; - if (balloon != null) { - SingleBalloonForceUnequipEvent unequipEvent = new SingleBalloonForceUnequipEvent(event.getPlayer(), Bloons.getPlayerSingleBalloons().get(event.getPlayer().getUniqueId())); - unequipEvent.callEvent(); - - if (unequipEvent.isCancelled()) return; - multipartBalloonForceUnequipEvent.callEvent(); - - if (multipartBalloonForceUnequipEvent.isCancelled()) return; - balloon.destroy(); MultipartBalloonManagement.removePlayerBalloon(event.getPlayer().getUniqueId()); - multipartBalloonForceUnequipEvent.callEvent(); - - if (multipartBalloonForceUnequipEvent.isCancelled()) return; - MultipartBalloonBuilder builder = new MultipartBalloonBuilder(type, event.getPlayer()); SingleBalloonManagement.removeBalloon(event.getPlayer(), Bloons.getPlayerSingleBalloons().get(event.getPlayer().getUniqueId())); MultipartBalloon newBalloon = builder.build(); diff --git a/src/main/java/net/jeqo/bloons/listeners/single/SingleBalloonPlayerListener.java b/src/main/java/net/jeqo/bloons/listeners/single/SingleBalloonPlayerListener.java index ee706d39..2262b9e9 100644 --- a/src/main/java/net/jeqo/bloons/listeners/single/SingleBalloonPlayerListener.java +++ b/src/main/java/net/jeqo/bloons/listeners/single/SingleBalloonPlayerListener.java @@ -2,8 +2,6 @@ import net.jeqo.bloons.Bloons; import net.jeqo.bloons.balloon.single.SingleBalloon; -import net.jeqo.bloons.events.balloon.single.SingleBalloonForceUnequipEvent; -import net.jeqo.bloons.events.balloon.single.SingleBalloonStoreEvent; import net.jeqo.bloons.health.UpdateChecker; import net.jeqo.bloons.logger.Logger; import net.jeqo.bloons.management.SingleBalloonManagement; @@ -28,9 +26,6 @@ public class SingleBalloonPlayerListener implements Listener { public void onQuit(PlayerQuitEvent event) { SingleBalloon owner = Bloons.getPlayerSingleBalloons().get(event.getPlayer().getUniqueId()); - SingleBalloonStoreEvent storeEvent = new SingleBalloonStoreEvent(event.getPlayer(), owner); - storeEvent.callEvent(); - SingleBalloonManagement.storeBalloon(owner); } @@ -45,11 +40,6 @@ public void onJoin(PlayerJoinEvent event) { // If they have a balloon active, remove it and add it back to reduce issues if (balloonID != null) { - SingleBalloonForceUnequipEvent unequipEvent = new SingleBalloonForceUnequipEvent(player, Bloons.getPlayerSingleBalloons().get(player.getUniqueId())); - unequipEvent.callEvent(); - - if (unequipEvent.isCancelled()) return; - SingleBalloonManagement.removeBalloon(event.getPlayer(), Bloons.getPlayerSingleBalloons().get(event.getPlayer().getUniqueId())); SingleBalloon.checkBalloonRemovalOrAdd(event.getPlayer(), balloonID); @@ -75,9 +65,6 @@ public void onJoin(PlayerJoinEvent event) { public void onDeath(PlayerDeathEvent event) { SingleBalloon balloonOwner = Bloons.getPlayerSingleBalloons().get(Objects.requireNonNull(event.getEntity().getPlayer()).getUniqueId()); - SingleBalloonForceUnequipEvent unequipEvent = new SingleBalloonForceUnequipEvent(event.getEntity().getPlayer(), balloonOwner); - unequipEvent.callEvent(); - SingleBalloonManagement.removeBalloon(event.getEntity().getPlayer(), balloonOwner); } @@ -103,19 +90,9 @@ public void onWorldChange(PlayerChangedWorldEvent event) { SingleBalloon balloonOwner = Bloons.getPlayerSingleBalloons().get(event.getPlayer().getUniqueId()); String balloonID = Bloons.getPlayerSingleBalloonID().get(event.getPlayer().getUniqueId()); - SingleBalloonStoreEvent storeEvent = new SingleBalloonStoreEvent(event.getPlayer(), balloonOwner); - storeEvent.callEvent(); - - if (storeEvent.isCancelled()) return; - SingleBalloonManagement.storeBalloon(balloonOwner); if (balloonID != null) { - SingleBalloonForceUnequipEvent unequipEvent = new SingleBalloonForceUnequipEvent(event.getPlayer(), Bloons.getPlayerSingleBalloons().get(event.getPlayer().getUniqueId())); - unequipEvent.callEvent(); - - if (unequipEvent.isCancelled()) return; - SingleBalloonManagement.removeBalloon(event.getPlayer(), Bloons.getPlayerSingleBalloons().get(event.getPlayer().getUniqueId())); SingleBalloon.checkBalloonRemovalOrAdd(event.getPlayer(), balloonID); diff --git a/src/main/java/net/jeqo/bloons/logger/Logger.java b/src/main/java/net/jeqo/bloons/logger/Logger.java index 65810b7f..937f2259 100644 --- a/src/main/java/net/jeqo/bloons/logger/Logger.java +++ b/src/main/java/net/jeqo/bloons/logger/Logger.java @@ -5,7 +5,6 @@ import net.jeqo.bloons.configuration.PluginConfiguration; import net.jeqo.bloons.message.Languages; import net.jeqo.bloons.message.MessageTranslations; -import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -28,16 +27,8 @@ public static void logWithSTDOUT(String message) { * @param message The message to log, type java.lang.String */ public static void logToPlayer(LoggingLevel level, Player player, String message) { - if (PluginConfiguration.isPaperServer()) { - Component component = Component.text("[" + level.getName() + "] " + message).color(level.getColor()); - player.sendMessage(component); - } else if (PluginConfiguration.isSpigotServer()) { - String formattedMessage = String.format("%s[%s] %s", level.getSpigotColor(), level.getName(), message); - player.sendMessage(formattedMessage); - } else { - String formattedMessage = String.format("%s[%s] %s", level.getSpigotColor(), level.getName(), "An invalid server software is currently being used. Please use either PaperMC or Spigot."); - player.sendMessage(formattedMessage); - } + String formattedMessage = String.format("%s[%s] %s", level.getColor(), level.getName(), message); + player.sendMessage(formattedMessage); } /** @@ -46,9 +37,7 @@ public static void logToPlayer(LoggingLevel level, Player player, String message * @param message The message to log, type java.lang.String */ public static void logToPlayer(Player player, String message) { - MessageTranslations messageTranslations = new MessageTranslations(Bloons.getInstance()); - Component component = messageTranslations.getSerializedString(Languages.getMessage("prefix") + message); - player.sendMessage(component); + player.sendMessage(message); } /** @@ -57,8 +46,8 @@ public static void logToPlayer(Player player, String message) { * @param message The message to log, type java.lang.String */ public static void log(LoggingLevel level, String message) { - Component component = Component.text("[" + level.getName() + "] " + message).color(level.getColor()); - Bukkit.getServer().getConsoleSender().sendMessage(component); + String loggedMessage = String.format("%s[%s] %s", level.getColor(), level.getName(), message); + Bukkit.getServer().getConsoleSender().sendMessage(loggedMessage); } /** diff --git a/src/main/java/net/jeqo/bloons/logger/LoggingLevel.java b/src/main/java/net/jeqo/bloons/logger/LoggingLevel.java index e3a29548..3bc9c8e2 100644 --- a/src/main/java/net/jeqo/bloons/logger/LoggingLevel.java +++ b/src/main/java/net/jeqo/bloons/logger/LoggingLevel.java @@ -1,7 +1,7 @@ package net.jeqo.bloons.logger; import lombok.Getter; -import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.ChatColor; /** * The different levels of logging that can be used in the plugin @@ -12,33 +12,30 @@ public enum LoggingLevel { /** * Used in the case there is a soft error */ - WARNING("WARNING", NamedTextColor.RED, "§c"), + WARNING("WARNING", ChatColor.RED), /** * Used in the case there is an informational message */ - INFO("INFO", NamedTextColor.YELLOW, "§e"), + INFO("INFO", ChatColor.YELLOW), /** * Used in the case there is a hard error */ - ERROR("ERROR", NamedTextColor.DARK_RED, "§4"), + ERROR("ERROR", ChatColor.DARK_RED), /** * Used for debugging purposes only */ - DEBUG("DEBUG", NamedTextColor.WHITE, "§f"); + DEBUG("DEBUG", ChatColor.WHITE); private final String name; - private final NamedTextColor color; - private final String spigotColor; + private final ChatColor color; /** * Create a new logging level * @param name The name of the logging level to use in the console, type java.lang.String * @param color The Minecraft chat color of the logging level, type net.kyori.adventure.text.format.NamedTextColor - * @param spigotColor The colour used to send coloured messages using the spigot message system */ - LoggingLevel(String name, NamedTextColor color, String spigotColor) { + LoggingLevel(String name, ChatColor color) { this.name = name; this.color = color; - this.spigotColor = spigotColor; } } \ No newline at end of file diff --git a/src/main/java/net/jeqo/bloons/management/SingleBalloonManagement.java b/src/main/java/net/jeqo/bloons/management/SingleBalloonManagement.java index 48442426..1d617067 100644 --- a/src/main/java/net/jeqo/bloons/management/SingleBalloonManagement.java +++ b/src/main/java/net/jeqo/bloons/management/SingleBalloonManagement.java @@ -2,8 +2,6 @@ import net.jeqo.bloons.Bloons; import net.jeqo.bloons.balloon.single.SingleBalloon; -import net.jeqo.bloons.events.balloon.single.SingleBalloonStoreEvent; -import net.jeqo.bloons.events.balloon.single.SingleBalloonUnequipEvent; import org.bukkit.entity.Player; /** @@ -19,11 +17,6 @@ public class SingleBalloonManagement { public static void removeBalloon(Player player, SingleBalloon owner) { if (owner == null) return; - SingleBalloonUnequipEvent event = new SingleBalloonUnequipEvent(player, owner); - event.callEvent(); - - if (event.isCancelled()) return; - owner.spawnRemoveParticle(); owner.cancel(); Bloons.getPlayerSingleBalloons().remove(player.getUniqueId()); @@ -38,11 +31,6 @@ public static void removeBalloon(Player player, SingleBalloon owner) { public static void quickRemoveBalloon(Player player, SingleBalloon owner) { if (owner == null) return; - SingleBalloonUnequipEvent event = new SingleBalloonUnequipEvent(player, owner); - event.callEvent(); - - if (event.isCancelled()) return; - owner.cancel(); Bloons.getPlayerSingleBalloons().remove(player.getUniqueId()); Bloons.getPlayerSingleBalloonID().remove(player.getUniqueId()); @@ -55,11 +43,6 @@ public static void quickRemoveBalloon(Player player, SingleBalloon owner) { public static void storeBalloon(SingleBalloon balloon) { if (balloon == null) return; - SingleBalloonStoreEvent event = new SingleBalloonStoreEvent(balloon.getPlayer(), balloon); - event.callEvent(); - - if (event.isCancelled()) return; - balloon.cancel(); } } diff --git a/src/main/java/net/jeqo/bloons/message/MessageTranslations.java b/src/main/java/net/jeqo/bloons/message/MessageTranslations.java index 8b785751..e7624597 100644 --- a/src/main/java/net/jeqo/bloons/message/MessageTranslations.java +++ b/src/main/java/net/jeqo/bloons/message/MessageTranslations.java @@ -1,8 +1,5 @@ package net.jeqo.bloons.message; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.TextDecoration; -import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.plugin.java.JavaPlugin; /** @@ -11,29 +8,6 @@ */ public record MessageTranslations(JavaPlugin instance) { - /** - * Converts a message containing MiniMessage serialized strings to a Component that can be used to - * send formatted messages with gradients, rainbows, etc. - * @param messagePrefix The prefix of the message, type java.lang.String - * @param messageSuffix The suffix of the message, type java.lang.String - * @return The formatted message as a Component, type net.kyori.adventure.text.Component - */ - public Component getSerializedString(String messagePrefix, String messageSuffix) { - MiniMessage mm = MiniMessage.miniMessage(); - return mm.deserialize(messagePrefix + messageSuffix); - } - - /** - * Converts a message containing MiniMessage serialized strings to a Component that can be used to - * send formatted messages with gradients, rainbows, etc. - * @param message The message to convert to a deserialized component, type java.lang.String - * @return The formatted message as a Component, type net.kyori.adventure.text.Component - */ - public Component getSerializedString(String message) { - MiniMessage mm = MiniMessage.miniMessage(); - return mm.deserialize(message).decoration(TextDecoration.ITALIC, false); - } - /** * Get a string from the config.yml file * @param path The path to the string, type java.lang.String From d7ee971d6823129fca7620b792da1afd6c5fbdfb Mon Sep 17 00:00:00 2001 From: IanTapply22 Date: Wed, 29 Jan 2025 13:22:21 -0500 Subject: [PATCH 5/6] Fix run-paper Maven task and local dev tools Remove unwanted translations Fix colour translations and update config colours Update translation fallback Add log for unreleased version Bump pom.xml version Update gitignore to incude server files from run task --- .gitignore | 2 + pom.xml | 6 +-- src/main/java/net/jeqo/bloons/Bloons.java | 40 +++++++++++++++++-- .../jeqo/bloons/commands/CommandEquip.java | 11 ++--- .../bloons/commands/CommandForceEquip.java | 9 +++-- .../bloons/commands/CommandForceUnequip.java | 7 ++-- .../jeqo/bloons/commands/CommandReload.java | 3 +- .../jeqo/bloons/commands/CommandUnequip.java | 6 +-- .../bloons/commands/manager/CommandCore.java | 37 +++++++++-------- .../commands/manager/CommandTabCompleter.java | 3 +- .../jeqo/bloons/gui/menus/BalloonMenu.java | 7 ++-- .../single/SingleBalloonPlayerListener.java | 8 +++- .../java/net/jeqo/bloons/logger/Logger.java | 21 +++++++++- .../net/jeqo/bloons/message/Languages.java | 16 +++----- .../bloons/message/MessageTranslations.java | 8 +++- .../resources/balloons/color_pack_example.yml | 10 ++--- .../resources/balloons/dyeable_example.yml | 4 +- src/main/resources/balloons/meg_example.yml | 2 +- .../resources/balloons/multipart_example.yml | 2 +- src/main/resources/config.yml | 8 ++-- src/main/resources/languages/af_ZA.yml | 31 -------------- src/main/resources/languages/ar_SA.yml | 31 -------------- src/main/resources/languages/az_AZ.yml | 31 -------------- src/main/resources/languages/be_BY.yml | 31 -------------- src/main/resources/languages/bg_BG.yml | 31 -------------- src/main/resources/languages/bn_IN.yml | 31 -------------- src/main/resources/languages/bs_BA.yml | 31 -------------- src/main/resources/languages/cs_CZ.yml | 31 -------------- src/main/resources/languages/cy_GB.yml | 31 -------------- src/main/resources/languages/da_DK.yml | 31 -------------- src/main/resources/languages/de_DE.yml | 30 -------------- src/main/resources/languages/el_GR.yml | 31 -------------- src/main/resources/languages/en_US.yml | 19 +++++---- src/main/resources/languages/es_ES.yml | 16 ++++---- src/main/resources/languages/et_EE.yml | 31 -------------- src/main/resources/languages/eu_ES.yml | 31 -------------- src/main/resources/languages/fa_IR.yml | 31 -------------- src/main/resources/languages/fi_FI.yml | 31 -------------- src/main/resources/languages/fo_FO.yml | 31 -------------- src/main/resources/languages/fr_FR.yml | 30 -------------- src/main/resources/languages/gl_ES.yml | 31 -------------- src/main/resources/languages/gu_IN.yml | 31 -------------- src/main/resources/languages/he_IL.yml | 31 -------------- src/main/resources/languages/hi_IN.yml | 31 -------------- src/main/resources/languages/hr_HR.yml | 31 -------------- src/main/resources/languages/hu_HU.yml | 31 -------------- src/main/resources/languages/hy_AM.yml | 31 -------------- src/main/resources/languages/id_ID.yml | 31 -------------- src/main/resources/languages/is_IS.yml | 31 -------------- src/main/resources/languages/it_IT.yml | 31 -------------- src/main/resources/languages/ja_JP.yml | 30 -------------- src/main/resources/languages/ka_GE.yml | 31 -------------- src/main/resources/languages/kk_KZ.yml | 31 -------------- src/main/resources/languages/kn_IN.yml | 31 -------------- src/main/resources/languages/ko_KR.yml | 30 -------------- src/main/resources/languages/kok_IN.yml | 31 -------------- src/main/resources/languages/lt_LT.yml | 31 -------------- src/main/resources/languages/lv_LV.yml | 31 -------------- src/main/resources/languages/mk_MK.yml | 31 -------------- src/main/resources/languages/ml_IN.yml | 31 -------------- src/main/resources/languages/mn_MN.yml | 31 -------------- src/main/resources/languages/mr_IN.yml | 31 -------------- src/main/resources/languages/ms_MY.yml | 31 -------------- src/main/resources/languages/mt_MT.yml | 31 -------------- src/main/resources/languages/nb_NO.yml | 31 -------------- src/main/resources/languages/nl_NL.yml | 31 -------------- src/main/resources/languages/nn_NO.yml | 31 -------------- src/main/resources/languages/pa_IN.yml | 31 -------------- src/main/resources/languages/pl_PL.yml | 31 -------------- src/main/resources/languages/pt_BR.yml | 31 -------------- src/main/resources/languages/ro_RO.yml | 31 -------------- src/main/resources/languages/ru_RU.yml | 30 -------------- src/main/resources/languages/se_NO.yml | 31 -------------- src/main/resources/languages/sk_SK.yml | 31 -------------- src/main/resources/languages/sq_AL.yml | 31 -------------- src/main/resources/languages/sr_BA.yml | 31 -------------- src/main/resources/languages/sv_SE.yml | 31 -------------- src/main/resources/languages/sw_KE.yml | 31 -------------- src/main/resources/languages/syr_SY.yml | 31 -------------- src/main/resources/languages/ta_IN.yml | 31 -------------- src/main/resources/languages/te_IN.yml | 31 -------------- src/main/resources/languages/th_TH.yml | 31 -------------- src/main/resources/languages/tn_ZA.yml | 31 -------------- src/main/resources/languages/tr_TR.yml | 31 -------------- src/main/resources/languages/uk_UA.yml | 31 -------------- src/main/resources/languages/uz_UZ.yml | 31 -------------- src/main/resources/languages/vi_VN.yml | 31 -------------- src/main/resources/languages/xh_ZA.yml | 31 -------------- src/main/resources/languages/zh_CN.yml | 30 -------------- src/main/resources/languages/zh_TW.yml | 31 -------------- 90 files changed, 156 insertions(+), 2191 deletions(-) delete mode 100644 src/main/resources/languages/af_ZA.yml delete mode 100644 src/main/resources/languages/ar_SA.yml delete mode 100644 src/main/resources/languages/az_AZ.yml delete mode 100644 src/main/resources/languages/be_BY.yml delete mode 100644 src/main/resources/languages/bg_BG.yml delete mode 100644 src/main/resources/languages/bn_IN.yml delete mode 100644 src/main/resources/languages/bs_BA.yml delete mode 100644 src/main/resources/languages/cs_CZ.yml delete mode 100644 src/main/resources/languages/cy_GB.yml delete mode 100644 src/main/resources/languages/da_DK.yml delete mode 100644 src/main/resources/languages/de_DE.yml delete mode 100644 src/main/resources/languages/el_GR.yml delete mode 100644 src/main/resources/languages/et_EE.yml delete mode 100644 src/main/resources/languages/eu_ES.yml delete mode 100644 src/main/resources/languages/fa_IR.yml delete mode 100644 src/main/resources/languages/fi_FI.yml delete mode 100644 src/main/resources/languages/fo_FO.yml delete mode 100644 src/main/resources/languages/fr_FR.yml delete mode 100644 src/main/resources/languages/gl_ES.yml delete mode 100644 src/main/resources/languages/gu_IN.yml delete mode 100644 src/main/resources/languages/he_IL.yml delete mode 100644 src/main/resources/languages/hi_IN.yml delete mode 100644 src/main/resources/languages/hr_HR.yml delete mode 100644 src/main/resources/languages/hu_HU.yml delete mode 100644 src/main/resources/languages/hy_AM.yml delete mode 100644 src/main/resources/languages/id_ID.yml delete mode 100644 src/main/resources/languages/is_IS.yml delete mode 100644 src/main/resources/languages/it_IT.yml delete mode 100644 src/main/resources/languages/ja_JP.yml delete mode 100644 src/main/resources/languages/ka_GE.yml delete mode 100644 src/main/resources/languages/kk_KZ.yml delete mode 100644 src/main/resources/languages/kn_IN.yml delete mode 100644 src/main/resources/languages/ko_KR.yml delete mode 100644 src/main/resources/languages/kok_IN.yml delete mode 100644 src/main/resources/languages/lt_LT.yml delete mode 100644 src/main/resources/languages/lv_LV.yml delete mode 100644 src/main/resources/languages/mk_MK.yml delete mode 100644 src/main/resources/languages/ml_IN.yml delete mode 100644 src/main/resources/languages/mn_MN.yml delete mode 100644 src/main/resources/languages/mr_IN.yml delete mode 100644 src/main/resources/languages/ms_MY.yml delete mode 100644 src/main/resources/languages/mt_MT.yml delete mode 100644 src/main/resources/languages/nb_NO.yml delete mode 100644 src/main/resources/languages/nl_NL.yml delete mode 100644 src/main/resources/languages/nn_NO.yml delete mode 100644 src/main/resources/languages/pa_IN.yml delete mode 100644 src/main/resources/languages/pl_PL.yml delete mode 100644 src/main/resources/languages/pt_BR.yml delete mode 100644 src/main/resources/languages/ro_RO.yml delete mode 100644 src/main/resources/languages/ru_RU.yml delete mode 100644 src/main/resources/languages/se_NO.yml delete mode 100644 src/main/resources/languages/sk_SK.yml delete mode 100644 src/main/resources/languages/sq_AL.yml delete mode 100644 src/main/resources/languages/sr_BA.yml delete mode 100644 src/main/resources/languages/sv_SE.yml delete mode 100644 src/main/resources/languages/sw_KE.yml delete mode 100644 src/main/resources/languages/syr_SY.yml delete mode 100644 src/main/resources/languages/ta_IN.yml delete mode 100644 src/main/resources/languages/te_IN.yml delete mode 100644 src/main/resources/languages/th_TH.yml delete mode 100644 src/main/resources/languages/tn_ZA.yml delete mode 100644 src/main/resources/languages/tr_TR.yml delete mode 100644 src/main/resources/languages/uk_UA.yml delete mode 100644 src/main/resources/languages/uz_UZ.yml delete mode 100644 src/main/resources/languages/vi_VN.yml delete mode 100644 src/main/resources/languages/xh_ZA.yml delete mode 100644 src/main/resources/languages/zh_CN.yml delete mode 100644 src/main/resources/languages/zh_TW.yml diff --git a/.gitignore b/.gitignore index 4788b4b4..68a3ef0b 100644 --- a/.gitignore +++ b/.gitignore @@ -111,3 +111,5 @@ buildNumber.properties # Common working directory run/ + +server/ diff --git a/pom.xml b/pom.xml index ff842f86..71221d29 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ net.jeqo bloons - 2.1.0 + 2.1.1 jar Bloons @@ -56,11 +56,11 @@ blue.lhf run-paper-maven-plugin - 1.1.0 + 1.1.1 1.21.4 true - run + ../server -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:25566 diff --git a/src/main/java/net/jeqo/bloons/Bloons.java b/src/main/java/net/jeqo/bloons/Bloons.java index 8571ecf9..60766065 100644 --- a/src/main/java/net/jeqo/bloons/Bloons.java +++ b/src/main/java/net/jeqo/bloons/Bloons.java @@ -123,9 +123,7 @@ public void onDisable() { } // Clear all balloon data if it exists - if (getPlayerSingleBalloons() != null) { - getPlayerSingleBalloons().clear(); - } + if (getPlayerSingleBalloons() != null) getPlayerSingleBalloons().clear(); // Unregister all listeners in the manager getListenerCore().unregisterListeners(); @@ -143,9 +141,43 @@ public void updateChecker() { // Resource ID for the plugin on SpigotMC int resourceId = 106243; new UpdateChecker(this, resourceId).getVersion(version -> { - if (!this.getDescription().getVersion().equals(version)) { + String currentVersion = this.getDescription().getVersion(); + + if (isVersionLower(currentVersion, version)) { Logger.logUpdateNotificationConsole(); + } else if (isVersionHigher(currentVersion, version)) { + Logger.logUnreleasedVersionNotification(); } }); } + + public boolean isVersionLower(String current, String latest) { + return compareVersions(current, latest) < 0; + } + + public boolean isVersionHigher(String current, String latest) { + return compareVersions(current, latest) > 0; + } + + /** + * Compares two version strings (e.g., "1.2.3" vs. "1.2.4"). + * Returns: + * - A negative value if v1 < v2 + * - Zero if v1 == v2 + * - A positive value if v1 > v2 + */ + public int compareVersions(String v1, String v2) { + String[] v1Parts = v1.split("\\."); + String[] v2Parts = v2.split("\\."); + + int length = Math.max(v1Parts.length, v2Parts.length); + for (int i = 0; i < length; i++) { + int part1 = i < v1Parts.length ? Integer.parseInt(v1Parts[i]) : 0; + int part2 = i < v2Parts.length ? Integer.parseInt(v2Parts[i]) : 0; + if (part1 != part2) { + return Integer.compare(part1, part2); + } + } + return 0; + } } \ No newline at end of file diff --git a/src/main/java/net/jeqo/bloons/commands/CommandEquip.java b/src/main/java/net/jeqo/bloons/commands/CommandEquip.java index 0961e643..e28c67bb 100644 --- a/src/main/java/net/jeqo/bloons/commands/CommandEquip.java +++ b/src/main/java/net/jeqo/bloons/commands/CommandEquip.java @@ -12,6 +12,7 @@ import net.jeqo.bloons.management.SingleBalloonManagement; import net.jeqo.bloons.message.MessageTranslations; import net.jeqo.bloons.management.MultipartBalloonManagement; +import org.bukkit.ChatColor; import org.bukkit.Sound; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -49,7 +50,7 @@ public boolean execute(CommandSender sender, String[] args) { // If the balloon ID isn't found in both balloon types, send a message to the player if (Bloons.getBalloonCore().containsSingleBalloon(balloonID) && Bloons.getBalloonCore().containsMultipartBalloon(balloonID)) { String balloonNotFoundMessage = Languages.getMessage("prefix") + Languages.getMessage("balloon-not-found"); - player.sendMessage(balloonNotFoundMessage); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', balloonNotFoundMessage)); return false; } @@ -59,7 +60,7 @@ public boolean execute(CommandSender sender, String[] args) { if (singleBalloonType != null) { if (!player.hasPermission(singleBalloonType.getPermission())) { String noPermissionMessage = Languages.getMessage("prefix") + Languages.getMessage("no-permission"); - player.sendMessage(noPermissionMessage); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', noPermissionMessage)); return false; } } @@ -67,7 +68,7 @@ public boolean execute(CommandSender sender, String[] args) { if (multipartBalloonType != null) { if (!player.hasPermission(multipartBalloonType.getPermission())) { String noPermissionMessage = Languages.getMessage("prefix") + Languages.getMessage("no-permission"); - player.sendMessage(noPermissionMessage); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', noPermissionMessage)); return false; } } @@ -92,7 +93,7 @@ public boolean execute(CommandSender sender, String[] args) { MultipartBalloonManagement.setPlayerBalloon(player.getUniqueId(), balloon); String equippedMessage = Languages.getMessage("prefix") + String.format(Languages.getMessage("equipped"), type.getName()); - player.sendMessage(equippedMessage); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', equippedMessage)); // If the balloon ID is a single balloon type, equip the balloon with the single associated methods } else { @@ -101,7 +102,7 @@ public boolean execute(CommandSender sender, String[] args) { SingleBalloon.checkBalloonRemovalOrAdd(player, balloonID); String equippedMessage = Languages.getMessage("prefix") + String.format(Languages.getMessage("equipped"), singleBalloonType.getName()); - player.sendMessage(equippedMessage); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', equippedMessage)); } // Play a sound regardless of the balloon type and when it executes successfully diff --git a/src/main/java/net/jeqo/bloons/commands/CommandForceEquip.java b/src/main/java/net/jeqo/bloons/commands/CommandForceEquip.java index 90b96d4f..16bfff3e 100644 --- a/src/main/java/net/jeqo/bloons/commands/CommandForceEquip.java +++ b/src/main/java/net/jeqo/bloons/commands/CommandForceEquip.java @@ -13,6 +13,7 @@ import net.jeqo.bloons.message.MessageTranslations; import net.jeqo.bloons.management.MultipartBalloonManagement; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; @@ -47,7 +48,7 @@ public boolean execute(CommandSender sender, String[] args) { // If the player isn't found, send a message to the sender if (player == null) { String playerNotFoundMessage = Languages.getMessage("prefix") + Languages.getMessage("player-not-found"); - sender.sendMessage(playerNotFoundMessage); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', playerNotFoundMessage)); return false; } @@ -56,7 +57,7 @@ public boolean execute(CommandSender sender, String[] args) { // If the balloon ID isn't found in both balloon types, send a message to the sender if (Bloons.getBalloonCore().containsSingleBalloon(balloonID) && Bloons.getBalloonCore().containsMultipartBalloon(balloonID)) { String balloonNotFoundMessage = Languages.getMessage("prefix") + Languages.getMessage("balloon-not-found"); - sender.sendMessage(balloonNotFoundMessage); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', balloonNotFoundMessage)); return false; } @@ -80,7 +81,7 @@ public boolean execute(CommandSender sender, String[] args) { MultipartBalloonManagement.setPlayerBalloon(player.getUniqueId(), balloon); String equippedMessage = Languages.getMessage("prefix") + String.format(Languages.getMessage("equipped"), type.getName()); - player.sendMessage(equippedMessage); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', equippedMessage)); // If the balloon ID is a single balloon type, equip the balloon with the single associated methods } else { @@ -91,7 +92,7 @@ public boolean execute(CommandSender sender, String[] args) { SingleBalloon.checkBalloonRemovalOrAdd(player, balloonID); String equippedMessage = Languages.getMessage("prefix") + String.format(Languages.getMessage("equipped"), singleBalloonType.getName()); - player.sendMessage(equippedMessage); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', equippedMessage)); } return false; diff --git a/src/main/java/net/jeqo/bloons/commands/CommandForceUnequip.java b/src/main/java/net/jeqo/bloons/commands/CommandForceUnequip.java index fc34c324..520331c5 100644 --- a/src/main/java/net/jeqo/bloons/commands/CommandForceUnequip.java +++ b/src/main/java/net/jeqo/bloons/commands/CommandForceUnequip.java @@ -10,6 +10,7 @@ import net.jeqo.bloons.message.MessageTranslations; import net.jeqo.bloons.management.MultipartBalloonManagement; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; @@ -32,7 +33,7 @@ public boolean execute(CommandSender sender, String[] args) { // If the specified player doesn't exist, send a message to the sender if (player == null) { String playerNotFoundMessage = Languages.getMessage("prefix") + Languages.getMessage("player-not-found"); - sender.sendMessage(playerNotFoundMessage); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', playerNotFoundMessage)); return false; } @@ -42,7 +43,7 @@ public boolean execute(CommandSender sender, String[] args) { // If the player doesn't have any balloons equipped, send a message to the sender if (singleBalloon == null && multipartBalloon == null) { String notEquippedMessage = Languages.getMessage("prefix") + Languages.getMessage("not-equipped"); - player.sendMessage(notEquippedMessage); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', notEquippedMessage)); return false; } @@ -56,7 +57,7 @@ public boolean execute(CommandSender sender, String[] args) { } String unequipSuccessfulMessage = Languages.getMessage("prefix") + Languages.getMessage("unequipped"); - sender.sendMessage(unequipSuccessfulMessage); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', unequipSuccessfulMessage)); return false; } } diff --git a/src/main/java/net/jeqo/bloons/commands/CommandReload.java b/src/main/java/net/jeqo/bloons/commands/CommandReload.java index efdde0da..3204f4f1 100644 --- a/src/main/java/net/jeqo/bloons/commands/CommandReload.java +++ b/src/main/java/net/jeqo/bloons/commands/CommandReload.java @@ -5,6 +5,7 @@ import net.jeqo.bloons.commands.manager.types.CommandPermission; import net.jeqo.bloons.message.Languages; import net.jeqo.bloons.message.MessageTranslations; +import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; @@ -39,7 +40,7 @@ public boolean execute(CommandSender sender, String[] args) { Bloons.getBalloonCore().initialize(); String configReloadedMessage = Languages.getMessage("prefix") + Languages.getMessage("config-reloaded"); - sender.sendMessage(configReloadedMessage); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', configReloadedMessage)); return false; } diff --git a/src/main/java/net/jeqo/bloons/commands/CommandUnequip.java b/src/main/java/net/jeqo/bloons/commands/CommandUnequip.java index 87d7e7b4..7fd8e4d1 100644 --- a/src/main/java/net/jeqo/bloons/commands/CommandUnequip.java +++ b/src/main/java/net/jeqo/bloons/commands/CommandUnequip.java @@ -9,6 +9,7 @@ import net.jeqo.bloons.management.SingleBalloonManagement; import net.jeqo.bloons.message.MessageTranslations; import net.jeqo.bloons.management.MultipartBalloonManagement; +import org.bukkit.ChatColor; import org.bukkit.Sound; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -38,12 +39,11 @@ public boolean execute(CommandSender sender, String[] args) { SingleBalloon singleBalloon = Bloons.getPlayerSingleBalloons().get(player.getUniqueId()); MultipartBalloon multipartBalloon = MultipartBalloonManagement.getPlayerBalloon(player.getUniqueId()); - MessageTranslations messageTranslations = new MessageTranslations(this.getPlugin()); // If the player doesn't have any balloons equipped, send a message to the player if (singleBalloon == null && multipartBalloon == null) { String notEquippedMessage = Languages.getMessage("prefix") + Languages.getMessage("not-equipped"); - player.sendMessage(notEquippedMessage); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', notEquippedMessage)); return false; } @@ -59,7 +59,7 @@ public boolean execute(CommandSender sender, String[] args) { } String unequipSuccessfulMessage = Languages.getMessage("prefix") + Languages.getMessage("unequipped"); - player.sendMessage(unequipSuccessfulMessage); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', unequipSuccessfulMessage)); player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_HURT_SWEET_BERRY_BUSH, 1, 1); return false; } diff --git a/src/main/java/net/jeqo/bloons/commands/manager/CommandCore.java b/src/main/java/net/jeqo/bloons/commands/manager/CommandCore.java index d6058b79..bc06e19d 100644 --- a/src/main/java/net/jeqo/bloons/commands/manager/CommandCore.java +++ b/src/main/java/net/jeqo/bloons/commands/manager/CommandCore.java @@ -12,6 +12,7 @@ import net.jeqo.bloons.colors.Color; import net.jeqo.bloons.message.Languages; import net.jeqo.bloons.message.MessageTranslations; +import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -104,7 +105,7 @@ public boolean onCommand(@NotNull CommandSender sender, org.bukkit.command.@NotN if (!player.hasPermission("bloons.menu")) { String noPermission = Languages.getMessage("prefix") + Languages.getMessage("no-permission"); - player.sendMessage(noPermission); + player.sendMessage(ChatColor.translateAlternateColorCodes('&', noPermission)); return true; } @@ -114,27 +115,31 @@ public boolean onCommand(@NotNull CommandSender sender, org.bukkit.command.@NotN // if (singleBalloonTypes == null && multipartBalloonTypes == null) { - Logger.logError(Languages.getMessage("no-balloons-registered")); + Logger.logError(ChatColor.translateAlternateColorCodes('&', Languages.getMessage("no-balloons-registered"))); return false; } - // For every single balloon registered, add it to the GUI - for (SingleBalloonType singleBalloon : singleBalloonTypes) { - if (singleBalloon == null) continue; + if (singleBalloonTypes != null) { + // For every single balloon registered, add it to the GUI + for (SingleBalloonType singleBalloon : singleBalloonTypes) { + if (singleBalloon == null) continue; - if (shouldAddSingleBalloon(player, singleBalloon)) { - ItemStack item = createBalloonItem(singleBalloon); - items.add(item); + if (shouldAddSingleBalloon(player, singleBalloon)) { + ItemStack item = createBalloonItem(singleBalloon); + items.add(item); + } } } - // For every multipart balloon registered, add it to the GUI - for (MultipartBalloonType multipartBalloon : multipartBalloonTypes) { - if (multipartBalloon == null) continue; + if (multipartBalloonTypes != null) { + // For every multipart balloon registered, add it to the GUI + for (MultipartBalloonType multipartBalloon : multipartBalloonTypes) { + if (multipartBalloon == null) continue; - if (shouldAddMultipartBalloon(player, multipartBalloon)) { - ItemStack item = createBalloonItem(multipartBalloon); - items.add(item); + if (shouldAddMultipartBalloon(player, multipartBalloon)) { + ItemStack item = createBalloonItem(multipartBalloon); + items.add(item); + } } } @@ -312,7 +317,7 @@ private void setBalloonLore(ItemMeta meta, MultipartBalloonType multipartBalloon private void setBalloonDisplayName(ItemMeta meta, SingleBalloonType singleBalloonType) { String name = singleBalloonType.getName(); if (name != null) { - meta.setDisplayName(name); + meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', name)); } } @@ -324,7 +329,7 @@ private void setBalloonDisplayName(ItemMeta meta, SingleBalloonType singleBalloo private void setBalloonDisplayName(ItemMeta meta, MultipartBalloonType multipartBalloonType) { String name = multipartBalloonType.getName(); if (name != null) { - meta.setDisplayName(name); + meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', name)); } } diff --git a/src/main/java/net/jeqo/bloons/commands/manager/CommandTabCompleter.java b/src/main/java/net/jeqo/bloons/commands/manager/CommandTabCompleter.java index b9cebf6a..cd01893a 100644 --- a/src/main/java/net/jeqo/bloons/commands/manager/CommandTabCompleter.java +++ b/src/main/java/net/jeqo/bloons/commands/manager/CommandTabCompleter.java @@ -9,6 +9,7 @@ import java.util.Collections; import java.util.List; +import java.util.stream.Stream; /** * A class used to handle the tab completion of the commands @@ -89,6 +90,6 @@ public List onTabComplete(@NotNull CommandSender sender, @NotNull Comman public List getBalloonTabComplete() { List singleBalloons = ConfigConfiguration.getSingleBalloons().stream().map(singleBalloonType -> singleBalloonType.getId().toLowerCase()).toList(); List multipartBalloons = ConfigConfiguration.getMultipartBalloons().stream().map(multipartBalloonType -> multipartBalloonType.getId().toLowerCase()).toList(); - return List.of(singleBalloons, multipartBalloons).stream().flatMap(List::stream).toList(); + return Stream.of(singleBalloons, multipartBalloons).flatMap(List::stream).toList(); } } diff --git a/src/main/java/net/jeqo/bloons/gui/menus/BalloonMenu.java b/src/main/java/net/jeqo/bloons/gui/menus/BalloonMenu.java index 81a70c5e..0ec42233 100644 --- a/src/main/java/net/jeqo/bloons/gui/menus/BalloonMenu.java +++ b/src/main/java/net/jeqo/bloons/gui/menus/BalloonMenu.java @@ -8,6 +8,7 @@ import net.jeqo.bloons.message.Languages; import net.jeqo.bloons.message.MessageTranslations; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; @@ -57,7 +58,7 @@ private Inventory getBlankPage(String name){ ItemStack nextPage = new ItemStack(Material.valueOf(this.getMessageTranslations().getString("buttons.next-page.material"))); ItemMeta nextMeta = nextPage.getItemMeta(); assert nextMeta != null; - nextMeta.setDisplayName(this.getMessageTranslations().getString("buttons.next-page.name")); + nextMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.getMessageTranslations().getString("buttons.next-page.name"))); nextMeta.setCustomModelData(this.getMessageTranslations().getInt("buttons.next-page.custom-model-data")); nextPage.setItemMeta(nextMeta); @@ -65,7 +66,7 @@ private Inventory getBlankPage(String name){ ItemStack prevPage = new ItemStack(Material.valueOf(this.getMessageTranslations().getString("buttons.previous-page.material"))); ItemMeta prevMeta = prevPage.getItemMeta(); assert prevMeta != null; - prevMeta.setDisplayName(this.getMessageTranslations().getString("buttons.previous-page.name")); + prevMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.getMessageTranslations().getString("buttons.previous-page.name"))); prevMeta.setCustomModelData(this.getMessageTranslations().getInt("buttons.previous-page.custom-model-data")); prevPage.setItemMeta(prevMeta); @@ -73,7 +74,7 @@ private Inventory getBlankPage(String name){ ItemStack removeBalloon = new ItemStack(Material.valueOf(this.getMessageTranslations().getString("buttons.unequip.material"))); ItemMeta removeMeta = removeBalloon.getItemMeta(); assert removeMeta != null; - removeMeta.setDisplayName(this.getMessageTranslations().getString("buttons.unequip.name")); + removeMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.getMessageTranslations().getString("buttons.unequip.name"))); removeMeta.setCustomModelData(this.getMessageTranslations().getInt("buttons.unequip.custom-model-data")); removeBalloon.setItemMeta(removeMeta); diff --git a/src/main/java/net/jeqo/bloons/listeners/single/SingleBalloonPlayerListener.java b/src/main/java/net/jeqo/bloons/listeners/single/SingleBalloonPlayerListener.java index 2262b9e9..76ab2e64 100644 --- a/src/main/java/net/jeqo/bloons/listeners/single/SingleBalloonPlayerListener.java +++ b/src/main/java/net/jeqo/bloons/listeners/single/SingleBalloonPlayerListener.java @@ -49,8 +49,12 @@ public void onJoin(PlayerJoinEvent event) { if (Bloons.getInstance().getConfig().getBoolean("check-for-updates")) { // Check for an update if the player is an operator on the server new UpdateChecker(Bloons.getInstance(), 106243).getVersion(version -> { - if (!Bloons.getInstance().getDescription().getVersion().equals(version)) { - Logger.logUpdateNotificationPlayer(player); + String currentVersion = Bloons.getInstance().getDescription().getVersion(); + + if (Bloons.getInstance().isVersionLower(currentVersion, version)) { + Logger.logUpdateNotificationPlayer(event.getPlayer()); + } else if (Bloons.getInstance().isVersionHigher(currentVersion, version)) { + Logger.logUnreleasedVersionNotificationPlayer(event.getPlayer()); } }); } diff --git a/src/main/java/net/jeqo/bloons/logger/Logger.java b/src/main/java/net/jeqo/bloons/logger/Logger.java index 937f2259..a12d3812 100644 --- a/src/main/java/net/jeqo/bloons/logger/Logger.java +++ b/src/main/java/net/jeqo/bloons/logger/Logger.java @@ -116,13 +116,30 @@ public static void logUpdateNotificationConsole() { logInfo("You can find the update at: https://jeqo.net/bloons"); } + /** + * Logs an unreleased plugin version notification to the Bukkit console + */ + public static void logUnreleasedVersionNotification() { + logInfo("The version for the " + PluginConfiguration.getName() + " plugin is higher than latest version"); + logInfo("You are currently running an unreleased version of the plugin that is NOT stable"); + } + /** * Logs an update notification to a player * @param player The player to log the update notification to, type org.bukkit.entity.Player */ public static void logUpdateNotificationPlayer(Player player) { - logToPlayer(player, "A new update is available for " + PluginConfiguration.getName() + " plugin"); - logToPlayer(player, "You can find the update at: https://jeqo.net/bloons"); + logToPlayer(LoggingLevel.INFO, player, "A new update is available for " + PluginConfiguration.getName() + " plugin"); + logToPlayer(LoggingLevel.INFO, player, "You can find the update at: https://jeqo.net/bloons"); + } + + /** + * Logs an unreleased version notification to a player + * @param player The player to log the unreleased version notification to, type org.bukkit.entity.Player + */ + public static void logUnreleasedVersionNotificationPlayer(Player player) { + logToPlayer(LoggingLevel.INFO, player, "The version for the " + PluginConfiguration.getName() + " plugin is higher than latest version"); + logToPlayer(LoggingLevel.INFO, player, "You are currently running an unreleased version of the plugin that is NOT stable"); } /** diff --git a/src/main/java/net/jeqo/bloons/message/Languages.java b/src/main/java/net/jeqo/bloons/message/Languages.java index 7bb4ab41..ee9066bb 100644 --- a/src/main/java/net/jeqo/bloons/message/Languages.java +++ b/src/main/java/net/jeqo/bloons/message/Languages.java @@ -4,6 +4,7 @@ import net.jeqo.bloons.Bloons; import net.jeqo.bloons.configuration.ConfigConfiguration; import net.jeqo.bloons.logger.Logger; +import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -33,14 +34,7 @@ public class Languages { static { // Initialize available languages - String[] languages = { - "af_ZA", "ar_SA", "az_AZ", "be_BY", "bg_BG", "bn_IN", "bs_BA", "cs_CZ", "cy_GB", "da_DK", "de_DE", "el_GR", - "en_US", "es_ES", "et_EE", "eu_ES", "fa_IR", "fo_FO", "fi_FI", "fr_FR", "gl_ES", "gu_IN", "he_IL", "hi_IN", - "hr_HR", "hu_HU", "hy_AM", "id_ID", "is_IS", "it_IT", "ja_JP", "ka_GE", "kk_KZ", "kn_IN", "ko_KR", "kok_IN", - "lt_LT", "lv_LV", "mk_MK", "ml_IN", "mn_MN", "mr_IN", "ms_MY", "mt_MT", "nb_NO", "nl_NL", "nn_NO", "pa_IN", - "pl_PL", "pt_BR", "ro_RO", "ru_RU", "se_NO", "sk_SK", "sq_AL", "sr_BA", "sv_SE", "sw_KE", "syr_SY", "ta_IN", - "te_IN", "th_TH", "tn_ZA", "tr_TR", "uk_UA", "uz_UZ", "vi_VN", "xh_ZA", "zh_CN", "zh_TW" - }; + String[] languages = { "en_US", "es_ES" }; // Add all languages to the set Collections.addAll(getAvailableLanguages(), languages); } @@ -96,10 +90,12 @@ public static String getMessage(String message) { // Load the configuration file FileConfiguration config = YamlConfiguration.loadConfiguration(file); - return config.getString("messages." + message); + return ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("messages." + message))); } } - return ""; + // Fallback onto en_US.yml if translation is missing + FileConfiguration englishConfig = YamlConfiguration.loadConfiguration(new File(folder + File.separator + "en_US.yml")); + return ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(englishConfig.getString("messages." + message))); } } \ No newline at end of file diff --git a/src/main/java/net/jeqo/bloons/message/MessageTranslations.java b/src/main/java/net/jeqo/bloons/message/MessageTranslations.java index e7624597..34ea56a8 100644 --- a/src/main/java/net/jeqo/bloons/message/MessageTranslations.java +++ b/src/main/java/net/jeqo/bloons/message/MessageTranslations.java @@ -1,7 +1,10 @@ package net.jeqo.bloons.message; +import org.bukkit.ChatColor; import org.bukkit.plugin.java.JavaPlugin; +import java.util.Objects; + /** * A utility class intended to get messages from the config.yml file * @param instance The instance of the plugin, type org.bukkit.plugin.java.JavaPlugin @@ -14,7 +17,10 @@ public record MessageTranslations(JavaPlugin instance) { * @return The value at the specified path, type java.lang.String */ public String getString(String path) { - return this.instance.getConfig().getString(path); + if (this.instance.getConfig().getString(path) != null) { + return ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(this.instance.getConfig().getString(path))); + } + return ""; } /** diff --git a/src/main/resources/balloons/color_pack_example.yml b/src/main/resources/balloons/color_pack_example.yml index 8b4e968e..78f31733 100644 --- a/src/main/resources/balloons/color_pack_example.yml +++ b/src/main/resources/balloons/color_pack_example.yml @@ -7,7 +7,7 @@ blue: permission: balloon.blue material: FLINT custom-model-data: 4 - name: 'Blue Balloon' + name: '&9Blue &fBalloon' lore: - '&8Bloons Default Balloon' - '' @@ -18,7 +18,7 @@ green: permission: balloon.green material: FLINT custom-model-data: 5 - name: 'Green Balloon' + name: '&aGreen &fBalloon' lore: - '&8Bloons Default Balloon' - '' @@ -29,7 +29,7 @@ pink: permission: balloon.pink material: FLINT custom-model-data: 6 - name: 'Pink Balloon' + name: '&dPink &fBalloon' lore: - '&8Bloons Default Balloon' - '' @@ -39,8 +39,8 @@ yellow: permission: balloon.yellow material: FLINT custom-model-data: 7 - name: 'Yellow Balloon' + name: '&eYellow &fBalloon' lore: - '&8Bloons Default Balloon' - '' - - '&eᴄʟɪᴄᴋ ᴛᴏ ᴇǫᴜɪᴘ' \ No newline at end of file + - '&eᴄʟɪᴄᴋ ᴛᴏ ᴇǫᴜɪᴘ' diff --git a/src/main/resources/balloons/dyeable_example.yml b/src/main/resources/balloons/dyeable_example.yml index 8e84004b..434aced3 100644 --- a/src/main/resources/balloons/dyeable_example.yml +++ b/src/main/resources/balloons/dyeable_example.yml @@ -10,7 +10,7 @@ dyeable_example: material: LEATHER_HORSE_ARMOR color: '#ffffff' custom-model-data: 1 - name: 'Dyeable Balloon' + name: '&fDyeable Balloon' lore: - '&8Bloons Example Balloon' - '' @@ -22,7 +22,7 @@ single_meg_example: icon: material: FLINT custom-model-data: 7 - name: 'Single MEG Balloon' + name: '&fSingle MEG Balloon' lore: - '&8Bloons Default Balloon' - '' diff --git a/src/main/resources/balloons/meg_example.yml b/src/main/resources/balloons/meg_example.yml index 4bef83d5..dc896488 100644 --- a/src/main/resources/balloons/meg_example.yml +++ b/src/main/resources/balloons/meg_example.yml @@ -7,7 +7,7 @@ meg_example: icon: material: FLINT custom-model-data: 7 - name: 'MEG Balloon' + name: '&fMEG Balloon' lore: - '&8Bloons Default Balloon' - '' diff --git a/src/main/resources/balloons/multipart_example.yml b/src/main/resources/balloons/multipart_example.yml index 955f5bb1..46b50455 100644 --- a/src/main/resources/balloons/multipart_example.yml +++ b/src/main/resources/balloons/multipart_example.yml @@ -4,7 +4,7 @@ multipart_example: type: multipart # The type of balloon, this must be multipart for multipart balloons id: multipart_example # The id of the balloon, this must be unique permission: balloon.multipart_example - name: 'Multipart Balloon' + name: '&fMultipart Balloon' lore: - '&8Bloons Default Balloon' - '' diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index f2b04852..3cd1531f 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,6 +1,6 @@ # --------------------------------------------------# # -# Bloons 2.0.0 +# Bloons 2.1.1 # Made by Jeqo # # Wiki: https://jeqo.net/wiki @@ -36,18 +36,18 @@ buttons: previous-page: material: FLINT custom-model-data: 1 - name: '← ᴘʀᴇᴠɪᴏᴜs ᴘᴀɢᴇ' + name: '&7← ᴘʀᴇᴠɪᴏᴜs ᴘᴀɢᴇ' slots: - 48 unequip: material: FLINT custom-model-data: 2 - name: 'ᴜɴᴇǫᴜɪᴘ ʙᴀʟʟᴏᴏɴ' + name: '&7ᴜɴᴇǫᴜɪᴘ ʙᴀʟʟᴏᴏɴ' slots: - 49 next-page: material: FLINT custom-model-data: 3 - name: 'ɴᴇxᴛ ᴘᴀɢᴇ →' + name: '&7ɴᴇxᴛ ᴘᴀɢᴇ →' slots: - 50 \ No newline at end of file diff --git a/src/main/resources/languages/af_ZA.yml b/src/main/resources/languages/af_ZA.yml deleted file mode 100644 index 2c89a871..00000000 --- a/src/main/resources/languages/af_ZA.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Toegang geweier.' - player-not-found: '<#fc1c1c>Speler nie gevind nie.' - config-reloaded: 'Konfigurasie herlaai.' - command-disabled: '<#fc1c1c>Hierdie opdrag is tans gedeaktiveer!' - - equipped: '%s toegerus!' - unequipped: 'Jou ballon is veilig gestoor.' - balloon-not-found: '<#fc1c1c>Ballon nie gevind nie.' - not-equipped: '<#fc1c1c>Jy het tans nie 'n ballon toegerus nie.' - - material-not-dyeable: 'Materiaal %s is nie 'n kleurbare materiaal nie.' - invalid-rgb-values: 'RGB-waardes moet tussen 0 en 255 wees om geldig te wees.' - balloon-not-set: 'Die ballon %s is nie in die konfigurasie gestel nie!' - material-not-set: 'Die materiaal van die ballon %s is nie in die konfigurasie gestel nie!' - material-not-valid: "Die materiaal van die ballon %s is nie 'n geldige materiaal nie! Materiaal: %s" - material-is-not-valid: 'Materiaal %s is nie 'n geldige materiaal nie!' - invalid-item-meta: 'ItemMeta is nie geldig vir materiaal: %s nie' - - no-balloons-registered: 'Geen ballonne gevind nie! Kan nie 'n spyskaart met geen ballonne skep nie.' - - configuration-folder-not-found: 'Konfigurasie-lêergids nie gevind nie: %s' - no-configuration-files-found: 'Geen konfigurasie-lêers gevind in die gids nie: %s' - configuration-section-not-found: 'Konfigurasie-afdeling nie gevind vir lêer nie: %s' - balloon-type-not-found: 'Fout met verwerking van ballontipe vir afdeling: %s in lêer: %s. Ballontipe bestaan nie of is nul.' - balloon-process-error: 'Fout met verwerking van ballon vir afdeling: %s in lêer: %s. Fout: %s' - - menu-slot-out-of-bounds: '%s spyskaartbladsy knoppie gleuf(e) buite perke!' - - invalid-hex-code: 'Ongeldige heksadesimale kode: %s' diff --git a/src/main/resources/languages/ar_SA.yml b/src/main/resources/languages/ar_SA.yml deleted file mode 100644 index c1f6033c..00000000 --- a/src/main/resources/languages/ar_SA.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>الوصول ممنوع.' - player-not-found: '<#fc1c1c>اللاعب غير موجود.' - config-reloaded: 'تم إعادة تحميل الإعدادات.' - command-disabled: '<#fc1c1c>هذا الأمر معطل حالياً!' - - equipped: '%s تم التجهيز!' - unequipped: 'تم تخزين بالونك بأمان.' - balloon-not-found: '<#fc1c1c>البالون غير موجود.' - not-equipped: '<#fc1c1c>ليس لديك بالون مجهز حالياً.' - - material-not-dyeable: 'المادة %s غير قابلة للصبغ.' - invalid-rgb-values: 'قيم RGB يجب أن تكون بين 0 و 255 لتكون صالحة.' - balloon-not-set: 'البالون %s غير محدد في الإعدادات!' - material-not-set: 'مادة البالون %s غير محددة في الإعدادات!' - material-not-valid: 'مادة البالون %s غير صالحة! المادة: %s' - material-is-not-valid: 'المادة %s غير صالحة!' - invalid-item-meta: 'ItemMeta غير صالح للمادة: %s' - - no-balloons-registered: 'لا توجد بالونات مسجلة! لا يمكن إنشاء قائمة بدون بالونات.' - - configuration-folder-not-found: 'مجلد الإعدادات غير موجود: %s' - no-configuration-files-found: 'لا توجد ملفات إعدادات في المجلد: %s' - configuration-section-not-found: 'قسم الإعدادات غير موجود للملف: %s' - balloon-type-not-found: 'خطأ في معالجة نوع البالون للقسم: %s في الملف: %s. نوع البالون غير موجود أو فارغ.' - balloon-process-error: 'خطأ في معالجة البالون للقسم: %s في الملف: %s. الخطأ: %s' - - menu-slot-out-of-bounds: 'فتحات زر صفحة القائمة %s خارج الحدود!' - - invalid-hex-code: 'كود سداسي غير صالح: %s' diff --git a/src/main/resources/languages/az_AZ.yml b/src/main/resources/languages/az_AZ.yml deleted file mode 100644 index e0234eb9..00000000 --- a/src/main/resources/languages/az_AZ.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Giriş icazəsi yoxdur.' - player-not-found: '<#fc1c1c>Oyuncu tapılmadı.' - config-reloaded: 'Konfiq yenidən yükləndi.' - command-disabled: '<#fc1c1c>Bu komanda hazırda deaktiv edilmişdir!' - - equipped: '%s təchiz edildi!' - unequipped: 'Balonunuz təhlükəsiz şəkildə saxlanıldı.' - balloon-not-found: '<#fc1c1c>Balon tapılmadı.' - not-equipped: '<#fc1c1c>Hazırda təchiz edilmiş bir balonunuz yoxdur.' - - material-not-dyeable: 'Material %s boyanabilir material deyil.' - invalid-rgb-values: 'RGB dəyərləri etibarlı olmaq üçün 0 ilə 255 arasında olmalıdır.' - balloon-not-set: 'Konfiqurasiyada %s balon təyin edilməyib!' - material-not-set: '%s balonun materialı konfiqurasiyada təyin edilməyib!' - material-not-valid: '%s balonun materialı etibarlı material deyil! Material: %s' - material-is-not-valid: 'Material %s etibarlı bir material deyil!' - invalid-item-meta: 'Material üçün əşya meta etiketi etibarlı deyil: %s' - - no-balloons-registered: 'Heç bir balon qeydə alınmayıb! Balonsuz bir menyü yaradıla bilməz.' - - configuration-folder-not-found: 'Konfiqurasiya qovluğu tapılmadı: %s' - no-configuration-files-found: 'Qovluqda konfiqurasiya faylları tapılmadı: %s' - configuration-section-not-found: 'Faylı üçün konfiqurasiya bölməsi tapılmadı: %s' - balloon-type-not-found: 'Faylda %s bölməsi üçün balon növü işlənməsində xəta baş verdi: %s. Balon növü mövcud deyil və ya boşdur.' - balloon-process-error: 'Faylda %s bölməsi üçün balon prosesi xətası baş verdi: %s. Xəta: %s' - - menu-slot-out-of-bounds: '%s menyü səhifə düymə yeri çapdan kənar çıxır!' - - invalid-hex-code: 'Etibarsız hex kodu: %s' diff --git a/src/main/resources/languages/be_BY.yml b/src/main/resources/languages/be_BY.yml deleted file mode 100644 index dc164070..00000000 --- a/src/main/resources/languages/be_BY.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Доступ забаронены.' - player-not-found: '<#fc1c1c>Гульца не знойдзены.' - config-reloaded: 'Канфігурацыя перазагружана.' - command-disabled: '<#fc1c1c>Гэтая каманда зараз адключана!' - - equipped: '%s запасены!' - unequipped: 'Ваш шарік захаваны бяспечна.' - balloon-not-found: '<#fc1c1c>Шар не знойдзены.' - not-equipped: '<#fc1c1c>У вас зараз няма запасенага шара.' - - material-not-dyeable: 'Матэрыял %s не можа быць пазначаны колерамі.' - invalid-rgb-values: 'Значэння RGB павінны быць у дыяпазоне ад 0 да 255, каб быць сапраўднымі.' - balloon-not-set: 'Шар %s не ўстаноўлены ў канфігурацыі!' - material-not-set: 'Матэрыял шара %s не ўстаноўлены ў канфігурацыі!' - material-not-valid: "Матэрыял шара %s не з'яўляецца сапраўдным матэрыялам! Матэрыял: %s" - material-is-not-valid: 'Матэрыял %s не з'яўляецца сапраўдным матэрыялам!' - invalid-item-meta: 'Няправільныя метаданыя элемента для матэрыялу: %s' - - no-balloons-registered: 'Няма зарэгістраваных шароў! Немагчыма стварыць меню без шараў.' - - configuration-folder-not-found: 'Катэгорыя канфігурацыі не знойдзена: %s' - no-configuration-files-found: 'Няма файлаў канфігурацыі ў тэчцы: %s' - configuration-section-not-found: 'Секцыя канфігурацыі не знойдзена для файла: %s' - balloon-type-not-found: 'Памылка пры апрацоўцы тыпу шара для раздзелу: %s у файле: %s. Тып шара не існуе або ёсць пустота.' - balloon-process-error: 'Памылка пры апрацоўцы шара для раздзелу: %s у файле: %s. Памылка: %s' - - menu-slot-out-of-bounds: '%s кнопка(-і) старонкі меню выходзяць за межы!' - - invalid-hex-code: 'Няправільны шэсцнаццатковы код: %s' diff --git a/src/main/resources/languages/bg_BG.yml b/src/main/resources/languages/bg_BG.yml deleted file mode 100644 index e77ecc2e..00000000 --- a/src/main/resources/languages/bg_BG.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Нямате разрешение.' - player-not-found: '<#fc1c1c>Играчът не е намерен.' - config-reloaded: 'Конфигурацията е презаредена.' - command-disabled: '<#fc1c1c>Тази команда е в момента деактивирана!' - - equipped: '%s екипиран!' - unequipped: 'Вашият балон е сигурно съхранен.' - balloon-not-found: '<#fc1c1c>Балонът не е намерен.' - not-equipped: '<#fc1c1c>В момента нямате екипиран балон.' - - material-not-dyeable: 'Материалът %s не може да бъде оцветен.' - invalid-rgb-values: 'RGB стойностите трябва да са между 0 и 255, за да бъдат валидни.' - balloon-not-set: 'Балонът %s не е настроен в конфигурацията!' - material-not-set: 'Материалът на балона %s не е настроен в конфигурацията!' - material-not-valid: 'Материалът на балона %s не е валиден! Материал: %s' - material-is-not-valid: 'Материалът %s не е валиден!' - invalid-item-meta: 'ItemMeta не е валиден за материала: %s' - - no-balloons-registered: 'Няма регистрирани балони! Не може да се създаде меню без балони.' - - configuration-folder-not-found: 'Папката с конфигурация не е намерена: %s' - no-configuration-files-found: 'Няма намерени конфигурационни файлове в папката: %s' - configuration-section-not-found: 'Разделът на конфигурацията не е намерен за файла: %s' - balloon-type-not-found: 'Грешка при обработката на типа балон за секцията: %s във файла: %s. Типът на балона не съществува или е празен.' - balloon-process-error: 'Грешка при обработката на балона за секцията: %s във файла: %s. Грешка: %s' - - menu-slot-out-of-bounds: '%s бутон на страницата на менюто извън границите!' - - invalid-hex-code: 'Невалиден хекс код: %s' diff --git a/src/main/resources/languages/bn_IN.yml b/src/main/resources/languages/bn_IN.yml deleted file mode 100644 index dc17dd96..00000000 --- a/src/main/resources/languages/bn_IN.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>অনুমতি অস্বীকৃত।' - player-not-found: '<#fc1c1c>খেলোয়াড় পাওয়া যায়নি।' - config-reloaded: 'কনফিগারেশন পুনরায় লোড হয়েছে।' - command-disabled: '<#fc1c1c>এই কমান্ড বর্তমানে নিষ্ক্রিয় করা হয়েছে!' - - equipped: '%s পরিপ্রেক্ষিত!' - unequipped: 'আপনার বেলুন নিরাপদে সংরক্ষিত হয়েছে।' - balloon-not-found: '<#fc1c1c>বেলুন পাওয়া যায়নি।' - not-equipped: '<#fc1c1c>আপনি বর্তমানে কোনও বেলুন পরিপ্রেক্ষিত করা নেই।' - - material-not-dyeable: '%s উপাদানটি রঙ করা যাবে না।' - invalid-rgb-values: 'আরজিবি মান 0 থেকে 255 এর মধ্যে হতে হবে একটি বৈধ মানের জন্য।' - balloon-not-set: '%s কনফিগারেশনে বেলুন সেট করা হয়নি!' - material-not-set: '%s বেলুনের উপাদানটি কনফিগারেশনে সেট করা হয়নি!' - material-not-valid: '%s বেলুনের উপাদানটি বৈধ নয়! উপাদান: %s' - material-is-not-valid: '%s উপাদান বৈধ নয়!' - invalid-item-meta: 'উপাদান মেটা মূল্য বৈধ নয় মেটেরিয়ালের জন্য: %s' - - no-balloons-registered: 'কোনও বেলুন নিবন্ধিত নেই! কোনও বেলুন নেই মেনু তৈরি করা যায় না।' - - configuration-folder-not-found: 'কনফিগারেশন ফোল্ডার খুঁজে পাওয়া যায়নি: %s' - no-configuration-files-found: 'ফোল্ডারে কোনও কনফিগারেশন ফাইল পাওয়া যায়নি: %s' - configuration-section-not-found: 'ফাইলের জন্য কনফিগারেশন বিভাগ পাওয়া যায়নি: %s' - balloon-type-not-found: 'বিভাগের জন্য বেলুনের প্রকার প্রসেসিং ত্রুটি: %s ফাইলে: %s। বেলুনের ধরন অস্তিত্ব নেই বা খালি।' - balloon-process-error: 'বিভাগের জন্য বেলুন প্রসেসিং ত্রুটি: %s ফাইলে: %s। ত্রুটি: %s' - - menu-slot-out-of-bounds: '%s মেনু পৃষ্ঠা বোতাম স্লটগুলি সীমার বাইরে!' - - invalid-hex-code: 'অবৈধ হেক্স কোড: %s' diff --git a/src/main/resources/languages/bs_BA.yml b/src/main/resources/languages/bs_BA.yml deleted file mode 100644 index 53591ee4..00000000 --- a/src/main/resources/languages/bs_BA.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Nema dozvole.' - player-not-found: '<#fc1c1c>Igrač nije pronađen.' - config-reloaded: 'Konfiguracija je ponovo učitana.' - command-disabled: '<#fc1c1c>Ova komanda je trenutno onemogućena!' - - equipped: '%s opremljen!' - unequipped: 'Vaš balon je sigurno spremljen.' - balloon-not-found: '<#fc1c1c>Balon nije pronađen.' - not-equipped: '<#fc1c1c>Trenutno nemate opremljen balon.' - - material-not-dyeable: 'Materijal %s nije moguće obojiti.' - invalid-rgb-values: 'RGB vrijednosti moraju biti između 0 i 255 da bi bile validne.' - balloon-not-set: 'Balon %s nije postavljen u konfiguraciji!' - material-not-set: 'Materijal balona %s nije postavljen u konfiguraciji!' - material-not-valid: 'Materijal balona %s nije validan materijal! Materijal: %s' - material-is-not-valid: 'Materijal %s nije validan materijal!' - invalid-item-meta: 'ItemMeta nije validan za materijal: %s' - - no-balloons-registered: 'Nema registrovanih balona! Ne može se kreirati meni bez balona.' - - configuration-folder-not-found: 'Mapa konfiguracije nije pronađena: %s' - no-configuration-files-found: 'Nema pronađenih konfiguracionih fajlova u mapi: %s' - configuration-section-not-found: 'Sekcija konfiguracije nije pronađena za fajl: %s' - balloon-type-not-found: 'Greška prilikom procesiranja tipa balona za sekciju: %s u fajlu: %s. Tip balona ne postoji ili je prazan.' - balloon-process-error: 'Greška prilikom procesiranja balona za sekciju: %s u fajlu: %s. Greška: %s' - - menu-slot-out-of-bounds: '%s dugme stranice menija izvan granica!' - - invalid-hex-code: 'Nevažeći heks kod: %s' diff --git a/src/main/resources/languages/cs_CZ.yml b/src/main/resources/languages/cs_CZ.yml deleted file mode 100644 index 111d6bc5..00000000 --- a/src/main/resources/languages/cs_CZ.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Nemáte oprávnění.' - player-not-found: '<#fc1c1c>Hráč nebyl nalezen.' - config-reloaded: 'Konfigurace byla znovu načtena.' - command-disabled: '<#fc1c1c>Tento příkaz je momentálně zakázán!' - - equipped: '%s vybaven!' - unequipped: 'Váš balón byl uložen bezpečně.' - balloon-not-found: '<#fc1c1c>Balon nebyl nalezen.' - not-equipped: '<#fc1c1c>Nemáte momentálně vybaven žádný balón.' - - material-not-dyeable: 'Materiál %s nelze obarvit.' - invalid-rgb-values: 'RGB hodnoty musí být mezi 0 a 255, aby byly platné.' - balloon-not-set: 'Balon %s není nastaven v konfiguraci!' - material-not-set: 'Materiál balonu %s není nastaven v konfiguraci!' - material-not-valid: 'Materiál balonu %s není platný materiál! Materiál: %s' - material-is-not-valid: 'Materiál %s není platný materiál!' - invalid-item-meta: 'ItemMeta není platný pro materiál: %s' - - no-balloons-registered: 'Nejsou registrovány žádné balóny! Nelze vytvořit menu bez balónů.' - - configuration-folder-not-found: 'Složka s konfigurací nebyla nalezena: %s' - no-configuration-files-found: 'V této složce nebyly nalezeny žádné konfigurační soubory: %s' - configuration-section-not-found: 'Sekce konfigurace nebyla nalezena pro soubor: %s' - balloon-type-not-found: 'Chyba při zpracování typu balónu pro sekci: %s v souboru: %s. Typ balónu neexistuje nebo je prázdný.' - balloon-process-error: 'Chyba při zpracování balónu pro sekci: %s v souboru: %s. Chyba: %s' - - menu-slot-out-of-bounds: '%s tlačítek na stránce menu přesahuje rozsah!' - - invalid-hex-code: 'Neplatný hexadecimální kód: %s' diff --git a/src/main/resources/languages/cy_GB.yml b/src/main/resources/languages/cy_GB.yml deleted file mode 100644 index 5fd49f80..00000000 --- a/src/main/resources/languages/cy_GB.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Mynediad wedi'i wrthod.' - player-not-found: '<#fc1c1c>Nid yw'r chwaraewr wedi'i ddod o hyd.' - config-reloaded: 'Wedi ail-lwytho'r cyfluniad.' - command-disabled: '<#fc1c1c>Mae'r gorchymyn hwn wedi'i analluogi ar hyn o bryd!' - - equipped: '%s wedi'i osod!' - unequipped: 'Wedi cadw eich balŵn yn ddiogel.' - balloon-not-found: '<#fc1c1c>Nid oes balŵn wedi'i ddod o hyd.' - not-equipped: '<#fc1c1c>Nid oes balŵn wedi'i osod gennych ar hyn o bryd.' - - material-not-dyeable: 'Ni ellir lliwio'r deunydd %s.' - invalid-rgb-values: 'Gwerthoedd RGB annilys: Rhaid i'r gwerthoedd fod rhwng 0 a 255.' - balloon-not-set: 'Nid yw'r balŵn %s wedi'i osod yn y cyfluniad!' - material-not-set: 'Nid yw deunydd y balŵn %s wedi'i osod yn y cyfluniad!' - material-not-valid: 'Nid yw deunydd y balŵn %s yn ddilys! Deunydd: %s' - material-is-not-valid: 'Nid yw deunydd %s yn ddilys!' - invalid-item-meta: 'ItemMeta annilys ar gyfer deunydd: %s' - - no-balloons-registered: 'Heb gofrestru unrhyw balŵn! Ni ellir creu menyw heb unrhyw balŵn.' - - configuration-folder-not-found: 'Heb ddod o hyd i ffolder cyfluniad: %s' - no-configuration-files-found: 'Heb ddod o hyd i ffeiliau cyfluniad yn y ffolder: %s' - configuration-section-not-found: 'Heb ddod o hyd i adran cyfluniad ar gyfer y ffeil: %s' - balloon-type-not-found: 'Gwall wrth brosesu math balŵn ar gyfer adran: %s yn y ffeil: %s. Nid yw'r math balŵn yn bodoli neu'n wag.' - balloon-process-error: 'Gwall wrth brosesu balŵn ar gyfer adran: %s yn y ffeil: %s. Gwall: %s' - - menu-slot-out-of-bounds: '%s nodyn tudalen y fwylen yn mynd dros y ffiniau!' - - invalid-hex-code: 'Cod hex annilys: %s' diff --git a/src/main/resources/languages/da_DK.yml b/src/main/resources/languages/da_DK.yml deleted file mode 100644 index 86b3632d..00000000 --- a/src/main/resources/languages/da_DK.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Ingen tilladelse.' - player-not-found: '<#fc1c1c>Spilleren blev ikke fundet.' - config-reloaded: 'Konfiguration genindlæst.' - command-disabled: '<#fc1c1c>Denne kommando er i øjeblikket deaktiveret!' - - equipped: '%s udrustet!' - unequipped: 'Din ballon er blevet gemt sikkert.' - balloon-not-found: '<#fc1c1c>Ballonen blev ikke fundet.' - not-equipped: '<#fc1c1c>Du har i øjeblikket ikke en udstyret ballon.' - - material-not-dyeable: 'Materialet %s kan ikke farves.' - invalid-rgb-values: 'RGB-værdier skal være mellem 0 og 255 for at være gyldige.' - balloon-not-set: 'Ballonen %s er ikke indstillet i konfigurationen!' - material-not-set: 'Materialet til ballonen %s er ikke indstillet i konfigurationen!' - material-not-valid: 'Materialet til ballonen %s er ikke gyldigt! Materiale: %s' - material-is-not-valid: 'Materialet %s er ikke gyldigt!' - invalid-item-meta: 'ItemMeta er ikke gyldig for materialet: %s' - - no-balloons-registered: 'Ingen balloner er registreret! Kan ikke oprette en menu uden balloner.' - - configuration-folder-not-found: 'Konfigurationsmappen blev ikke fundet: %s' - no-configuration-files-found: 'Ingen konfigurationsfiler blev fundet i mappen: %s' - configuration-section-not-found: 'Konfigurationssektionen blev ikke fundet for filen: %s' - balloon-type-not-found: 'Fejl ved behandling af ballontypen for afsnittet: %s i filen: %s. Ballontypen findes ikke eller er tom.' - balloon-process-error: 'Fejl ved behandling af ballonen for afsnittet: %s i filen: %s. Fejl: %s' - - menu-slot-out-of-bounds: '%s menuknap(er) er uden for grænserne!' - - invalid-hex-code: 'Ugyldig hexadecimal kode: %s' diff --git a/src/main/resources/languages/de_DE.yml b/src/main/resources/languages/de_DE.yml deleted file mode 100644 index f59b8f32..00000000 --- a/src/main/resources/languages/de_DE.yml +++ /dev/null @@ -1,30 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Zugriff verweigert.' - player-not-found: '<#fc1c1c>Spieler nicht gefunden.' - config-reloaded: 'Konfiguration neu geladen.' - command-disabled: '<#fc1c1c>Dieser Befehl ist derzeit deaktiviert!' - - equipped: '%s ausgerüstet!' - unequipped: 'Dein Ballon wurde sicher verstaut.' - balloon-not-found: '<#fc1c1c>Ballon nicht gefunden.' - not-equipped: '<#fc1c1c>Du hast derzeit keinen Ballon ausgerüstet.' - - material-not-dyeable: 'Material %s ist kein färbbares Material.' - invalid-rgb-values: 'RGB-Werte müssen zwischen 0 und 255 liegen, um gültig zu sein.' - balloon-not-set: 'Der Ballon %s ist nicht in der Konfiguration gesetzt!' - material-not-set: 'Das Material des Ballons %s ist nicht in der Konfiguration gesetzt!' - material-not-valid: 'Das Material des Ballons %s ist kein gültiges Material! Material: %s' - invalid-item-meta: 'ItemMeta ist für das Material %s nicht gültig.' - - no-balloons-registered: 'Keine Ballons gefunden! Kann kein Menü ohne Ballons erstellen.' - - configuration-folder-not-found: 'Konfigurationsordner nicht gefunden: %s' - no-configuration-files-found: 'Keine Konfigurationsdateien im Ordner gefunden: %s' - configuration-section-not-found: 'Konfigurationsabschnitt für Datei %s nicht gefunden.' - balloon-type-not-found: 'Fehler bei der Verarbeitung des Ballontyps für Abschnitt %s in Datei %s. Ballontyp existiert nicht oder ist null.' - balloon-process-error: 'Fehler bei der Verarbeitung des Ballons für Abschnitt %s in Datei %s. Fehler: %s' - - menu-slot-out-of-bounds: 'Menüseitenschaltflächenslot(s) %s außerhalb der Grenzen!' - - invalid-hex-code: 'Ungültiger Hex-Code: %s' \ No newline at end of file diff --git a/src/main/resources/languages/el_GR.yml b/src/main/resources/languages/el_GR.yml deleted file mode 100644 index ab4770d2..00000000 --- a/src/main/resources/languages/el_GR.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Δεν έχετε άδεια.' - player-not-found: '<#fc1c1c>Ο παίκτης δεν βρέθηκε.' - config-reloaded: 'Η διαμόρφωση επαναφορτώθηκε.' - command-disabled: '<#fc1c1c>Αυτή η εντολή είναι απενεργοποιημένη αυτή τη στιγμή!' - - equipped: '%s εξοπλίστηκε!' - unequipped: 'Η αερόσφαιρά σας αποθηκεύτηκε με ασφάλεια.' - balloon-not-found: '<#fc1c1c>Η αερόσφαιρα δεν βρέθηκε.' - not-equipped: '<#fc1c1c>Δεν έχετε αυτή τη στιγμή εξοπλισμένη αερόσφαιρα.' - - material-not-dyeable: 'Το υλικό %s δεν μπορεί να βαφτεί.' - invalid-rgb-values: 'Οι τιμές RGB πρέπει να είναι από 0 έως 255 για να είναι έγκυρες.' - balloon-not-set: 'Η αερόσφαιρα %s δεν έχει οριστεί στη διαμόρφωση!' - material-not-set: 'Το υλικό της αερόσφαιρας %s δεν έχει οριστεί στη διαμόρφωση!' - material-not-valid: 'Το υλικό της αερόσφαιρας %s δεν είναι έγκυρο υλικό! Υλικό: %s' - material-is-not-valid: 'Το υλικό %s δεν είναι έγκυρο!' - invalid-item-meta: 'Η ItemMeta δεν είναι έγκυρη για το υλικό: %s' - - no-balloons-registered: 'Δεν βρέθηκαν αερόσφαιρες! Δεν μπορεί να δημιουργηθεί ένα μενού χωρίς αερόσφαιρες.' - - configuration-folder-not-found: 'Ο φάκελος διαμόρφωσης δεν βρέθηκε: %s' - no-configuration-files-found: 'Δεν βρέθηκαν αρχεία διαμόρφωσης στον φάκελο: %s' - configuration-section-not-found: 'Η ενότητα διαμόρφωσης δεν βρέθηκε για το αρχείο: %s' - balloon-type-not-found: 'Σφάλμα επεξεργασίας τύπου αερόσφαιρας για την ενότητα: %s στο αρχείο: %s. Ο τύπος αερόσφαιρας δεν υπάρχει ή είναι κενός.' - balloon-process-error: 'Σφάλμα επεξεργασίας αερόσφαιρας για την ενότητα: %s στο αρχείο: %s. Σφάλμα: %s' - - menu-slot-out-of-bounds: '%s κουμπιά σελίδας μενού εκτός ορίων!' - - invalid-hex-code: 'Μη έγκυρος κωδικός hex: %s' diff --git a/src/main/resources/languages/en_US.yml b/src/main/resources/languages/en_US.yml index e8ef73bf..c852d823 100644 --- a/src/main/resources/languages/en_US.yml +++ b/src/main/resources/languages/en_US.yml @@ -1,14 +1,14 @@ messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Access denied.' - player-not-found: '<#fc1c1c>Player not found.' - config-reloaded: 'Config reloaded.' - command-disabled: '<#fc1c1c>This command is currently disabled!' + prefix: '&d[Bloons] &f' + no-permission: '&cAccess denied.' + player-not-found: '&cPlayer not found.' + config-reloaded: '&aConfig reloaded.' + command-disabled: '&cThis command is currently disabled!' - equipped: '%s equipped!' - unequipped: 'Your balloon has been stored safely.' - balloon-not-found: '<#fc1c1c>Balloon not found.' - not-equipped: '<#fc1c1c>You do not currently have a balloon equipped.' + equipped: '%s &aequipped!' + unequipped: '&aYour balloon has been stored safely.' + balloon-not-found: '&cBalloon not found.' + not-equipped: '&cYou do not currently have a balloon equipped.' material-not-dyeable: 'Material %s is not a dyeable material.' invalid-rgb-values: 'RGB values must be between 0 and 255 to be valid.' @@ -29,4 +29,3 @@ messages: menu-slot-out-of-bounds: '%s menu page button slot(s) out of bounds!' invalid-hex-code: 'Invalid hex code: %s' - diff --git a/src/main/resources/languages/es_ES.yml b/src/main/resources/languages/es_ES.yml index 6a883bcb..8f5e9173 100644 --- a/src/main/resources/languages/es_ES.yml +++ b/src/main/resources/languages/es_ES.yml @@ -1,14 +1,14 @@ messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Acceso denegado.' - player-not-found: '<#fc1c1c>Jugador no encontrado.' - config-reloaded: 'Configuración recargada.' - command-disabled: '<#fc1c1c>¡Este comando está actualmente desactivado!' + prefix: '&d[Bloons] &f' + no-permission: '&cAcceso denegado.' + player-not-found: '&cJugador no encontrado.' + config-reloaded: '&aConfiguración recargada.' + command-disabled: '&c¡Este comando está actualmente desactivado!' equipped: '%s equipado!' - unequipped: 'Tu globo ha sido almacenado de forma segura.' - balloon-not-found: '<#fc1c1c>Globo no encontrado.' - not-equipped: '<#fc1c1c>No tienes actualmente un globo equipado.' + unequipped: '&aTu globo ha sido almacenado de forma segura.' + balloon-not-found: '&cGlobo no encontrado.' + not-equipped: '&cNo tienes actualmente un globo equipado.' material-not-dyeable: 'El material %s no se puede teñir.' invalid-rgb-values: 'Los valores RGB deben estar entre 0 y 255 para ser válidos.' diff --git a/src/main/resources/languages/et_EE.yml b/src/main/resources/languages/et_EE.yml deleted file mode 100644 index b11b8f7e..00000000 --- a/src/main/resources/languages/et_EE.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Puudub luba.' - player-not-found: '<#fc1c1c>Mängijat ei leitud.' - config-reloaded: 'Konfiguratsioon on uuesti laaditud.' - command-disabled: '<#fc1c1c>See käsk on hetkel keelatud!' - - equipped: '%s on varustatud!' - unequipped: 'Teie õhupall on ohutult salvestatud.' - balloon-not-found: '<#fc1c1c>Õhupalli ei leitud.' - not-equipped: '<#fc1c1c>Teil ei ole hetkel ühtegi õhupalli varustatud.' - - material-not-dyeable: 'Materjali %s ei saa värvida.' - invalid-rgb-values: 'RGB väärtused peavad olema vahemikus 0 kuni 255, et olla kehtivad.' - balloon-not-set: 'Õhupalli %s pole konfiguratsioonis määratud!' - material-not-set: 'Õhupalli materjal %s pole konfiguratsioonis määratud!' - material-not-valid: 'Õhupalli materjal %s pole kehtiv materjal! Materjal: %s' - material-is-not-valid: 'Materjal %s pole kehtiv materjal!' - invalid-item-meta: 'ItemMeta pole materjali %s jaoks kehtiv.' - - no-balloons-registered: 'Õhupalle ei leitud! Menüüd ei saa luua ilma õhupallideta.' - - configuration-folder-not-found: 'Konfiguratsioonikausta ei leitud: %s' - no-configuration-files-found: 'Konfiguratsioonifaile ei leitud kaustast: %s' - configuration-section-not-found: 'Konfiguratsiooni sektsiooni ei leitud failist: %s' - balloon-type-not-found: 'Viga õhupalli tüübi töötlemisel sektsioonile: %s failis: %s. Õhupalli tüüp ei eksisteeri või on tühi.' - balloon-process-error: 'Viga õhupalli töötlemisel sektsioonile: %s failis: %s. Viga: %s' - - menu-slot-out-of-bounds: '%s menüülehe nupu kohta on väljaspool piire!' - - invalid-hex-code: 'Vigane heksakood: %s' diff --git a/src/main/resources/languages/eu_ES.yml b/src/main/resources/languages/eu_ES.yml deleted file mode 100644 index bc0ab2fa..00000000 --- a/src/main/resources/languages/eu_ES.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Ezinezkoa sarrera.' - player-not-found: '<#fc1c1c>Jokalaria ez da aurkitu.' - config-reloaded: 'Konfigurazioa berrargitaratu da.' - command-disabled: '<#fc1c1c>Komandu hau ez dago aktibatuta!' - - equipped: '%s ekipatu da!' - unequipped: 'Zure baloia seguru batera gorde da.' - balloon-not-found: '<#fc1c1c>Baloia ez da aurkitu.' - not-equipped: '<#fc1c1c>Ez daukazu momentuz ekipatutako baloirik.' - - material-not-dyeable: '%s materiala ez da koloreztagarria.' - invalid-rgb-values: 'RGB balioak 0 eta 255 artean egon behar dute baliozkoak izateko.' - balloon-not-set: 'Ez da %s baloia konfigurazioan ezarri!' - material-not-set: '%s baloiko materiala ez da konfigurazioan ezarri!' - material-not-valid: '%s baloiko materiala ez da baliozko materiala! Materiala: %s' - material-is-not-valid: '%s materiala ez da baliozko materiala!' - invalid-item-meta: 'ItemMeta ez da baliozko materialarentzako: %s' - - no-balloons-registered: 'Ez daude baloiak erregistratuta! Baloirik gabeko menua sortu ezin da.' - - configuration-folder-not-found: 'Ezarpenak gordetzeko karpeta ez da aurkitu: %s' - no-configuration-files-found: 'Ez da konfigurazio fitxategirik aurkitu karpeta honetan: %s' - configuration-section-not-found: 'Ezarpen atala ez da aurkitu fitxategian: %s' - balloon-type-not-found: 'Errorea baloia mota prozesatzerakoan atalean: %s fitxategian: %s. Baloia mota ez da existitzen edo hutsik dago.' - balloon-process-error: 'Errorea baloia prozesatzerakoan atalean: %s fitxategian: %s. Errorea: %s' - - menu-slot-out-of-bounds: '%s menu orri botoi tokia mugatik kanpo dago!' - - invalid-hex-code: 'Hex kode baliogabea: %s' diff --git a/src/main/resources/languages/fa_IR.yml b/src/main/resources/languages/fa_IR.yml deleted file mode 100644 index 5d89e571..00000000 --- a/src/main/resources/languages/fa_IR.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>دسترسی رد شد.' - player-not-found: '<#fc1c1c>بازیکن یافت نشد.' - config-reloaded: 'پیکربندی مجدداً بارگذاری شد.' - command-disabled: '<#fc1c1c>این دستور در حال حاضر غیرفعال است!' - - equipped: '%s نصب شده است!' - unequipped: 'بادبادک شما اکنون به طور ایمن ذخیره شده است.' - balloon-not-found: '<#fc1c1c>بادبادک یافت نشد.' - not-equipped: '<#fc1c1c>شما در حال حاضر هیچ بادبادکی نصب نکرده‌اید.' - - material-not-dyeable: 'مواد %s قابل رنگ‌آمیزی نیست.' - invalid-rgb-values: 'مقادیر RGB باید بین 0 و 255 باشند تا معتبر باشند.' - balloon-not-set: 'بادبادک %s در پیکربندی تنظیم نشده است!' - material-not-set: 'مواد بادبادک %s در پیکربندی تنظیم نشده است!' - material-not-valid: 'مواد بادبادک %s معتبر نیست! مواد: %s' - material-is-not-valid: 'ماده %s معتبر نیست!' - invalid-item-meta: 'ItemMeta برای ماده %s معتبر نیست.' - - no-balloons-registered: 'بادبادکی ثبت نشده است! نمی‌توانید یک فهرست بدون بادبادک ایجاد کنید.' - - configuration-folder-not-found: 'پوشه پیکربندی یافت نشد: %s' - no-configuration-files-found: 'فایل‌های پیکربندی در پوشه یافت نشد: %s' - configuration-section-not-found: 'بخش پیکربندی برای فایل یافت نشد: %s' - balloon-type-not-found: 'خطا در پردازش نوع بادبادک برای بخش: %s در فایل: %s. نوع بادبادک موجود نیست یا صفر است.' - balloon-process-error: 'خطا در پردازش بادبادک برای بخش: %s در فایل: %s. خطا: %s' - - menu-slot-out-of-bounds: '%s دکمه صفحه منو خارج از حدود است!' - - invalid-hex-code: 'کد هگزاگرادی اشتباه است: %s' diff --git a/src/main/resources/languages/fi_FI.yml b/src/main/resources/languages/fi_FI.yml deleted file mode 100644 index d4838aef..00000000 --- a/src/main/resources/languages/fi_FI.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Ei lupaa.' - player-not-found: '<#fc1c1c>Pelaajaa ei löydetty.' - config-reloaded: 'Asetukset on ladattu uudelleen.' - command-disabled: '<#fc1c1c>Tämä komento on tällä hetkellä poistettu käytöstä!' - - equipped: '%s varustettu!' - unequipped: 'Ilmapallonne on turvallisesti tallennettu.' - balloon-not-found: '<#fc1c1c>Ilmapalloa ei löytynyt.' - not-equipped: '<#fc1c1c>Sinulla ei ole tällä hetkellä varustettua ilmapalloa.' - - material-not-dyeable: 'Materiaalia %s ei voi värjätä.' - invalid-rgb-values: 'RGB-arvojen on oltava välillä 0 ja 255, jotta ne olisivat kelvollisia.' - balloon-not-set: 'Ilmapalloa %s ei ole asetettu asetuksissa!' - material-not-set: 'Ilmapallon materiaalia %s ei ole asetettu asetuksissa!' - material-not-valid: 'Ilmapallon materiaali %s ei ole kelvollinen materiaali! Materiaali: %s' - material-is-not-valid: 'Materiaali %s ei ole kelvollinen materiaali!' - invalid-item-meta: 'ItemMeta ei ole kelvollinen materiaalille: %s' - - no-balloons-registered: 'Ei löydy rekisteröityjä ilmapalloja! Ei voida luoda valikkoa ilman ilmapalloja.' - - configuration-folder-not-found: 'Asetuskansiota ei löydy: %s' - no-configuration-files-found: 'Asetustiedostoja ei löytynyt kansiosta: %s' - configuration-section-not-found: 'Asetusosaa ei löytynyt tiedostosta: %s' - balloon-type-not-found: 'Virhe käsiteltäessä ilmapallotyyppiä osiolle: %s tiedostossa: %s. Ilmapallotyyppiä ei ole tai se on tyhjä.' - balloon-process-error: 'Virhe käsiteltäessä ilmapalloa osiolle: %s tiedostossa: %s. Virhe: %s' - - menu-slot-out-of-bounds: '%s valikkosivun painike(tta) on ulkona rajoista!' - - invalid-hex-code: 'Virheellinen heksakoodi: %s' diff --git a/src/main/resources/languages/fo_FO.yml b/src/main/resources/languages/fo_FO.yml deleted file mode 100644 index 017b8e22..00000000 --- a/src/main/resources/languages/fo_FO.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Eingin loyvi.' - player-not-found: '<#fc1c1c>Spælari fannst ikki.' - config-reloaded: 'Stillingar endurrættir.' - command-disabled: '<#fc1c1c>Hetta skipan er tøkt nú!' - - equipped: '%s útbúgvað!' - unequipped: 'Tínur ballónur er trygt geymdur.' - balloon-not-found: '<#fc1c1c>Ballónur fannst ikki.' - not-equipped: '<#fc1c1c>Tit hava ikki nakrar ballónur útbúgvaðar í nú. ' - - material-not-dyeable: 'Materiál %s kann ikki litast.' - invalid-rgb-values: 'RGB virðið má vera millum 0 og 255 fyri at vera gildandi.' - balloon-not-set: 'Ballónur %s er ikki sett í stillingar!' - material-not-set: 'Materiálið hjá ballónunum %s er ikki sett í stillingar!' - material-not-valid: 'Materiálið hjá ballónunum %s er ikki gildigt! Materiál: %s' - material-is-not-valid: 'Materiál %s er ikki gildigt!' - invalid-item-meta: 'ItemMeta er ikki gild fyri materiál: %s' - - no-balloons-registered: 'Eingin ballónur funnist! Ikki gjørt henda menu uttan ballónum.' - - configuration-folder-not-found: 'Stillingamappan fannst ikki: %s' - no-configuration-files-found: 'Eingin stillingaskráir funnist í mappuni: %s' - configuration-section-not-found: 'Stillingarsnið fannst ikki fyri skrá: %s' - balloon-type-not-found: 'Feilur við at handtera ballóntegund fyri seksjón: %s í skrá: %s. Ballóntegundin er ikki til ella er tóm.' - balloon-process-error: 'Feilur við at handtera ballón fyri seksjón: %s í skrá: %s. Feilur: %s' - - menu-slot-out-of-bounds: '%s mený síðu knøtt(ur) er úteftir teirra mørk!' - - invalid-hex-code: 'Ógild heksadekimal koda: %s' diff --git a/src/main/resources/languages/fr_FR.yml b/src/main/resources/languages/fr_FR.yml deleted file mode 100644 index 8311bd43..00000000 --- a/src/main/resources/languages/fr_FR.yml +++ /dev/null @@ -1,30 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Accès refusé.' - player-not-found: '<#fc1c1c>Joueur non trouvé.' - config-reloaded: 'Configuration rechargée.' - command-disabled: '<#fc1c1c>Cette commande est actuellement désactivée!' - - equipped: '%s équipé!' - unequipped: 'Votre ballon a été rangé en toute sécurité.' - balloon-not-found: '<#fc1c1c>Ballon non trouvé.' - not-equipped: '<#fc1c1c>Vous n\''avez actuellement aucun ballon équipé.' - - material-not-dyeable: 'Le matériau %s n\''est pas un matériau teignable.' - invalid-rgb-values: 'Les valeurs RGB doivent être comprises entre 0 et 255 pour être valides.' - balloon-not-set: 'Le ballon %s n\''est pas défini dans la configuration!' - material-not-set: 'Le matériau du ballon %s n\''est pas défini dans la configuration!' - material-not-valid: 'Le matériau du ballon %s n\''est pas un matériau valide! Matériau: %s' - invalid-item-meta: 'ItemMeta n\''est pas valide pour le matériau: %s' - - no-balloons-registered: 'Aucun ballon trouvé! Impossible de créer un menu sans ballons.' - - configuration-folder-not-found: 'Dossier de configuration non trouvé: %s' - no-configuration-files-found: 'Aucun fichier de configuration trouvé dans le dossier: %s' - configuration-section-not-found: 'Section de configuration non trouvée pour le fichier: %s' - balloon-type-not-found: 'Erreur de traitement du type de ballon pour la section: %s dans le fichier: %s. Le type de ballon n\''existe pas ou est nul.' - balloon-process-error: 'Erreur de traitement du ballon pour la section: %s dans le fichier: %s. Erreur: %s' - - menu-slot-out-of-bounds: 'Le(s) bouton(s) de la page de menu %s sont hors limites!' - - invalid-hex-code: 'Code hexadécimal invalide: %s' \ No newline at end of file diff --git a/src/main/resources/languages/gl_ES.yml b/src/main/resources/languages/gl_ES.yml deleted file mode 100644 index ff0c215d..00000000 --- a/src/main/resources/languages/gl_ES.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Sen permiso.' - player-not-found: '<#fc1c1c>Xogador non atopado.' - config-reloaded: 'Configuración recargada.' - command-disabled: '<#fc1c1c>Este comando está actualmente desactivado!' - - equipped: '%s equipado!' - unequipped: 'O seu globo foi almacenado con seguridade.' - balloon-not-found: '<#fc1c1c>Globo non atopado.' - not-equipped: '<#fc1c1c>Actualmente non ten ningún globo equipado.' - - material-not-dyeable: 'O material %s non pode ser tingido.' - invalid-rgb-values: 'Os valores RGB deben estar entre 0 e 255 para seren válidos.' - balloon-not-set: 'O globo %s non está definido na configuración!' - material-not-set: 'O material do globo %s non está definido na configuración!' - material-not-valid: 'O material do globo %s non é válido! Material: %s' - material-is-not-valid: 'O material %s non é válido!' - invalid-item-meta: 'ItemMeta non é válido para o material: %s' - - no-balloons-registered: 'Non se atopan globos! Non se pode crear un menú sen globos.' - - configuration-folder-not-found: 'Cartafol de configuración non atopado: %s' - no-configuration-files-found: 'Non se atoparon arquivos de configuración no cartafol: %s' - configuration-section-not-found: 'Sección de configuración non atopada para o arquivo: %s' - balloon-type-not-found: 'Erro ao procesar o tipo de globo para a sección: %s no arquivo: %s. O tipo de globo non existe ou é nulo.' - balloon-process-error: 'Erro ao procesar o globo para a sección: %s no arquivo: %s. Erro: %s' - - menu-slot-out-of-bounds: '%s botóns da páxina do menú fóra dos límites!' - - invalid-hex-code: 'Código hexadecimal non válido: %s' diff --git a/src/main/resources/languages/gu_IN.yml b/src/main/resources/languages/gu_IN.yml deleted file mode 100644 index 2fbb602b..00000000 --- a/src/main/resources/languages/gu_IN.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>કોઈ પરવાનગી નથી.' - player-not-found: '<#fc1c1c>ખેલાડી મળી નથી.' - config-reloaded: 'રૂપરેખાંકન પુનઃલોડ થયો.' - command-disabled: '<#fc1c1c>આ આદેશ હાલમાં અક્રિય છે!' - - equipped: '%s સજ્જ કરેલું છે!' - unequipped: 'તમારી બલૂન સુરક્ષિત રીતે સંગ્રહિત થઇ ગઈ છે.' - balloon-not-found: '<#fc1c1c>બલૂન મળ્યું નથી.' - not-equipped: '<#fc1c1c>તમારી સાથે હાલમાં કોઈ બલૂન સજ્જ નથી.' - - material-not-dyeable: 'સામગ્રી %s રંગીન નથી.' - invalid-rgb-values: 'RGB મૂલ્યો માન્ય હોવા માટે 0 થી 255 વચ્ચે હોવો જ જોઈએ.' - balloon-not-set: 'બલૂન %s રૂપરેખાંકનમાં સેટ કરવામાં નથી!' - material-not-set: 'બલૂનની સામગ્રી %s રૂપરેખાંકનમાં સેટ કરવામાં નથી!' - material-not-valid: 'બલૂનની સામગ્રી %s માન્ય સામગ્રી નથી! સામગ્રી: %s' - material-is-not-valid: 'સામગ્રી %s માન્ય સામગ્રી નથી!' - invalid-item-meta: 'વસ્તુની મેટા માન્ય નથી: %s' - - no-balloons-registered: 'કોઈ બલૂન્સ મળ્યા નથી! કોઈ બલૂન્સ સાથે મેનૂ બનાવી શકાતું નથી.' - - configuration-folder-not-found: 'રૂપરેખાંકન ફોલ્ડર મળ્યો નથી: %s' - no-configuration-files-found: 'ફોલ્ડરમાં કોઈ રૂપરેખાંકન ફાઇલો મળ્યા નથી: %s' - configuration-section-not-found: 'ફાઇલ માટે રૂપરેખાંકન વિભાગ મળ્યો નથી: %s' - balloon-type-not-found: 'વિભાગ %s માટે બલૂન પ્રકારનું પ્રક્રિયાકરણ ક્રમ નથી: %s ફાઇલમાં. બલૂન પ્રકાર અસ્તિત્વમાં નથી અથવા ખાલી છે.' - balloon-process-error: 'વિભાગ %s માટે બલૂન પ્રક્રિયાકરણ ક્રમ નથી: %s ફાઇલમાં. ભૂલ: %s' - - menu-slot-out-of-bounds: '%s મેનુ પેજ બટન સ્લોટ(સ) બાહ્ય મર્યાદાઓ બહાર!' - - invalid-hex-code: 'અમાન્ય હેક્સ કોડ: %s' diff --git a/src/main/resources/languages/he_IL.yml b/src/main/resources/languages/he_IL.yml deleted file mode 100644 index 4ba66388..00000000 --- a/src/main/resources/languages/he_IL.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>אין הרשאה.' - player-not-found: '<#fc1c1c>שחקן לא נמצא.' - config-reloaded: 'התצורה נטענה מחדש.' - command-disabled: '<#fc1c1c>פקודה זו מנוטרלת כרגע!' - - equipped: '%s נצמד בהצלחה!' - unequipped: 'הבלון שלך נשמר בבטיחות.' - balloon-not-found: '<#fc1c1c>הבלון לא נמצא.' - not-equipped: '<#fc1c1c>אין לך בלון מצופה כרגע.' - - material-not-dyeable: 'החומר %s אינו ניתן לצביעה.' - invalid-rgb-values: 'ערכי RGB חייבים להיות בין 0 ל-255 כדי להיות חוקיים.' - balloon-not-set: 'הבלון %s לא מוגדר בתצורה!' - material-not-set: 'החומר של הבלון %s אינו מוגדר בתצורה!' - material-not-valid: 'החומר של הבלון %s אינו חומר חוקי! חומר: %s' - material-is-not-valid: 'החומר %s אינו חומר חוקי!' - invalid-item-meta: 'ItemMeta אינו חוקי עבור החומר: %s' - - no-balloons-registered: 'לא נמצאו בלונים! לא ניתן ליצור תפריט ללא בלונים.' - - configuration-folder-not-found: 'תיקיית התצורה לא נמצאה: %s' - no-configuration-files-found: 'לא נמצאו קבצי תצורה בתיקייה: %s' - configuration-section-not-found: 'לא נמצאה סעיף תצורה עבור הקובץ: %s' - balloon-type-not-found: 'שגיאה בעיבוד סוג בלון עבור הסעיף: %s בקובץ: %s. סוג הבלון אינו קיים או הוא ריק.' - balloon-process-error: 'שגיאה בעיבוד הבלון עבור הסעיף: %s בקובץ: %s. שגיאה: %s' - - menu-slot-out-of-bounds: '%s כפתורי עמוד תפריט מחוץ לגבולות!' - - invalid-hex-code: 'קוד hex לא חוקי: %s' diff --git a/src/main/resources/languages/hi_IN.yml b/src/main/resources/languages/hi_IN.yml deleted file mode 100644 index 0c630b3d..00000000 --- a/src/main/resources/languages/hi_IN.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>पहुंच निषेध।' - player-not-found: '<#fc1c1c>खिलाड़ी नहीं मिला।' - config-reloaded: 'कॉन्फ़िगरेशन पुनः लोड किया गया।' - command-disabled: '<#fc1c1c>यह कमांड वर्तमान में निष्क्रिय है!' - - equipped: '%s सफलतापूर्वक सुसज्जित किया गया!' - unequipped: 'आपका गुब्बारा सुरक्षित रूप से संग्रहीत हो गया है।' - balloon-not-found: '<#fc1c1c>गुब्बारा नहीं मिला।' - not-equipped: '<#fc1c1c>आपके पास वर्तमान में कोई गुब्बारा सुसज्जित नहीं है।' - - material-not-dyeable: 'सामग्री %s को रंगने में सक्षम नहीं है।' - invalid-rgb-values: 'RGB मूल्यों को मान्य होने के लिए 0 से 255 के बीच होना चाहिए।' - balloon-not-set: 'गुब्बारा %s कॉन्फ़िगरेशन में सेट नहीं है!' - material-not-set: 'गुब्बारे की सामग्री %s कॉन्फ़िगरेशन में सेट नहीं है!' - material-not-valid: 'गुब्बारे की सामग्री %s मान्य सामग्री नहीं है! सामग्री: %s' - material-is-not-valid: 'सामग्री %s मान्य सामग्री नहीं है!' - invalid-item-meta: 'आइटम मेटा सामग्री के लिए मान्य नहीं है: %s' - - no-balloons-registered: 'कोई गुब्बारे नहीं मिले! कोई गुब्बारे के साथ मेनू नहीं बनाया जा सकता।' - - configuration-folder-not-found: 'कॉन्फ़िगरेशन फ़ोल्डर नहीं मिला: %s' - no-configuration-files-found: 'फ़ोल्डर में कोई कॉन्फ़िगरेशन फ़ाइलें नहीं मिलीं: %s' - configuration-section-not-found: 'फ़ाइल के लिए कॉन्फ़िगरेशन सेक्शन नहीं मिला: %s' - balloon-type-not-found: 'धागे के सेक्शन के लिए गुब्बारे का प्रकार प्रसंस्करण त्रुटि: %s फ़ाइल में: %s। गुब्बारे का प्रकार मौजूद नहीं है या खाली है।' - balloon-process-error: 'धागे के सेक्शन के लिए गुब्बारे की प्रसंस्करण त्रुटि: %s फ़ाइल में: %s। त्रुटि: %s' - - menu-slot-out-of-bounds: '%s मेनू पृष्ठ बटन स्लॉट(स) सीमाओं के बाहर हैं!' - - invalid-hex-code: 'अमान्य hex कोड: %s' diff --git a/src/main/resources/languages/hr_HR.yml b/src/main/resources/languages/hr_HR.yml deleted file mode 100644 index c221a872..00000000 --- a/src/main/resources/languages/hr_HR.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Nema dopuštenja.' - player-not-found: '<#fc1c1c>Igrač nije pronađen.' - config-reloaded: 'Konfiguracija je ponovno učitana.' - command-disabled: '<#fc1c1c>Ova naredba je trenutno onemogućena!' - - equipped: '%s opremljen!' - unequipped: 'Vaš balon je sigurno pohranjen.' - balloon-not-found: '<#fc1c1c>Balon nije pronađen.' - not-equipped: '<#fc1c1c>Trenutno nemate opremljen balon.' - - material-not-dyeable: 'Materijal %s nije moguće obojiti.' - invalid-rgb-values: 'RGB vrijednosti moraju biti između 0 i 255 da bi bile valjane.' - balloon-not-set: 'Balon %s nije postavljen u konfiguraciji!' - material-not-set: 'Materijal balona %s nije postavljen u konfiguraciji!' - material-not-valid: 'Materijal balona %s nije valjan materijal! Materijal: %s' - material-is-not-valid: 'Materijal %s nije valjan materijal!' - invalid-item-meta: 'ItemMeta nije valjan za materijal: %s' - - no-balloons-registered: 'Nema registriranih balona! Ne može se stvoriti izbornik bez balona.' - - configuration-folder-not-found: 'Mapa konfiguracije nije pronađena: %s' - no-configuration-files-found: 'Nema pronađenih konfiguracijskih datoteka u mapi: %s' - configuration-section-not-found: 'Sekcija konfiguracije nije pronađena za datoteku: %s' - balloon-type-not-found: 'Pogreška pri obradi vrste balona za odjeljak: %s u datoteci: %s. Vrsta balona ne postoji ili je prazna.' - balloon-process-error: 'Pogreška pri obradi balona za odjeljak: %s u datoteci: %s. Greška: %s' - - menu-slot-out-of-bounds: '%s gumbi stranice izbornika izvan granica!' - - invalid-hex-code: 'Nevažeći heksadecimalni kod: %s' diff --git a/src/main/resources/languages/hu_HU.yml b/src/main/resources/languages/hu_HU.yml deleted file mode 100644 index 158d6d68..00000000 --- a/src/main/resources/languages/hu_HU.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Hozzáférés megtagadva.' - player-not-found: '<#fc1c1c>A játékos nem található.' - config-reloaded: 'A konfiguráció újratöltve.' - command-disabled: '<#fc1c1c>Ez a parancs jelenleg letiltva van!' - - equipped: '%s felszerelve!' - unequipped: 'A lufid biztonságosan eltárolva.' - balloon-not-found: '<#fc1c1c>A lufi nem található.' - not-equipped: '<#fc1c1c>Jelenleg nincs felszerelve lufi.' - - material-not-dyeable: 'Az anyag %s nem festhető.' - invalid-rgb-values: 'Az RGB értékeknek 0 és 255 között kell lenniük.' - balloon-not-set: 'A %s lufi nincs beállítva a konfigurációban!' - material-not-set: 'A %s lufi anyaga nincs beállítva a konfigurációban!' - material-not-valid: 'A %s lufi anyaga nem érvényes anyag! Anyag: %s' - material-is-not-valid: 'Az anyag %s nem érvényes anyag!' - invalid-item-meta: 'Az ItemMeta nem érvényes az anyaghoz: %s' - - no-balloons-registered: 'Nincsenek regisztrált lufik! Nem lehet menüt létrehozni regisztrált lufik nélkül.' - - configuration-folder-not-found: 'A konfigurációs mappa nem található: %s' - no-configuration-files-found: 'Nincsenek konfigurációs fájlok a mappában: %s' - configuration-section-not-found: 'A konfigurációs szakasz nem található a fájlhoz: %s' - balloon-type-not-found: 'Hiba a lufi típusának feldolgozásakor a szakaszhoz: %s a fájlban: %s. A lufi típusa nem létezik vagy null.' - balloon-process-error: 'Hiba a lufi feldolgozásakor a szakaszhoz: %s a fájlban: %s. Hiba: %s' - - menu-slot-out-of-bounds: '%s menü oldal gomb hely nincs határokon belül!' - - invalid-hex-code: 'Érvénytelen hex kód: %s' diff --git a/src/main/resources/languages/hy_AM.yml b/src/main/resources/languages/hy_AM.yml deleted file mode 100644 index 621d27e3..00000000 --- a/src/main/resources/languages/hy_AM.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Թույլատրելիություն չկա.' - player-not-found: '<#fc1c1c>Հաստատիչը չի գտնվել.' - config-reloaded: 'Կոնֆիգուրացիան վերաբեռնվել է:' - command-disabled: '<#fc1c1c>Այս հրամանը ներկայացնված չէ։' - - equipped: '%s հավաքվեց։' - unequipped: 'Ձեր բլունը անվանակում է ապակում։' - balloon-not-found: '<#fc1c1c>Բլունը չի գտնվել։' - not-equipped: '<#fc1c1c>Դուք ներկայացրել չունեք բլուն։' - - material-not-dyeable: 'Մատիան %s չի կարող նվագել։' - invalid-rgb-values: 'RGB արժեքները պետք է լինեն 0-ից 255 միջակայքում։' - balloon-not-set: 'Բլունը %s չի սահմանված կոնֆիգուրացիայում։' - material-not-set: 'Բլունի %s մարմինը չի սահմանված կոնֆիգուրացիայում։' - material-not-valid: 'Բլունի %s մարմինը վավեր չէ։ Մարմինը: %s' - material-is-not-valid: 'Մատիան %s վավեր չէ։' - invalid-item-meta: 'Ապրանքի մետատվյալները չեն վավերացիայի %s համար։' - - no-balloons-registered: 'Ոչ մի բլուն չի գրանցվել։ Չհաջողվեց ստեղծել ընտրացանկ առանց բլուն։' - - configuration-folder-not-found: 'Կոնֆիգուրացիայի թղթապանակը չի գտնվել՝ %s' - no-configuration-files-found: 'Չի գտնվել կոնֆիգուրացիայի ֆայլեր %s թղթապանակում։' - configuration-section-not-found: 'Կոնֆիգուրացիայի բաժնի գտնվելը չհաջողվեց ֆայլում՝ %s' - balloon-type-not-found: 'Բլունի տեսակի սխալ մշակման համար բաժինը՝ %s, ֆայլում՝ %s։ Բլունի տեսակը չկա կամ դա դատարկ է։' - balloon-process-error: 'Բլունի մշակման սխալ համար բաժինը՝ %s, ֆայլում՝ %s։ Սխալ՝ %s' - - menu-slot-out-of-bounds: '%s ընտրացանկի էջի կոճակի տեղերը շարունակվում են առանց պահի։' - - invalid-hex-code: 'Անվավեր հեքս կոդ՝ %s' diff --git a/src/main/resources/languages/id_ID.yml b/src/main/resources/languages/id_ID.yml deleted file mode 100644 index efdb3b15..00000000 --- a/src/main/resources/languages/id_ID.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Akses ditolak.' - player-not-found: '<#fc1c1c>Pemain tidak ditemukan.' - config-reloaded: 'Konfigurasi dimuat ulang.' - command-disabled: '<#fc1c1c>Perintah ini saat ini dinonaktifkan!' - - equipped: '%s terpasang!' - unequipped: 'Balon Anda telah disimpan dengan aman.' - balloon-not-found: '<#fc1c1c>Balon tidak ditemukan.' - not-equipped: '<#fc1c1c>Anda saat ini tidak memiliki balon terpasang.' - - material-not-dyeable: 'Material %s tidak dapat diwarnai.' - invalid-rgb-values: 'Nilai RGB harus antara 0 dan 255 untuk valid.' - balloon-not-set: 'Balon %s tidak diatur dalam konfigurasi!' - material-not-set: 'Material balon %s tidak diatur dalam konfigurasi!' - material-not-valid: 'Material balon %s bukan material yang valid! Material: %s' - material-is-not-valid: 'Material %s bukan material yang valid!' - invalid-item-meta: 'ItemMeta tidak valid untuk material: %s' - - no-balloons-registered: 'Tidak ada balon yang terdaftar! Tidak dapat membuat menu tanpa balon.' - - configuration-folder-not-found: 'Folder konfigurasi tidak ditemukan: %s' - no-configuration-files-found: 'Tidak ada file konfigurasi yang ditemukan di folder: %s' - configuration-section-not-found: 'Bagian konfigurasi tidak ditemukan untuk file: %s' - balloon-type-not-found: 'Kesalahan saat memproses jenis balon untuk bagian: %s di file: %s. Jenis balon tidak ada atau null.' - balloon-process-error: 'Kesalahan saat memproses balon untuk bagian: %s di file: %s. Kesalahan: %s' - - menu-slot-out-of-bounds: '%s slot tombol halaman menu di luar batas!' - - invalid-hex-code: 'Kode hex tidak valid: %s' diff --git a/src/main/resources/languages/is_IS.yml b/src/main/resources/languages/is_IS.yml deleted file mode 100644 index b83645ff..00000000 --- a/src/main/resources/languages/is_IS.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Áður hefur verið óheimilt.' - player-not-found: '<#fc1c1c>Leikmaður fannst ekki.' - config-reloaded: 'Stillingar hlaðnar aftur inn.' - command-disabled: '<#fc1c1c>Þessi skipun er í augnablikinu óvirk!' - - equipped: '%s búið til!' - unequipped: 'Loftbelgurinn þinn hefur verið geymdur örugglega.' - balloon-not-found: '<#fc1c1c>Loftbelgur fannst ekki.' - not-equipped: '<#fc1c1c>Þú ert ekki með loftbelg búinn að gera ráð fyrir þig.' - - material-not-dyeable: 'Efnið %s er ekki litarefni.' - invalid-rgb-values: 'RGB gildin verða að vera á milli 0 og 255 til að vera gild gildi.' - balloon-not-set: '%s loftbelgurinn er ekki settur í stillingunni!' - material-not-set: '%s loftbelgurinn er ekki settur í efni í stillingunni!' - material-not-valid: '%s loftbelgurinn er ekki gilt efni! Efni: %s' - material-is-not-valid: 'Efnið %s er ekki gilt efni!' - invalid-item-meta: 'ItemMeta er ekki gilt fyrir efnið: %s' - - no-balloons-registered: 'Engir loftbelgar eru skráðir! Ekki hægt að búa til valmynd án loftbelga.' - - configuration-folder-not-found: 'Stillingarmappa fannst ekki: %s' - no-configuration-files-found: 'Engar stillingarskrár fundust í möppunni: %s' - configuration-section-not-found: 'Stillingarsekt fannst ekki fyrir skrá: %s' - balloon-type-not-found: 'Villa við að vinna með loftbelg tegund fyrir hluta: %s í skrá: %s. Loftbelgur tegund er ekki til eða er tómur.' - balloon-process-error: 'Villa við að vinna loftbelg fyrir hluta: %s í skrá: %s. Villa: %s' - - menu-slot-out-of-bounds: '%s valmynd síðuhnappur staðsetning er utan marka!' - - invalid-hex-code: 'Ógild hex kóði: %s' diff --git a/src/main/resources/languages/it_IT.yml b/src/main/resources/languages/it_IT.yml deleted file mode 100644 index 9f9f7e2f..00000000 --- a/src/main/resources/languages/it_IT.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Accesso negato.' - player-not-found: '<#fc1c1c>Giocatore non trovato.' - config-reloaded: 'Configurazione ricaricata.' - command-disabled: '<#fc1c1c>Questo comando è attualmente disabilitato!' - - equipped: '%s equipaggiato!' - unequipped: 'Il tuo palloncino è stato riposto in sicurezza.' - balloon-not-found: '<#fc1c1c>Palloncino non trovato.' - not-equipped: '<#fc1c1c>Al momento non hai un palloncino equipaggiato.' - - material-not-dyeable: 'Il materiale %s non è tinto.' - invalid-rgb-values: 'I valori RGB devono essere compresi tra 0 e 255 per essere validi.' - balloon-not-set: 'Il palloncino %s non è impostato nella configurazione!' - material-not-set: 'Il materiale del palloncino %s non è impostato nella configurazione!' - material-not-valid: 'Il materiale del palloncino %s non è un materiale valido! Materiale: %s' - material-is-not-valid: 'Il materiale %s non è un materiale valido!' - invalid-item-meta: 'ItemMeta non è valido per il materiale: %s' - - no-balloons-registered: 'Nessun palloncino registrato! Impossibile creare un menu senza palloncini.' - - configuration-folder-not-found: 'Cartella di configurazione non trovata: %s' - no-configuration-files-found: 'Nessun file di configurazione trovato nella cartella: %s' - configuration-section-not-found: 'Sezione di configurazione non trovata per il file: %s' - balloon-type-not-found: "Errore durante l'elaborazione del tipo di palloncino per la sezione: %s nel file: %s. Il tipo di palloncino non esiste o è nullo." - balloon-process-error: "Errore durante l'elaborazione del palloncino per la sezione: %s nel file: %s. Errore: %s" - - menu-slot-out-of-bounds: '%s slot pulsante della pagina del menu fuori limite!' - - invalid-hex-code: 'Codice esadecimale non valido: %s' diff --git a/src/main/resources/languages/ja_JP.yml b/src/main/resources/languages/ja_JP.yml deleted file mode 100644 index f22ea9ba..00000000 --- a/src/main/resources/languages/ja_JP.yml +++ /dev/null @@ -1,30 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>アクセスが拒否されました。' - player-not-found: '<#fc1c1c>プレイヤーが見つかりません。' - config-reloaded: '設定がリロードされました。' - command-disabled: '<#fc1c1c>このコマンドは現在無効です!' - - equipped: '%s 装備されました!' - unequipped: 'バルーンが安全に保管されました。' - balloon-not-found: '<#fc1c1c>バルーンが見つかりません。' - not-equipped: '<#fc1c1c>現在、装備しているバルーンはありません。' - - material-not-dyeable: '材料 %s は染色可能な材料ではありません。' - invalid-rgb-values: 'RGB値は0から255の間でなければなりません。' - balloon-not-set: '設定にバルーン %s が設定されていません!' - material-not-set: 'バルーン %s の材料が設定にありません!' - material-not-valid: 'バルーン %s の材料は有効な材料ではありません! 材料: %s' - invalid-item-meta: '材料 %s に対してItemMetaが無効です。' - - no-balloons-registered: 'バルーンが見つかりません! バルーンなしでメニューを作成することはできません。' - - configuration-folder-not-found: '設定フォルダが見つかりません: %s' - no-configuration-files-found: 'フォルダに設定ファイルが見つかりません: %s' - configuration-section-not-found: 'ファイル %s の設定セクションが見つかりません。' - balloon-type-not-found: 'ファイル %s のセクション %s のバルーンタイプを処理中にエラーが発生しました。バルーンタイプが存在しないか、nullです。' - balloon-process-error: 'ファイル %s のセクション %s のバルーンを処理中にエラーが発生しました。エラー: %s' - - menu-slot-out-of-bounds: '%s メニューページのボタンスロットが範囲外です!' - - invalid-hex-code: '無効な 16 進コード: %s' \ No newline at end of file diff --git a/src/main/resources/languages/ka_GE.yml b/src/main/resources/languages/ka_GE.yml deleted file mode 100644 index 882c20c2..00000000 --- a/src/main/resources/languages/ka_GE.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>არაა ნებართვა.' - player-not-found: '<#fc1c1c>მოთამაშე არ მოიძებნა.' - config-reloaded: 'კონფიგურაცია გადატვირთულია.' - command-disabled: '<#fc1c1c>ეს ბრძანება ამჟამად გამორთულია!' - - equipped: '%s შედეგიდან ჩამორთულია!' - unequipped: 'თქვენი ბურთი დაშენახულია უსაფრთხოდ.' - balloon-not-found: '<#fc1c1c>ბურთი ვერ მოიძებნა.' - not-equipped: '<#fc1c1c>თქვენ ამჟამად არ გაქვთ დამორჩილებული ბურთი.' - - material-not-dyeable: 'მასალა %s არ შეიძლება გათვლდეს.' - invalid-rgb-values: 'RGB მნიშვნელობები უნდა იყოს 0-დან 255-მდე, რათა იყოს სწორი.' - balloon-not-set: 'ბურთი %s არ არის დაყენებული კონფიგურაციაში!' - material-not-set: 'ბურთის მასალა %s არ არის დაყენებული კონფიგურაციაში!' - material-not-valid: 'ბურთის მასალა %s არ არის მართებული! მასალა: %s' - material-is-not-valid: 'მასალა %s არ არის მართებული!' - invalid-item-meta: 'ItemMeta არ არის მასალათვის: %s' - - no-balloons-registered: 'ბურთები არ მოიძებნა! მენიუ ვერ შეიქმნა ბურთების გარეშე.' - - configuration-folder-not-found: 'კონფიგურაციის საქაღალდე არ მოიძებნა: %s' - no-configuration-files-found: 'კონფიგურაციის ფაილები არ მოიძებნა საქაღალდეში: %s' - configuration-section-not-found: 'კონფიგურაციის სექცია არ მოიძებნა ფაილისთვის: %s' - balloon-type-not-found: 'ბურთის ტიპის დამუშავების შეცდომა სექციისთვის: %s ფაილში: %s. ბურთის ტიპი არ არსებობს ან იქნა ცარიელი.' - balloon-process-error: 'ბურთის დამუშავების შეცდომა სექციისთვის: %s ფაილში: %s. შეცდომა: %s' - - menu-slot-out-of-bounds: '%s მენიუს გვერდის ღილაკი(ები) გარეთ ზღვაში!' - - invalid-hex-code: 'არასწორი hex კოდი: %s' diff --git a/src/main/resources/languages/kk_KZ.yml b/src/main/resources/languages/kk_KZ.yml deleted file mode 100644 index dc32f7ad..00000000 --- a/src/main/resources/languages/kk_KZ.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Кіру расталған жоқ.' - player-not-found: '<#fc1c1c>Ойыншы табылмады.' - config-reloaded: 'Конфигурация қайта жүктелді.' - command-disabled: '<#fc1c1c>Бұл команда қазір өшірілген!' - - equipped: '%s орнатылды!' - unequipped: 'Сіздің шарыңыз қауіпсіз сақталды.' - balloon-not-found: '<#fc1c1c>Шар табылмады.' - not-equipped: '<#fc1c1c>Қазір сізде орнатылған шар жоқ.' - - material-not-dyeable: '%s материалды боялау мүмкін емес.' - invalid-rgb-values: 'RGB мәндері 0 және 255 арасында болуы керек.' - balloon-not-set: '%s шар конфигурацияда орнатылмаған!' - material-not-set: '%s шар материалы конфигурацияда орнатылмаған!' - material-not-valid: '%s шар материалы жарамсыз материал емес! Материал: %s' - material-is-not-valid: '%s материалы жарамсыз материал емес!' - invalid-item-meta: 'ItemMeta материалға жарамсыз: %s' - - no-balloons-registered: 'Шығарушылар тіркеулі емес! Шарларсыз мәзір жасау мүмкін емес.' - - configuration-folder-not-found: 'Конфигурация қалтасы табылмады: %s' - no-configuration-files-found: 'Конфигурация файлдары табылмады: %s папкада жоқ' - configuration-section-not-found: 'Файл үшін конфигурация бөлімі табылмады: %s' - balloon-type-not-found: 'Бөлім: %s файл: %s үшін шар түрін өңдеу кезінде қате пайда болды. Шар түрі жоқ немесе бос.' - balloon-process-error: 'Бөлім: %s файл: %s үшін шарды өңдеу кезінде қате пайда болды. Қате: %s' - - menu-slot-out-of-bounds: '%s меню бет батырма орындары шектеуден тыс!' - - invalid-hex-code: 'Жарамсыз қиылмашы код: %s' diff --git a/src/main/resources/languages/kn_IN.yml b/src/main/resources/languages/kn_IN.yml deleted file mode 100644 index 4d8c18af..00000000 --- a/src/main/resources/languages/kn_IN.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>ಪ್ರವೇಶ ನಿರಾಕರಿಸಲಾಗಿದೆ.' - player-not-found: '<#fc1c1c>ಆಟಗಾರ ಕಂಡುಬರಲಿಲ್ಲ.' - config-reloaded: 'ಕಾನ್ಫಿಗರೇಷನ್ ಮರುಹೊಂದಿಸಲಾಗಿದೆ.' - command-disabled: '<#fc1c1c>ಈ ಕಮಾಂಡ್ ಪ್ರಸ್ತುತವಾಗಿ ನಿಷೇಧಿಸಲಾಗಿದೆ!' - - equipped: '%s ಅಣಿಮಾಡಲಾಗಿದೆ!' - unequipped: 'ನಿಮ್ಮ ಬಲೂನ್ ಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಿತವಾಗಿದೆ.' - balloon-not-found: '<#fc1c1c>ಬಲೂನ್ ಸಿಗಲಿಲ್ಲ.' - not-equipped: '<#fc1c1c>ನೀವು ಪ್ರಸ್ತುತವಾಗಿ ಯಾವುದೇ ಬಲೂನ್ ಅಣಿಯಲಾಗಿಲ್ಲ.' - - material-not-dyeable: 'ತರಹದ %s ಬಣ್ಣಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.' - invalid-rgb-values: 'RGB ಮೌಲ್ಯಗಳು 0 ಮತ್ತು 255 ನಡುವೆ ಇರಬೇಕು ಅಥವಾ ಮಾನ್ಯವಿರಬೇಕು.' - balloon-not-set: 'ಬಲೂನ್ %s ಆಕೃತಿಯಲ್ಲಿ ಹೊಂದಲ್ಪಡಿಲ್ಲ!' - material-not-set: 'ಬಲೂನ್ %s ಆಕೃತಿಯ ಬಲೂನ್ ಅನಾಯಕ್ತವಾಗಿದೆ!' - material-not-valid: 'ಬಲೂನ್ %s ಆಕೃತಿಯ ಬಲೂನ್ ಅಮಾನ್ಯ ವಸ್ತು! ವಸ್ತು: %s' - material-is-not-valid: '%s ವಸ್ತು ಅಮಾನ್ಯ ವಸ್ತು ಅಥವಾ ಖಾಲಿ ಇದೆ!' - invalid-item-meta: 'ಐಟಂಮೇಟಾ ಬಲೂನ್ ಅನಾಯಕ್ತವಾಗಿದೆ: %s' - - no-balloons-registered: 'ಯಾವುದೇ ಬಲೂನ್‌ಗಳು ನೋಂದಿಗೆಯಾಗಿಲ್ಲ! ಬಲೂನ್‌ಗಳಿಲ್ಲದೆ ಮೆನು ರಚಿಸಲಾಗಿಲ್ಲ.' - - configuration-folder-not-found: 'ಆಕೃತಿ ಫೋಲ್ಡರ್ ಸಿಗಲಿಲ್ಲ: %s' - no-configuration-files-found: 'ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಯಾವುದೇ ಆಕೃತಿ ಫೈಲ್‌ಗಳು ಸಿಗಲಿಲ್ಲ: %s' - configuration-section-not-found: 'ಫೈಲ್‌ಗಾಗಿ ಆಕೃತಿ ವಿಭಾಗ ಸಿಗಲಿಲ್ಲ: %s' - balloon-type-not-found: 'ಪ್ರಕಾರ ಸಿಗಲಿಲ್ಲ ಅಥವಾ ಖಾಲಿ ಆಗಿದೆ: %s ಫೈಲ್‌ನಲ್ಲಿ %s ವಿಭಾಗಕ್ಕಾಗಿ ಬಲೂನ್ ಪ್ರಕ್ರಿಯೆ ತಪ್ಪಾಗಿದೆ.' - balloon-process-error: 'ಬಲೂನ್ ವಿಭಾಗಕ್ಕಾಗಿ %s ಫೈಲ್‌ನಲ್ಲಿ %s ಬಲೂನ್ ಪ್ರಕ್ರಿಯೆ ತಪ್ಪಾಗಿದೆ. ತಪ್ಪು: %s' - - menu-slot-out-of-bounds: '%s ಮೆನು ಪುಟ ಬಟನ್ ಸ್ಲಾಟ್‌ಗಳು ಗರಿಷ್ಠ ಮಿತಿಯ ಹೊರಗಿವೆ!' - - invalid-hex-code: 'ಅಮಾನ್ಯ ಹೆಕ್ಸ್ ಕೋಡ್: %s' diff --git a/src/main/resources/languages/ko_KR.yml b/src/main/resources/languages/ko_KR.yml deleted file mode 100644 index 771d3366..00000000 --- a/src/main/resources/languages/ko_KR.yml +++ /dev/null @@ -1,30 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>접근이 거부되었습니다.' - player-not-found: '<#fc1c1c>플레이어를 찾을 수 없습니다.' - config-reloaded: '구성이 다시 로드되었습니다.' - command-disabled: '<#fc1c1c>이 명령은 현재 비활성화되어 있습니다!' - - equipped: '%s 장착되었습니다!' - unequipped: '풍선이 안전하게 보관되었습니다.' - balloon-not-found: '<#fc1c1c>풍선을 찾을 수 없습니다.' - not-equipped: '<#fc1c1c>현재 장착된 풍선이 없습니다.' - - material-not-dyeable: '재료 %s 은(는) 염색할 수 있는 재료가 아닙니다.' - invalid-rgb-values: 'RGB 값은 0에서 255 사이여야 합니다.' - balloon-not-set: '구성에 풍선 %s 이(가) 설정되어 있지 않습니다!' - material-not-set: '구성에 풍선 %s 의 재료가 설정되어 있지 않습니다!' - material-not-valid: '풍선 %s 의 재료가 유효한 재료가 아닙니다! 재료: %s' - invalid-item-meta: '재료 %s 의 ItemMeta가 유효하지 않습니다.' - - no-balloons-registered: '풍선을 찾을 수 없습니다! 풍선이 없는 메뉴를 만들 수 없습니다.' - - configuration-folder-not-found: '구성 폴더를 찾을 수 없습니다: %s' - no-configuration-files-found: '폴더에서 구성 파일을 찾을 수 없습니다: %s' - configuration-section-not-found: '파일 %s 에 대한 구성 섹션을 찾을 수 없습니다.' - balloon-type-not-found: '파일 %s 의 섹션 %s 에 대한 풍선 유형을 처리하는 동안 오류가 발생했습니다. 풍선 유형이 존재하지 않거나 null입니다.' - balloon-process-error: '파일 %s 의 섹션 %s 에 대한 풍선을 처리하는 동안 오류가 발생했습니다. 오류: %s' - - menu-slot-out-of-bounds: '%s 메뉴 페이지 버튼 슬롯이 범위를 벗어났습니다!' - - invalid-hex-code: '잘못된 16진수 코드: %s' \ No newline at end of file diff --git a/src/main/resources/languages/kok_IN.yml b/src/main/resources/languages/kok_IN.yml deleted file mode 100644 index 0dbb9300..00000000 --- a/src/main/resources/languages/kok_IN.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>परवानगी नको.' - player-not-found: '<#fc1c1c>खेळाडू सापडला नाही.' - config-reloaded: 'कॉनफिगरेशन पुन्हा लोड केली.' - command-disabled: '<#fc1c1c>हे कमांड आत्ता अक्षम आहे!' - - equipped: '%s थांबलेला आहे!' - unequipped: 'तुमचा गुबांस सुरक्षितरित्या जतन केला गेला आहे.' - balloon-not-found: '<#fc1c1c>गुबांस सापडला नाही.' - not-equipped: '<#fc1c1c>आत्ता तुमच्याकडे कोणतेही थांबलेले गुबांस नाही.' - - material-not-dyeable: 'मटेरियल %s रंगण योग्य नाही.' - invalid-rgb-values: 'RGB मूल्ये 0 आणि 255 यांच्यात असाव्याचे आवश्यक आहेत.' - balloon-not-set: '%s गुबांस सेट केलेला नाही!' - material-not-set: '%s गुबांसचा सामग्री कॉनफिगरेशनमध्ये सेट केलेला नाही!' - material-not-valid: '%s गुबांसचा सामग्री अवैध सामग्री आहे! सामग्री: %s' - material-is-not-valid: '%s सामग्री अवैध सामग्री नाही!' - invalid-item-meta: 'आयटममेटा सामग्र्यासाठी अवैध आहे: %s' - - no-balloons-registered: 'कोणत्याही गुबांस नोंदविल्या नाहीत! गुबांस बिना मेनू तयार करणे असंभव आहे.' - - configuration-folder-not-found: 'कॉनफिगरेशन फोल्डर सापडला नाही: %s' - no-configuration-files-found: 'कॉनफिगरेशन फाइल सापडली नाही: %s' - configuration-section-not-found: 'फाइलसाठी कॉनफिगरेशन खंड सापडला नाही: %s' - balloon-type-not-found: 'विभाग: %s फाईल: %s साठी गुबांस प्रकार प्रोसेसिंग करण्यात त्रुटी आली. गुबांस प्रकार अस्तित्वात नाही किंवा रिक्त आहे.' - balloon-process-error: 'विभाग: %s फाईल: %s साठी गुबांस प्रोसेसिंग करण्यात त्रुटी आली. त्रुटी: %s' - - menu-slot-out-of-bounds: '%s मेनू पृष्ठ बटण स्लॉट सीमेत आहेत!' - - invalid-hex-code: 'अवैध हेक्स कोड: %s' diff --git a/src/main/resources/languages/lt_LT.yml b/src/main/resources/languages/lt_LT.yml deleted file mode 100644 index f518ba47..00000000 --- a/src/main/resources/languages/lt_LT.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Prieiga uždrausta.' - player-not-found: '<#fc1c1c>Žaidėjas nerastas.' - config-reloaded: 'Konfigūracija įkelta iš naujo.' - command-disabled: '<#fc1c1c>Ši komanda šiuo metu išjungta!' - - equipped: '%s įrengtas!' - unequipped: 'Jūsų balionas buvo saugiai padėtas.' - balloon-not-found: '<#fc1c1c>Balionas nerastas.' - not-equipped: '<#fc1c1c>Jūs šiuo metu neturite įrengto baliono.' - - material-not-dyeable: 'Medžiaga %s negali būti nudažyta.' - invalid-rgb-values: 'RGB reikšmės turi būti tarp 0 ir 255, kad būtų galiojančios.' - balloon-not-set: 'Balionas %s neįrengtas konfigūracijoje!' - material-not-set: 'Baliono %s medžiaga nėra nustatyta konfigūracijoje!' - material-not-valid: 'Baliono %s medžiaga nėra galiojanti! Medžiaga: %s' - material-is-not-valid: 'Medžiaga %s nėra galiojanti medžiaga!' - invalid-item-meta: 'Elemento meta nėra galiojanti medžiagai: %s' - - no-balloons-registered: 'Nėra užregistruota jokių balionų! Negalima sukurti meniu be balionų.' - - configuration-folder-not-found: 'Konfigūracijos aplankas nerastas: %s' - no-configuration-files-found: 'Konfigūracijos failų nerasta aplanke: %s' - configuration-section-not-found: 'Konfigūracijos skyriaus nerasta failui: %s' - balloon-type-not-found: 'Klaida apdorojant baliono tipą skyriui: %s faile: %s. Baliono tipas neegzistuoja arba yra nulinis.' - balloon-process-error: 'Klaida apdorojant balioną skyriui: %s faile: %s. Klaida: %s' - - menu-slot-out-of-bounds: '%s meniu puslapio mygtukų slotų yra už ribų!' - - invalid-hex-code: 'Netinkamas heksadinis kodas: %s' diff --git a/src/main/resources/languages/lv_LV.yml b/src/main/resources/languages/lv_LV.yml deleted file mode 100644 index 5d9869c7..00000000 --- a/src/main/resources/languages/lv_LV.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Piekļuve liegta.' - player-not-found: '<#fc1c1c>Spēlētājs nav atrasts.' - config-reloaded: 'Konfigurācija pārlādēta.' - command-disabled: '<#fc1c1c>Šī komanda pašlaik ir atspējota!' - - equipped: '%s izvēlēts!' - unequipped: 'Jūsu gaisa balons ir droši saglabāts.' - balloon-not-found: '<#fc1c1c>Gaisa balons nav atrasts.' - not-equipped: '<#fc1c1c>Jums pašlaik nav neviena gaisa balona izvēlēta.' - - material-not-dyeable: 'Materiālu %s nevar nokrāsot.' - invalid-rgb-values: 'RGB vērtībām jābūt starp 0 un 255, lai tās būtu derīgas.' - balloon-not-set: '%s gaisa balons nav iestatīts konfigurācijā!' - material-not-set: '%s gaisa balona materiāls nav iestatīts konfigurācijā!' - material-not-valid: '%s gaisa balona materiāls nav derīgs! Materiāls: %s' - material-is-not-valid: 'Materiāls %s nav derīgs materiāls!' - invalid-item-meta: 'Priekšmets Meta nav derīgs materiālam: %s' - - no-balloons-registered: 'Nav reģistrēts neviens gaisa balons! Nevar izveidot izvēlni bez gaisa baloniem.' - - configuration-folder-not-found: 'Konfigurācijas mape nav atrasta: %s' - no-configuration-files-found: 'Konfigurācijas faili nav atrasti mapē: %s' - configuration-section-not-found: 'Konfigurācijas sadaļa nav atrasta failam: %s' - balloon-type-not-found: 'Kļūda apstrādājot gaisa balona veidu sadaļai: %s failā: %s. Gaisa balona tips neeksistē vai ir nulle.' - balloon-process-error: 'Kļūda apstrādājot gaisa balonu sadaļai: %s failā: %s. Kļūda: %s' - - menu-slot-out-of-bounds: '%s izvēlnes lapas pogu slots ir ārpus robežām!' - - invalid-hex-code: 'Nederīgs hex kods: %s' diff --git a/src/main/resources/languages/mk_MK.yml b/src/main/resources/languages/mk_MK.yml deleted file mode 100644 index ed48a7c4..00000000 --- a/src/main/resources/languages/mk_MK.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Пристапот е забранет.' - player-not-found: '<#fc1c1c>Играчот не е пронајден.' - config-reloaded: 'Конфигурацијата е превчитана.' - command-disabled: '<#fc1c1c>Оваа команда е исклучена во моментов!' - - equipped: '%s опремен!' - unequipped: 'Вашиот балон е безбедно зачуван.' - balloon-not-found: '<#fc1c1c>Балонот не е пронајден.' - not-equipped: '<#fc1c1c>Моментално немате опремен балон.' - - material-not-dyeable: 'Материјалот %s не може да се обои.' - invalid-rgb-values: 'RGB вредностите мора да бидат помеѓу 0 и 255 за да бидат валидни.' - balloon-not-set: 'Балонот %s не е поставен во конфигурацијата!' - material-not-set: 'Материјалот на балонот %s не е поставен во конфигурацијата!' - material-not-valid: 'Материјалот на балонот %s не е валиден! Материјал: %s' - material-is-not-valid: 'Материјалот %s не е валиден материјал!' - invalid-item-meta: 'ItemMeta не е валиден за материјалот: %s' - - no-balloons-registered: 'Не се регистрирани балони! Не може да се создаде мени без балони.' - - configuration-folder-not-found: 'Папката за конфигурација не е пронајдена: %s' - no-configuration-files-found: 'Не се пронајдени конфигурациски датотеки во папката: %s' - configuration-section-not-found: 'Секцијата за конфигурација не е пронајдена за датотеката: %s' - balloon-type-not-found: 'Грешка при процесирањето на типот на балон за секцијата: %s во датотеката: %s. Типот на балон не постои или е нула.' - balloon-process-error: 'Грешка при процесирањето на балон за секцијата: %s во датотеката: %s. Грешка: %s' - - menu-slot-out-of-bounds: '%s копчиња на страната на мениот се надвор од опсегот!' - - invalid-hex-code: 'Невалиден хекс код: %s' diff --git a/src/main/resources/languages/ml_IN.yml b/src/main/resources/languages/ml_IN.yml deleted file mode 100644 index 2e941aa7..00000000 --- a/src/main/resources/languages/ml_IN.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>അനുമതി നിരസ്കരിച്ചു.' - player-not-found: '<#fc1c1c>കളിക്കാർ കണ്ടെത്തിയില്ല.' - config-reloaded: 'കോൺഫിഗറേഷൻ പുനഃലോഡ് ചെയ്യപ്പെട്ടു.' - command-disabled: '<#fc1c1c>ഈ കമാൻഡ് ഇപ്പോൾ നിരോധിച്ചിരിക്കുന്നു!' - - equipped: '%s സജ്ജമാക്കി!' - unequipped: 'നിങ്ങളുടെ ബൽലൂൺ സുരക്ഷിതമായി സംരക്ഷിക്കപ്പെട്ടു.' - balloon-not-found: '<#fc1c1c>ബൽലൂൺ കണ്ടെത്തിയില്ല.' - not-equipped: '<#fc1c1c>നിങ്ങൾക്ക് നിലവിലുള്ള ബൽലൂൺ ഇപ്പോൾ ലഭ്യമല്ല.' - - material-not-dyeable: 'ഉള്ളടക്കം %s എന്ന ഉള്ളടക്കം മണിച്ചുകൊടുക്കാം അല്ല.' - invalid-rgb-values: 'RGB മൂല്യങ്ങൾ സാധുവായിരിക്കണം എന്നതിനാൽ 0 കുറവും 255 കൂടിയിരിക്കണം.' - balloon-not-set: '%s ബൽലൂൺ കോൺഫിഗറേഷനിൽ സജ്ജമാക്കിയില്ല!' - material-not-set: '%s ബൽലൂൺ ഉള്ളടക്കം കോൺഫിഗറേഷനിൽ സജ്ജമാക്കിയില്ല!' - material-not-valid: '%s ബൽലൂൺ ഉള്ളടക്കം സാധുവായ ഉള്ളടക്കം അല്ല! ഉള്ളടക്കം: %s' - material-is-not-valid: 'ഉള്ളടക്കം %s സാധുവായ ഉള്ളടക്കം അല്ല!' - invalid-item-meta: 'ഉള്ളടക്കം മെറ്റ സാധുവായ ഉള്ളടക്കംകൊണ്ടില്ല: %s' - - no-balloons-registered: 'രജിസ്ട്രുചെയ്ത ബൽലൂൺ ഇല്ല! ബൽലൂൺസ് ഇല്ലാതെ ഒരു മെനു സൃഷ്ടിക്കാനായില്ല.' - - configuration-folder-not-found: 'കോൺഫിഗറേഷൻ ഫോൾഡർ കണ്ടെത്തിയില്ല: %s' - no-configuration-files-found: 'ഫോൾഡർനിൽ കോൺഫിഗറേഷൻ ഫയലുകൾ കണ്ടെത്തിയില്ല: %s' - configuration-section-not-found: 'ഫയൽക്ക് കോൺഫിഗറേഷൻ വിഭാഗം കണ്ടെത്തിയില്ല: %s' - balloon-type-not-found: 'വിഭാഗത്തിനുള്ള ബൽലൂൺ തരത്തിന്റെ പ്രോസസ്സിംഗ് പിഴവ്: %s ഫയലിൽ: %s. ബൽലൂൺ തരം നിലവിലില്ല അല്ലെങ്കിൽ നൽകുന്നത് ശൂന്യമാണ്.' - balloon-process-error: 'വിഭാഗത്തിനുള്ള ബൽലൂൺ പ്രോസസ്സിംഗിന് പിഴവ്: %s ഫയലിൽ: %s. പിഴവ്: %s' - - menu-slot-out-of-bounds: '%s മെനു പേജ് ബട്ടൺ സ്ലോട്ടുകൾ പരിധിയിൽ വിരുദ്ധമാണ്!' - - invalid-hex-code: 'അസാധുവായ ഹെക്സ് കോഡ്: %s' diff --git a/src/main/resources/languages/mn_MN.yml b/src/main/resources/languages/mn_MN.yml deleted file mode 100644 index 2d1c1929..00000000 --- a/src/main/resources/languages/mn_MN.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Хандах эрх алгагүй.' - player-not-found: '<#fc1c1c>Тоглогч олдсонгүй.' - config-reloaded: 'Тохиргоо дахин татаж авлагдлаа.' - command-disabled: '<#fc1c1c>Энэ комманд одоогоор идэвхгүй байна!' - - equipped: '%s тохируулсан!' - unequipped: 'Таны бөмбөг амжилттай хадгалагдсан байна.' - balloon-not-found: '<#fc1c1c>Бөмбөг олдсонгүй.' - not-equipped: '<#fc1c1c>Танд одоогоор суурилсан бөмбөг байхгүй байна.' - - material-not-dyeable: 'Материал %s харах боломжгүй.' - invalid-rgb-values: 'RGB утгууд 0 ба 255 хооронд байх ёстой.' - balloon-not-set: '%s бөмбөг тохиргоо дотор тохирохгүй байна!' - material-not-set: '%s бөмбөгийн материал тохиргоо дотор тохирохгүй байна!' - material-not-valid: '%s бөмбөгийн материал буруу бөгөөд! Материал: %s' - material-is-not-valid: 'Материал %s буруу материал байна!' - invalid-item-meta: 'ItemMeta %s материалд хүчин төгөлдөр биш байна.' - - no-balloons-registered: 'Тодорхойлолтоо хийгээгүй бөмбөг олдсонгүй! Бөмбөгтэй цэс үүсгэх боломжгүй.' - - configuration-folder-not-found: 'Тохиргоо хавтас олдсонгүй: %s' - no-configuration-files-found: 'Тохиргоо файл олдсонгүй хавтас дотор: %s' - configuration-section-not-found: 'Тохиргоо хэсэг олдсонгүй файлд: %s' - balloon-type-not-found: 'Секц шинж чанарыг бөмбөг төрөлд байршуулахад алдаа гарлаа: %s файлаас: %s. Бөмбөгийн төрөл байхгүй буюу хоосон байна.' - balloon-process-error: 'Секц бөмбөгийг боловсруулах үед алдаа гарлаа: %s файлаас: %s. Алдаа: %s' - - menu-slot-out-of-bounds: '%s цэсийн товчны слот баасан хязгаартай байна!' - - invalid-hex-code: 'Хүчин төгөлдөрт олдсонгүй хэкс код: %s' diff --git a/src/main/resources/languages/mr_IN.yml b/src/main/resources/languages/mr_IN.yml deleted file mode 100644 index 82c6e9d7..00000000 --- a/src/main/resources/languages/mr_IN.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>परवानगी नाकारली.' - player-not-found: '<#fc1c1c>खेळाडू सापडला नाही.' - config-reloaded: 'कॉन्फिगरेशन पुन्हा लोड केली गेली आहे.' - command-disabled: '<#fc1c1c>ही कमाण्ड सध्या अक्षम केली आहे!' - - equipped: '%s सज्ज झाला आहे!' - unequipped: 'तुमचं गुब्बा सुरक्षितपणे संग्रहित केलं गेलं आहे.' - balloon-not-found: '<#fc1c1c>गुब्बा सापडला नाही.' - not-equipped: '<#fc1c1c>तुम्हाला सध्या कोणत्याही गुब्बा सज्ज नाही.' - - material-not-dyeable: 'सामग्री %s फेरफटकारण्यायोग्य नाही.' - invalid-rgb-values: 'RGB मूल्ये 0 आणि 255 दरम्यान असणे आवश्यक आहेत.' - balloon-not-set: '%s गुब्बा कॉन्फिगरेशनमध्ये सेट केलं नाही!' - material-not-set: 'गुब्बा %s सामग्री कॉन्फिगरेशनमध्ये सेट केली नाही!' - material-not-valid: 'गुब्बा %s सामग्री वैध नाही! सामग्री: %s' - material-is-not-valid: 'सामग्री %s वैध सामग्री नाही!' - invalid-item-meta: 'मदत मेटा %s सामग्रीसाठी वैध नाही.' - - no-balloons-registered: 'कोणतेही गुब्बे नोंदणीकृत नाहीत! गुब्बे विहित केल्याशिवाय मेनू तयार केले जाऊ शकत नाहीत.' - - configuration-folder-not-found: 'कॉन्फिगरेशन फोल्डर सापडला नाही: %s' - no-configuration-files-found: 'कोणतेही कॉन्फिगरेशन फाइल सापडली नाही: %s' - configuration-section-not-found: 'फाइलसाठी कॉन्फिगरेशन खंड सापडला नाही: %s' - balloon-type-not-found: 'सेक्शनसाठी गुब्बा प्रकार प्रोसेसिंग त्रुटी: %s फाइलमध्ये: %s. गुब्बा प्रकार अस्तित्वात नाही किंवा शून्य आहे.' - balloon-process-error: 'सेक्शनसाठी गुब्बा प्रोसेसिंग त्रुटी: %s फाइलमध्ये: %s. त्रुटी: %s' - - menu-slot-out-of-bounds: '%s मेनू पृष्ठ बटण स्लॉट सीमा उत्तीर्ण!' - - invalid-hex-code: "अवैध हेक्स कोड: %s" diff --git a/src/main/resources/languages/ms_MY.yml b/src/main/resources/languages/ms_MY.yml deleted file mode 100644 index b3f0536f..00000000 --- a/src/main/resources/languages/ms_MY.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Akses ditolak.' - player-not-found: '<#fc1c1c>Pemain tidak dijumpai.' - config-reloaded: 'Konfigurasi dimuat semula.' - command-disabled: '<#fc1c1c>Perintah ini kini dinyahaktifkan!' - - equipped: '%s dilengkapi!' - unequipped: 'Belon anda telah disimpan dengan selamat.' - balloon-not-found: '<#fc1c1c>Belon tidak dijumpai.' - not-equipped: '<#fc1c1c>Anda kini tidak mempunyai belon yang dilengkapi.' - - material-not-dyeable: 'Bahan %s tidak boleh diwarnakan.' - invalid-rgb-values: 'Nilai-nilai RGB mestilah antara 0 dan 255 untuk sah.' - balloon-not-set: 'Belon %s tidak ditetapkan dalam konfigurasi!' - material-not-set: 'Bahan belon %s tidak ditetapkan dalam konfigurasi!' - material-not-valid: 'Bahan belon %s tidak sah! Bahan: %s' - material-is-not-valid: 'Bahan %s bukan bahan yang sah!' - invalid-item-meta: 'ItemMeta tidak sah untuk bahan: %s' - - no-balloons-registered: 'Tiada belon yang didaftarkan! Tidak dapat membuat menu tanpa belon.' - - configuration-folder-not-found: 'Folder konfigurasi tidak dijumpai: %s' - no-configuration-files-found: 'Tiada fail konfigurasi dijumpai dalam folder: %s' - configuration-section-not-found: 'Seksyen konfigurasi tidak dijumpai untuk fail: %s' - balloon-type-not-found: 'Ralat semasa pemprosesan jenis belon untuk seksyen: %s dalam fail: %s. Jenis belon tidak wujud atau adalah null.' - balloon-process-error: 'Ralat semasa pemprosesan belon untuk seksyen: %s dalam fail: %s. Ralat: %s' - - menu-slot-out-of-bounds: '%s slot butang halaman menu di luar batasannya!' - - invalid-hex-code: 'Kod heks tidak sah: %s' diff --git a/src/main/resources/languages/mt_MT.yml b/src/main/resources/languages/mt_MT.yml deleted file mode 100644 index 2e3bfe13..00000000 --- a/src/main/resources/languages/mt_MT.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Aċċess imneħħi.' - player-not-found: '<#fc1c1c>Lilek ma nstabx.' - config-reloaded: 'Konfigurazzjoni riffriskata.' - command-disabled: '<#fc1c1c>Din il-kommanda hija disattivata bħalissa!' - - equipped: '%s imħallat!' - unequipped: 'Il-ballun tiegħek ġie ssalvat b'sigurtà.' - balloon-not-found: '<#fc1c1c>Ballun ma nstabx.' - not-equipped: '<#fc1c1c>Inti bħalissa ma għandekx ballun imħallat.' - - material-not-dyeable: 'Il-materjal %s ma jistax jiġi maħżul.' - invalid-rgb-values: 'Il-valuri RGB għandhom ikunu bejn 0 u 255 biex ikunu validi.' - balloon-not-set: 'Il-ballun %s ma ġiex stabbilit fil-konfigurazzjoni!' - material-not-set: 'Il-materjal tal-ballun %s ma ġie stabbilit fil-konfigurazzjoni!' - material-not-valid: 'Il-materjal tal-ballun %s ma huwiex materjal validu! Materjal: %s' - material-is-not-valid: 'Il-materjal %s ma huwiex materjal validu!' - invalid-item-meta: 'ItemMeta mhix valida għal materjal: %s' - - no-balloons-registered: 'L-ebda balluni mregistra! Ma tistax toħloq menu bla balluni.' - - configuration-folder-not-found: 'Fowldier tal-konfigurazzjoni ma nstabx: %s' - no-configuration-files-found: 'Ebda fajl tal-konfigurazzjoni ma nstabx fil-fowldier: %s' - configuration-section-not-found: 'Seksjoni tal-konfigurazzjoni ma nstabx għall-fajl: %s' - balloon-type-not-found: 'Żballun tal-tip mhux matmati għas-sezzjoni: %s fil-fajl: %s. It-tip tal-ballun ma jeżistix jew huwa null.' - balloon-process-error: "Żballun ta' l-proċessar għas-sezzjoni: %s fil-fajl: %s. Żballun processa l-ħażin: %s" - - menu-slot-out-of-bounds: '%s slot tal-paġna tal-meni huwa barra mill-limiti!' - - invalid-hex-code: 'Kodiċi heksa invalidu: %s' diff --git a/src/main/resources/languages/nb_NO.yml b/src/main/resources/languages/nb_NO.yml deleted file mode 100644 index d06e85b6..00000000 --- a/src/main/resources/languages/nb_NO.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Tilgang nektet.' - player-not-found: '<#fc1c1c>Spilleren ble ikke funnet.' - config-reloaded: 'Konfigurasjon lastet på nytt.' - command-disabled: '<#fc1c1c>Dette kommandoen er for øyeblikket deaktivert!' - - equipped: '%s utstyrt!' - unequipped: 'Din ballong er nå trygt lagret.' - balloon-not-found: '<#fc1c1c>Ballongen ble ikke funnet.' - not-equipped: '<#fc1c1c>Du har for øyeblikket ingen ballong utstyrt.' - - material-not-dyeable: 'Materialet %s kan ikke farges.' - invalid-rgb-values: 'RGB-verdiene må være mellom 0 og 255 for å være gyldige.' - balloon-not-set: 'Ballongen %s er ikke satt i konfigurasjonen!' - material-not-set: 'Materialet til ballongen %s er ikke satt i konfigurasjonen!' - material-not-valid: 'Materialet til ballongen %s er ikke gyldig! Materiale: %s' - material-is-not-valid: 'Materialet %s er ikke gyldig!' - invalid-item-meta: 'ItemMeta er ikke gyldig for materialet: %s' - - no-balloons-registered: 'Ingen ballonger er registrert! Kan ikke opprette en meny uten ballonger.' - - configuration-folder-not-found: 'Konfigurasjonsmappen ble ikke funnet: %s' - no-configuration-files-found: 'Ingen konfigurasjonsfiler ble funnet i mappen: %s' - configuration-section-not-found: 'Konfigurasjonsdelen ble ikke funnet for filen: %s' - balloon-type-not-found: 'Feil ved behandling av ballongtype for seksjon: %s i filen: %s. Ballongtypen eksisterer ikke eller er null.' - balloon-process-error: 'Feil ved behandling av ballong for seksjon: %s i filen: %s. Feil: %s' - - menu-slot-out-of-bounds: '%s meny sideknapp(er) utenfor grensene!' - - invalid-hex-code: 'Ugyldig heksadesimal kode: %s' diff --git a/src/main/resources/languages/nl_NL.yml b/src/main/resources/languages/nl_NL.yml deleted file mode 100644 index 2db14ff4..00000000 --- a/src/main/resources/languages/nl_NL.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Geen toestemming.' - player-not-found: '<#fc1c1c>Speler niet gevonden.' - config-reloaded: 'Configuratie herladen.' - command-disabled: '<#fc1c1c>Deze opdracht is momenteel uitgeschakeld!' - - equipped: '%s uitgerust!' - unequipped: 'Uw ballon is veilig opgeborgen.' - balloon-not-found: '<#fc1c1c>Ballon niet gevonden.' - not-equipped: '<#fc1c1c>U hebt momenteel geen ballon uitgerust.' - - material-not-dyeable: 'Materiaal %s kan niet geverfd worden.' - invalid-rgb-values: 'RGB-waarden moeten tussen 0 en 255 liggen om geldig te zijn.' - balloon-not-set: 'De ballon %s is niet ingesteld in de configuratie!' - material-not-set: 'Het materiaal van de ballon %s is niet ingesteld in de configuratie!' - material-not-valid: 'Het materiaal van de ballon %s is geen geldig materiaal! Materiaal: %s' - material-is-not-valid: 'Materiaal %s is geen geldig materiaal!' - invalid-item-meta: 'ItemMeta is niet geldig voor materiaal: %s' - - no-balloons-registered: 'Geen ballonnen geregistreerd! Kan geen menu maken zonder ballonnen.' - - configuration-folder-not-found: 'Configuratiemap niet gevonden: %s' - no-configuration-files-found: 'Geen configuratiebestanden gevonden in de map: %s' - configuration-section-not-found: 'Configuratiesectie niet gevonden voor bestand: %s' - balloon-type-not-found: 'Fout bij verwerken van ballontype voor sectie: %s in bestand: %s. Ballontype bestaat niet of is leeg.' - balloon-process-error: 'Fout bij verwerken van ballon voor sectie: %s in bestand: %s. Fout: %s' - - menu-slot-out-of-bounds: '%s menuknop(pen) buiten bereik!' - - invalid-hex-code: 'Ongeldige hexadecimale code: %s' diff --git a/src/main/resources/languages/nn_NO.yml b/src/main/resources/languages/nn_NO.yml deleted file mode 100644 index fb253932..00000000 --- a/src/main/resources/languages/nn_NO.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Tilgang nekta.' - player-not-found: '<#fc1c1c>Spelaren vart ikkje funnen.' - config-reloaded: 'Konfigurasjon lasta inn på nytt.' - command-disabled: '<#fc1c1c>Denne kommandoen er for øyeblikket deaktivert!' - - equipped: '%s utstyrte!' - unequipped: 'Ballongen din er no trygt lagra.' - balloon-not-found: '<#fc1c1c>Ballongen vart ikkje funnen.' - not-equipped: '<#fc1c1c>Du har for øyeblikket ingen ballong utstyrt.' - - material-not-dyeable: 'Materialet %s kan ikkje fargestast.' - invalid-rgb-values: 'RGB-verdiane må vere mellom 0 og 255 for å vere gyldige.' - balloon-not-set: 'Ballongen %s er ikkje sett i konfigurasjonen!' - material-not-set: 'Materialet til ballongen %s er ikkje sett i konfigurasjonen!' - material-not-valid: 'Materialet til ballongen %s er ikkje gyldig! Materiale: %s' - material-is-not-valid: 'Materialet %s er ikkje gyldig!' - invalid-item-meta: 'ItemMeta er ikkje gyldig for materialet: %s' - - no-balloons-registered: 'Ingen ballongar er registrert! Kan ikkje opprette ei meny utan ballongar.' - - configuration-folder-not-found: 'Konfigurasjonsmappa vart ikkje funnen: %s' - no-configuration-files-found: 'Ingen konfigurasjonsfiler vart funne i mappa: %s' - configuration-section-not-found: 'Konfigurasjonsdelen vart ikkje funnen for fila: %s' - balloon-type-not-found: 'Feil ved behandling av ballongtype for seksjon: %s i fila: %s. Ballongtypen eksisterer ikkje eller er null.' - balloon-process-error: 'Feil ved behandling av ballong for seksjon: %s i fila: %s. Feil: %s' - - menu-slot-out-of-bounds: '%s meny sideknapp(ar) utanfor grensene!' - - invalid-hex-code: 'Ugyldig heksadesimal kode: %s' diff --git a/src/main/resources/languages/pa_IN.yml b/src/main/resources/languages/pa_IN.yml deleted file mode 100644 index e5d037c0..00000000 --- a/src/main/resources/languages/pa_IN.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>ਪਹੁੰਚ ਨਹੀਂ ਦਿੱਤੀ.' - player-not-found: '<#fc1c1c>ਖਿਡਾਰ ਨਹੀਂ ਲੱਭਿਆ.' - config-reloaded: 'ਸੰਰਚਨਾ ਮੁੜ ਲੋਡ ਕੀਤੀ.' - command-disabled: '<#fc1c1c>ਇਹ ਕਮਾਂਡ ਵਰਤਮਾਨ ਵਿੱਚ ਬੰਦ ਹੈ!' - - equipped: '%s ਸਜਾਇਆ ਗਿਆ ਹੈ!' - unequipped: 'ਤੁਹਾਡਾ ਗੁਬਾਰ ਸੁਰੱਖਿਆ ਨਾਲ ਭਰਾ ਗਿਆ ਹੈ.' - balloon-not-found: '<#fc1c1c>ਗੁਬਾਰ ਨਹੀਂ ਲੱਭਿਆ.' - not-equipped: '<#fc1c1c>ਤੁਹਾਡੇ ਕੋਲ ਵਰਤਮਾਨ ਵਿੱਚ ਕੋਈ ਗੁਬਾਰ ਨਹੀਂ ਹੈ.' - - material-not-dyeable: 'ਮਾਟੀ %s ਨੂੰ ਰੰਗਣਯੋਗ ਨਹੀਂ ਹੈ.' - invalid-rgb-values: 'RGB ਮੁੱਲ 0 ਅਤੇ 255 ਵਿੱਚ ਹੀ ਮਾਨਯੋਗ ਹਨ.' - balloon-not-set: '%s ਗੁਬਾਰ ਸੰਰਚਨਾ ਵਿੱਚ ਸੈੱਟ ਨਹੀਂ ਹੈ!' - material-not-set: 'ਗੁਬਾਰ %s ਦੀ ਸਮਗਰੀ ਸੰਰਚਨਾ ਵਿੱਚ ਸੈੱਟ ਨਹੀਂ ਹੈ!' - material-not-valid: 'ਗੁਬਾਰ %s ਦਾ ਸਮਗਰੀ ਮਾਨਯੋਗ ਨਹੀਂ ਹੈ! ਸਮਗਰੀ: %s' - material-is-not-valid: 'ਮਾਟੀ %s ਮਾਨਯੋਗ ਨਹੀਂ ਹੈ!' - invalid-item-meta: 'ਆਇਟਮਮੀਟਾ ਮਾਟੀ ਲਈ ਮਾਨਯੋਗ ਨਹੀਂ ਹੈ: %s' - - no-balloons-registered: 'ਕੋਈ ਗੁਬਾਰ ਰਜਿਸਟਰ ਨਹੀਂ ਹੋਈ! ਗੁਬਾਰ ਬਿਨਾਂ ਮੇਨੂ ਬਣਾਉਣਾ ਮੁਮਕਿਨ ਨਹੀਂ ਹੈ।' - - configuration-folder-not-found: 'ਸੰਰਚਨਾ ਫੋਲਡਰ ਨਹੀਂ ਮਿਲਿਆ: %s' - no-configuration-files-found: 'ਕੋਈ ਸੰਰਚਨਾ ਫਾਈਲਾਂ ਫੋਲਡਰ ਵਿੱਚ ਨਹੀਂ ਮਿਲੀਆ: %s' - configuration-section-not-found: 'ਫਾਈਲ ਲਈ ਸੰਰਚਨਾ ਖੰਡ ਨਹੀਂ ਮਿਲਿਆ: %s' - balloon-type-not-found: 'ਸੈਕਸ਼ਨ ਲਈ ਗੁਬਾਰ ਕਿਸਮ ਪ੍ਰੋਸੈਸਿੰਗ ਵਿੱਚ ਗਲਤੀ ਹੋਈ ਹੈ: %s ਫਾਈਲ: %s। ਗੁਬਾਰ ਕਿਸਮ ਮੌਜੂਦ ਨਹੀਂ ਹੈ ਜਾਂ ਨਲ ਹੈ।' - balloon-process-error: 'ਸੈਕਸ਼ਨ ਲਈ ਗੁਬਾਰ ਪ੍ਰੋਸੈਸਿੰਗ ਵਿੱਚ ਗਲਤੀ ਹੋਈ ਹੈ: %s ਫਾਈਲ: %s। ਗਲਤੀ: %s' - - menu-slot-out-of-bounds: '%s ਮੀਨੂ ਸਾਇਡ ਬਟਨ ਸਲੋਟ(ਸ) ਸੀਮਾਵਾਰ ਤੋਂ ਬਾਹਰ ਹਨ!' - - invalid-hex-code: 'ਗਲਤ ਹੈਕਸਾਡੇਸੀਮਲ ਕੋਡ: %s' diff --git a/src/main/resources/languages/pl_PL.yml b/src/main/resources/languages/pl_PL.yml deleted file mode 100644 index 38832894..00000000 --- a/src/main/resources/languages/pl_PL.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Brak uprawnień.' - player-not-found: '<#fc1c1c>Nie znaleziono gracza.' - config-reloaded: 'Konfiguracja została ponownie załadowana.' - command-disabled: '<#fc1c1c>Ta komenda jest obecnie wyłączona!' - - equipped: '%s wyposażony!' - unequipped: 'Twój balon został teraz bezpiecznie przechowany.' - balloon-not-found: '<#fc1c1c>Balon nie został znaleziony.' - not-equipped: '<#fc1c1c>Nie masz obecnie wyposażonego balonu.' - - material-not-dyeable: 'Materiał %s nie może być farbowany.' - invalid-rgb-values: 'Wartości RGB muszą być między 0 a 255, aby być prawidłowe.' - balloon-not-set: 'Balon %s nie jest ustawiony w konfiguracji!' - material-not-set: 'Materiał balonu %s nie jest ustawiony w konfiguracji!' - material-not-valid: 'Materiał balonu %s nie jest prawidłowy! Materiał: %s' - material-is-not-valid: 'Materiał %s nie jest prawidłowy!' - invalid-item-meta: 'ItemMeta nie jest prawidłowy dla materiału: %s' - - no-balloons-registered: 'Nie zarejestrowano żadnych balonów! Nie można utworzyć menu bez balonów.' - - configuration-folder-not-found: 'Nie znaleziono folderu konfiguracji: %s' - no-configuration-files-found: 'Nie znaleziono plików konfiguracyjnych w folderze: %s' - configuration-section-not-found: 'Nie znaleziono sekcji konfiguracji dla pliku: %s' - balloon-type-not-found: 'Błąd przetwarzania typu balonu dla sekcji: %s w pliku: %s. Typ balonu nie istnieje lub jest null.' - balloon-process-error: 'Błąd przetwarzania balonu dla sekcji: %s w pliku: %s. Błąd: %s' - - menu-slot-out-of-bounds: '%s przycisk(i) strony menu poza zakresem!' - - invalid-hex-code: 'Nieprawidłowy kod szesnastkowy: %s' diff --git a/src/main/resources/languages/pt_BR.yml b/src/main/resources/languages/pt_BR.yml deleted file mode 100644 index 594d92ca..00000000 --- a/src/main/resources/languages/pt_BR.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Acesso negado.' - player-not-found: '<#fc1c1c>Jogador não encontrado.' - config-reloaded: 'Configuração recarregada.' - command-disabled: '<#fc1c1c>Este comando está desativado no momento!' - - equipped: '%s equipado!' - unequipped: 'Seu balão foi armazenado com segurança.' - balloon-not-found: '<#fc1c1c>Balão não encontrado.' - not-equipped: '<#fc1c1c>Você não possui um balão equipado no momento.' - - material-not-dyeable: 'O material %s não pode ser tingido.' - invalid-rgb-values: 'Os valores RGB devem estar entre 0 e 255 para serem válidos.' - balloon-not-set: 'O balão %s não está configurado!' - material-not-set: 'O material do balão %s não está configurado!' - material-not-valid: 'O material do balão %s não é válido! Material: %s' - material-is-not-valid: 'O material %s não é válido!' - invalid-item-meta: 'ItemMeta não é válido para o material: %s' - - no-balloons-registered: 'Nenhum balão registrado! Não é possível criar um menu sem balões.' - - configuration-folder-not-found: 'Pasta de configuração não encontrada: %s' - no-configuration-files-found: 'Nenhum arquivo de configuração encontrado na pasta: %s' - configuration-section-not-found: 'Seção de configuração não encontrada para o arquivo: %s' - balloon-type-not-found: 'Erro ao processar o tipo de balão para a seção: %s no arquivo: %s. O tipo de balão não existe ou é nulo.' - balloon-process-error: 'Erro ao processar o balão para a seção: %s no arquivo: %s. Erro: %s' - - menu-slot-out-of-bounds: '%s botão(s) da página do menu fora dos limites!' - - invalid-hex-code: 'Código hexadecimal inválido: %s' diff --git a/src/main/resources/languages/ro_RO.yml b/src/main/resources/languages/ro_RO.yml deleted file mode 100644 index ac200f7a..00000000 --- a/src/main/resources/languages/ro_RO.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Acces interzis.' - player-not-found: '<#fc1c1c>Jucătorul nu a fost găsit.' - config-reloaded: 'Configurația a fost reîncărcată.' - command-disabled: '<#fc1c1c>Această comandă este momentan dezactivată!' - - equipped: '%s echipat!' - unequipped: 'Balonul tău a fost stocat în siguranță.' - balloon-not-found: '<#fc1c1c>Balonul nu a fost găsit.' - not-equipped: '<#fc1c1c>Nu deții momentan un balon echipat.' - - material-not-dyeable: 'Materialul %s nu poate fi vopsit.' - invalid-rgb-values: 'Valorile RGB trebuie să fie între 0 și 255 pentru a fi valide.' - balloon-not-set: 'Balonul %s nu este setat în configurație!' - material-not-set: 'Materialul balonului %s nu este setat în configurație!' - material-not-valid: 'Materialul balonului %s nu este valid! Material: %s' - material-is-not-valid: 'Materialul %s nu este valid!' - invalid-item-meta: 'ItemMeta nu este valid pentru materialul: %s' - - no-balloons-registered: 'Nu sunt baloane înregistrate! Nu se poate crea un meniu fără baloane.' - - configuration-folder-not-found: 'Folderul de configurare nu a fost găsit: %s' - no-configuration-files-found: 'Nu s-au găsit fișiere de configurare în folder: %s' - configuration-section-not-found: 'Secțiunea de configurare nu a fost găsită pentru fișier: %s' - balloon-type-not-found: 'Eroare la procesarea tipului de balon pentru secțiunea: %s în fișier: %s. Tipul de balon nu există sau este nul.' - balloon-process-error: 'Eroare la procesarea balonului pentru secțiunea: %s în fișier: %s. Eroare: %s' - - menu-slot-out-of-bounds: '%s sloturi de butoane de pagină meniu depășesc limitele!' - - invalid-hex-code: 'Cod hexazecimal invalid: %s' diff --git a/src/main/resources/languages/ru_RU.yml b/src/main/resources/languages/ru_RU.yml deleted file mode 100644 index 2fb9faac..00000000 --- a/src/main/resources/languages/ru_RU.yml +++ /dev/null @@ -1,30 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Доступ запрещен.' - player-not-found: '<#fc1c1c>Игрок не найден.' - config-reloaded: 'Конфигурация перезагружена.' - command-disabled: '<#fc1c1c>Эта команда в данный момент отключена!' - - equipped: '%s экипирован!' - unequipped: 'Ваш шар успешно убран.' - balloon-not-found: '<#fc1c1c>Шар не найден.' - not-equipped: '<#fc1c1c>У вас нет экипированного шара.' - - material-not-dyeable: 'Материал %s не является окрашиваемым.' - invalid-rgb-values: 'Значения RGB должны быть в диапазоне от 0 до 255.' - balloon-not-set: 'Шар %s не задан в конфигурации!' - material-not-set: 'Материал шара %s не задан в конфигурации!' - material-not-valid: 'Материал шара %s не является допустимым материалом! Материал: %s' - invalid-item-meta: 'ItemMeta недействителен для материала: %s' - - no-balloons-registered: 'Не найдено ни одного шара! Невозможно создать меню без шаров.' - - configuration-folder-not-found: 'Папка конфигурации не найдена: %s' - no-configuration-files-found: 'В папке не найдено конфигурационных файлов: %s' - configuration-section-not-found: 'Не найдена конфигурационная секция для файла: %s' - balloon-type-not-found: 'Ошибка обработки типа шара для секции: %s в файле: %s. Тип шара не существует или равен null.' - balloon-process-error: 'Ошибка обработки шара для секции: %s в файле: %s. Ошибка: %s' - - menu-slot-out-of-bounds: 'Слот(ы) кнопки страницы меню %s вне допустимых границ!' - - invalid-hex-code: 'Неверный шестнадцатеричный код: %s.' \ No newline at end of file diff --git a/src/main/resources/languages/se_NO.yml b/src/main/resources/languages/se_NO.yml deleted file mode 100644 index eaa4a821..00000000 --- a/src/main/resources/languages/se_NO.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Tillatelse nektet.' - player-not-found: '<#fc1c1c>Spiller ikke funnet.' - config-reloaded: 'Konfigurasjon lastet på nytt.' - command-disabled: '<#fc1c1c>Dette kommandoen er for øyeblikket deaktivert!' - - equipped: '%s utstyrt!' - unequipped: 'Din ballong er nå trygt lagret.' - balloon-not-found: '<#fc1c1c>Ballong ikke funnet.' - not-equipped: '<#fc1c1c>Du har for øyeblikket ingen ballong utstyrt.' - - material-not-dyeable: 'Materialet %s kan ikke farges.' - invalid-rgb-values: 'RGB-verdiene må være mellom 0 og 255 for å være gyldige.' - balloon-not-set: 'Ballongen %s er ikke satt i konfigurasjonen!' - material-not-set: 'Materialet til ballongen %s er ikke satt i konfigurasjonen!' - material-not-valid: 'Materialet til ballongen %s er ikke gyldig! Materiale: %s' - material-is-not-valid: 'Materialet %s er ikke gyldig!' - invalid-item-meta: 'ItemMeta er ikke gyldig for materialet: %s' - - no-balloons-registered: 'Ingen ballonger er registrert! Kan ikke opprette en meny uten ballonger.' - - configuration-folder-not-found: 'Konfigurasjonsmappen ble ikke funnet: %s' - no-configuration-files-found: 'Ingen konfigurasjonsfiler ble funnet i mappen: %s' - configuration-section-not-found: 'Konfigurasjonsdelen ble ikke funnet for filen: %s' - balloon-type-not-found: 'Feil ved behandling av ballongtype for seksjon: %s i filen: %s. Ballongtypen eksisterer ikke eller er null.' - balloon-process-error: 'Feil ved behandling av ballong for seksjon: %s i filen: %s. Feil: %s' - - menu-slot-out-of-bounds: '%s meny sideknapp(er) utenfor grensene!' - - invalid-hex-code: 'Ugyldig heksadesimal kode: %s' diff --git a/src/main/resources/languages/sk_SK.yml b/src/main/resources/languages/sk_SK.yml deleted file mode 100644 index 2f6145d1..00000000 --- a/src/main/resources/languages/sk_SK.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Prístup zamietnutý.' - player-not-found: '<#fc1c1c>Hráč nenájdený.' - config-reloaded: 'Konfigurácia bola znovu načítaná.' - command-disabled: '<#fc1c1c>Tento príkaz je momentálne zakázaný!' - - equipped: '%s nastavený!' - unequipped: 'Váš balón bol bezpečne uložený.' - balloon-not-found: '<#fc1c1c>Neexistuje žiadny balón.' - not-equipped: '<#fc1c1c>Nemáte momentálne žiadny balón nastavený.' - - material-not-dyeable: 'Materiál %s nie je možné farbiť.' - invalid-rgb-values: 'Hodnoty RGB musia byť medzi 0 a 255, aby boli platné.' - balloon-not-set: 'Balón %s nie je nastavený v konfigurácii!' - material-not-set: 'Materiál balónu %s nie je nastavený v konfigurácii!' - material-not-valid: 'Materiál balónu %s nie je platný! Materiál: %s' - material-is-not-valid: 'Materiál %s nie je platný!' - invalid-item-meta: 'ItemMeta nie je platný pre materiál: %s' - - no-balloons-registered: 'Nie sú zaregistrované žiadne balóny! Nie je možné vytvoriť menu bez balónov.' - - configuration-folder-not-found: 'Priečinok s konfiguráciou sa nenašiel: %s' - no-configuration-files-found: 'V priečinku sa nenašli žiadne konfiguračné súbory: %s' - configuration-section-not-found: 'Sekcia konfigurácie sa nenašla pre súbor: %s' - balloon-type-not-found: 'Chyba pri spracovaní typu balónu pre sekciu: %s v súbore: %s. Typ balónu neexistuje alebo je null.' - balloon-process-error: 'Chyba pri spracovaní balónu pre sekciu: %s v súbore: %s. Chyba: %s' - - menu-slot-out-of-bounds: '%s tlačidlá stránok menu prekračujú hranice!' - - invalid-hex-code: 'Neplatný hexadecimálny kód: %s' diff --git a/src/main/resources/languages/sq_AL.yml b/src/main/resources/languages/sq_AL.yml deleted file mode 100644 index 451a5a44..00000000 --- a/src/main/resources/languages/sq_AL.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Qasja e refuzuar.' - player-not-found: '<#fc1c1c>Lojtari nuk u gjet.' - config-reloaded: 'Konfigurimi u rifreskua.' - command-disabled: '<#fc1c1c>Kjo komandë është aktualisht e çaktivizuar!' - - equipped: '%s pajisur!' - unequipped: 'Balona juaj është ruajtur me siguri.' - balloon-not-found: '<#fc1c1c>Balona nuk u gjet.' - not-equipped: '<#fc1c1c>Ju nuk keni një balonë të pajisur aktualisht.' - - material-not-dyeable: 'Materiali %s nuk është një material që mund të ngjyroset.' - invalid-rgb-values: 'Vlerat RGB duhet të jenë midis 0 dhe 255 për të qenë të vlefshme.' - balloon-not-set: 'Balona %s nuk është vendosur në konfigurim!' - material-not-set: 'Materiali i balonës %s nuk është vendosur në konfigurim!' - material-not-valid: 'Materiali i balonës %s nuk është një material i vlefshëm! Materiali: %s' - material-is-not-valid: 'Materiali %s nuk është një material i vlefshëm!' - invalid-item-meta: 'ItemMeta nuk është i vlefshëm për materialin: %s' - - no-balloons-registered: 'Nuk u gjetën balona! Nuk mund të krijohet një menu pa balona.' - - configuration-folder-not-found: 'Dosja e konfigurimit nuk u gjet: %s' - no-configuration-files-found: 'Nuk u gjetën skedarë konfigurimi në dosje: %s' - configuration-section-not-found: 'Seksioni i konfigurimit nuk u gjet për skedarin: %s' - balloon-type-not-found: 'Gabim në përpunimin e llojit të balonës për seksionin: %s në skedarin: %s. Lloji i balonës nuk ekziston ose është null.' - balloon-process-error: 'Gabim në përpunimin e balonës për seksionin: %s në skedarin: %s. Gabimi: %s' - - menu-slot-out-of-bounds: '%s vendet e butonit të faqes së menysë jashtë kufijve!' - - invalid-hex-code: 'Kodi heksadecimal i pavlefshëm: %s' \ No newline at end of file diff --git a/src/main/resources/languages/sr_BA.yml b/src/main/resources/languages/sr_BA.yml deleted file mode 100644 index a199010a..00000000 --- a/src/main/resources/languages/sr_BA.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Nema dozvole.' - player-not-found: '<#fc1c1c>Igrač nije pronađen.' - config-reloaded: 'Konfiguracija je ponovo učitana.' - command-disabled: '<#fc1c1c>Ova komanda je trenutno onemogućena!' - - equipped: '%s opremljen!' - unequipped: 'Vaš balon je sada sigurno uskladišten.' - balloon-not-found: '<#fc1c1c>Balon nije pronađen.' - not-equipped: '<#fc1c1c>Trenutno nemate opremljen balon.' - - material-not-dyeable: 'Materijal %s nije moguće obojiti.' - invalid-rgb-values: 'RGB vrednosti moraju biti između 0 i 255 da bi bile validne.' - balloon-not-set: 'Balon %s nije postavljen u konfiguraciji!' - material-not-set: 'Materijal balona %s nije postavljen u konfiguraciji!' - material-not-valid: 'Materijal balona %s nije validan! Materijal: %s' - material-is-not-valid: 'Materijal %s nije validan!' - invalid-item-meta: 'ItemMeta nije validan za materijal: %s' - - no-balloons-registered: 'Nema registrovanih balona! Ne može se kreirati meni bez balona.' - - configuration-folder-not-found: 'Folder konfiguracije nije pronađen: %s' - no-configuration-files-found: 'Nije pronađena nijedna konfiguraciona datoteka u folderu: %s' - configuration-section-not-found: 'Sekcija konfiguracije nije pronađena za datoteku: %s' - balloon-type-not-found: 'Greška prilikom obrade tipa balona za sekciju: %s u datoteci: %s. Tip balona ne postoji ili je null.' - balloon-process-error: 'Greška prilikom obrade balona za sekciju: %s u datoteci: %s. Greška: %s' - - menu-slot-out-of-bounds: '%s slot(ova) meni stranice prelazi granice!' - - invalid-hex-code: 'Nevažeći heksadecimalni kod: %s' diff --git a/src/main/resources/languages/sv_SE.yml b/src/main/resources/languages/sv_SE.yml deleted file mode 100644 index c77f7d57..00000000 --- a/src/main/resources/languages/sv_SE.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Åtkomst nekad.' - player-not-found: '<#fc1c1c>Spelaren hittades inte.' - config-reloaded: 'Konfigurationen har laddats om.' - command-disabled: '<#fc1c1c>Denna kommando är för närvarande inaktiverad!' - - equipped: '%s utrustad!' - unequipped: 'Din ballong har säkrats.' - balloon-not-found: '<#fc1c1c>Ballongen hittades inte.' - not-equipped: '<#fc1c1c>Du har för närvarande ingen ballong utrustad.' - - material-not-dyeable: 'Materialet %s kan inte färgas.' - invalid-rgb-values: 'RGB-värdena måste vara mellan 0 och 255 för att vara giltiga.' - balloon-not-set: 'Ballongen %s är inte inställd i konfigurationen!' - material-not-set: 'Materialet för ballongen %s är inte inställt i konfigurationen!' - material-not-valid: 'Materialet för ballongen %s är inte giltigt! Material: %s' - material-is-not-valid: 'Materialet %s är inte giltigt!' - invalid-item-meta: 'ItemMeta är inte giltigt för materialet: %s' - - no-balloons-registered: 'Inga ballonger är registrerade! Det går inte att skapa en meny utan ballonger.' - - configuration-folder-not-found: 'Konfigurationsmappen hittades inte: %s' - no-configuration-files-found: 'Inga konfigurationsfiler hittades i mappen: %s' - configuration-section-not-found: 'Konfigurationssektionen hittades inte för filen: %s' - balloon-type-not-found: 'Fel vid bearbetning av ballongtypen för avsnittet: %s i filen: %s. Ballongtypen finns inte eller är null.' - balloon-process-error: 'Fel vid bearbetning av ballongen för avsnittet: %s i filen: %s. Fel: %s' - - menu-slot-out-of-bounds: '%s meny sida knapp(ar) utanför gränserna!' - - invalid-hex-code: 'Ogiltig hex-kod: %s' diff --git a/src/main/resources/languages/sw_KE.yml b/src/main/resources/languages/sw_KE.yml deleted file mode 100644 index e440d025..00000000 --- a/src/main/resources/languages/sw_KE.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Hakuna ruhusa.' - player-not-found: '<#fc1c1c>Mchezaji hakupatikana.' - config-reloaded: 'Mipangilio imesasishwa upya.' - command-disabled: '<#fc1c1c>Amri hii kwa sasa imelemazwa!' - - equipped: '%s limevalishwa!' - unequipped: 'Baluni lako limehifadhiwa kwa usalama.' - balloon-not-found: '<#fc1c1c>Baluni halipatikani.' - not-equipped: '<#fc1c1c>Huna baluni limevalishwa kwa sasa.' - - material-not-dyeable: 'Materiali %s haiwezi kuchovyeka.' - invalid-rgb-values: 'Thamani za RGB lazima ziwe kati ya 0 na 255 ili ziwe halali.' - balloon-not-set: 'Baluni %s haijasanidiwa!' - material-not-set: 'Vifaa vya baluni %s havijasanidiwa!' - material-not-valid: 'Vifaa vya baluni %s sio halali! Materiali: %s' - material-is-not-valid: 'Materiali %s sio halali!' - invalid-item-meta: 'ItemMeta sio halali kwa vifaa: %s' - - no-balloons-registered: 'Hakuna baluni zilizosajiliwa! Haiwezekani kuunda menyu bila baluni.' - - configuration-folder-not-found: 'Folda ya mipangilio haipatikani: %s' - no-configuration-files-found: 'Hakuna faili za mipangilio zilizopatikana kwenye folda: %s' - configuration-section-not-found: 'Sehemu ya mipangilio haikupatikana kwa faili: %s' - balloon-type-not-found: 'Kosa katika kusindika aina ya baluni kwa sehemu: %s katika faili: %s. Aina ya baluni haipo au ni tupu.' - balloon-process-error: 'Kosa katika kusindika baluni kwa sehemu: %s katika faili: %s. Kosa: %s' - - menu-slot-out-of-bounds: '%s kifungo cha ukurasa wa menyu kimezidi mipaka!' - - invalid-hex-code: 'Nambari ya hexa batili: %s' diff --git a/src/main/resources/languages/syr_SY.yml b/src/main/resources/languages/syr_SY.yml deleted file mode 100644 index 94c7c3f9..00000000 --- a/src/main/resources/languages/syr_SY.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>رخصة مرفوضة.' - player-not-found: '<#fc1c1c>اللاعب غير موجود.' - config-reloaded: 'تم إعادة تحميل الإعدادات.' - command-disabled: '<#fc1c1c>هذا الأمر معطل حالياً!' - - equipped: '%s مجهز!' - unequipped: 'تم تخزين بالونك بأمان.' - balloon-not-found: '<#fc1c1c>البالون غير موجود.' - not-equipped: '<#fc1c1c>ليس لديك حالياً بالون مجهز.' - - material-not-dyeable: 'المادة %s غير قابلة للصبغ.' - invalid-rgb-values: 'قيم RGB يجب أن تكون بين 0 و 255 لتكون صالحة.' - balloon-not-set: 'البالون %s غير معين في التكوين!' - material-not-set: 'مادة البالون %s غير معينة في التكوين!' - material-not-valid: 'مادة البالون %s غير صالحة! المادة: %s' - material-is-not-valid: 'المادة %s غير صالحة!' - invalid-item-meta: 'الميتاداتا غير صالحة للمادة: %s' - - no-balloons-registered: 'لا توجد بالونات مسجلة! لا يمكن إنشاء قائمة بدون بالونات.' - - configuration-folder-not-found: 'مجلد التكوين غير موجود: %s' - no-configuration-files-found: 'لم يتم العثور على ملفات تكوين في المجلد: %s' - configuration-section-not-found: 'القسم في التكوين غير موجود للملف: %s' - balloon-type-not-found: 'خطأ في معالجة نوع البالون للقسم: %s في الملف: %s. نوع البالون غير موجود أو فارغ.' - balloon-process-error: 'خطأ في معالجة البالون للقسم: %s في الملف: %s. الخطأ: %s' - - menu-slot-out-of-bounds: '%s زر صفحة القائمة خارج الحدود!' - - invalid-hex-code: 'رمز هكس غير صالح: %s' diff --git a/src/main/resources/languages/ta_IN.yml b/src/main/resources/languages/ta_IN.yml deleted file mode 100644 index ae3625de..00000000 --- a/src/main/resources/languages/ta_IN.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>அனுமதி இல்லை.' - player-not-found: '<#fc1c1c>வீரர் கண்டுபிடிக்கப்படவில்லை.' - config-reloaded: 'உள்ளமைவு மீள்படுத்தப்பட்டது.' - command-disabled: '<#fc1c1c>இந்த கட்டளை தற்போது முடக்கப்பட்டுள்ளது!' - - equipped: '%s உடைக்கப்பட்டது!' - unequipped: 'உங்கள் பலூன் பாதுகாக்கப்பட்டுள்ளது.' - balloon-not-found: '<#fc1c1c>பலூன் காணப்படவில்லை.' - not-equipped: '<#fc1c1c>உங்களுக்கு தற்போது பலூன் உடையப்பட்டிருக்கவில்லை.' - - material-not-dyeable: 'பொருள் %s வண்ணமாக்க முடியாது.' - invalid-rgb-values: 'RGB மதிப்புகள் 0 மற்றும் 255 இடம் இருக்க வேண்டும்.' - balloon-not-set: 'பலூன் %s உள்ளது உள்ளது கட்டமைப்பில் அமைக்கப்படவில்லை!' - material-not-set: 'பலூன் %s மெட்டீரியல் கட்டமைப்பில் அமைக்கப்படவில்லை!' - material-not-valid: 'பலூன் %s மெட்டீரியல் தவறானது! பொருள்: %s' - material-is-not-valid: 'பொருள் %s தவறானது!' - invalid-item-meta: 'உருப்படி மெட்டாவின் %s மாதிரி தவறானது.' - - no-balloons-registered: 'பலூன்கள் பதிவு செய்யப்படவில்லை! பலூன்கள் இல்லாத ஒரு பட்டியலை உருவாக்க முடியாது.' - - configuration-folder-not-found: 'கட்டமைப்பு கோப்புறை காணப்படவில்லை: %s' - no-configuration-files-found: 'கோப்புறையில் கட்டமைப்பு கோப்புகள் காணப்படவில்லை: %s' - configuration-section-not-found: 'கோப்பின் கட்டமைப்பு பிரிப்பு காணப்படவில்லை: %s' - balloon-type-not-found: 'பட்டியலில் பலூன் வகையை செயல்படுத்தும் பிழை: %s கோப்பில் பிரிப்பு: %s. பலூன் வகை இல்லை அல்லது பூட்.' - balloon-process-error: 'பட்டியலில் பலூன் செயல்படுத்தும் பிழை: %s கோப்பில் பிரிப்பு: %s. பிழை: %s' - - menu-slot-out-of-bounds: '%s பட்டி பக்க பொத்தான்(கள்) எல்லைகளை மீறுகின்றன!' - - invalid-hex-code: 'தவறான ஹெக்ஸ் குறியீடு: %s' diff --git a/src/main/resources/languages/te_IN.yml b/src/main/resources/languages/te_IN.yml deleted file mode 100644 index 1d664ae7..00000000 --- a/src/main/resources/languages/te_IN.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>అనుమతి లేదు.' - player-not-found: '<#fc1c1c>క్రీడకు వ్యక్తి కనబడలేదు.' - config-reloaded: 'ఆకృతీకరణ మళ్ళీ లోడు చేయబడింది.' - command-disabled: '<#fc1c1c>ఈ కమాండు ప్రస్తుతం నిలిపివేయబడింది!' - - equipped: '%s ఆకృతీకరించబడింది!' - unequipped: 'మీ బలూన్ భద్రంగా భద్రపరచబడింది.' - balloon-not-found: '<#fc1c1c>బలూన్ కనబడలేదు.' - not-equipped: '<#fc1c1c>మీకు ప్రస్తుతం బలూన్ ఆకృతీకరించబడలేదు.' - - material-not-dyeable: 'సామగ్రి %s రంగుబద్ధం చేయబడదు.' - invalid-rgb-values: 'RGB విలువలు 0 మరియు 255 ల మధ్య ఉండాలి మాత్రమే చెల్లవు.' - balloon-not-set: 'బలూన్ %s ఆకృతీకరించబడలేదు!' - material-not-set: 'బలూన్ %s సామగ్రి ఆకృతీకరించబడలేదు!' - material-not-valid: 'బలూన్ %s సామగ్రి చెల్లనిది! సామగ్రి: %s' - material-is-not-valid: 'సామగ్రి %s చెల్లనిది!' - invalid-item-meta: 'ఐటం మెటా %s మాటీరియల్కు చెల్లనిది.' - - no-balloons-registered: 'రిజిస్టర్ చేయబడిన బలూన్లు లేవు! బలూన్లు లేని మెనును సృష్టించలేరు.' - - configuration-folder-not-found: 'ఆకృతీకరణ ఫోల్డర్ కనబడలేదు: %s' - no-configuration-files-found: 'ఫోల్డర్ లో ఆకృతీకరణ ఫైళ్ళు కనబడలేదు: %s' - configuration-section-not-found: 'ఫైల్ కోసం ఆకృతీకరణ విభాగం కనబడలేదు: %s' - balloon-type-not-found: 'విభాగంలో బలూన్ రకం ప్రాసెసింగ్ లో లోపం: %s ఫైల్లోను: %s. బలూన్ రకం లేదు లేదా ఖాళీగా ఉంది.' - balloon-process-error: 'విభాగంలో బలూన్ ప్రాసెస్ లో లోపం: %s ఫైల్లోను: %s. లోపం: %s' - - menu-slot-out-of-bounds: '%s మెను పేజీ బటన్ స్లాట్(లు) బారిస్తాయి!' - - invalid-hex-code: 'చెల్లని హెక్స్ కోడ్: %s' diff --git a/src/main/resources/languages/th_TH.yml b/src/main/resources/languages/th_TH.yml deleted file mode 100644 index c7c937e4..00000000 --- a/src/main/resources/languages/th_TH.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>ไม่อนุญาต.' - player-not-found: '<#fc1c1c>ไม่พบผู้เล่น.' - config-reloaded: 'โหลดการตั้งค่าใหม่.' - command-disabled: '<#fc1c1c>คำสั่งนี้ถูกปิดใช้งานในปัจจุบัน!' - - equipped: '%s ได้รับการติดตั้งแล้ว!' - unequipped: 'บอลลูนของคุณได้รับการจัดเก็บไว้อย่างปลอดภัย' - balloon-not-found: '<#fc1c1c>ไม่พบบอลลูน.' - not-equipped: '<#fc1c1c>คุณยังไม่ได้ติดตั้งบอลลูนใด ๆ.' - - material-not-dyeable: 'วัสดุ %s ไม่สามารถเปลี่ยนสีได้.' - invalid-rgb-values: 'ค่า RGB ต้องอยู่ระหว่าง 0 และ 255 เพื่อเป็นไปได้.' - balloon-not-set: 'ไม่ได้ตั้งค่าบอลลูน %s ในการกำหนดค่า!' - material-not-set: 'วัสดุของบอลลูน %s ไม่ได้ตั้งค่าในการกำหนดค่า!' - material-not-valid: 'วัสดุของบอลลูน %s ไม่ถูกต้อง! วัสดุ: %s' - material-is-not-valid: 'วัสดุ %s ไม่ถูกต้อง!' - invalid-item-meta: 'ItemMeta ไม่ถูกต้องสำหรับวัสดุ: %s' - - no-balloons-registered: 'ไม่มีบอลลูนที่ลงทะเบียน! ไม่สามารถสร้างเมนูโดยไม่มีบอลลูน.' - - configuration-folder-not-found: 'ไม่พบโฟลเดอร์การกำหนดค่า: %s' - no-configuration-files-found: 'ไม่พบไฟล์การกำหนดค่าในโฟลเดอร์: %s' - configuration-section-not-found: 'ไม่พบส่วนการกำหนดค่าสำหรับไฟล์: %s' - balloon-type-not-found: 'ข้อผิดพลาดในการประมวลผลประเภทบอลลูนสำหรับส่วน: %s ในไฟล์: %s. ประเภทบอลลูนไม่มีหรือเป็น null.' - balloon-process-error: 'ข้อผิดพลาดในการประมวลผลบอลลูนสำหรับส่วน: %s ในไฟล์: %s. ข้อผิดพลาด: %s' - - menu-slot-out-of-bounds: 'ปุ่มเมนูหน้า %s เกินขอบเขต!' - - invalid-hex-code: 'รหัสฮีกไม่ถูกต้อง: %s' diff --git a/src/main/resources/languages/tn_ZA.yml b/src/main/resources/languages/tn_ZA.yml deleted file mode 100644 index 2206f477..00000000 --- a/src/main/resources/languages/tn_ZA.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Ha u fa tirisano.' - player-not-found: '<#fc1c1c>Ha ke kene ke hore o tsebe monna oa chelete.' - config-reloaded: 'Sebaka se hlasiloe ka tlase.' - command-disabled: '<#fc1c1c>Khomando ena ke e tlaaseha ha ho na le tšireletso e sa tšoanang!' - - equipped: '%s e pharalletsa!' - unequipped: 'Seboka sa hao sa behe ka khalemoleng.' - balloon-not-found: '<#fc1c1c>Ha ho fumanehe seboka.' - not-equipped: '<#fc1c1c>Haeba o sa fumane seboka e kenyelletsoa.' - - material-not-dyeable: 'Letsoho %s ha le se e tsebahalisang.' - invalid-rgb-values: 'Maqheku a RGB a tlameha ho beng 0 le 255 ho ba le mohlala.' - balloon-not-set: 'Seboka %s se ha se sesebetseng ka sebaka!' - material-not-set: 'Mosebetsi oa seboka %s ha o se setelehang ka sebaka!' - material-not-valid: 'Mosebetsi oa seboka %s ha o se boemo bona! Boemo: %s' - material-is-not-valid: 'Mosebetsi %s ha o se boemo bona!' - invalid-item-meta: 'ItemMeta ha e sebetse ho mosebetsi: %s' - - no-balloons-registered: 'Ha ho na besebetsi ba bolone ba rekisitara! Ha hloka ho atleha menu e sa fumane bolone.' - - configuration-folder-not-found: 'Sebaka sa tšireletso e sa fumaneha: %s' - no-configuration-files-found: 'Ha ho fumanehe maqheku a tšireletso a sebaka: %s' - configuration-section-not-found: 'Maqheku a tšireletso a sebaka ha a fumaneha bakeng sa file: %s' - balloon-type-not-found: 'Khetla e sa sebedisana ka tsebo ea bolone bakeng sa sebaka: %s ka file: %s. E ka sebelisoa ka e ka sebelisoa hoba ka nolle.' - balloon-process-error: 'Khetla e sa sebedisana ka bolone bakeng sa sebaka: %s ka file: %s. Hlobo ea sebetsa: %s' - - menu-slot-out-of-bounds: '%s khatiso ea bontša lebitla le kasehleng!' - - invalid-hex-code: 'Mohlala oa hex e sa sebetse: %s' diff --git a/src/main/resources/languages/tr_TR.yml b/src/main/resources/languages/tr_TR.yml deleted file mode 100644 index 9158e39d..00000000 --- a/src/main/resources/languages/tr_TR.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>İzin verilmedi.' - player-not-found: '<#fc1c1c>Oyuncu bulunamadı.' - config-reloaded: 'Ayarlar yeniden yüklendi.' - command-disabled: '<#fc1c1c>Bu komut şu anda devre dışı!' - - equipped: '%s donatıldı!' - unequipped: 'Balonunuz güvenli bir şekilde depolandı.' - balloon-not-found: '<#fc1c1c>Balon bulunamadı.' - not-equipped: '<#fc1c1c>Şu anda donatılmış bir balonunuz yok.' - - material-not-dyeable: '%s malzemesi boyanabilir değil.' - invalid-rgb-values: 'Geçersiz RGB değerleri: Değerler 0 ve 255 arasında olmalıdır.' - balloon-not-set: '%s balonu yapılandırmada belirtilmemiş!' - material-not-set: '%s balonunun malzemesi yapılandırmada belirtilmemiş!' - material-not-valid: '%s balonun malzemesi geçerli değil! Malzeme: %s' - material-is-not-valid: '%s malzemesi geçerli değil!' - invalid-item-meta: 'Malzeme için geçersiz ItemMeta: %s' - - no-balloons-registered: 'Kayıtlı balon bulunmuyor! Boş bir balon menüsü oluşturulamaz.' - - configuration-folder-not-found: 'Yapılandırma klasörü bulunamadı: %s' - no-configuration-files-found: 'Klasörde yapılandırma dosyası bulunamadı: %s' - configuration-section-not-found: 'Dosya için yapılandırma bölümü bulunamadı: %s' - balloon-type-not-found: 'Bölüm için balon türü işlenirken hata oluştu: %s, dosya: %s. Balon türü mevcut değil veya null.' - balloon-process-error: 'Bölüm için balon işlenirken hata oluştu: %s, dosya: %s. Hata: %s' - - menu-slot-out-of-bounds: '%s menü sayfa düğme yuvası sınırların dışında!' - - invalid-hex-code: 'Geçersiz hex kodu: %s' diff --git a/src/main/resources/languages/uk_UA.yml b/src/main/resources/languages/uk_UA.yml deleted file mode 100644 index 7c05b2e8..00000000 --- a/src/main/resources/languages/uk_UA.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Доступ заборонено.' - player-not-found: '<#fc1c1c>Гравець не знайдений.' - config-reloaded: 'Конфігурація перезавантажена.' - command-disabled: '<#fc1c1c>Ця команда наразі вимкнена!' - - equipped: '%s встановлено!' - unequipped: 'Ваша кулька безпечно збережена.' - balloon-not-found: '<#fc1c1c>Кулька не знайдена.' - not-equipped: '<#fc1c1c>Наразі у вас не встановлено кульку.' - - material-not-dyeable: 'Матеріал %s не можна забарвити.' - invalid-rgb-values: 'Недійсні значення RGB: значення повинні бути від 0 до 255.' - balloon-not-set: 'Кулька %s не встановлена в конфігурації!' - material-not-set: 'Матеріал кульки %s не встановлено в конфігурації!' - material-not-valid: 'Матеріал кульки %s недійсний! Матеріал: %s' - material-is-not-valid: 'Матеріал %s недійсний!' - invalid-item-meta: 'Недійсна мета-предмету для матеріалу: %s' - - no-balloons-registered: 'Кульки не знайдено! Неможливо створити меню без кульок.' - - configuration-folder-not-found: 'Каталог конфігурації не знайдено: %s' - no-configuration-files-found: 'Не знайдено конфігураційних файлів у каталозі: %s' - configuration-section-not-found: 'Розділ конфігурації не знайдено для файлу: %s' - balloon-type-not-found: 'Помилка обробки типу кульки для розділу: %s в файлі: %s. Тип кульки не існує або є null.' - balloon-process-error: 'Помилка обробки кульки для розділу: %s в файлі: %s. Помилка: %s' - - menu-slot-out-of-bounds: '%s кнопка сторінки меню виходить за межі!' - - invalid-hex-code: 'Недійсний шістнадцятковий код: %s' diff --git a/src/main/resources/languages/uz_UZ.yml b/src/main/resources/languages/uz_UZ.yml deleted file mode 100644 index 28b3daa0..00000000 --- a/src/main/resources/languages/uz_UZ.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Ruxsat berilmagan.' - player-not-found: '<#fc1c1c>Oyinchi topilmadi.' - config-reloaded: 'Sozlamalar qayta yuklandi.' - command-disabled: '<#fc1c1c>Ushbu buyruq hozir faol emas!' - - equipped: '%s ojiqtirildi!' - unequipped: 'Baloningiz xavfsiz saqlandi.' - balloon-not-found: '<#fc1c1c>Balon topilmadi.' - not-equipped: '<#fc1c1c>Hozircha o'rnatilgan baloningiz yo\'q.' - - material-not-dyeable: '%s materialini ranglab bo\'lmaydi.' - invalid-rgb-values: "Noto'g'ri RGB qiymatlari: qiymatlar 0 va 255 oralig'ida bo\'lishi kerak." - balloon-not-set: '%s baloni sozlamada o\'rnatilmagan!' - material-not-set: 'Balon materiali %s sozlamada o\'rnatilmagan!' - material-not-valid: '%s balon materiali haqiqiy emas! Material: %s' - material-is-not-valid: '%s materiali haqiqiy emas!' - invalid-item-meta: "Material uchun noto'g'ri ItemMeta: %s" - - no-balloons-registered: 'Ro\'yxatga olingan balonlar yo\'q! Balonsiz menyuni yaratib bo\'lmaydi.' - - configuration-folder-not-found: 'Sozlamalar papkasi topilmadi: %s' - no-configuration-files-found: 'Fayllar katalogida sozlamalar fayllari topilmadi: %s' - configuration-section-not-found: "Fayl uchun sozlamalar bo\'limi topilmadi: %s" - balloon-type-not-found: "Bo\'limda balon turi qayta ishlab chiqish jarayonida xatolik yuz berdi: %s faylda: %s. Balon turi mavjud emas yoki null." - balloon-process-error: "Bo\'limda balon jarayonida xatolik yuz berdi: %s faylda: %s. Xatolik: %s" - - menu-slot-out-of-bounds: '%s menyuni sahifa tugmasi chetlardan tashqari!' - - invalid-hex-code: "Noto'g'ri hex kodi: %s" diff --git a/src/main/resources/languages/vi_VN.yml b/src/main/resources/languages/vi_VN.yml deleted file mode 100644 index 18b1fa41..00000000 --- a/src/main/resources/languages/vi_VN.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Không có quyền truy cập.' - player-not-found: '<#fc1c1c>Không tìm thấy người chơi.' - config-reloaded: 'Cấu hình đã được tải lại.' - command-disabled: '<#fc1c1c>Lệnh này hiện đang bị vô hiệu hóa!' - - equipped: '%s đã được trang bị!' - unequipped: 'Bóng của bạn đã được lưu an toàn.' - balloon-not-found: '<#fc1c1c>Không tìm thấy bóng.' - not-equipped: '<#fc1c1c>Bạn hiện không có bóng nào được trang bị.' - - material-not-dyeable: 'Vật liệu %s không thể nhuộm màu.' - invalid-rgb-values: 'Giá trị RGB không hợp lệ: Giá trị phải nằm trong khoảng từ 0 đến 255.' - balloon-not-set: 'Bóng %s không được thiết lập trong cấu hình!' - material-not-set: 'Vật liệu của bóng %s không được thiết lập trong cấu hình!' - material-not-valid: 'Vật liệu của bóng %s không hợp lệ! Vật liệu: %s' - material-is-not-valid: 'Vật liệu %s không hợp lệ!' - invalid-item-meta: 'ItemMeta không hợp lệ cho vật liệu: %s' - - no-balloons-registered: 'Không có bóng nào được đăng ký! Không thể tạo menu không có bóng.' - - configuration-folder-not-found: 'Thư mục cấu hình không tìm thấy: %s' - no-configuration-files-found: 'Không tìm thấy tệp cấu hình trong thư mục: %s' - configuration-section-not-found: 'Không tìm thấy phần cấu hình cho tệp: %s' - balloon-type-not-found: 'Lỗi khi xử lý loại bóng cho phần: %s trong tệp: %s. Loại bóng không tồn tại hoặc là null.' - balloon-process-error: 'Lỗi khi xử lý bóng cho phần: %s trong tệp: %s. Lỗi: %s' - - menu-slot-out-of-bounds: '%s nút trang menu vượt ra ngoài giới hạn!' - - invalid-hex-code: 'Mã hex không hợp lệ: %s' diff --git a/src/main/resources/languages/xh_ZA.yml b/src/main/resources/languages/xh_ZA.yml deleted file mode 100644 index 30874992..00000000 --- a/src/main/resources/languages/xh_ZA.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>Ukunceda akwenzeki.' - player-not-found: '<#fc1c1c>I-Player ayikho.' - config-reloaded: 'I-config yachazwe kabusha.' - command-disabled: '<#fc1c1c>Loo mkhombandlela ulwaziwe!' - - equipped: '%s kwenziwe!' - unequipped: 'Umtya wakho uwugcinwe ngefanayo.' - balloon-not-found: '<#fc1c1c>Uballooni awukho.' - not-equipped: '<#fc1c1c>Awunayo ngoku i-ballooni engabhiyiselwe.' - - material-not-dyeable: 'I-material %s alifakanyi ngezinto.' - invalid-rgb-values: 'Izimvo RGB ezisembiwe: Izimvo kufanele zibe phakathi kwesikhombisa se-0 kunye ne-255.' - balloon-not-set: 'Uballooni %s akawuthandwa kwi-config!' - material-not-set: 'I-material yoballoon %s aliyithandwa kwi-config!' - material-not-valid: 'I-material yoballoon %s aliyenzekanga! Material: %s' - material-is-not-valid: 'I-material %s aliyenzekanga!' - invalid-item-meta: 'ItemMeta ayifanelekanga kwi-material: %s' - - no-balloons-registered: 'Akukho i-ballooni ethandwa! Ayikwazi ukwakha imenyu ngenkathazo i-ballooni.' - - configuration-folder-not-found: 'Akakuthandwa ifowudha yomhleli wocaphepha: %s' - no-configuration-files-found: 'Akakuthandwa amafayela omthwalo wocaphepha: %s' - configuration-section-not-found: 'Akakuthandwa i-section ye-config yokhuphela: %s' - balloon-type-not-found: 'Igosa elikhona lokuqhuba i-ballooni elithandwa kwi-section: %s kwi-fayela: %s. Lolu qhubo lwaballooni alukho noma lulungile.' - balloon-process-error: 'Lolu qhubo lwaballooni lokuqhuba kwenzakala kwi-section: %s kwi-fayela: %s. Iphutha: %s' - - menu-slot-out-of-bounds: '%s imenyu yephepha i-buttoni yaselwimiyo kwi-imfundiso!' - - invalid-hex-code: 'Ikhodi ye-hex engalungile: %s' diff --git a/src/main/resources/languages/zh_CN.yml b/src/main/resources/languages/zh_CN.yml deleted file mode 100644 index 1b20de95..00000000 --- a/src/main/resources/languages/zh_CN.yml +++ /dev/null @@ -1,30 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>访问被拒。' - player-not-found: '<#fc1c1c>玩家未找到。' - config-reloaded: '配置已重新加载。' - command-disabled: '<#fc1c1c>此命令目前已禁用!' - - equipped: '%s 已装备!' - unequipped: '你的气球已安全存放。' - balloon-not-found: '<#fc1c1c>气球未找到。' - not-equipped: '<#fc1c1c>你当前没有装备气球。' - - material-not-dyeable: '材料 %s 不是可染色材料。' - invalid-rgb-values: 'RGB 值必须在 0 到 255 之间才有效。' - balloon-not-set: '配置中未设置气球 %s!' - material-not-set: '配置中未设置气球 %s 的材料!' - material-not-valid: '气球 %s 的材料不是有效的材料!材料: %s' - invalid-item-meta: '材料 %s 的 ItemMeta 无效。' - - no-balloons-registered: '未找到任何气球!无法创建没有气球的菜单。' - - configuration-folder-not-found: '配置文件夹未找到: %s' - no-configuration-files-found: '文件夹中未找到配置文件: %s' - configuration-section-not-found: '文件 %s 中未找到配置部分。' - balloon-type-not-found: '处理文件 %s 中部分 %s 的气球类型时出错。气球类型不存在或为空。' - balloon-process-error: '处理文件 %s 中部分 %s 的气球时出错。错误: %s' - - menu-slot-out-of-bounds: '%s 菜单页面按钮槽超出范围!' - - invalid-hex-code: '無效的十六進位代碼:%s' \ No newline at end of file diff --git a/src/main/resources/languages/zh_TW.yml b/src/main/resources/languages/zh_TW.yml deleted file mode 100644 index 1a1157e7..00000000 --- a/src/main/resources/languages/zh_TW.yml +++ /dev/null @@ -1,31 +0,0 @@ -messages: - prefix: '[Bloons] ' - no-permission: '<#fc1c1c>無權訪問。' - player-not-found: '<#fc1c1c>找不到玩家。' - config-reloaded: '配置已重新加載。' - command-disabled: '<#fc1c1c>此命令目前已禁用!' - - equipped: '%s 已裝備!' - unequipped: '您的氣球已安全存儲。' - balloon-not-found: '<#fc1c1c>找不到氣球。' - not-equipped: '<#fc1c1c>您目前沒有裝備氣球。' - - material-not-dyeable: '材料%s無法染色。' - invalid-rgb-values: 'RGB 值必須在 0 和 255 之間才有效。' - balloon-not-set: '未在配置中設置氣球%s!' - material-not-set: '未在配置中設置氣球%s的材料!' - material-not-valid: '氣球%s的材料無效! 材料:%s' - material-is-not-valid: '材料%s無效!' - invalid-item-meta: '對於材料%s,ItemMeta 無效。' - - no-balloons-registered: '沒有註冊氣球!不能創建沒有氣球的菜單。' - - configuration-folder-not-found: '找不到配置文件夾:%s' - no-configuration-files-found: '在文件夾%s中找不到配置文件。' - configuration-section-not-found: '找不到文件%s的配置部分。' - balloon-type-not-found: '處理文件%s中部分%s的氣球類型時出錯。氣球類型不存在或為空。' - balloon-process-error: '處理文件%s中部分%s的氣球時出錯。錯誤:%s' - - menu-slot-out-of-bounds: '菜單頁%s按鈕位置超出範圍!' - - invalid-hex-code: '無效的十六進制代碼:%s' From 42a1f789bb3127a5bf879045e4e08b99f5d6ed38 Mon Sep 17 00:00:00 2001 From: IanTapply22 Date: Wed, 29 Jan 2025 13:28:43 -0500 Subject: [PATCH 6/6] Revert double version bump --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 71221d29..3f6b262a 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ net.jeqo bloons - 2.1.1 + 2.1.0 jar Bloons