wiselder
Пользователь
- Сообщения
- 17
- Решения
- 1
Есть мой основной плагин Nemesis. Он зависит от другого плагина Babylon. babylon наследуется от ITranslator. При кастинге последнего плагина к интерфейсу происходит следующая ошибка.
Так, если устроить проверку полученного плагина через instanceof то он её проваливает.
Ядро Paper/Spigot 1.17, может быть дело в новых нестабильных версиях?
Поправлю первое сообщение - babylon не наследуется, а реализовывает интерфейс ITranslator.
До перехода на 1.17 и на новую джаву всё вроде как работало.
Очень надеюсь, что это мой косяк где-то завалялся, чтобы я смог это скорее пофиксить.
Решено -> оба скомпилированных jar-ника имели сгенерированный класс ITranslator, исключил из одного - заработало
Bash:
[14:00:39 ERROR]: Error occurred while enabling Nemesis v0.0.1 (Is it up to date?)
java.lang.ClassCastException: class ru.wiselder.spigot.babylon.Babylon cannot be cast to class ru.wiselder.spigot.babylon.api.ITranslator (ru.wiselder.spigot.babylon.Babylon is in unnamed module of loader org.bukkit.plugin.java.PluginClassLoader @474b4367; ru.wiselder.spigot.babylon.api.ITranslator is in unnamed module of loader org.bukkit.plugin.java.PluginClassLoader @1681869a)
at ru.wiselder.spigot.nemesis.Nemesis.beforeEnable(Nemesis.java:57) ~[?:?]
at ru.wiselder.spigot.eternal.EternalPlugin.onEnable(EternalPlugin.java:61) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.17.jar:git-Paper-53]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[patched_1.17.jar:git-Paper-53]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[patched_1.17.jar:git-Paper-53]
at org.bukkit.craftbukkit.v1_17_R1.CraftServer.enablePlugin(CraftServer.java:518) ~[patched_1.17.jar:git-Paper-53]
at org.bukkit.craftbukkit.v1_17_R1.CraftServer.enablePlugins(CraftServer.java:432) ~[patched_1.17.jar:git-Paper-53]
at net.minecraft.server.MinecraftServer.loadWorld(MinecraftServer.java:643) ~[patched_1.17.jar:git-Paper-53]
at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:304) ~[patched_1.17.jar:git-Paper-53]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1118) ~[patched_1.17.jar:git-Paper-53]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:320) ~[patched_1.17.jar:git-Paper-53]
Объединено
Java:
var babylon = Bukkit.getPluginManager().getPlugin("Babylon");
var janus = Bukkit.getPluginManager().getPlugin("Janus");
if (babylon == null || janus == null) {
super.fatality();
return;
}
ITranslator translator = (ITranslator) babylon;
Объединено
Так, если устроить проверку полученного плагина через instanceof то он её проваливает.
Ядро Paper/Spigot 1.17, может быть дело в новых нестабильных версиях?
Поправлю первое сообщение - babylon не наследуется, а реализовывает интерфейс ITranslator.
До перехода на 1.17 и на новую джаву всё вроде как работало.
Очень надеюсь, что это мой косяк где-то завалялся, чтобы я смог это скорее пофиксить.
Java:
getLogger().log(Level.WARNING, babylon instanceof ITranslator ? "BABYLON IS INSTANCE": "BABYLON FAILED");
Объединено
Решено -> оба скомпилированных jar-ника имели сгенерированный класс ITranslator, исключил из одного - заработало
Последнее редактирование: