From 45bbad963dee738614e374a6e00c576107dcdc58 Mon Sep 17 00:00:00 2001 From: Stanislav Usenkov Date: Mon, 2 Mar 2015 16:58:53 +0600 Subject: [PATCH] A little bit functional code with Vault. --- .../Bukkit/Commands/BukkitCommands.java | 6 ++-- .../rscPermissions/Bukkit/VaultChat.java | 8 +++--- .../Bukkit/VaultPermission.java | 4 ++- .../rscPermissions/Engine/InternalCache.java | 10 +++++++ .../rscPermissions/Engine/Phrases.java | 28 ++++++++++--------- src/main/resources/languages/english.yml | 12 ++++---- src/main/resources/languages/russian.yml | 12 ++++---- src/main/resources/plugin.yml | 8 +++--- 8 files changed, 53 insertions(+), 35 deletions(-) diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java index 4f685ec..f08eede 100644 --- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java +++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java @@ -230,7 +230,7 @@ public class BukkitCommands if(sender.hasPermission("rscp.admin.reload")) { threadFetchDatabaseContents.startDeamon(); - throw new CommandAnswerException("Tables have been fetched."); + throw new CommandAnswerException(Phrases.MYSQL_FETCHED.toString()); } return; case "reload": @@ -239,13 +239,13 @@ public class BukkitCommands { rscp.getServer().getPluginManager().disablePlugin(rscp); rscp.getServer().getPluginManager().enablePlugin(rscp); - throw new CommandAnswerException("Plugin has been reloaded."); + throw new CommandAnswerException(Phrases.PLUGIN_RELOADED.toString()); } return; case "debug": /* rscp debug [yes|on|no|off|toggle] */ if(sender instanceof ConsoleCommandSender) - throw new CommandAnswerException("{_LR}This command cannot be run from console."); + throw new CommandAnswerException(Phrases.PLUGIN_PLAYER_ONLY.toString()); if(sender.hasPermission("rscp.admin")) { final Player player = (Player)sender; diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultChat.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultChat.java index cc39ea0..38bc8ad 100644 --- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultChat.java +++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultChat.java @@ -101,23 +101,23 @@ public final class VaultChat extends VaultDeprecatedChat @Override public String getGroupPrefix(String world, String group) { - throw new UnsupportedOperationException("This method is unsupported by rscPermissions."); + return rscp.internalCache.getGroup(group).prefix; } @Override public String getGroupPrefix(World world, String group) { - throw new UnsupportedOperationException("This method is unsupported by rscPermissions."); + return rscp.internalCache.getGroup(group).prefix; } // ***** GET GROUP SUFFIX ***** @Override public String getGroupSuffix(String world, String group) { - throw new UnsupportedOperationException("This method is unsupported by rscPermissions."); + return rscp.internalCache.getGroup(group).suffix; } @Override public String getGroupSuffix(World world, String group) { - throw new UnsupportedOperationException("This method is unsupported by rscPermissions."); + return rscp.internalCache.getGroup(group).suffix; } // ***** SET GROUP PREFIX ***** @Override diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultPermission.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultPermission.java index c86417c..bd2027a 100644 --- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultPermission.java +++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/VaultPermission.java @@ -254,6 +254,8 @@ public final class VaultPermission extends net.milkbowl.vault.permission.Permiss @Override public String getPrimaryGroup(Player player) { - throw new UnsupportedOperationException("This method is unsupported by rscPermissions."); + final Set result = rscp.permissionManager.getPlayerGroups(player); + final String[] array = result.toArray(new String[result.size()]); + return array.length > 0 ? array[array.length - 1] : rscp.settings.getDefaultGroup(); } } diff --git a/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java b/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java index 702122b..eb95786 100644 --- a/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java +++ b/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java @@ -283,6 +283,16 @@ public class InternalCache ? row.destination.isRegionApplicable(params.destRegions, params.instantiator) : false; } + public RowEntity getGroup(String group) + { + if(group != null && !"".equals(group)) + { + final RowEntity row = entities_g.get(group.toLowerCase()); + if(row != null) + return row; + } + return new RowEntity(); + } public synchronized void clear() { entities_g.clear(); diff --git a/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java b/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java index 9381048..4087824 100644 --- a/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java +++ b/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java @@ -10,19 +10,21 @@ import ru.simsonic.rscPermissions.BukkitPluginMain; public enum Phrases { - PLUGIN_ENABLED ("generic.enabled"), - PLUGIN_DISABLED ("generic.disabled"), - PLUGIN_METRICS ("generic.metrics"), - PLUGIN_RELOADED ("generic.reloaded"), - INTEGRATION_V_Y ("integration.vault-yes"), - INTEGRATION_V_N ("integration.vault-no"), - INTEGRATION_WG_Y ("integration.worldguard-yes"), - INTEGRATION_WG_N ("integration.worldguard-no"), - INTEGRATION_R_Y ("integration.residence-yes"), - INTEGRATION_R_N ("integration.residence-no"), - DEBUG_ON ("debug.enable"), - DEBUG_OFF ("debug.disable"), - MYSQL_FETCHED ("mysql.fetched"), + PLUGIN_ENABLED ("generic.enabled"), + PLUGIN_DISABLED ("generic.disabled"), + PLUGIN_METRICS ("generic.metrics"), + PLUGIN_RELOADED ("generic.reloaded"), + PLUGIN_PLAYER_ONLY ("generic.player-only"), + PLUGIN_CONSOLE_ONLY("generic.console-only"), + INTEGRATION_V_Y ("integration.vault-yes"), + INTEGRATION_V_N ("integration.vault-no"), + INTEGRATION_WG_Y ("integration.worldguard-yes"), + INTEGRATION_WG_N ("integration.worldguard-no"), + INTEGRATION_R_Y ("integration.residence-yes"), + INTEGRATION_R_N ("integration.residence-no"), + DEBUG_ON ("debug.enable"), + DEBUG_OFF ("debug.disable"), + MYSQL_FETCHED ("mysql.fetched"), ; private final String node; private String phrase; diff --git a/src/main/resources/languages/english.yml b/src/main/resources/languages/english.yml index 67ca3d0..c3d30e9 100644 --- a/src/main/resources/languages/english.yml +++ b/src/main/resources/languages/english.yml @@ -1,8 +1,10 @@ generic: - enabled: "[rscp] rscPermissions has been successfully enabled." - disabled: "[rscp] rscPermissions has been disabled." - reloaded: "[rscp] rscPermissions has been reloaded." - metrics: "[rscp] Metrics enabled." + enabled: "[rscp] rscPermissions has been successfully enabled." + disabled: "[rscp] rscPermissions has been disabled." + reloaded: "[rscp] rscPermissions has been reloaded." + metrics: "[rscp] Metrics enabled." + player-only: "{_LR}This command cannot be run from console." + console-only: "{_LR}This command should be run from console." 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." @@ -14,4 +16,4 @@ debug: enable: "{_LS}You will see a lot of debugging information now." disable: "{_LS}Debugging information is now hidden for you." mysql: - fetched: "[rscp] " + fetched: "Tables have been fetched." diff --git a/src/main/resources/languages/russian.yml b/src/main/resources/languages/russian.yml index c9ffa33..03097e7 100644 --- a/src/main/resources/languages/russian.yml +++ b/src/main/resources/languages/russian.yml @@ -1,8 +1,10 @@ generic: - enabled: "[rscp] Плагин rscPermissions успешно включён." - disabled: "[rscp] Плагин rscPermissions выключен." - reloaded: "[rscp] Плагин rscPermissions перезапущен, конфигурация перечитана." - metrics: "[rscp] Включён сбор метрики (mcstats.org)." + enabled: "[rscp] Плагин rscPermissions успешно включён." + disabled: "[rscp] Плагин rscPermissions выключен." + reloaded: "[rscp] Плагин rscPermissions перезапущен, конфигурация перечитана." + metrics: "[rscp] Включён сбор метрики (mcstats.org)." + player-only: "[rscp] Эта команда не может быть использована из консоли." + console-only: "[rscp] Эта команда может быть использована только из консоли." integration: vault-yes: "{_LG}Vault обнаружён и подключён." vault-no: "{_LR}Не удаётся найти плагин Vault. Рекомендуется его скорейшая установка." @@ -14,4 +16,4 @@ debug: enable: "{_LS}Теперь Вы будете видеть отладочную информацию." disable: "{_LS}Отладочная информация теперь скрыта от Вас." mysql: - fetched: "[rscp] " + fetched: "База данных перечитана." diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index cca0094..3889c70 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,10 +4,10 @@ website: ${project.url} main: ${project.groupId}.${project.artifactId}.BukkitPluginMain author: SimSonic softdepend: - - Vault - - WorldEdit - - WorldGuard - - Residence +- Vault +- WorldEdit +- WorldGuard +- Residence commands: rscp: description: rscPermissions command hub