mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-08-03 19:15:44 +00:00
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
This commit is contained in:
parent
2b6d41ac5f
commit
65741403e0
2 changed files with 23 additions and 16 deletions
|
@ -23,7 +23,7 @@ public class Commandspeed extends EssentialsCommand
|
||||||
}
|
}
|
||||||
final boolean isFly = isFlyMode(args[0]);
|
final boolean isFly = isFlyMode(args[0]);
|
||||||
final float speed = getMoveSpeed(args[1]);
|
final float speed = getMoveSpeed(args[1]);
|
||||||
speedOtherPlayers(server, sender, isFly, speed, args[2]);
|
speedOtherPlayers(server, sender, isFly, true, speed, args[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -36,48 +36,47 @@ public class Commandspeed extends EssentialsCommand
|
||||||
|
|
||||||
boolean isFly;
|
boolean isFly;
|
||||||
float speed;
|
float speed;
|
||||||
|
boolean isBypass = user.isAuthorized("essentials.speed.bypass");
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
isFly = user.isFlying();
|
isFly = user.isFlying();
|
||||||
speed = getMoveSpeed(args[0]);
|
speed = getMoveSpeed(args[0]);
|
||||||
}
|
}
|
||||||
else if (args.length == 2)
|
|
||||||
{
|
|
||||||
isFly = isFlyMode(args[0]);
|
|
||||||
speed = getMoveSpeed(args[1]);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
isFly = isFlyMode(args[0]);
|
isFly = isFlyMode(args[0]);
|
||||||
speed = getMoveSpeed(args[1]);
|
speed = getMoveSpeed(args[1]);
|
||||||
speedOtherPlayers(server, user, isFly, speed, args[2]);
|
if (args.length > 2 && user.isAuthorized("essentials.speed.others"))
|
||||||
|
{
|
||||||
|
speedOtherPlayers(server, user, isFly, isBypass, speed, args[2]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (isFly)
|
if (isFly)
|
||||||
{
|
{
|
||||||
user.setFlySpeed(getRealMoveSpeed(speed, isFly));
|
user.setFlySpeed(getRealMoveSpeed(speed, isFly, isBypass));
|
||||||
user.sendMessage(_("moveSpeed", _("flying"), speed, user.getDisplayName()));
|
user.sendMessage(_("moveSpeed", _("flying"), speed, user.getDisplayName()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
user.setWalkSpeed(getRealMoveSpeed(speed, isFly));
|
user.setWalkSpeed(getRealMoveSpeed(speed, isFly, isBypass));
|
||||||
user.sendMessage(_("moveSpeed", _("walking"), speed, user.getDisplayName()));
|
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))
|
for (Player matchPlayer : server.matchPlayer(target))
|
||||||
{
|
{
|
||||||
if (isFly)
|
if (isFly)
|
||||||
{
|
{
|
||||||
matchPlayer.setFlySpeed(getRealMoveSpeed(speed, isFly));
|
matchPlayer.setFlySpeed(getRealMoveSpeed(speed, isFly, isBypass));
|
||||||
sender.sendMessage(_("moveSpeed", _("flying"), speed, matchPlayer.getDisplayName()));
|
sender.sendMessage(_("moveSpeed", _("flying"), speed, matchPlayer.getDisplayName()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
matchPlayer.setWalkSpeed(getRealMoveSpeed(speed, isFly));
|
matchPlayer.setWalkSpeed(getRealMoveSpeed(speed, isFly, isBypass));
|
||||||
sender.sendMessage(_("moveSpeed", _("walking"), speed, matchPlayer.getDisplayName()));
|
sender.sendMessage(_("moveSpeed", _("walking"), speed, matchPlayer.getDisplayName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -124,10 +123,14 @@ public class Commandspeed extends EssentialsCommand
|
||||||
return userSpeed;
|
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());
|
final float defaultSpeed = isFly ? 0.1f : 0.2f;
|
||||||
float defaultSpeed = isFly ? 0.1f : 0.2f;
|
float maxSpeed = 1f;
|
||||||
|
if (!isBypass)
|
||||||
|
{
|
||||||
|
maxSpeed = (float)(isFly ? ess.getSettings().getMaxFlySpeed() : ess.getSettings().getMaxWalkSpeed());
|
||||||
|
}
|
||||||
|
|
||||||
if (userSpeed < 1f)
|
if (userSpeed < 1f)
|
||||||
{
|
{
|
||||||
|
|
|
@ -326,6 +326,10 @@ commands:
|
||||||
description: Spawns a mob.
|
description: Spawns a mob.
|
||||||
usage: /<command> <mob>[:data][,<mount>[:data]] [amount] [player]
|
usage: /<command> <mob>[:data][,<mount>[:data]] [amount] [player]
|
||||||
aliases: [espawnmob,mob,emob]
|
aliases: [espawnmob,mob,emob]
|
||||||
|
speed:
|
||||||
|
description: Change your speed limits
|
||||||
|
usage: /<command> [fly|walk] [speed] [player]
|
||||||
|
aliases: [flyspeed,walkspeed,fspeed,wspeed,eflyspeed,ewalkspeed,efspeed,ewspeed,espeed]
|
||||||
sudo:
|
sudo:
|
||||||
description: Make another user perform a command.
|
description: Make another user perform a command.
|
||||||
usage: /<command> <player> <command [args]>
|
usage: /<command> <player> <command [args]>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue