Skip to content

Commit 0fefb9c

Browse files
author
iso2013
committed
Fix destroy packets that have been modified after the factory returns them.
1 parent 71687b5 commit 0fefb9c

File tree

5 files changed

+11
-8
lines changed

5 files changed

+11
-8
lines changed

API/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>PacketEntityAPI</artifactId>
77
<groupId>net.blitzcube.peapi</groupId>
8-
<version>0.4.1-SNAPSHOT</version>
8+
<version>0.4.2-SNAPSHOT</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

Plugin/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>PacketEntityAPI</artifactId>
88
<groupId>net.blitzcube.peapi</groupId>
9-
<version>0.4.1-SNAPSHOT</version>
9+
<version>0.4.2-SNAPSHOT</version>
1010
</parent>
1111

1212
<artifactId>Plugin</artifactId>
@@ -59,7 +59,7 @@
5959
<dependency>
6060
<groupId>net.blitzcube.peapi</groupId>
6161
<artifactId>API</artifactId>
62-
<version>0.4.1-SNAPSHOT</version>
62+
<version>0.4.2-SNAPSHOT</version>
6363
</dependency>
6464
</dependencies>
6565
</project>

Plugin/src/main/java/net/blitzcube/peapi/PacketEntityAPI.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import net.blitzcube.peapi.api.entity.modifier.IEntityModifierRegistry;
1616
import net.blitzcube.peapi.api.entity.modifier.IModifiableEntity;
1717
import net.blitzcube.peapi.api.listener.IListener;
18+
import net.blitzcube.peapi.api.packet.IEntityGroupPacket;
1819
import net.blitzcube.peapi.api.packet.IEntityPacket;
1920
import net.blitzcube.peapi.api.packet.IEntityPacketFactory;
2021
import net.blitzcube.peapi.entity.EntityIdentifier;
@@ -209,6 +210,7 @@ public void dispatchPacket(IEntityPacket packet, Player target) {
209210

210211
@Override
211212
public void dispatchPacket(IEntityPacket packet, Player target, int delay) {
213+
if (packet instanceof IEntityGroupPacket) ((IEntityGroupPacket) packet).apply();
212214
PacketContainer c = packet.getRawPacket();
213215
if (c == null) return;
214216
if (delay > 0) {

Plugin/src/main/java/net/blitzcube/peapi/event/engine/listeners/GenericListener.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import net.blitzcube.peapi.PacketEntityAPI;
88
import net.blitzcube.peapi.api.event.IEntityPacketEvent;
99
import net.blitzcube.peapi.api.packet.IEntityClickPacket;
10+
import net.blitzcube.peapi.api.packet.IEntityDestroyPacket;
1011
import net.blitzcube.peapi.api.packet.IEntityGroupPacket;
1112
import net.blitzcube.peapi.api.packet.IEntityPacket;
1213
import net.blitzcube.peapi.entity.fake.FakeEntity;
@@ -68,14 +69,14 @@ public void onPacketSending(PacketEvent packetEvent) {
6869
if (w == null) return;
6970
IEntityPacketEvent e = new EntityPacketEvent(manager, w, eT, target);
7071
dispatcher.dispatch(e, null);
71-
if (e.getPacket() instanceof IEntityGroupPacket) {
72-
if ((e.getPacketType() == IEntityPacketEvent.EntityPacketType.DESTROY
73-
&& ((IEntityGroupPacket) e.getPacket()).getGroup().size() == 0) || e.isCancelled()) {
72+
if (w instanceof IEntityGroupPacket) {
73+
if (w instanceof IEntityDestroyPacket && ((IEntityDestroyPacket) w).getGroup().size() == 0) {
7474
packetEvent.setCancelled(true);
7575
return;
7676
}
7777
((IEntityGroupPacket) e.getPacket()).apply();
78-
} else if (e.isCancelled()) {
78+
}
79+
if (e.isCancelled()) {
7980
packetEvent.setCancelled(true);
8081
}
8182
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<groupId>net.blitzcube.peapi</groupId>
88
<artifactId>PacketEntityAPI</artifactId>
99
<packaging>pom</packaging>
10-
<version>0.4.1-SNAPSHOT</version>
10+
<version>0.4.2-SNAPSHOT</version>
1111
<modules>
1212
<module>API</module>
1313
<module>Plugin</module>

0 commit comments

Comments
 (0)