Luohuayu / CatServer

高性能和高兼容性的1.12.2/1.16.5/1.18.2版本Forge+Bukkit+Spigot服务端 (A high performance and high compatibility 1.12.2/1.16.5/1.18.2 version Forge+Bukkit+Spigot server)
https://catmc.org
GNU Lesser General Public License v3.0
1.98k stars 211 forks source link

WatchableObject #208

Closed IM-IgniteDEV closed 4 years ago

IM-IgniteDEV commented 4 years ago

Hi, i'm trying to figure it out what changed between clear spigot/paperspigot and catserver, i'm using methods like this down here, but on catserver it throws me NullPointerException, so the conclusion is that this Class does not exists/there's no access.

org.bukkit.command.CommandException: Unhandled exception executing command 'vb' in plugin VirtualBoardRefreshed v1.2 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[PluginCommand.class:git-CatServer-1.12.2-5fd7768] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:144) ~[SimpleCommandMap.class:git-CatServer-1.12.2-5fd7768] at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:709) ~[CraftServer.class:git-CatServer-1.12.2-5fd7768] at net.minecraft.network.NetHandlerPlayServer.func_147361_d(NetHandlerPlayServer.java:1594) [pa.class:?] at net.minecraft.network.NetHandlerPlayServer.func_147354_a(NetHandlerPlayServer.java:1439) [pa.class:?] at net.minecraft.network.play.client.CPacketChatMessage.func_148833_a(SourceFile:37) [la.class:?] at net.minecraft.network.play.client.CPacketChatMessage.func_148833_a(SourceFile:9) [la.class:?] at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) [hv$1.class:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_242] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_242] at net.minecraft.util.Util.func_181617_a(SourceFile:46) [h.class:?] at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:839) [MinecraftServer.class:?] at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:472) [nz.class:?] at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:776) [MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:630) [MinecraftServer.class:?] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242] Caused by: java.lang.RuntimeException: java.lang.NullPointerException at org.inventivetalent.mapmanager.DefaultMapWrapper.sendItemFramePacket(DefaultMapWrapper.java:380) ~[?:?] at org.inventivetalent.mapmanager.DefaultMapWrapper$1.showInFrame(DefaultMapWrapper.java:228) ~[?:?] at org.inventivetalent.mapmanager.DefaultMapWrapper$1.showInFrame(DefaultMapWrapper.java:233) ~[?:?] at com.ignitedev.virtualboardrefreshed.data.ImageBoard.sendItemFramePacket(ImageBoard.java:307) ~[?:?] at com.ignitedev.virtualboardrefreshed.data.ImageBoard.display(ImageBoard.java:197) ~[?:?] at com.ignitedev.virtualboardrefreshed.BoardManager.display(BoardManager.java:77) ~[?:?] at com.ignitedev.virtualboardrefreshed.commands.VBCommand.onCommand(VBCommand.java:65) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[PluginCommand.class:git-CatServer-1.12.2-5fd7768] ... 15 more Caused by: java.lang.NullPointerException at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:105) ~[launchwrapper-1.12.jar:?] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:114) ~[PluginClassLoader.class:git-CatServer-1.12.2-5fd7768] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:108) ~[PluginClassLoader.class:git-CatServer-1.12.2-5fd7768] at java.lang.ClassLoader.loadClass(ClassLoader.java:419) ~[?:1.8.0_242] at java.lang.ClassLoader.loadClass(ClassLoader.java:352) ~[?:1.8.0_242] at java.lang.Class.forName0(Native Method) ~[?:1.8.0_242] at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_242] at catserver.server.remapper.target.ReflectionMethods.forName(ReflectionMethods.java:37) ~[ReflectionMethods.class:git-CatServer-1.12.2-5fd7768] at catserver.server.remapper.target.ReflectionMethods.forName(ReflectionMethods.java:17) ~[ReflectionMethods.class:git-CatServer-1.12.2-5fd7768] at org.inventivetalent.reflection.resolver.ClassResolver.resolveObject(ClassResolver.java:35) ~[?:?] at org.inventivetalent.reflection.resolver.ClassResolver.resolveObject(ClassResolver.java:8) ~[?:?] at org.inventivetalent.reflection.resolver.ResolverAbstract.resolve(ResolverAbstract.java:50) ~[?:?] at org.inventivetalent.reflection.resolver.ClassResolver.resolve(ClassResolver.java:27) ~[?:?] at org.inventivetalent.reflection.resolver.minecraft.NMSClassResolver.resolve(NMSClassResolver.java:18) ~[?:?] at org.inventivetalent.mapmanager.DefaultMapWrapper.sendItemFramePacket(DefaultMapWrapper.java:285) ~[?:?] at org.inventivetalent.mapmanager.DefaultMapWrapper$1.showInFrame(DefaultMapWrapper.java:228) ~[?:?] at org.inventivetalent.mapmanager.DefaultMapWrapper$1.showInFrame(DefaultMapWrapper.java:233) ~[?:?] at com.ignitedev.virtualboardrefreshed.data.ImageBoard.sendItemFramePacket(ImageBoard.java:307) ~[?:?] at com.ignitedev.virtualboardrefreshed.data.ImageBoard.display(ImageBoard.java:197) ~[?:?] at com.ignitedev.virtualboardrefreshed.BoardManager.display(BoardManager.java:77) ~[?:?] at com.ignitedev.virtualboardrefreshed.commands.VBCommand.onCommand(VBCommand.java:65) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[PluginCommand.class:git-CatServer-1.12.2-5fd7768] ... 15 more

WatchableObjectConstructorResolver = new ConstructorResolver(MapManagerPlugin.nmsClassResolver.resolve("WatchableObject", "DataWatcher$WatchableObject", "DataWatcher$Item"/1.9/));

image

Can you tell me what change between structure of spigot and catserver that does not work, and how can i solve that?

https://github.com/InventivetalentDev/MapManager/blob/1.7.3-SNAPSHOT/src/org/inventivetalent/mapmanager/DefaultMapWrapper.java

Luohuayu commented 4 years ago

CatServer uses LaunchWrapper as Classloader. Throw NullPointerException may be LaunchWrapper bug. Class.forName find a class that name invalid?

IM-IgniteDEV commented 4 years ago

@Luohuayu fixed this one, but i have problem with catserver + protocollib integration, image

sending map data cause Exception and kick, seems like edited packet? image

IM-IgniteDEV commented 4 years ago

Even that cause error:

image

image

On clear spigot/paper, working fine.

Luohuayu commented 4 years ago

ProtocolLib version?

IM-IgniteDEV commented 4 years ago

Latest one 4.5.1

Luohuayu commented 4 years ago

Try to use 4.3.0. Latest version is not compatible with Forge well.

NewbieOrange commented 4 years ago

@IM-IgniteDEV Try to use snapshot version 461 or newer: https://ci.dmulloy2.net/job/ProtocolLib/