Search in sources :

Example 1 with MobEffectPacket

use of cn.nukkit.network.protocol.MobEffectPacket in project Nukkit by Nukkit.

the class Effect method remove.

public void remove(Entity entity) {
    if (entity instanceof Player) {
        MobEffectPacket pk = new MobEffectPacket();
        pk.eid = entity.getId();
        pk.effectId = this.getId();
        pk.eventId = MobEffectPacket.EVENT_REMOVE;
        ((Player) entity).dataPacket(pk);
        if (this.id == Effect.SPEED || this.id == Effect.SLOWNESS) {
            ((Player) entity).setMovementSpeed(0.1f);
        }
    }
    if (this.id == Effect.INVISIBILITY) {
        entity.setDataFlag(Entity.DATA_FLAGS, Entity.DATA_FLAG_INVISIBLE, false);
        entity.setNameTagVisible(true);
    }
    if (this.id == Effect.ABSORPTION) {
        entity.setAbsorption(0);
    }
}
Also used : Player(cn.nukkit.Player) MobEffectPacket(cn.nukkit.network.protocol.MobEffectPacket)

Example 2 with MobEffectPacket

use of cn.nukkit.network.protocol.MobEffectPacket in project Nukkit by Nukkit.

the class Effect method add.

public void add(Entity entity, boolean modify) {
    if (entity instanceof Player) {
        MobEffectPacket pk = new MobEffectPacket();
        pk.eid = entity.getId();
        pk.effectId = this.getId();
        pk.amplifier = this.getAmplifier();
        pk.particles = this.isVisible();
        pk.duration = this.getDuration();
        if (modify) {
            pk.eventId = MobEffectPacket.EVENT_MODIFY;
        } else {
            pk.eventId = MobEffectPacket.EVENT_ADD;
        }
        ((Player) entity).dataPacket(pk);
        if (this.id == Effect.SPEED) {
            ((Player) entity).setMovementSpeed((float) (((this.amplifier + 1) * 0.2 + 1) * 0.1));
        }
        if (this.id == Effect.SLOWNESS) {
            ((Player) entity).setMovementSpeed((float) (((this.amplifier + 1) * -0.15 + 1) * 0.1));
        }
    }
    if (this.id == Effect.INVISIBILITY) {
        entity.setDataFlag(Entity.DATA_FLAGS, Entity.DATA_FLAG_INVISIBLE, true);
        entity.setNameTagVisible(false);
    }
    if (this.id == Effect.ABSORPTION) {
        int add = (this.amplifier + 1) * 4;
        if (add > entity.getAbsorption())
            entity.setAbsorption(add);
    }
}
Also used : Player(cn.nukkit.Player) MobEffectPacket(cn.nukkit.network.protocol.MobEffectPacket)

Aggregations

Player (cn.nukkit.Player)2 MobEffectPacket (cn.nukkit.network.protocol.MobEffectPacket)2