Trying to add words to a config file, not working with no errors?

Discussion in 'Plugin Development' started by Axanite, Sep 28, 2013.

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

    Axanite

    Hi, I'm trying to make it so when people run a command, it will add the second argument (/<command> <1st> <2nd>) to a config.yml. However, I'm stumped on how to do this. Console gives me no errors nor does eclipse. Any help will be appreciated.

    Code:
    package me.rf2minecraft.CursePrevention;
     
    import java.util.List;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.AsyncPlayerChatEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.event.EventPriority;
     
    public final class CursePrevention extends JavaPlugin implements Listener {
        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            this.saveDefaultConfig();
            this.getConfig();
        }
       
        public boolean onCommand(CommandSender cmdsender, Command cmd, String cmdlabel, String[] args) {
           
            if(!(cmdsender instanceof Player)) {
                cmdsender.sendMessage(ChatColor.GOLD + "CursePrevention commands can only be run by an online player.");
            } else {
            if(cmdlabel.equalsIgnoreCase("curseprevention")) {
                if(args.length == 0) {
                    cmdsender.sendMessage(ChatColor.GOLD + "CursePrevention");
                    cmdsender.sendMessage(ChatColor.GOLD + "Author: RobloxianFire2");
                    cmdsender.sendMessage(ChatColor.GOLD + "Version: 1.0");
                    cmdsender.sendMessage(ChatColor.GOLD + "Commands: /curseprevention commands");
                }
                if(args.length == 1) {
                    if(cmdsender.hasPermission("curseprevention.commands.view")) { // If player has permission to view the commands list.
                    if(args[0].equalsIgnoreCase("commands")) {
                        cmdsender.sendMessage(ChatColor.GOLD + "######################################");
                        cmdsender.sendMessage(ChatColor.GOLD + "Commands: /curseprevention commands");
                        cmdsender.sendMessage(ChatColor.GOLD + "List Censors: /curseprevention list");
                        cmdsender.sendMessage(ChatColor.GOLD + "Reload: /curseprevention reload");
                    }
                }
                    if(cmdsender.hasPermission("curseprevention.list")) { // If player has permission to view the censored words list.
                        if(args[0].equalsIgnoreCase("list")) {
                            cmdsender.sendMessage(ChatColor.GOLD + "Banned Words: " + getConfig().getStringList("censoredwords"));
                        }
                    }
                    if(cmdsender.hasPermission("curseprevention.reload")) { // If player has permission to reload.
                        if(args[0].equalsIgnoreCase("reload")) {
                            getConfig().addDefault("censoredwords", getConfig().getStringList("censoredwords"));
                            getConfig().options().copyDefaults(true);
                            this.reloadConfig();
                            cmdsender.sendMessage(ChatColor.GOLD + "CursePrevention has been reloaded!");
                            }
                        }
                    if(cmdsender.hasPermission("curseprevention.filter.add")) { // If player has permission to add words to filter.
                        if(args[0].equalsIgnoreCase("add")) {
                            if(args[1] == null) {
                                cmdsender.sendMessage(ChatColor.GOLD + "You need to provide a word to filter.");
                                cmdsender.sendMessage(ChatColor.DARK_RED + "Correct Usage: /curseprevention add <word>");
                            } else {
                                List<String> filteredwords = getConfig().getStringList("censoredwords");
                                if(!filteredwords.contains(args[1])) {
                                    filteredwords.add(args[1]);
                                    getConfig().addDefault("censoredwords", getConfig().getStringList("censoredwords"));
                                    cmdsender.sendMessage(ChatColor.GOLD + "Word has been filtered!");
                                    this.saveConfig();
                                } else {
                                    cmdsender.sendMessage(ChatColor.GOLD + "Word was already filtered!");
                                }
                            }
                        }
                    }
                    }
                }
            }
    return true;
    }
        @EventHandler(priority = EventPriority.HIGH)
        public final void onPlayerChat(AsyncPlayerChatEvent event) {
            for(String word : event.getMessage().split(" ")) {
                if(getConfig().getStringList("censoredwords").contains(word)) {
                        if(!(event.getPlayer().hasPermission("curseprevention.bypass"))) { // If player has permission to bypass the censor.
                        event.setMessage(event.getMessage().replace(word, "****"));
                } else {
                    event.setMessage(event.getMessage().replace(event.getMessage(), event.getMessage()));
                        }
                    }
                }
            }
        }
    Any help? ;/

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  2. Code:java
    1. getConfig().addDefault("censoredwords", getConfig().getStringList("censoredwords"));

    What is this supposed to do?

    Try this instead:
    Code:java
    1. getConfig().set("censoredwords", filteredwords);
     
Thread Status:
Not open for further replies.

Share This Page