how to check if there is a certain string in config.yml

Discussion in 'Plugin Development' started by lobuo, Jul 18, 2014.

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

    lobuo

    Hello,
    I am making a player-specific MOTD plugin, and I was wondering how to check if there is a string for that player in the config.yml file.
    What my config.yml file looks like:
    Code:
    message: Welcome to the server!
     
    users:
        lobuo: Custom MOTD!
    And here is what my Main.java file looks like:
    Code:java
    1. package tk.lobuo.playermotd;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandSender;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.player.PlayerJoinEvent;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. public class Main extends JavaPlugin implements Listener {
    14.  
    15. @EventHandler
    16. public void onJoin(PlayerJoinEvent e) {
    17. Player p = e.getPlayer();
    18.  
    19. String username = p.getName();
    20.  
    21. if (/*Username is in MOTD file as "users.username"*/) { //Custom MOTD
    22. p.sendMessage(ChatColor.GOLD + getConfig().getString("users." + username /*Not sure if this will work*/ ));
    23. }
    24. else { //no custom MOTD
    25. p.sendMessage(ChatColor.GOLD + getConfig().getString("message"));
    26. }
    27. }
    28.  
    29. public void onEnable() {
    30. Bukkit.getServer().getLogger().info(ChatColor.GREEN + "PlayerMOTD version 1.0 enabled!");
    31.  
    32. getConfig().options().copyDefaults(true); //Creates config.yml if none with default values
    33. saveConfig();
    34. Bukkit.getServer().getPluginManager().registerEvents(this, this); //tells bukkit that this is a listener (and a plugin), so it knows to listen for players joining
    35. }
    36.  
    37. public void onDisable() {
    38. Bukkit.getServer().getLogger().info(ChatColor.RED + "PlayerMOTD version 1.0 disabled!");
    39. }
    40.  
    41. /* Unfinished commands
    42.   public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    43.  
    44.   if (cmd.getName().equalsIgnoreCase("motd")) {
    45.  
    46.   }
    47.  
    48.   return true;
    49.  
    50.   }
    51.   */
    52.  
    53. }
    54.  
     
  2. Offline

    mydeblob

    lobuo
    Code:java
    1. for(String s:getConfig().getConfigurationSection("users").getKeys(false)){
    2. if(s.equals(PLAYER_NAME)){
    3. //The config contained the player name under the section users
    4. //Do stuff
    5. }
    6. }
     
  3. Offline

    lobuo

    mydeblob
    When I do that, it gives me a message that says null instead of my message that I set.
    My code:
    Code:java
    1. package tk.lobuo.playermotd;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandSender;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.player.PlayerJoinEvent;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. public class Main extends JavaPlugin implements Listener {
    14.  
    15. @EventHandler
    16. public void onJoin(PlayerJoinEvent e) {
    17. Player p = e.getPlayer();
    18.  
    19. String username = p.getName();
    20.  
    21. for (String s:getConfig().getConfigurationSection("users").getKeys(false)){
    22. if (s.equals(username)){
    23. p.sendMessage(ChatColor.GOLD + getConfig().getString(username));
    24. }
    25. }
    26.  
    27. /*if (configString != null) { //Custom MOTD
    28.   p.sendMessage(ChatColor.GOLD + getConfig().getString(configString /*Not sure if this will work ));
    29.   }
    30.   else { //no custom MOTD
    31.   p.sendMessage(ChatColor.GOLD + getConfig().getString("message"));
    32.   } */
    33. }
    34.  
    35. public void onEnable() {
    36. Bukkit.getServer().getLogger().info(ChatColor.GREEN + "PlayerMOTD version 1.0 enabled!");
    37.  
    38. getConfig().options().copyDefaults(true); //Creates config.yml if none with default values
    39. saveConfig();
    40. Bukkit.getServer().getPluginManager().registerEvents(this, this); //tells bukkit that this is a listener (and a plugin), so it knows to listen for players joining
    41. }
    42.  
    43. public void onDisable() {
    44. Bukkit.getServer().getLogger().info(ChatColor.RED + "PlayerMOTD version 1.0 disabled!");
    45. }
    46.  
    47. /* Unfinished commands
    48.   public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    49.  
    50.   if (cmd.getName().equalsIgnoreCase("motd")) {
    51.  
    52.   }
    53.  
    54.   return true;
    55.  
    56.   }
    57.   */
    58.  
    59. }
    60.  


    mydeblob Nevermind. I changed line 23 from p.sendMessage(ChatColor.GOLD + getConfig().getString(username)); to p.sendMessage(ChatColor.GOLD + getConfig().getString("users." + username)); 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