use of cn.nukkit.Player in project Nukkit by Nukkit.
the class EntityBoat method attack.
@Override
public boolean attack(EntityDamageEvent source) {
if (invulnerable) {
return false;
} else {
// Event start
VehicleDamageEvent event = new VehicleDamageEvent(this, source.getEntity(), source.getFinalDamage());
getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
return false;
}
// Event stop
performHurtAnimation((int) event.getDamage());
boolean instantKill = false;
if (source instanceof EntityDamageByEntityEvent) {
Entity damager = ((EntityDamageByEntityEvent) source).getDamager();
instantKill = damager instanceof Player && ((Player) damager).isCreative();
}
if (instantKill || getDamage() > 40) {
// Event start
VehicleDestroyEvent event2 = new VehicleDestroyEvent(this, source.getEntity());
getServer().getPluginManager().callEvent(event2);
if (event2.isCancelled()) {
return false;
}
// Event stop
if (linkedEntity != null) {
mountEntity(linkedEntity);
}
if (instantKill && (!hasCustomName())) {
kill();
} else {
if (level.getGameRules().getBoolean(GameRule.DO_ENTITY_DROPS)) {
this.level.dropItem(this, new ItemBoat());
}
close();
}
}
}
return true;
}
use of cn.nukkit.Player in project Nukkit by Nukkit.
the class EntityBoat method close.
@Override
public void close() {
super.close();
if (this.linkedEntity instanceof Player) {
this.linkedEntity.riding = null;
}
SmokeParticle particle = new SmokeParticle(this);
this.level.addParticle(particle);
}
use of cn.nukkit.Player in project Nukkit by Nukkit.
the class DeopCommand method execute.
@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
if (!this.testPermission(sender)) {
return true;
}
if (args.length == 0) {
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return false;
}
String playerName = args[0];
IPlayer player = sender.getServer().getOfflinePlayer(playerName);
player.setOp(false);
if (player instanceof Player) {
((Player) player).sendMessage(new TranslationContainer(TextFormat.GRAY + "%commands.deop.message"));
}
Command.broadcastCommandMessage(sender, new TranslationContainer("commands.deop.success", new String[] { player.getName() }));
return true;
}
use of cn.nukkit.Player in project Nukkit by Nukkit.
the class GamemodeCommand method execute.
@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
if (args.length == 0) {
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return false;
}
int gameMode = Server.getGamemodeFromString(args[0]);
if (gameMode == -1) {
sender.sendMessage("Unknown game mode");
return true;
}
CommandSender target = sender;
if (args.length > 1) {
if (sender.hasPermission("nukkit.command.gamemode.other")) {
target = sender.getServer().getPlayer(args[1]);
if (target == null) {
sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.player.notFound"));
return true;
}
} else {
sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission"));
return true;
}
} else if (!(sender instanceof Player)) {
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return true;
}
if ((gameMode == 0 && !sender.hasPermission("nukkit.command.gamemode.survival")) || (gameMode == 1 && !sender.hasPermission("nukkit.command.gamemode.creative")) || (gameMode == 2 && !sender.hasPermission("nukkit.command.gamemode.adventure")) || (gameMode == 3 && !sender.hasPermission("nukkit.command.gamemode.spectator"))) {
sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission"));
return true;
}
if (!((Player) target).setGamemode(gameMode)) {
sender.sendMessage("Game mode update for " + target.getName() + " failed");
} else {
if (target.equals(sender)) {
Command.broadcastCommandMessage(sender, new TranslationContainer("commands.gamemode.success.self", Server.getGamemodeString(gameMode)));
} else {
target.sendMessage(new TranslationContainer("gameMode.changed"));
Command.broadcastCommandMessage(sender, new TranslationContainer("commands.gamemode.success.other", new String[] { target.getName(), Server.getGamemodeString(gameMode) }));
}
}
return true;
}
use of cn.nukkit.Player in project Nukkit by Nukkit.
the class BanCommand method execute.
@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
if (!this.testPermission(sender)) {
return true;
}
if (args.length == 0) {
sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
return false;
}
String name = args[0];
String reason = "";
for (int i = 1; i < args.length; i++) {
reason += args[i] + " ";
}
if (reason.length() > 0) {
reason = reason.substring(0, reason.length() - 1);
}
sender.getServer().getNameBans().addBan(name, reason, null, sender.getName());
Player player = sender.getServer().getPlayerExact(name);
if (player != null) {
player.kick(PlayerKickEvent.Reason.NAME_BANNED, !reason.isEmpty() ? "Banned by admin. Reason: " + reason : "Banned by admin");
}
Command.broadcastCommandMessage(sender, new TranslationContainer("%commands.ban.success", player != null ? player.getName() : name));
return true;
}
Aggregations