the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "net.minecraft.world.effect.h"
3#include "InputOutputStream.h"
4#include "PacketListener.h"
5#include "BasicTree.h"
6#include "BasicTypeContainers.h"
7#include "UpdateMobEffectPacket.h"
8
9
10
11UpdateMobEffectPacket::UpdateMobEffectPacket()
12{
13 entityId = 0;
14 effectId = 0;
15 effectAmplifier = 0;
16 effectDurationTicks = 0;
17}
18
19UpdateMobEffectPacket::UpdateMobEffectPacket(int entityId, MobEffectInstance *effect)
20{
21 this->entityId = entityId;
22 effectId = (BYTE) (effect->getId() & 0xff);
23 effectAmplifier = (char) (effect->getAmplifier() & 0xff);
24
25 if (effect->getDuration() > Short::MAX_VALUE)
26 {
27 effectDurationTicks = Short::MAX_VALUE;
28 }
29 else
30 {
31 effectDurationTicks = (short) effect->getDuration();
32 }
33}
34
35void UpdateMobEffectPacket::read(DataInputStream *dis)
36{
37 entityId = dis->readInt();
38 effectId = dis->readByte();
39 effectAmplifier = dis->readByte();
40 effectDurationTicks = dis->readShort();
41}
42
43void UpdateMobEffectPacket::write(DataOutputStream *dos)
44{
45 dos->writeInt(entityId);
46 dos->writeByte(effectId);
47 dos->writeByte(effectAmplifier);
48 dos->writeShort(effectDurationTicks);
49}
50
51bool UpdateMobEffectPacket::isSuperLongDuration()
52{
53 return effectDurationTicks == Short::MAX_VALUE;
54}
55
56void UpdateMobEffectPacket::handle(PacketListener *listener)
57{
58 listener->handleUpdateMobEffect(shared_from_this());
59}
60
61int UpdateMobEffectPacket::getEstimatedSize()
62{
63 return 8;
64}
65
66bool UpdateMobEffectPacket::canBeInvalidated()
67{
68 return true;
69}
70
71bool UpdateMobEffectPacket::isInvalidatedBy(shared_ptr<Packet> packet)
72{
73 shared_ptr<UpdateMobEffectPacket> target = dynamic_pointer_cast<UpdateMobEffectPacket>(packet);
74 return target->entityId == entityId && target->effectId == effectId;
75}