|
|
@ -10,10 +10,12 @@ import java.util.concurrent.ConcurrentHashMap; |
|
|
|
import java.util.concurrent.LinkedBlockingQueue; |
|
|
|
import java.util.concurrent.LinkedBlockingQueue; |
|
|
|
import org.bukkit.entity.Player; |
|
|
|
import org.bukkit.entity.Player; |
|
|
|
import org.bukkit.permissions.PermissionAttachment; |
|
|
|
import org.bukkit.permissions.PermissionAttachment; |
|
|
|
|
|
|
|
import ru.simsonic.rscPermissions.API.Settings; |
|
|
|
import ru.simsonic.rscPermissions.BukkitPluginMain; |
|
|
|
import ru.simsonic.rscPermissions.BukkitPluginMain; |
|
|
|
import ru.simsonic.rscPermissions.Engine.ResolutionParams; |
|
|
|
import ru.simsonic.rscPermissions.Engine.ResolutionParams; |
|
|
|
import ru.simsonic.rscPermissions.Engine.ResolutionResult; |
|
|
|
import ru.simsonic.rscPermissions.Engine.ResolutionResult; |
|
|
|
import ru.simsonic.rscUtilityLibrary.RestartableThread; |
|
|
|
import ru.simsonic.rscUtilityLibrary.RestartableThread; |
|
|
|
|
|
|
|
import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes; |
|
|
|
|
|
|
|
|
|
|
|
public class BukkitPermissionManager extends RestartableThread |
|
|
|
public class BukkitPermissionManager extends RestartableThread |
|
|
|
{ |
|
|
|
{ |
|
|
@ -73,8 +75,11 @@ public class BukkitPermissionManager extends RestartableThread |
|
|
|
suffixes.remove(player); |
|
|
|
suffixes.remove(player); |
|
|
|
persistentPermissions.remove(player); |
|
|
|
persistentPermissions.remove(player); |
|
|
|
transientPermissions.remove(player); |
|
|
|
transientPermissions.remove(player); |
|
|
|
|
|
|
|
synchronized(debug) |
|
|
|
|
|
|
|
{ |
|
|
|
debug.remove(player); |
|
|
|
debug.remove(player); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void run() |
|
|
|
public void run() |
|
|
|
{ |
|
|
|
{ |
|
|
@ -115,6 +120,12 @@ public class BukkitPermissionManager extends RestartableThread |
|
|
|
final Boolean asterisk = attachment.getPermissions().get("*"); |
|
|
|
final Boolean asterisk = attachment.getPermissions().get("*"); |
|
|
|
if(rscp.settings.isAsteriskOP()) |
|
|
|
if(rscp.settings.isAsteriskOP()) |
|
|
|
player.setOp((asterisk != null) ? asterisk : false); |
|
|
|
player.setOp((asterisk != null) ? asterisk : false); |
|
|
|
|
|
|
|
// 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.")); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
@ -155,10 +166,15 @@ public class BukkitPermissionManager extends RestartableThread |
|
|
|
return result.toArray(new String[result.size()]); |
|
|
|
return result.toArray(new String[result.size()]); |
|
|
|
} |
|
|
|
} |
|
|
|
public boolean isDebugging(Player target) |
|
|
|
public boolean isDebugging(Player target) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
synchronized(debug) |
|
|
|
{ |
|
|
|
{ |
|
|
|
return debug.contains(target); |
|
|
|
return debug.contains(target); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
public void setDebugging(Player target, boolean value) |
|
|
|
public void setDebugging(Player target, boolean value) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
synchronized(debug) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if(value) |
|
|
|
if(value) |
|
|
|
debug.add(target); |
|
|
|
debug.add(target); |
|
|
@ -166,3 +182,4 @@ public class BukkitPermissionManager extends RestartableThread |
|
|
|
debug.remove(target); |
|
|
|
debug.remove(target); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|