From 8ab5bad988f7ad9c8a1fafd504cf108f3ec84cc3 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 5 Feb 2012 17:19:32 +0100 Subject: Modified BetterLocation, and new Permission-System --- .../earth2me/essentials/chat/ChatPermissions.java | 22 ++++++++++++++++++++++ .../essentials/chat/EssentialsChatPlayer.java | 8 +++----- .../chat/EssentialsLocalChatEventListener.java | 3 ++- 3 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 EssentialsChat/src/com/earth2me/essentials/chat/ChatPermissions.java (limited to 'EssentialsChat/src') diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/ChatPermissions.java b/EssentialsChat/src/com/earth2me/essentials/chat/ChatPermissions.java new file mode 100644 index 000000000..5b98002c5 --- /dev/null +++ b/EssentialsChat/src/com/earth2me/essentials/chat/ChatPermissions.java @@ -0,0 +1,22 @@ +package com.earth2me.essentials.chat; + +import com.earth2me.essentials.api.IPermission; +import com.earth2me.essentials.perm.BasePermission; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +public class ChatPermissions { + private static Map permissions = new HashMap(); + + public static IPermission getPermission(final String groupName) + { + IPermission perm = permissions.get(groupName); + if (perm == null) + { + perm = new BasePermission("essentials.chat.",groupName.toLowerCase(Locale.ENGLISH)); + permissions.put(groupName, perm); + } + return perm; + } +} diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java index a4621661b..cc21b6dae 100644 --- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java @@ -8,6 +8,7 @@ import com.earth2me.essentials.api.IEssentials; import com.earth2me.essentials.api.IGroups; import com.earth2me.essentials.api.ISettings; import com.earth2me.essentials.api.IUser; +import com.earth2me.essentials.perm.Permissions; import java.util.Locale; import java.util.Map; import java.util.logging.Logger; @@ -77,7 +78,7 @@ public abstract class EssentialsChatPlayer implements Listener protected void formatChat(final PlayerChatEvent event, final ChatStore chatStore) { final IUser user = chatStore.getUser(); - if (user.isAuthorized("essentials.chat.color")) + if (Permissions.CHAT_COLOR.isAuthorized(user)) { event.setMessage(Util.stripColor(event.getMessage())); } @@ -141,10 +142,7 @@ public abstract class EssentialsChatPlayer implements Listener if (event.getMessage().length() > 1 && chatStore.getType().length() > 0) { - final StringBuilder permission = new StringBuilder(); - permission.append("essentials.chat.").append(chatStore.getType()); - - if (user.isAuthorized(permission.toString())) + if (ChatPermissions.getPermission(chatStore.getType()).isAuthorized(user)) { final StringBuilder format = new StringBuilder(); format.append(chatStore.getType()).append("Format"); diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsLocalChatEventListener.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsLocalChatEventListener.java index c7ce5a70d..1eb589ff1 100644 --- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsLocalChatEventListener.java +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsLocalChatEventListener.java @@ -3,6 +3,7 @@ package com.earth2me.essentials.chat; import static com.earth2me.essentials.I18n._; import com.earth2me.essentials.api.IEssentials; import com.earth2me.essentials.api.IUser; +import com.earth2me.essentials.perm.Permissions; import java.util.logging.Logger; import org.bukkit.Location; import org.bukkit.Server; @@ -52,7 +53,7 @@ public class EssentialsLocalChatEventListener implements Listener if (delta > event.getRadius()) { - if (user.isAuthorized("essentials.chat.spy")) + if (Permissions.CHAT_SPY.isAuthorized(user)) { type = type.concat(_("chatTypeSpy")); } -- cgit v1.2.3