eyesniper2 / skRayFall

An addon for skript that adds Citizens support, EffectLib support and other features.
https://sk.rayfall.net/
GNU General Public License v3.0
21 stars 17 forks source link

Bossbar type conflicts #95

Closed TheLimeGlass closed 2 years ago

TheLimeGlass commented 2 years ago

Describe the bug

SkRayFall will disable itself because it's registering a type that already exists in Skellett and SkBee.

Since SkRayFall uses a custom object for it's class info at https://github.com/eyesniper2/skRayFall/blob/0b6416c991d5a3718597c33773a9e6fa47a8a19c/src/main/java/net/rayfall/eyesniper2/skrayfall/TypeManager.java#L33-L125 it would be best to name them something else to BossBar = bossbar, BarColor = bossbarcolor, BarStyle = bossbarstyle and BarFlag = bossbarflag. SkBee and Skellett copy these exact classinfo names for Spigot types so if either addon is installed, whichever loads first will be used, and they both implement the same classinfo. SkRayFall on the other hand doesn't, and has it's own custom object registered under these names, so it errors and disables itself. My suggestion for a fix would be a custom classinfo name like rayfallbarcolor if it's going to be a custom type.

Steps to Reproduce

Install SkBee or Skellett with SkRayFall

Expected Behavior

Handling the fact that there are multiple class infos. You can also add Classes.getExactClassInfo(BarStyle.class) == null condition like Skellett and SkBee

Screenshots / Errors

[Server thread/ERROR]: Error occurred while enabling skRayFall v1.9.27 (Is it up to date?)
java.lang.IllegalArgumentException: Can't register net.rayfall.eyesniper2.skrayfall.bossbar.RayFallBarColor with the code name bossbarcolor because that name is already used by bossbarcolors, bossbarcolours, bossbar colours, bar colours, bossbar colors, bar colors, barcolour
    at ch.njol.skript.registrations.Classes.registerClass(Classes.java:90) ~[Skript.jar:?]
    at net.rayfall.eyesniper2.skrayfall.TypeManager.registerV1_9Elements(TypeManager.java:33) ~[skRayFall+v1.9.27.jar:?]
    at net.rayfall.eyesniper2.skrayfall.TypeManager.registerSyntax(TypeManager.java:25) ~[skRayFall+v1.9.27.jar:?]
    at net.rayfall.eyesniper2.skrayfall.Core.onEnable(Core.java:69) ~[skRayFall+v1.9.27.jar:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:536) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugin(CraftServer.java:554) ~[paper-1.19.jar:git-Paper-29]
    at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugins(CraftServer.java:468) ~[paper-1.19.jar:git-Paper-29]
    at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:633) ~[paper-1.19.jar:git-Paper-29]
    at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:419) ~[paper-1.19.jar:git-Paper-29]
    at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:306) ~[paper-1.19.jar:git-Paper-29]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1121) ~[paper-1.19.jar:git-Paper-29]
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:302) ~[paper-1.19.jar:git-Paper-29]
    at java.lang.Thread.run(Thread.java:833) ~[?:?]

Server Information

eyesniper2 commented 2 years ago

Thanks for the heads up!

I have submitted a fix to bukkit and this will be fixed in skRayFall v1.9.28.