Search in sources :

Example 71 with Player

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;
}
Also used : Entity(cn.nukkit.entity.Entity) Player(cn.nukkit.Player) ItemBoat(cn.nukkit.item.ItemBoat) EntityDamageByEntityEvent(cn.nukkit.event.entity.EntityDamageByEntityEvent) VehicleDestroyEvent(cn.nukkit.event.vehicle.VehicleDestroyEvent) VehicleDamageEvent(cn.nukkit.event.vehicle.VehicleDamageEvent)

Example 72 with Player

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);
}
Also used : Player(cn.nukkit.Player) SmokeParticle(cn.nukkit.level.particle.SmokeParticle)

Example 73 with Player

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;
}
Also used : IPlayer(cn.nukkit.IPlayer) IPlayer(cn.nukkit.IPlayer) Player(cn.nukkit.Player) TranslationContainer(cn.nukkit.lang.TranslationContainer)

Example 74 with Player

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;
}
Also used : Player(cn.nukkit.Player) TranslationContainer(cn.nukkit.lang.TranslationContainer) CommandSender(cn.nukkit.command.CommandSender)

Example 75 with Player

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;
}
Also used : Player(cn.nukkit.Player) TranslationContainer(cn.nukkit.lang.TranslationContainer)

Aggregations

Player (cn.nukkit.Player)85 TranslationContainer (cn.nukkit.lang.TranslationContainer)24 Entity (cn.nukkit.entity.Entity)13 BlockEntity (cn.nukkit.blockentity.BlockEntity)10 Item (cn.nukkit.item.Item)10 Level (cn.nukkit.level.Level)7 IOException (java.io.IOException)6 CompoundTag (cn.nukkit.nbt.tag.CompoundTag)5 Block (cn.nukkit.block.Block)4 ItemBlock (cn.nukkit.item.ItemBlock)4 BlockAir (cn.nukkit.block.BlockAir)3 EventHandler (cn.nukkit.event.EventHandler)3 BaseFullChunk (cn.nukkit.level.format.generic.BaseFullChunk)3 InventoryContentPacket (cn.nukkit.network.protocol.InventoryContentPacket)3 InventorySlotPacket (cn.nukkit.network.protocol.InventorySlotPacket)3 User (me.lucko.luckperms.common.model.User)3 IPlayer (cn.nukkit.IPlayer)2 CommandSender (cn.nukkit.command.CommandSender)2 EntityItem (cn.nukkit.entity.item.EntityItem)2 EntityArrow (cn.nukkit.entity.projectile.EntityArrow)2