From 0f85944e06627443b315768d0da68d6ac0bacc22 Mon Sep 17 00:00:00 2001 From: mfnalex <1122571+mfnalex@users.noreply.github.com> Date: Tue, 29 Sep 2020 21:33:40 +0200 Subject: [PATCH] 8.17.7 release --- CHANGELOG.md | 3 ++ pom.xml | 2 +- .../ChestSort/ChestSortListener.java | 40 +++++++++++++++---- .../ChestSort/hooks/InventoryPagesHook.java | 16 ++++---- src/main/resources/plugin.yml | 2 +- 5 files changed, 46 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index de8c9aa..12fbc3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 8.17.7-SNAPSHOT +- Fixed InventoryPages hook when using colored item names + ## 8.17.6 - Fixed exception and hotbar being filled up with barrier blocks when using the addition right-click-hotkey on MC 1.8 diff --git a/pom.xml b/pom.xml index da2c68a..c63cf8a 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ ChestSort https://www.chestsort.de Automatically sorts your chests! - 8.17.6 + 8.17.7 jar diff --git a/src/main/java/de/jeff_media/ChestSort/ChestSortListener.java b/src/main/java/de/jeff_media/ChestSort/ChestSortListener.java index 83e6100..83d89f1 100644 --- a/src/main/java/de/jeff_media/ChestSort/ChestSortListener.java +++ b/src/main/java/de/jeff_media/ChestSort/ChestSortListener.java @@ -86,22 +86,46 @@ public class ChestSortListener implements Listener { @EventHandler public void onPlayerInventoryClose(InventoryCloseEvent event) { - if(!plugin.getConfig().getBoolean("allow-automatic-inventory-sorting")) return; + plugin.debug("Attempt to automatically sort a player inventory"); - if (event.getInventory().getHolder() == null) return; + if (event.getInventory().getHolder() == null) { + plugin.debug("Abort: holder == null"); + return; + } // Might be obsolete, because its @NotNull in 1.15, but who knows if thats for 1.8 - if (event.getInventory().getType() == null) return; - if (event.getInventory().getType() != InventoryType.CRAFTING) + if (event.getInventory().getType() == null) { + plugin.debug("Abort: type == null"); + return; + } + if (event.getInventory().getType() != InventoryType.CRAFTING) { + plugin.debug("Abort: type != CRAFTING, but "+event.getInventory().getType().name()); return; // Weird! Returns CRAFTING instead of PLAYER - if (!(event.getInventory().getHolder() instanceof Player)) return; + } + + if (!(event.getInventory().getHolder() instanceof Player)) { + plugin.debug("Abort: holder ! instanceof Player"); + return; + } + + + if(!plugin.getConfig().getBoolean("allow-automatic-inventory-sorting")) { + plugin.debug("allow-automatic-inventory-sorting is false"); + return; + } Player p = (Player) event.getInventory().getHolder(); - if (!p.hasPermission("chestsort.use.inventory")) return; + if (!p.hasPermission("chestsort.use.inventory")) { + plugin.debug("Missing permission chestsort.use.inventory"); + return; + } plugin.registerPlayerIfNeeded(p); ChestSortPlayerSetting setting = plugin.perPlayerSettings.get(p.getUniqueId().toString()); - if (!setting.invSortingEnabled) return; + if (!setting.invSortingEnabled) { + plugin.debug("auto inv sorting not enabled for player "+p.getName()); + return; + } plugin.lgr.logSort(p, ChestSortLogger.SortCause.INV_CLOSE); @@ -157,6 +181,8 @@ public class ChestSortListener implements Listener { @EventHandler(priority = EventPriority.MONITOR) public void onChestOpen(InventoryOpenEvent event) { + plugin.debug("onChestOpen (InventoryOpenEvent"); + if(!plugin.getConfig().getBoolean("allow-automatic-sorting")) return; if (!(plugin.getConfig().getString("sort-time").equalsIgnoreCase("open") diff --git a/src/main/java/de/jeff_media/ChestSort/hooks/InventoryPagesHook.java b/src/main/java/de/jeff_media/ChestSort/hooks/InventoryPagesHook.java index 2a2875f..2a32c12 100644 --- a/src/main/java/de/jeff_media/ChestSort/hooks/InventoryPagesHook.java +++ b/src/main/java/de/jeff_media/ChestSort/hooks/InventoryPagesHook.java @@ -2,6 +2,7 @@ package de.jeff_media.ChestSort.hooks; import java.io.File; +import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.inventory.Inventory; @@ -9,7 +10,6 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; import de.jeff_media.ChestSort.ChestSortPlugin; -import net.md_5.bungee.api.ChatColor; import org.jetbrains.annotations.NotNull; public class InventoryPagesHook { @@ -60,20 +60,20 @@ public class InventoryPagesHook { } // When using &f as color, we manually have to add this to the string because it gets removed by InventoryPages - if(prevName.startsWith("§f")) prevName = prevName.substring(2); - if(nextName.startsWith("§f")) nextName = nextName.substring(2); - if(noPageName.startsWith("§f")) noPageName = noPageName.substring(2); + //if(prevName.startsWith("§f")) prevName = prevName.substring(2); + //if(nextName.startsWith("§f")) nextName = nextName.substring(2); + //if(noPageName.startsWith("§f")) noPageName = noPageName.substring(2); if(slot == prevSlot ) { - if(item.getType() == prevMat && (item.getItemMeta().getDisplayName().equals(prevName))) { + if(item.getType() == prevMat && (ChatColor.stripColor(item.getItemMeta().getDisplayName()).equals(ChatColor.stripColor(prevName)))) { return true; - } else return item.getType() == noPageMat && item.getItemMeta().getDisplayName().equals(noPageName); + } else return item.getType() == noPageMat && ChatColor.stripColor(item.getItemMeta().getDisplayName()).equals(ChatColor.stripColor(noPageName)); } if(slot == nextSlot ) { - if(item.getType() == nextMat && item.getItemMeta().getDisplayName().equals(nextName)) { + if(item.getType() == nextMat && ChatColor.stripColor(item.getItemMeta().getDisplayName()).equals(ChatColor.stripColor(nextName))) { return true; - } else return item.getType() == noPageMat && item.getItemMeta().getDisplayName().equals(noPageName); + } else return item.getType() == noPageMat && ChatColor.stripColor(item.getItemMeta().getDisplayName()).equals(ChatColor.stripColor(noPageName)); } return false; diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index b0ba611..e4381ac 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ main: de.jeff_media.ChestSort.ChestSortPlugin name: ChestSort -version: 8.17.6 +version: 8.17.7 api-version: "1.13" description: Allows automatic chest sorting author: mfnalex