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

Помогите 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
Хелп, в общем.
 
mainClass не находится в пакете Test
 
Сервер так не считает. Сам плагин выложи
dLeSUPx.png
 
D4naz8U.png

Так и было, эклипс так показывается содержание.
P.S. TestPlugin - пробовал менять название класса и пакета, результата нет.
И всё же, может у ты не так экспортировал? Пришли jarник
 
У меня видит главный класс. Но зато есть ошибка в определении переменных для бд
Они выставляются в конфиге. Пока что он дефолтный.
Почему тогда может не видеть главный класс?
Пробовал ставить на чистый баккит - точно такая же ошибка
 
Они выставляются в конфиге. Пока что он дефолтный.
Почему тогда может не видеть главный класс?
Пробовал ставить на чистый баккит - точно такая же ошибка
Попробуй убрать работу с конфигом, ибо сделана она неверно
 
Можешь тогда скинуть какой-нибудь туториал по правильной работе с конфигом?
Ты просто пытаешься получить значения из конфига до его создания. Сначала сделай конфиг, а потом читай
 
Ты просто пытаешься получить значения из конфига до его создания. Сначала сделай конфиг, а потом читай
Он ведь содержится в самом плагине, и в нем содержаться дефолтные строки. Или тут особый метод создания?
 
Он ведь содержится в самом плагине, и в нем содержаться дефолтные строки. Или тут особый метод создания?
getConfig() по умолчанию возвращает конфиг, расположенный в папке плагина
 
getConfig() по умолчанию возвращает конфиг, расположенный в папке плагина
И как быть? Погуглил, почитал на форумах баккита - не нашел.
Вообще эту "конструкцию" для получения данных из конфига я увидел на ютубе...
 
И как быть? Погуглил, почитал на форумах баккита - не нашел.
Вообще эту "конструкцию" для получения данных из конфига я увидел на ютубе...
Код:
@Override
public void onEnable() {
saveConfig();        // рачинское решение для создания конфига
var1 = getConfig().get("1");
var2 = getConfig().get("2");
var3 = getConfig().get("3");
}
Образец
 
Код:
@Override
public void onEnable() {
saveConfig();        // рачинское решение для создания конфига
var1 = getConfig().get("1");
var2 = getConfig().get("2");
var3 = getConfig().get("3");
}
Образец
Вот кусок кода, который относится к конфигу, его созданию и использованию:
Код:
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 или что?
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх