Permissions 3.1.4

Added Code for Perm2, Perm3 and Config Permissions
Cleaned EssentialsChat
This commit is contained in:
snowleo 2011-06-07 00:24:39 +02:00
parent a45e620946
commit 4f16c8b5a7
28 changed files with 1795 additions and 243 deletions

3
.gitignore vendored
View File

@ -22,4 +22,5 @@
/EssentialsXMPP/dist/
/EssentialsXMPP/build/
/EssentialsProtect/dist/
/EssentialsProtect/build/
/EssentialsProtect/build/
/EssentialsPermissionsCommands/nbproject/private/

View File

@ -624,15 +624,8 @@ is divided into following sections:
</antcall>
<antcall target="-maybe-call-dep">
<param name="call.built.properties" value="${built-jar.properties}"/>
<param location="${project.EssentialsGroupBridge}" name="call.subproject"/>
<param location="${project.EssentialsGroupBridge}/build.xml" name="call.script"/>
<param name="call.target" value="jar"/>
<param name="transfer.built-jar.properties" value="${built-jar.properties}"/>
</antcall>
<antcall target="-maybe-call-dep">
<param name="call.built.properties" value="${built-jar.properties}"/>
<param location="${project.EssentialsGroupManager}" name="call.subproject"/>
<param location="${project.EssentialsGroupManager}/build.xml" name="call.script"/>
<param location="${project.EssentialsPermissionsCommands}" name="call.subproject"/>
<param location="${project.EssentialsPermissionsCommands}/build.xml" name="call.script"/>
<param name="call.target" value="jar"/>
<param name="transfer.built-jar.properties" value="${built-jar.properties}"/>
</antcall>
@ -1116,15 +1109,8 @@ is divided into following sections:
</antcall>
<antcall target="-maybe-call-dep">
<param name="call.built.properties" value="${built-clean.properties}"/>
<param location="${project.EssentialsGroupBridge}" name="call.subproject"/>
<param location="${project.EssentialsGroupBridge}/build.xml" name="call.script"/>
<param name="call.target" value="clean"/>
<param name="transfer.built-clean.properties" value="${built-clean.properties}"/>
</antcall>
<antcall target="-maybe-call-dep">
<param name="call.built.properties" value="${built-clean.properties}"/>
<param location="${project.EssentialsGroupManager}" name="call.subproject"/>
<param location="${project.EssentialsGroupManager}/build.xml" name="call.script"/>
<param location="${project.EssentialsPermissionsCommands}" name="call.subproject"/>
<param location="${project.EssentialsPermissionsCommands}/build.xml" name="call.script"/>
<param name="call.target" value="clean"/>
<param name="transfer.built-clean.properties" value="${built-clean.properties}"/>
</antcall>

View File

@ -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

View File

@ -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

View File

@ -40,15 +40,7 @@
<id>jar</id>
</reference>
<reference>
<foreign-project>EssentialsGroupBridge</foreign-project>
<artifact-type>jar</artifact-type>
<script>build.xml</script>
<target>jar</target>
<clean-target>clean</clean-target>
<id>jar</id>
</reference>
<reference>
<foreign-project>EssentialsGroupManager</foreign-project>
<foreign-project>EssentialsPermissionsCommands</foreign-project>
<artifact-type>jar</artifact-type>
<script>build.xml</script>
<target>jar</target>

View File

@ -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}:\

View File

@ -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 "";
}
}

View File

@ -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;
}
}

View File

@ -71,4 +71,6 @@ public interface IEssentials
TNTExplodeListener getTNTListener();
EssentialsDependancyChecker getDependancyChecker();
IPermissionsHandler getPermissionsHandler();
}

View File

@ -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);
}

View File

@ -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));
}
}

View File

@ -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());
}
}

View File

@ -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()

View File

@ -48,16 +48,8 @@ public class User extends UserData implements Comparable<User>, 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

View File

@ -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()

View File

@ -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()));
}
}
}

View File

@ -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()));
}
}
}

View File

@ -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=**

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<!-- By default, only the Clean and Build commands use this build script. -->
<!-- Commands such as Run, Debug, and Test only use this build script if -->
<!-- the Compile on Save feature is turned off for the project. -->
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
<!-- in the project's Project Properties dialog box.-->
<project name="EssentialsPermissionsCommands" default="default" basedir=".">
<description>Builds, tests, and runs the project EssentialsPermissionsCommands.</description>
<import file="nbproject/build-impl.xml"/>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test
-pre-jar: called before JAR building
-post-jar: called after JAR building
-post-clean: called after cleaning build products
(Targets beginning with '-' are not intended to be called on their own.)
Example of inserting an obfuscator after compilation could look like this:
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Another way to customize the build is by overriding existing main targets.
The targets of interest are:
-init-macrodef-javac: defines macro for javac compilation
-init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution
-do-jar-with-manifest: JAR building (if you are using a manifest)
-do-jar-without-manifest: JAR building (if you are not using a manifest)
run: execution of project
-javadoc-build: Javadoc generation
test-report: JUnit report generation
An example of overriding the target for project execution could look like this:
<target name="run" depends="EssentialsPermissionsCommands-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that the overridden target depends on the jar target and not only on
the compile target as the regular run target does. Again, for a list of available
properties which you can use, check the target you are overriding in the
nbproject/build-impl.xml file.
-->
</project>

View File

@ -0,0 +1,3 @@
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.java.j2seproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
<name>EssentialsPermissionsCommands</name>
<source-roots>
<root id="src.dir"/>
</source-roots>
<test-roots>
<root id="test.src.dir"/>
</test-roots>
</data>
<libraries xmlns="http://www.netbeans.org/ns/ant-project-libraries/1">
<definitions>../lib/nblibraries.properties</definitions>
</libraries>
<references xmlns="http://www.netbeans.org/ns/ant-project-references/1">
<reference>
<foreign-project>Essentials</foreign-project>
<artifact-type>jar</artifact-type>
<script>build.xml</script>
<target>jar</target>
<clean-target>clean</clean-target>
<id>jar</id>
</reference>
</references>
</configuration>
</project>

View File

@ -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
{
}
}

View File

@ -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()
{
}
}

View File

@ -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: /<command> <player> <group>
permission: groupmanager.manuadd
manudel:
description: Remove any user specific configuration. Make him default group.
usage: /<command> <player>
permission: groupmanager.manudel
manuaddsub:
description: Add a group to a player's subgroup list.
usage: /<command> <player> <group>
permission: groupmanager.manuaddsub
manudelsub:
description: Remove a group to a player's subgroup list.
usage: /<command> <player> <group>
permission: groupmanager.manudelsub
mangadd:
description: Add group to the system.
usage: /<command> <group>
permission: groupmanager.mangadd
mangdel:
description: Removes group from the system(all it's users become default)
usage: /<command> <group>
permission: groupmanager.mangdel
manuaddp:
description: Add permission diretly to the player.
usage: /<command> <player> <permission>
permission: groupmanager.manuaddp
manudelp:
description: Removes permission diretly from the player.
usage: /<command> <player> <permission>
permission: groupmanager.manudelp
manulistp:
description: List all permissions from a player.
usage: /<command> <player>
permission: groupmanager.manulistp
manucheckp:
description: Verify if user has a permission, and where it comes from.
usage: /<command> <player> <permission>
permission: groupmanager.manucheckp
mangaddp:
description: Add permission to a group.
usage: /<command> <group> <permission>
permission: groupmanager.mangaddp
mangdelp:
description: Removes permission from a group.
usage: /<command> <group> <permission>
permission: groupmanager.mangdelp
manglistp:
description: Lists all permissions from a group.
usage: /<command> <group>
permission: groupmanager.manglistp
mangcheckp:
description: Check if group has a permission, and where it comes from.
usage: /<command> <group> <permission>
permission: groupmanager.mangcheckp
mangaddi:
description: Add a group to another group inheritance list.
usage: /<command> <group1> <group2>
permission: groupmanager.mangaddi
mangdeli:
description: Remove a group from another group inheritance list.
usage: /<command> <group1> <group2>
permission: groupmanager.mangdeli
manuaddv:
description: Add, or replaces, a variable to a user (like prefix or suffix).
usage: /<command> <user> <variable> <value>
permission: groupmanager.manuaddv
manudelv:
description: Remove a variable from a user.
usage: /<command> <user> <variable>
permission: groupmanager.manudelv
manulistv:
description: List variables a user has (like prefix or suffix).
usage: /<command> <user>
permission: groupmanager.manulistv
manucheckv:
description: Verify a value of a variable of user, and where it comes from.
usage: /<command> <user> <variable>
permission: groupmanager.manucheckv
mangaddv:
description: Add, or replaces, a variable to a group (like prefix or suffix).
usage: /<command> <group> <variable> <value>
permission: groupmanager.mangaddv
mangdelv:
description: Remove a variable from a group.
usage: /<command> <group> <variable>
permission: groupmanager.mangdelv
manglistv:
description: List variables a group has (like prefix or suffix).
usage: /<command> <group>
permission: groupmanager.manglistv
mangcheckv:
description: Verify a value of a variable of group, and where it comes from.
usage: /<command> <group> <variable>
permission: groupmanager.mangckeckv
manwhois:
description: Tell the group that user belongs.
usage: /<command> <player>
permission: groupmanager.manwhois
tempadd:
description: Creates a temporary permission copy for that user.
usage: /<command> <player>
permission: groupmanager.tempadd
tempdel:
description: Remove the temporary permission copy for player.
usage: /<command> <player>
permission: groupmanager.tempdel
templist:
description: List players in overload-permissions mode made by /tempadd.
usage: /<command>
permission: groupmanager.templist
tempdelall:
description: Remove all overrides made by command /tempadd.
usage: /<command>
permission: groupmanager.tempdelall
mansave:
description: Save all permissions on file.
usage: /<command>
permission: groupmanager.mansave
manload:
description: Reload current world and config.yml. Or load given world.
usage: /<command> [world]
permission: groupmanager.manload
listgroups:
description: List the groups available.
usage: /<command>
permission: groupmanager.listgroups
manpromote:
description: Promote a player in the same heritage line to a higher rank.
usage: /<command> <player> <group>
permission: groupmanager.manpromote
mandemote:
description: Demote a player in the same heritage line to a lower rank.
usage: /<command> <player> <group>
permission: groupmanager.mandemote
mantogglevalidate:
description: Toggle on/off the validating if player is online.
usage: /<command>
permission: groupmanager.mantogglevalidate
mantogglesave:
description: Toggle on/ff the autosave.
usage: /<command>
permission: groupmanager.mantogglesave
manworld:
description: Prints the selected world name
usage: /<command>
permission: groupmanager.manworld
manselect:
description: Select a world to work with next commands.
usage: /<command> <world>
permission: groupmanager.manselect
manclear:
description: Clear world selection. Next commands will work on your world.
usage: /<command>
permission: groupmanager.manclear

BIN
lib/Permissions3.jar Executable file

Binary file not shown.