diff options
Diffstat (limited to 'Essentials/src/net/ess3/commands/Commandlightning.java')
-rw-r--r-- | Essentials/src/net/ess3/commands/Commandlightning.java | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/Essentials/src/net/ess3/commands/Commandlightning.java b/Essentials/src/net/ess3/commands/Commandlightning.java new file mode 100644 index 000000000..3ac1b0494 --- /dev/null +++ b/Essentials/src/net/ess3/commands/Commandlightning.java @@ -0,0 +1,64 @@ +package net.ess3.commands; + +import static net.ess3.I18n._; +import net.ess3.api.ISettings; +import net.ess3.api.IUser; +import net.ess3.permissions.Permissions; +import lombok.Cleanup; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.LightningStrike; +import org.bukkit.entity.Player; + + +public class Commandlightning extends EssentialsCommand +{ + @Override + public void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception + { + + IUser user = null; + if (sender instanceof Player) + { + user = ess.getUser(((Player)sender)); + } + if ((args.length < 1 || !Permissions.LIGHTNING_OTHERS.isAuthorized(user)) && user != null) + { + user.getWorld().strikeLightning(user.getTargetBlock(null, 600).getLocation()); + return; + } + + if (server.matchPlayer(args[0]).isEmpty()) + { + throw new Exception(_("playerNotFound")); + } + + int power = 5; + if (args.length > 1) + { + try + { + power = Integer.parseInt(args[1]); + } + catch (NumberFormatException ex) + { + } + } + + for (Player matchPlayer : server.matchPlayer(args[0])) + { + sender.sendMessage(_("lightningUse", matchPlayer.getDisplayName())); + final LightningStrike strike = matchPlayer.getWorld().strikeLightningEffect(matchPlayer.getLocation()); + if (!ess.getUser(matchPlayer).isGodModeEnabled()) + { + matchPlayer.damage(power, strike); + } + @Cleanup + final ISettings settings = ess.getSettings(); + settings.acquireReadLock(); + if (settings.getData().getCommands().getLightning().isWarnPlayer()) + { + matchPlayer.sendMessage(_("lightningSmited")); + } + } + } +} |