CraftCanvasMC / Canvas

Empowering the impossible within Minecraft
https://canvasmc.io
55 stars 7 forks source link

Canvas breaks TAB #48

Closed TheDeafCreeper closed 1 month ago

TheDeafCreeper commented 1 month ago

Spark link

N/A

Expected behavior

TAB would correctly load as it does on Paper/Purpur

Observed/Actual behavior

TAB fails to load with the following error

java.lang.ClassCastException: class [Ljava.lang.Double; cannot be cast to class [D ([Ljava.lang.Double; and [D are in module java.base of loader 'bootstrap')
    at TAB v4.1.6.jar/me.neznamy.tab.platforms.bukkit.platform.BukkitPlatform.<init>(BukkitPlatform.java:90) ~[TAB v4.1.6.jar:?]
    at TAB v4.1.6.jar/me.neznamy.tab.platforms.bukkit.BukkitTAB.onEnable(BukkitTAB.java:17) ~[TAB v4.1.6.jar:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:293) ~[?:?]
    at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:204) ~[?:1.21-DEV-7a733c7]
    at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:109) ~[?:1.21-DEV-7a733c7]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:520) ~[?:?]
    at org.bukkit.craftbukkit.CraftServer.enablePlugin(CraftServer.java:732) ~[?:1.21-DEV-7a733c7]
    at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:674) ~[?:1.21-DEV-7a733c7]
    at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:797) ~[?:1.21-DEV-7a733c7]
    at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:532) ~[?:1.21-DEV-7a733c7]
    at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:377) ~[?:1.21-DEV-7a733c7]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1322) ~[?:1.21-DEV-7a733c7]
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:332) ~[?:1.21-DEV-7a733c7]
    at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

Steps/models to reproduce

Install the TAB plugin

Canvas version

Current Canvas Version: 1.21-DEV-7a733c7 (MC: 1.21)*

Agreements

Other

It seems that specifically what breaks is fetching the TPS. Based on the code TAB is expecting and array of Doubles but instead gets just a Double.

TAB code:

Object server = Bukkit.getServer().getClass().getMethod("getServer").invoke(Bukkit.getServer());
recentTps = ((double[]) server.getClass().getField("recentTps").get(server)); // This line errors

BukkitPlatform Class

Dueris commented 1 month ago

fixed