From 4f16c8b5a781b7df47ceaf239895c2ecec30ab53 Mon Sep 17 00:00:00 2001 From: snowleo Date: Tue, 7 Jun 2011 00:24:39 +0200 Subject: [PATCH] Permissions 3.1.4 Added Code for Perm2, Perm3 and Config Permissions Cleaned EssentialsChat --- .gitignore | 3 +- BuildAll/nbproject/build-impl.xml | 22 +- BuildAll/nbproject/genfiles.properties | 6 +- BuildAll/nbproject/project.properties | 9 +- BuildAll/nbproject/project.xml | 10 +- Essentials/nbproject/project.properties | 4 +- .../essentials/ConfigPermissionsHandler.java | 45 + .../com/earth2me/essentials/Essentials.java | 21 +- .../com/earth2me/essentials/IEssentials.java | 2 + .../essentials/IPermissionsHandler.java | 21 + .../essentials/Permissions2Handler.java | 48 + .../essentials/Permissions3Handler.java | 48 + .../earth2me/essentials/PlayerExtension.java | 27 +- .../src/com/earth2me/essentials/User.java | 12 +- .../essentials/chat/EssentialsChat.java | 23 +- .../chat/EssentialsChatPlayerListener.java | 122 +- .../essentials/chat/EssentialsChatWorker.java | 124 -- EssentialsGeoIP/nbproject/project.properties | 5 +- EssentialsPermissionsCommands/build.xml | 74 ++ EssentialsPermissionsCommands/manifest.mf | 3 + .../nbproject/build-impl.xml | 1080 +++++++++++++++++ .../nbproject/genfiles.properties | 8 + .../nbproject/project.properties | 79 ++ .../nbproject/project.xml | 28 + .../permissions/Commandmanuadd.java | 22 + .../EssentialsPermissionsCommands.java | 26 + EssentialsPermissionsCommands/src/plugin.yml | 166 +++ lib/Permissions3.jar | Bin 0 -> 72897 bytes 28 files changed, 1795 insertions(+), 243 deletions(-) create mode 100644 Essentials/src/com/earth2me/essentials/ConfigPermissionsHandler.java create mode 100644 Essentials/src/com/earth2me/essentials/IPermissionsHandler.java create mode 100644 Essentials/src/com/earth2me/essentials/Permissions2Handler.java create mode 100644 Essentials/src/com/earth2me/essentials/Permissions3Handler.java delete mode 100644 EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatWorker.java create mode 100644 EssentialsPermissionsCommands/build.xml create mode 100644 EssentialsPermissionsCommands/manifest.mf create mode 100644 EssentialsPermissionsCommands/nbproject/build-impl.xml create mode 100644 EssentialsPermissionsCommands/nbproject/genfiles.properties create mode 100644 EssentialsPermissionsCommands/nbproject/project.properties create mode 100644 EssentialsPermissionsCommands/nbproject/project.xml create mode 100644 EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuadd.java create mode 100644 EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/EssentialsPermissionsCommands.java create mode 100644 EssentialsPermissionsCommands/src/plugin.yml create mode 100755 lib/Permissions3.jar diff --git a/.gitignore b/.gitignore index 9035e9eae..fd2e7e598 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,5 @@ /EssentialsXMPP/dist/ /EssentialsXMPP/build/ /EssentialsProtect/dist/ -/EssentialsProtect/build/ \ No newline at end of file +/EssentialsProtect/build/ +/EssentialsPermissionsCommands/nbproject/private/ \ No newline at end of file diff --git a/BuildAll/nbproject/build-impl.xml b/BuildAll/nbproject/build-impl.xml index 61cea7f34..576a464dd 100644 --- a/BuildAll/nbproject/build-impl.xml +++ b/BuildAll/nbproject/build-impl.xml @@ -624,15 +624,8 @@ is divided into following sections: - - - - - - - - - + + @@ -1116,15 +1109,8 @@ is divided into following sections: - - - - - - - - - + + diff --git a/BuildAll/nbproject/genfiles.properties b/BuildAll/nbproject/genfiles.properties index 5bff626f0..c5989c1d3 100644 --- a/BuildAll/nbproject/genfiles.properties +++ b/BuildAll/nbproject/genfiles.properties @@ -1,8 +1,8 @@ -build.xml.data.CRC32=51b33957 +build.xml.data.CRC32=2eb9432b build.xml.script.CRC32=7a797370 build.xml.stylesheet.CRC32=28e38971@1.43.1.45 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=51b33957 -nbproject/build-impl.xml.script.CRC32=7a6cee4f +nbproject/build-impl.xml.data.CRC32=2eb9432b +nbproject/build-impl.xml.script.CRC32=f6f34008 nbproject/build-impl.xml.stylesheet.CRC32=0c01fd8e@1.43.1.45 diff --git a/BuildAll/nbproject/project.properties b/BuildAll/nbproject/project.properties index d0076cd5f..ec2dbb574 100644 --- a/BuildAll/nbproject/project.properties +++ b/BuildAll/nbproject/project.properties @@ -31,9 +31,8 @@ jar.compress=false javac.classpath=\ ${reference.Essentials.jar}:\ ${reference.EssentialsChat.jar}:\ - ${reference.EssentialsGroupBridge.jar}:\ - ${reference.EssentialsGroupManager.jar}:\ ${reference.EssentialsProtect.jar}:\ + ${reference.EssentialsPermissionsCommands.jar}:\ ${reference.EssentialsSpawn.jar}:\ ${reference.EssentialsGeoIP.jar}:\ ${reference.EssentialsXMPP.jar} @@ -68,16 +67,14 @@ platform.active=default_platform project.Essentials=../Essentials project.EssentialsChat=../EssentialsChat project.EssentialsGeoIP=../EssentialsGeoIP -project.EssentialsGroupBridge=../EssentialsGroupBridge -project.EssentialsGroupManager=../EssentialsGroupManager +project.EssentialsPermissionsCommands=../EssentialsPermissionsCommands project.EssentialsProtect=../EssentialsProtect project.EssentialsSpawn=../EssentialsSpawn project.EssentialsXMPP=../EssentialsXMPP reference.Essentials.jar=${project.Essentials}/dist/Essentials.jar reference.EssentialsChat.jar=${project.EssentialsChat}/dist/EssentialsChat.jar reference.EssentialsGeoIP.jar=${project.EssentialsGeoIP}/dist/EssentialsGeoIP.jar -reference.EssentialsGroupBridge.jar=${project.EssentialsGroupBridge}/dist/EssentialsGroupBridge.jar -reference.EssentialsGroupManager.jar=${project.EssentialsGroupManager}/dist/EssentialsGroupManager.jar +reference.EssentialsPermissionsCommands.jar=${project.EssentialsPermissionsCommands}/dist/EssentialsPermissionsCommands.jar reference.EssentialsProtect.jar=${project.EssentialsProtect}/dist/EssentialsProtect.jar reference.EssentialsSpawn.jar=${project.EssentialsSpawn}/dist/EssentialsSpawn.jar reference.EssentialsXMPP.jar=${project.EssentialsXMPP}/dist/original-EssentialsXMPP.jar diff --git a/BuildAll/nbproject/project.xml b/BuildAll/nbproject/project.xml index 420233ac9..16460d7fc 100644 --- a/BuildAll/nbproject/project.xml +++ b/BuildAll/nbproject/project.xml @@ -40,15 +40,7 @@ jar - EssentialsGroupBridge - jar - - jar - clean - jar - - - EssentialsGroupManager + EssentialsPermissionsCommands jar jar diff --git a/Essentials/nbproject/project.properties b/Essentials/nbproject/project.properties index 0f92879ab..850d0d4d8 100644 --- a/Essentials/nbproject/project.properties +++ b/Essentials/nbproject/project.properties @@ -31,11 +31,11 @@ file.reference.craftbukkit-0.0.1-SNAPSHOT.jar=..\\lib\\craftbukkit-0.0.1-SNAPSHO file.reference.iCo4.jar=../lib/iCo4.jar file.reference.iCo5.jar=../lib/iCo5.jar file.reference.junit-4.5.jar=..\\lib\\junit_4\\junit-4.5.jar -file.reference.Permissions.jar=..\\lib\\Permissions.jar +file.reference.Permissions3.jar=../lib/Permissions3.jar includes=** jar.compress=false javac.classpath=\ - ${file.reference.Permissions.jar}:\ + ${file.reference.Permissions3.jar}:\ ${file.reference.craftbukkit-0.0.1-SNAPSHOT.jar}:\ ${file.reference.BOSEconomy.jar}:\ ${file.reference.iCo4.jar}:\ diff --git a/Essentials/src/com/earth2me/essentials/ConfigPermissionsHandler.java b/Essentials/src/com/earth2me/essentials/ConfigPermissionsHandler.java new file mode 100644 index 000000000..9e3b24b0d --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/ConfigPermissionsHandler.java @@ -0,0 +1,45 @@ +package com.earth2me.essentials; + +import org.bukkit.entity.Player; + + +public class ConfigPermissionsHandler implements IPermissionsHandler +{ + private final transient IEssentials ess; + + public ConfigPermissionsHandler(final IEssentials ess) + { + this.ess = ess; + } + + public String getGroup(final Player base) + { + return "default"; + } + + public boolean canBuild(final Player base, final String group) + { + return true; + } + + public boolean inGroup(final Player base, final String group) + { + return false; + } + + public boolean hasPermission(final Player base, final String node) + { + final String[] cmds = node.split("\\.", 2); + return !ess.getSettings().isCommandRestricted(cmds[cmds.length - 1]); + } + + public String getPrefix(final Player base) + { + return ""; + } + + public String getSuffix(final Player base) + { + return ""; + } +} diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 2dfb09344..2b30c5b02 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -62,6 +62,7 @@ public class Essentials extends JavaPlugin implements IEssentials private final Methods paymentMethod = new Methods(); private final static boolean enableErrorLogging = false; private final EssentialsErrorHandler errorHandler = new EssentialsErrorHandler(); + private IPermissionsHandler permissionsHandler; public static IEssentials getStatic() { @@ -139,6 +140,20 @@ public class Essentials extends JavaPlugin implements IEssentials logger.log(Level.INFO, Util.i18n("bukkitFormatChanged")); } + Plugin permissionsPlugin = pm.getPlugin("Permissions"); + + if (permissionsPlugin != null) + { + if (permissionsPlugin.getDescription().getVersion().charAt(0) == '3') { + this.permissionsHandler = new Permissions3Handler(permissionsPlugin); + } else { + this.permissionsHandler = new Permissions2Handler(permissionsPlugin); + } + } + else + { + this.permissionsHandler = new ConfigPermissionsHandler(this); + } final ServerListener serverListener = new EssentialsPluginListener(paymentMethod); pm.registerEvent(Type.PLUGIN_ENABLE, serverListener, Priority.Low, this); @@ -753,10 +768,14 @@ public class Essentials extends JavaPlugin implements IEssentials { return tntListener; } - + public EssentialsDependancyChecker getDependancyChecker() { return essDep; } + public IPermissionsHandler getPermissionsHandler() + { + return permissionsHandler; + } } diff --git a/Essentials/src/com/earth2me/essentials/IEssentials.java b/Essentials/src/com/earth2me/essentials/IEssentials.java index 10d3f16de..824de99a9 100644 --- a/Essentials/src/com/earth2me/essentials/IEssentials.java +++ b/Essentials/src/com/earth2me/essentials/IEssentials.java @@ -71,4 +71,6 @@ public interface IEssentials TNTExplodeListener getTNTListener(); EssentialsDependancyChecker getDependancyChecker(); + + IPermissionsHandler getPermissionsHandler(); } diff --git a/Essentials/src/com/earth2me/essentials/IPermissionsHandler.java b/Essentials/src/com/earth2me/essentials/IPermissionsHandler.java new file mode 100644 index 000000000..a7bcc80b7 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/IPermissionsHandler.java @@ -0,0 +1,21 @@ +package com.earth2me.essentials; + +import org.bukkit.entity.Player; + + +public interface IPermissionsHandler +{ + + String getGroup(Player base); + + boolean canBuild(Player base, String group); + + boolean inGroup(Player base, String group); + + boolean hasPermission(Player base, String node); + + String getPrefix(Player base); + + String getSuffix(Player base); + +} diff --git a/Essentials/src/com/earth2me/essentials/Permissions2Handler.java b/Essentials/src/com/earth2me/essentials/Permissions2Handler.java new file mode 100644 index 000000000..c588bb5fa --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/Permissions2Handler.java @@ -0,0 +1,48 @@ +package com.earth2me.essentials; + +import com.nijiko.permissions.PermissionHandler; +import com.nijikokun.bukkit.Permissions.Permissions; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; + + +public class Permissions2Handler implements IPermissionsHandler +{ + private final transient PermissionHandler permissionHandler; + + Permissions2Handler(final Plugin permissionsPlugin) + { + permissionHandler = ((Permissions)permissionsPlugin).getHandler(); + } + + public String getGroup(final Player base) + { + return permissionHandler.getGroup(base.getWorld().getName(), base.getName()); + } + + public boolean canBuild(final Player base, final String group) + { + return permissionHandler.canGroupBuild(base.getWorld().getName(), getGroup(base)); + } + + public boolean inGroup(final Player base, final String group) + { + return permissionHandler.inGroup(base.getWorld().getName(), base.getName(), group); + } + + public boolean hasPermission(final Player base, final String node) + { + return permissionHandler.permission(base, node); + } + + public String getPrefix(final Player base) + { + return permissionHandler.getGroupPrefix(base.getWorld().getName(), getGroup(base)); + } + + public String getSuffix(final Player base) + { + return permissionHandler.getGroupSuffix(base.getWorld().getName(), getGroup(base)); + } + +} diff --git a/Essentials/src/com/earth2me/essentials/Permissions3Handler.java b/Essentials/src/com/earth2me/essentials/Permissions3Handler.java new file mode 100644 index 000000000..99c95da0a --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/Permissions3Handler.java @@ -0,0 +1,48 @@ +package com.earth2me.essentials; + +import com.nijiko.permissions.PermissionHandler; +import com.nijikokun.bukkit.Permissions.Permissions; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; + + +public class Permissions3Handler implements IPermissionsHandler +{ + private final transient PermissionHandler permissionHandler; + + Permissions3Handler(final Plugin permissionsPlugin) + { + permissionHandler = ((Permissions)permissionsPlugin).getHandler(); + } + + public String getGroup(final Player base) + { + return permissionHandler.getPrimaryGroup(base.getWorld().getName(), base.getName()); + } + + public boolean canBuild(final Player base, final String group) + { + return permissionHandler.canUserBuild(base.getWorld().getName(), base.getName()); + } + + public boolean inGroup(final Player base, final String group) + { + return permissionHandler.inGroup(base.getWorld().getName(), base.getName(), group); + } + + public boolean hasPermission(final Player base, final String node) + { + return permissionHandler.has(base, node); + } + + public String getPrefix(final Player base) + { + return permissionHandler.getUserPrefix(base.getWorld().getName(), base.getName()); + } + + public String getSuffix(final Player base) + { + return permissionHandler.getUserSuffix(base.getWorld().getName(), base.getName()); + } + +} diff --git a/Essentials/src/com/earth2me/essentials/PlayerExtension.java b/Essentials/src/com/earth2me/essentials/PlayerExtension.java index 901edd345..c090dff2f 100644 --- a/Essentials/src/com/earth2me/essentials/PlayerExtension.java +++ b/Essentials/src/com/earth2me/essentials/PlayerExtension.java @@ -53,38 +53,17 @@ public class PlayerExtension extends PlayerWrapper public String getGroup() { - try - { - return com.nijikokun.bukkit.Permissions.Permissions.Security.getGroup(getWorld().getName(), getName()); - } - catch (Throwable ex) - { - return "default"; - } + return ess.getPermissionsHandler().getGroup(base); } public boolean inGroup(String group) { - try - { - return com.nijikokun.bukkit.Permissions.Permissions.Security.inGroup(getWorld().getName(), getName(), group); - } - catch (Throwable ex) - { - return false; - } + return ess.getPermissionsHandler().inGroup(base, group); } public boolean canBuild() { - try - { - return isOp() || com.nijikokun.bukkit.Permissions.Permissions.Security.canGroupBuild(getWorld().getName(), getGroup()); - } - catch (Throwable ex) - { - return true; - } + return ess.getPermissionsHandler().canBuild(base, getGroup()); } public EntityPlayer getHandle() diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index 8365aabe3..befbf111f 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -48,16 +48,8 @@ public class User extends UserData implements Comparable, IReplyTo, IUser { return false; } - - try - { - return com.nijikokun.bukkit.Permissions.Permissions.Security.permission(base, node); - } - catch (Throwable ex) - { - String[] cmds = node.split("\\.", 2); - return !ess.getSettings().isCommandRestricted(cmds[cmds.length - 1]); - } + + return ess.getPermissionsHandler().hasPermission(this, node); } public void healCooldown() throws Exception diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java index 0271fff6f..428413661 100644 --- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java @@ -6,30 +6,25 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.bukkit.event.Event.Priority; import org.bukkit.event.Event.Type; -import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; public class EssentialsChat extends JavaPlugin { - private static final Logger logger = Logger.getLogger("Minecraft"); - - public EssentialsChat() - { - super(); - } + private static final Logger LOGGER = Logger.getLogger("Minecraft"); public void onEnable() { - PluginManager pm = getServer().getPluginManager(); - EssentialsChatPlayerListener playerListener = new EssentialsChatPlayerListener(getServer()); - pm.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.Monitor, this); - pm.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Highest, this); - if (!this.getDescription().getVersion().equals(Essentials.getStatic().getDescription().getVersion())) { - logger.log(Level.WARNING, Util.i18n("versionMismatchAll")); + final PluginManager pluginManager = getServer().getPluginManager(); + final EssentialsChatPlayerListener playerListener = new EssentialsChatPlayerListener(getServer()); + pluginManager.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.Lowest, this); + pluginManager.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Highest, this); + if (!this.getDescription().getVersion().equals(Essentials.getStatic().getDescription().getVersion())) + { + LOGGER.log(Level.WARNING, Util.i18n("versionMismatchAll")); } - logger.info(Util.format("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), Essentials.AUTHORS)); + LOGGER.info(Util.format("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), Essentials.AUTHORS)); } public void onDisable() diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java index d3dff8538..211733818 100644 --- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java @@ -1,7 +1,14 @@ package com.earth2me.essentials.chat; import com.earth2me.essentials.Essentials; +import com.earth2me.essentials.IEssentials; +import com.earth2me.essentials.User; +import com.earth2me.essentials.Util; +import java.util.logging.Logger; +import org.bukkit.Location; import org.bukkit.Server; +import org.bukkit.World; +import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerListener; @@ -10,52 +17,109 @@ import org.bukkit.event.player.PlayerRespawnEvent; public class EssentialsChatPlayerListener extends PlayerListener { - private final Server server; + private static final Logger LOGGER = Logger.getLogger("Minecraft"); + private final transient IEssentials ess = Essentials.getStatic(); + private final transient Server server; - public EssentialsChatPlayerListener(Server server) + public EssentialsChatPlayerListener(final Server server) { this.server = server; } @Override - @SuppressWarnings("CallToThreadDumpStack") - public void onPlayerJoin(PlayerJoinEvent event) + public void onPlayerJoin(final PlayerJoinEvent event) { - try - { - EssentialsChatWorker.onPlayerJoin(server, event); - } - catch (Throwable ex) - { - ex.printStackTrace(); - } + final User user = ess.getUser(event.getPlayer()); + updateDisplayName(user); + } + + private void updateDisplayName(final User user) + { + final String prefix = ess.getPermissionsHandler().getPrefix(user).replace('&', '§').replace("{WORLDNAME}", user.getWorld().getName()); + final String suffix = ess.getPermissionsHandler().getSuffix(user).replace('&', '§').replace("{WORLDNAME}", user.getWorld().getName()); + + user.setDisplayName(prefix + user.getNick() + suffix + (suffix.length() > 1 && suffix.substring(suffix.length() - 2, suffix.length() - 1).equals("§") ? "" : "§f")); } @Override - @SuppressWarnings("CallToThreadDumpStack") - public void onPlayerRespawn(PlayerRespawnEvent event) + public void onPlayerChat(final PlayerChatEvent event) { - try + if (event.isCancelled()) { - EssentialsChatWorker.onPlayerRespawn(server, event); + return; } - catch (Throwable ex) - { - ex.printStackTrace(); - } - } + final User user = ess.getUser(event.getPlayer()); + updateDisplayName(user); - @Override - @SuppressWarnings("CallToThreadDumpStack") - public void onPlayerChat(PlayerChatEvent event) - { - try + if (user.isAuthorized("essentials.chat.color")) { - EssentialsChatWorker.onPlayerChat(server, event); + event.setMessage(event.getMessage().replaceAll("&([0-9a-f])", "§$1")); } - catch (Throwable ex) + + event.setFormat(ess.getSettings().getChatFormat(user.getGroup()).replace('&', '§').replace("§§", "&").replace("{DISPLAYNAME}", "%1$s").replace("{GROUP}", user.getGroup()).replace("{MESSAGE}", "%2$s").replace("{WORLDNAME}", user.getWorld().getName()).replace("{SHORTWORLDNAME}", user.getWorld().getName().substring(0, 1).toUpperCase())); + + final int radius = ess.getSettings().getChatRadius(); + if (radius < 1) { - ex.printStackTrace(); + return; + } + + if (event.getMessage().startsWith("!") && event.getMessage().length() > 1) + { + if (user.isAuthorized("essentials.chat.shout")) + { + event.setMessage(event.getMessage().substring(1)); + event.setFormat(Util.format("shoutFormat", event.getFormat())); + return; + } + user.sendMessage(Util.i18n("notAllowedToShout")); + event.setCancelled(true); + return; + } + + if (event.getMessage().startsWith("?") && event.getMessage().length() > 1) + { + if (user.isAuthorized("essentials.chat.question")) + { + event.setMessage(event.getMessage().substring(1)); + event.setFormat(Util.format("questionFormat", event.getFormat())); + return; + } + user.sendMessage(Util.i18n("notAllowedToQuestion")); + event.setCancelled(true); + return; + } + + event.setCancelled(true); + LOGGER.info(Util.format("localFormat", user.getName(), event.getMessage())); + + final Location loc = user.getLocation(); + final World world = loc.getWorld(); + final int x = loc.getBlockX(); + final int y = loc.getBlockY(); + final int z = loc.getBlockZ(); + + for (Player p : server.getOnlinePlayers()) + { + final User u = ess.getUser(p); + if (u.isIgnoredPlayer(user.getName()) && !user.isOp()) + { + continue; + } + if (u.equals(user) && !u.isAuthorized("essentials.chat.spy")) + { + final Location l = u.getLocation(); + final int dx = Math.abs(x - l.getBlockX()); + final int dy = Math.abs(y - l.getBlockY()); + final int dz = Math.abs(z - l.getBlockZ()); + final int delta = dx + dy + dz; + if (delta > radius || world != l.getWorld()) + { + continue; + } + } + + u.sendMessage(String.format(event.getFormat(), user.getDisplayName(), event.getMessage())); } } } diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatWorker.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatWorker.java deleted file mode 100644 index f43ed29a7..000000000 --- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatWorker.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.earth2me.essentials.chat; - -import com.earth2me.essentials.Essentials; -import com.earth2me.essentials.User; -import com.earth2me.essentials.Util; -import com.nijikokun.bukkit.Permissions.Permissions; -import java.util.logging.Logger; -import org.bukkit.Location; -import org.bukkit.Server; -import org.bukkit.World; -import org.bukkit.entity.Player; -import org.bukkit.event.player.PlayerChatEvent; -import org.bukkit.event.player.PlayerEvent; -import org.bukkit.event.player.PlayerRespawnEvent; - - -public class EssentialsChatWorker -{ - private static final Logger logger = Logger.getLogger("Minecraft"); - - public static void onPlayerRespawn(Server server, PlayerRespawnEvent event) - { - User user = Essentials.getStatic().getUser(event.getPlayer()); - updateDisplayName(user); - } - - public static void onPlayerJoin(Server server, PlayerEvent event) - { - User user = Essentials.getStatic().getUser(event.getPlayer()); - updateDisplayName(user); - } - - private static void updateDisplayName(User user) - { - try - { - String group = user.getGroup(); - try - { - String prefix = Permissions.Security.getGroupPrefix(user.getWorld().getName(), group).replace('&', '§').replace("{WORLDNAME}", user.getWorld().getName()); - String suffix = Permissions.Security.getGroupSuffix(user.getWorld().getName(), group).replace('&', '§').replace("{WORLDNAME}", user.getWorld().getName()); - - user.setDisplayName(prefix + user.getNick() + suffix + (suffix.length() > 1 && suffix.substring(suffix.length() -2).equals("§") ? "" : "§f")); - } - catch (Throwable ex) - { - logger.warning(Util.format("missingPrefixSuffix", group)); - } - } - catch (Throwable ex) - { - logger.warning(Util.i18n("permissionsError")); - } - } - - public static void onPlayerChat(Server server, PlayerChatEvent event) - { - if (event.isCancelled()) return; - User user = Essentials.getStatic().getUser(event.getPlayer()); - updateDisplayName(user); - - if (user.isAuthorized("essentials.chat.color")) - event.setMessage(event.getMessage().replaceAll("&([0-9a-f])", "§$1")); - - event.setFormat(Essentials.getStatic().getSettings().getChatFormat(user.getGroup()).replace('&', '§').replace("§§", "&").replace("{DISPLAYNAME}", "%1$s").replace("{GROUP}", user.getGroup()).replace("{MESSAGE}", "%2$s").replace("{WORLDNAME}", user.getWorld().getName()).replace("{SHORTWORLDNAME}", user.getWorld().getName().substring(0, 1).toUpperCase())); - - int radius = Essentials.getStatic().getSettings().getChatRadius(); - if (radius < 1) return; - - if (event.getMessage().startsWith("!") && event.getMessage().length() > 1) - { - if (user.isAuthorized("essentials.chat.shout")) - { - event.setMessage(event.getMessage().substring(1)); - event.setFormat(Util.format("shoutFormat", event.getFormat())); - return; - } - user.sendMessage(Util.i18n("notAllowedToShout")); - event.setCancelled(true); - return; - } - - if (event.getMessage().startsWith("?") && event.getMessage().length() > 1) - { - if (user.isAuthorized("essentials.chat.question")) - { - event.setMessage(event.getMessage().substring(1)); - event.setFormat(Util.format("questionFormat", event.getFormat())); - return; - } - user.sendMessage(Util.i18n("notAllowedToQuestion")); - event.setCancelled(true); - return; - } - - event.setCancelled(true); - logger.info(Util.format("localFormat", user.getName(), event.getMessage())); - - Location loc = user.getLocation(); - World w = loc.getWorld(); - int x = loc.getBlockX(); - int y = loc.getBlockY(); - int z = loc.getBlockZ(); - - for (Player p : server.getOnlinePlayers()) - { - User u = Essentials.getStatic().getUser(p); - if (u.isIgnoredPlayer(user.getName()) && !user.isOp()) { - continue; - } - if (u != user && !u.isAuthorized("essentials.chat.spy")) - { - Location l = u.getLocation(); - int dx = Math.abs(x - l.getBlockX()); - int dy = Math.abs(y - l.getBlockY()); - int dz = Math.abs(z - l.getBlockZ()); - int delta = dx + dy + dz; - if (delta > radius || w != l.getWorld()) continue; - } - - u.sendMessage(String.format(event.getFormat(), user.getDisplayName(), event.getMessage())); - } - } -} diff --git a/EssentialsGeoIP/nbproject/project.properties b/EssentialsGeoIP/nbproject/project.properties index ed96af206..bc9576f9a 100644 --- a/EssentialsGeoIP/nbproject/project.properties +++ b/EssentialsGeoIP/nbproject/project.properties @@ -1,9 +1,9 @@ annotation.processing.enabled=true annotation.processing.enabled.in.editor=false -annotation.processing.processor.options= -annotation.processing.processors.list= annotation.processing.run.all.processors=true annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +application.title=EssentialsGeoIP +application.vendor=snowleo build.classes.dir=${build.dir}/classes build.classes.excludes=**/*.java,**/*.form # This directory is removed when the project is cleaned: @@ -24,6 +24,7 @@ debug.test.classpath=\ dist.dir=dist dist.jar=${dist.dir}/EssentialsGeoIP.jar dist.javadoc.dir=${dist.dir}/javadoc +endorsed.classpath= excludes= file.reference.craftbukkit-0.0.1-SNAPSHOT.jar=../lib/craftbukkit-0.0.1-SNAPSHOT.jar includes=** diff --git a/EssentialsPermissionsCommands/build.xml b/EssentialsPermissionsCommands/build.xml new file mode 100644 index 000000000..507230993 --- /dev/null +++ b/EssentialsPermissionsCommands/build.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + Builds, tests, and runs the project EssentialsPermissionsCommands. + + + diff --git a/EssentialsPermissionsCommands/manifest.mf b/EssentialsPermissionsCommands/manifest.mf new file mode 100644 index 000000000..328e8e5bc --- /dev/null +++ b/EssentialsPermissionsCommands/manifest.mf @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +X-COMMENT: Main-Class will be added automatically by build + diff --git a/EssentialsPermissionsCommands/nbproject/build-impl.xml b/EssentialsPermissionsCommands/nbproject/build-impl.xml new file mode 100644 index 000000000..5147dc1c2 --- /dev/null +++ b/EssentialsPermissionsCommands/nbproject/build-impl.xml @@ -0,0 +1,1080 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + + + + + + java -cp "${run.classpath.with.dist.jar}" ${main.class} + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + java -jar "${dist.jar.resolved}" + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + + + + + + + + Must select one file in the IDE or set profile.class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/EssentialsPermissionsCommands/nbproject/genfiles.properties b/EssentialsPermissionsCommands/nbproject/genfiles.properties new file mode 100644 index 000000000..bb1e587db --- /dev/null +++ b/EssentialsPermissionsCommands/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=9c3a069f +build.xml.script.CRC32=0a912bb3 +build.xml.stylesheet.CRC32=28e38971@1.43.1.45 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=9c3a069f +nbproject/build-impl.xml.script.CRC32=dd030a92 +nbproject/build-impl.xml.stylesheet.CRC32=0c01fd8e@1.43.1.45 diff --git a/EssentialsPermissionsCommands/nbproject/project.properties b/EssentialsPermissionsCommands/nbproject/project.properties new file mode 100644 index 000000000..d92776f5b --- /dev/null +++ b/EssentialsPermissionsCommands/nbproject/project.properties @@ -0,0 +1,79 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +application.title=EssentialsPermissionsCommands +application.vendor=snowleo +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.test.classpath=\ + ${run.test.classpath} +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/EssentialsPermissionsCommands.jar +dist.javadoc.dir=${dist.dir}/javadoc +endorsed.classpath= +excludes= +file.reference.bukkit-0.0.1-SNAPSHOT.jar=../lib/bukkit-0.0.1-SNAPSHOT.jar +file.reference.Permissions3.jar=../lib/Permissions3.jar +includes=** +jar.compress=false +javac.classpath=\ + ${reference.Essentials.jar}:\ + ${file.reference.Permissions3.jar}:\ + ${file.reference.bukkit-0.0.1-SNAPSHOT.jar} +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.processorpath=\ + ${javac.classpath} +javac.source=1.6 +javac.target=1.6 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +main.class= +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=default_platform +project.Essentials=../Essentials +reference.Essentials.jar=${project.Essentials}/dist/Essentials.jar +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project +# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value +# or test-sys-prop.name=value to set system properties for unit tests): +run.jvmargs= +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/EssentialsPermissionsCommands/nbproject/project.xml b/EssentialsPermissionsCommands/nbproject/project.xml new file mode 100644 index 000000000..89e773c31 --- /dev/null +++ b/EssentialsPermissionsCommands/nbproject/project.xml @@ -0,0 +1,28 @@ + + + org.netbeans.modules.java.j2seproject + + + EssentialsPermissionsCommands + + + + + + + + + ../lib/nblibraries.properties + + + + Essentials + jar + + jar + clean + jar + + + + diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuadd.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuadd.java new file mode 100644 index 000000000..1f41b890a --- /dev/null +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/Commandmanuadd.java @@ -0,0 +1,22 @@ +package com.earth2me.essentials.permissions; + +import com.earth2me.essentials.commands.EssentialsCommand; +import org.bukkit.Server; +import org.bukkit.command.CommandSender; + + +public class Commandmanuadd extends EssentialsCommand +{ + public Commandmanuadd() + { + super("manuadd"); + } + + @Override + protected void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception + { + + } + + +} diff --git a/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/EssentialsPermissionsCommands.java b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/EssentialsPermissionsCommands.java new file mode 100644 index 000000000..f8af12f28 --- /dev/null +++ b/EssentialsPermissionsCommands/src/com/earth2me/essentials/permissions/EssentialsPermissionsCommands.java @@ -0,0 +1,26 @@ +package com.earth2me.essentials.permissions; + +import com.earth2me.essentials.Essentials; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.plugin.java.JavaPlugin; + + +public class EssentialsPermissionsCommands extends JavaPlugin +{ + @Override + public void onEnable() + { + } + + @Override + public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) + { + return Essentials.getStatic().onCommandEssentials(sender, command, label, args, EssentialsPermissionsCommands.class.getClassLoader(), "com.earth2me.essentials.permissions.Command"); + } + + @Override + public void onDisable() + { + } +} diff --git a/EssentialsPermissionsCommands/src/plugin.yml b/EssentialsPermissionsCommands/src/plugin.yml new file mode 100644 index 000000000..3d75176a7 --- /dev/null +++ b/EssentialsPermissionsCommands/src/plugin.yml @@ -0,0 +1,166 @@ +# This determines the command prefix when there are conflicts (/name:home, /name:help, etc.) +name: Essentials +main: com.earth2me.essentials.permissions.EssentialsPermissionsCommands +# Note to developers: This next line cannot change, or the automatic versioning system will break. +version: TeamCity +website: http://www.earth2me.net:8001/ +description: Adds commands aliases to Permissions 3 +authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology] +depend: [Permissions, Essentials] +commands: + manuadd: + description: Move a player to desired group.(Adds to the file if not exists) + usage: / + permission: groupmanager.manuadd + manudel: + description: Remove any user specific configuration. Make him default group. + usage: / + permission: groupmanager.manudel + manuaddsub: + description: Add a group to a player's subgroup list. + usage: / + permission: groupmanager.manuaddsub + manudelsub: + description: Remove a group to a player's subgroup list. + usage: / + permission: groupmanager.manudelsub + mangadd: + description: Add group to the system. + usage: / + permission: groupmanager.mangadd + mangdel: + description: Removes group from the system(all it's users become default) + usage: / + permission: groupmanager.mangdel + manuaddp: + description: Add permission diretly to the player. + usage: / + permission: groupmanager.manuaddp + manudelp: + description: Removes permission diretly from the player. + usage: / + permission: groupmanager.manudelp + manulistp: + description: List all permissions from a player. + usage: / + permission: groupmanager.manulistp + manucheckp: + description: Verify if user has a permission, and where it comes from. + usage: / + permission: groupmanager.manucheckp + mangaddp: + description: Add permission to a group. + usage: / + permission: groupmanager.mangaddp + mangdelp: + description: Removes permission from a group. + usage: / + permission: groupmanager.mangdelp + manglistp: + description: Lists all permissions from a group. + usage: / + permission: groupmanager.manglistp + mangcheckp: + description: Check if group has a permission, and where it comes from. + usage: / + permission: groupmanager.mangcheckp + mangaddi: + description: Add a group to another group inheritance list. + usage: / + permission: groupmanager.mangaddi + mangdeli: + description: Remove a group from another group inheritance list. + usage: / + permission: groupmanager.mangdeli + manuaddv: + description: Add, or replaces, a variable to a user (like prefix or suffix). + usage: / + permission: groupmanager.manuaddv + manudelv: + description: Remove a variable from a user. + usage: / + permission: groupmanager.manudelv + manulistv: + description: List variables a user has (like prefix or suffix). + usage: / + permission: groupmanager.manulistv + manucheckv: + description: Verify a value of a variable of user, and where it comes from. + usage: / + permission: groupmanager.manucheckv + mangaddv: + description: Add, or replaces, a variable to a group (like prefix or suffix). + usage: / + permission: groupmanager.mangaddv + mangdelv: + description: Remove a variable from a group. + usage: / + permission: groupmanager.mangdelv + manglistv: + description: List variables a group has (like prefix or suffix). + usage: / + permission: groupmanager.manglistv + mangcheckv: + description: Verify a value of a variable of group, and where it comes from. + usage: / + permission: groupmanager.mangckeckv + manwhois: + description: Tell the group that user belongs. + usage: / + permission: groupmanager.manwhois + tempadd: + description: Creates a temporary permission copy for that user. + usage: / + permission: groupmanager.tempadd + tempdel: + description: Remove the temporary permission copy for player. + usage: / + permission: groupmanager.tempdel + templist: + description: List players in overload-permissions mode made by /tempadd. + usage: / + permission: groupmanager.templist + tempdelall: + description: Remove all overrides made by command /tempadd. + usage: / + permission: groupmanager.tempdelall + mansave: + description: Save all permissions on file. + usage: / + permission: groupmanager.mansave + manload: + description: Reload current world and config.yml. Or load given world. + usage: / [world] + permission: groupmanager.manload + listgroups: + description: List the groups available. + usage: / + permission: groupmanager.listgroups + manpromote: + description: Promote a player in the same heritage line to a higher rank. + usage: / + permission: groupmanager.manpromote + mandemote: + description: Demote a player in the same heritage line to a lower rank. + usage: / + permission: groupmanager.mandemote + mantogglevalidate: + description: Toggle on/off the validating if player is online. + usage: / + permission: groupmanager.mantogglevalidate + mantogglesave: + description: Toggle on/ff the autosave. + usage: / + permission: groupmanager.mantogglesave + manworld: + description: Prints the selected world name + usage: / + permission: groupmanager.manworld + manselect: + description: Select a world to work with next commands. + usage: / + permission: groupmanager.manselect + manclear: + description: Clear world selection. Next commands will work on your world. + usage: / + permission: groupmanager.manclear \ No newline at end of file diff --git a/lib/Permissions3.jar b/lib/Permissions3.jar new file mode 100755 index 0000000000000000000000000000000000000000..7e2741283186542b7fd0d8c6c0470cb6da46b6c7 GIT binary patch literal 72897 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 literal 0 HcmV?d00001