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

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

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
Хелп, в общем.
 
Вот кусок кода, который относится к конфигу, его созданию и использованию:
Код:
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 или что?
Ну а в папке TestPlugin лежит config.yml?
И не нужно определять cfg за пределами методов
Не надо вообще определять переменные за пределами метода
 
Код:
FileConfiguration cfg;
    public void onEnable()
    {
     <…>
     cfg = getConfig();
    String mysql = cfg.getString("mysql");
    String username = cfg.getString("username");
    String password = cfg.getString("password");
}
 
Я для себя работу с конфигом давно привёл к подобным процедурам:
https://github.com/fromgate/PlayEff...e/fromgate/playeffect/PlayEffect.java#L52-L72

При старте плагина всегда вызываю последовательно loadCfg() и saveCfg(). Это приводит к тому, что при первом запуске плагина создается конфиг с дефолтными значениями.
 
Код:
FileConfiguration cfg;
    String v1;
    String v2;
    String v3
    public void onEnable()
    {
     <…>
     cfg = getConfig();
    v1 = cfg.getString("mysql");
    v2 = cfg.getString("username");
    v3 = cfg.getString("password");
}
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх