diff --git a/pom.xml b/pom.xml
index 79837d8..06d9df3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
de.jeffclan
JeffChestSort
- 6.0
+ 6.1
jar
JeffChestSort
diff --git a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortListener.java b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortListener.java
index 36aceef..54d9920 100644
--- a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortListener.java
+++ b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortListener.java
@@ -4,6 +4,7 @@ import java.util.UUID;
import java.io.File;
import org.bukkit.GameMode;
+import org.bukkit.Material;
import org.bukkit.block.Chest;
import org.bukkit.block.DoubleChest;
import org.bukkit.block.EnderChest;
@@ -289,32 +290,52 @@ public class JeffChestSortListener implements Listener {
InventoryHolder holder = event.getInventory().getHolder();
- if(event.getClick() != ClickType.MIDDLE) {
- return;
+ boolean sort = false;
+
+ switch(event.getClick()) {
+ case MIDDLE:
+ if(plugin.getConfig().getBoolean("shortcuts.middle-click")) {
+ sort=true;
+ }
+ break;
+ case DOUBLE_CLICK:
+ if(plugin.getConfig().getBoolean("shortcuts.double-click")) {
+ // We need getCursor() instead of getCurrentItem(), because after picking up the item, it is gone into the cursor
+ if(event.getCursor().getType() == Material.AIR) {
+ sort=true;
+ }
+ }
+ break;
+ case SHIFT_LEFT:
+ if(plugin.getConfig().getBoolean("shortcuts.shift-click")) {
+ if(event.getCurrentItem().getType() == Material.AIR) {
+ sort=true;
+ }
+ }
+ break;
+ default:
+ break;
}
+ if(!sort) return;
+
if(belongsToChestLikeBlock(event.getInventory())) {
- //p.sendMessage("Sorting chest");
plugin.organizer.sortInventory(event.getInventory());
updateInventoryView(event);
return;
} else if(holder instanceof Player) {
- //p.sendMessage("Sorting player inv");
if(event.getSlotType() == SlotType.QUICKBAR) {
- //p.sendMessage("Sorting Hotbar");
plugin.organizer.sortInventory(p.getInventory(),0,8);
updateInventoryView(event);
return;
}
else if(event.getSlotType() == SlotType.CONTAINER) {
- //p.sendMessage("Sorting container");
plugin.organizer.sortInventory(p.getInventory(),9,35);
updateInventoryView(event);
return;
}
return;
}
-
}
void updateInventoryView(InventoryClickEvent event) {
diff --git a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortPlugin.java b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortPlugin.java
index dd68e56..5bdac07 100644
--- a/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortPlugin.java
+++ b/src/main/java/de/jeffclan/JeffChestSort/JeffChestSortPlugin.java
@@ -61,7 +61,7 @@ public class JeffChestSortPlugin extends JavaPlugin {
JeffChestSortListener listener;
String sortingMethod;
ArrayList disabledWorlds;
- int currentConfigVersion = 12;
+ int currentConfigVersion = 14;
boolean usingMatchingConfig = true;
boolean debug = false;
boolean verbose = true;
@@ -135,6 +135,9 @@ public class JeffChestSortPlugin extends JavaPlugin {
getConfig().addDefault("auto-generate-category-files", true);
getConfig().addDefault("sort-time", "close");
getConfig().addDefault("allow-shortcut", true);
+ getConfig().addDefault("shortcuts.middle-click", true);
+ getConfig().addDefault("shortcuts.shift-click", true);
+ getConfig().addDefault("shortcuts.double-click", true);
getConfig().addDefault("verbose", true); // Prints some information in onEnable()
}
@@ -252,7 +255,12 @@ public class JeffChestSortPlugin extends JavaPlugin {
getLogger().info("Sorting enabled by default: " + getConfig().getBoolean("sorting-enabled-by-default"));
getLogger().info("Auto generate category files: " + getConfig().getBoolean("auto-generate-category-files"));
getLogger().info("Sort time: " + getConfig().getString("sort-time"));
- getLogger().info("Allow shortcut: " + getConfig().getString("allow-shortcut"));
+ getLogger().info("Allow shortcut: " + getConfig().getBoolean("allow-shortcut"));
+ if(getConfig().getBoolean("allow-shortcut")) {
+ getLogger().info("|- Middle-Click: " + getConfig().getBoolean("shortcuts.middle-click"));
+ getLogger().info("|- Shift-Click: " + getConfig().getBoolean("shortcuts.shift-click"));
+ getLogger().info("|- Double-Click: " + getConfig().getBoolean("shortcuts.double-click"));
+ }
getLogger().info("Check for updates: " + getConfig().getString("check-for-updates"));
getLogger().info("Categories: " + getCategoryList());
}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 9d8cbea..12b0197 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -63,11 +63,20 @@ auto-generate-category-files: true
# Available options: open, close, both
sort-time: close
-# Instead of automatic sorting, you can also use middle-click
+# Instead of automatic sorting, you can also use hotkeys (see below)
# when using an inventory to have it sorted immediately.
# You can disable this by setting this to false.
allow-shortcut: true
+# You can disable/enable certain hotkeys when you have allow-shortcut enabled
+shortcuts:
+ # Use middle click (mousewheel) on ANY inventory slot as hotkey
+ middle-click: true
+ # Use shift + left-click on any EMPTY inventory slot as hotkey
+ shift-click: true
+ # Use double left-click on any EMPTY inventory slot as hotkey
+ double-click: true
+
# should we check for updates?
# when enabled, a message is printed in the console if a new
# version has been found, and OPs will be notified when they join the server
@@ -279,4 +288,4 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s
#########################
# please do not change the following line manually!
-config-version: 12
+config-version: 14
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 0adc3a0..5384e30 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.0
+version: 6.1
api-version: 1.13
description: Allows automatic chest sorting
author: mfnalex