Merge pull request #27 from JEFF-Media-GbR/Custom-Hotkeys

added new shortcuts/hotkeys
This commit is contained in:
JEFF 2019-07-13 23:28:05 +02:00 committed by GitHub
commit d65cc497af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 51 additions and 13 deletions

View File

@ -6,7 +6,7 @@
<groupId>de.jeffclan</groupId> <groupId>de.jeffclan</groupId>
<artifactId>JeffChestSort</artifactId> <artifactId>JeffChestSort</artifactId>
<version>6.0</version> <version>6.1</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>JeffChestSort</name> <name>JeffChestSort</name>

View File

@ -4,6 +4,7 @@ import java.util.UUID;
import java.io.File; import java.io.File;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.block.Chest; import org.bukkit.block.Chest;
import org.bukkit.block.DoubleChest; import org.bukkit.block.DoubleChest;
import org.bukkit.block.EnderChest; import org.bukkit.block.EnderChest;
@ -289,32 +290,52 @@ public class JeffChestSortListener implements Listener {
InventoryHolder holder = event.getInventory().getHolder(); InventoryHolder holder = event.getInventory().getHolder();
if(event.getClick() != ClickType.MIDDLE) { boolean sort = false;
return;
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())) { if(belongsToChestLikeBlock(event.getInventory())) {
//p.sendMessage("Sorting chest");
plugin.organizer.sortInventory(event.getInventory()); plugin.organizer.sortInventory(event.getInventory());
updateInventoryView(event); updateInventoryView(event);
return; return;
} else if(holder instanceof Player) { } else if(holder instanceof Player) {
//p.sendMessage("Sorting player inv");
if(event.getSlotType() == SlotType.QUICKBAR) { if(event.getSlotType() == SlotType.QUICKBAR) {
//p.sendMessage("Sorting Hotbar");
plugin.organizer.sortInventory(p.getInventory(),0,8); plugin.organizer.sortInventory(p.getInventory(),0,8);
updateInventoryView(event); updateInventoryView(event);
return; return;
} }
else if(event.getSlotType() == SlotType.CONTAINER) { else if(event.getSlotType() == SlotType.CONTAINER) {
//p.sendMessage("Sorting container");
plugin.organizer.sortInventory(p.getInventory(),9,35); plugin.organizer.sortInventory(p.getInventory(),9,35);
updateInventoryView(event); updateInventoryView(event);
return; return;
} }
return; return;
} }
} }
void updateInventoryView(InventoryClickEvent event) { void updateInventoryView(InventoryClickEvent event) {

View File

@ -61,7 +61,7 @@ public class JeffChestSortPlugin extends JavaPlugin {
JeffChestSortListener listener; JeffChestSortListener listener;
String sortingMethod; String sortingMethod;
ArrayList<String> disabledWorlds; ArrayList<String> disabledWorlds;
int currentConfigVersion = 12; int currentConfigVersion = 14;
boolean usingMatchingConfig = true; boolean usingMatchingConfig = true;
boolean debug = false; boolean debug = false;
boolean verbose = true; boolean verbose = true;
@ -135,6 +135,9 @@ public class JeffChestSortPlugin extends JavaPlugin {
getConfig().addDefault("auto-generate-category-files", true); getConfig().addDefault("auto-generate-category-files", true);
getConfig().addDefault("sort-time", "close"); getConfig().addDefault("sort-time", "close");
getConfig().addDefault("allow-shortcut", true); 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() 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("Sorting enabled by default: " + getConfig().getBoolean("sorting-enabled-by-default"));
getLogger().info("Auto generate category files: " + getConfig().getBoolean("auto-generate-category-files")); getLogger().info("Auto generate category files: " + getConfig().getBoolean("auto-generate-category-files"));
getLogger().info("Sort time: " + getConfig().getString("sort-time")); 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("Check for updates: " + getConfig().getString("check-for-updates"));
getLogger().info("Categories: " + getCategoryList()); getLogger().info("Categories: " + getCategoryList());
} }

View File

@ -63,11 +63,20 @@ auto-generate-category-files: true
# Available options: open, close, both # Available options: open, close, both
sort-time: close 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. # when using an inventory to have it sorted immediately.
# You can disable this by setting this to false. # You can disable this by setting this to false.
allow-shortcut: true 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? # should we check for updates?
# when enabled, a message is printed in the console if a new # 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 # 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! # please do not change the following line manually!
config-version: 12 config-version: 14

View File

@ -1,6 +1,6 @@
main: de.jeffclan.JeffChestSort.JeffChestSortPlugin main: de.jeffclan.JeffChestSort.JeffChestSortPlugin
name: ChestSort name: ChestSort
version: 6.0 version: 6.1
api-version: 1.13 api-version: 1.13
description: Allows automatic chest sorting description: Allows automatic chest sorting
author: mfnalex author: mfnalex