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.
|
teleportRequestTimeoutInfo=\u00a76This request will timeout after\u00a7c {0} seconds\u00a76.
|
||||||
teleportTop=\u00a76Teleporting to top.
|
teleportTop=\u00a76Teleporting to top.
|
||||||
teleportationCommencing=\u00a76Teleportation commencing...
|
teleportationCommencing=\u00a76Teleportation commencing...
|
||||||
teleportationDisabled=\u00a76Teleportation disabled.
|
teleportMode=\u00a76Teleportation\u00a7c {0}\u00a76.
|
||||||
teleportationEnabled=\u00a76Teleportation enabled.
|
|
||||||
teleporting=\u00a76Teleporting...
|
teleporting=\u00a76Teleporting...
|
||||||
teleportingPortal=\u00a76Teleporting via portal.
|
teleportingPortal=\u00a76Teleporting via portal.
|
||||||
tempBanned=Temporarily banned from server for {0}
|
tempBanned=Temporarily banned from server for {0}
|
||||||
|
@@ -69,6 +69,8 @@ public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolde
|
|||||||
|
|
||||||
boolean isGodModeEnabled();
|
boolean isGodModeEnabled();
|
||||||
|
|
||||||
|
boolean isTeleportEnabled();
|
||||||
|
|
||||||
boolean isIgnoringPlayer(IUser user);
|
boolean isIgnoringPlayer(IUser user);
|
||||||
|
|
||||||
void setIgnoredPlayer(IUser user, boolean set);
|
void setIgnoredPlayer(IUser user, boolean set);
|
||||||
@@ -89,8 +91,6 @@ public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolde
|
|||||||
|
|
||||||
IUser getTeleportRequester();
|
IUser getTeleportRequester();
|
||||||
|
|
||||||
boolean toggleTeleportEnabled();
|
|
||||||
|
|
||||||
long getTeleportRequestTime();
|
long getTeleportRequestTime();
|
||||||
|
|
||||||
boolean gotMailInfo();
|
boolean gotMailInfo();
|
||||||
@@ -121,6 +121,8 @@ public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolde
|
|||||||
|
|
||||||
void setGodModeEnabled(boolean set);
|
void setGodModeEnabled(boolean set);
|
||||||
|
|
||||||
|
void setTeleportEnabled(boolean set);
|
||||||
|
|
||||||
void setVanished(boolean set);
|
void setVanished(boolean set);
|
||||||
|
|
||||||
boolean checkSignThrottle(int throttle);
|
boolean checkSignThrottle(int throttle);
|
||||||
|
@@ -7,67 +7,45 @@ import org.bukkit.Server;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
|
||||||
public class Commandfly extends EssentialsCommand
|
public class Commandfly extends EssentialsSettingsCommand
|
||||||
{
|
{
|
||||||
@Override
|
protected void setValue(final IUser player, final boolean value)
|
||||||
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
|
||||||
{
|
{
|
||||||
if (args.length < 1)
|
player.getPlayer().setAllowFlight(value);
|
||||||
|
if (!player.getPlayer().getAllowFlight())
|
||||||
{
|
{
|
||||||
throw new NotEnoughArgumentsException();
|
player.getPlayer().setFlying(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
flyOtherPlayers(server, sender, args);
|
protected boolean getValue(final IUser player)
|
||||||
|
{
|
||||||
|
return player.getPlayer().getAllowFlight();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
protected void informSender(final CommandSender sender, final boolean value, final IUser player)
|
||||||
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
|
||||||
{
|
{
|
||||||
if (args.length > 0 && args[0].trim().length() > 2 && Permissions.FLY_OTHERS.isAuthorized(user))
|
if (value) {
|
||||||
{
|
sender.sendMessage( _("flyMode", _(getValue(player) ? "enabled" : "disabled"), player.getPlayer().getDisplayName()));
|
||||||
flyOtherPlayers(server, user, args);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
user.getPlayer().setAllowFlight(!user.getPlayer().getAllowFlight());
|
else {
|
||||||
if (!user.getPlayer().getAllowFlight())
|
sender.sendMessage("Can't change fly mode for player " + player.getName());
|
||||||
{
|
|
||||||
user.getPlayer().setFlying(false);
|
|
||||||
}
|
}
|
||||||
user.sendMessage(_("flyMode", _(user.getPlayer().getAllowFlight() ? "enabled" : "disabled"), user.getPlayer().getDisplayName()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void flyOtherPlayers(final Server server, final CommandSender sender, final String[] args)
|
protected void informPlayer(final IUser player)
|
||||||
{
|
{
|
||||||
for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
|
final String message = _("flyMode", _(getValue(player) ? "enabled" : "disabled"), player.getPlayer().getDisplayName());
|
||||||
{
|
player.sendMessage(message);
|
||||||
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())
|
protected boolean canToggleOthers(final IUser user)
|
||||||
{
|
{
|
||||||
matchPlayer.getPlayer().setFlying(false);
|
return Permissions.FLY_OTHERS.isAuthorized(user);
|
||||||
}
|
|
||||||
final String message = _("flyMode", _(matchPlayer.getPlayer().getAllowFlight() ? "enabled" : "disabled"), matchPlayer.getPlayer().getDisplayName());
|
|
||||||
matchPlayer.sendMessage(message);
|
|
||||||
sender.sendMessage(message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 net.ess3.permissions.Permissions;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
public class Commandgod extends EssentialsSettingsCommand
|
||||||
public class Commandgod extends EssentialsCommand
|
|
||||||
{
|
{
|
||||||
@Override
|
protected void setValue(final IUser player, final boolean value)
|
||||||
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
|
||||||
{
|
{
|
||||||
if (args.length < 1)
|
player.setGodModeEnabled(value);
|
||||||
{
|
|
||||||
throw new NotEnoughArgumentsException();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
godOtherPlayers(sender, args);
|
protected boolean getValue(final IUser player)
|
||||||
|
{
|
||||||
|
return player.isGodModeEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
protected void informSender(final CommandSender sender, final boolean value, final IUser player)
|
||||||
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
|
||||||
{
|
{
|
||||||
if (args.length > 0 && !args[0].trim().isEmpty() && Permissions.GOD_OTHERS.isAuthorized(user))
|
if (value) {
|
||||||
{
|
sender.sendMessage( _("godMode", _(getValue(player) ? "enabled" : "disabled"), player.getPlayer().getDisplayName()));
|
||||||
godOtherPlayers(user, args);
|
}
|
||||||
return;
|
else {
|
||||||
|
sender.sendMessage("Can't change god mode for player " + player.getName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
user.setGodModeEnabled(!user.isGodModeEnabled());
|
protected void informPlayer(final IUser player)
|
||||||
user.sendMessage(_("godMode", (user.isGodModeEnabled() ? _("enabled") : _("disabled"))));
|
{
|
||||||
|
final String message = _("godMode", _(getValue(player) ? "enabled" : "disabled"), player.getPlayer().getDisplayName());
|
||||||
|
player.sendMessage(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void godOtherPlayers(final CommandSender sender, final String[] args)
|
protected boolean canToggleOthers(final IUser user)
|
||||||
{
|
{
|
||||||
for (IUser player : ess.getUserMap().matchUsers(args[0], true))
|
return Permissions.GOD_OTHERS.isAuthorized(user);
|
||||||
{
|
|
||||||
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();
|
protected boolean isExempt(final CommandSender sender, final IUser player)
|
||||||
player.sendMessage(_("godMode", (enabled ? _("enabled") : _("disabled"))));
|
{
|
||||||
sender.sendMessage(_("godMode", _(enabled ? "godEnabledFor" : "godDisabledFor", player.getName())));
|
return (player.isOnline() ? Permissions.GOD_EXEMPT.isAuthorized(player) : !Permissions.GOD_OFFLINE.isAuthorized(sender));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,35 +1,47 @@
|
|||||||
package net.ess3.commands;
|
package net.ess3.commands;
|
||||||
|
|
||||||
import static net.ess3.I18n._;
|
import static net.ess3.I18n._;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
import net.ess3.api.IUser;
|
import net.ess3.api.IUser;
|
||||||
import net.ess3.permissions.Permissions;
|
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;
|
player.setTeleportEnabled(value);
|
||||||
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
|
|
||||||
|
protected boolean getValue(final IUser player)
|
||||||
{
|
{
|
||||||
ess.getUserMap().getUser(server.getPlayer(args[0])).sendMessage(user.toggleTeleportEnabled()
|
return player.isTeleportEnabled();
|
||||||
? _("teleportationEnabled")
|
}
|
||||||
: _("teleportationDisabled"));
|
|
||||||
|
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 {
|
||||||
|
sender.sendMessage("Can't change teleport toggle for player " + player.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
protected void informPlayer(final IUser player)
|
||||||
{
|
{
|
||||||
user.sendMessage(user.toggleTeleportEnabled()
|
final String message = _("teleportMode", _(getValue(player) ? "enabled" : "disabled"), player.getPlayer().getDisplayName());
|
||||||
? _("teleportationEnabled")
|
player.sendMessage(message);
|
||||||
: _("teleportationDisabled"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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,
|
TPAHERE,
|
||||||
TPOHERE,
|
TPOHERE,
|
||||||
TPTOGGLE_OTHERS,
|
TPTOGGLE_OTHERS,
|
||||||
|
TPTOGGLE_EXEMPT,
|
||||||
UNLIMITED_OTHERS,
|
UNLIMITED_OTHERS,
|
||||||
WARP_LIST(PermissionDefault.TRUE),
|
WARP_LIST(PermissionDefault.TRUE),
|
||||||
WARP_HIDDEN,
|
WARP_HIDDEN,
|
||||||
|
Reference in New Issue
Block a user