CloudNetService / CloudNet

A modern application that can dynamically and easily deliver Minecraft oriented software
https://cloudnetservice.eu
Apache License 2.0
367 stars 115 forks source link

Fehler beim joinen #1388

Closed paaulhier closed 2 months ago

paaulhier commented 2 months ago

Stacktrace

[19.04 20:43:42.228] WARNING: [Proxy-1/SERR]: [19.04 20:43:41.383] SEVERE: Exception whilst handling packet BasePacket(channel=1, dataBuf=eu.cloudnetservice.driver.network.netty.buffer.NettyImmutableDataBuf@7fb3ffb3, prioritized=false, creationStamp=2024-04-19T20:43:41.377340045Z, uniqueId=null)
[19.04 20:43:42.229] WARNING: [Proxy-1/SERR]: java.lang.IllegalStateException: Exception posting packet from channel 1 to handler eu.cloudnetservice.wrapper.network.listener.PacketServerChannelMessageListener
[19.04 20:43:42.229] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.network.protocol.defaults.DefaultPacketListenerRegistry.handlePacket(DefaultPacketListenerRegistry.java:178)
[19.04 20:43:42.229] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.network.protocol.defaults.DefaultPacketListenerRegistry.handlePacket(DefaultPacketListenerRegistry.java:165)
[19.04 20:43:42.230] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.network.netty.NettyNetworkHandler.doHandlePacket(NettyNetworkHandler.java:123)
[19.04 20:43:42.230] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.network.netty.NettyNetworkHandler.lambda$messageReceived$0(NettyNetworkHandler.java:95)
[19.04 20:43:42.230] WARNING: [Proxy-1/SERR]:   at java.base/java.util.concurrent.ThreadPerTaskExecutor$TaskRunner.run(ThreadPerTaskExecutor.java:314)
[19.04 20:43:42.231] WARNING: [Proxy-1/SERR]:   at java.base/java.lang.VirtualThread.run(VirtualThread.java:309)
[19.04 20:43:42.231] WARNING: [Proxy-1/SERR]: Caused by: eu.cloudnetservice.driver.event.EventListenerException: Error while invoking event listener handlePlayerChannelMessage in class eu.cloudnetservice.modules.bridge.platform.listener.PlatformChannelMessageListener
[19.04 20:43:42.231] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.event.DefaultRegisteredEventListener.fireEvent(DefaultRegisteredEventListener.java:102)
[19.04 20:43:42.231] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.event.DefaultEventManager.callEvent(DefaultEventManager.java:87)
[19.04 20:43:42.232] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.event.EventManager.callEvent(EventManager.java:75)
[19.04 20:43:42.232] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.wrapper.network.listener.PacketServerChannelMessageListener.handle(PacketServerChannelMessageListener.java:50)
[19.04 20:43:42.232] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.network.protocol.defaults.DefaultPacketListenerRegistry.handlePacket(DefaultPacketListenerRegistry.java:176)
[19.04 20:43:42.233] WARNING: [Proxy-1/SERR]:   ... 5 more
[19.04 20:43:42.233] WARNING: [Proxy-1/SERR]: Caused by: java.lang.NullPointerException: connectedService is marked non-null but is null
[19.04 20:43:42.233] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.modules.bridge.player.CloudPlayer.<init>(CloudPlayer.java:67)
[19.04 20:43:42.234] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.network.rpc.defaults.object.data.DataClassSerializer.read(DataClassSerializer.java:57)
[19.04 20:43:42.234] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.network.rpc.defaults.object.DefaultObjectMapper.lambda$readObject$2(DefaultObjectMapper.java:311)
[19.04 20:43:42.234] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.network.netty.buffer.NettyImmutableDataBuf.readNullable(NettyImmutableDataBuf.java:210)
[19.04 20:43:42.235] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.network.netty.buffer.NettyImmutableDataBuf.readNullable(NettyImmutableDataBuf.java:201)
[19.04 20:43:42.235] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.network.rpc.defaults.object.DefaultObjectMapper.readObject(DefaultObjectMapper.java:295)
[19.04 20:43:42.235] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.network.netty.buffer.NettyImmutableDataBuf.readObject(NettyImmutableDataBuf.java:185)
[19.04 20:43:42.235] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.modules.bridge.platform.listener.PlatformChannelMessageListener.handlePlayerChannelMessage(PlatformChannelMessageListener.java:99)
[19.04 20:43:42.236] WARNING: [Proxy-1/SERR]:   at dev.derklaro.reflexion.internal.handles.MethodHandleAccessorFactory$MethodHandleMethodAccessor.lambda$invoke$1(MethodHandleAccessorFactory.java:396)
[19.04 20:43:42.236] WARNING: [Proxy-1/SERR]:   at dev.derklaro.reflexion.Result.tryExecute(Result.java:80)
[19.04 20:43:42.236] WARNING: [Proxy-1/SERR]:   at dev.derklaro.reflexion.internal.handles.MethodHandleAccessorFactory$MethodHandleMethodAccessor.invoke(MethodHandleAccessorFactory.java:394)
[19.04 20:43:42.237] WARNING: [Proxy-1/SERR]:   at dev.derklaro.reflexion.internal.handles.MethodHandleAccessorFactory$MethodHandleMethodAccessor.invokeWithArgs(MethodHandleAccessorFactory.java:380)
[19.04 20:43:42.237] WARNING: [Proxy-1/SERR]:   at eu.cloudnetservice.driver.event.DefaultRegisteredEventListener.fireEvent(DefaultRegisteredEventListener.java:96)
[19.04 20:43:42.237] WARNING: [Proxy-1/SERR]:   ... 9 more

Actions to reproduce

Ich verändere den Server im PlayerChooseInitialServerEvent mit order LAST

CloudNet version

[19.04 20:48:09.721] INFO: [19.04 20:48:09.721] INFO: CloudNet Blizzard 4.0.0-RC10 887ad7cf [19.04 20:48:09.722] INFO: Discord: https://discord.cloudnetservice.eu/ [19.04 20:48:09.722] INFO: [19.04 20:48:09.722] INFO: ClusterId: 338a2783--460c--26596ae6001d [19.04 20:48:09.723] INFO: NodeId: Node-1 [19.04 20:48:09.723] INFO: Head-NodeId: Node-1 [19.04 20:48:09.724] INFO: CPU usage: (P/S) .62/13.13/100% [19.04 20:48:09.724] INFO: Node services memory allocation (U/R/M): 4352/4352/31488 MB [19.04 20:48:09.725] INFO: Threads: 26 [19.04 20:48:09.725] INFO: Heap usage: 52/256MB [19.04 20:48:09.725] INFO: JVM: Private Build 21 (OpenJDK 64-Bit Server VM 21.0.1+12-Ubuntu-222.04) [19.04 20:48:09.726] INFO: Update Repo: CloudNetService/launchermeta, Update Branch: beta [19.04 20:48:09.726] INFO:

Other

No response

Issue uniqueness

0utplay commented 2 months ago

Please add your code that causes this issue.

paaulhier commented 2 months ago
    @Subscribe(order = PostOrder.LAST)
    public EventTask onPlayerJoin(PlayerChooseInitialServerEvent event) {
        Player player = event.getPlayer();
        return EventTask.async(() -> {
            if (!player.hasPermission(configuration.requiredPermission())) {
                return;
            }

            player.getVirtualHost().filter(
                    inetSocketAddress -> inetSocketAddress.getHostName().equalsIgnoreCase(configuration.forcedHost())
            ).flatMap(inetSocketAddress -> proxyServer.getServer(
                    configuration.serverName()
            )).ifPresent(event::setInitialServer);
        });
    }
0utplay commented 2 months ago

Why would u do that async? And why not just use the config options the bridge has?

paaulhier commented 2 months ago

I could remove the async stuff, yes But i don't want to make my plugins too much depending on cloudnet, so i dont want use the bridge options.

0utplay commented 2 months ago

I dont get how that makes your plugin dependent on the bridge. You just have to configure the bridge in the config file, nothing inside your plugin.

Nevertheless I will take a look at the problem using the event

0utplay commented 2 months ago

image image

I've just tested using this snippet and got it working without any problems.

paaulhier commented 2 months ago

Maybe its because the server i want to redirect the player to isn't a CloudService?

0utplay commented 2 months ago

Might be. Thats not offically supported. But I think you could solve that by just removing the @NonNull annotation from the constructor. As the setter itself allows null values, so it should be fine