diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index 7f944e529..015213da0 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -335,4 +335,6 @@ public interface ISettings extends IConf { boolean logCommandBlockCommands(); Set> getNickBlacklist(); + + double getMaxProjectileSpeed(); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 2d611e5fa..1aff962b9 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -557,6 +557,7 @@ public class Settings implements net.ess3.api.ISettings { isSafeUsermap = _isSafeUsermap(); logCommandBlockCommands = _logCommandBlockCommands(); nickBlacklist = _getNickBlacklist(); + maxProjectileSpeed = _getMaxProjectileSpeed(); } void _lateLoadItemSpawnBlacklist() { @@ -1611,4 +1612,15 @@ public class Settings implements net.ess3.api.ISettings { public Set> getNickBlacklist() { return nickBlacklist; } + + private double maxProjectileSpeed; + + private double _getMaxProjectileSpeed() { + return config.getDouble("max-projectile-speed", 8); + } + + @Override + public double getMaxProjectileSpeed() { + return maxProjectileSpeed; + } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandfireball.java b/Essentials/src/com/earth2me/essentials/commands/Commandfireball.java index 029f1cb9f..7715e0821 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandfireball.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandfireball.java @@ -47,10 +47,11 @@ public class Commandfireball extends EssentialsCommand { if (args.length > 1) { try { speed = FloatUtil.parseDouble(args[1]); + speed = Double.max(0, Double.min(speed, ess.getSettings().getMaxProjectileSpeed())); } catch (Exception ignored) {} } - if (args.length > 2 && args[2].equalsIgnoreCase("ride")) { + if (args.length > 2 && args[2].equalsIgnoreCase("ride") && user.isAuthorized("essentials.fireball.ride")) { ride = true; } diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index b71392bf7..094e93b73 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -614,6 +614,9 @@ sethome-multiple: # change the compass' direction to point towards their first home. compass-towards-home-perm: false +# Set the maximum speed for projectiles spawned with /fireball. +max-projectile-speed: 8 + ############################################################ # +------------------------------------------------------+ # # | EssentialsEco | # diff --git a/Essentials/src/net/ess3/api/ISettings.java b/Essentials/src/net/ess3/api/ISettings.java index 34e9f8763..2a34978bd 100644 --- a/Essentials/src/net/ess3/api/ISettings.java +++ b/Essentials/src/net/ess3/api/ISettings.java @@ -2,5 +2,4 @@ package net.ess3.api; public interface ISettings extends com.earth2me.essentials.ISettings { - }