mirror of
https://github.com/JEFF-Media-GbR/ChestSort.git
synced 2025-02-20 22:31:35 +01:00
commit
ff330bae45
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>de.jeffclan</groupId>
|
||||
<artifactId>JeffChestSort</artifactId>
|
||||
<version>5.1</version>
|
||||
<version>6.0</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>JeffChestSort</name>
|
||||
|
@ -9,16 +9,21 @@ import org.bukkit.block.DoubleChest;
|
||||
import org.bukkit.block.EnderChest;
|
||||
import org.bukkit.block.ShulkerBox;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
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;
|
||||
import org.bukkit.event.inventory.InventoryOpenEvent;
|
||||
import org.bukkit.event.inventory.InventoryType.SlotType;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
|
||||
public class JeffChestSortListener implements Listener {
|
||||
|
||||
@ -93,7 +98,6 @@ public class JeffChestSortListener implements Listener {
|
||||
plugin.unregisterPlayer(event.getPlayer());
|
||||
}
|
||||
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryEvent(InventoryEvent event) {
|
||||
plugin.getLogger().info("InventoryEvent");
|
||||
@ -118,7 +122,7 @@ public class JeffChestSortListener implements Listener {
|
||||
Player p = (Player) event.getPlayer();
|
||||
Inventory inventory = event.getInventory();
|
||||
|
||||
if(!belongsToChestLikeBlock(inventory)) {
|
||||
if (!belongsToChestLikeBlock(inventory)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -130,7 +134,7 @@ public class JeffChestSortListener implements Listener {
|
||||
|
||||
}
|
||||
|
||||
@EventHandler(priority=EventPriority.MONITOR)
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onChestClose(InventoryOpenEvent event) {
|
||||
|
||||
if (!(plugin.getConfig().getString("sort-time").equalsIgnoreCase("open")
|
||||
@ -138,7 +142,7 @@ public class JeffChestSortListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
if(event.isCancelled()) {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -149,7 +153,7 @@ public class JeffChestSortListener implements Listener {
|
||||
Player p = (Player) event.getPlayer();
|
||||
Inventory inventory = event.getInventory();
|
||||
|
||||
if(!belongsToChestLikeBlock(inventory)) {
|
||||
if (!belongsToChestLikeBlock(inventory)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -167,8 +171,7 @@ public class JeffChestSortListener implements Listener {
|
||||
return false;
|
||||
}
|
||||
|
||||
//System.out.println(inventory.getHolder().getClass().getName());
|
||||
|
||||
// System.out.println(inventory.getHolder().getClass().getName());
|
||||
|
||||
// Only continue if the inventory belongs to a chest, double chest, shulkerbox
|
||||
// or barrel
|
||||
@ -179,8 +182,7 @@ public class JeffChestSortListener implements Listener {
|
||||
// WARNING: The names are inconsistent! A chest will return
|
||||
// org.bukkit.craftbukkit.v1_14_R1.block.CraftChest
|
||||
// in Spigot 1.14 while a double chest returns org.bukkit.block.DoubleChest
|
||||
if (!(inventory.getHolder() instanceof Chest)
|
||||
&& !(inventory.getHolder() instanceof DoubleChest)
|
||||
if (!(inventory.getHolder() instanceof Chest) && !(inventory.getHolder() instanceof DoubleChest)
|
||||
&& !(inventory.getHolder().getClass().toString().endsWith(".CraftShulkerBox"))
|
||||
&& !(inventory.getHolder().getClass().toString().endsWith(".CraftBarrel"))) {
|
||||
return false;
|
||||
@ -268,4 +270,60 @@ public class JeffChestSortListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
||||
public void onInventoryClickEvent(InventoryClickEvent event) {
|
||||
|
||||
if(!plugin.getConfig().getBoolean("allow-shortcut")) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(!(event.getWhoClicked() instanceof Player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Player p = (Player) event.getWhoClicked();
|
||||
|
||||
if(!p.hasPermission("chestsort.use")) {
|
||||
return;
|
||||
}
|
||||
|
||||
InventoryHolder holder = event.getInventory().getHolder();
|
||||
|
||||
if(event.getClick() != ClickType.MIDDLE) {
|
||||
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) {
|
||||
for(HumanEntity viewer : event.getViewers()) {
|
||||
if(viewer instanceof Player) {
|
||||
Player playerViewer = (Player) viewer;
|
||||
playerViewer.updateInventory();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ public class JeffChestSortPlugin extends JavaPlugin {
|
||||
JeffChestSortListener listener;
|
||||
String sortingMethod;
|
||||
ArrayList<String> disabledWorlds;
|
||||
int currentConfigVersion = 11;
|
||||
int currentConfigVersion = 12;
|
||||
boolean usingMatchingConfig = true;
|
||||
boolean debug = false;
|
||||
boolean verbose = true;
|
||||
@ -134,6 +134,7 @@ public class JeffChestSortPlugin extends JavaPlugin {
|
||||
getConfig().addDefault("check-for-updates", "true");
|
||||
getConfig().addDefault("auto-generate-category-files", true);
|
||||
getConfig().addDefault("sort-time", "close");
|
||||
getConfig().addDefault("allow-shortcut", true);
|
||||
getConfig().addDefault("verbose", true); // Prints some information in onEnable()
|
||||
}
|
||||
|
||||
@ -251,6 +252,7 @@ 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("Check for updates: " + getConfig().getString("check-for-updates"));
|
||||
getLogger().info("Categories: " + getCategoryList());
|
||||
}
|
||||
|
@ -63,6 +63,11 @@ auto-generate-category-files: true
|
||||
# Available options: open, close, both
|
||||
sort-time: close
|
||||
|
||||
# Instead of automatic sorting, you can also use middle-click
|
||||
# when using an inventory to have it sorted immediately.
|
||||
# You can disable this by setting this to false.
|
||||
allow-shortcut: 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
|
||||
@ -274,4 +279,4 @@ message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s
|
||||
#########################
|
||||
|
||||
# please do not change the following line manually!
|
||||
config-version: 11
|
||||
config-version: 12
|
||||
|
@ -1,6 +1,6 @@
|
||||
main: de.jeffclan.JeffChestSort.JeffChestSortPlugin
|
||||
name: ChestSort
|
||||
version: 5.1
|
||||
version: 6.0
|
||||
api-version: 1.13
|
||||
description: Allows automatic chest sorting
|
||||
author: mfnalex
|
||||
|
Loading…
Reference in New Issue
Block a user