Skip to content

Commit d6a5a99

Browse files
Implement an event callback (#5)
1 parent ff8ae23 commit d6a5a99

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

src/main/java/net/hypixel/modapi/fabric/FabricModAPI.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
66
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
77
import net.hypixel.modapi.HypixelModAPI;
8+
import net.hypixel.modapi.fabric.event.HypixelModAPICallback;
89
import net.hypixel.modapi.fabric.payload.ClientboundHypixelPayload;
910
import net.hypixel.modapi.fabric.payload.ServerboundHypixelPayload;
1011
import net.minecraft.network.PacketByteBuf;
@@ -50,7 +51,17 @@ public void registerClientbound(String identifier) {
5051
return;
5152
}
5253

53-
HypixelModAPI.getInstance().handle(payload.getPacket());
54+
try {
55+
HypixelModAPI.getInstance().handle(payload.getPacket());
56+
} catch (Exception e) {
57+
LOGGER.error("An error occurred while handling packet {}", identifier, e);
58+
}
59+
60+
try {
61+
HypixelModAPICallback.EVENT.invoker().onPacketReceived(payload.getPacket());
62+
} catch (Exception e) {
63+
LOGGER.error("An error occurred while handling packet {}", identifier, e);
64+
}
5465
});
5566
}
5667

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package net.hypixel.modapi.fabric.event;
2+
3+
import net.fabricmc.fabric.api.event.Event;
4+
import net.fabricmc.fabric.api.event.EventFactory;
5+
import net.hypixel.modapi.packet.ClientboundHypixelPacket;
6+
7+
/**
8+
* Callback for when a Hypixel Mod API packet is received.
9+
*/
10+
public interface HypixelModAPICallback {
11+
12+
Event<HypixelModAPICallback> EVENT = EventFactory.createArrayBacked(HypixelModAPICallback.class, callbacks -> packet -> {
13+
for (HypixelModAPICallback callback : callbacks) {
14+
callback.onPacketReceived(packet);
15+
}
16+
});
17+
18+
void onPacketReceived(ClientboundHypixelPacket packet);
19+
20+
}

0 commit comments

Comments
 (0)