Помогите Ошибка при использовании нескольких классов

conqu_error

Новичок
Баллы
16
Здравствуйте. При разработке плагина столкнулся с ошибкой. Для удобства я хотел сделать несколько классов. Но при загрузке плагина выводит такую ошибку:
[08:50:50 WARN]: Caused by: java.lang.IllegalArgumentException: Plugin already initialized!
[08:50:50 WARN]: at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:183)
[08:50:50 WARN]: at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:60)
[08:50:50 WARN]: at ru.quietw.qspy.CommandSpy.<init>(CommandSpy.java:14)
[08:50:50 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[08:50:50 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[08:50:50 WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[08:50:50 WARN]: at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[08:50:50 WARN]: at java.lang.Class.newInstance(Class.java:442)
[08:50:50 WARN]: at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:90)
[08:50:50 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129)
[08:50:50 WARN]: ... 13 more
[08:50:50 WARN]: Caused by: java.lang.IllegalStateException: Initial initialization
[08:50:50 WARN]: at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:186)
[08:50:50 WARN]: at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:60)
[08:50:50 WARN]: at ru.quietw.qspy.CommandSpy.<init>(CommandSpy.java:14)
[08:50:50 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[08:50:50 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[08:50:50 WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[08:50:50 WARN]: at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[08:50:50 WARN]: at java.lang.Class.newInstance(Class.java:442)
[08:50:50 WARN]: at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:90)
[08:50:50 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129)
[08:50:50 WARN]: at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:327)
[08:50:50 WARN]: at com.rylinaux.plugman.util.PluginUtil.load(PluginUtil.java:356)
[08:50:50 WARN]: at com.rylinaux.plugman.util.PluginUtil.load(PluginUtil.java:318)
[08:50:50 WARN]: at com.rylinaux.plugman.util.PluginUtil.reload(PluginUtil.java:380)
[08:50:50 WARN]: at com.rylinaux.plugman.command.ReloadCommand.execute(ReloadCommand.java:122)
Класс CommandSpy:
Код:
package ru.quietw.qspy;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

import java.io.File;
import java.util.List;

public class CommandSpy extends JavaPlugin implements Listener {

    File config = new File(getDataFolder() + File.separator + "config.yml");

    @Override
    public void onEnable() {
        Bukkit.getServer().getPluginManager().registerEvents(this, this);

        if(!config.exists()){
            getConfig().options().copyDefaults(true);
            saveDefaultConfig();
        }
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if(command.getName().equalsIgnoreCase("spyon")){
            if(sender.hasPermission("qplay.spy")) {
                Data data = new Data();
                List<String> list = getConfig().getStringList("enabledPlayers");
                list.add(sender.getName());
                getConfig().set("enabledPlayers", list);
                data.saveData(getConfig(), config);
                sender.sendMessage(getConfig().getString("spyOnMsg").replace("&", "§"));
            }
        }
        if(command.getName().equalsIgnoreCase("spyreload")){
            PluginManager plMan = Bukkit.getServer().getPluginManager();
            plMan.getPlugin("QuietSpy").reloadConfig();
            sender.sendMessage(getConfig().getString("reloadedMsg").replace("&", "§"));
        }
        return false;
    }
}
Класс Data:
Код:
package ru.quietw.qspy;

import org.bukkit.configuration.file.FileConfiguration;

import java.io.File;
import java.io.IOException;

public class Data {
    public void saveData(FileConfiguration config, File configFile){
        try{
           config.save(configFile);
        } catch(IOException e){
            e.printStackTrace();
        }
    }
}
Помогите, пожалйста.
Заранее спасибо.
 
Здравствуйте. При разработке плагина столкнулся с ошибкой. Для удобства я хотел сделать несколько классов. Но при загрузке плагина выводит такую ошибку:
[08:50:50 WARN]: Caused by: java.lang.IllegalArgumentException: Plugin already initialized!
[08:50:50 WARN]: at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:183)
[08:50:50 WARN]: at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:60)
[08:50:50 WARN]: at ru.quietw.qspy.CommandSpy.<init>(CommandSpy.java:14)
[08:50:50 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[08:50:50 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[08:50:50 WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[08:50:50 WARN]: at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[08:50:50 WARN]: at java.lang.Class.newInstance(Class.java:442)
[08:50:50 WARN]: at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:90)
[08:50:50 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129)
[08:50:50 WARN]: ... 13 more
[08:50:50 WARN]: Caused by: java.lang.IllegalStateException: Initial initialization
[08:50:50 WARN]: at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:186)
[08:50:50 WARN]: at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:60)
[08:50:50 WARN]: at ru.quietw.qspy.CommandSpy.<init>(CommandSpy.java:14)
[08:50:50 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[08:50:50 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[08:50:50 WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[08:50:50 WARN]: at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[08:50:50 WARN]: at java.lang.Class.newInstance(Class.java:442)
[08:50:50 WARN]: at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:90)
[08:50:50 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129)
[08:50:50 WARN]: at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:327)
[08:50:50 WARN]: at com.rylinaux.plugman.util.PluginUtil.load(PluginUtil.java:356)
[08:50:50 WARN]: at com.rylinaux.plugman.util.PluginUtil.load(PluginUtil.java:318)
[08:50:50 WARN]: at com.rylinaux.plugman.util.PluginUtil.reload(PluginUtil.java:380)
[08:50:50 WARN]: at com.rylinaux.plugman.command.ReloadCommand.execute(ReloadCommand.java:122)
Класс CommandSpy:
Код:
package ru.quietw.qspy;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

import java.io.File;
import java.util.List;

public class CommandSpy extends JavaPlugin implements Listener {

    File config = new File(getDataFolder() + File.separator + "config.yml");

    @Override
    public void onEnable() {
        Bukkit.getServer().getPluginManager().registerEvents(this, this);

        if(!config.exists()){
            getConfig().options().copyDefaults(true);
            saveDefaultConfig();
        }
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if(command.getName().equalsIgnoreCase("spyon")){
            if(sender.hasPermission("qplay.spy")) {
                Data data = new Data();
                List<String> list = getConfig().getStringList("enabledPlayers");
                list.add(sender.getName());
                getConfig().set("enabledPlayers", list);
                data.saveData(getConfig(), config);
                sender.sendMessage(getConfig().getString("spyOnMsg").replace("&", "§"));
            }
        }
        if(command.getName().equalsIgnoreCase("spyreload")){
            PluginManager plMan = Bukkit.getServer().getPluginManager();
            plMan.getPlugin("QuietSpy").reloadConfig();
            sender.sendMessage(getConfig().getString("reloadedMsg").replace("&", "§"));
        }
        return false;
    }
}
Класс Data:
Код:
package ru.quietw.qspy;

import org.bukkit.configuration.file.FileConfiguration;

import java.io.File;
import java.io.IOException;

public class Data {
    public void saveData(FileConfiguration config, File configFile){
        try{
           config.save(configFile);
        } catch(IOException e){
            e.printStackTrace();
        }
    }
}
Помогите, пожалйста.
Заранее спасибо.
Твой плагин уже инициализировался. Мб, у тебя на сервере присутствуют 2 плагина с одинаковым пакетом и названием главного класса.
 
File config = new File(getDataFolder() + File.separator + "config.yml"); Зачем?
saveDefaultConfig(); и так не копирует на существующий конфиг.
 
Назад
Верх