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);
}
}
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);
}
}
Aggregations