9.6.0 release

This commit is contained in:
mfnalex 2021-04-15 19:27:56 +02:00
parent 04eaebc552
commit 49c70243f8
9 changed files with 199 additions and 24 deletions

View File

@ -1,5 +1,12 @@
# Changelog
## 9.6.0
- Added hotkey to sort chests/barrels etc. by shiftclicking them
- Can be configured per player using "/sort hotkeys"
- By default it's allowed but disabled
- Added command "/chestsortadmin reset <player>" to reset hotkey settings for specific players
- Old YML PlayerData is automatically converted to the new NBT storage
## 9.5.2
- PlayerData is stored as NBT data instead of using separate files in 1.14.4 and later

View File

@ -0,0 +1,80 @@
package de.jeff_media.ChestSort;
import de.jeff_media.jefflib.NBTAPI;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class ChestSortAdminCommand implements CommandExecutor {
private final ChestSortPlugin plugin;
public ChestSortAdminCommand(ChestSortPlugin plugin) {
this.plugin = plugin;
}
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) {
if(!sender.hasPermission("chestsort.admin")) {
sender.sendMessage(command.getPermissionMessage());
return true;
}
if(args.length==0) {
sender.sendMessage(new String[] {
"Available admin commands:",
"reset <player> -- Resets a player's hotkey settings"
});
return true;
}
switch(args[0].toLowerCase()) {
case "reset":
reset(sender, args);
break;
default:
sender.sendMessage("Unknown command: "+args[0]);
break;
}
return true;
}
private void reset(CommandSender sender, String[] args) {
if(args.length!=2) {
sender.sendMessage("Usage: /chestsortadmin reset <player>");
return;
}
Player player = Bukkit.getPlayer(args[1]);
if(player == null) {
sender.sendMessage("Could not find player "+args[1]);
return;
}
plugin.unregisterPlayer(player);
String[] tags = new String[] {
"sortingEnabled",
"invSortingEnabled",
"leftClick",
"rightClick",
"shiftClick",
"doubleClick",
"middleClick",
"shiftRightClick",
"leftClickOutside",
"hasSeenMessage"
};
for(String nbtTag : tags) {
NBTAPI.removeNBT(player,nbtTag);
}
sender.sendMessage("Reset hotkey settings for player "+player.getName());
}
}

View File

@ -2,25 +2,30 @@ package de.jeff_media.ChestSort;
import de.jeff_media.ChestSort.hooks.*;
import de.jeff_media.ChestSort.utils.LlamaUtils;
import de.jeff_media.ChestSortAPI.ChestSortAPI;
import de.jeff_media.ChestSortAPI.ChestSortEvent;
import de.jeff_media.ChestSortAPI.ISortable;
import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.block.Chest;
import org.bukkit.block.DoubleChest;
import org.bukkit.block.*;
import org.bukkit.entity.ChestedHorse;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.inventory.InventoryOpenEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.inventory.InventoryType.SlotType;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
@ -44,6 +49,23 @@ public class ChestSortListener implements Listener {
this.goldenCratesHook = new GoldenCratesHook(plugin);
}
@EventHandler
public void onLeftClickChest(PlayerInteractEvent event) {
if(!event.getPlayer().hasPermission("chestsort.use")) return;
if(event.getHand() != EquipmentSlot.HAND) return;
if(event.getAction() != Action.LEFT_CLICK_BLOCK) return;
if(!plugin.getConfig().getBoolean("allow-left-click-to-sort")) return;
Block clickedBlock = event.getClickedBlock();
if(!(clickedBlock.getState() instanceof Container)) return;
plugin.registerPlayerIfNeeded(event.getPlayer());
ChestSortPlayerSetting playerSetting = plugin.getPlayerSetting(event.getPlayer());
if(!playerSetting.leftClickOutside) return;
Container containerState = (Container) clickedBlock.getState();
Inventory inventory = containerState.getInventory();
plugin.getAPI().sortInventory(inventory);
event.getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(plugin.messages.MSG_CONTAINER_SORTED));
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
@ -403,7 +425,6 @@ public class ChestSortListener implements Listener {
if (!isAPICall && (event.getClickedInventory().getHolder() != null
&& event.getClickedInventory().getHolder() == p
&& event.getClickedInventory() != p.getInventory())) {
if(plugin.debug) System.out.println("10");
return;
}

View File

@ -3,8 +3,9 @@ package de.jeff_media.ChestSort;
import org.bukkit.ChatColor;
public class ChestSortMessages {
final String MSG_GUI_LEFTCLICKOUTSIDE, MSG_CONTAINER_SORTED;
// Messages can be customized in the config.yml
// Messages can be customized in the config.yml
// To avoid problems with missing messages in the config, the default messages
// are
// hardcoded.
@ -25,6 +26,9 @@ public class ChestSortMessages {
ChestSortMessages(ChestSortPlugin plugin) {
this.plugin = plugin;
MSG_CONTAINER_SORTED = ChatColor.translateAlternateColorCodes('&', plugin.getConfig()
.getString("message-container-sorted","&aContainer sorted!"));
MSG_ACTIVATED = ChatColor.translateAlternateColorCodes('&', plugin.getConfig()
.getString("message-sorting-enabled", "&7Automatic chest sorting has been &aenabled&7.&r"));
@ -66,6 +70,9 @@ public class ChestSortMessages {
MSG_GUI_DOUBLECLICK = ChatColor.translateAlternateColorCodes('&', plugin.getConfig()
.getString("message-gui-double-click","Double-Click"));
MSG_GUI_LEFTCLICKOUTSIDE = ChatColor.translateAlternateColorCodes('&', plugin.getConfig()
.getString("message-gui-left-click-outside", "Left-Click"));
MSG_GUI_SHIFTRIGHTCLICK = ChatColor.translateAlternateColorCodes('&', plugin.getConfig()
.getString("message-gui-shift-right-click","Shift + Right-Click"));

View File

@ -17,7 +17,7 @@ public class ChestSortPlayerSetting {
public boolean invSortingEnabled;
// Hotkey settings
boolean middleClick, shiftClick, doubleClick, shiftRightClick, leftClick, rightClick;
boolean middleClick, shiftClick, doubleClick, shiftRightClick, leftClick, rightClick, leftClickOutside;
Inventory guiInventory = null;
@ -33,7 +33,7 @@ public class ChestSortPlayerSetting {
NONE, RIGHT_CLICK, LEFT_CLICK
}
ChestSortPlayerSetting(boolean sortingEnabled, boolean invSortingEnabled, boolean middleClick, boolean shiftClick, boolean doubleClick, boolean shiftRightClick, boolean leftClick, boolean rightClick, boolean changed) {
ChestSortPlayerSetting(boolean sortingEnabled, boolean invSortingEnabled, boolean middleClick, boolean shiftClick, boolean doubleClick, boolean shiftRightClick, boolean leftClick, boolean rightClick, boolean leftCLickOutside, boolean changed) {
this.sortingEnabled = sortingEnabled;
this.middleClick = middleClick;
this.shiftClick = shiftClick;
@ -42,6 +42,7 @@ public class ChestSortPlayerSetting {
this.invSortingEnabled = invSortingEnabled;
this.leftClick = leftClick;
this.rightClick = rightClick;
this.leftClickOutside = leftCLickOutside;
this.changed = changed;
}
@ -75,6 +76,10 @@ public class ChestSortPlayerSetting {
shiftRightClick = !shiftRightClick;
changed = true;
}
void toggleLeftClickOutside() {
leftClickOutside = !leftClickOutside;
changed = true;
}
void toggleLeftClick() {
leftClick = !leftClick;
changed = true;

View File

@ -285,6 +285,7 @@ public class ChestSortPlugin extends JavaPlugin implements de.jeff_media.ChestSo
ChestSortInvSortCommand invsortCommandExecutor = new ChestSortInvSortCommand(this);
this.getCommand("invsort").setExecutor(invsortCommandExecutor);
this.getCommand("invsort").setTabCompleter(tabCompleter);
this.getCommand("chestsortadmin").setExecutor(new ChestSortAdminCommand(this));
if (verbose) {
getLogger().info("Use permissions: " + getConfig().getBoolean("use-permissions"));
@ -431,6 +432,7 @@ public class ChestSortPlugin extends JavaPlugin implements de.jeff_media.ChestSo
p.getUniqueId().toString() + ".yml");
YamlConfiguration playerConfig = YamlConfiguration.loadConfiguration(playerFile);
playerConfig.addDefault("sortingEnabled", getConfig().getBoolean("sorting-enabled-by-default"));
playerConfig.addDefault("invSortingEnabled", getConfig().getBoolean("inv-sorting-enabled-by-default"));
playerConfig.addDefault("middleClick", getConfig().getBoolean("sorting-hotkeys.middle-click"));
playerConfig.addDefault("shiftClick", getConfig().getBoolean("sorting-hotkeys.shift-click"));
@ -438,6 +440,7 @@ public class ChestSortPlugin extends JavaPlugin implements de.jeff_media.ChestSo
playerConfig.addDefault("shiftRightClick", getConfig().getBoolean("sorting-hotkeys.shift-right-click"));
playerConfig.addDefault("leftClick", getConfig().getBoolean("additional-hotkeys.left-click"));
playerConfig.addDefault("rightClick", getConfig().getBoolean("additional-hotkeys.right-click"));
playerConfig.addDefault("leftClickOutside", getConfig().getBoolean("left-click-to-sort-enabled-by-default"));
boolean activeForThisPlayer;
boolean invActiveForThisPlayer;
@ -447,28 +450,34 @@ public class ChestSortPlugin extends JavaPlugin implements de.jeff_media.ChestSo
boolean shiftRightClick;
boolean leftClick;
boolean rightClick;
boolean changed = false;
boolean leftClickFromOutside;
boolean changed;
if (!playerFile.exists()) {
if (playerFile.exists() || VersionUtil.getServerBukkitVersion().isLowerThan(VersionUtil.v1_14_4_R01)) {
// If the player settings file does not exist for this player, set it to the
// default value
activeForThisPlayer = getConfig().getBoolean("sorting-enabled-by-default");
invActiveForThisPlayer = getConfig().getBoolean("inv-sorting-enabled-by-default");
middleClick = getConfig().getBoolean("sorting-hotkeys.middle-click");
shiftClick = getConfig().getBoolean("sorting-hotkeys.shift-click");
doubleClick = getConfig().getBoolean("sorting-hotkeys.double-click");
shiftRightClick = getConfig().getBoolean("sorting-hotkeys.shift-right-click");
leftClick = getConfig().getBoolean("additional-hotkeys.left-click");
rightClick = getConfig().getBoolean("additional-hotkeys.right-click");
activeForThisPlayer = playerConfig.getBoolean("sortingEnabled");
invActiveForThisPlayer = playerConfig.getBoolean("invSortingEnabled");
middleClick = playerConfig.getBoolean("middleClick");
shiftClick = playerConfig.getBoolean("shiftClick");
doubleClick = playerConfig.getBoolean("doubleClick");
shiftRightClick = playerConfig.getBoolean("shiftRightClick");
leftClickFromOutside = playerConfig.getBoolean("leftClickOutside");
leftClick = playerConfig.getBoolean("leftClick");
rightClick = playerConfig.getBoolean("rightClick");
if (debug) {
getLogger().info("Player " + p.getName() + " does not have player settings yet, using default values.");
}
// Because this is new a file, we have to save it on shutdown/disconnect
changed = true;
if(VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_14_4_R01)) {
if (playerFile.delete()) {
this.getLogger().info("Converted old .yml playerdata file to NBT tags for player " + p.getName());
} else {
this.getLogger().warning("Could not remove old playerdata .yml file for player " + p.getName());
}
}
} else {
// If the file exists, check if the player has sorting enabled
// NBT Values
activeForThisPlayer = Boolean.parseBoolean(NBTAPI.getNBT(p, "sortingEnabled", String.valueOf(playerConfig.getBoolean("sortingEnabled"))));
invActiveForThisPlayer = Boolean.parseBoolean(NBTAPI.getNBT(p, "invSortingEnabled", String.valueOf(playerConfig.getBoolean("invSortingEnabled", getConfig().getBoolean("inv-sorting-enabled-by-default")))));
middleClick = Boolean.parseBoolean(NBTAPI.getNBT(p, "middleClick", String.valueOf(playerConfig.getBoolean("middleClick"))));
@ -477,10 +486,12 @@ public class ChestSortPlugin extends JavaPlugin implements de.jeff_media.ChestSo
shiftRightClick = Boolean.parseBoolean(NBTAPI.getNBT(p, "shiftRightClick", String.valueOf(playerConfig.getBoolean("shiftRightClick"))));
leftClick = Boolean.parseBoolean(NBTAPI.getNBT(p, "leftClick", String.valueOf(playerConfig.getBoolean("leftClick", getConfig().getBoolean("additional-hotkeys.left-click")))));
rightClick = Boolean.parseBoolean(NBTAPI.getNBT(p, "rightClick", String.valueOf(playerConfig.getBoolean("rightClick", getConfig().getBoolean("additional-hotkeys.right-click")))));
playerFile.delete();
leftClickFromOutside = Boolean.parseBoolean(NBTAPI.getNBT(p, "leftClickOutside", String.valueOf(playerConfig.getBoolean("leftClickOutside", getConfig().getBoolean("left-click-to-sort-enabled-by-default")))));
changed = true;
}
ChestSortPlayerSetting newSettings = new ChestSortPlayerSetting(activeForThisPlayer, invActiveForThisPlayer, middleClick, shiftClick, doubleClick, shiftRightClick, leftClick, rightClick, changed);
ChestSortPlayerSetting newSettings = new ChestSortPlayerSetting(activeForThisPlayer, invActiveForThisPlayer, middleClick, shiftClick, doubleClick, shiftRightClick, leftClick, rightClick, leftClickFromOutside, changed);
// when "show-message-again-after-logout" is enabled, we don't care if the
// player already saw the message
@ -581,6 +592,8 @@ public class ChestSortPlugin extends JavaPlugin implements de.jeff_media.ChestSo
getConfig().addDefault("use-permissions", true);
getConfig().addDefault("allow-automatic-sorting", true);
getConfig().addDefault("allow-automatic-inventory-sorting", true);
getConfig().addDefault("allow-left-click-to-sort",true);
getConfig().addDefault("left-click-to-sort-enabled-by-default", false);
getConfig().addDefault("sorting-enabled-by-default", false);
getConfig().addDefault("inv-sorting-enabled-by-default", false);
getConfig().addDefault("show-message-when-using-chest", true);
@ -683,6 +696,7 @@ public class ChestSortPlugin extends JavaPlugin implements de.jeff_media.ChestSo
NBTAPI.addNBT(p, "shiftRightClick", String.valueOf(setting.shiftRightClick));
NBTAPI.addNBT(p, "leftClick", String.valueOf(setting.leftClick));
NBTAPI.addNBT(p, "rightClick", String.valueOf(setting.rightClick));
NBTAPI.addNBT(p, "leftClickOutside", String.valueOf(setting.leftClickOutside));
} else {
File playerFile = new File(getDataFolder() + File.separator + "playerdata",
@ -697,6 +711,7 @@ public class ChestSortPlugin extends JavaPlugin implements de.jeff_media.ChestSo
playerConfig.set("shiftRightClick", setting.shiftRightClick);
playerConfig.set("leftClick", setting.leftClick);
playerConfig.set("rightClick", setting.rightClick);
playerConfig.set("leftClickOutside", setting.leftClickOutside);
try {
// Only saved if the config has been changed
if (setting.changed) {

View File

@ -21,6 +21,7 @@ public class ChestSortSettingsGUI implements Listener {
public static final int slotShiftClick = 3 ;
public static final int slotDoubleClick = 5 ;
public static final int slotShiftRightClick = 7 ;
public static final int slotLeftClickFromOutside = 4 + 9;
public static final int slotLeftClick = 2+18;
public static final int slotRightClick = 6+18;
@ -28,7 +29,7 @@ public class ChestSortSettingsGUI implements Listener {
final static Material green = Material.EMERALD_BLOCK;
enum Hotkey {
MiddleClick, ShiftClick, DoubleClick, ShiftRightClick, LeftClick, RightClick
MiddleClick, ShiftClick, DoubleClick, ShiftRightClick, LeftClick, RightClick, LeftClickOutside
}
ChestSortSettingsGUI(ChestSortPlugin plugin) {
@ -63,6 +64,9 @@ public class ChestSortSettingsGUI implements Listener {
case ShiftRightClick:
meta.setDisplayName(ChatColor.RESET + plugin.messages.MSG_GUI_SHIFTRIGHTCLICK + ": " + suffix);
break;
case LeftClickOutside:
meta.setDisplayName(ChatColor.RESET + plugin.messages.MSG_GUI_LEFTCLICKOUTSIDE + ": " + suffix);
break;
case LeftClick:
meta.setDisplayName(ChatColor.RESET + plugin.messages.MSG_GUI_LEFTCLICK + ": "+ suffix);
break;
@ -89,6 +93,9 @@ public class ChestSortSettingsGUI implements Listener {
inventory.setItem(slotDoubleClick, getItem(setting.doubleClick, Hotkey.DoubleClick));
inventory.setItem(slotShiftRightClick, getItem(setting.shiftRightClick, Hotkey.ShiftRightClick));
}
if(plugin.getConfig().getBoolean("allow-left-click-to-sort")) {
inventory.setItem(slotLeftClickFromOutside, getItem(setting.leftClickOutside, Hotkey.LeftClickOutside));
}
if(plugin.getConfig().getBoolean("allow-additional-hotkeys")) {
inventory.setItem(slotLeftClick, getItem(setting.leftClick,Hotkey.LeftClick));
inventory.setItem(slotRightClick, getItem(setting.rightClick,Hotkey.RightClick));
@ -146,6 +153,9 @@ public class ChestSortSettingsGUI implements Listener {
} else if(event.getSlot() == ChestSortSettingsGUI.slotDoubleClick) {
setting.toggleDoubleClick();
plugin.settingsGUI.openGUI(p);
} else if(event.getSlot() == ChestSortSettingsGUI.slotLeftClickFromOutside) {
setting.toggleLeftClickOutside();
plugin.settingsGUI.openGUI(p);
} else if(event.getSlot() == ChestSortSettingsGUI.slotShiftRightClick) {
setting.toggleShiftRightClick();
plugin.settingsGUI.openGUI(p);

View File

@ -149,6 +149,13 @@ sorting-hotkeys:
# sorting mechanism
hotkey-cooldown: 0.2
# When enabled, players can leftclick on chests, barrels etc.
# to sort them without having to open them.
allow-left-click-to-sort: true
# When set to true, sorting a chest by left-clicking it is enabled by default
left-click-to-sort-enabled-by-default: false
# Additionally to sorting hotkeys, you can quickly unload your inventory into a chest and vice versa
# using left-click or right-click outside of a chest's inventory.
# A single click will only affect matching items (items that are already present in the other inventory)
@ -337,6 +344,7 @@ message-inv-sorting-enabled: "&7Automatic inventory 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-hotbar-container-sorted: "&aContainer sorted!"
message-gui-enabled: "&aEnabled"
message-gui-disabled: "&cDisabled"
message-gui-middle-click: "Middle-Click"
@ -345,6 +353,7 @@ message-gui-double-click: "Double-Click"
message-gui-shift-right-click: "Shift + Right-Click"
message-gui-left-click: "Fill Chest (Left-Click/Double-Left-Click)"
message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
message-gui-left-click-outside: "Left-Click from outside"
##### English
#message-when-using-chest: "&7Hint: Type &6/chestsort&7 to enable automatic chest sorting."
@ -364,6 +373,8 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Shift + Right-Click"
#message-gui-left-click: "Fill Chest (Left-Click/Double-Left-Click)"
#message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Chinese - Thanks to qsefthuopq, Aira-Sakuranomiya and BackWheel for translating!
#message-when-using-chest: "&7提示: 输入 &6/chestsort&7 来启用自动整理箱子."
@ -383,6 +394,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Shift + 右键"
#message-gui-left-click: "填充箱子 (左键/双击左键)"
#message-gui-right-click: "清空箱子 (右键/双击右键)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Chinese (Traditional) 繁體中文 - Thanks to Command1264 for translating!
#message-when-using-chest: "&7小提醒: 輸入 &6/chestsort&7 來開啟自動整理箱子"
@ -402,6 +414,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Shift + 右鍵"
#message-gui-left-click: "填滿箱子 (左鍵/雙擊左鍵)"
#message-gui-right-click: "清空箱子 (右鍵/雙擊右鍵)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Dutch - Thanks to Xeyame for translating!
##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC
@ -422,6 +435,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Shift + Right-Click"
#message-gui-left-click: "Fill Chest (Left-Click/Double-Left-Click)"
#message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-left-click-outside: "Left-Click from outside"
##### French / Français - Thanks to automatizer, demon57730, FichdlMaa and Stalk3r77 for translating!
# Note: The following messages have been changed in version 8.11 and need a new translation:
@ -444,6 +458,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Shift + Clic droit"
#message-gui-left-click: "Remplir le coffre (Clic-gauche)"
#message-gui-right-click: "Vider le coffre (Clic-droit)"
#message-gui-left-click-outside: "Left-Click from outside"
##### German
#message-when-using-chest: "&7Hinweis: Benutze &6/chestsort&7 um die automatische Kistensortierung zu aktivieren."
@ -463,6 +478,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Shift + Rechtsklick"
#message-gui-left-click: "Kiste füllen (Linksklick/doppelter Linksklick)"
#message-gui-right-click: "Kiste leeren (Rechtsklick/doppelter Rechtsklick)"
#message-gui-left-click-outside: "Linksklick von außen"
##### Hungarian - Thanks to Letter and Polaroli for translating!
# Note: The following messages have been changed in version 8.11 and need a new translation:
@ -485,6 +501,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Shift + Jobb klikk"
#message-gui-left-click: "Láda feltöltés (Bal klikk)"
#message-gui-right-click: "Láda ürítés (Jobb klikk)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Italian
##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC
@ -505,6 +522,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Shift + Right-Click"
#message-gui-left-click: "Fill Chest (Left-Click/Double-Left-Click)"
#message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Japanese - Thanks to Sefyy for translating!
# Note: The following messages have been changed in version 8.11 and need a new translation:
@ -527,6 +545,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "シフト+右クリック"
#message-gui-left-click: "チェストを埋める(左クリック)"
#message-gui-right-click: "チェストを空ける(右クリック)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Korean (한국어) - Thanks to kf12 for translating!
##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC
@ -547,6 +566,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "쉬프트 + 우클릭"
#message-gui-left-click: "Fill Chest (Left-Click/Double-Left-Click)"
#message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Polish - Thanks to PLKaratusPL for translating!
#message-when-using-chest: "&7Wskazówka: Wpisz &6/chestsort&7 by włączyć automatyczne sortowanie skrzyń."
@ -566,6 +586,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Shift + PPM"
#message-gui-left-click: "Wypełnienie Skrzyni (LPM/Podwójny LPM)"
#message-gui-right-click: "Opróżnienie Skrzyni (PPM/Podwójny PPM)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Portuguese - Thanks to wildastral for translating!
##### Note: Some messages are still untranslated. Please send me your translation at SpigotMC
@ -586,6 +607,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Shift + Right-Click"
#message-gui-left-click: "Fill Chest (Left-Click/Double-Left-Click)"
#message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Russian
#message-when-using-chest: "&7Подсказка: введите &6/chestsort&7, чтобы включить автоматическую сортировку вещей в сундуках."
@ -605,6 +627,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Shift + Правый клик"
#message-gui-left-click: "Заполнить сундук (ЛКМ/Двойной ЛКМ)"
#message-gui-right-click: "Освободить сундук (ПКМ/Двойной ПКМ)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Spanish
#message-when-using-chest: "&7Sugerencia: Escribe &6/chestsort&7 para activar la clasificación automática de cofres."
@ -624,6 +647,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Mayus + Clic Derecho"
#message-gui-left-click: "Llenar Cofre (Clic Izquierdo / Doble Clic Izquierdo)"
#message-gui-right-click: "Vaciar Cofre (Clic Derecho / Doble Clic Derecho)"
#message-gui-left-click-outside: "Left-Click from outside"
##### Turkish
#message-when-using-chest: "&7İpucu: &6/chestsort&7 yazarak otomatik sandık düzenlemesini aktif edebilirsiniz"
@ -643,6 +667,7 @@ message-gui-right-click: "Empty Chest (Right-Click/Double-Right-Click)"
#message-gui-shift-right-click: "Shift + Sağ tık"
#message-gui-left-click: "Sandığı doldur (Sol tık/Çift sol tık)"
#message-gui-right-click: "Sandığı boşalt (Sağ tık/Çift sağ tık)"
#message-gui-left-click-outside: "Left-Click from outside"
############################
##### Technical stuff! #####

View File

@ -33,6 +33,11 @@ commands:
/<command> help -- Shows help about this command
aliases: [invsort,inventorysort]
permission: chestsort.use.inventory
chestsortadmin:
description: Admin command for ChestSort
usage: |
/<command> reset <player> -- Reset's a player's hotkey settings
permission: chestsort.admin
permissions:
chestsort.use:
description: Allows chest sorting