1
1
package net .blay09 .mods .balm .forge .network ;
2
2
3
3
import net .blay09 .mods .balm .api .Balm ;
4
- import net .blay09 .mods .balm .api .client .BalmClient ;
5
4
import net .blay09 .mods .balm .api .menu .BalmMenuProvider ;
6
5
import net .blay09 .mods .balm .api .network .BalmNetworking ;
7
6
import net .blay09 .mods .balm .api .network .ClientboundMessageRegistration ;
16
15
import net .minecraft .world .MenuProvider ;
17
16
import net .minecraft .world .entity .Entity ;
18
17
import net .minecraft .world .entity .player .Player ;
18
+ import net .minecraftforge .event .network .CustomPayloadEvent ;
19
19
import net .minecraftforge .network .NetworkDirection ;
20
- import net .minecraftforge .network .NetworkEvent ;
21
- import net .minecraftforge .network .NetworkHooks ;
22
20
import net .minecraftforge .network .PacketDistributor ;
23
- import net .minecraftforge .network .simple . SimpleChannel ;
21
+ import net .minecraftforge .network .SimpleChannel ;
24
22
import org .slf4j .Logger ;
25
23
import org .slf4j .LoggerFactory ;
26
24
@@ -37,7 +35,7 @@ public class ForgeBalmNetworking implements BalmNetworking {
37
35
private static final Map <ResourceLocation , MessageRegistration <?>> messagesByIdentifier = new ConcurrentHashMap <>();
38
36
private static final Map <String , Integer > discriminatorCounter = new ConcurrentHashMap <>();
39
37
40
- private static NetworkEvent .Context replyContext ;
38
+ private static CustomPayloadEvent .Context replyContext ;
41
39
42
40
@ Override
43
41
public void allowClientOnly (String modId ) {
@@ -51,11 +49,11 @@ public void allowServerOnly(String modId) {
51
49
52
50
@ Override
53
51
public void openGui (Player player , MenuProvider menuProvider ) {
54
- if (player instanceof ServerPlayer ) {
52
+ if (player instanceof ServerPlayer serverPlayer ) {
55
53
if (menuProvider instanceof BalmMenuProvider balmMenuProvider ) {
56
- NetworkHooks . openScreen (( ServerPlayer ) player , menuProvider , buf -> balmMenuProvider .writeScreenOpeningData ((ServerPlayer ) player , buf ));
54
+ serverPlayer . openMenu ( menuProvider , buf -> balmMenuProvider .writeScreenOpeningData ((ServerPlayer ) player , buf ));
57
55
} else {
58
- NetworkHooks . openScreen (( ServerPlayer ) player , menuProvider );
56
+ serverPlayer . openMenu ( menuProvider );
59
57
}
60
58
}
61
59
}
@@ -80,7 +78,7 @@ public <T> void sendTo(Player player, T message) {
80
78
ResourceLocation identifier = messageRegistration .getIdentifier ();
81
79
82
80
SimpleChannel channel = NetworkChannels .get (identifier .getNamespace ());
83
- channel .send (PacketDistributor .PLAYER .with (() -> (( ServerPlayer ) player )), message );
81
+ channel .send (message , PacketDistributor .PLAYER .with ((ServerPlayer ) player ));
84
82
}
85
83
86
84
@ Override
@@ -90,7 +88,7 @@ public <T> void sendToTracking(ServerLevel world, BlockPos pos, T message) {
90
88
ResourceLocation identifier = messageRegistration .getIdentifier ();
91
89
92
90
SimpleChannel channel = NetworkChannels .get (identifier .getNamespace ());
93
- channel .send (PacketDistributor .TRACKING_CHUNK .with (() -> world .getChunkAt (pos )), message );
91
+ channel .send (message , PacketDistributor .TRACKING_CHUNK .with (world .getChunkAt (pos )));
94
92
}
95
93
96
94
@ Override
@@ -100,7 +98,7 @@ public <T> void sendToTracking(Entity entity, T message) {
100
98
ResourceLocation identifier = messageRegistration .getIdentifier ();
101
99
102
100
SimpleChannel channel = NetworkChannels .get (identifier .getNamespace ());
103
- channel .send (PacketDistributor .TRACKING_ENTITY .with (() -> entity ), message );
101
+ channel .send (message , PacketDistributor .TRACKING_ENTITY .with (entity ));
104
102
}
105
103
106
104
@ Override
@@ -110,7 +108,7 @@ public <T> void sendToAll(MinecraftServer server, T message) {
110
108
ResourceLocation identifier = messageRegistration .getIdentifier ();
111
109
112
110
SimpleChannel channel = NetworkChannels .get (identifier .getNamespace ());
113
- channel .send (PacketDistributor .ALL .noArg (), message );
111
+ channel .send (message , PacketDistributor .ALL .noArg ());
114
112
}
115
113
116
114
@ Override
@@ -125,7 +123,7 @@ public <T> void sendToServer(T message) {
125
123
ResourceLocation identifier = messageRegistration .getIdentifier ();
126
124
127
125
SimpleChannel channel = NetworkChannels .get (identifier .getNamespace ());
128
- channel .sendToServer (message );
126
+ channel .send (message , PacketDistributor . SERVER . noArg () );
129
127
}
130
128
131
129
@ SuppressWarnings ("unchecked" )
@@ -145,18 +143,11 @@ public <T> void registerClientboundPacket(ResourceLocation identifier, Class<T>
145
143
messagesByIdentifier .put (identifier , messageRegistration );
146
144
147
145
SimpleChannel channel = NetworkChannels .get (identifier .getNamespace ());
148
- channel .registerMessage (nextDiscriminator (identifier .getNamespace ()), clazz , encodeFunc , decodeFunc , (message , contextSupplier ) -> {
149
- NetworkEvent .Context context = contextSupplier .get ();
150
- if (context .getDirection () != NetworkDirection .PLAY_TO_CLIENT ) {
151
- logger .warn ("Received {} on incorrect side {}" , identifier , context .getDirection ());
152
- return ;
153
- }
154
-
155
- context .enqueueWork (() -> {
156
- handler .accept (BalmClient .getClientPlayer (), message );
157
- });
158
- context .setPacketHandled (true );
159
- });
146
+ channel .messageBuilder (clazz , nextDiscriminator (identifier .getNamespace ()), NetworkDirection .PLAY_TO_CLIENT )
147
+ .decoder (decodeFunc )
148
+ .encoder (encodeFunc )
149
+ .consumerMainThread ((packet , context ) -> handler .accept (Balm .getProxy ().getClientPlayer (), packet ))
150
+ .add ();
160
151
}
161
152
162
153
@ Override
@@ -167,21 +158,15 @@ public <T> void registerServerboundPacket(ResourceLocation identifier, Class<T>
167
158
messagesByIdentifier .put (identifier , messageRegistration );
168
159
169
160
SimpleChannel channel = NetworkChannels .get (identifier .getNamespace ());
170
- channel .registerMessage (nextDiscriminator (identifier .getNamespace ()), clazz , encodeFunc , decodeFunc , (message , contextSupplier ) -> {
171
- NetworkEvent .Context context = contextSupplier .get ();
172
- if (context .getDirection () != NetworkDirection .PLAY_TO_SERVER ) {
173
- logger .warn ("Received {} on incorrect side {}" , identifier , context .getDirection ());
174
- return ;
175
- }
176
-
177
- context .enqueueWork (() -> {
178
- replyContext = context ;
179
- ServerPlayer player = context .getSender ();
180
- handler .accept (player , message );
181
- replyContext = null ;
182
- });
183
- context .setPacketHandled (true );
184
- });
161
+ channel .messageBuilder (clazz , nextDiscriminator (identifier .getNamespace ()), NetworkDirection .PLAY_TO_SERVER )
162
+ .decoder (decodeFunc )
163
+ .encoder (encodeFunc )
164
+ .consumerMainThread ((packet , context ) -> {
165
+ replyContext = context ;
166
+ handler .accept (context .getSender (), packet );
167
+ replyContext = null ;
168
+ })
169
+ .add ();
185
170
}
186
171
187
172
private static int nextDiscriminator (String modId ) {
0 commit comments