Skip to content

Commit 4dc159a

Browse files
committed
Fix reload duplicate event
The asyncManager was not clear
1 parent cb66314 commit 4dc159a

5 files changed

Lines changed: 28 additions & 20 deletions

File tree

build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,10 @@ task export() {
9797
from jar // here it automatically reads jar file produced from jar task
9898
into "C:/Users/aeim/Documents/minecraft/btooom/server/plugins"
9999
}
100+
copy {
101+
from jar // here it automatically reads jar file produced from jar task
102+
into "C:/Users/aeim/Documents/minecraft/law/server/survie/plugins"
103+
}
100104
}
101105
}
102106

src/main/java/fr/anarchick/skriptpacket/elements/Types.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package fr.anarchick.skriptpacket.elements;
22

3+
import fr.anarchick.skriptpacket.SkriptPacket;
34
import org.eclipse.jdt.annotation.Nullable;
45

56
import com.comphenix.protocol.PacketType;
@@ -73,8 +74,13 @@ public String toVariableNameString(PacketContainer packet) {
7374

7475
@Override
7576
public String toString(PacketContainer packet, int flags) {
76-
packet.getAttributeCollectionModifier().getValues();
77-
return packet.toString();
77+
String str;
78+
try {
79+
str = packet.toString();
80+
} catch (Exception e) {
81+
str = "PacketContainer[type=" + packet.getType() + ", structureModifier=INVALID_DATA]";
82+
}
83+
return str;
7884
}
7985

8086
})

src/main/java/fr/anarchick/skriptpacket/packets/PacketManager.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,20 +87,17 @@ public static String getPacketName(PacketType packettype) {
8787
}
8888

8989
public static void onPacketEvent(PacketType packetType, ListenerPriority priority, Mode mode) {
90+
final SPPacketAdapter SPPacketAdapter = new SPPacketAdapter(priority, packetType, mode);
9091
switch (mode) {
91-
case ASYNC -> PROTOCOL_MANAGER.getAsynchronousManager().registerAsyncHandler(new SPPacketAdapter(priority, packetType, mode)).start();
92-
case SYNC -> PROTOCOL_MANAGER.addPacketListener(new SPPacketAdapter(priority, packetType, mode));
93-
default -> PROTOCOL_MANAGER.getAsynchronousManager().registerAsyncHandler(new SPPacketAdapter(priority, packetType, mode)).syncStart();
92+
case ASYNC -> PROTOCOL_MANAGER.getAsynchronousManager().registerAsyncHandler(SPPacketAdapter).start();
93+
case SYNC -> PROTOCOL_MANAGER.addPacketListener(SPPacketAdapter);
94+
default -> PROTOCOL_MANAGER.getAsynchronousManager().registerAsyncHandler(SPPacketAdapter).syncStart();
9495
}
9596
}
9697

9798
public static void removeListeners() {
98-
for (PacketListener listener : PROTOCOL_MANAGER.getPacketListeners()) {
99-
if (listener.getPlugin().equals(PLUGIN)) {
100-
PROTOCOL_MANAGER.removePacketListeners(PLUGIN);
101-
return;
102-
}
103-
}
99+
PROTOCOL_MANAGER.removePacketListeners(PLUGIN);
100+
PROTOCOL_MANAGER.getAsynchronousManager().unregisterAsyncHandlers(PLUGIN);
104101
}
105102

106103
public static void sendPacket(PacketContainer packet, Player[] players) {

src/main/java/fr/anarchick/skriptpacket/packets/SPPacketAdapter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,5 @@ public void onPacketReceiving(PacketEvent event) {
4040
SkriptPacket.pluginManager.callEvent(new BukkitPacketEvent(event, priority, mode, isAsync));
4141
}
4242
}
43+
4344
}

src/main/java/fr/anarchick/skriptpacket/packets/SkriptPacketEventListener.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,29 +23,29 @@ private boolean equals(final Manager manager) {
2323
}
2424
}
2525

26-
private static final List<Manager> listeners = new ArrayList<>();
27-
private static final List<Manager> simpleListeners = new ArrayList<>();
26+
private static final List<Manager> LISTENERS = new ArrayList<>();
27+
private static final List<Manager> SIMPLE_LISTENERS = new ArrayList<>();
2828

2929
public static void addPacketTypes(PacketType[] packetTypes, ListenerPriority priority, Mode mode, String scriptName) {
3030
for (PacketType packetType : packetTypes) {
3131
Manager manager = new Manager(scriptName, mode, packetType, priority);
32-
add(listeners, manager);
32+
add(LISTENERS, manager);
3333
}
3434
update();
3535
}
3636

3737
public static void update() {
38-
simpleListeners.clear();
38+
SIMPLE_LISTENERS.clear();
3939
// Create simpleListeners
40-
for (Manager listener : listeners) {
40+
for (Manager listener : LISTENERS) {
4141
Mode mode = listener.mode();
4242
PacketType packetType = listener.packetType();
4343
ListenerPriority priority = listener.priority();
4444
Manager manager = new Manager("", mode, packetType, priority);
45-
add(simpleListeners, manager);
45+
add(SIMPLE_LISTENERS, manager);
4646
}
4747

48-
for (Manager listener : simpleListeners) {
48+
for (Manager listener : SIMPLE_LISTENERS) {
4949
Mode mode = listener.mode();
5050
PacketType packetType = listener.packetType();
5151
ListenerPriority priority = listener.priority();
@@ -71,12 +71,12 @@ public static void onReload(PreScriptLoadEvent e) {
7171
List<Manager> removes = new ArrayList<>();
7272
for (Config config : e.getScripts()) {
7373
String scriptName = config.getFileName();
74-
for (Manager listener : listeners) {
74+
for (Manager listener : LISTENERS) {
7575
if (listener.scriptName().equals(scriptName))
7676
removes.add(listener);
7777
}
7878
}
79-
listeners.removeAll(removes);
79+
LISTENERS.removeAll(removes);
8080
update();
8181
}
8282

0 commit comments

Comments
 (0)