Skip to content

Commit 40788a0

Browse files
committed
rewrite messaging to use one channel per packet
1 parent 991a4ff commit 40788a0

39 files changed

+308
-556
lines changed

core/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ plugins {
44

55
dependencies {
66
api(projects.phantazmCommons)
7+
api(projects.phantazmMessaging)
78
api(libs.ethylene.core)
89
api(libs.ethylene.mapper)
910
api(libs.commons.lang3)

server/src/main/java/org/phantazm/server/packet/BinaryDataReader.java renamed to core/src/main/java/org/phantazm/core/packet/BinaryDataReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.phantazm.server.packet;
1+
package org.phantazm.core.packet;
22

33
import net.minestom.server.utils.binary.BinaryReader;
44
import net.minestom.server.utils.binary.BinaryWriter;

server/src/main/java/org/phantazm/server/packet/BinaryDataWriter.java renamed to core/src/main/java/org/phantazm/core/packet/BinaryDataWriter.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
package org.phantazm.server.packet;
1+
package org.phantazm.core.packet;
22

3+
import net.minestom.server.network.NetworkBuffer;
34
import net.minestom.server.utils.binary.BinaryWriter;
45
import org.jetbrains.annotations.NotNull;
56
import org.phantazm.messaging.serialization.DataReader;
@@ -23,6 +24,10 @@ public BinaryDataWriter(@NotNull BinaryWriter binaryWriter) {
2324
this.binaryWriter = Objects.requireNonNull(binaryWriter, "binaryWriter");
2425
}
2526

27+
public static @NotNull BinaryDataWriter fromNetworkBuffer(@NotNull NetworkBuffer networkBuffer) {
28+
return new BinaryDataWriter(new BinaryWriter(Objects.requireNonNull(networkBuffer, "networkBuffer")));
29+
}
30+
2631
@Override
2732
public void writeByte(byte data) {
2833
binaryWriter.writeByte(data);
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.phantazm.core.packet;
2+
3+
import net.minestom.server.network.NetworkBuffer;
4+
import org.jetbrains.annotations.NotNull;
5+
import org.phantazm.messaging.packet.Packet;
6+
7+
public class MinestomPacketUtils {
8+
9+
public static byte @NotNull[] serialize(@NotNull Packet packet) {
10+
return NetworkBuffer.makeArray(buffer -> {
11+
packet.write(BinaryDataWriter.fromNetworkBuffer(buffer));
12+
});
13+
}
14+
15+
}

messaging/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
plugins {
22
id("phantazm.java-library-conventions")
33
}
4+
5+
dependencies {
6+
implementation(projects.phantazmCommons)
7+
api(libs.adventure.key)
8+
}

messaging/src/main/java/org/phantazm/messaging/MessageChannels.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

messaging/src/main/java/org/phantazm/messaging/packet/Packet.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.phantazm.messaging.packet;
22

3+
import net.kyori.adventure.key.Key;
34
import org.jetbrains.annotations.NotNull;
45
import org.phantazm.messaging.serialization.DataWriter;
56

@@ -8,14 +9,7 @@
89
*/
910
public interface Packet {
1011

11-
/**
12-
* Gets the ID of the packet. This should be unique for a single messaging channel.
13-
* For example, all the packets in the proxy plugin messaging channel should be unique.
14-
* However, they can share IDs with packets on other channels.
15-
*
16-
* @return The ID of the packet
17-
*/
18-
byte getId();
12+
@NotNull Key getId();
1913

2014
/**
2115
* Writes the packet to a {@link DataWriter}.

messaging/src/main/java/org/phantazm/messaging/packet/PacketHandler.java

Lines changed: 0 additions & 57 deletions
This file was deleted.

messaging/src/main/java/org/phantazm/messaging/packet/c2p/MapDataVersionQueryPacket.java renamed to messaging/src/main/java/org/phantazm/messaging/packet/player/MapDataVersionQueryPacket.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
package org.phantazm.messaging.packet.c2p;
1+
package org.phantazm.messaging.packet.player;
22

3+
import net.kyori.adventure.key.Key;
34
import org.jetbrains.annotations.NotNull;
5+
import org.phantazm.commons.Namespaces;
46
import org.phantazm.messaging.packet.Packet;
57
import org.phantazm.messaging.serialization.DataReader;
68
import org.phantazm.messaging.serialization.DataWriter;
@@ -12,18 +14,15 @@
1214
*/
1315
public record MapDataVersionQueryPacket() implements Packet {
1416

15-
/**
16-
* The ID of the {@link MapDataVersionQueryPacket}.
17-
*/
18-
public static final byte ID = 0;
17+
public static final Key ID = Key.key(Namespaces.PHANTAZM, "client/mapdata_version_query");
1918

2019
public static @NotNull MapDataVersionQueryPacket read(@NotNull DataReader reader) {
2120
Objects.requireNonNull(reader, "reader");
2221
return new MapDataVersionQueryPacket();
2322
}
2423

2524
@Override
26-
public byte getId() {
25+
public @NotNull Key getId() {
2726
return ID;
2827
}
2928

messaging/src/main/java/org/phantazm/messaging/packet/c2p/MapDataVersionResponsePacket.java renamed to messaging/src/main/java/org/phantazm/messaging/packet/proxy/MapDataVersionResponsePacket.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
package org.phantazm.messaging.packet.c2p;
1+
package org.phantazm.messaging.packet.proxy;
22

3+
import net.kyori.adventure.key.Key;
34
import org.jetbrains.annotations.NotNull;
5+
import org.phantazm.commons.Namespaces;
46
import org.phantazm.messaging.packet.Packet;
57
import org.phantazm.messaging.serialization.DataReader;
68
import org.phantazm.messaging.serialization.DataWriter;
@@ -14,18 +16,15 @@
1416
*/
1517
public record MapDataVersionResponsePacket(int version) implements Packet {
1618

17-
/**
18-
* The ID of the {@link MapDataVersionResponsePacket}.
19-
*/
20-
public static final byte ID = 1;
19+
public static final Key ID = Key.key(Namespaces.PHANTAZM, "proxy/mapdata_version_response");
2120

2221
public static @NotNull MapDataVersionResponsePacket read(@NotNull DataReader reader) {
2322
Objects.requireNonNull(reader, "reader");
2423
return new MapDataVersionResponsePacket(reader.readInt());
2524
}
2625

2726
@Override
28-
public byte getId() {
27+
public @NotNull Key getId() {
2928
return ID;
3029
}
3130

0 commit comments

Comments
 (0)