Search in sources :

Example 11 with Player

use of cn.nukkit.Player in project Nukkit by Nukkit.

the class EnchantCommand method execute.

@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
    if (!this.testPermission(sender)) {
        return true;
    }
    if (args.length < 2) {
        sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
        return true;
    }
    Player player = sender.getServer().getPlayer(args[0]);
    if (player == null) {
        sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.player.notFound"));
        return true;
    }
    int enchantId;
    int enchantLevel;
    try {
        enchantId = getIdByName(args[1]);
        enchantLevel = args.length == 3 ? Integer.parseInt(args[2]) : 1;
    } catch (NumberFormatException e) {
        sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
        return true;
    }
    Enchantment enchantment = Enchantment.getEnchantment(enchantId);
    if (enchantment == null) {
        sender.sendMessage(new TranslationContainer("commands.enchant.notFound", String.valueOf(enchantId)));
        return true;
    }
    enchantment.setLevel(enchantLevel);
    Item item = player.getInventory().getItemInHand();
    if (item.getId() <= 0) {
        sender.sendMessage(new TranslationContainer("commands.enchant.noItem"));
        return true;
    }
    item.addEnchantment(enchantment);
    player.getInventory().setItemInHand(item);
    Command.broadcastCommandMessage(sender, new TranslationContainer("%commands.enchant.success"));
    return true;
}
Also used : Item(cn.nukkit.item.Item) Player(cn.nukkit.Player) TranslationContainer(cn.nukkit.lang.TranslationContainer) Enchantment(cn.nukkit.item.enchantment.Enchantment)

Example 12 with Player

use of cn.nukkit.Player in project Nukkit by Nukkit.

the class EntityHuman method spawnTo.

@Override
public void spawnTo(Player player) {
    if (this != player && !this.hasSpawned.containsKey(player.getLoaderId())) {
        this.hasSpawned.put(player.getLoaderId(), player);
        if (this.skin.getData().length < 64 * 32 * 4) {
            throw new IllegalStateException(this.getClass().getSimpleName() + " must have a valid skin set");
        }
        if (this instanceof Player)
            this.server.updatePlayerListData(this.getUniqueId(), this.getId(), this.getName(), this.skin, ((Player) this).getLoginChainData().getXUID(), new Player[] { player });
        else
            this.server.updatePlayerListData(this.getUniqueId(), this.getId(), this.getName(), this.skin, new Player[] { player });
        AddPlayerPacket pk = new AddPlayerPacket();
        pk.uuid = this.getUniqueId();
        pk.username = this.getName();
        pk.entityUniqueId = this.getId();
        pk.entityRuntimeId = this.getId();
        pk.x = (float) this.x;
        pk.y = (float) this.y;
        pk.z = (float) this.z;
        pk.speedX = (float) this.motionX;
        pk.speedY = (float) this.motionY;
        pk.speedZ = (float) this.motionZ;
        pk.yaw = (float) this.yaw;
        pk.pitch = (float) this.pitch;
        pk.item = this.getInventory().getItemInHand();
        pk.metadata = this.dataProperties;
        player.dataPacket(pk);
        this.inventory.sendArmorContents(player);
        if (this.riding != null) {
            SetEntityLinkPacket pkk = new SetEntityLinkPacket();
            pkk.rider = this.riding.getId();
            pkk.riding = this.getId();
            pkk.type = 1;
            pkk.unknownByte = 1;
            player.dataPacket(pkk);
        }
        if (!(this instanceof Player)) {
            this.server.removePlayerListData(this.getUniqueId(), new Player[] { player });
        }
    }
}
Also used : Player(cn.nukkit.Player) SetEntityLinkPacket(cn.nukkit.network.protocol.SetEntityLinkPacket) AddPlayerPacket(cn.nukkit.network.protocol.AddPlayerPacket)

Example 13 with Player

use of cn.nukkit.Player in project Nukkit by Nukkit.

the class EntityLiving method entityBaseTick.

@Override
public boolean entityBaseTick(int tickDiff) {
    Timings.livingEntityBaseTickTimer.startTiming();
    boolean isBreathing = !this.isInsideOfWater();
    if (this instanceof Player && ((Player) this).isCreative()) {
        isBreathing = true;
    }
    this.setDataFlag(DATA_FLAGS, DATA_FLAG_BREATHING, isBreathing);
    boolean hasUpdate = super.entityBaseTick(tickDiff);
    if (this.isAlive()) {
        if (this.isInsideOfSolid()) {
            hasUpdate = true;
            this.attack(new EntityDamageEvent(this, DamageCause.SUFFOCATION, 1));
        }
        if (!this.hasEffect(Effect.WATER_BREATHING) && this.isInsideOfWater()) {
            if (this instanceof EntityWaterAnimal) {
                this.setDataProperty(new ShortEntityData(DATA_AIR, 400));
            } else {
                hasUpdate = true;
                int airTicks = this.getDataPropertyShort(DATA_AIR) - tickDiff;
                if (airTicks <= -20) {
                    airTicks = 0;
                    this.attack(new EntityDamageEvent(this, DamageCause.DROWNING, 2));
                }
                this.setDataProperty(new ShortEntityData(DATA_AIR, airTicks));
            }
        } else {
            if (this instanceof EntityWaterAnimal) {
                hasUpdate = true;
                int airTicks = this.getDataPropertyInt(DATA_AIR) - tickDiff;
                if (airTicks <= -20) {
                    airTicks = 0;
                    this.attack(new EntityDamageEvent(this, DamageCause.SUFFOCATION, 2));
                }
                this.setDataProperty(new ShortEntityData(DATA_AIR, airTicks));
            } else {
                this.setDataProperty(new ShortEntityData(DATA_AIR, 400));
            }
        }
    }
    if (this.attackTime > 0) {
        this.attackTime -= tickDiff;
    }
    if (this.riding == null) {
        for (Entity entity : level.getNearbyEntities(this.boundingBox.grow(0.20000000298023224D, 0.0D, 0.20000000298023224D), this)) {
            if (entity instanceof EntityRideable) {
                this.collidingWith(entity);
            }
        }
    }
    Timings.livingEntityBaseTickTimer.stopTiming();
    return hasUpdate;
}
Also used : Player(cn.nukkit.Player) EntityWaterAnimal(cn.nukkit.entity.passive.EntityWaterAnimal) ShortEntityData(cn.nukkit.entity.data.ShortEntityData)

Example 14 with Player

use of cn.nukkit.Player in project Nukkit by Nukkit.

the class TeleportCommand method execute.

@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
    if (!this.testPermission(sender)) {
        return true;
    }
    if (args.length < 1 || args.length > 6) {
        sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
        return true;
    }
    CommandSender target;
    CommandSender origin = sender;
    if (args.length == 1 || args.length == 3) {
        if (sender instanceof Player) {
            target = sender;
        } else {
            sender.sendMessage(new TranslationContainer("commands.generic.ingame"));
            return true;
        }
        if (args.length == 1) {
            target = sender.getServer().getPlayer(args[0]);
            if (target == null) {
                sender.sendMessage(TextFormat.RED + "Can't find player " + args[0]);
                return true;
            }
        }
    } else {
        target = sender.getServer().getPlayer(args[0]);
        if (target == null) {
            sender.sendMessage(TextFormat.RED + "Can't find player " + args[0]);
            return true;
        }
        if (args.length == 2) {
            origin = target;
            target = sender.getServer().getPlayer(args[1]);
            if (target == null) {
                sender.sendMessage(TextFormat.RED + "Can't find player " + args[1]);
                return true;
            }
        }
    }
    if (args.length < 3) {
        ((Player) origin).teleport((Player) target, PlayerTeleportEvent.TeleportCause.COMMAND);
        Command.broadcastCommandMessage(sender, new TranslationContainer("commands.tp.success", new String[] { origin.getName(), target.getName() }));
        return true;
    } else if (((Player) target).getLevel() != null) {
        int pos;
        if (args.length == 4 || args.length == 6) {
            pos = 1;
        } else {
            pos = 0;
        }
        double x;
        double y;
        double z;
        double yaw;
        double pitch;
        try {
            x = Double.parseDouble(args[pos++]);
            y = Double.parseDouble(args[pos++]);
            z = Double.parseDouble(args[pos++]);
            yaw = ((Player) target).getYaw();
            pitch = ((Player) target).getPitch();
        } catch (NumberFormatException e1) {
            sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
            return true;
        }
        if (y < 0)
            y = 0;
        if (y > 256)
            y = 256;
        if (args.length == 6 || (args.length == 5 && pos == 3)) {
            yaw = Integer.parseInt(args[pos++]);
            pitch = Integer.parseInt(args[pos++]);
        }
        ((Player) target).teleport(new Location(x, y, z, yaw, pitch, ((Player) target).getLevel()), PlayerTeleportEvent.TeleportCause.COMMAND);
        Command.broadcastCommandMessage(sender, new TranslationContainer("commands.tp.success.coordinates", new String[] { target.getName(), String.valueOf(NukkitMath.round(x, 2)), String.valueOf(NukkitMath.round(y, 2)), String.valueOf(NukkitMath.round(z, 2)) }));
        return true;
    }
    sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
    return true;
}
Also used : Player(cn.nukkit.Player) TranslationContainer(cn.nukkit.lang.TranslationContainer) CommandSender(cn.nukkit.command.CommandSender) Location(cn.nukkit.level.Location)

Example 15 with Player

use of cn.nukkit.Player in project Nukkit by Nukkit.

the class TitleCommand method execute.

@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
    if (!this.testPermission(sender)) {
        return true;
    }
    if (args.length < 2) {
        sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
        return false;
    }
    Player player = Server.getInstance().getPlayerExact(args[0]);
    if (player == null) {
        sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.player.notFound"));
        return true;
    }
    if (args.length == 2) {
        switch(args[1].toLowerCase()) {
            case "clear":
                player.clearTitle();
                sender.sendMessage(new TranslationContainer("nukkit.command.title.clear", player.getName()));
                break;
            case "reset":
                player.resetTitleSettings();
                sender.sendMessage(new TranslationContainer("nukkit.command.title.reset", player.getName()));
                break;
            default:
                sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
                return false;
        }
    } else if (args.length == 3) {
        switch(args[1].toLowerCase()) {
            case "title":
                player.sendTitle(args[2]);
                sender.sendMessage(new TranslationContainer("nukkit.command.title.title", new String[] { TextFormat.clean(args[2]), player.getName() }));
                break;
            /*case "subtitle":
                    player.setSubtitle(args[2]);
                    sender.sendMessage(new TranslationContainer("nukkit.command.title.subtitle", new String[]{TextFormat.clean(args[2]), player.getName()}));
                    break;
                case "actionbar":
                    player.sendActionBarTitle(args[2]);
                    sender.sendMessage(new TranslationContainer("nukkit.command.title.actionbar", new String[]{TextFormat.clean(args[2]), player.getName()}));
                    break;*/
            default:
                sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
                return false;
        }
    } else if (args.length == 5) {
        if (args[1].toLowerCase().equals("times")) {
            try {
                /*player.setTitleAnimationTimes(Integer.valueOf(args[2]), //fadeIn
                            Integer.valueOf(args[3]), //stay
                            Integer.valueOf(args[4])); //fadeOut*/
                sender.sendMessage(new TranslationContainer("nukkit.command.title.times.success", new String[] { args[2], args[3], args[4], player.getName() }));
            } catch (NumberFormatException exception) {
                sender.sendMessage(new TranslationContainer(TextFormat.RED + "%nukkit.command.title.times.fail"));
            }
        } else {
            sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
            return false;
        }
    } else {
        sender.sendMessage(new TranslationContainer("commands.generic.usage", this.usageMessage));
        return false;
    }
    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