summaryrefslogtreecommitdiffstats
path: root/Essentials/src/com/earth2me/essentials/commands/Commandspeed.java
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2012-08-26 19:35:39 +0100
committerKHobbits <rob@khobbits.co.uk>2012-08-26 19:35:39 +0100
commit1b0a79470899337efcb595925160da69b25fe8bb (patch)
tree629bb1ce51b73700bb8873a8f01e562567da2771 /Essentials/src/com/earth2me/essentials/commands/Commandspeed.java
parent45798e2a2bb1d0f2b0c497b0cd93610541d62c31 (diff)
downloadEssentials-1b0a79470899337efcb595925160da69b25fe8bb.tar
Essentials-1b0a79470899337efcb595925160da69b25fe8bb.tar.gz
Essentials-1b0a79470899337efcb595925160da69b25fe8bb.tar.lz
Essentials-1b0a79470899337efcb595925160da69b25fe8bb.tar.xz
Essentials-1b0a79470899337efcb595925160da69b25fe8bb.zip
New command /speed [walk|fly] <speed> [player]
New permissions: essentials.speed = access to the command essentials.speed.others = ability to change the speed of another player essentials.speed.bypass = override max speed limits in config.yml New config options: max-fly-speed max-walk-speed
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/commands/Commandspeed.java')
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandspeed.java35
1 files changed, 19 insertions, 16 deletions
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandspeed.java b/Essentials/src/com/earth2me/essentials/commands/Commandspeed.java
index 31911ca6c..c7b44dc68 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandspeed.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandspeed.java
@@ -23,7 +23,7 @@ public class Commandspeed extends EssentialsCommand
}
final boolean isFly = isFlyMode(args[0]);
final float speed = getMoveSpeed(args[1]);
- speedOtherPlayers(server, sender, isFly, speed, args[2]);
+ speedOtherPlayers(server, sender, isFly, true, speed, args[2]);
}
@Override
@@ -36,48 +36,47 @@ public class Commandspeed extends EssentialsCommand
boolean isFly;
float speed;
+ boolean isBypass = user.isAuthorized("essentials.speed.bypass");
if (args.length == 1)
{
isFly = user.isFlying();
speed = getMoveSpeed(args[0]);
}
- else if (args.length == 2)
- {
- isFly = isFlyMode(args[0]);
- speed = getMoveSpeed(args[1]);
- }
else
{
isFly = isFlyMode(args[0]);
speed = getMoveSpeed(args[1]);
- speedOtherPlayers(server, user, isFly, speed, args[2]);
- return;
+ if (args.length > 2 && user.isAuthorized("essentials.speed.others"))
+ {
+ speedOtherPlayers(server, user, isFly, isBypass, speed, args[2]);
+ return;
+ }
}
if (isFly)
{
- user.setFlySpeed(getRealMoveSpeed(speed, isFly));
+ user.setFlySpeed(getRealMoveSpeed(speed, isFly, isBypass));
user.sendMessage(_("moveSpeed", _("flying"), speed, user.getDisplayName()));
}
else
{
- user.setWalkSpeed(getRealMoveSpeed(speed, isFly));
+ user.setWalkSpeed(getRealMoveSpeed(speed, isFly, isBypass));
user.sendMessage(_("moveSpeed", _("walking"), speed, user.getDisplayName()));
}
}
- private void speedOtherPlayers(final Server server, final CommandSender sender, final boolean isFly, final float speed, final String target)
+ private void speedOtherPlayers(final Server server, final CommandSender sender, final boolean isFly, final boolean isBypass, final float speed, final String target)
{
for (Player matchPlayer : server.matchPlayer(target))
{
if (isFly)
{
- matchPlayer.setFlySpeed(getRealMoveSpeed(speed, isFly));
+ matchPlayer.setFlySpeed(getRealMoveSpeed(speed, isFly, isBypass));
sender.sendMessage(_("moveSpeed", _("flying"), speed, matchPlayer.getDisplayName()));
}
else
{
- matchPlayer.setWalkSpeed(getRealMoveSpeed(speed, isFly));
+ matchPlayer.setWalkSpeed(getRealMoveSpeed(speed, isFly, isBypass));
sender.sendMessage(_("moveSpeed", _("walking"), speed, matchPlayer.getDisplayName()));
}
}
@@ -124,10 +123,14 @@ public class Commandspeed extends EssentialsCommand
return userSpeed;
}
- private float getRealMoveSpeed(final float userSpeed, final boolean isFly)
+ private float getRealMoveSpeed(final float userSpeed, final boolean isFly, final boolean isBypass)
{
- float maxSpeed = (float)(isFly ? ess.getSettings().getMaxFlySpeed() : ess.getSettings().getMaxWalkSpeed());
- float defaultSpeed = isFly ? 0.1f : 0.2f;
+ final float defaultSpeed = isFly ? 0.1f : 0.2f;
+ float maxSpeed = 1f;
+ if (!isBypass)
+ {
+ maxSpeed = (float)(isFly ? ess.getSettings().getMaxFlySpeed() : ess.getSettings().getMaxWalkSpeed());
+ }
if (userSpeed < 1f)
{