Solved Config Help!

Discussion in 'Plugin Development' started by BaconStripzMan, Feb 14, 2015.

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

    BaconStripzMan

    Hi. I've been creating a plugin and I created a tutorial part of my bukkit coding series on how to use configs and on both when I put &, (), [], etc in strings it gives me the invalid character error.

    Code (open)
    Code:java
    1.  
    2. package me.baconstripsman.servermessages;
    3.  
    4. import java.util.logging.Level;
    5.  
    6. import org.bukkit.Bukkit;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.player.AsyncPlayerChatEvent;
    11. import org.bukkit.event.player.PlayerCommandPreprocessEvent;
    12. import org.bukkit.event.player.PlayerJoinEvent;
    13. import org.bukkit.event.player.PlayerQuitEvent;
    14. import org.bukkit.help.HelpTopic;
    15. import org.bukkit.plugin.java.JavaPlugin;
    16.  
    17. public class ServerMessages extends JavaPlugin implements Listener {
    18.  
    19. @Override
    20. public void onEnable(){
    21. getServer().getPluginManager().registerEvents(this, this);
    22. getLogger().log(Level.INFO, "Developers YT: [URL]http://youtube.com/c/BaconStripsManMinecraft[/URL]");
    23. saveDefaultConfig();
    24. }
    25.  
    26. @EventHandler
    27. public void onPlayerJoin(PlayerJoinEvent e){
    28. Player p = e.getPlayer();
    29. if(p.hasPlayedBefore()){
    30. if(getConfig().getBoolean("connection.join-enabled") == true){
    31. e.setJoinMessage(getConfig().getString("connection.join").replaceAll("%p", e.getPlayer().getName()).replaceAll("(&([a-f0-9k-o]))", "\u00A7$2").replaceAll("%pdn", p.getDisplayName()).replaceAll("%a", "'"));
    32. } else {
    33. e.setJoinMessage(null);
    34. }
    35. } else {
    36. if(getConfig().getBoolean("connection.firstjoin-enabled") == true){
    37. e.setJoinMessage(getConfig().getString("connection.firstjoin").replaceAll("%p", e.getPlayer().getName()).replaceAll("(&([a-f0-9k-o]))", "\u00A7$2").replaceAll("%pdn", p.getDisplayName()).replaceAll("%a", "'"));
    38. } else if(getConfig().getBoolean("connection.join-enabled") == true && getConfig().getBoolean("connection.firstjoin-enabled") == false) {
    39. e.setJoinMessage(getConfig().getString("connection.join").replaceAll("%p", e.getPlayer().getName()).replaceAll("(&([a-f0-9k-o]))", "\u00A7$2").replaceAll("%pdn", p.getDisplayName()).replaceAll("%a", "'"));
    40. } else if(getConfig().getBoolean("connection.join-enabled") == false && getConfig().getBoolean("connection.firstjoin-enabled") == false){
    41. e.setJoinMessage(null);
    42. }
    43. }
    44. }
    45.  
    46. @EventHandler
    47. public void onPlayerQuit(PlayerQuitEvent e){
    48. Player p = e.getPlayer();
    49. if(getConfig().getBoolean("connection.leave-enabled") == true){
    50. e.setQuitMessage(getConfig().getString("connection.leave").replaceAll("%p", e.getPlayer().getName()).replaceAll("(&([a-f0-9k-o]))", "\u00A7$2").replaceAll("%pdn", p.getDisplayName()).replaceAll("%a", "'"));
    51. } else {
    52. e.setQuitMessage(null);
    53. }
    54. }
    55.  
    56. @EventHandler
    57. public void onPlayerCommand(PlayerCommandPreprocessEvent e){
    58. if(!e.isCancelled()){
    59. Player player = e.getPlayer();
    60. String cmd = e.getMessage().split(" ")[0];
    61. HelpTopic topic = Bukkit.getServer().getHelpMap().getHelpTopic(cmd);
    62. if (topic == null) {
    63. player.sendMessage(getConfig().getString("commands.invalid-command").replaceAll("%p", e.getPlayer().getName()).replaceAll("(&([a-f0-9k-o]))", "\u00A7$2").replaceAll("%pdn", e.getPlayer().getDisplayName()).replaceAll("%a", "'"));
    64. e.setCancelled(true);
    65. }
    66. }
    67. }
    68.  
    69. @EventHandler
    70. public void onPlayerChat(AsyncPlayerChatEvent e){
    71. e.setFormat(getConfig().getString("chat.format").replaceAll("%p", e.getPlayer().getName()).replaceAll("(&([a-f0-9k-o]))", "\u00A7$2").replaceAll("%pdn", e.getPlayer().getDisplayName()).replaceAll("%a", "'").replaceAll("%m", e.getMessage()));
    72. }
    73. }
    74.  



    Config.yml (open)
    Code:yaml
    1.  
    2. # Server Messages by BaconStripsMan
    3. # [URL]http://youtube.com/c/BaconStripsManMinecraft[/URL]
    4.  
    5. # Colour Code Support!
    6. # %p = Player Name!
    7. # %pdn = Player Display Name!
    8. # %m = Chat Message! (Chat Format Only)
    9.  
    10. # Sorry but for the moment you cannot use ' but instead use %a
    11.  
    12. connection:
    13. firstjoin-enabled: true
    14. join-enabled: true
    15. firstjoin: "&6%p &6has joined the game for the first time."
    16. join: "&e%p &bhas joined the game."
    17. leave-enabled: true
    18. leave: "&e%p &bhas left the game."
    19. commands:
    20. invalid-command: "&cStop %p! This command doesn%at exist!
    21. chat:
    22. format: "&7(Player) &c%p&8: &f%m"
    23.  
     
  2. Offline

    Tecno_Wizard

    @BaconStripzMan, In a YAML, those are reserved characters, similar to how this and class are reserved words. They cannot be stored without errors.
     
  3. Offline

    BaconStripzMan

    But I've seen people do it.. (Colour Codes)
     
  4. Offline

    teej107

    @BaconStripzMan Post stacktrace. If you surround the values around quotes, you should be fine!
     
  5. Offline

    BaconStripzMan

Thread Status:
Not open for further replies.

Share This Page