Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

[РЕШЕНО] Конструкторы - передача методов по классам

Статус
Закрыто для дальнейших ответов.

Zlodey_duo

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
_X_ZLODEY_X_
Не понимаю что я делаю неправильно...
Гуглил, не нашёл решение.

Главный класс:
Код:
    private FileManager fileManager;
  
    public Main(FileManager fileManager) {
        this.fileManager = fileManager;
    }


FileManager class:
Код:
    private Main plugin;
  
    public FileManager(Main plugin) {
        this.plugin = plugin;
    }


Проблема в чём? -> Выдаёт ошибку и сам плагин не загружается, по ошибке я понял что беда в plugin.yml А-ля jar не может с ним законектится. Причём когда я юзаю другой метод для передачи метода, сорри за тавтологию, эта ошибка пропадает...

Ошибка:

Код:
Could not load 'plugins\ClassicFFA.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: Abnormal plugin type
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:94) ~[spigot.jar:git-Spigot-79a30d7-f4830a1]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[spigot.jar:git-Spigot-79a30d7-f4830a1]
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:327) ~[spigot.jar:git-Spigot-79a30d7-f4830a1]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:248) [spigot.jar:git-Spigot-79a30d7-f4830a1]
    at org.bukkit.craftbukkit.v1_12_R1.CraftServer.loadPlugins(CraftServer.java:305) [spigot.jar:git-Spigot-79a30d7-f4830a1]
    at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:750) [spigot.jar:git-Spigot-79a30d7-f4830a1]
    at org.bukkit.Bukkit.reload(Bukkit.java:525) [spigot.jar:git-Spigot-79a30d7-f4830a1]
    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27) [spigot.jar:git-Spigot-79a30d7-f4830a1]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot.jar:git-Spigot-79a30d7-f4830a1]
    at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:648) [spigot.jar:git-Spigot-79a30d7-f4830a1]
    at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(CraftServer.java:634) [spigot.jar:git-Spigot-79a30d7-f4830a1]
    at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java:444) [spigot.jar:git-Spigot-79a30d7-f4830a1]
    at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:407) [spigot.jar:git-Spigot-79a30d7-f4830a1]
    at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot.jar:git-Spigot-79a30d7-f4830a1]
    at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot.jar:git-Spigot-79a30d7-f4830a1]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_371]
Caused by: java.lang.InstantiationException: me.classicffa.ru.Main
    at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_371]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:90) ~[spigot.jar:git-Spigot-79a30d7-f4830a1]
    ... 15 more
Caused by: java.lang.NoSuchMethodException: me.classicffa.ru.Main.<init>()
    at java.lang.Class.getConstructor0(Unknown Source) ~[?:1.8.0_371]
    at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_371]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:90) ~[spigot.jar:git-Spigot-79a30d7-f4830a1]
    ... 15 more
 
Конструктора с параметрами в главном классе быть не должно, любая логика должна быть перемещена в onLoad() или в onEnable(). Оно, собственно, и так понятно – плагины загружает внутренняя логика ядра, которая вообще ничего о плагине не знает и тем более не знает, что за FileManager нужно пропихивать.
 
Конструктора с параметрами в главном классе быть не должно, любая логика должна быть перемещена в onLoad() или в onEnable(). Оно, собственно, и так понятно – плагины загружает внутренняя логика ядра, которая вообще ничего о плагине не знает и тем более не знает, что за FileManager нужно пропихивать.

Я дурак? я дурак.
Только что проснулся и понял это, что в главном классе не нужен конструктор.

[РЕШЕНО]
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.

Поделиться этой страницей

Назад
Верх