Skip to content

Commit 4832329

Browse files
Refactor NetworkContext to include environment direction
Added an environment direction field to NetworkContext and updated relevant methods across various networking implementations to use it. This change improves the clarity and specificity of network context handling, differentiating between client and server environments. Updated CHANGELOG to reflect these modifications.
1 parent d936f70 commit 4832329

File tree

4 files changed

+30
-19
lines changed

4 files changed

+30
-19
lines changed

CHANGELOG.md

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
1-
# Changelog 0.5 Beta
1+
# Version 0.5 Beta
2+
3+
## User Changelog
4+
It seems like there is nothing new.
25

3-
## Config API
4-
* Converting json elements into nbt tags when sending them over via packets
56

6-
## Technical changes
7-
* Restructured the whole project
7+
## Developer Changelog
8+
### Networking API
9+
* Added a new event `NetworkingEvents$PACKET_PAYLOAD_REGISTRY` for registering packets
10+
* Added `PacketDistributor` class for sending packets to players and server.
811

9-
## License Update
10-
* Reverted license to GNU LGPLv3 (previously GNU GPLv3)
12+
### Config API
13+
* Converting json elements into nbt tags when sending them over via packets
1114

12-
## Developer Info
15+
### Notes
1316
* Replaced the old config codecs with a new `ConfigCodec` class
1417
* Added a new util class `NBTUtils` which contains conversion functions for converting between nbt tags and gson json elements
15-
* Renamed the `MathUtils` methods `rotateByPivot` to `rotateAroundOrigin`
18+
* Renamed the `MathUtils` methods `rotateByPivot` to `rotateAroundOrigin`
19+
20+
### License Update
21+
* Reverted license to GNU LGPLv3 (previously GNU GPLv3)

common/src/main/java/me/pandamods/pandalib/networking/NetworkContext.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,26 @@
1212

1313
package me.pandamods.pandalib.networking;
1414

15-
import dev.architectury.platform.Platform;
1615
import dev.architectury.utils.Env;
1716
import net.minecraft.world.entity.player.Player;
1817

1918
public class NetworkContext {
2019
private final Player player;
20+
private final Env envDirection;
2121

22-
public NetworkContext(Player player) {
22+
public NetworkContext(Player player, Env envDirection) {
2323
this.player = player;
24+
this.envDirection = envDirection;
2425
}
2526

2627
public Player getPlayer() {
2728
return player;
2829
}
2930

30-
public Env getEnvironment() {
31-
return Platform.getEnvironment();
31+
/**
32+
* @return the environment direction the packet was send.
33+
*/
34+
public Env getDirection() {
35+
return envDirection;
3236
}
3337
}

fabric/src/main/java/me/pandamods/pandalib/fabric/networking/NetworkingRegistryImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ private static class ClientPlayPayloadHandler<T extends CustomPacketPayload> imp
4747

4848
@Override
4949
public void receive(T payload, ClientPlayNetworking.Context context) {
50-
NetworkContext networkContext = new NetworkContext(context.player());
50+
NetworkContext networkContext = new NetworkContext(context.player(), Env.CLIENT);
5151
receiver.receive(networkContext, payload);
5252
}
5353
}
@@ -57,7 +57,7 @@ public <T extends CustomPacketPayload> void registerServerReceiver(CustomPacketP
5757
StreamCodec<? super RegistryFriendlyByteBuf, T> codec,
5858
NetworkReceiver<T> receiver) {
5959
PayloadTypeRegistry.playC2S().register(type, codec);
60-
ServerPlayNetworking.registerGlobalReceiver(type, (t, context) -> receiver.receive(new NetworkContext(context.player()), t));
60+
ServerPlayNetworking.registerGlobalReceiver(type, (t, context) -> receiver.receive(new NetworkContext(context.player(), Env.SERVER), t));
6161
}
6262

6363
@Override

neoforge/src/main/java/me/pandamods/pandalib/neoforge/networking/NetworkingRegistryImpl.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
package me.pandamods.pandalib.neoforge.networking;
1414

1515
import dev.architectury.platform.Platform;
16+
import dev.architectury.utils.Env;
1617
import me.pandamods.pandalib.event.events.NetworkingEvents;
1718
import me.pandamods.pandalib.networking.NetworkContext;
1819
import me.pandamods.pandalib.networking.NetworkReceiver;
@@ -34,14 +35,14 @@ public NetworkingRegistryImpl() {
3435
public <T extends CustomPacketPayload> void registerClientReceiver(CustomPacketPayload.Type<T> type,
3536
StreamCodec<? super RegistryFriendlyByteBuf, T> codec,
3637
NetworkReceiver<T> receiver) {
37-
this.playToClient(type, codec, (arg, ctx) -> receiver.receive(new NetworkContext(ctx.player()), arg));
38+
this.playToClient(type, codec, (arg, ctx) -> receiver.receive(new NetworkContext(ctx.player(), Env.CLIENT), arg));
3839
}
3940

4041
@Override
4142
public <T extends CustomPacketPayload> void registerServerReceiver(CustomPacketPayload.Type<T> type,
4243
StreamCodec<? super RegistryFriendlyByteBuf, T> codec,
4344
NetworkReceiver<T> receiver) {
44-
this.playToServer(type, codec, (arg, ctx) -> receiver.receive(new NetworkContext(ctx.player()), arg));
45+
this.playToServer(type, codec, (arg, ctx) -> receiver.receive(new NetworkContext(ctx.player(), Env.SERVER), arg));
4546
}
4647

4748
@Override
@@ -50,8 +51,8 @@ public <T extends CustomPacketPayload> void registerBiDirectionalReceiver(Custom
5051
NetworkReceiver<T> clientReceiver,
5152
NetworkReceiver<T> serverReceiver) {
5253
this.playBidirectional(type, codec, new DirectionalPayloadHandler<>(
53-
(arg, ctx) -> clientReceiver.receive(new NetworkContext(ctx.player()), arg),
54-
(arg, ctx) -> serverReceiver.receive(new NetworkContext(ctx.player()), arg)
54+
(arg, ctx) -> clientReceiver.receive(new NetworkContext(ctx.player(), Env.CLIENT), arg),
55+
(arg, ctx) -> serverReceiver.receive(new NetworkContext(ctx.player(), Env.SERVER), arg)
5556
));
5657
}
5758

0 commit comments

Comments
 (0)