Помогите ConfigurationSerializable ошибок нет а код не пашет

  • Автор темы Автор темы JHIID13
  • Дата начала Дата начала

JHIID13

Новичок
Пользователь
Баллы
21
Короче леплю аля кланвар но ничего не пашет
Clan
Код:
        private Set<ClanManager> clans = new HashSet<ClanManager>();
        public void onEnable(){
        instance = this;
        ConfigurationSerialization.registerClass(ClanManager.class);
        getCommand("clan").setExecutor(new Clans(this));
        SettingsManager.getInstance().setup(this);
        }
        public void onDisable() {
        }
Код:
private final Clan plugin;
     public Clans(Clan plugin) {
            this.plugin = plugin;
        }
    
    @SuppressWarnings("unlikely-arg-type")
    public boolean onCommand( CommandSender arg0,  Command arg1, String arg2,String[] arg3) {
        if(arg0 instanceof Player) {
            Player p = (Player) arg0;
            if(arg3.length>0) {
                if(arg3[0].equalsIgnoreCase("create")) {
                    if(!arg3[1].isEmpty()) {
                        p.sendMessage(ChatColor.BLUE+""+ChatColor.BOLD + "[CLANWAR] Клан создан: "+arg3[1]);
                        SettingsManager.getInstance().set("clans", new ClanManager(p.getUniqueId(), arg3[1]).serialize());
                    }else {
                        p.sendMessage(ChatColor.BLUE+""+ChatColor.BOLD + "[CLANWAR]Ошибка.(((");
                        return true;
                    }
                }
                else if (arg3[0].equalsIgnoreCase("invite")) {
                }
                else if (arg3[0].equalsIgnoreCase("remove")) {
                    p.sendMessage(ChatColor.BLUE+""+ChatColor.BOLD + "[CLANWAR]Клан розформирован.");
                }
                else if (arg3[0].equalsIgnoreCase("save")) {
                }
                else if (arg3[0].equalsIgnoreCase("save")) {
                }
                else if (arg3[0].equalsIgnoreCase("save")) {
                }
                else if (arg3[0].equalsIgnoreCase("save")) {
                }
                else {
                    p.sendMessage(ChatColor.BLUE+""+ChatColor.BOLD + "[CLANWAR]Ошибка.(((");
                    return true;
                }
            }else {
                    p.sendMessage(ChatColor.BLUE+""+ChatColor.BOLD + "[CLANWAR]-------------------------------------------");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan create <name> - Создать клан.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan invite <player> - Пригласить игрока в клан.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan join <player> - Присоеденится к клану.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan info [ClanName] - Информаци о клане.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan kick <player> - Выгнать игрока.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan base - Телепортироватся на базу клана.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan leave - Покинуть клан.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan chat - Обявление клану.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan remove - Розформировать клан.");
                    p.sendMessage(ChatColor.BLUE+""+ChatColor.BOLD + "----------------------------------------------------");
                    return true;
            }
        if(arg0 instanceof ConsoleCommandSender)
        {
            arg0.sendMessage("Ti OBOSRALSYA");
            return true;
        }
        
    }
        return true;
    }
}
Код:
@SerializableAs("ClanManager")
public class ClanManager implements ConfigurationSerializable{
    private String name;
    private UUID owner;
    private HashSet<UUID> members = new HashSet<UUID>();
    private HashSet<UUID> invited = new HashSet<UUID>();
    private Location base;
    
    //стандартный ввод.
    public ClanManager(UUID owner, String name) {
        this.name = name;
        this.owner = owner;
        this.members = new HashSet<UUID>();
        members.add(owner);
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public UUID getOwner() {
        return this.owner;
    }
    public void setOwner(UUID owner) {
        this.owner = owner;
    }
    public HashSet<UUID> getMembers(){
        return this.members;
    }
    public void setMembers(HashSet<UUID> members) {
        this.members = members;
    }
    public ClanManager(Map<String, Object> map) {
        this.name = (String) map.get("name");
        this.owner = (UUID) map.get(owner);
        this.members = new HashSet<UUID>();
        this.members.add(owner);
        //new ArrayList<String>(Arrays.asList(((String) map.get("members")).split(","))); // map.get("members") -> Pogo,Stick,29
    }
    public Map<String, Object> serialize() {
        Map<String, Object> serialized = new HashMap<String, Object>();
        serialized.put("name", getName());
        serialized.put("owner", getOwner().toString());
        List<String> mems = new ArrayList<String>();
        for (UUID uuid : members) {
            mems.add(uuid.toString());
        }
        serialized.put("members", mems);
        return serialized;
    }
}
Код:
public class SettingsManager {
    
    private SettingsManager() { }

    private static SettingsManager instance = new SettingsManager();
    
    public static SettingsManager getInstance() {
        return instance;
    }
    
    public void setup(Plugin p) {
        if (!p.getDataFolder().exists()) p.getDataFolder().mkdir();
        
        file = new File(p.getDataFolder(), "teams.yml");
        
        if (!file.exists()) {
            try { file.createNewFile(); }
            catch (Exception e) { e.printStackTrace(); }
        }
        
        config = YamlConfiguration.loadConfiguration(file);
    }
    
    private File file;
    private FileConfiguration config;
    
    public void set(String path, Object value) {
        config.set(path, value);
        save();
    }
    
    public ConfigurationSection createConfigurationSection(String path) {
        ConfigurationSection cs = config.createSection(path);
        save();
        return cs;
    }
    
    @SuppressWarnings("unchecked")
    public <T> T get(String path) {
        return (T) config.get(path);
    }
    
    public void save() {
        try { config.save(file); }
        catch (Exception e) { e.printStackTrace(); }
    }
 
Короче леплю аля кланвар но ничего не пашет
Clan
Код:
        private Set<ClanManager> clans = new HashSet<ClanManager>();
        public void onEnable(){
        instance = this;
        ConfigurationSerialization.registerClass(ClanManager.class);
        getCommand("clan").setExecutor(new Clans(this));
        SettingsManager.getInstance().setup(this);
        }
        public void onDisable() {
        }
Код:
private final Clan plugin;
     public Clans(Clan plugin) {
            this.plugin = plugin;
        }
   
    @SuppressWarnings("unlikely-arg-type")
    public boolean onCommand( CommandSender arg0,  Command arg1, String arg2,String[] arg3) {
        if(arg0 instanceof Player) {
            Player p = (Player) arg0;
            if(arg3.length>0) {
                if(arg3[0].equalsIgnoreCase("create")) {
                    if(!arg3[1].isEmpty()) {
                        p.sendMessage(ChatColor.BLUE+""+ChatColor.BOLD + "[CLANWAR] Клан создан: "+arg3[1]);
                        SettingsManager.getInstance().set("clans", new ClanManager(p.getUniqueId(), arg3[1]).serialize());
                    }else {
                        p.sendMessage(ChatColor.BLUE+""+ChatColor.BOLD + "[CLANWAR]Ошибка.(((");
                        return true;
                    }
                }
                else if (arg3[0].equalsIgnoreCase("invite")) {
                }
                else if (arg3[0].equalsIgnoreCase("remove")) {
                    p.sendMessage(ChatColor.BLUE+""+ChatColor.BOLD + "[CLANWAR]Клан розформирован.");
                }
                else if (arg3[0].equalsIgnoreCase("save")) {
                }
                else if (arg3[0].equalsIgnoreCase("save")) {
                }
                else if (arg3[0].equalsIgnoreCase("save")) {
                }
                else if (arg3[0].equalsIgnoreCase("save")) {
                }
                else {
                    p.sendMessage(ChatColor.BLUE+""+ChatColor.BOLD + "[CLANWAR]Ошибка.(((");
                    return true;
                }
            }else {
                    p.sendMessage(ChatColor.BLUE+""+ChatColor.BOLD + "[CLANWAR]-------------------------------------------");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan create <name> - Создать клан.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan invite <player> - Пригласить игрока в клан.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan join <player> - Присоеденится к клану.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan info [ClanName] - Информаци о клане.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan kick <player> - Выгнать игрока.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan base - Телепортироватся на базу клана.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan leave - Покинуть клан.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan chat - Обявление клану.");
                    p.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD + "/clan remove - Розформировать клан.");
                    p.sendMessage(ChatColor.BLUE+""+ChatColor.BOLD + "----------------------------------------------------");
                    return true;
            }
        if(arg0 instanceof ConsoleCommandSender)
        {
            arg0.sendMessage("Ti OBOSRALSYA");
            return true;
        }
       
    }
        return true;
    }
}
Код:
@SerializableAs("ClanManager")
public class ClanManager implements ConfigurationSerializable{
    private String name;
    private UUID owner;
    private HashSet<UUID> members = new HashSet<UUID>();
    private HashSet<UUID> invited = new HashSet<UUID>();
    private Location base;
   
    //стандартный ввод.
    public ClanManager(UUID owner, String name) {
        this.name = name;
        this.owner = owner;
        this.members = new HashSet<UUID>();
        members.add(owner);
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public UUID getOwner() {
        return this.owner;
    }
    public void setOwner(UUID owner) {
        this.owner = owner;
    }
    public HashSet<UUID> getMembers(){
        return this.members;
    }
    public void setMembers(HashSet<UUID> members) {
        this.members = members;
    }
    public ClanManager(Map<String, Object> map) {
        this.name = (String) map.get("name");
        this.owner = (UUID) map.get(owner);
        this.members = new HashSet<UUID>();
        this.members.add(owner);
        //new ArrayList<String>(Arrays.asList(((String) map.get("members")).split(","))); // map.get("members") -> Pogo,Stick,29
    }
    public Map<String, Object> serialize() {
        Map<String, Object> serialized = new HashMap<String, Object>();
        serialized.put("name", getName());
        serialized.put("owner", getOwner().toString());
        List<String> mems = new ArrayList<String>();
        for (UUID uuid : members) {
            mems.add(uuid.toString());
        }
        serialized.put("members", mems);
        return serialized;
    }
}
Код:
public class SettingsManager {
   
    private SettingsManager() { }

    private static SettingsManager instance = new SettingsManager();
   
    public static SettingsManager getInstance() {
        return instance;
    }
   
    public void setup(Plugin p) {
        if (!p.getDataFolder().exists()) p.getDataFolder().mkdir();
       
        file = new File(p.getDataFolder(), "teams.yml");
       
        if (!file.exists()) {
            try { file.createNewFile(); }
            catch (Exception e) { e.printStackTrace(); }
        }
       
        config = YamlConfiguration.loadConfiguration(file);
    }
   
    private File file;
    private FileConfiguration config;
   
    public void set(String path, Object value) {
        config.set(path, value);
        save();
    }
   
    public ConfigurationSection createConfigurationSection(String path) {
        ConfigurationSection cs = config.createSection(path);
        save();
        return cs;
    }
   
    @SuppressWarnings("unchecked")
    public <T> T get(String path) {
        return (T) config.get(path);
    }
   
    public void save() {
        try { config.save(file); }
        catch (Exception e) { e.printStackTrace(); }
    }
У тебя клан менеджер должен иметь еще статический метод deserialize, какой именно - читай в доках.
Еще советую при выключении плагина удалять регистрацию сериализатора.
 
Чет не получается может я чет не монимаю скиньте норм урок пожалуйста у меня гугл с костылями.
 
Это делается вот так this.getConfig().get("name", MyConfigSer.class);
 
Назад
Верх