1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Zlodey_duo, 23 мар 2024.

Статус темы:
Закрыта.
  1. Автор темы
    Zlodey_duo

    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
     
  2. FeniksDEV

    FeniksDEV Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Feniksovich
    Конструктора с параметрами в главном классе быть не должно, любая логика должна быть перемещена в onLoad() или в onEnable(). Оно, собственно, и так понятно – плагины загружает внутренняя логика ядра, которая вообще ничего о плагине не знает и тем более не знает, что за FileManager нужно пропихивать.
     
  3. Автор темы
    Zlodey_duo

    Zlodey_duo Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    _X_ZLODEY_X_
    Я дурак? я дурак.
    Только что проснулся и понял это, что в главном классе не нужен конструктор.

    [РЕШЕНО]
     
    Последнее редактирование: 24 мар 2024
Статус темы:
Закрыта.

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