@@ -29,52 +29,52 @@ public class NeoNetworkRegistrar {
29
29
throw new UnsupportedOperationException ();
30
30
});
31
31
32
- private final NetworkPhase protocol ;
32
+ private final NetworkPhase phase ;
33
33
34
34
private final Map <Identifier , NeoPayloadHandler <?>> registeredPayloads = new HashMap <>();
35
35
36
- public NeoNetworkRegistrar (NetworkPhase protocol ) {
37
- this .protocol = protocol ;
36
+ public NeoNetworkRegistrar (NetworkPhase phase ) {
37
+ this .phase = phase ;
38
38
}
39
39
40
- public static boolean hasCodecFor (NetworkPhase protocol , NetworkSide flow , Identifier id ) {
41
- PayloadTypeRegistryImpl <? extends PacketByteBuf > registry = getPayloadRegistry (protocol , flow );
40
+ public static boolean hasCodecFor (NetworkPhase phase , NetworkSide side , Identifier id ) {
41
+ PayloadTypeRegistryImpl <? extends PacketByteBuf > registry = getPayloadRegistry (phase , side );
42
42
return registry .get (id ) != null ;
43
43
}
44
44
45
- public static PayloadTypeRegistryImpl <? extends PacketByteBuf > getPayloadRegistry (NetworkPhase protocol , NetworkSide flow ) {
46
- if (protocol == NetworkPhase .PLAY ) {
45
+ public static PayloadTypeRegistryImpl <? extends PacketByteBuf > getPayloadRegistry (NetworkPhase phase , NetworkSide flow ) {
46
+ if (phase == NetworkPhase .PLAY ) {
47
47
return flow == NetworkSide .SERVERBOUND ? PayloadTypeRegistryImpl .PLAY_C2S : PayloadTypeRegistryImpl .PLAY_S2C ;
48
- } else if (protocol == NetworkPhase .CONFIGURATION ) {
48
+ } else if (phase == NetworkPhase .CONFIGURATION ) {
49
49
return flow == NetworkSide .SERVERBOUND ? PayloadTypeRegistryImpl .CONFIGURATION_C2S : PayloadTypeRegistryImpl .CONFIGURATION_S2C ;
50
50
} else {
51
51
throw new UnsupportedOperationException ();
52
52
}
53
53
}
54
54
55
- public <PAYLOAD extends CustomPayload , CONTEXT , HANDLER > boolean registerGlobalReceiver (CustomPayload .Id <PAYLOAD > type , NetworkSide packetFlow , HANDLER handler , Function <IPayloadContext , CONTEXT > ctxFactory , TriConsumer <HANDLER , PAYLOAD , CONTEXT > consumer ) {
56
- NeoPayloadHandler <PAYLOAD > neoHandler = getOrRegisterNativeHandler (type );
57
- return neoHandler .registerGlobalHandler (packetFlow , handler , ctxFactory , consumer );
55
+ public <P extends CustomPayload , C , H > boolean registerGlobalReceiver (CustomPayload .Id <P > type , NetworkSide side , H handler , Function <IPayloadContext , C > ctxFactory , TriConsumer <H , P , C > consumer ) {
56
+ NeoPayloadHandler <P > neoHandler = getOrRegisterNativeHandler (type );
57
+ return neoHandler .registerGlobalHandler (side , handler , ctxFactory , consumer );
58
58
}
59
59
60
- public <HANDLER > HANDLER unregisterGlobalReceiver (Identifier id , NetworkSide flow ) {
60
+ public <H > H unregisterGlobalReceiver (Identifier id , NetworkSide side ) {
61
61
NeoPayloadHandler <?> neoHandler = registeredPayloads .get (id );
62
- return neoHandler != null ? neoHandler .unregisterGlobalHandler (flow ) : null ;
62
+ return neoHandler != null ? neoHandler .unregisterGlobalHandler (side ) : null ;
63
63
}
64
64
65
- public Set <Identifier > getGlobalReceivers (NetworkSide flow ) {
65
+ public Set <Identifier > getGlobalReceivers (NetworkSide side ) {
66
66
return registeredPayloads .entrySet ().stream ()
67
- .filter (e -> e .getValue ().hasGlobalHandler (flow ))
67
+ .filter (e -> e .getValue ().hasGlobalHandler (side ))
68
68
.map (Map .Entry ::getKey )
69
69
.collect (Collectors .toSet ());
70
70
}
71
71
72
- public <PAYLOAD extends CustomPayload , CONTEXT , HANDLER > boolean registerLocalReceiver (CustomPayload .Id <PAYLOAD > type , ICommonPacketListener listener , HANDLER handler , Function <IPayloadContext , CONTEXT > ctxFactory , TriConsumer <HANDLER , PAYLOAD , CONTEXT > consumer ) {
73
- NeoPayloadHandler <PAYLOAD > neoHandler = getOrRegisterNativeHandler (type );
72
+ public <P extends CustomPayload , C , H > boolean registerLocalReceiver (CustomPayload .Id <P > type , ICommonPacketListener listener , H handler , Function <IPayloadContext , C > ctxFactory , TriConsumer <H , P , C > consumer ) {
73
+ NeoPayloadHandler <P > neoHandler = getOrRegisterNativeHandler (type );
74
74
return neoHandler .registerLocalReceiver (listener , handler , ctxFactory , consumer );
75
75
}
76
76
77
- public <HANDLER > HANDLER unregisterLocalReceiver (Identifier id , ICommonPacketListener listener ) {
77
+ public <H > H unregisterLocalReceiver (Identifier id , ICommonPacketListener listener ) {
78
78
NeoPayloadHandler <?> neoHandler = registeredPayloads .get (id );
79
79
return neoHandler != null ? neoHandler .unregisterLocalHandler (listener ) : null ;
80
80
}
@@ -91,30 +91,30 @@ public Set<Identifier> getLocalSendable(ICommonPacketListener listener) {
91
91
if (payloadSetup == null ) {
92
92
return Set .of ();
93
93
}
94
- return payloadSetup .channels ().get (this .protocol ).keySet ();
94
+ return payloadSetup .channels ().get (this .phase ).keySet ();
95
95
}
96
96
97
97
@ SuppressWarnings ("unchecked" )
98
- private <PAYLOAD extends CustomPayload > NeoPayloadHandler <PAYLOAD > getOrRegisterNativeHandler (CustomPayload .Id <PAYLOAD > type ) {
99
- return (NeoPayloadHandler <PAYLOAD >) registeredPayloads .computeIfAbsent (type .id (), k -> {
100
- NeoPayloadHandler <PAYLOAD > handler = new NeoPayloadHandler <>();
98
+ private <P extends CustomPayload > NeoPayloadHandler <P > getOrRegisterNativeHandler (CustomPayload .Id <P > type ) {
99
+ return (NeoPayloadHandler <P >) registeredPayloads .computeIfAbsent (type .id (), k -> {
100
+ NeoPayloadHandler <P > handler = new NeoPayloadHandler <>();
101
101
boolean setup = NetworkRegistryAccessor .getSetup ();
102
102
103
103
NetworkRegistryAccessor .setSetup (false );
104
- NetworkRegistry .register (type , (PacketCodec <? super PacketByteBuf , PAYLOAD >) DUMMY_CODEC , handler , List .of (protocol ), Optional .empty (), "1.0" , true );
104
+ NetworkRegistry .register (type , (PacketCodec <? super PacketByteBuf , P >) DUMMY_CODEC , handler , List .of (phase ), Optional .empty (), "1.0" , true );
105
105
NetworkRegistryAccessor .setSetup (setup );
106
106
107
107
// TODO Send registration message when registering late
108
108
return handler ;
109
109
});
110
110
}
111
111
112
- public static class NeoPayloadHandler <PAYLOAD extends CustomPayload > implements IPayloadHandler <PAYLOAD > {
113
- private final Map <NetworkSide , NeoSubHandler <PAYLOAD , ?, ?>> globalReceivers = new HashMap <>();
114
- private final Map <ICommonPacketListener , NeoSubHandler <PAYLOAD , ?, ?>> localReceivers = new HashMap <>();
112
+ public static class NeoPayloadHandler <P extends CustomPayload > implements IPayloadHandler <P > {
113
+ private final Map <NetworkSide , NeoSubHandler <P , ?, ?>> globalReceivers = new HashMap <>();
114
+ private final Map <ICommonPacketListener , NeoSubHandler <P , ?, ?>> localReceivers = new HashMap <>();
115
115
116
116
@ Override
117
- public void handle (PAYLOAD arg , IPayloadContext context ) {
117
+ public void handle (P arg , IPayloadContext context ) {
118
118
NeoSubHandler globalHandler = globalReceivers .get (context .flow ());
119
119
if (globalHandler != null ) {
120
120
context .enqueueWork (() -> globalHandler .consumer ().accept (globalHandler .handler (), arg , globalHandler .ctxFactory ().apply (context )));
@@ -125,13 +125,13 @@ public void handle(PAYLOAD arg, IPayloadContext context) {
125
125
}
126
126
}
127
127
128
- public boolean hasGlobalHandler (NetworkSide flow ) {
129
- return globalReceivers .containsKey (flow );
128
+ public boolean hasGlobalHandler (NetworkSide side ) {
129
+ return globalReceivers .containsKey (side );
130
130
}
131
131
132
- public <CONTEXT , HANDLER > boolean registerGlobalHandler (NetworkSide flow , HANDLER original , Function <IPayloadContext , CONTEXT > ctxFactory , TriConsumer <HANDLER , PAYLOAD , CONTEXT > consumer ) {
133
- if (!hasGlobalHandler (flow )) {
134
- globalReceivers .put (flow , new NeoSubHandler <>(original , ctxFactory , consumer ));
132
+ public <C , H > boolean registerGlobalHandler (NetworkSide side , H original , Function <IPayloadContext , C > ctxFactory , TriConsumer <H , P , C > consumer ) {
133
+ if (!hasGlobalHandler (side )) {
134
+ globalReceivers .put (side , new NeoSubHandler <>(original , ctxFactory , consumer ));
135
135
return true ;
136
136
}
137
137
return false ;
@@ -141,7 +141,7 @@ public boolean hasLocalHandler(ICommonPacketListener listener) {
141
141
return localReceivers .containsKey (listener );
142
142
}
143
143
144
- public <CONTEXT , HANDLER > boolean registerLocalReceiver (ICommonPacketListener listener , HANDLER original , Function <IPayloadContext , CONTEXT > ctxFactory , TriConsumer <HANDLER , PAYLOAD , CONTEXT > consumer ) {
144
+ public <C , H > boolean registerLocalReceiver (ICommonPacketListener listener , H original , Function <IPayloadContext , C > ctxFactory , TriConsumer <H , P , C > consumer ) {
145
145
if (!hasLocalHandler (listener )) {
146
146
localReceivers .put (listener , new NeoSubHandler <>(original , ctxFactory , consumer ));
147
147
return true ;
@@ -150,17 +150,17 @@ public <CONTEXT, HANDLER> boolean registerLocalReceiver(ICommonPacketListener li
150
150
}
151
151
152
152
@ Nullable
153
- public <HANDLER > HANDLER unregisterGlobalHandler (NetworkSide flow ) {
154
- NeoSubHandler subHandler = globalReceivers .remove (flow );
155
- return subHandler != null ? (HANDLER ) subHandler .handler () : null ;
153
+ public <H > H unregisterGlobalHandler (NetworkSide side ) {
154
+ NeoSubHandler subHandler = globalReceivers .remove (side );
155
+ return subHandler != null ? (H ) subHandler .handler () : null ;
156
156
}
157
157
158
158
@ Nullable
159
- public <HANDLER > HANDLER unregisterLocalHandler (ICommonPacketListener listener ) {
159
+ public <H > H unregisterLocalHandler (ICommonPacketListener listener ) {
160
160
NeoSubHandler subHandler = localReceivers .remove (listener );
161
- return subHandler != null ? (HANDLER ) subHandler .handler () : null ;
161
+ return subHandler != null ? (H ) subHandler .handler () : null ;
162
162
}
163
163
}
164
164
165
- record NeoSubHandler <PAYLOAD extends CustomPayload , CONTEXT , HANDLER >( HANDLER handler , Function <IPayloadContext , CONTEXT > ctxFactory , TriConsumer <HANDLER , PAYLOAD , CONTEXT > consumer ) { }
165
+ record NeoSubHandler <P extends CustomPayload , C , H >( H handler , Function <IPayloadContext , C > ctxFactory , TriConsumer <H , P , C > consumer ) { }
166
166
}
0 commit comments