mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-22 06:12:56 +02:00
Abstract Settings Command class
This commit is contained in:
@@ -358,8 +358,7 @@ teleportRequest=\u00a7c{0}\u00a76 has requested to teleport to you.
|
||||
teleportRequestTimeoutInfo=\u00a76This request will timeout after\u00a7c {0} seconds\u00a76.
|
||||
teleportTop=\u00a76Teleporting to top.
|
||||
teleportationCommencing=\u00a76Teleportation commencing...
|
||||
teleportationDisabled=\u00a76Teleportation disabled.
|
||||
teleportationEnabled=\u00a76Teleportation enabled.
|
||||
teleportMode=\u00a76Teleportation\u00a7c {0}\u00a76.
|
||||
teleporting=\u00a76Teleporting...
|
||||
teleportingPortal=\u00a76Teleporting via portal.
|
||||
tempBanned=Temporarily banned from server for {0}
|
||||
|
@@ -69,6 +69,8 @@ public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolde
|
||||
|
||||
boolean isGodModeEnabled();
|
||||
|
||||
boolean isTeleportEnabled();
|
||||
|
||||
boolean isIgnoringPlayer(IUser user);
|
||||
|
||||
void setIgnoredPlayer(IUser user, boolean set);
|
||||
@@ -89,8 +91,6 @@ public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolde
|
||||
|
||||
IUser getTeleportRequester();
|
||||
|
||||
boolean toggleTeleportEnabled();
|
||||
|
||||
long getTeleportRequestTime();
|
||||
|
||||
boolean gotMailInfo();
|
||||
@@ -121,6 +121,8 @@ public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolde
|
||||
|
||||
void setGodModeEnabled(boolean set);
|
||||
|
||||
void setTeleportEnabled(boolean set);
|
||||
|
||||
void setVanished(boolean set);
|
||||
|
||||
boolean checkSignThrottle(int throttle);
|
||||
|
@@ -7,67 +7,45 @@ import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
|
||||
public class Commandfly extends EssentialsCommand
|
||||
public class Commandfly extends EssentialsSettingsCommand
|
||||
{
|
||||
@Override
|
||||
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
protected void setValue(final IUser player, final boolean value)
|
||||
{
|
||||
if (args.length < 1)
|
||||
player.getPlayer().setAllowFlight(value);
|
||||
if (!player.getPlayer().getAllowFlight())
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
player.getPlayer().setFlying(false);
|
||||
}
|
||||
|
||||
flyOtherPlayers(server, sender, args);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
protected boolean getValue(final IUser player)
|
||||
{
|
||||
if (args.length > 0 && args[0].trim().length() > 2 && Permissions.FLY_OTHERS.isAuthorized(user))
|
||||
{
|
||||
flyOtherPlayers(server, user, args);
|
||||
return;
|
||||
}
|
||||
user.getPlayer().setAllowFlight(!user.getPlayer().getAllowFlight());
|
||||
if (!user.getPlayer().getAllowFlight())
|
||||
{
|
||||
user.getPlayer().setFlying(false);
|
||||
}
|
||||
user.sendMessage(_("flyMode", _(user.getPlayer().getAllowFlight() ? "enabled" : "disabled"), user.getPlayer().getDisplayName()));
|
||||
return player.getPlayer().getAllowFlight();
|
||||
}
|
||||
|
||||
private void flyOtherPlayers(final Server server, final CommandSender sender, final String[] args)
|
||||
protected void informSender(final CommandSender sender, final boolean value, final IUser player)
|
||||
{
|
||||
for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
|
||||
{
|
||||
if (Permissions.FLY_EXEMPT.isAuthorized(matchPlayer))
|
||||
{
|
||||
sender.sendMessage("Can't change fly mode for player " + matchPlayer.getName()); //TODO: I18n
|
||||
continue;
|
||||
}
|
||||
if (args.length > 1)
|
||||
{
|
||||
if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1"))
|
||||
{
|
||||
matchPlayer.getPlayer().setAllowFlight(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
matchPlayer.getPlayer().setAllowFlight(false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
matchPlayer.getPlayer().setAllowFlight(!matchPlayer.getPlayer().getAllowFlight());
|
||||
}
|
||||
|
||||
if (!matchPlayer.getPlayer().getAllowFlight())
|
||||
{
|
||||
matchPlayer.getPlayer().setFlying(false);
|
||||
}
|
||||
final String message = _("flyMode", _(matchPlayer.getPlayer().getAllowFlight() ? "enabled" : "disabled"), matchPlayer.getPlayer().getDisplayName());
|
||||
matchPlayer.sendMessage(message);
|
||||
sender.sendMessage(message);
|
||||
if (value) {
|
||||
sender.sendMessage( _("flyMode", _(getValue(player) ? "enabled" : "disabled"), player.getPlayer().getDisplayName()));
|
||||
}
|
||||
else {
|
||||
sender.sendMessage("Can't change fly mode for player " + player.getName());
|
||||
}
|
||||
}
|
||||
|
||||
protected void informPlayer(final IUser player)
|
||||
{
|
||||
final String message = _("flyMode", _(getValue(player) ? "enabled" : "disabled"), player.getPlayer().getDisplayName());
|
||||
player.sendMessage(message);
|
||||
}
|
||||
|
||||
protected boolean canToggleOthers(final IUser user)
|
||||
{
|
||||
return Permissions.FLY_OTHERS.isAuthorized(user);
|
||||
}
|
||||
|
||||
protected boolean isExempt(final CommandSender sender, final IUser player)
|
||||
{
|
||||
return Permissions.FLY_EXEMPT.isAuthorized(player);
|
||||
}
|
||||
}
|
||||
|
@@ -5,63 +5,41 @@ import net.ess3.api.IUser;
|
||||
import net.ess3.permissions.Permissions;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
|
||||
public class Commandgod extends EssentialsCommand
|
||||
public class Commandgod extends EssentialsSettingsCommand
|
||||
{
|
||||
@Override
|
||||
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
protected void setValue(final IUser player, final boolean value)
|
||||
{
|
||||
if (args.length < 1)
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
godOtherPlayers(sender, args);
|
||||
player.setGodModeEnabled(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
protected boolean getValue(final IUser player)
|
||||
{
|
||||
if (args.length > 0 && !args[0].trim().isEmpty() && Permissions.GOD_OTHERS.isAuthorized(user))
|
||||
{
|
||||
godOtherPlayers(user, args);
|
||||
return;
|
||||
}
|
||||
|
||||
user.setGodModeEnabled(!user.isGodModeEnabled());
|
||||
user.sendMessage(_("godMode", (user.isGodModeEnabled() ? _("enabled") : _("disabled"))));
|
||||
return player.isGodModeEnabled();
|
||||
}
|
||||
|
||||
private void godOtherPlayers(final CommandSender sender, final String[] args)
|
||||
protected void informSender(final CommandSender sender, final boolean value, final IUser player)
|
||||
{
|
||||
for (IUser player : ess.getUserMap().matchUsers(args[0], true))
|
||||
{
|
||||
if (player.isOnline()
|
||||
? Permissions.GOD_EXEMPT.isAuthorized(player)
|
||||
: !Permissions.GOD_OFFLINE.isAuthorized(sender))
|
||||
{
|
||||
sender.sendMessage("Can't change god mode for player " + player.getName()); //TODO: I18n
|
||||
continue;
|
||||
}
|
||||
if (args.length > 1)
|
||||
{
|
||||
if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1"))
|
||||
{
|
||||
player.setGodModeEnabled(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.setGodModeEnabled(false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
player.setGodModeEnabled(!player.isGodModeEnabled());
|
||||
}
|
||||
|
||||
final boolean enabled = player.isGodModeEnabled();
|
||||
player.sendMessage(_("godMode", (enabled ? _("enabled") : _("disabled"))));
|
||||
sender.sendMessage(_("godMode", _(enabled ? "godEnabledFor" : "godDisabledFor", player.getName())));
|
||||
if (value) {
|
||||
sender.sendMessage( _("godMode", _(getValue(player) ? "enabled" : "disabled"), player.getPlayer().getDisplayName()));
|
||||
}
|
||||
else {
|
||||
sender.sendMessage("Can't change god mode for player " + player.getName());
|
||||
}
|
||||
}
|
||||
|
||||
protected void informPlayer(final IUser player)
|
||||
{
|
||||
final String message = _("godMode", _(getValue(player) ? "enabled" : "disabled"), player.getPlayer().getDisplayName());
|
||||
player.sendMessage(message);
|
||||
}
|
||||
|
||||
protected boolean canToggleOthers(final IUser user)
|
||||
{
|
||||
return Permissions.GOD_OTHERS.isAuthorized(user);
|
||||
}
|
||||
|
||||
protected boolean isExempt(final CommandSender sender, final IUser player)
|
||||
{
|
||||
return (player.isOnline() ? Permissions.GOD_EXEMPT.isAuthorized(player) : !Permissions.GOD_OFFLINE.isAuthorized(sender));
|
||||
}
|
||||
}
|
||||
|
@@ -1,35 +1,47 @@
|
||||
package net.ess3.commands;
|
||||
|
||||
import static net.ess3.I18n._;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.permissions.Permissions;
|
||||
|
||||
|
||||
public class Commandtptoggle extends EssentialsCommand
|
||||
public class Commandtptoggle extends EssentialsSettingsCommand
|
||||
{
|
||||
@Override
|
||||
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
|
||||
protected void setValue(final IUser player, final boolean value)
|
||||
{
|
||||
IUser otherUser = null;
|
||||
if (args.length > 0 && Permissions.TPTOGGLE_OTHERS.isAuthorized(user))
|
||||
{
|
||||
otherUser = ess.getUserMap().getUser(server.getPlayer(args[0]));
|
||||
if (otherUser == null)
|
||||
{
|
||||
throw new Exception(_("playerNotFound"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ess.getUserMap().getUser(server.getPlayer(args[0])).sendMessage(user.toggleTeleportEnabled()
|
||||
? _("teleportationEnabled")
|
||||
: _("teleportationDisabled"));
|
||||
}
|
||||
player.setTeleportEnabled(value);
|
||||
}
|
||||
|
||||
protected boolean getValue(final IUser player)
|
||||
{
|
||||
return player.isTeleportEnabled();
|
||||
}
|
||||
|
||||
protected void informSender(final CommandSender sender, final boolean value, final IUser player)
|
||||
{
|
||||
if (value) {
|
||||
sender.sendMessage( _("teleportMode", _(getValue(player) ? "enabled" : "disabled"), player.getPlayer().getDisplayName()));
|
||||
}
|
||||
else
|
||||
{
|
||||
user.sendMessage(user.toggleTeleportEnabled()
|
||||
? _("teleportationEnabled")
|
||||
: _("teleportationDisabled"));
|
||||
else {
|
||||
sender.sendMessage("Can't change teleport toggle for player " + player.getName());
|
||||
}
|
||||
}
|
||||
|
||||
protected void informPlayer(final IUser player)
|
||||
{
|
||||
final String message = _("teleportMode", _(getValue(player) ? "enabled" : "disabled"), player.getPlayer().getDisplayName());
|
||||
player.sendMessage(message);
|
||||
}
|
||||
|
||||
protected boolean canToggleOthers(final IUser user)
|
||||
{
|
||||
return Permissions.TPTOGGLE_OTHERS.isAuthorized(user);
|
||||
}
|
||||
|
||||
protected boolean isExempt(final CommandSender sender, final IUser player)
|
||||
{
|
||||
return Permissions.TPTOGGLE_EXEMPT.isAuthorized(player);
|
||||
}
|
||||
}
|
||||
|
120
Essentials/src/net/ess3/commands/EssentialsSettingsCommand.java
Normal file
120
Essentials/src/net/ess3/commands/EssentialsSettingsCommand.java
Normal file
@@ -0,0 +1,120 @@
|
||||
package net.ess3.commands;
|
||||
|
||||
import static net.ess3.I18n._;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import net.ess3.api.IUser;
|
||||
import net.ess3.permissions.Permissions;
|
||||
|
||||
|
||||
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)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
protected void informPlayer(final IUser player)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
protected boolean canToggleOthers(final IUser user)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
protected boolean isExempt(final CommandSender sender, final IUser player)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length < 1)
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
toggleOtherPlayers(server, sender, args);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length > 1 && args[0].trim().length() > 2 && canToggleOthers(user))
|
||||
{
|
||||
toggleOtherPlayers(server, user, args);
|
||||
return;
|
||||
}
|
||||
else if (args.length > 0)
|
||||
{
|
||||
if (args[0].equalsIgnoreCase("on") || args[0].startsWith("enable") || args[0].equalsIgnoreCase("1"))
|
||||
{
|
||||
setValue(user, true);
|
||||
}
|
||||
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))
|
||||
{
|
||||
toggleOtherPlayers(server, user, args);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
setValue(user, !getValue(user));
|
||||
}
|
||||
informPlayer(user);
|
||||
}
|
||||
|
||||
private void toggleOtherPlayers(final Server server, final CommandSender sender, final String[] args)
|
||||
{
|
||||
for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
|
||||
{
|
||||
if (isExempt(sender, matchPlayer))
|
||||
{
|
||||
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);
|
||||
}
|
||||
informPlayer(matchPlayer);
|
||||
informSender(sender, true, matchPlayer);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -106,6 +106,7 @@ public enum Permissions implements IPermission
|
||||
TPAHERE,
|
||||
TPOHERE,
|
||||
TPTOGGLE_OTHERS,
|
||||
TPTOGGLE_EXEMPT,
|
||||
UNLIMITED_OTHERS,
|
||||
WARP_LIST(PermissionDefault.TRUE),
|
||||
WARP_HIDDEN,
|
||||
|
Reference in New Issue
Block a user