summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2012-12-02 01:20:41 +0000
committerKHobbits <rob@khobbits.co.uk>2012-12-02 01:20:41 +0000
commit49fe260f8de1b0f3f0af192db7accd41992a02b2 (patch)
treed40a4633c1e0f27a3bb7033d815794ebdf960539
parent032c35c90df51ea8dcc3dec4ce262689b1c85100 (diff)
downloadEssentials-49fe260f8de1b0f3f0af192db7accd41992a02b2.tar
Essentials-49fe260f8de1b0f3f0af192db7accd41992a02b2.tar.gz
Essentials-49fe260f8de1b0f3f0af192db7accd41992a02b2.tar.lz
Essentials-49fe260f8de1b0f3f0af192db7accd41992a02b2.tar.xz
Essentials-49fe260f8de1b0f3f0af192db7accd41992a02b2.zip
Split settings abstract to allow more complex matches
-rw-r--r--Essentials/src/net/ess3/commands/Commandfly.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandgod.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandsocialspy.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtptoggle.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandvanish.java2
-rw-r--r--Essentials/src/net/ess3/commands/EssentialsSettingsCommand.java43
-rw-r--r--Essentials/src/net/ess3/commands/EssentialsToggleCommand.java52
7 files changed, 68 insertions, 37 deletions
diff --git a/Essentials/src/net/ess3/commands/Commandfly.java b/Essentials/src/net/ess3/commands/Commandfly.java
index 95b2c92d5..61cc2f69a 100644
--- a/Essentials/src/net/ess3/commands/Commandfly.java
+++ b/Essentials/src/net/ess3/commands/Commandfly.java
@@ -6,7 +6,7 @@ import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
-public class Commandfly extends EssentialsSettingsCommand
+public class Commandfly extends EssentialsToggleCommand
{
protected void setValue(final IUser player, final boolean value)
{
diff --git a/Essentials/src/net/ess3/commands/Commandgod.java b/Essentials/src/net/ess3/commands/Commandgod.java
index e8064a7ed..2d2af4fc1 100644
--- a/Essentials/src/net/ess3/commands/Commandgod.java
+++ b/Essentials/src/net/ess3/commands/Commandgod.java
@@ -5,7 +5,7 @@ import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
import org.bukkit.command.CommandSender;
-public class Commandgod extends EssentialsSettingsCommand
+public class Commandgod extends EssentialsToggleCommand
{
protected void setValue(final IUser player, final boolean value)
{
diff --git a/Essentials/src/net/ess3/commands/Commandsocialspy.java b/Essentials/src/net/ess3/commands/Commandsocialspy.java
index 0f99e2655..3e5c47007 100644
--- a/Essentials/src/net/ess3/commands/Commandsocialspy.java
+++ b/Essentials/src/net/ess3/commands/Commandsocialspy.java
@@ -6,7 +6,7 @@ import net.ess3.permissions.Permissions;
import org.bukkit.command.CommandSender;
-public class Commandsocialspy extends EssentialsSettingsCommand
+public class Commandsocialspy extends EssentialsToggleCommand
{
protected void setValue(final IUser player, final boolean value)
diff --git a/Essentials/src/net/ess3/commands/Commandtptoggle.java b/Essentials/src/net/ess3/commands/Commandtptoggle.java
index 39d84fea8..bc75d6d18 100644
--- a/Essentials/src/net/ess3/commands/Commandtptoggle.java
+++ b/Essentials/src/net/ess3/commands/Commandtptoggle.java
@@ -6,7 +6,7 @@ import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
-public class Commandtptoggle extends EssentialsSettingsCommand
+public class Commandtptoggle extends EssentialsToggleCommand
{
protected void setValue(final IUser player, final boolean value)
diff --git a/Essentials/src/net/ess3/commands/Commandvanish.java b/Essentials/src/net/ess3/commands/Commandvanish.java
index c6bedafaa..18baee384 100644
--- a/Essentials/src/net/ess3/commands/Commandvanish.java
+++ b/Essentials/src/net/ess3/commands/Commandvanish.java
@@ -6,7 +6,7 @@ import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
-public class Commandvanish extends EssentialsSettingsCommand
+public class Commandvanish extends EssentialsToggleCommand
{
protected void setValue(final IUser player, final boolean value)
{
diff --git a/Essentials/src/net/ess3/commands/EssentialsSettingsCommand.java b/Essentials/src/net/ess3/commands/EssentialsSettingsCommand.java
index d63df7253..c239ebdd3 100644
--- a/Essentials/src/net/ess3/commands/EssentialsSettingsCommand.java
+++ b/Essentials/src/net/ess3/commands/EssentialsSettingsCommand.java
@@ -9,36 +9,37 @@ import net.ess3.api.IUser;
public abstract class EssentialsSettingsCommand extends EssentialsCommand
{
- protected void setValue(final IUser player, final boolean value)
+ protected void informSender(final CommandSender sender, final boolean value, final IUser player)
{
throw new UnsupportedOperationException("Not supported yet.");
}
- protected boolean getValue(final IUser player)
+ protected void informPlayer(final IUser player)
{
throw new UnsupportedOperationException("Not supported yet.");
}
- protected void informSender(final CommandSender sender, final boolean value, final IUser player)
+ protected boolean canToggleOthers(final IUser user)
{
throw new UnsupportedOperationException("Not supported yet.");
}
- protected void informPlayer(final IUser player)
+ protected boolean isExempt(final CommandSender sender, final IUser player)
{
throw new UnsupportedOperationException("Not supported yet.");
}
- protected boolean canToggleOthers(final IUser user)
+ protected boolean canMatch(final String arg)
{
throw new UnsupportedOperationException("Not supported yet.");
}
- protected boolean isExempt(final CommandSender sender, final IUser player)
+ protected void playerMatch(final IUser player, final String arg)
{
throw new UnsupportedOperationException("Not supported yet.");
}
+
protected boolean toggleOfflinePlayers()
{
return true;
@@ -65,13 +66,9 @@ public abstract class EssentialsSettingsCommand extends EssentialsCommand
}
else if (args.length > 0)
{
- if (args[0].equalsIgnoreCase("on") || args[0].startsWith("enable") || args[0].equalsIgnoreCase("1"))
+ if (canMatch(args[0]))
{
- setValue(user, true);
- }
- else if (args[0].equalsIgnoreCase("off") || args[0].startsWith("disable") || args[0].equalsIgnoreCase("0"))
- {
- setValue(user, true);
+ playerMatch(user, args[0]);
}
else if (args[0].trim().length() > 2 && canToggleOthers(user))
{
@@ -81,7 +78,7 @@ public abstract class EssentialsSettingsCommand extends EssentialsCommand
}
else
{
- setValue(user, !getValue(user));
+ playerMatch(user, null);
}
informPlayer(user);
}
@@ -99,26 +96,8 @@ public abstract class EssentialsSettingsCommand extends EssentialsCommand
informSender(sender, false, matchPlayer);
continue;
}
- if (args.length > 1)
- {
- if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1"))
- {
- setValue(matchPlayer, true);
- }
- else
- {
- setValue(matchPlayer, true);
- }
- }
- else
- {
- setValue(matchPlayer, !getValue(matchPlayer));
- }
- if (!matchPlayer.getPlayer().getAllowFlight())
- {
- matchPlayer.getPlayer().setFlying(false);
- }
+ playerMatch(matchPlayer, args[1]);
informPlayer(matchPlayer);
informSender(sender, true, matchPlayer);
}
diff --git a/Essentials/src/net/ess3/commands/EssentialsToggleCommand.java b/Essentials/src/net/ess3/commands/EssentialsToggleCommand.java
new file mode 100644
index 000000000..89f84d000
--- /dev/null
+++ b/Essentials/src/net/ess3/commands/EssentialsToggleCommand.java
@@ -0,0 +1,52 @@
+package net.ess3.commands;
+
+import java.util.Set;
+import org.bukkit.Server;
+import org.bukkit.command.CommandSender;
+import net.ess3.api.IUser;
+
+
+public abstract class EssentialsToggleCommand extends EssentialsSettingsCommand
+{
+
+ protected void setValue(final IUser player, final boolean value)
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ protected boolean getValue(final IUser player)
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ protected boolean canMatch(final String arg)
+ {
+ if (arg.equalsIgnoreCase("on") || arg.startsWith("enable") || arg.equalsIgnoreCase("1"))
+ {
+ return true;
+ }
+ else if (arg.equalsIgnoreCase("off") || arg.startsWith("disable") || arg.equalsIgnoreCase("0"))
+ {
+ return true;
+ }
+ return false;
+ }
+
+ protected void playerMatch(final IUser player, final String arg)
+ {
+ if (arg == null)
+ {
+ setValue(player, !getValue(player));
+ }
+ else {
+ if (arg.contains("on") || arg.contains("ena") || arg.equalsIgnoreCase("1"))
+ {
+ setValue(player, true);
+ }
+ else
+ {
+ setValue(player, false);
+ }
+ }
+ }
+}