I want to block chat. This is my code: PHP: public function onChat(PlayerChatEvent $evt){ $evt->setCancelled(true); } } It blocks only a player to send message. What is the code to block full chat (Send/Receive)?
What about messages sent from commands? Kick messages? And other things? You want nothing? Code (discouraged to all servers): PHP: public function onPkSend(DataPacketSendEvent $evt){ if($evt->getPacket() instanceof MessagePacket){ $evt->setCancelled(); }}
In this way, all messages including SimpleAuth authenticate messages and etc are blocked. The player will receive no messages at all, including those you send by sendMessage().
I attempted to do this in my plugin iChat, but it doesn't do anything. PHP: /** * @param PlayerChatEvent $event * * @priority HIGHEST * @ignoreCancelled true */ public function onChat(PlayerChatEvent $event) { $this->checkData(); if(!isset($this->data["mute"][strtolower($event->getPlayer()->getName())])) { if($this->checkMessage($event->getMessage()) || ($event->getPlayer()->hasPermission("ichat") || $event->getPlayer()->hasPermission("ichat.*") || $event->getPlayer()->hasPermission("ichat.bypass"))) { if(!isset($this->data["chat"][strtolower($event->getPlayer()->getName())])) { $r = array(); foreach($this->getServer()->getOnlinePlayers() as $p) { if(!isset($this->data["chat"][strtolower($p->getName())])) { $r[] = $p; } } $event->setRecipients($r); } else { $event->getPlayer()->sendMessage("[iChat] You disabled your chat."); $event->setCancelled(); } } else { $event->getPlayer()->sendMessage("[iChat] Message blocked."); $event->setCancelled(); } } else { $event->getPlayer()->sendMessage("[iChat] You are muted."); $event->setCancelled(); } }