diff --git a/pom.xml b/pom.xml index 4cec12b..e67c104 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ de.jeffclan JeffChestSort - 6.4.5 + 7.0 jar JeffChestSort diff --git a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortCommandExecutor.java b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortCommandExecutor.java index b460d8e..02bdf22 100644 --- a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortCommandExecutor.java +++ b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortCommandExecutor.java @@ -29,6 +29,23 @@ public class JeffChestSortCommandExecutor implements CommandExecutor { // fix for Spigot's stupid /reload function plugin.listener.registerPlayerIfNeeded(p); + // Settings GUI + if(args.length>0) { + if(args[0].equalsIgnoreCase("hotkey") || args[0].equalsIgnoreCase("hotkeys")) { + +// if(plugin.hotkeyGUI==false) { +// p.sendMessage(plugin.messages.MSG_ERR_HOTKEYSDISABLED); +// return true; +// } + + plugin.settingsGUI.openGUI(p); + + return true; + } + + } + // Settings GUI End + JeffChestSortPlayerSetting setting = plugin.PerPlayerSettings.get(p.getUniqueId().toString()); setting.sortingEnabled = !setting.sortingEnabled; setting.hasSeenMessage=true; diff --git a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortListener.java b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortListener.java index ea70bd0..964ea1e 100644 --- a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortListener.java +++ b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortListener.java @@ -13,6 +13,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; +import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.inventory.InventoryEvent; @@ -65,19 +66,33 @@ public class JeffChestSortListener implements Listener { File playerFile = new File(plugin.getDataFolder() + File.separator + "playerdata", p.getUniqueId().toString() + ".yml"); YamlConfiguration playerConfig = YamlConfiguration.loadConfiguration(playerFile); + + playerConfig.addDefault("middleClick", plugin.getConfig().getBoolean("hotkeys.middle-click")); + playerConfig.addDefault("shiftClick", plugin.getConfig().getBoolean("hotkeys.shift-click")); + playerConfig.addDefault("doubleClick", plugin.getConfig().getBoolean("hotkeys.double-click")); + playerConfig.addDefault("shiftRightClick", plugin.getConfig().getBoolean("hotkeys.shift-right-click")); boolean activeForThisPlayer = false; + boolean middleClick, shiftClick, doubleClick, shiftRightClick; if (!playerFile.exists()) { // If the player settings file does not exist for this player, set it to the // default value activeForThisPlayer = plugin.getConfig().getBoolean("sorting-enabled-by-default"); + middleClick = plugin.getConfig().getBoolean("hotkeys.middle-click"); + shiftClick = plugin.getConfig().getBoolean("hotkeys.shift-click"); + doubleClick = plugin.getConfig().getBoolean("hotkeys.double-click"); + shiftRightClick = plugin.getConfig().getBoolean("hotkeys.shift-right-click"); } else { // If the file exists, check if the player has sorting enabled activeForThisPlayer = playerConfig.getBoolean("sortingEnabled"); + middleClick = playerConfig.getBoolean("middleClick"); + shiftClick = playerConfig.getBoolean("shiftClick"); + doubleClick = playerConfig.getBoolean("doubleClick"); + shiftRightClick = playerConfig.getBoolean("shiftRightClick"); } - JeffChestSortPlayerSetting newSettings = new JeffChestSortPlayerSetting(activeForThisPlayer); + JeffChestSortPlayerSetting newSettings = new JeffChestSortPlayerSetting(activeForThisPlayer,middleClick,shiftClick,doubleClick,shiftRightClick); // when "show-message-again-after-logout" is enabled, we don't care if the // player already saw the message @@ -271,16 +286,18 @@ public class JeffChestSortListener implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) public void onInventoryClickEvent(InventoryClickEvent event) { - if(!plugin.getConfig().getBoolean("allow-hotkeys")) { - return; - } - if(!(event.getWhoClicked() instanceof Player)) { return; } Player p = (Player) event.getWhoClicked(); + registerPlayerIfNeeded(p); + + if(!plugin.getConfig().getBoolean("allow-hotkeys")) { + return; + } + // DEBUG START // p.sendMessage("====================="); // p.sendMessage("Click type: " + event.getClick().name()); @@ -301,14 +318,23 @@ public class JeffChestSortListener implements Listener { boolean sort = false; + JeffChestSortPlayerSetting setting = plugin.PerPlayerSettings.get(p.getUniqueId().toString()); + + // Do not sort the GUI inventory + if(event.getClickedInventory() == setting.guiInventory) { + return; + } + switch(event.getClick()) { case MIDDLE: - if(plugin.getConfig().getBoolean("hotkeys.middle-click")) { + //if(plugin.getConfig().getBoolean("hotkeys.middle-click")) { + if(setting.middleClick) { sort=true; } break; case DOUBLE_CLICK: - if(plugin.getConfig().getBoolean("hotkeys.double-click")) { + //if(plugin.getConfig().getBoolean("hotkeys.double-click")) { + if(setting.doubleClick) { // We need getCursor() instead of getCurrentItem(), because after picking up the item, it is gone into the cursor if(event.getCursor() == null || (event.getCursor() != null && event.getCursor().getType() == Material.AIR)) { sort=true; @@ -316,14 +342,16 @@ public class JeffChestSortListener implements Listener { } break; case SHIFT_LEFT: - if(plugin.getConfig().getBoolean("hotkeys.shift-click")) { + //if(plugin.getConfig().getBoolean("hotkeys.shift-click")) { + if(setting.shiftClick) { if(event.getCurrentItem() == null || (event.getCurrentItem() != null && event.getCurrentItem().getType() == Material.AIR) ){ sort=true; } } break; case SHIFT_RIGHT: - if(plugin.getConfig().getBoolean("hotkeys.shift-right-click")) { + //if(plugin.getConfig().getBoolean("hotkeys.shift-right-click")) { + if(setting.shiftRightClick) { if(event.getCurrentItem() == null || ( event.getCurrentItem() != null && event.getCurrentItem().getType() == Material.AIR)) { sort=true; } @@ -374,5 +402,55 @@ public class JeffChestSortListener implements Listener { } } } + + @EventHandler + void onGUIInteract(InventoryClickEvent event) { + if(plugin.hotkeyGUI==false) { + return; + } + if(!(event.getWhoClicked() instanceof Player)) { + return; + } + Player p = (Player) event.getWhoClicked(); + registerPlayerIfNeeded(p); + JeffChestSortPlayerSetting setting = plugin.PerPlayerSettings.get(p.getUniqueId().toString()); + + if(setting.guiInventory==null) { + return; + } + + if(event.getClickedInventory()==null) { + return; + } + if(!event.getClickedInventory().equals(setting.guiInventory)) { + return; + } + + // We only get this far if the player has clicked inside his GUI inventory + event.setCancelled(true); + if(event.getClick() != ClickType.LEFT) { + return; + } + + if(event.getSlot() == JeffChestSortSettingsGUI.slotMiddleClick) { + setting.middleClick = !setting.middleClick; + plugin.settingsGUI.openGUI(p); + return; + } + else if(event.getSlot() == JeffChestSortSettingsGUI.slotShiftClick) { + setting.shiftClick = !setting.shiftClick; + plugin.settingsGUI.openGUI(p); + return; + } else if(event.getSlot() == JeffChestSortSettingsGUI.slotDoubleClick) { + setting.doubleClick = !setting.doubleClick; + plugin.settingsGUI.openGUI(p); + return; + } else if(event.getSlot() == JeffChestSortSettingsGUI.slotShiftRightClick) { + setting.shiftRightClick = !setting.shiftRightClick; + plugin.settingsGUI.openGUI(p); + return; + } + + } } diff --git a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortMessages.java b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortMessages.java index cf7fe43..98ff629 100644 --- a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortMessages.java +++ b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortMessages.java @@ -15,6 +15,10 @@ public class JeffChestSortMessages { final String MSG_ACTIVATED, MSG_DEACTIVATED, MSG_COMMANDMESSAGE, MSG_COMMANDMESSAGE2, MSG_PLAYERSONLY, MSG_PLAYERINVSORTED, MSG_INVALIDOPTIONS; + + final String MSG_GUI_ENABLED, MSG_GUI_DISABLED; + + final String MSG_GUI_MIDDLECLICK, MSG_GUI_SHIFTCLICK, MSG_GUI_DOUBLECLICK, MSG_GUI_SHIFTRIGHTCLICK; JeffChestSortMessages(JeffChestSortPlugin plugin) { this.plugin = plugin; @@ -39,6 +43,26 @@ public class JeffChestSortMessages { MSG_INVALIDOPTIONS = ChatColor.translateAlternateColorCodes('&', plugin.getConfig() .getString("message-error-invalid-options", "&cError: Unknown option %s. Valid options are %s.")); + + MSG_GUI_ENABLED = ChatColor.translateAlternateColorCodes('&', plugin.getConfig() + .getString("message-gui-enabled","&aEnabled")); + + MSG_GUI_DISABLED = ChatColor.translateAlternateColorCodes('&', plugin.getConfig() + .getString("message-gui-disabled","&cDisabled")); + + MSG_GUI_MIDDLECLICK = ChatColor.translateAlternateColorCodes('&', plugin.getConfig() + .getString("message-gui-middle-click","Middle-Click")); + + MSG_GUI_SHIFTCLICK = ChatColor.translateAlternateColorCodes('&', plugin.getConfig() + .getString("message-gui-shift-click","Shift + Click")); + + MSG_GUI_DOUBLECLICK = ChatColor.translateAlternateColorCodes('&', plugin.getConfig() + .getString("message-gui-double-click","Double-Click")); + + MSG_GUI_SHIFTRIGHTCLICK = ChatColor.translateAlternateColorCodes('&', plugin.getConfig() + .getString("message-gui-shift-right-click","Shift + Right-Click")); + + //MSG_ERR_HOTKEYSDISABLED = ChatColor.RED + "[ChestSort] Hotkeys are only available for Minecraft 1.9 and later."; } } diff --git a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortPlayerSetting.java b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortPlayerSetting.java index 31817e5..efca1af 100644 --- a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortPlayerSetting.java +++ b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortPlayerSetting.java @@ -1,5 +1,7 @@ package de.jeffclan.JeffChestSort; +import org.bukkit.inventory.Inventory; + public class JeffChestSortPlayerSetting { // Represents the information regarding a player @@ -9,12 +11,21 @@ public class JeffChestSortPlayerSetting { // Sorting enabled for this player? boolean sortingEnabled; + + // Hotkey settings + boolean middleClick, shiftClick, doubleClick, shiftRightClick; + + Inventory guiInventory = null; // Did we already show the message how to activate sorting? boolean hasSeenMessage = false; - JeffChestSortPlayerSetting(boolean sortingEnabled) { + JeffChestSortPlayerSetting(boolean sortingEnabled, boolean middleClick, boolean shiftClick, boolean doubleClick, boolean shiftRightClick) { this.sortingEnabled = sortingEnabled; + this.middleClick = middleClick; + this.shiftClick = shiftClick; + this.doubleClick = doubleClick; + this.shiftRightClick = shiftRightClick; } } diff --git a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortPlugin.java b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortPlugin.java index 229f563..4faf59d 100644 --- a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortPlugin.java +++ b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortPlugin.java @@ -65,18 +65,27 @@ public class JeffChestSortPlugin extends JavaPlugin { JeffChestSortOrganizer organizer; JeffChestSortUpdateChecker updateChecker; JeffChestSortListener listener; + JeffChestSortSettingsGUI settingsGUI; String sortingMethod; ArrayList disabledWorlds; - int currentConfigVersion = 17; + int currentConfigVersion = 18; boolean usingMatchingConfig = true; boolean debug = false; boolean verbose = true; + boolean hotkeyGUI = true; public boolean hookCrackShot = false; public boolean hookInventoryPages = false; private long updateCheckInterval = 86400; // in seconds. We check on startup and every 24 hours (if you never // restart your server) + + String mcVersion; // 1.13.2 = 1_13_R2 + // 1.14.4 = 1_14_R1 + // 1.8.0 = 1_8_R1 + int mcMinorVersion; // 14 for 1.14, 13 for 1.13, ... + + // Public API method to sort any given inventory public void sortInventory(Inventory inv) { @@ -219,6 +228,18 @@ public class JeffChestSortPlugin extends JavaPlugin { @Override public void onEnable() { + + String tmpVersion = getServer().getClass().getPackage().getName(); + mcVersion = tmpVersion.substring(tmpVersion.lastIndexOf('.') + 1); + tmpVersion = mcVersion.substring(mcVersion.indexOf("_")+1); + mcMinorVersion = Integer.parseInt(tmpVersion.substring(0,tmpVersion.indexOf("_"))); + + //getLogger().info("Running MC version 1."+mcMinorVersion); +// if(mcMinorVersion < 9) { +// getLogger().info("You are running a Minecraft version below 1.9. Hotkey GUI will be disabled."); +// hotkeyGUI = false; +// } + // Create the config file, including checks for old config versions, and load // the default values for unset options createConfig(); @@ -249,6 +270,8 @@ public class JeffChestSortPlugin extends JavaPlugin { // Organizer will load all category files and will be ready to sort stuff organizer = new JeffChestSortOrganizer(this); + + settingsGUI = new JeffChestSortSettingsGUI(this); // UpdateChecker will check on startup and every 24 hours for new updates (when // enabled) @@ -486,6 +509,10 @@ public class JeffChestSortPlugin extends JavaPlugin { YamlConfiguration playerConfig = YamlConfiguration.loadConfiguration(playerFile); playerConfig.set("sortingEnabled", setting.sortingEnabled); playerConfig.set("hasSeenMessage", setting.hasSeenMessage); + playerConfig.set("middleClick",setting.middleClick); + playerConfig.set("shiftClick",setting.shiftClick); + playerConfig.set("doubleClick",setting.doubleClick); + playerConfig.set("shiftRightClick",setting.shiftRightClick); try { playerConfig.save(playerFile); } catch (IOException e) { diff --git a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortSettingsGUI.java b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortSettingsGUI.java new file mode 100644 index 0000000..487eeb7 --- /dev/null +++ b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortSettingsGUI.java @@ -0,0 +1,104 @@ +package de.jeffclan.JeffChestSort; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +public class JeffChestSortSettingsGUI { + + JeffChestSortPlugin plugin; + + public static int slotMiddleClick = 1 + 9; + public static int slotShiftClick = 3 + 9; + public static int slotDoubleClick = 5 + 9; + public static int slotShiftRightClick = 7 + 9; + + final static Material red = Material.REDSTONE_BLOCK; + final static Material green = Material.EMERALD_BLOCK; + + enum Hotkey { + MiddleClick, ShiftClick, DoubleClick, ShiftRightClick; + } + + JeffChestSortSettingsGUI(JeffChestSortPlugin plugin) { + this.plugin=plugin; + } + + ItemStack getItem(boolean active, Hotkey hotkey) { + ItemStack is = null; + String suffix; + //Material green = Material.getMaterial("GREEN_WOOL"); + //Material red = Material.getMaterial("RED_WOOL"); + //Material green = Material.GREEN_WOOL; + //Material red = Material.RED_WOOL; + +// if(green==null || red==null) { +// //plugin.getLogger().warning("Using unsupported Minecraft version"); +// green = Material.EMERALD_BLOCK; +// red = Material.REDSTONE_BLOCK; +// //return null; +// } + + if(active) { + is = new ItemStack(green); + suffix = plugin.messages.MSG_GUI_ENABLED; + } + else { + is = new ItemStack(red); + suffix = plugin.messages.MSG_GUI_DISABLED; + } + + ItemMeta meta = is.getItemMeta(); + + switch(hotkey) { + case MiddleClick: + meta.setDisplayName(ChatColor.RESET + plugin.messages.MSG_GUI_MIDDLECLICK + ": " + suffix); + break; + case ShiftClick: + meta.setDisplayName(ChatColor.RESET + plugin.messages.MSG_GUI_SHIFTCLICK + ": " + suffix); + break; + case DoubleClick: + meta.setDisplayName(ChatColor.RESET + plugin.messages.MSG_GUI_DOUBLECLICK + ": " + suffix); + break; + case ShiftRightClick: + meta.setDisplayName(ChatColor.RESET + plugin.messages.MSG_GUI_SHIFTRIGHTCLICK + ": " + suffix); + break; + default: + break; + } + + is.setItemMeta(meta); + + return is; + } + + void openGUI(Player player) { + Inventory inventory = createGUI("ChestSort", player); + + JeffChestSortPlayerSetting setting = plugin.PerPlayerSettings.get(player.getUniqueId().toString()); + + // Test if running 1.13 or later +// if(Material.getMaterial("GREEN_WOOL") == null) { +// player.sendMessage(plugin.messages.MSG_ERR_HOTKEYSDISABLED); +// return; +// } + + inventory.setItem(slotMiddleClick, getItem(setting.middleClick,Hotkey.MiddleClick)); + inventory.setItem(slotShiftClick, getItem(setting.shiftClick,Hotkey.ShiftClick)); + inventory.setItem(slotDoubleClick, getItem(setting.doubleClick,Hotkey.DoubleClick)); + inventory.setItem(slotShiftRightClick, getItem(setting.shiftRightClick,Hotkey.ShiftRightClick)); + + setting.guiInventory = inventory; + player.openInventory(inventory); + } + + Inventory createGUI(String name, Player inventoryHolder) { + Inventory inventory = Bukkit.createInventory(inventoryHolder, InventoryType.CHEST, name); + return inventory; + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index c3f7abe..da90694 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -71,6 +71,7 @@ allow-hotkeys: true # You can disable/enable certain hotkeys when you have allow-hotkeys enabled. # Hotkeys that could interfere with Minecraft's normal behaviour (e.g. # shift+left-click) only work on empty slots, so don't worry about them. +# Players can also enable/disable all shortcuts individually via /chestsort settings hotkeys: # Use middle click (mousewheel) on ANY inventory slot as hotkey middle-click: true @@ -199,6 +200,12 @@ message-sorting-enabled: "&7Automatic chest sorting has been &aenabled&7." message-player-inventory-sorted: "&7Your inventory has been sorted." message-error-players-only: "&cError: This command can only be run by players." message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s." +message-gui-enabled: "&aEnabled" +message-gui-disabled: "&cDisabled" +message-gui-middle-click: "Middle-Click" +message-gui-shift-click: "Shift + Click" +message-gui-double-click: "Double-Click" +message-gui-shift-right-click: "Shift + Right-Click" ##### English #message-when-using-chest: "&7Hint: Type &6/chestsort&7 to enable automatic chest sorting." @@ -208,8 +215,15 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s #message-player-inventory-sorted: "&7Your inventory has been sorted." #message-error-players-only: "&cError: This command can only be run by players." #message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s." +#message-gui-enabled: "&aEnabled" +#message-gui-disabled: "&cDisabled" +#message-gui-middle-click: "Middle-Click" +#message-gui-shift-click: "Shift + Click" +#message-gui-double-click: "Double-Click" +#message-gui-shift-right-click: "Shift + Right-Click" ##### Chinese - Thanks to qsefthuopq for translating! -> https://www.spigotmc.org/members/qsefthuopq.339953/ +##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC #message-when-using-chest: "&7提示: 输入 &6/chestsort&7 来启用自动整理箱子." #message-when-using-chest2: "&7提示: 输入 &6/chestsort&7 来关闭自动整理箱子." #message-sorting-disabled: "&7自动整理箱子已 &c关闭&7." @@ -217,9 +231,15 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s #message-player-inventory-sorted: "&7已成功整理你的背包." #message-error-players-only: "&c错误: 指令只能由玩家运行." #message-error-invalid-options: "&c错误: 位置选项 %s. 有效选项为 %s." +#message-gui-enabled: "&aEnabled" +#message-gui-disabled: "&cDisabled" +#message-gui-middle-click: "Middle-Click" +#message-gui-shift-click: "Shift + Click" +#message-gui-double-click: "Double-Click" +#message-gui-shift-right-click: "Shift + Right-Click" ##### Chinese (Traditional) 繁體中文 -##### Note: the last two messages are still untranslated. Please send me your translation at SpigotMC +##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC #message-when-using-chest: "&7小提醒: 輸入 &6/chestsort&7 來開啟自動整理箱子" #message-when-using-chest2: "&7小提醒: 輸入 &6/chestsort&7 來關閉自動整理箱子" #message-sorting-disabled: "&7自動整理箱子已 &c關閉&7" @@ -227,8 +247,15 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s #message-player-inventory-sorted: "&7你的背包已成功整理." #message-error-players-only: "&c錯誤: 這個指令只能由玩家使用" #message-error-invalid-options: "&c錯誤: 未知選項 %s. 有效的選項為 %s." +#message-gui-enabled: "&aEnabled" +#message-gui-disabled: "&cDisabled" +#message-gui-middle-click: "Middle-Click" +#message-gui-shift-click: "Shift + Click" +#message-gui-double-click: "Double-Click" +#message-gui-shift-right-click: "Shift + Right-Click" ##### Dutch - Thanks to Xeyame for translating! -> https://github.com/Xeyame +##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC #message-when-using-chest: "&7Hint: Gebruik &6/chestsort&7 om automatische kist sortering aan te zetten." #message-when-using-chest2: "&7Hint: Gebruik &6/chestsort&7 om automatische kist sortering uit te zetten." #message-sorting-disabled: "&7Automatische kist sortering is &cuitgeschakeld&7." @@ -236,9 +263,15 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s #message-player-inventory-sorted: "&7Je inventaris is gesorteerd." #message-error-players-only: "&cFout: Dit commando kan alleen door spelers worden gebruikt." #message-error-invalid-options: "&cFout: Onbekende optie %s. Mogelijke opties zijn %s." +#message-gui-enabled: "&aEnabled" +#message-gui-disabled: "&cDisabled" +#message-gui-middle-click: "Middle-Click" +#message-gui-shift-click: "Shift + Click" +#message-gui-double-click: "Double-Click" +#message-gui-shift-right-click: "Shift + Right-Click" ##### French - Thanks to automatizer for translating! -> https://www.spigotmc.org/members/automatizer.26188/ -##### Note: the last two messages are still untranslated. Please send me your translation at SpigotMC +##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC #message-when-using-chest: "&7Astuce: Écris &6/chestsort&7 pour activer le classement automatique." #message-when-using-chest2: "&7Astuce: Écris &6/chestsort&7 pour désactiver le classement automatique." #message-sorting-disabled: "&7Le classement automatique a été &cdésactivé&7." @@ -246,6 +279,12 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s #message-player-inventory-sorted: "&7Your inventory has been sorted." #message-error-players-only: "&cErreur: Cette commande ne peut être utilisée que par des joueurs." #message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s." +#message-gui-enabled: "&aEnabled" +#message-gui-disabled: "&cDisabled" +#message-gui-middle-click: "Middle-Click" +#message-gui-shift-click: "Shift + Click" +#message-gui-double-click: "Double-Click" +#message-gui-shift-right-click: "Shift + Right-Click" ##### German #message-when-using-chest: "&7Hinweis: Benutze &6/chestsort&7 um die automatische Kistensortierung zu aktivieren." @@ -255,8 +294,15 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s #message-player-inventory-sorted: "&7Dein Inventar wurde sortiert." #message-error-players-only: "&cFehler: Dieser Befehl ist nur für Spieler verfügbar." #message-error-invalid-options: "&cFehler: Unbekannte Option %s. Gültige Optionen sind %s." +#message-gui-enabled: "&aAktiviert" +#message-gui-disabled: "&cDeaktiviert" +#message-gui-middle-click: "Mittel-Klick" +#message-gui-shift-click: "Shift + Klick" +#message-gui-double-click: "Doppelklick" +#message-gui-shift-right-click: "Shift + Rechtsklick" -##### Italian - Translated with Google. Please tell me if something is wrong :) +##### Italian +##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC #message-when-using-chest: "&7Nota: inserire &6/chestsort&7 per abilitare l'ordinamento automatico dei bauli." #message-when-using-chest2: "&7Nota: inserire &6/chestsort&7 per disabilitare l'ordinamento automatico dei bauli." #message-sorting-disabled: "&7L'ordinamento automatico dei bauli è stato &cdisattivato&7." @@ -264,9 +310,15 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s #message-player-inventory-sorted: "&7Il tuo inventario è stato ordinato." #message-error-players-only: "&cErrore: questo comando è disponibile solo per i giocatori." #message-error-invalid-options: "&cErrore: Parametro sconosciuto %s. I parametri validi sono %s." +#message-gui-enabled: "&aEnabled" +#message-gui-disabled: "&cDisabled" +#message-gui-middle-click: "Middle-Click" +#message-gui-shift-click: "Shift + Click" +#message-gui-double-click: "Double-Click" +#message-gui-shift-right-click: "Shift + Right-Click" ##### Japanese -##### Note: the last two messages are still untranslated. Please send me your translation at SpigotMC +##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC #message-when-using-chest: "&7ヒント: &6/chestsort&7 と入力して自動チェスト整理を有効にできます。" #message-when-using-chest2: "&7ヒント: &6/chestsort&7 と入力すると自動チェスト整理を無効にできます。" #message-sorting-disabled: "&7自動チェスト整理は現在 &cOFF&7です。" @@ -274,9 +326,15 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s #message-error-players-only: "&cエラー: このコマンドはプレイヤーのみ実行できます。" #message-player-inventory-sorted: "&7Your inventory has been sorted." #message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s." +#message-gui-enabled: "&aEnabled" +#message-gui-disabled: "&cDisabled" +#message-gui-middle-click: "Middle-Click" +#message-gui-shift-click: "Shift + Click" +#message-gui-double-click: "Double-Click" +#message-gui-shift-right-click: "Shift + Right-Click" ##### Portuguese - Thanks to wildastral for translating! -> https://www.spigotmc.org/members/wildastral.673147/ -##### Note: the last two messages are still untranslated. Please send me your translation at SpigotMC +##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC #message-when-using-chest: "&7Dica: Digite &6/chestsort&7 para habilitar a organização automática." #message-when-using-chest2: "&7Dica: Digite &6/chestsort&7 para desabilitar a organização automática." #message-sorting-disabled: "&7A Organização automática de baús foi &cdesabilitada&7." @@ -284,8 +342,15 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s #message-player-inventory-sorted: "&7Seu inventário foi organizado." #message-error-players-only: "&cErro: Esse comando não pode ser executado por jogadores." #message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s." +#message-gui-enabled: "&aEnabled" +#message-gui-disabled: "&cDisabled" +#message-gui-middle-click: "Middle-Click" +#message-gui-shift-click: "Shift + Click" +#message-gui-double-click: "Double-Click" +#message-gui-shift-right-click: "Shift + Right-Click" ##### Russian - Thanks to Gandon for translating! -> https://www.spigotmc.org/members/gandon.443887/ +##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC #message-when-using-chest: "&7Подсказка: введите &6/chestsort&7, чтобы включить автоматическую сортировку вещей в сундуках." #message-when-using-chest2: "&7Подсказка: введите &6/chestsort&7, чтобы отключить автоматическую сортировку вещей в сундуках." #message-sorting-disabled: "&7Автоматическая сортировка вещей в сундуках была &cотключена&7." @@ -293,8 +358,15 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s #message-player-inventory-sorted: "&7Ваш инвентарь был отсортирован." #message-error-players-only: "&cОшибка: эта команда может быть использована только игроками." #message-error-invalid-options: "&cОшибка: Неизвестная опция %s. Допустимые опции: %s." +#message-gui-enabled: "&aEnabled" +#message-gui-disabled: "&cDisabled" +#message-gui-middle-click: "Middle-Click" +#message-gui-shift-click: "Shift + Click" +#message-gui-double-click: "Double-Click" +#message-gui-shift-right-click: "Shift + Right-Click" ##### Spanish - Thanks to Bers_ for translating! -> https://www.spigotmc.org/members/bers_.146126/ +##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC #message-when-using-chest: "&7Pista: Usa &6/chestsort&7 para activar el orden automático de los cofres." #message-when-using-chest2: "&7Pista: Usa &6/chestsort&7 para desactivar el orden automático de los cofres." #message-sorting-disabled: "&7Orden automático de los cofres &cdesactivado&7." @@ -302,8 +374,15 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s #message-player-inventory-sorted: "&7Tu inventario ha sido ordenado." #message-error-players-only: "&cError: Este comando solo puede ser ejecutado por jugadores." #message-error-invalid-options: "&cError: %s es una opción inválida. Las opciones válidas son: %s." +#message-gui-enabled: "&aEnabled" +#message-gui-disabled: "&cDisabled" +#message-gui-middle-click: "Middle-Click" +#message-gui-shift-click: "Shift + Click" +#message-gui-double-click: "Double-Click" +#message-gui-shift-right-click: "Shift + Right-Click" ##### Turkish - Thanks to bertek41 for translating!-> https://www.spigotmc.org/members/bertek41.247705/ +##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC #message-when-using-chest: "&7Ipucu: &6/chestsort&7 Yazarak Otomatik Sandık Organizasyon Sistemini Aktif Edebilirsin." #message-when-using-chest2: "&7Ipucu: &6/chestsort&7 Yazarak Otomatik Sandık Organizasyon Sistemini Kapatabilirsin." #message-sorting-disabled: "&7Otomatik Sandık Organizasyonu &cKapatıldı&7." @@ -311,10 +390,16 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s #message-player-inventory-sorted: "&7Envanteriniz Düzenlendi." #message-error-players-only: "&cHata: Bu Komut Yalnızca Oyuncular Tarafından Kullanılabilir." #message-error-invalid-options: "&cHata: Bilinmeyen Ayar %s." +#message-gui-enabled: "&aEnabled" +#message-gui-disabled: "&cDisabled" +#message-gui-middle-click: "Middle-Click" +#message-gui-shift-click: "Shift + Click" +#message-gui-double-click: "Double-Click" +#message-gui-shift-right-click: "Shift + Right-Click" ######################### ##### Done! ##### ######################### # please do not change the following line manually! -config-version: 17 +config-version: 18 diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 0887ad2..2668ec6 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ main: de.jeffclan.JeffChestSort.JeffChestSortPlugin name: ChestSort -version: 6.4.5 +version: 7.0 api-version: 1.13 description: Allows automatic chest sorting author: mfnalex @@ -11,7 +11,7 @@ loadbefore: [InvUnload] softdepend: [CrackShot, InventoryPages] commands: chestsort: - description: Toggle automatic chest sorting + description: Toggle automatic chest sorting. usage: / aliases: sort permission: chestsort.use