Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Plugin yml ругается

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

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

    Zard0nic Старожил Пользователь

    Баллы:
    153
    Содержание plugin.yml:
    Код:
    name: TestPlugin
    main: Test.mainClass
    description: TestPlugin
    version: 0.1
    Начало mainClass:
    Код:
    package Test;
    public class mainClass ...
    При запуске сервера с плагином такая ошибка:
    Код:
    [SEVERE] Could not load 'plugins\TestPlugin.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.ClassNotFoundException: Test.mainClass
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugins(CraftServer.java:239)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.<init>(CraftServer.java:217)
        at net.minecraft.server.v1_6_R2.PlayerList.<init>(PlayerList.java:56)
        at net.minecraft.server.v1_6_R2.DedicatedPlayerList.<init>(SourceFile:11)
        at net.minecraft.server.v1_6_R2.DedicatedServer.init(DedicatedServer.java:106)
        at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:391)
        at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.ClassNotFoundException: Test.mainClass
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:173)
        ... 9 more
    Хелп, в общем.
     
  2. Хостинг MineCraft
    <
  3. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    mainClass не находится в пакете Test
     
  4. Автор темы
    Zard0nic

    Zard0nic Старожил Пользователь

    Баллы:
    153
    Находится.
     
  5. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Сервер так не считает. Сам плагин выложи
     
  6. Автор темы
    Zard0nic

    Zard0nic Старожил Пользователь

    Баллы:
    153
    [​IMG]
     
  7. unlimited

    unlimited Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    infinity
    plugin.yml должен быть в папке src, а не в Test
     
  8. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Тоже сначала так подумал, но это эклипс так располагает их.
     
  9. Автор темы
    Zard0nic

    Zard0nic Старожил Пользователь

    Баллы:
    153
    [​IMG]
    Так и было, эклипс так показывается содержание.
    P.S. TestPlugin - пробовал менять название класса и пакета, результата нет.
     
  10. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    И всё же, может у ты не так экспортировал? Пришли jarник
     
  11. Автор темы
    Zard0nic

    Zard0nic Старожил Пользователь

    Баллы:
    153
    Вот ссылка
    Посмотрел и проверил внутри джарника plugin yml - все также
     
  12. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    У меня видит главный класс. Но зато есть ошибка в определении переменных для бд
     
  13. Автор темы
    Zard0nic

    Zard0nic Старожил Пользователь

    Баллы:
    153
    Они выставляются в конфиге. Пока что он дефолтный.
    Почему тогда может не видеть главный класс?[DOUBLEPOST=1382009471,1382009017][/DOUBLEPOST]Пробовал ставить на чистый баккит - точно такая же ошибка
     
  14. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Попробуй убрать работу с конфигом, ибо сделана она неверно
     
    Vedroyder нравится это.
  15. Автор темы
    Zard0nic

    Zard0nic Старожил Пользователь

    Баллы:
    153
    Можешь тогда скинуть какой-нибудь туториал по правильной работе с конфигом?
     
  16. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Ты просто пытаешься получить значения из конфига до его создания. Сначала сделай конфиг, а потом читай
     
  17. Автор темы
    Zard0nic

    Zard0nic Старожил Пользователь

    Баллы:
    153
    Он ведь содержится в самом плагине, и в нем содержаться дефолтные строки. Или тут особый метод создания?
     
  18. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    getConfig() по умолчанию возвращает конфиг, расположенный в папке плагина
     
  19. Автор темы
    Zard0nic

    Zard0nic Старожил Пользователь

    Баллы:
    153
    И как быть? Погуглил, почитал на форумах баккита - не нашел.
    Вообще эту "конструкцию" для получения данных из конфига я увидел на ютубе...
     
  20. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Код:
    @Override
    public void onEnable() {
    saveConfig();        // рачинское решение для создания конфига
    var1 = getConfig().get("1");
    var2 = getConfig().get("2");
    var3 = getConfig().get("3");
    }
    Образец
     
    zuma2 нравится это.
  21. Автор темы
    Zard0nic

    Zard0nic Старожил Пользователь

    Баллы:
    153
    Вот кусок кода, который относится к конфигу, его созданию и использованию:
    Код:
    FileConfiguration cfg = getConfig();
        public void onEnable()
        {
            getServer().getPluginManager().registerEvents(this, this);
           
            try
            {
                File file = new File(getDataFolder() + "/config.yml");
                if(!file.exists())
                {
                    cfg.addDefault("mysql", "jdbc:mysql://localhost/dbname");
                    cfg.addDefault("username", "username");
                    cfg.addDefault("password", "password");
                    cfg.options().copyDefaults(true);
                    saveConfig();
                }
            }
            catch(Exception e){ }
           
            getLogger().info("Test plugin enabled!");
        }
       
        String mysql = cfg.getString("mysql");
        String username = cfg.getString("username");
        String password = cfg.getString("password");
    Выдает ошибку. Причина: "File cannot be null".
    Тогда я понять не могу: нельзя создать пустой config.yml или что?
     
Статус темы:
Закрыта.

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