1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-27 00:15:23 +02:00

Split settings abstract to allow more complex matches

This commit is contained in:
KHobbits
2012-12-02 01:20:41 +00:00
parent 032c35c90d
commit 49fe260f8d
7 changed files with 72 additions and 41 deletions

View File

@@ -6,7 +6,7 @@ import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
public class Commandfly extends EssentialsSettingsCommand public class Commandfly extends EssentialsToggleCommand
{ {
protected void setValue(final IUser player, final boolean value) protected void setValue(final IUser player, final boolean value)
{ {

View File

@@ -5,7 +5,7 @@ import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
public class Commandgod extends EssentialsSettingsCommand public class Commandgod extends EssentialsToggleCommand
{ {
protected void setValue(final IUser player, final boolean value) protected void setValue(final IUser player, final boolean value)
{ {

View File

@@ -6,7 +6,7 @@ import net.ess3.permissions.Permissions;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
public class Commandsocialspy extends EssentialsSettingsCommand public class Commandsocialspy extends EssentialsToggleCommand
{ {
protected void setValue(final IUser player, final boolean value) protected void setValue(final IUser player, final boolean value)

View File

@@ -6,7 +6,7 @@ import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
public class Commandtptoggle extends EssentialsSettingsCommand public class Commandtptoggle extends EssentialsToggleCommand
{ {
protected void setValue(final IUser player, final boolean value) protected void setValue(final IUser player, final boolean value)

View File

@@ -6,7 +6,7 @@ import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
public class Commandvanish extends EssentialsSettingsCommand public class Commandvanish extends EssentialsToggleCommand
{ {
protected void setValue(final IUser player, final boolean value) protected void setValue(final IUser player, final boolean value)
{ {

View File

@@ -9,16 +9,6 @@ import net.ess3.api.IUser;
public abstract class EssentialsSettingsCommand extends EssentialsCommand public abstract class EssentialsSettingsCommand extends EssentialsCommand
{ {
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 void informSender(final CommandSender sender, final boolean value, final IUser player) protected void informSender(final CommandSender sender, final boolean value, final IUser player)
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
@@ -39,6 +29,17 @@ public abstract class EssentialsSettingsCommand extends EssentialsCommand
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
protected boolean canMatch(final String arg)
{
throw new UnsupportedOperationException("Not supported yet.");
}
protected void playerMatch(final IUser player, final String arg)
{
throw new UnsupportedOperationException("Not supported yet.");
}
protected boolean toggleOfflinePlayers() protected boolean toggleOfflinePlayers()
{ {
return true; return true;
@@ -65,13 +66,9 @@ public abstract class EssentialsSettingsCommand extends EssentialsCommand
} }
else if (args.length > 0) 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); playerMatch(user, args[0]);
}
else if (args[0].equalsIgnoreCase("off") || args[0].startsWith("disable") || args[0].equalsIgnoreCase("0"))
{
setValue(user, true);
} }
else if (args[0].trim().length() > 2 && canToggleOthers(user)) else if (args[0].trim().length() > 2 && canToggleOthers(user))
{ {
@@ -81,7 +78,7 @@ public abstract class EssentialsSettingsCommand extends EssentialsCommand
} }
else else
{ {
setValue(user, !getValue(user)); playerMatch(user, null);
} }
informPlayer(user); informPlayer(user);
} }
@@ -99,26 +96,8 @@ public abstract class EssentialsSettingsCommand extends EssentialsCommand
informSender(sender, false, matchPlayer); informSender(sender, false, matchPlayer);
continue; 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()) playerMatch(matchPlayer, args[1]);
{
matchPlayer.getPlayer().setFlying(false);
}
informPlayer(matchPlayer); informPlayer(matchPlayer);
informSender(sender, true, matchPlayer); informSender(sender, true, matchPlayer);
} }

View File

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