2011-03-19 23:39:51 +01:00
|
|
|
package com.earth2me.essentials.commands;
|
|
|
|
|
2013-10-16 21:59:39 +02:00
|
|
|
import com.earth2me.essentials.CommandSource;
|
2013-09-28 18:21:16 +02:00
|
|
|
import com.earth2me.essentials.User;
|
2011-03-19 23:39:51 +01:00
|
|
|
import org.bukkit.Server;
|
|
|
|
import org.bukkit.entity.Player;
|
2011-10-09 16:43:58 +02:00
|
|
|
import org.bukkit.event.entity.EntityDamageEvent;
|
2011-03-19 23:39:51 +01:00
|
|
|
|
2017-06-11 02:17:43 +02:00
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.List;
|
|
|
|
|
2015-04-15 06:06:16 +02:00
|
|
|
import static com.earth2me.essentials.I18n.tl;
|
|
|
|
|
2011-03-19 23:39:51 +01:00
|
|
|
|
2015-04-15 06:06:16 +02:00
|
|
|
public class Commandkill extends EssentialsLoopCommand {
|
|
|
|
public Commandkill() {
|
|
|
|
super("kill");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception {
|
2020-08-11 20:09:22 +02:00
|
|
|
if (args.length == 0) {
|
2015-04-15 06:06:16 +02:00
|
|
|
throw new NotEnoughArgumentsException();
|
|
|
|
}
|
|
|
|
|
|
|
|
loopOnlinePlayers(server, sender, true, true, args[0], null);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void updatePlayer(final Server server, final CommandSource sender, final User user, final String[] args) throws PlayerExemptException {
|
|
|
|
final Player matchPlayer = user.getBase();
|
|
|
|
if (sender.isPlayer() && user.isAuthorized("essentials.kill.exempt") && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.kill.force")) {
|
|
|
|
throw new PlayerExemptException(tl("killExempt", matchPlayer.getDisplayName()));
|
|
|
|
}
|
2020-07-01 23:04:46 +02:00
|
|
|
final EntityDamageEvent ede = new EntityDamageEvent(matchPlayer, sender.isPlayer() && sender.getPlayer().getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, Float.MAX_VALUE);
|
2015-04-15 06:06:16 +02:00
|
|
|
server.getPluginManager().callEvent(ede);
|
|
|
|
if (ede.isCancelled() && sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.kill.force")) {
|
|
|
|
return;
|
|
|
|
}
|
2015-09-28 03:45:25 +02:00
|
|
|
ede.getEntity().setLastDamageCause(ede);
|
2020-07-01 23:04:46 +02:00
|
|
|
matchPlayer.setHealth(0);
|
2015-04-15 06:06:16 +02:00
|
|
|
sender.sendMessage(tl("kill", matchPlayer.getDisplayName()));
|
|
|
|
}
|
2017-06-11 02:17:43 +02:00
|
|
|
|
|
|
|
@Override
|
|
|
|
protected List<String> getTabCompleteOptions(Server server, CommandSource sender, String commandLabel, String[] args) {
|
|
|
|
if (args.length == 1) {
|
|
|
|
return getPlayers(server, sender);
|
|
|
|
} else {
|
|
|
|
return Collections.emptyList();
|
|
|
|
}
|
|
|
|
}
|
2011-03-19 23:39:51 +01:00
|
|
|
}
|