Editing lists in config

Discussion in 'Plugin Development' started by Monkeyboystein, Jul 8, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    Monkeyboystein

    Hey im wondering im struggling with 2 configs right now, is is possible to make a config like this:
    Group1: mod
    Group1Kills: 10
    PlayerData:
    - USERNAME: KILLS
    - ANOTHER USERNAME: MORE KILLS

    ect heres what i have and i hate it,:

    Code:java
    1. package monkeyboystein;
    2.  
    3. import java.io.File;
    4. import java.io.IOException;
    5.  
    6. import net.milkbowl.vault.chat.Chat;
    7. import net.milkbowl.vault.economy.Economy;
    8. import net.milkbowl.vault.permission.Permission;
    9.  
    10. import org.bukkit.Bukkit;
    11. import org.bukkit.configuration.file.FileConfiguration;
    12. import org.bukkit.configuration.file.YamlConfiguration;
    13.  
    14. import org.bukkit.craftbukkit.libs.org.ibex.nestedvm.util.Seekable.InputStream;
    15. import org.bukkit.event.EventHandler;
    16. import org.bukkit.event.Listener;
    17. import org.bukkit.event.entity.PlayerDeathEvent;
    18. import org.bukkit.event.player.PlayerJoinEvent;
    19. import org.bukkit.plugin.RegisteredServiceProvider;
    20. import org.bukkit.plugin.java.JavaPlugin;
    21.  
    22. public class PVPromote extends JavaPlugin implements Listener{
    23. public static Permission permission = null;
    24. public static Economy economy = null;
    25. public static Chat chat = null;
    26.  
    27. private boolean setupPermissions()
    28. {
    29. RegisteredServiceProvider<Permission> permissionProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class);
    30. if (permissionProvider != null) {
    31. permission = permissionProvider.getProvider();
    32. }
    33. return (permission != null);
    34. }
    35.  
    36. private boolean setupChat()
    37. {
    38. RegisteredServiceProvider<Chat> chatProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.chat.Chat.class);
    39. if (chatProvider != null) {
    40. chat = chatProvider.getProvider();
    41. }
    42.  
    43. return (chat != null);
    44. }
    45.  
    46. private boolean setupEconomy()
    47. {
    48. RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
    49. if (economyProvider != null) {
    50. economy = economyProvider.getProvider();
    51. }
    52.  
    53. return (economy != null);
    54. }
    55. private FileConfiguration customConfig = null;
    56. private File customConfigFile = null;
    57.  
    58. @SuppressWarnings("unused")
    59. public void onEnable() {
    60. getServer().getPluginManager().registerEvents(this, this);
    61. saveConfig();
    62. setupEconomy();
    63. setupChat();
    64. setupPermissions();
    65.  
    66. File file = new File(getDataFolder() + File.separator + "groups.yml");
    67. if(!file.exists()) {
    68. try {
    69. file.createNewFile();
    70. getConfig().addDefault("Group1", "default");
    71. getConfig().addDefault("Group1KillAmount", 10);
    72.  
    73. } catch (IOException e) {
    74.  
    75. e.printStackTrace();
    76. }
    77. }
    78. }
    79. @EventHandler
    80. public void join(PlayerJoinEvent event) {
    81. if(!(event.getPlayer().hasPlayedBefore())) {
    82. getConfig().set(event.getPlayer().getName(), 0);
    83.  
    84. saveConfig();
    85. }
    86. }
    87.  
    88. @EventHandler
    89. public void death(PlayerDeathEvent event) {
    90. int current = getConfig().getInt(event.getEntity().getKiller().getName());
    91. int after = getConfig().getInt(event.getEntity().getKiller().getName()) + 1;
    92.  
    93. getConfig().set(event.getEntity().getKiller().getName(), after);
    94. saveConfig();
    95. reloadConfig();
    96. Bukkit.broadcastMessage(event.getEntity().getKiller().getName() + ", has just reached " + getConfig().getInt(event.getEntity().getKiller().getName()));
    97.  
    98. if(getConfig().get(event.getEntity().getName()) == getConfig().getConfigurationSection("groups.yml").get("Group1KillAmount")) {
    99.  
    100. permission.playerAddGroup(event.getEntity().getKiller(), getConfig().getConfigurationSection("groups.yml").get("Group1").toString());
    101. Bukkit.broadcastMessage(event.getEntity().getKiller().getName() + ", has just been promoted to " + permission.getPrimaryGroup(event.getEntity()));
    102. }
    103. }
    104.  
    105.  
    106.  
    107.  
    108. }
    109.  


    Currently my config tells me player: kills and my groups.yml tells me nothing, i want to merge them to make it easier, thanks
     
  2. Offline

    wizzinangel

    Monkeyboystein create an array list of PlayerData with the information you then you can set it in tr config as a StringList:
    Something like this:

    Code:java
    1.  
    2. List<String> PlayerData = new ArrayList<String>();
    3.  
    4. PlayerData.add('someplayer: 3');
    5.  
    6. getConfig().set(''PlayerData', PlayerData);
    7. saveConfig;
    8.  


    This will add the list you created as a string list to the config. You can create a loop to add to the list

    To get the values from the list you do:

    String[] PlayerData = getConfig().getStringList('PlayerData');

    Then list through the PlayerData and display where ever you need it.
     
Thread Status:
Not open for further replies.

Share This Page