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: