Skip to content

Commit b6e50c2

Browse files
committed
improvement: Add methods for downstream mod implementations
1 parent cf37760 commit b6e50c2

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

src/main/java/net/hypixel/modapi/HypixelModAPI.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.hypixel.modapi.error.ModAPIException;
55
import net.hypixel.modapi.handler.ClientboundPacketHandler;
66
import net.hypixel.modapi.packet.ClientboundHypixelPacket;
7+
import net.hypixel.modapi.packet.HypixelPacket;
78
import net.hypixel.modapi.packet.PacketRegistry;
89
import net.hypixel.modapi.packet.impl.clientbound.*;
910
import net.hypixel.modapi.packet.impl.serverbound.ServerboundLocationPacket;
@@ -14,6 +15,7 @@
1415

1516
import java.util.List;
1617
import java.util.concurrent.CopyOnWriteArrayList;
18+
import java.util.function.Consumer;
1719

1820
public class HypixelModAPI {
1921
private static final HypixelModAPI INSTANCE = new HypixelModAPI();
@@ -24,6 +26,7 @@ public static HypixelModAPI getInstance() {
2426

2527
private final PacketRegistry registry = new PacketRegistry();
2628
private final List<ClientboundPacketHandler> handlers = new CopyOnWriteArrayList<>();
29+
private Consumer<HypixelPacket> packetSender = null;
2730

2831
private HypixelModAPI() {
2932
registry.define("hypixel:ping")
@@ -73,9 +76,26 @@ public void handle(String identifier, PacketSerializer serializer) {
7376
return;
7477
}
7578

79+
handle(packet);
80+
}
81+
82+
public void handle(ClientboundHypixelPacket packet) {
7683
for (ClientboundPacketHandler handler : handlers) {
7784
packet.handle(handler);
7885
}
7986
}
8087

88+
public void setPacketSender(Consumer<HypixelPacket> packetSender) {
89+
if (this.packetSender != null) {
90+
throw new IllegalArgumentException("Packet sender already set");
91+
}
92+
this.packetSender = packetSender;
93+
}
94+
95+
public void sendPacket(HypixelPacket packet) {
96+
if (packetSender == null) {
97+
throw new IllegalStateException("Packet sender not set");
98+
}
99+
packetSender.accept(packet);
100+
}
81101
}

0 commit comments

Comments
 (0)