-
-
Notifications
You must be signed in to change notification settings - Fork 216
Description
Affected Product(s)
SpongeNeo
Version
spongeneo-1.21.1-21.1.35-12.0.2-universal
Operating System
Windows for server, macOS for client
Java Version
java 21
Plugins/Mods
- Forgified Fabric API(FFAPI)
- Sponge
- Velocity (Proxy)
- *NeoVelocity*Describe the bug
Here is the bug:
If I installed the FFAPI and Sponge, then cannot setup the proxy setup. The client shows "Unexpected custom data from client" (In some cases shows "Timed out")
In other issues (from connector, the FFAPI and the NeoVelocity) they telled me it seems like the FFAPI send a custom packets but the Neo (ofcourse in my case is Sponge) cannot understand these packets, and fire the vanilla handleCustomQueryPacket method on ServerLoginPacketListenerImpl class. Then kicked out.
Here is the issue links:
- Couldn't connect from proxy if fabric_networking_api_v1 is installed Gabwasnt/NeoVelocity#10
- Incompatible with modern forwarding Sinytra/ForgifiedFabricAPI#185
- Networking API prevents clients from connecting when running behind Velocity Sinytra/ForgifiedFabricAPI#233
I found that the NeoVelocity already fixed this bug:
Gabwasnt/NeoVelocity#13
Of course I can't install NeoVelocity on the Sponge because the Sponge handled the networking for the proxy.
@Inject(method = "handleCustomQueryPacket", at = @At("HEAD"), cancellable = true)
private void impl$onHandleCustomQueryPacket(final ServerboundCustomQueryAnswerPacket packet, final CallbackInfo ci) {
final CustomQueryAnswerPayload payload = packet.payload();
final int transactionId = packet.transactionId();
if (!(payload instanceof SpongeChannelPayload
// some clients may answer a null payload to unknown queries
|| (payload == null && ((ConnectionBridge) this.connection).bridge$getTransactionStore().contains(transactionId)))) {
return;
}
ci.cancel();
this.server.execute(() -> {
final SpongeChannelManager channelRegistry = (SpongeChannelManager) Sponge.channelManager();
final EngineConnection connection = ((ConnectionBridge) this.connection).bridge$getEngineConnection();
channelRegistry.handleLoginResponsePayload(connection, (EngineConnectionState) this, transactionId, payload == null ? null : ((SpongeChannelPayload) payload).consumer());
});
}
Is there any possible to fix that out? I think to add the NeoVelocity's fix is enough.
Thanks!!!
Link to logs
No response