Browse Source

Version 0.9.15b

+ Implementation of WEPIF PermissionResolver, so it correctly dispatches
all worldedit...* and worldguard...* permissions. This was needed for at
least max-regions-per-player WG config node.
* Console debug shows permission which is under search.
master
Stanislav Usenkov 10 years ago
parent
commit
7c1854a48a
  1. 12
      pom.xml
  2. 26
      src/main/java/ru/simsonic/rscPermissions/BridgeForBukkitAPI.java
  3. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java
  4. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandDebug.java
  5. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandFetch.java
  6. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandLock.java
  7. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandReload.java
  8. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandUnlock.java
  9. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultChat.java
  10. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultDeprecatedChat.java
  11. 82
      src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultPermission.java
  12. 206
      src/main/java/ru/simsonic/rscPermissions/Bukkit/WorldEditPermissions.java
  13. 12
      src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java
  14. 4
      src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java
  15. 3
      src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java
  16. 14
      src/main/java/ru/simsonic/rscPermissions/Engine/ResolutionResult.java
  17. 2
      src/main/resources/languages/english.yml
  18. 2
      src/main/resources/languages/russian.yml

12
pom.xml

@ -4,7 +4,7 @@
<groupId>ru.simsonic</groupId>
<artifactId>rscPermissions</artifactId>
<version>0.9.13b</version>
<version>0.9.15b</version>
<packaging>jar</packaging>
<name>rscPermissions</name>
@ -46,7 +46,7 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
<version>5.1.35</version>
<scope>runtime</scope>
</dependency>
<!-- Локальный кеш будет храниться в json-файле -->
@ -107,7 +107,7 @@
<dependency>
<groupId>org.spongepowered</groupId>
<artifactId>spongeapi</artifactId>
<version>1.0</version>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
@ -122,7 +122,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
@ -134,7 +134,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<version>2.6</version>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
@ -185,7 +185,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.1</version>
<version>2.10.3</version>
<executions>
<execution>
<id>attach-javadocs</id>

26
src/main/java/ru/simsonic/rscPermissions/BridgeForBukkitAPI.java

@ -1,10 +1,13 @@
package ru.simsonic.rscPermissions;
import com.sk89q.wepif.PermissionsResolverManager;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.ServicePriority;
import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscPermissions.Bukkit.VaultChat;
import ru.simsonic.rscPermissions.Bukkit.VaultPermission;
import ru.simsonic.rscPermissions.Bukkit.WorldEditPermissions;
import ru.simsonic.rscPermissions.Engine.Phrases;
import ru.simsonic.rscUtilityLibrary.Bukkit.Tools;
import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes;
@ -70,6 +73,29 @@ public class BridgeForBukkitAPI
} else
BukkitPluginMain.consoleLog.warning(GenericChatCodes.processStringStatic("[rscp] " + Phrases.INTEGRATION_V_N.toString()));
}
protected void setupWEPIF()
{
final Plugin plugin = rscp.getServer().getPluginManager().getPlugin("WorldEdit");
if(plugin != null)
{
final WorldEditPermissions wepif = new WorldEditPermissions(this);
final PermissionsResolverManager prm = PermissionsResolverManager.getInstance();
if(prm != null)
prm.setPluginPermissionsResolver(wepif);
else
com.sk89q.wepif.PermissionsResolverManager.initialize(wepif);
BukkitPluginMain.consoleLog.info(GenericChatCodes.processStringStatic("[rscp] " + Phrases.INTEGRATION_WE_Y.toString()));
} else
BukkitPluginMain.consoleLog.warning(GenericChatCodes.processStringStatic("[rscp] " + Phrases.INTEGRATION_WE_N.toString()));
}
public void printDebugString(String info)
{
if(rscp.permissionManager.isConsoleDebugging())
{
final StringBuilder sb = new StringBuilder(Settings.chatPrefix).append("[DEBUG] {_LS}").append(info);
rscp.getServer().getConsoleSender().sendMessage(GenericChatCodes.processStringStatic(sb.toString()));
}
}
public void printDebugStackTrace()
{
if(rscp.permissionManager.isConsoleDebugging())

1
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit.Commands;
import ru.simsonic.rscPermissions.Bukkit.BukkitDatabaseFetcher;
import java.util.ArrayList;
import java.util.Collections;

1
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandDebug.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit.Commands;
import org.bukkit.command.CommandSender;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscPermissions.Engine.Phrases;

1
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandFetch.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit.Commands;
import org.bukkit.command.CommandSender;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscPermissions.Engine.Phrases;

1
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandLock.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit.Commands;
import org.bukkit.command.CommandSender;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException;

1
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandReload.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit.Commands;
import org.bukkit.command.CommandSender;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscPermissions.Engine.Phrases;

1
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandUnlock.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit.Commands;
import org.bukkit.command.CommandSender;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException;

1
src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultChat.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.World;
import org.bukkit.entity.Player;

1
src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultDeprecatedChat.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.OfflinePlayer;
import org.bukkit.World;

82
src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultPermission.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit;
import java.util.Set;
import org.bukkit.OfflinePlayer;
import org.bukkit.World;
@ -41,197 +42,210 @@ public final class VaultPermission extends net.milkbowl.vault.permission.Permiss
@Deprecated
public boolean playerAdd(String world, String player, String permission)
{
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
@Deprecated
public boolean playerRemove(String world, String player, String permission)
{
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean groupHas(String world, String group, String permission)
{
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean groupAdd(String world, String group, String permission)
{
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean groupRemove(String world, String group, String permission)
{
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
@Deprecated
public boolean playerAddGroup(String world, String player, String group)
{
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
@Deprecated
public boolean playerRemoveGroup(String world, String player, String group)
{
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean has(CommandSender sender, String permission)
{
bridge.printDebugString("Looking for permission: {_LG}" + permission);
bridge.printDebugStackTrace();
return sender.hasPermission(permission);
}
@Override
public boolean has(Player player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugString("Looking for permission: {_LG}" + permission);
bridge.printDebugStackTrace();
return rscp.permissionManager.getResult(player).hasPermission(permission);
}
@Override
@Deprecated
public boolean playerHas(String world, String player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugString("Looking for permission: {_LG}" + permission);
bridge.printDebugStackTrace();
return rscp.permissionManager.getResult(player).hasPermission(permission);
}
@Override
public boolean playerHas(String world, OfflinePlayer player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugString("Looking for permission: {_LG}" + permission);
bridge.printDebugStackTrace();
return rscp.permissionManager.getResult(player).hasPermission(permission);
}
@Override
public boolean playerHas(Player player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugString("Looking for permission: {_LG}" + permission);
bridge.printDebugStackTrace();
return rscp.permissionManager.getResult(player).hasPermission(permission);
}
@Override
public boolean playerAdd(String world, OfflinePlayer player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerAdd(Player player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerAddTransient(OfflinePlayer player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerAddTransient(Player player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerAddTransient(String worldName, OfflinePlayer player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerAddTransient(String worldName, Player player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerRemoveTransient(String worldName, OfflinePlayer player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerRemoveTransient(String worldName, Player player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerRemove(String world, OfflinePlayer player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
@Deprecated
public boolean playerRemove(World world, String player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerRemove(Player player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerRemoveTransient(OfflinePlayer player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerRemoveTransient(Player player, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean groupHas(World world, String group, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean groupAdd(World world, String group, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean groupRemove(World world, String group, String permission)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerAddGroup(String world, OfflinePlayer player, String group)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerAddGroup(Player player, String group)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerRemoveGroup(String world, OfflinePlayer player, String group)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
public boolean playerRemoveGroup(Player player, String group)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
throw new UnsupportedOperationException("This method is unsupported by rscPermissions.");
}
@Override
@Deprecated
public boolean playerInGroup(String world, String player, String group)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
final ResolutionResult result = rscp.permissionManager.getResult(player);
for(String parent : result.getDeorderedGroups())
if(parent.equalsIgnoreCase(group))
@ -241,7 +255,7 @@ public final class VaultPermission extends net.milkbowl.vault.permission.Permiss
@Override
public boolean playerInGroup(String world, OfflinePlayer player, String group)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
final ResolutionResult result = rscp.permissionManager.getResult(player);
for(String parent : result.getDeorderedGroups())
if(parent.equalsIgnoreCase(group))
@ -251,7 +265,7 @@ public final class VaultPermission extends net.milkbowl.vault.permission.Permiss
@Override
public boolean playerInGroup(Player player, String group)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
final ResolutionResult result = rscp.permissionManager.getResult(player);
for(String parent : result.getDeorderedGroups())
if(parent.equalsIgnoreCase(group))
@ -262,21 +276,21 @@ public final class VaultPermission extends net.milkbowl.vault.permission.Permiss
@Deprecated
public String[] getPlayerGroups(String world, String player)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
final ResolutionResult result = rscp.permissionManager.getResult(player);
return result.getDeorderedGroups();
}
@Override
public String[] getPlayerGroups(String world, OfflinePlayer player)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
final ResolutionResult result = rscp.permissionManager.getResult(player);
return result.getDeorderedGroups();
}
@Override
public String[] getPlayerGroups(Player player)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
final ResolutionResult result = rscp.permissionManager.getResult(player);
return result.getDeorderedGroups();
}
@ -284,28 +298,28 @@ public final class VaultPermission extends net.milkbowl.vault.permission.Permiss
@Deprecated
public String getPrimaryGroup(String world, String player)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
final String[] groups = getPlayerGroups(world, player);
return groups.length > 0 ? groups[groups.length - 1] : rscp.settings.getDefaultGroup();
}
@Override
public String getPrimaryGroup(String world, OfflinePlayer player)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
final String[] groups = getPlayerGroups(world, player);
return groups.length > 0 ? groups[groups.length - 1] : rscp.settings.getDefaultGroup();
}
@Override
public String getPrimaryGroup(Player player)
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
final String[] groups = getPlayerGroups(player);
return groups.length > 0 ? groups[groups.length - 1] : rscp.settings.getDefaultGroup();
}
@Override
public String[] getGroups()
{
rscp.bridgeForBukkit.printDebugStackTrace();
bridge.printDebugStackTrace();
final Set<String> groups = rscp.internalCache.getGroups();
return groups.toArray(new String[groups.size()]);
}

206
src/main/java/ru/simsonic/rscPermissions/Bukkit/WorldEditPermissions.java

@ -0,0 +1,206 @@
package ru.simsonic.rscPermissions.Bukkit;
import com.avaje.ebean.EbeanServer;
import com.sk89q.wepif.PermissionsResolver;
import java.io.File;
import java.io.InputStream;
import java.util.List;
import java.util.logging.Logger;
import org.bukkit.OfflinePlayer;
import org.bukkit.Server;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.PluginLoader;
import ru.simsonic.rscPermissions.BridgeForBukkitAPI;
import ru.simsonic.rscPermissions.BukkitPluginMain;
public final class WorldEditPermissions implements Plugin, PermissionsResolver
{
private final BukkitPluginMain rscp;
private final BridgeForBukkitAPI bridge;
private final VaultPermission permissions;
public WorldEditPermissions(BridgeForBukkitAPI bridge)
{
this.bridge = bridge;
this.rscp = (BukkitPluginMain)bridge.getPlugin();
this.permissions = (VaultPermission)bridge.getPermission();
}
@Override
public void load()
{
}
@Override
public String getDetectionMessage()
{
return "Using rscp's WEPIF implementation for permissions";
}
@Override
@Deprecated
public boolean hasPermission(String player, String permission)
{
bridge.printDebugString("Looking for permission: {_LG}" + permission);
bridge.printDebugStackTrace();
return rscp.permissionManager.getResult(player).hasPermissionWC(permission);
}
@Override
@Deprecated
public boolean hasPermission(String worldName, String player, String permission)
{
bridge.printDebugString("Looking for permission: {_LG}" + permission);
bridge.printDebugStackTrace();
return rscp.permissionManager.getResult(player).hasPermissionWC(permission);
}
@Override
@Deprecated
public boolean hasPermission(OfflinePlayer player, String permission)
{
bridge.printDebugString("Looking for permission: {_LG}" + permission);
bridge.printDebugStackTrace();
return rscp.permissionManager.getResult(player).hasPermissionWC(permission);
}
@Override
@Deprecated
public boolean hasPermission(String world, OfflinePlayer player, String permission)
{
bridge.printDebugString("Looking for permission: {_LG}" + permission);
bridge.printDebugStackTrace();
return rscp.permissionManager.getResult(player).hasPermissionWC(permission);
}
@Override
public boolean inGroup(OfflinePlayer player, String group)
{
return permissions.playerInGroup("", player, group);
}
@Override
@Deprecated
public boolean inGroup(String player, String group)
{
return permissions.playerInGroup("", player, group);
}
@Override
public String[] getGroups(OfflinePlayer player)
{
return permissions.getPlayerGroups("", player);
}
@Override
@Deprecated
public String[] getGroups(String player)
{
return permissions.getPlayerGroups("", player);
}
@Override
public String getName()
{
return rscp.getName();
}
@Override
public PluginDescriptionFile getDescription()
{
return rscp.getDescription();
}
@Override
public File getDataFolder()
{
return rscp.getDataFolder();
}
@Override
public FileConfiguration getConfig()
{
return rscp.getConfig();
}
@Override
public InputStream getResource(String filename)
{
return rscp.getResource(filename);
}
@Override
public void saveConfig()
{
rscp.saveConfig();
}
@Override
public void saveDefaultConfig()
{
rscp.saveDefaultConfig();
}
@Override
public void saveResource(String arg0, boolean arg1)
{
rscp.saveResource(arg0, arg1);
}
@Override
public void reloadConfig()
{
rscp.reloadConfig();
}
@Override
public PluginLoader getPluginLoader()
{
return rscp.getPluginLoader();
}
@Override
public Server getServer()
{
return rscp.getServer();
}
@Override
public boolean isEnabled()
{
return rscp.isEnabled();
}
@Override
public void onLoad()
{
rscp.onLoad();
}
@Override
public void onEnable()
{
rscp.onEnable();
}
@Override
public void onDisable()
{
rscp.onDisable();
}
@Override
public boolean isNaggable()
{
return rscp.isNaggable();
}
@Override
public void setNaggable(boolean canNag)
{
rscp.setNaggable(canNag);
}
@Override
public EbeanServer getDatabase()
{
return rscp.getDatabase();
}
@Override
public ChunkGenerator getDefaultWorldGenerator(String arg0, String arg1)
{
return rscp.getDefaultWorldGenerator(arg0, arg1);
}
@Override
public Logger getLogger()
{
return rscp.getLogger();
}
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args)
{
return rscp.onTabComplete(sender, cmd, label, args);
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
{
return rscp.onCommand(sender, cmd, label, args);
}
}

12
src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java

@ -75,13 +75,21 @@ public final class BukkitPluginMain extends JavaPlugin
metrics.start();
consoleLog.info(Phrases.PLUGIN_METRICS.toString());
} catch(IOException ex) {
consoleLog.log(Level.INFO, "[rscp][Metrics] Exception: {0}", ex);
consoleLog.log(Level.WARNING, "[rscp][Metrics] Exception: {0}", ex);
}
// Register event's dispatcher
getServer().getPluginManager().registerEvents(bukkitListener, this);
regionUpdateObserver.registerListeners();
// Integrate Vault
// Integrate Vault and WEPIF
bridgeForBukkit.setupVault();
getServer().getScheduler().runTask(this, new Runnable()
{
@Override
public void run()
{
bridgeForBukkit.setupWEPIF();
}
});
// WorldGuard, Residence and other possible region list providers
regionListProvider.integrate();
// Start all needed parallel threads as daemons

4
src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Engine;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@ -15,6 +16,7 @@ import ru.simsonic.rscPermissions.API.RowInheritance;
import ru.simsonic.rscPermissions.API.RowPermission;
import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscPermissions.Backends.DatabaseContents;
import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes;
public class InternalCache
{
@ -199,6 +201,8 @@ public class InternalCache
intermediateResults.add(resolveParent(params));
}
final ResolutionResult result = processPrefixesAndSuffixes(params, intermediateResults);
result.prefix = GenericChatCodes.processStringStatic(result.prefix);
result.suffix = GenericChatCodes.processStringStatic(result.suffix);
processPermissions(params, applicablePermissions);
result.permissions = params.finalPerms;
result.groups = params.groupList;

3
src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Engine;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@ -18,6 +19,8 @@ public enum Phrases
PLUGIN_CONSOLE_ONLY("generic.console-only"),
INTEGRATION_V_Y ("integration.vault-yes"),
INTEGRATION_V_N ("integration.vault-no"),
INTEGRATION_WE_Y ("integration.worldedit-yes"),
INTEGRATION_WE_N ("integration.worldedit-no"),
INTEGRATION_WG_Y ("integration.worldguard-yes"),
INTEGRATION_WG_N ("integration.worldguard-no"),
INTEGRATION_WG_OLD ("integration.worldguard-old"),

14
src/main/java/ru/simsonic/rscPermissions/Engine/ResolutionResult.java

@ -1,8 +1,10 @@
package ru.simsonic.rscPermissions.Engine;
import java.util.ArrayList;
import java.util.Map;
import java.util.Set;
import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes;
public class ResolutionResult
{
@ -17,6 +19,18 @@ public class ResolutionResult
return entry.getValue();
return false;
}
public boolean hasPermissionWC(String permission)
{
for(Map.Entry<String, Boolean> entry : permissions.entrySet())
{
final String key = entry.getKey();
if(key.equals(permission))
return entry.getValue();
if(key.contains("*") && GenericChatCodes.wildcardMatch(permission, key))
return entry.getValue();
}
return false;
}
public String[] getDeorderedGroups()
{
final ArrayList<String> list = new ArrayList(groups.size());

2
src/main/resources/languages/english.yml

@ -8,6 +8,8 @@ generic:
integration:
vault-yes: "{_LG}Vault was found and integrated."
vault-no: "{_LR}There is no Vault found. Vault is highly recommended to be installed on your server."
worldedit-yes: "{_LG}WorldEdit (WEPIF) was found and integrated."
worldedit-no: "{_YL}WorldEdit (WEPIF) was not found."
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."

2
src/main/resources/languages/russian.yml

@ -8,6 +8,8 @@ generic:
integration:
vault-yes: "{_LG}Vault обнаружён и подключён."
vault-no: "{_LR}Не удаётся найти плагин Vault. Рекомендуется его скорейшая установка."
worldedit-yes: "{_LG}WorldEdit (WEPIF) обнаружён и подключён."
worldedit-no: "{_YL}WorldEdit (WEPIF) не обнаружен."
worldguard-yes: "{_LG}WorldGuard обнаружён и подключён."
worldguard-no: "{_YL}WorldGuard не обнаружен."
worldguard-old: "{_LR}Найден WorldGuard 5.9 или старше, но для работы требуется версия 6.0 или новее. {_YL}Поддержка регионов WG будет отключена."

Loading…
Cancel
Save