diff --git a/pom.xml b/pom.xml index 978129a..bf7f5ee 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ ru.simsonic rscPermissions - 0.9.12a + 0.9.13b jar rscPermissions diff --git a/src/main/java/ru/simsonic/rscPermissions/BridgeForBukkitAPI.java b/src/main/java/ru/simsonic/rscPermissions/BridgeForBukkitAPI.java index 0e1057e..cef7256 100644 --- a/src/main/java/ru/simsonic/rscPermissions/BridgeForBukkitAPI.java +++ b/src/main/java/ru/simsonic/rscPermissions/BridgeForBukkitAPI.java @@ -75,10 +75,18 @@ public class BridgeForBukkitAPI if(rscp.permissionManager.isConsoleDebugging()) { final StringBuilder sb = new StringBuilder(Settings.chatPrefix); - sb.append("[DEBUG] An API method was invoked from the path:\n"); + sb.append("[DEBUG] An API method was invoked from the path:").append(System.lineSeparator()); for(StackTraceElement ste : Thread.currentThread().getStackTrace()) - if(!ste.getClassName().equals(BridgeForBukkitAPI.class.getName())) - sb.append(ste.toString()).append(System.lineSeparator()); + { + final String className = ste.getClassName(); + if(!className.equals(BridgeForBukkitAPI.class.getName()) + && !className.equals(Thread.class.getName()) + ) + sb.append(Settings.chatPrefix).append("[DEBUG] ") + .append(className.startsWith(BukkitPluginMain.class.getPackage().getName()) ? "{_LG}" : "{_LS}") + .append(ste.toString()) + .append(System.lineSeparator()); + } rscp.getServer().getConsoleSender().sendMessage(GenericChatCodes.processStringStatic(sb.toString())); } } diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java index 969ed95..a214804 100644 --- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java +++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java @@ -1,6 +1,7 @@ package ru.simsonic.rscPermissions.Bukkit; import java.net.InetSocketAddress; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -122,9 +123,9 @@ public class BukkitPermissionManager extends RestartableThread // Show debugging information if(isDebugging(player)) player.sendMessage(GenericChatCodes.processStringStatic(Settings.chatPrefix - + "[DEBUG] {_DS}Inheritances list: {_LS}" + result.groups.toString() - + "{_DS}; you have total {_LS}" + attachment.getPermissions().size() - + "{_DS} permissions.")); + + "[DEBUG] Inheritances list: {_LG}" + Arrays.toString(result.getDeorderedGroups()) + + "{_LS}; you have total {_LG}" + attachment.getPermissions().size() + + "{_LS} permissions.")); } }); } diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitRegionProviders.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitRegionProviders.java index 581fc5c..a5c3147 100644 --- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitRegionProviders.java +++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitRegionProviders.java @@ -3,6 +3,7 @@ import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import com.sk89q.worldguard.protection.ApplicableRegionSet; import com.sk89q.worldguard.protection.managers.RegionManager; import com.sk89q.worldguard.protection.regions.ProtectedRegion; +import java.io.Serializable; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -88,7 +89,8 @@ public final class BukkitRegionProviders final ApplicableRegionSet appregs = rman.getApplicableRegions(location); for(ProtectedRegion region : appregs) playerRegions.add(region.getId()); - } catch(RuntimeException ex) { + } catch(RuntimeException | IncompatibleClassChangeError ex) { + BukkitPluginMain.consoleLog.info(GenericChatCodes.processStringStatic("[rscp] " + Phrases.INTEGRATION_WG_OLD.toString())); } // Residence if(residence != null && residence.isEnabled()) diff --git a/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java b/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java index dab6f69..2630c33 100644 --- a/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java +++ b/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java @@ -304,7 +304,10 @@ public class InternalCache } public synchronized Set getGroups() { - return entities_g.keySet(); + final HashSet result = new HashSet<>(entities_g.size()); + for(RowEntity row : entities_g.values()) + result.add(row.entity); + return result; } public synchronized void clear() { diff --git a/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java b/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java index 4087824..03ce09c 100644 --- a/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java +++ b/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java @@ -20,6 +20,7 @@ public enum Phrases INTEGRATION_V_N ("integration.vault-no"), INTEGRATION_WG_Y ("integration.worldguard-yes"), INTEGRATION_WG_N ("integration.worldguard-no"), + INTEGRATION_WG_OLD ("integration.worldguard-old"), INTEGRATION_R_Y ("integration.residence-yes"), INTEGRATION_R_N ("integration.residence-no"), DEBUG_ON ("debug.enable"), diff --git a/src/main/resources/languages/english.yml b/src/main/resources/languages/english.yml index e6240f0..ec5a283 100644 --- a/src/main/resources/languages/english.yml +++ b/src/main/resources/languages/english.yml @@ -10,6 +10,7 @@ integration: vault-no: "{_LR}There is no Vault found. Vault is highly recommended to be installed on your server." worldguard-yes: "{_LG}WorldGuard was found and integrated." worldguard-no: "{_YL}WorldGuard was not found." + worldguard-old: "{_LR}WorldGuard 5.9 or older is found, I need 6.0 or later. {_YL}Region support for WG is disabled." residence-yes: "{_LG}Residence was found and integrated." residence-no: "{_YL}Residence was not found." debug: diff --git a/src/main/resources/languages/russian.yml b/src/main/resources/languages/russian.yml index 7b12ebf..1a2ef43 100644 --- a/src/main/resources/languages/russian.yml +++ b/src/main/resources/languages/russian.yml @@ -10,6 +10,7 @@ integration: vault-no: "{_LR}Не удаётся найти плагин Vault. Рекомендуется его скорейшая установка." worldguard-yes: "{_LG}WorldGuard обнаружён и подключён." worldguard-no: "{_YL}WorldGuard не обнаружен." + worldguard-old: "{_LR}Найден WorldGuard 5.9 или старше, но для работы требуется версия 6.0 или новее. {_YL}Поддержка регионов WG будет отключена." residence-yes: "{_LG}Residence обнаружён и подключён." residence-no: "{_YL}Residence не обнаружен." debug: