From 49fe260f8de1b0f3f0af192db7accd41992a02b2 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sun, 2 Dec 2012 01:20:41 +0000 Subject: Split settings abstract to allow more complex matches --- Essentials/src/net/ess3/commands/Commandfly.java | 2 +- Essentials/src/net/ess3/commands/Commandgod.java | 2 +- .../src/net/ess3/commands/Commandsocialspy.java | 2 +- .../src/net/ess3/commands/Commandtptoggle.java | 2 +- .../src/net/ess3/commands/Commandvanish.java | 2 +- .../ess3/commands/EssentialsSettingsCommand.java | 43 +++++------------- .../net/ess3/commands/EssentialsToggleCommand.java | 52 ++++++++++++++++++++++ 7 files changed, 68 insertions(+), 37 deletions(-) create mode 100644 Essentials/src/net/ess3/commands/EssentialsToggleCommand.java 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); + } + } + } +} -- cgit v1.2.3