diff options
author | snowleo <schneeleo@gmail.com> | 2012-10-16 00:15:38 +0200 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2012-10-16 00:15:38 +0200 |
commit | 4f4f9d87025c0e716dfe7a42b636086ffa0a8c80 (patch) | |
tree | d64a8e596cd03688f0a62a01d4aaea5345c140aa | |
parent | 80bdae2cc9f6af206f3b96d771dbd9b2b34ccaaa (diff) | |
download | Essentials-4f4f9d87025c0e716dfe7a42b636086ffa0a8c80.tar Essentials-4f4f9d87025c0e716dfe7a42b636086ffa0a8c80.tar.gz Essentials-4f4f9d87025c0e716dfe7a42b636086ffa0a8c80.tar.lz Essentials-4f4f9d87025c0e716dfe7a42b636086ffa0a8c80.tar.xz Essentials-4f4f9d87025c0e716dfe7a42b636086ffa0a8c80.zip |
Cleanup of ranks and make it more resistant against exceptions from external code
-rw-r--r-- | Essentials/src/net/ess3/ranks/GMGroups.java | 157 | ||||
-rw-r--r-- | Essentials/src/net/ess3/ranks/RankOptions.java | 2 | ||||
-rw-r--r-- | Essentials/src/net/ess3/ranks/RanksStorage.java | 15 | ||||
-rw-r--r-- | Essentials/src/net/ess3/ranks/VaultGroups.java | 134 |
4 files changed, 221 insertions, 87 deletions
diff --git a/Essentials/src/net/ess3/ranks/GMGroups.java b/Essentials/src/net/ess3/ranks/GMGroups.java index 4d2a278d9..55a6295d3 100644 --- a/Essentials/src/net/ess3/ranks/GMGroups.java +++ b/Essentials/src/net/ess3/ranks/GMGroups.java @@ -1,5 +1,6 @@ package net.ess3.ranks; +import java.util.logging.Level; import net.ess3.api.IEssentials; import net.ess3.api.IRanks; import net.ess3.api.ISettings; @@ -19,84 +20,130 @@ public class GMGroups extends AbstractRanks implements IRanks this.ess = ess; this.groupManager = (GroupManager)groupManager; } - - @Override - public double getHealCooldown(CommandSender player) + + private double getGMDouble(final CommandSender player, final String key, final double defaultValue) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); - if (handler == null) + try + { + final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); + if (handler == null) + { + return defaultValue; + } + return handler.getPermissionDouble(player.getName(), key); + } + catch (Exception e) { - return 0; + ess.getLogger().log(Level.WARNING, e.getMessage(), e); + return defaultValue; } - return handler.getPermissionDouble(player.getName(), "healcooldown"); } - @Override - public double getTeleportCooldown(CommandSender player) + private int getGMInteger(final CommandSender player, final String key, final int defaultValue) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); - if (handler == null) + try + { + final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); + if (handler == null) + { + return defaultValue; + } + return handler.getPermissionInteger(player.getName(), key); + } + catch (Exception e) { - return 0; + ess.getLogger().log(Level.WARNING, e.getMessage(), e); + return defaultValue; } - return handler.getPermissionDouble(player.getName(), "teleportcooldown"); } - @Override - public double getTeleportDelay(CommandSender player) + private String getGMString(final CommandSender player, final String key, final String defaultValue) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); - if (handler == null) + try { - return 0; + final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); + if (handler == null) + { + return defaultValue; + } + return handler.getPermissionString(player.getName(), key); + } + catch (Exception e) + { + ess.getLogger().log(Level.WARNING, e.getMessage(), e); + return defaultValue; } - return handler.getPermissionDouble(player.getName(), "teleportdelay"); } @Override - public String getPrefix(CommandSender player) + public double getHealCooldown(final CommandSender player) + { + return getGMDouble(player, "healcooldown", 0); + } + + @Override + public double getTeleportCooldown(final CommandSender player) + { + return getGMDouble(player, "teleportcooldown", 0); + } + + @Override + public double getTeleportDelay(final CommandSender player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); - if (handler == null) + return getGMDouble(player, "teleportdelay", 0); + } + + @Override + public String getPrefix(final CommandSender player) + { + try + { + final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); + if (handler == null) + { + return null; + } + return handler.getUserPrefix(player.getName()); + } + catch (Exception e) { + ess.getLogger().log(Level.WARNING, e.getMessage(), e); return null; } - return handler.getUserPrefix(player.getName()); } @Override - public String getSuffix(CommandSender player) + public String getSuffix(final CommandSender player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); - if (handler == null) + try + { + final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); + if (handler == null) + { + return null; + } + return handler.getUserSuffix(player.getName()); + } + catch (Exception e) { + ess.getLogger().log(Level.WARNING, e.getMessage(), e); return null; } - return handler.getUserSuffix(player.getName()); } @Override - public int getHomeLimit(CommandSender player) + public int getHomeLimit(final CommandSender player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); - if (handler == null) - { - return 0; - } - return handler.getPermissionInteger(player.getName(), "homes"); + return getGMInteger(player, "homes", 1); } @Override protected String getRawChatFormat(final CommandSender player) { - AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); - if (handler != null) + String chatformat = getGMString(player, "chatformat", null); + if (chatformat != null && !chatformat.isEmpty()) { - String chatformat = handler.getPermissionString(player.getName(), "chatformat"); - if (chatformat != null && !chatformat.isEmpty()) - { - return chatformat; - } + return chatformat; } ISettings settings = ess.getSettings(); @@ -106,22 +153,38 @@ public class GMGroups extends AbstractRanks implements IRanks @Override public String getMainGroup(CommandSender player) { - final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); - if (handler == null) + try + { + final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); + if (handler == null) + { + return null; + } + return handler.getGroup(player.getName()); + } + catch (Exception e) { + ess.getLogger().log(Level.WARNING, e.getMessage(), e); return null; } - return handler.getGroup(player.getName()); } @Override public boolean inGroup(CommandSender player, String groupname) { - final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); - if (handler == null) + try + { + final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player)); + if (handler == null) + { + return false; + } + return handler.inGroup(player.getName(), groupname); + } + catch (Exception e) { + ess.getLogger().log(Level.WARNING, e.getMessage(), e); return false; } - return handler.inGroup(player.getName(), groupname); } } diff --git a/Essentials/src/net/ess3/ranks/RankOptions.java b/Essentials/src/net/ess3/ranks/RankOptions.java index c22e493f5..6d2b44f58 100644 --- a/Essentials/src/net/ess3/ranks/RankOptions.java +++ b/Essentials/src/net/ess3/ranks/RankOptions.java @@ -11,7 +11,7 @@ import net.ess3.storage.StorageObject; public class RankOptions implements StorageObject { @Comment("Message format of chat messages") - private String messageFormat; + private String chatFormat; @Comment("Prefix for name") private String prefix; @Comment("Suffix for name") diff --git a/Essentials/src/net/ess3/ranks/RanksStorage.java b/Essentials/src/net/ess3/ranks/RanksStorage.java index d5763687b..694dd7c65 100644 --- a/Essentials/src/net/ess3/ranks/RanksStorage.java +++ b/Essentials/src/net/ess3/ranks/RanksStorage.java @@ -17,14 +17,15 @@ import org.bukkit.command.CommandSender; public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRanks { - private AbstractRanks abstractRanks = new AbstractRanks() { + private AbstractRanks abstractRanks = new AbstractRanks() + { @Override - protected String getRawChatFormat(CommandSender sender) + protected String getRawChatFormat(final CommandSender sender) { return RanksStorage.this.getRawChatFormat(sender); } }; - + @Override public void finishRead() { @@ -150,9 +151,9 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa { for (Entry<String, RankOptions> groupOptions : getGroups(player)) { - if (groupOptions.getValue().getMessageFormat() != null) + if (groupOptions.getValue().getChatFormat() != null) { - return groupOptions.getValue().getMessageFormat(); + return groupOptions.getValue().getChatFormat(); } } @@ -161,7 +162,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa } @Override - public boolean inGroup(CommandSender player, String groupname) + public boolean inGroup(final CommandSender player, final String groupname) { for (Entry<String, RankOptions> groupOptions : getGroups(player)) { @@ -174,7 +175,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa } @Override - public String getMainGroup(CommandSender player) + public String getMainGroup(final CommandSender player) { for (Entry<String, RankOptions> groupOptions : getGroups(player)) { diff --git a/Essentials/src/net/ess3/ranks/VaultGroups.java b/Essentials/src/net/ess3/ranks/VaultGroups.java index c4dfd062d..ef5d1b64a 100644 --- a/Essentials/src/net/ess3/ranks/VaultGroups.java +++ b/Essentials/src/net/ess3/ranks/VaultGroups.java @@ -1,5 +1,6 @@ package net.ess3.ranks; +import java.util.logging.Level; import net.ess3.api.IEssentials; import net.ess3.api.IRanks; import net.ess3.api.ISettings; @@ -16,86 +17,155 @@ public class VaultGroups extends AbstractRanks implements IRanks { this.ess = ess; } - - private <T> T getServiceProvider(Class<T> clazz) { - RegisteredServiceProvider<T> provider = ess.getServer().getServicesManager().getRegistration(clazz); + + private <T> T getServiceProvider(final Class<T> clazz) + { + final RegisteredServiceProvider<T> provider = ess.getServer().getServicesManager().getRegistration(clazz); return provider.getProvider(); } + private double getVaultDouble(final CommandSender player, final String key, final double defaultValue) + { + try + { + final Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerInfoDouble(getPlayer(player), key, defaultValue); + } + catch (Exception e) + { + ess.getLogger().log(Level.WARNING, e.getMessage(), e); + return defaultValue; + } + } + + private int getVaultInteger(final CommandSender player, final String key, final int defaultValue) + { + try + { + final Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerInfoInteger(getPlayer(player), key, defaultValue); + } + catch (Exception e) + { + ess.getLogger().log(Level.WARNING, e.getMessage(), e); + return defaultValue; + } + } + + private String getVaultString(final CommandSender player, final String key, final String defaultValue) + { + try + { + final Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerInfoString(getPlayer(player), key, defaultValue); + } + catch (Exception e) + { + ess.getLogger().log(Level.WARNING, e.getMessage(), e); + return defaultValue; + } + } + @Override - public double getHealCooldown(CommandSender player) + public double getHealCooldown(final CommandSender player) { - Chat chat = getServiceProvider(Chat.class); - return chat.getPlayerInfoDouble(getPlayer(player), "healcooldown", 0); + return getVaultDouble(player, "healcooldown", 0); } @Override - public double getTeleportCooldown(CommandSender player) + public double getTeleportCooldown(final CommandSender player) { - Chat chat = getServiceProvider(Chat.class); - return chat.getPlayerInfoDouble(getPlayer(player), "teleportcooldown", 0); + return getVaultDouble(player, "teleportcooldown", 0); } @Override - public double getTeleportDelay(CommandSender player) + public double getTeleportDelay(final CommandSender player) { - Chat chat = getServiceProvider(Chat.class); - return chat.getPlayerInfoDouble(getPlayer(player), "teleportdelay", 0); + return getVaultDouble(player, "teleportdelay", 0); } @Override - public String getPrefix(CommandSender player) + public String getPrefix(final CommandSender player) { - Chat chat = getServiceProvider(Chat.class); - return chat.getPlayerPrefix(getPlayer(player)); + try + { + final Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerPrefix(getPlayer(player)); + } + catch (Exception e) + { + ess.getLogger().log(Level.WARNING, e.getMessage(), e); + return null; + } } @Override - public String getSuffix(CommandSender player) + public String getSuffix(final CommandSender player) { - Chat chat = getServiceProvider(Chat.class); - return chat.getPlayerSuffix(getPlayer(player)); + try + { + final Chat chat = getServiceProvider(Chat.class); + return chat.getPlayerSuffix(getPlayer(player)); + } + catch (Exception e) + { + ess.getLogger().log(Level.WARNING, e.getMessage(), e); + return null; + } } @Override - public int getHomeLimit(CommandSender player) + public int getHomeLimit(final CommandSender player) { - Chat chat = getServiceProvider(Chat.class); - return chat.getPlayerInfoInteger(getPlayer(player), "homes", 0); + return getVaultInteger(player, "homes", 1); } @Override protected String getRawChatFormat(final CommandSender player) { - Chat chat = getServiceProvider(Chat.class); - String chatformat = chat.getPlayerInfoString(getPlayer(player), "chatformat", ""); + final String chatformat = getVaultString(player, "chatformat", null); if (chatformat != null && !chatformat.isEmpty()) { return chatformat; } - ISettings settings = ess.getSettings(); + final ISettings settings = ess.getSettings(); return settings.getData().getChat().getDefaultFormat(); } @Override - public String getMainGroup(CommandSender player) + public String getMainGroup(final CommandSender player) { - Chat chat = getServiceProvider(Chat.class); - return chat.getPrimaryGroup(getPlayer(player)); + try + { + final Chat chat = getServiceProvider(Chat.class); + return chat.getPrimaryGroup(getPlayer(player)); + } + catch (Exception e) + { + ess.getLogger().log(Level.WARNING, e.getMessage(), e); + return null; + } } @Override - public boolean inGroup(CommandSender player, String groupname) + public boolean inGroup(final CommandSender player, final String groupname) { - Chat chat = getServiceProvider(Chat.class); - for (String group : chat.getPlayerGroups(getPlayer(player))) + try { - if (group.equalsIgnoreCase(groupname)) + final Chat chat = getServiceProvider(Chat.class); + for (String group : chat.getPlayerGroups(getPlayer(player))) { - return true; + if (group.equalsIgnoreCase(groupname)) + { + return true; + } } } + catch (Exception e) + { + ess.getLogger().log(Level.WARNING, e.getMessage(), e); + } return false; } } |