Solved Chat Mute not working

Discussion in 'Plugin Development' started by VNGC, Apr 7, 2020.

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

    VNGC

    Hey, i tried to make a chat mute and clear.

    my clear does work perfect, but the mute doenst work. it shows me that its muted/unmuted, but it isnt muting. what am i doing wrong?


    Code:
    package command;
    
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.AsyncPlayerChatEvent;
    
    import utils.Data;
    
    public class Chat implements Listener, CommandExecutor {
    
        private boolean chatMuted = false;
    
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if (cmd.getName().equalsIgnoreCase("chat")) {
                if (args.length == 0) {
                    sender.sendMessage("[/chat mute]");
                    sender.sendMessage("[/chat clear]");
                } else if (args.length == 1) {
                    if (args[0].equalsIgnoreCase("mute")) {
                        if (getChatStatus() == false) {
                            setChatMuted(true);
                            sender.sendMessage(Data.Prefix + "Chat wurde gemutet! ");
                        } else {
                            setChatMuted(false);
                            sender.sendMessage(Data.Prefix + "Chat wurde entmutet!");
                        }
                    } else if (args[0].equalsIgnoreCase("clear")) {
                        for (int i = 0; i < 200; i++) {
                            sender.sendMessage("");
                        }
                    }
                }
    
                return true;
            }
    
            return false;
        }
    
        @EventHandler
        public void onChat(AsyncPlayerChatEvent event) {
            if (getChatStatus() == true) {
                event.setCancelled(true);
            }
        }
    
        public void setChatMuted(boolean value) {
            this.chatMuted = value;
        }
    
        public boolean getChatStatus() {
            return chatMuted;
        }
    
    }
     
  2. Offline

    CraftCreeper6

    @VNGC
    You can simplify your onChat method by using the return value of getChatStatus() directly in the event.setCancelled method.

    Did you register the events?
     
  3. Offline

    VNGC

    Code:
        getCommand("chat").setExecutor(new Chat());
    
            PluginManager pm = Bukkit.getPluginManager();
            pm.registerEvents(new ReplaceChat(), this);
            pm.registerEvents(new Chat(), this);
     
  4. Offline

    CraftCreeper6

    @VNGC
    Add a debug to check if it fires.
     
Thread Status:
Not open for further replies.

Share This Page