diff options
| author | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
|---|---|---|
| committer | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
| commit | b691c43c44ff180d10e7d4a9afc83b98551ff586 (patch) | |
| tree | 3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.World/UpdateMobEffectPacket.cpp | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.World/UpdateMobEffectPacket.cpp')
| -rw-r--r-- | Minecraft.World/UpdateMobEffectPacket.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Minecraft.World/UpdateMobEffectPacket.cpp b/Minecraft.World/UpdateMobEffectPacket.cpp new file mode 100644 index 00000000..dec8d79f --- /dev/null +++ b/Minecraft.World/UpdateMobEffectPacket.cpp @@ -0,0 +1,60 @@ +#include "stdafx.h" +#include "net.minecraft.world.effect.h" +#include "InputOutputStream.h" +#include "PacketListener.h" +#include "UpdateMobEffectPacket.h" + + + +UpdateMobEffectPacket::UpdateMobEffectPacket() +{ + this->entityId = 0; + this->effectId = 0; + this->effectAmplifier = 0; + this->effectDurationTicks = 0; +} + +UpdateMobEffectPacket::UpdateMobEffectPacket(int entityId, MobEffectInstance *effect) +{ + this->entityId = entityId; + this->effectId = (BYTE) (effect->getId() & 0xff); + this->effectAmplifier = (char) (effect->getAmplifier() & 0xff); + this->effectDurationTicks = (short) effect->getDuration(); +} + +void UpdateMobEffectPacket::read(DataInputStream *dis) +{ + entityId = dis->readInt(); + effectId = dis->readByte(); + effectAmplifier = dis->readByte(); + effectDurationTicks = dis->readShort(); +} + +void UpdateMobEffectPacket::write(DataOutputStream *dos) +{ + dos->writeInt(entityId); + dos->writeByte(effectId); + dos->writeByte(effectAmplifier); + dos->writeShort(effectDurationTicks); +} + +void UpdateMobEffectPacket::handle(PacketListener *listener) +{ + listener->handleUpdateMobEffect(shared_from_this()); +} + +int UpdateMobEffectPacket::getEstimatedSize() +{ + return 8; +} + +bool UpdateMobEffectPacket::canBeInvalidated() +{ + return true; +} + +bool UpdateMobEffectPacket::isInvalidatedBy(shared_ptr<Packet> packet) +{ + shared_ptr<UpdateMobEffectPacket> target = dynamic_pointer_cast<UpdateMobEffectPacket>(packet); + return target->entityId == entityId && target->effectId == effectId; +}
\ No newline at end of file |
