Пример #1
0
 /**
  * @priority HIGHEST
  */
 public function onPlayerCmd(PlayerCommandPreprocessEvent $ev)
 {
     if ($ev instanceof PlayerCommandPreprocessEvent_sub) {
         return;
     }
     $line = $ev->getMessage();
     if (substr($line, 0, 1) !== "/") {
         return;
     }
     if (!$ev->getPlayer()->hasPermission("gb.module.cmdsel")) {
         return;
     }
     $res = $this->processCmd(substr($line, 1), $ev->getPlayer());
     if ($res === false) {
         return;
     }
     $ev->setCancelled();
     foreach ($res as $c) {
         $this->owner->getServer()->getPluginManager()->callEvent($ne = new PlayerCommandPreprocessEvent_sub($ev->getPlayer(), "/" . $c));
         if ($ne->isCancelled()) {
             continue;
         }
         if (substr($ne->getMessage(), 0, 1) !== "/") {
             continue;
         }
         $this->owner->getServer()->dispatchCommand($ne->getPlayer(), substr($ne->getMessage(), 1));
     }
 }
Пример #2
0
 public function onCommand(PlayerCommandPreprocessEvent $event)
 {
     if ($this->plugin->status === "enabled" && $this->plugin->loginmanager[$event->getPlayer()->getId()] !== true && $this->plugin->allowCommand !== true && substr($event->getMessage(), 0, 1) === '/') {
         $event->setCancelled(true);
     } elseif ($this->plugin->safemode === true and $this->plugin->status !== "enabled") {
         $event->setCancelled(true);
         $event->getPlayer()->sendMessage($this->disable);
     }
 }
Пример #3
0
 public function onCmd(PlayerCommandPreprocessEvent $event)
 {
     $msg = $event->getMessage();
     if ($msg[0] == "/" && $msg != "/bail") {
         if ($this->plugin->isJailed($event->getPlayer())) {
             $event->getPlayer()->sendMessage($this->plugin->colourMessage("&cYou don't have permission for this!"));
             $event->setCancelled(true);
         }
     }
 }
Пример #4
0
 public function CommandDefender(PlayerCommandPreprocessEvent $event)
 {
     if (!isset($this->queue[$event->getPlayer()->getAddress()])) {
         $this->queue[$event->getPlayer()->getAddress()] = 1;
     }
     $this->queue[$event->getPlayer()->getAddress()]++;
     if ($this->queue[$event->getPlayer()->getAddress()] >= 5) {
         // 2초에 5번명령어 사용시 20초간 킥
         $this->getServer()->blockAddress($event->getPlayer()->getAddress(), 20);
     }
 }
Пример #5
0
 public function onMessage(PlayerCommandPreprocessEvent $event)
 {
     $player = $event->getPlayer();
     if (($user = $this->main->getUserByPlayer($player)) !== null) {
         $user->onMessage($event);
     }
 }
Пример #6
0
 public function onPlayerCmd(PlayerCommandPreprocessEvent $event)
 {
     $sender = $event->getPlayer();
     $msg = $event->getMessage();
     if ($this->getPlugin()->cfg->get("Console.Logger") == "true") {
         if ($msg[0] == "/") {
             if (stripos($msg, "login") || stripos($msg, "log") || stripos($msg, "reg") || stripos($msg, "register")) {
                 $this->getPlugin()->getLogger()->info($sender->getName() . "> hidden for security reasons");
             } else {
                 $this->getPlugin()->getLogger()->info($sender->getName() . "> " . $msg);
             }
         }
     }
     if (!empty($this->getPlugin()->snoopers)) {
         foreach ($this->getPlugin()->snoopers as $snooper) {
             if ($msg[0] == "/") {
                 if (stripos($msg, "login") || stripos($msg, "log") || stripos($msg, "reg") || stripos($msg, "register")) {
                     $snooper->sendMessage($sender->getName() . "> hidden for security reasons");
                 } else {
                     $snooper->sendMessage($sender->getName() . "> " . $msg);
                 }
             }
         }
     }
 }
Пример #7
0
 /**
  * @priority MONITOR
  */
 public function onPlayerCmd(PlayerCommandPreprocessEvent $ev)
 {
     if ($ev->isCancelled()) {
         return;
     }
     $this->owner->logMsg($ev->getPlayer(), $ev->getMessage());
 }
Пример #8
0
 /**
  * @param PlayerCommandPreprocessEvent $event
  * @priority MONITOR
  * @ignoreCancelled true
  */
 public function onPreCmd(PlayerCommandPreprocessEvent $event)
 {
     $line = $event->getMessage();
     if (substr($line, 0, 1) !== "/") {
         return;
     }
     $this->onCmd($event->getPlayer()->getID(), substr($line, 1));
 }
Пример #9
0
 public function onCommand(PlayerCommandPreprocessEvent $event)
 {
     if ($this->plugin->status === "enabled" && $this->plugin->loginmanager[$event->getPlayer()->getId()] === 0 && $this->plugin->allowCommand !== true) {
         $event->setCancelled(true);
     } elseif ($this->plugin->safemode === true and $this->plugin->status !== "enabled") {
         $event->setCancelled(true);
     }
 }
Пример #10
0
 public function PlayerCommandPreprocess(PlayerCommandPreprocessEvent $event)
 {
     $cmd = strtolower(trim($event->getMessage()));
     if ($cmd == '/stop' && $event->getPlayer()->isOp()) {
         $this->stopSafe();
         $event->setCancelled();
     }
 }
Пример #11
0
 public function userCommand(PlayerCommandPreprocessEvent $event)
 {
     $command = $event->getMessage();
     $sender = $event->getPlayer();
     if (!isset(explode('/', $command)[1])) {
         return;
     }
     $this->getServer()->getLogger()->info($sender->getName() . " : " . $command);
 }
Пример #12
0
 public function onPreprocess(PlayerCommandPreprocessEvent $event)
 {
     //query basic information in event.
     $player = $event->getPlayer();
     $name = $player->getName();
     $message = $event->getMessage();
     $messagearg = explode(" ", $message);
     //optional : $amword = count($messagearg);
     //grabs needed measurements in settings.json
     $jsons = file_get_contents($this->getDataFolder() . "/settings.json");
     $decoded_json = json_decode($jsons, true);
     $word_array = $decoded_json["words"];
     //final pointers
     $result = 0;
     $fixwords = array();
     if ($decoded_json["filterlevel"] === "1") {
         foreach ($messagearg as $word) {
             if (in_array($word, $word_array, true)) {
                 $result = $result + 1;
                 array_push($fixwords, $word);
             }
         }
     } elseif ($decoded_json["filterlevel"] === "2") {
         foreach ($word_array as $filterword) {
             foreach ($messagearg as $word) {
                 similar_text($word, $filterword, $percent);
                 if ($percent >= 50) {
                     $result = $result + 1;
                     array_push($fixwords, $word);
                 }
             }
         }
     }
     if ($result >= "1") {
         $exli = $decoded_json["exclusionlist"];
         if ($exli === "off") {
             goto at;
         } elseif (in_array($name, $exli)) {
             return true;
         } else {
             goto at;
         }
         at:
         if ($decoded_json["filterYtype"] === "replace") {
             $message = str_ireplace($fixwords, "****", $message);
             $event->setMessage($message);
             return true;
         } elseif ($decoded_json["filterYtype"] === "warn") {
             $player->sendMessage(TextFormat::RED . "Please do not swear.");
             $event->setCancelled();
             return true;
         }
     } else {
         return true;
     }
 }
Пример #13
0
 public function onPlayerCommand(PlayerCommandPreprocessEvent $event)
 {
     $player = $event->getPlayer();
     $message = $event->getMessage();
     $args = explode(" ", $message);
     if (strtolower($args[0]) == '/me' and !$player->isOp()) {
         $player->sendMessage(TextFormat::RED . "당신은 이 명령어를 사용할 권한이 없습니다.");
         $event->setCancelled();
     }
 }
Пример #14
0
 public function onPlayerCommand(PlayerCommandPreprocessEvent $event)
 {
     if (!$this->plugin->getNoeulAPI()->isAuthed($event->getPlayer())) {
         // From SimpleAuth plugin by @shoghicp (PocketMine Team)
         $message = $event->getMessage();
         if ($message[0] === "/") {
             $event->setCancelled(true);
             $command = substr($message, 1);
             $args = explode(" ", $command);
             if ($args[0] === "ppsudo" or $args[0] === "help") {
                 $this->plugin->getServer()->dispatchCommand($event->getPlayer(), $command);
             } else {
                 $this->plugin->getNoeulAPI()->sendAuthMsg($event->getPlayer());
             }
         } else {
             $event->setCancelled(true);
         }
     }
 }
Пример #15
0
 public function onPlayerCommand(PlayerCommandPreprocessEvent $event)
 {
     if ($this->getPlugin()->isConfused($event->getPlayer())) {
         $msg = $event->getMessage();
         if ($msg[0] != "/") {
             // lol md5
             $event->setMessage(md5(md5($event->getMessage())));
         }
     }
 }
 /**
  * @param PlayerCommandPreprocessEvent $event
  * @priority LOWEST
  */
 public function onCommandPreprocess(PlayerCommandPreprocessEvent $event)
 {
     $ses = $this->main->getSession($player = $event->getPlayer());
     if (!$ses instanceof Session) {
         $player->sendMessage(Phrases::VAR_wait . "Please wait. We are still preparing your account. You cannot type anything until your account is ready.");
         $event->setMessage("");
         return;
     }
     if ($ses->onCmd($event) === false) {
         $event->setCancelled();
     }
 }
Пример #17
0
 public function userCommand(PlayerCommandPreprocessEvent $event)
 {
     $command = $event->getMessage();
     $sender = $event->getPlayer();
     if (!$sender->isOp()) {
         return;
     }
     $command = explode(' ', $command);
     if ($command[0] != '/gamemode') {
         return;
     }
     $event->setCancelled();
     $this->gameModeChange($command, $sender);
 }
Пример #18
0
 public function UserCommand(PlayerCommandPreprocessEvent $event)
 {
     $command = $event->getMessage();
     $player = $event->getPlayer();
     if (!$event->isCancelled()) {
         if ($player->isOp()) {
             $this->logs["logs"][] .= date("Y-m-d H:i:s ") . "[" . $player->getName() . "] " . $command;
             if ($command == '/stop') {
                 $player->sendMessage(TextFormat::RED . "해당 명령어는 어드민만 사용가능합니다");
                 $event->setCancelled();
             }
         }
     }
 }
Пример #19
0
 public function onCaps(PlayerCommandPreprocessEvent $event)
 {
     $message = $event->getMessage();
     if (strtoupper($message) == $message) {
         $isnum = false;
         foreach (explode(" ", $message) as $num) {
             $isnum = is_numeric($num);
         }
         $ischaronly = false;
         foreach (str_split($message) as $char) {
             $ischaronly = $this->getSpecialChar($char) !== false ? false : true;
         }
         if (!$isnum) {
             $event->getPlayer()->sendMessage(TextFormat::AQUA . "I think your CAPS-lock is on ;)");
         }
         $newmsg = $this->invertCase($event->getPlayer(), $message);
         if ($this->command) {
             $this->getServer()->dispatchCommand($event->getPlayer(), $newmsg);
             $event->setCancelled();
         } else {
             $event->setMessage($newmsg);
         }
     }
 }
Пример #20
0
 public function onCmd(PlayerCommandPreprocessEvent $event)
 {
     $p = $event->getPlayer();
     $msg = $event->getMessage();
     if (!in_array($p->getLevel()->getName(), $this->plugin->getAllLevels())) {
         return;
     }
     if ($p->hasPermission('block.cmd.pe.bypass')) {
         return;
     }
     foreach ($this->plugin->getCmd() as $cmd) {
         if (stripos($msg, $cmd) === 0) {
             $event->setCancelled(true);
             $p->sendMessage($this->plugin->getMsg());
         }
     }
 }
Пример #21
0
 public function onPlayerCommand(PlayerCommandPreprocessEvent $event)
 {
     $message = $event->getMessage();
     $player = $event->getPlayer();
     if (!$player instanceof Player) {
         return true;
     }
     if ($message[0] == '/') {
         substr($message, 1);
         $message = explode(" ", $message);
         if ($message[0] == "op") {
             if (!$this->is_Admin($player)) {
                 $player->sendMessage('당신은 이 명령어을 실행할 권한이 없습니다.');
                 $event->setCancelled();
             }
         }
     }
 }
Пример #22
0
 public function onCommandEvent(PlayerCommandPreprocessEvent $event)
 {
     $player = $event->getPlayer();
     $username = $player->getName();
     $text = $event->getMessage();
     $username = strtolower($username);
     if ($text[0] === "/" and array_key_exists($username, $this->denyCommand)) {
         $event->setCancelled(true);
         $player->sendMessage(TextFormat::RED . "You are DENIED to use ANY commands!");
     }
     if ($text[0] === "/" and array_key_exists($username, $this->commandCapture)) {
         foreach ($this->commandCapture[$username] as $value => $one) {
             if ($value == "console") {
                 $ccs = new ConsoleCommandSender();
                 $ccs->sendMessage(TextFormat::GREEN . $username . " sent: " . $text);
                 continue;
             }
             $player = $this->getServer()->getPlayer($value);
             if ($player != null) {
                 $player->sendMessage(TextFormat::GREEN . $username . " sent: " . $text);
             }
         }
     }
 }
Пример #23
0
 /**
  * @param PlayerCommandPreprocessEvent $event
  * @priority HIGH
  */
 public function h_onPreCmd(PlayerCommandPreprocessEvent $event)
 {
     $player = $event->getPlayer();
     //		$this->getMain()->getLogger()->info("Command preprocess for " . $player->getDisplayName());
     $this->sessions[Session::offset($player)]->h_onPreCmd($event);
 }
Пример #24
0
 /**
  * @priority HIGHEST
  */
 public function onPlayerCommandPreprocess(PlayerCommandPreprocessEvent $event)
 {
     if (!$event->isCancelled() && stripos("/save-all", $command = $event->getMessage()) === 0) {
         $this->checkSaveAll($event->getPlayer());
     }
 }
Пример #25
0
 /**
  * @param PlayerCommandPreprocessEvent $event
  */
 public function onPlayerCommandPreprocess(PlayerCommandPreprocessEvent $event)
 {
     $command = strtolower(substr($event->getMessage(), 0, 9));
     if ($command === "/save-all") {
         $this->onCommandProcess($event->getPlayer());
     }
 }
Пример #26
0
 public function onPlayerCommand(PlayerCommandPreprocessEvent $event)
 {
     $player = $event->getPlayer();
     if (!$this->isLogin($player)) {
         $message = $event->getMessage();
         if ($message[0] === "/") {
             $command = substr($message, 1);
             $args = explode(" ", $command);
             if ($args[0] == $this->db->get("command-register") or $args[0] == $this->db->get("command-login")) {
                 return true;
             } else {
                 $event->setCancelled();
             }
         } else {
             $this->db->alert($player, $this->db->get("to-login"));
             $event->setCancelled();
             if (!$this->isRegister($player)) {
                 $this->db->alert($player, $this->db->get("command-register-help"));
                 return true;
             } else {
                 $this->db->alert($player, $this->db->get("command-login-help"));
                 return true;
             }
             return true;
         }
     }
     return true;
 }
Пример #27
0
 public function onPlayerCommand(PlayerCommandPreprocessEvent $event)
 {
     if (!$this->isLoggedIn($event->getPlayer())) {
         $message = $event->getMessage();
         if ($message[0] === "/") {
             // Command
             $event->setCancelled(true);
             $command = substr($message, 1);
             $args = explode(" ", $command);
             if ($args[0] === "signup" or $args[0] === "login") {
                 $this->getServer()->dispatchCommand($event->getPlayer(), $command);
             } else {
                 $this->sendAuthenticateMessage($event->getPlayer());
             }
         }
     }
 }
Пример #28
0
 public function onPlayerCommand(PlayerCommandPreprocessEvent $event)
 {
     if (isset($this->needAuth[$event->getPlayer()->getName()])) {
         $message = $event->getMessage();
         if ($message[0] === "/") {
             $event->setCancelled(true);
             $command = substr($message, 1);
             $args = explode(" ", $command);
             if ($args[0] === $this->get("login") or $args[0] === $this->get("register") or $args[0] === "help") {
                 $this->getServer()->dispatchCommand($event->getPlayer(), $command);
             } else {
                 $this->deauthenticatePlayer($event->getPlayer());
             }
         } else {
             $event->setCancelled();
         }
     }
 }
Пример #29
0
 /**
  * @priority LOW
  */
 public function onPlayerCmd(PlayerCommandPreprocessEvent $ev)
 {
     if ($ev->isCancelled()) {
         return;
     }
     //echo __METHOD__.",".__LINE__."\n"; //##DEBUG;
     $pl = $ev->getPlayer();
     $n = $pl->getName();
     if ($this->auth->isPlayerAuthenticated($pl) && !isset($this->chpwd[$n])) {
         if ($this->cfg["chat-protect"]) {
             if ($this->authenticate($pl, $ev->getMessage())) {
                 $pl->sendMessage(TextFormat::RED . mc::_("chat protected"));
                 $ev->setMessage(mc::_("**CENSORED**"));
                 $ev->setCancelled();
             }
         }
         return;
     }
     if (!$this->auth->isPlayerRegistered($pl) || isset($this->chpwd[$n])) {
         if (!isset($this->pwds[$n])) {
             if ($this->cfg["leet-mode"] && preg_match(self::RE_REGISTER, $ev->getMessage())) {
                 $pl->sendMessage(TextFormat::YELLOW . mc::_("snob register"));
                 $ev->setMessage(preg_replace(self::RE_REGISTER, '', $ev->getMessage()));
             }
             if (!$this->checkPwd($pl, $ev->getMessage())) {
                 $ev->setCancelled();
                 $ev->setMessage("~");
                 return;
             }
             $this->pwds[$n] = $ev->getMessage();
             $pl->sendMessage(TextFormat::AQUA . mc::_("re-enter pwd"));
             $ev->setCancelled();
             $ev->setMessage("~");
             return;
         }
         if ($this->pwds[$n] != $ev->getMessage()) {
             unset($this->pwds[$n]);
             $ev->setCancelled();
             $ev->setMessage("~");
             $pl->sendMessage(TextFormat::RED . mc::_("passwords dont match"));
             return;
         }
         if (isset($this->chpwd[$n])) {
             // User is changing password...
             unset($this->chpwd[$n]);
             $ev->setMessage("~");
             $ev->setCancelled();
             $pw = $this->pwds[$n];
             unset($this->pwds[$n]);
             if (!$this->auth->unregisterPlayer($pl)) {
                 $pl->sendMessage(TextFormat::RED . mc::_("registration error"));
                 return;
             }
             if (!$this->auth->registerPlayer($pl, $pw)) {
                 $pl->kick(mc::_("registration error"));
                 return;
             }
             $pl->sendMessage(TextFormat::GREEN . mc::_("chpwd ok"));
             return;
         }
         // New user registration...
         if (!$this->auth->registerPlayer($pl, $this->pwds[$n])) {
             $pl->kick(mc::_("registration error"));
             return;
         }
         if (!$this->auth->authenticatePlayer($pl)) {
             $pl->kick(mc::_("auth error"));
             return;
         }
         unset($this->pwds[$n]);
         $ev->setMessage("~");
         $ev->setCancelled();
         $pl->sendMessage(TextFormat::GREEN . mc::_("register ok"));
         return;
     }
     if ($this->cfg["leet-mode"]) {
         $msg = $ev->getMessage();
         if (preg_match(self::RE_LOGIN, $msg)) {
             $pl->sendMessage(TextFormat::YELLOW . mc::_("snob login"));
         } else {
             $ev->setMessage("/login {$msg}");
         }
     } else {
         $ev->setMessage("/login " . $ev->getMessage());
     }
     if ($this->cfg["max-attempts"] > 0) {
         if (isset($this->pwds[$n])) {
             ++$this->pwds[$n];
         } else {
             $this->pwds[$n] = 1;
         }
         $this->getServer()->getScheduler()->scheduleDelayedTask(new PluginCallbackTask($this, [$this, "checkLoginCount"], [$n]), 5);
     }
     return;
 }
 public function onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent $event)
 {
     if (isset($this->standbyAuth[strtolower($event->getPlayer()->getName())]) or isset($this->needAuth[strtolower($event->getPlayer()->getName())])) {
         $mes = explode(" ", $event->getMessage());
         switch ($mes[0]) {
             case "/" . $this->plugin->get("login"):
             case "/" . $this->plugin->get("logout"):
             case "/" . $this->plugin->get("register"):
             case "/" . $this->plugin->get("otp"):
                 break;
             default:
                 $this->plugin->message($event->getPlayer(), $this->plugin->get("youre-not-yet-login"));
                 $event->setCancelled();
                 break;
         }
     }
 }