summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2013-01-20 01:10:41 +0000
committerKHobbits <rob@khobbits.co.uk>2013-01-20 01:10:41 +0000
commit41547e3243941294bd1a3fd09d4d1b985c964fbf (patch)
treebaa13191232e3d76e9edeb4649cbf2f1606bdf55
parent762bb65677a7a0646a69338e35d51c5221d80b4a (diff)
downloadEssentials-41547e3243941294bd1a3fd09d4d1b985c964fbf.tar
Essentials-41547e3243941294bd1a3fd09d4d1b985c964fbf.tar.gz
Essentials-41547e3243941294bd1a3fd09d4d1b985c964fbf.tar.lz
Essentials-41547e3243941294bd1a3fd09d4d1b985c964fbf.tar.xz
Essentials-41547e3243941294bd1a3fd09d4d1b985c964fbf.zip
Cleanup /exp command, and fix vanilla syntax issues.
Needs double checking with commandblocks with vanilla syntax.
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandexp.java135
1 files changed, 44 insertions, 91 deletions
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandexp.java b/Essentials/src/com/earth2me/essentials/commands/Commandexp.java
index 24ea46e46..fc043f3a0 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandexp.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandexp.java
@@ -24,35 +24,6 @@ public class Commandexp extends EssentialsCommand
{
showExp(user, user);
}
- else if (Util.isInt(args[0].toLowerCase().replace("l", ""))) // check vanilla syntax
- {
- final String lowerArgs0 = args[0].toLowerCase();
- final int lvl = Integer.parseInt(lowerArgs0.replace("l", ""));
- final boolean containsL = lowerArgs0.contains("l");
- if (args.length > 1 && user.isAuthorized("essentials.exp.give.others"))
- {
- if (containsL)
- {
- addLevel(server, user, lvl, args[1]);
- }
- else
- {
- expMatch(server, user, args[1], args[0], true);
- }
- }
- else
- {
- if (containsL)
- {
- addLevel(server, user, lvl, user.getName());
- }
- else
- {
- expMatch(server, user, user.getName(), args[0], true);
- }
- }
-
- }
else if (args[0].equalsIgnoreCase("set") && user.isAuthorized("essentials.exp.set"))
{
if (args.length == 3 && user.isAuthorized("essentials.exp.set.others"))
@@ -75,64 +46,71 @@ public class Commandexp extends EssentialsCommand
setExp(user, user, args[1], true);
}
}
- else
+ else if (args[0].equalsIgnoreCase("show"))
{
- String match = args[0].trim();
- if (args.length == 2)
+ if (args.length >= 2 && user.isAuthorized("essentials.exp.others"))
{
- match = args[1].trim();
+ String match = args[1].trim();
+ showMatch(server, user, match);
}
- if (match.equalsIgnoreCase("show") || !user.isAuthorized("essentials.exp.others"))
+ else
{
showExp(user, user);
}
- else
+ }
+ else
+ {
+ if (args.length >= 1 && Util.isInt(args[0].toLowerCase(Locale.ENGLISH).replace("l", "")) && user.isAuthorized("essentials.exp.give"))
{
+ if (args.length >= 2 && user.isAuthorized("essentials.exp.give.others"))
+ {
+ expMatch(server, user, args[1], args[0], true);
+ }
+ else
+ {
+ setExp(user, user, args[0], true);
+ }
+ }
+ else if (args.length >= 1 && user.isAuthorized("essentials.exp.others"))
+ {
+ String match = args[0].trim();
showMatch(server, user, match);
}
+ else
+ {
+ showExp(user, user);
+ }
}
}
@Override
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
- final String parseLevel = args[0].toLowerCase().replace("l", "");
- if (Util.isInt(parseLevel))
+ if (args.length < 1)
{
- final int lvl = Integer.parseInt(parseLevel);
- if (args[0].toLowerCase(Locale.ENGLISH).contains("l"))
- {
- addLevel(server, sender, lvl, args[1]);
- }
- else
- {
- expMatch(server, sender, args[1], args[0], true);
- }
-
+ throw new NotEnoughArgumentsException();
+ }
+ else if (args.length > 2 && args[0].equalsIgnoreCase("set"))
+ {
+ expMatch(server, sender, args[1], args[2], false);
+ }
+ else if (args.length > 2 && args[0].equalsIgnoreCase("give"))
+ {
+ expMatch(server, sender, args[1], args[2], true);
}
else
{
- if (args.length < 1)
- {
- throw new NotEnoughArgumentsException();
- }
- else if (args.length > 2 && args[0].equalsIgnoreCase("set"))
+ String match = args[0].trim();
+ if (args.length >= 2 && Util.isInt(args[0].toLowerCase(Locale.ENGLISH).replace("l", "")))
{
- expMatch(server, sender, args[1], args[2], false);
+ match = args[1].trim();
+ expMatch(server, sender, match, args[0], true);
}
- else if (args.length > 2 && args[0].equalsIgnoreCase("give"))
+ else if (args.length == 1)
{
- expMatch(server, sender, args[1], args[2], true);
- }
- else
- {
- String match = args[0].trim();
- if (args.length == 2)
- {
- match = args[1].trim();
- }
- showMatch(server, sender, match);
+ match = args[0].trim();
}
+ showMatch(server, sender, match);
}
}
@@ -151,38 +129,13 @@ public class Commandexp extends EssentialsCommand
}
}
- private void expMatch(final Server server, final CommandSender sender, final String match, String amount, final boolean toggle) throws NotEnoughArgumentsException
+ private void expMatch(final Server server, final CommandSender sender, final String match, String amount, final boolean give) throws NotEnoughArgumentsException
{
boolean foundUser = false;
for (Player matchPlayer : server.matchPlayer(match))
{
final User target = ess.getUser(matchPlayer);
- setExp(sender, target, amount, toggle);
- foundUser = true;
- }
- if (!foundUser)
- {
- throw new NotEnoughArgumentsException(_("playerNotFound"));
- }
- }
-
- private void addLevel(final Server server, final CommandSender sender, final int level, final String target) throws NotEnoughArgumentsException
- {
- boolean foundUser = false;
- for (Player matchPlayer : server.matchPlayer(target))
- {
- final User user = ess.getUser(matchPlayer);
- final int curLevel = user.getLevel();
- final int fLevel = curLevel + level;
- if (fLevel < 0)
- {
- user.setLevel(0);
- user.setExp(0F);
- }
- else
- {
- user.setLevel(fLevel);
- }
+ setExp(sender, target, amount, give);
foundUser = true;
}
if (!foundUser)