Solved StringList

Discussion in 'Plugin Development' started by amatokus, Jul 6, 2014.

Thread Status:
Not open for further replies.
  1. 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
    1. List<String> listt1 = (List<String>) this.getConfig().getStringList("side_1.players");
    2. listt1.add(sender.toString());
    3. 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![cake]
     
  2. Offline

    MCMastery

    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
    1. List<String> listt1 = (List<String>) this.getConfig().getStringList("side_1.players");
    2. listt1.add(sender.toString());
    3. // sets the side_1.players list to listt1
    4. this.getConfig().set("side_1.players", listt1);
    5. this.saveConfig();


    I don't know what is happening with it messing the config though
     
    amatokus likes this.
  3. 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
    1. listt1.add(sender.getName());

    to
    Code:java
    1. listt1.add(p.getNam());


    If needed, I will just post my whole code in there:

    show message

    I removed a lot of useless code for you! ;)
    Code:java
    1.  
    2. public class Twosides extends JavaPlugin implements Listener {
    3.  
    4.  
    5. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    6.  
    7. ScoreboardManager manager;
    8. Scoreboard board;
    9. Team teams1;
    10. Team teams2;
    11.  
    12.  
    13.  
    14.  
    15. String noperm = ChatColor.RED+"You don't have permissions to perform this command.";
    16. String premside = this.getConfig().getString("message.on_side_join");
    17.  
    18. String side1 = this.getConfig().getString("side_1.name");
    19. String side1f = ChatColor.translateAlternateColorCodes('&', side1);
    20. String side2 = this.getConfig().getString("side_2.name");
    21. String side2f = ChatColor.translateAlternateColorCodes('&', side2);
    22.  
    23. String rank1 = this.getConfig().getString("ranks.rank_1.name");
    24. String rank2 = this.getConfig().getString("ranks.rank_2.name");
    25. String rank3 = this.getConfig().getString("ranks.rank_3.name");
    26. String rank4 = this.getConfig().getString("ranks.rank_4.name");
    27. String rank5 = this.getConfig().getString("ranks.rank_5.name");
    28.  
    29. String cpt1 = this.getConfig().getString("side_1.chat_prefix");
    30. String cpt1f = ChatColor.translateAlternateColorCodes('&', cpt1);
    31.  
    32. String cpt2 = this.getConfig().getString("side_2.chat_prefix");
    33. String cpt2f = ChatColor.translateAlternateColorCodes('&', cpt2);
    34.  
    35. List<String> listt1 = (List<String>) this.getConfig().getStringList("side_1.players");
    36. List<String> listt2 = (List<String>) this.getConfig().getStringList("side_2.players");
    37.  
    38.  
    39. Score scoret1;
    40. Score scoret2;
    41.  
    42.  
    43. @Override
    44. public void onEnable() {
    45.  
    46. this.saveDefaultConfig();
    47. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    48.  
    49. this.getConfig().set("side_1.players", listt1);
    50. this.getConfig().set("side_2.players", listt2);
    51.  
    52.  
    53. manager = Bukkit.getScoreboardManager();
    54. board = manager.getNewScoreboard();
    55. teams1 = board.registerNewTeam(side1f);
    56. teams2 = board.registerNewTeam(side2f);
    57.  
    58. /*Player p = Bukkit.getPlayer(listt1.toString());
    59. *if(p != null){
    60. *teams1.addPlayer(p);
    61. *teams2.addPlayer(p);
    62. *}
    63. */
    64.  
    65. teams1.setPrefix(cpt1f);
    66. teams2.setPrefix(cpt2f);
    67.  
    68. Objective obj = board.registerNewObjective("TS", "dummy");
    69. obj.setDisplayName(ChatColor.GOLD+"["+ChatColor.YELLOW+"TwoSides"+ChatColor.GOLD+"]");
    70. obj.setDisplaySlot(DisplaySlot.SIDEBAR);
    71.  
    72. scoret1 = obj.getScore(Bukkit.getOfflinePlayer(cpt1f+side1f));
    73. scoret1.setScore(listt1.size());
    74. scoret2 = obj.getScore(Bukkit.getOfflinePlayer(cpt2f+side2f));
    75. scoret2.setScore(listt1.size());
    76.  
    77. teams1.setCanSeeFriendlyInvisibles(true);
    78. teams1.setAllowFriendlyFire(false);
    79. teams2.setCanSeeFriendlyInvisibles(true);
    80. teams2.setAllowFriendlyFire(false);
    81.  
    82.  
    83.  
    84. for(Player online : Bukkit.getOnlinePlayers()){
    85. scoret1.setScore(listt1.size());
    86. scoret2.setScore(listt2.size());
    87. online.setScoreboard(board);
    88. }
    89.  
    90.  
    91.  
    92. }
    93.  
    94.  
    95.  
    96. @Override
    97. public void onDisable() {
    98. }
    99.  
    100.  
    101.  
    102.  
    103.  
    104.  
    105.  
    106.  
    107.  
    108.  
    109. // COMMANDS - START ===================================================================
    110.  
    111. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    112.  
    113.  
    114.  
    115. String postmside = premside.replace("{Player}", sender.getName());
    116.  
    117. if (cmd.getName().equalsIgnoreCase("sidejoin")){
    118. if(sender.hasPermission("side.player.join")){
    119. if(sender instanceof Player){
    120. Player p = (Player) sender;
    121. if(args.length != 1){
    122. sender.sendMessage(ChatColor.GOLD+"Wrong usage, use /sidejoin <side>, available sides are: "+side1f+", "+side2f+".");}
    123. else{
    124. if(teams1.getPlayers().contains(p) || teams2.getPlayers().contains(p)){
    125. sender.sendMessage(ChatColor.GOLD+"You are already on side: "+board.getPlayerTeam(p).getName()+".");
    126. }else{
    127. if(args[0].equalsIgnoreCase(side1f) || args[0].equalsIgnoreCase(side2f)){
    128. if(args[0].equalsIgnoreCase(side1f)){
    129. String postpostmside = postmside.replace("{Side}", args[0]);
    130. String finalmside = ChatColor.translateAlternateColorCodes('&', postpostmside);
    131. teams1.addPlayer(p.getPlayer());
    132. listt1.add(p.getName());
    133. this.saveConfig();
    134. sender.sendMessage(finalmside);
    135. }
    136. if(args[0].equalsIgnoreCase(side2f)){
    137. String postpostmside = postmside.replace("{Side}", args[0]);
    138. String finalmside = ChatColor.translateAlternateColorCodes('&', postpostmside);
    139. teams2.addPlayer(p.getPlayer());
    140. listt2.add(p.getName());
    141. this.saveConfig();
    142. sender.sendMessage(finalmside);
    143. }
    144. }
    145. for(Player online : Bukkit.getOnlinePlayers()){
    146. scoret1.setScore(listt1.size());
    147. scoret2.setScore(listt2.size());
    148. online.setScoreboard(board);
    149. }
    150. }
    151. }
    152.  
    153.  
    154. }else{sender.sendMessage(ChatColor.GOLD+"You must be in game to perform this command.");}
    155. }else{sender.sendMessage(noperm);}
    156. return true;
    157. }
    158.  
    159. // COMMANDS - END ===================================================================
    160. @EventHandler
    161. public void onJoin(PlayerJoinEvent event){
    162. for(Player online : Bukkit.getServer().getOnlinePlayers()){
    163. online.setScoreboard(board);
    164. }
    165. }
    166.  
    167. }
    168.  



    Fixed!

    changed list to Arraylist and after all changement of the list I used:
    Code:java
    1. this.getConfig().set("side_1.players", listt1);



    THANKS!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 9, 2016
Thread Status:
Not open for further replies.

Share This Page