Hi bukkit forums! I'm actualy orking on a piece of code wich is making me cray cray. Ihave this config file: Code: ranks: rank_1: name: King chat_foramt: "&6{Side} &4[{Rank}]&7{Player}: {Message}" rank_2: name: Queen chat_foramt: "&6{Side} &4[{Rank}]&7{Player}: {Message}" rank_3: name: Guard chat_foramt: "&6{Side} &4[{Rank}]&7{Player}: {Message}" rank_4: name: Knight chat_foramt: "&6{Side} &4[{Rank}]&7{Player}: {Message}" rank_5: name: Slave chat_foramt: "&6{Side} &4[{Rank}]&7{Player}: {Message}" #Rank 5 is the default rank. message: on_side_join: "&6Welcome {Player} to side {Side}." side_1: name_color: "&4" chat_prefix: "&4" name: Azeroth story: "&c This is the story of Azeroth ..." spawn: world: world x: 0 y: 0 z: 0 players: side_2: name_color: "&b" chat_prefix: "&b" name: Neverdah story: "&6 This is the story of Neverdah ..." spawn: world: world x: 0 y: 0 z: 0 players: onlogin: noside: message: "&bHey {Player}, we invite you to join a side, use /sidejoin." But when this piece of cod eis reached: Code:java List<String> listt1 = (List<String>) this.getConfig().getStringList("side_1.players"); listt1.add(sender.toString()); this.saveConfig(); My config gets wierd: Code: message: {} side_1: {} side_2: {} ranks: rank_1: {} rank_2: {} rank_3: {} rank_4: {} rank_5: {} thanks for the help!
amatokus First of all, listt1 would be a DUPLICATE of the one in the config. Do this instead, or else nothing will happen: Code:java List<String> listt1 = (List<String>) this.getConfig().getStringList("side_1.players");listt1.add(sender.toString());// sets the side_1.players list to listt1this.getConfig().set("side_1.players", listt1);this.saveConfig(); I don't know what is happening with it messing the config though
MCMastery Thanks! Now my config looks like this. Code: message: {} side_1: players: - amatokus side_2: players: [] ranks: rank_1: {} rank_2: {} rank_3: {} rank_4: {} rank_5: {} And I changed Code:java listt1.add(sender.getName()); to Code:java listt1.add(p.getNam()); If needed, I will just post my whole code in there: show message hide message I removed a lot of useless code for you! Code:java public class Twosides extends JavaPlugin implements Listener { Bukkit.getServer().getPluginManager().registerEvents(this, this); ScoreboardManager manager;Scoreboard board;Team teams1;Team teams2; String noperm = ChatColor.RED+"You don't have permissions to perform this command.";String premside = this.getConfig().getString("message.on_side_join"); String side1 = this.getConfig().getString("side_1.name");String side1f = ChatColor.translateAlternateColorCodes('&', side1);String side2 = this.getConfig().getString("side_2.name");String side2f = ChatColor.translateAlternateColorCodes('&', side2); String rank1 = this.getConfig().getString("ranks.rank_1.name");String rank2 = this.getConfig().getString("ranks.rank_2.name");String rank3 = this.getConfig().getString("ranks.rank_3.name");String rank4 = this.getConfig().getString("ranks.rank_4.name");String rank5 = this.getConfig().getString("ranks.rank_5.name"); String cpt1 = this.getConfig().getString("side_1.chat_prefix");String cpt1f = ChatColor.translateAlternateColorCodes('&', cpt1); String cpt2 = this.getConfig().getString("side_2.chat_prefix");String cpt2f = ChatColor.translateAlternateColorCodes('&', cpt2); List<String> listt1 = (List<String>) this.getConfig().getStringList("side_1.players");List<String> listt2 = (List<String>) this.getConfig().getStringList("side_2.players"); Score scoret1;Score scoret2; @Overridepublic void onEnable() { this.saveDefaultConfig();Bukkit.getServer().getPluginManager().registerEvents(this, this); this.getConfig().set("side_1.players", listt1);this.getConfig().set("side_2.players", listt2); manager = Bukkit.getScoreboardManager();board = manager.getNewScoreboard();teams1 = board.registerNewTeam(side1f);teams2 = board.registerNewTeam(side2f); /*Player p = Bukkit.getPlayer(listt1.toString());*if(p != null){*teams1.addPlayer(p);*teams2.addPlayer(p);*}*/ teams1.setPrefix(cpt1f);teams2.setPrefix(cpt2f); Objective obj = board.registerNewObjective("TS", "dummy");obj.setDisplayName(ChatColor.GOLD+"["+ChatColor.YELLOW+"TwoSides"+ChatColor.GOLD+"]");obj.setDisplaySlot(DisplaySlot.SIDEBAR); scoret1 = obj.getScore(Bukkit.getOfflinePlayer(cpt1f+side1f));scoret1.setScore(listt1.size());scoret2 = obj.getScore(Bukkit.getOfflinePlayer(cpt2f+side2f));scoret2.setScore(listt1.size()); teams1.setCanSeeFriendlyInvisibles(true);teams1.setAllowFriendlyFire(false);teams2.setCanSeeFriendlyInvisibles(true);teams2.setAllowFriendlyFire(false); for(Player online : Bukkit.getOnlinePlayers()){scoret1.setScore(listt1.size());scoret2.setScore(listt2.size());online.setScoreboard(board);} } @Overridepublic void onDisable() {} // COMMANDS - START =================================================================== public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { String postmside = premside.replace("{Player}", sender.getName()); if (cmd.getName().equalsIgnoreCase("sidejoin")){if(sender.hasPermission("side.player.join")){if(sender instanceof Player){Player p = (Player) sender;if(args.length != 1){sender.sendMessage(ChatColor.GOLD+"Wrong usage, use /sidejoin <side>, available sides are: "+side1f+", "+side2f+".");}else{if(teams1.getPlayers().contains(p) || teams2.getPlayers().contains(p)){sender.sendMessage(ChatColor.GOLD+"You are already on side: "+board.getPlayerTeam(p).getName()+".");}else{if(args[0].equalsIgnoreCase(side1f) || args[0].equalsIgnoreCase(side2f)){if(args[0].equalsIgnoreCase(side1f)){String postpostmside = postmside.replace("{Side}", args[0]);String finalmside = ChatColor.translateAlternateColorCodes('&', postpostmside);teams1.addPlayer(p.getPlayer());listt1.add(p.getName());this.saveConfig();sender.sendMessage(finalmside);}if(args[0].equalsIgnoreCase(side2f)){String postpostmside = postmside.replace("{Side}", args[0]);String finalmside = ChatColor.translateAlternateColorCodes('&', postpostmside);teams2.addPlayer(p.getPlayer());listt2.add(p.getName());this.saveConfig();sender.sendMessage(finalmside);}}for(Player online : Bukkit.getOnlinePlayers()){scoret1.setScore(listt1.size());scoret2.setScore(listt2.size());online.setScoreboard(board);}}} }else{sender.sendMessage(ChatColor.GOLD+"You must be in game to perform this command.");}}else{sender.sendMessage(noperm);}return true;} // COMMANDS - END ===================================================================@EventHandlerpublic void onJoin(PlayerJoinEvent event){for(Player online : Bukkit.getServer().getOnlinePlayers()){online.setScoreboard(board);}} } Fixed! changed list to Arraylist and after all changement of the list I used: Code:java this.getConfig().set("side_1.players", listt1); THANKS! EDIT by Moderator: merged posts, please use the edit button instead of double posting.