public function onChat(PlayerChatEvent $event)
 {
     $event->setCancelled();
     $player = $event->getPlayer();
     $sub = $this->playerSubs[$player->getID()];
     $sub->onChatEvent($event->getMessage());
 }
예제 #2
1
 public function onChat(PlayerChatEvent $event)
 {
     $player = $event->getPlayer();
     $message = "<{$player->getName()}> : {$event->getMessage()}";
     if ($this->config["show-chat"] == false) {
         $event->setCancelled();
     }
     $pos = new Position($player->getX(), $player->getY() + 3, $player->getZ(), $player->getLevel());
     TAGSystem::getInstance()->addInstanceTag($pos, $message, $this->config["show-time"] * 20);
 }
예제 #3
0
 public function onChat(PlayerChatEvent $event)
 {
     if (isset($this->continue[strtolower($event->getPlayer()->getName())])) {
         $event->setCancelled();
         $this->message($event->getPlayer(), $this->get("please-read-the-sign"));
     }
 }
예제 #4
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if ($cmd->getName() != "as") {
         return false;
     }
     if (count($args) < 2) {
         $sender->sendMessage(mc::_("Must specified a player and a command"));
         return false;
     }
     $player = $this->owner->getServer()->getPlayer($n = array_shift($args));
     if (!$player) {
         $sender->sendMessage(mc::_("Player %1% not found", $n));
         return true;
     }
     if ($args[0] == 'chat' || $args[0] == 'say') {
         array_shift($args);
         $chat = implode(" ", $args);
         $this->owner->getServer()->getPluginManager()->callEvent($ev = new PlayerChatEvent($player, $chat));
         if (!$ev->isCancelled()) {
             if (MPMU::apiVersion("1.12.0")) {
                 $s = $this->owner->getServer();
                 $s->broadcastMessage($s->getLanguage()->translateString($ev->getFormat(), [$ev->getPlayer()->getDisplayName(), $ev->getMessage()]), $ev->getRecipients());
             } else {
                 $this->owner->getServer()->broadcastMessage(sprintf($ev->getFormat(), $ev->getPlayer()->getDisplayName(), $ev->getMessage()), $ev->getRecipients());
             }
         }
     } else {
         $cmdline = implode(' ', $args);
         $sender->sendMessage(mc::_("Running command as %1%", $n));
         $this->owner->getServer()->dispatchCommand($player, $cmdline);
     }
     return true;
 }
예제 #5
0
파일: Main.php 프로젝트: sJimin/PHPTEST
 public function onPlayerChatEvent(PlayerChatEvent $event)
 {
     if (isset(explode("바보", $event->getMessage())[1])) {
         $event->setcancelled();
         $event->getPlayer()->setBanned(true);
         $event->getPlayer()->kick("욕사용 금지!");
     }
 }
 public function onChat(PlayerChatEvent $event)
 {
     $this->plugin->event = $event;
     $extensions = $this->getAllExtensions();
     foreach ($extensions as $get) {
         if ($this->plugin->getServer()->getPluginManager()->getPlugin($get) && method_exists($this->plugin->getServer()->getPluginManager()->getPlugin($get), "onRegisterPrefix")) {
             $this->plugin->getServer()->getPluginManager()->getPlugin($get)->onRegisterPrefix();
         }
     }
     // ===========
     //	Format
     // ===========
     $this->plugin->replaceTag("{WORLD}", $event->getPlayer()->getLevel()->getName());
     //Level Tag
     $this->plugin->replaceTag("{PLAYER}", $event->getPlayer()->getName());
     //Player Tag
     $this->plugin->replaceTag("{PREFIX}", $this->plugin->getConfig()->get("prefix"));
     //Prefix Tag
     $this->plugin->replaceTag("{SUFFIX}", $this->plugin->getConfig()->get("suffix"));
     //Suffix Tag
     $this->plugin->replaceTag("{MESSAGE}", $event->getMessage());
     //Message Tag
     //Custom tags
     $tags = new Config($this->plugin->getDataFolder() . "tags.yml", Config::YAML);
     foreach ($tags->getAll() as $tag => $value) {
         $this->plugin->replaceTag("{" . strtoupper($tag) . "}", $value);
     }
     $event->setFormat($this->getFormattedMessage($this->plugin->getConfig()->get("chat-format")));
     // ===========
     //	Player Mute
     // ===========
     $mhut = $event->getRecipients();
     for ($lol = 0; $i < count($mhut); $lol++) {
         if (isset($this->leave[$mhut[$lol]->getName()])) {
             unset($mhut[$lol]);
         }
     }
     $event->setRecipients($mhut);
     $allowChat = $this->plugin->getConfig()->get("disablechat");
     if ($allowChat) {
         $event->setCancelled(true);
         return;
     }
     if (!$allowChat || $allowChat == null) {
         $player = $event->getPlayer();
         $perm = "chatmute";
         if ($player->isPermissionSet($perm)) {
             $event->setCancelled(true);
             return;
         }
         $format = $this->getFormattedMessage($player, $event->getMessage());
         $config_node = $this->plugin->getConfig()->get("enable-formatter");
         if (isset($config_node) and $config_node === true) {
             $event->setFormat($format);
         }
         return;
     }
 }
예제 #7
0
 public function onChat(PlayerChatEvent $event)
 {
     if (!$event->getPlayer()->hasPermission("disablechat.chat")) {
         if ($this->disableChat) {
             $event->setCancelled(true);
             $event->getPlayer()->sendMessage(TF::YELLOW . "The Chat Is Disabled.");
         }
     }
 }
예제 #8
0
 public function onChat(PlayerChatEvent $event)
 {
     $message = $event->getMessage();
     if ($this->plugin->status === "enabled" && $this->plugin->loginmanager[$event->getPlayer()->getId()] === 0 && $this->plugin->chatprotection[$event->getPlayer()->getId()] === $this->plugin->proccessPassword($message, 1)) {
         $event->setCancelled(true);
         //Sharing is caring, but don't share passwords!
     } elseif ($this->plugin->safemode === true and $this->plugin->status !== "enabled") {
         $event->setCancelled(true);
     }
 }
예제 #9
0
 public function onChat(PlayerChatEvent $event)
 {
     $message = $event->getMessage();
     if ($this->plugin->status === "enabled" and $this->plugin->loginmanager[$event->getPlayer()->getId()] !== 1) {
         if ($this->plugin->provider === "yml") {
             if ($this->plugin->loginmanager[$event->getPlayer()->getId()] === 0) {
                 $event->getPlayer()->sendMessage("Thanks! Please re-type your wanted password in chat.");
                 $this->plugin->loginmanager[$event->getPlayer()->getId()] = $message;
             } elseif ($this->plugin->loginmanager[$event->getPlayer()->getId()] === $message) {
                 $this->proccessPassword($message, 0, $event->getPlayer());
                 $event->getPlayer()->sendMessage("You are now registered.");
                 unset($this->plugin->proccessmanager[$event->getPlayer()->getId()]);
             }
         } elseif ($this->owner->provider === "mysql") {
             $event->getPlayer()->sendMessage("> Connecting to MySQL server..Please wait.");
             //Manage login/register for provider.
         }
     } else {
         $ecr = $this->proccessPassword($event->getMessage(), 1);
         if ($myuser->get("password") === $ecr) {
             $event->getPlayer()->sendMessage("You are now logged in.");
             $name = $event->getPlayer()->getName();
             $p->sendTip("Welcome, {$name} to the server!");
         } else {
             $event->getPlayer()->sendMessage("Login failed.");
         }
     }
 }
예제 #10
0
 public function factionChat(PlayerChatEvent $PCE)
 {
     $faction = $this->plugin->getSession($PCE->getPlayer())->getFaction();
     if ($faction == null) {
         $PCE->setFormat($PCE->getPlayer()->getName() . ": " . $PCE->getMessage());
     } else {
         $PCE->setFormat("[" . $faction->getName() . "] " . $PCE->getPlayer()->getName() . ": " . $PCE->getMessage());
     }
     return true;
     $player = strtolower($PCE->getPlayer()->getName());
 }
예제 #11
0
 public function onChat(PlayerChatEvent $ev)
 {
     $p = $ev->getPlayer();
     $badwords = array("f**k", "pussy", "bitch", "n***a", "c**t", "w***e", "asshole", "bitch n***a", "dick", "pene", "penis", "c**k");
     $msg = explode(" ", $ev->getMessage());
     foreach ($msg as $word) {
         foreach ($badwords as $m) {
             if (strtolower($word) === $m) {
                 $ev->setCancelled();
                 $p->sendMessage("You can't say that youngster!");
             }
         }
     }
     foreach ($msg as $word) {
         $word = "op";
         $search = strpos($msg, $word);
         if ($search === false) {
             return false;
         } else {
             //  $ev->setCancelled();
             $ev->setMessage(str_replace("op", "noob"));
         }
     }
     /* muting chat if($this->isActive[$p->getName()]{
            $p->sendMessage($ev->getMessage(null));
            
        } */
 }
 public function onChat(PlayerChatEvent $event)
 {
     $cfg = $this->getConfig()->getAll();
     $p = $event->getPlayer();
     $prefix = $cfg["prefix"];
     $type = $cfg["type"];
     $m = $cfg["message"];
     $m = str_replace("{player}", $p->getName(), $m);
     $msg = $event->getMessage();
     $domain = $this->getDomain();
     foreach ($domain as $d) {
         if (preg_match("/^{$d}/i", $msg) || stripos($msg, $d) == true) {
             switch ($type) {
                 case "block":
                     $p->sendMessage(TF::YELLOW . $prefix . TF::RED . " " . $m);
                     $event->setCancelled(true);
                     break;
                 case "broadcast":
                     $this->getServer()->broadcastMessage(TF::YELLOW . $prefix . TF::RED . " " . $m);
                     $event->setCancelled(true);
                     break;
             }
         }
     }
 }
예제 #13
0
 public function onChat(PlayerChatEvent $event)
 {
     $message = $event->getMessage();
     if ($this->plugin->loginmanager[$event->getPlayer()->getId()] !== true) {
         $event->setCancelled(true);
         //Don't allow chat when not authenticated.
     }
     if ($this->plugin->status === "enabled" && $this->plugin->loginmanager[$event->getPlayer()->getId()] === true && $this->plugin->chatprotection[$event->getPlayer()->getId()] === md5($message) && $this->plugin->passBlock === true) {
         $event->setCancelled(true);
         //Sharing is caring, but don't share passwords!
         $event->getPlayer()->sendMessage($this->plugin->prefix . " " . $this->plugin->getConfig()->get("sharing"));
     } elseif ($this->plugin->safemode === true and $this->plugin->status !== "enabled") {
         $event->setCancelled(true);
         $event->getPlayer()->sendMessage($this->disable);
     }
 }
예제 #14
0
 public function onChat(PlayerChatEvent $event)
 {
     if ($event->getPlayer() instanceof DummyPlayer) {
         $event->setCancelled();
         $this->processMessage($event->getMessage());
     }
 }
예제 #15
0
 /**
  * @param CommandSender $sender
  * @param string $alias
  * @param array $args
  * @return bool
  */
 public function execute(CommandSender $sender, $alias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return false;
     }
     if (count($args) < 1) {
         $this->sendUsage($sender, $alias);
         return false;
     }
     if (!($player = $this->getAPI()->getPlayer(array_shift($args)))) {
         $sender->sendMessage(TextFormat::RED . "[Error] Player not found");
         return false;
     } elseif ($player->hasPermission("essentials.sudo.exempt")) {
         $sender->sendMessage(TextFormat::RED . "[Error] " . $player->getName() . " cannot be sudo'ed");
         return false;
     }
     $v = implode(" ", $args);
     if (substr($v, 0, 2) === "c:") {
         $sender->sendMessage(TextFormat::GREEN . "Sending message as " . $player->getDisplayName());
         $this->getAPI()->getServer()->getPluginManager()->callEvent($ev = new PlayerChatEvent($player, substr($v, 2)));
         if (!$ev->isCancelled()) {
             $this->getAPI()->getServer()->broadcastMessage(\sprintf($ev->getFormat(), $ev->getPlayer()->getDisplayName(), $ev->getMessage()), $ev->getRecipients());
         }
     } else {
         $sender->sendMessage(TextFormat::AQUA . "Command ran as " . $player->getDisplayName());
         $this->getAPI()->getServer()->dispatchCommand($player, $v);
     }
     return true;
 }
예제 #16
0
 public function onPlayerChat(PlayerChatEvent $event)
 {
     $chat = $this->chat;
     $p = $event->getPlayer();
     $n = $p->getName();
     if (!isset($chat[$n])) {
         $chat[$n] = true;
     }
     if (!$chat[$n]) {
         $p->sendMessage("[ChatSwitch] " . ($this->isKorean() ? "당신은 채팅을 받지않습니다." : "You are not receive the chat"));
         $event->setCancelled();
         return;
     }
     $recipients = $event->getRecipients();
     foreach ($recipients as $k => $v) {
         $n = $v->getName();
         if (!isset($chat[$n])) {
             $chat[$n] = true;
         }
         if (!$chat[$n]) {
             unset($recipients[$k]);
         }
     }
     if ($this->chat !== $chat) {
         $this->chat = $chat;
         $this->saveYml();
     }
     $event->setRecipients($recipients);
 }
예제 #17
0
 /**
  * @priority high
  */
 public function onChat(PlayerChatEvent $ev)
 {
     $id = sprintf("%02x", $this->last_id);
     $this->last_chat[$this->last_id] = $ev->getPlayer()->getDisplayName() . ($hooked = ": {" . $id . "} " . $ev->getMessage());
     ++$this->last_id > 255 ? $this->last_id -= 256 : false;
     $ev->setMessage($hooked);
 }
예제 #18
0
 /**
  * @param PlayerChatEvent $event
  * @priority HIGH
  */
 public function onPlayerChat(PlayerChatEvent $event)
 {
     $player = $event->getPlayer();
     $message = $event->getMessage();
     $levelName = $this->plugin->getConfig()->get("enable-multiworld-chat") ? $player->getLevel()->getName() : null;
     $chatFormat = $this->plugin->getChatFormat($player, $message, $levelName);
     $event->setFormat($chatFormat);
 }
예제 #19
0
 public function onChat(PlayerChatEvent $event)
 {
     if (!isset($this->configData[$event->getPlayer()->getName()])) {
         return;
     }
     $this->getServer()->broadcastMessage(TextFormat::LIGHT_PURPLE . $this->configData["default-prefix"] . " " . $event->getMessage());
     $event->setCancelled();
 }
예제 #20
0
 public function onPlayerChat(PlayerChatEvent $event)
 {
     $player = $event->getPlayer();
     $format = $this->plugin->getFormattedMessage($player, $event->getMessage());
     $config_node = $this->plugin->getConfiguration()->isFormatterEnabled();
     if (isset($config_node) and $config_node === true) {
         $event->setFormat($format);
     }
 }
예제 #21
0
 public function onPlayerChat(PlayerChatEvent $event)
 {
     if (isset($this->waitingAuthentication[$event->getPlayer()->getName()])) {
         if (strlen($event->getMessage()) === 14) {
             $player = $event->getPlayer();
             $event->getPlayer()->sendPopup(TextFormat::GREEN . "Authenticating with bridge token...");
             $this->pendingAuthentication[$event->getPlayer()->getName()] = $event->getPlayer();
             unset($this->waitingAuthentication[$event->getPlayer()->getName()]);
             $task = new AuthenticateTask($this->getConfig()->get('access_token'), $this->getConfig()->get('server_ip'), $this->getConfig()->get('server_port'), $event->getPlayer()->getName(), $event->getMessage());
             $this->getServer()->getScheduler()->scheduleAsyncTask($task);
         } else {
             $event->getPlayer()->sendMessage(TextFormat::RED . "Your bridge token is supposed to be a fourteen character string." . TextFormat::WHITE . "\n" . TextFormat::ITALIC . "- To login enter your bridge token listed at " . TextFormat::GREEN . "epicmc.us/account" . TextFormat::WHITE . ".");
         }
         $event->setCancelled();
     } elseif (isset($this->pendingAuthentication[$event->getPlayer()->getName()])) {
         $event->getPlayer()->sendPopup(TextFormat::RED . "Unable to authenticate at this time.");
         $event->setCancelled();
     }
 }
예제 #22
0
 public function onPlayerChatEvent(PlayerChatEvent $event)
 {
     $player = $event->getPlayer();
     $username = $player->getName();
     $username = strtolower($username);
     if (array_key_exists($username, $this->chatBlock)) {
         $event->setCancelled(true);
         $player->sendMessage(TextFormat::RED . "You are DENIED to use the chat!");
     }
 }
예제 #23
0
 public function onChat(PlayerChatEvent $event)
 {
     if (in_array($event->getPlayer()->getName(), $this->makeup)) {
         $result = ServerAuth::getAPI()->registerPlayer($event->getPlayer(), $event->getMessage());
     }
     if (in_array($event->getPlayer->getName(), $this->emailreg["players"])) {
         if (!strstr($event->getMessage(), "@")) {
             $sender->sendMessage("That is not a valid email address. Please try again.");
             $event->setCancelled();
             return true;
         } else {
             $sender->sendMessage("Thank you. You may now login.");
             foreach ($this->getConfig()->get("emailauthcontent") as $strmsg) {
                 $finalmsg = "";
                 $finalmsg = $finalmsg . $strmsg . \n;
             }
             $finalmsg = str_replace("{player}", $event->getPlayer()->getName(), $finalmsg);
             $rs = mail($event->getMessage(), "Registration", $finalmsg);
             if (!$rs) {
                 $this->getLogger()->warning("Registration email sending to " . $event->getMessage() . " failed.");
             }
             $event->setCancelled();
             return true;
         }
     }
     if (!ServerAuth::getAPI()->isPlayerAuthenticated($event->getPlayer())) {
         if ($this->getConfig()->get("chatauthenticate") === "on") {
             $result = ServerAuth::getAPI()->authenticatePlayer($event->getPlayer(), $event->getMessage());
             if ($result === ServerAuth::SUCCESS) {
                 $event->getPlayer()->sendMessage(TextFormat::GREEN . "You have been authenticated!");
             } elseif ($result === ServerAuth::ERR_WRONG_PASSWORD) {
                 $event->getPlayer()->sendMessage(TextFormat::RED . "Wrong password. Try again.");
             } elseif ($result === ServerAuth::ERR_GENERIC) {
                 $event->getPlayer()->sendMessage("Something went wrong. Please try again.");
             }
             $event->setCancelled();
         }
     } else {
         return true;
     }
 }
예제 #24
0
 /**
  * @param PlayerChatEvent $event
  */
 public function onChat(PlayerChatEvent $event)
 {
     if ($this->getServer()->getPluginManager()->getPlugin("SimpleAuth")) {
         if (!$this->simpleauth->isPlayerAuthenticated($event->getPlayer())) {
             return false;
         }
     }
     $player = $event->getPlayer();
     $message = $event->getMessage();
     $strlen = strlen($message);
     $asciiA = ord("A");
     $asciiZ = ord("Z");
     $count = 0;
     for ($i = 0; $i < $strlen; $i++) {
         $char = $message[$i];
         $ascii = ord($char);
         if ($asciiA <= $ascii and $ascii <= $asciiZ) {
             $count++;
         }
     }
     if (!$player->hasPermission("capslimit.exception")) {
         if ($count > $this->getMaxCaps() and $this->getConfig()->get("mode") == "block") {
             $event->setCancelled(true);
             $player->sendMessage($this->getPrefix() . TextFormat::RED . "You used too much caps!");
         } elseif ($count > $this->getMaxCaps() and $this->getConfig()->get("mode") === "lowercase") {
             $event->setMessage(strtolower($message));
         } elseif ($count > $this->getMaxCaps() and $this->getConfig()->get("mode") === "kick") {
             $event->setCancelled(true);
             $player->kick("You have been kicked for overused caps!");
         }
         if ($count > $this->getMaxCaps() and $this->getConfig()->getNested("broadcast.enable") === true) {
             foreach ($this->getServer()->getOnlinePlayers() as $p) {
                 $subject = $this->getConfig()->getNested("broadcast.message");
                 $p->sendMessage($this->getPrefix() . TextFormat::RED . str_replace("{PLAYER}", $player->getName(), $subject));
             }
         } else {
             return false;
         }
     }
 }
 public function onPlayerChat(PlayerChatEvent $event)
 {
     $badwordlist = $this->getConfig()->get("badwords");
     $blockmessage = $this->getConfig()->get("blockmessage");
     $message = $event->getMessage();
     $player = $event->getPlayer();
     $list = explode(',', $badwordlist);
     if ($this->contains($message, $list)) {
         // Detected bad word so block it and notify user
         $event->setCancelled(true);
         $player->sendMessage($blockmessage);
     }
 }
예제 #26
0
 public function onPlayerChat(PlayerChatEvent $event)
 {
     $recipients = $event->getRecipients();
     $p = $event->getPlayer();
     foreach ($recipients as $k => $v) {
         if ($v instanceof Player && !$v->hasPermission("debe.localchat.hear")) {
             if ($p->getLevel() !== $v->getLevel() || $p->distance($v) > $this->distanceChat->get("Local")) {
                 unset($recipients[$k]);
             }
         }
     }
     $event->setRecipients($recipients);
 }
 public function onChat(PlayerChatEvent $event)
 {
     $player = $event->getPlayer();
     if ($this->owner->isInFaction($player)) {
         $faction = $this->owner->getPlayerFaction($player);
         $rank = $faction->getPlayerRank($player);
         $format = TextFormat::DARK_GRAY . '[' . TextFormat::DARK_RED . $faction . TextFormat::DARK_GRAY . ']' . TextFormat::DARK_GRAY . '[' . TextFormat::DARK_RED . $rank . TextFormat::DARK_GRAY . ']' . TextFormat::WHITE . ' %s > %s';
         # Configurable
         $event->setFormat($format);
     } else {
         echo '\\nNot in faction';
     }
 }
 public function onChat(PlayerChatEvent $event)
 {
     $player = $event->getPlayer();
     if ($player instanceof Player) {
         if (!$event->isCancelled()) {
             $user = $player->getName();
             $message = $event->getMessage();
             $chat = Utils::getURL("URL...");
             if ($chat === 1) {
                 $event->setCancelled(true);
             }
             //$event->setCancelled();
         }
     }
 }
예제 #29
-1
 /**
  * Chat a message as a given player
  *
  * @param Player|CommandSender $sender - Entity to impersonate
  * @param str[]|str $msg - messages to send
  */
 public static function chat($sender, $msgs)
 {
     if (!is_array($msgs)) {
         $msgs = [$msg];
     }
     foreach ($msgs as $msg) {
         $sender->getServer()->getPluginManager()->callEvent($ev = new PlayerChatEvent($sender, $msg));
         if ($ev->isCancelled()) {
             continue;
         }
         if (MPMU::apiVersion("1.12.0")) {
             $s = $sender->getServer();
             $s->broadcastMessage($s->getLanguage()->translateString($ev->getFormat(), [$ev->getPlayer()->getDisplayName(), $ev->getMessage()]), $ev->getRecipients());
         } else {
             $sender->getServer()->broadcastMessage(sprintf($ev->getFormat(), $ev->getPlayer()->getDisplayName(), $ev->getMessage()), $ev->getRecipients());
         }
     }
 }
예제 #30
-2
 public function onChat(PlayerChatEvent $ev)
 {
     //echo __METHOD__.",".__LINE__."\n";//##DEBUG
     if ($ev->isCancelled()) {
         return;
     }
     $p = $ev->getPlayer();
     if (isset($this->mutes[strtolower($p->getName())])) {
         $p->sendMessage(mc::_("You have been muted!"));
         $ev->setCancelled();
     }
 }