1. The forums will be archived and moved to a read only mode in about 2 weeks (mid march).

WarnPlayer Issues

Discussion in 'Development' started by NickteeChunky, Jul 20, 2019.

  1. NickteeChunky

    NickteeChunky Witch

    Messages:
    64
    GitHub:
    nickteechunky
    Code:
    [Server thread/CRITICAL]: TypeError: "Return value of WarnPlayer\Main::onCommand() must be of the type boolean, none returned" (EXCEPTION) in "plugins/WarnPlayer-patch-1/src/WarnPlayer/Main" at line 185
    Code:
        //public function onConfigGeneration(); //to-do add function for config generation onEnable() state.
       
        //public function onMessageGeneration(); //to-do add function for messages.yml generation onEnable() state.
       
        //public function generatePlayerData(Player $player): void{ to-do add a function for generating playerdata.
        public function onJoin(PlayerJoinEvent $event){
          $player = $event->getPlayer();
          $this->config = new Config($this->getDataFolder() . "config.yml", CONFIG::YAML, array());
           if($this->config->get("generate-player-data-on-join") === true){
           }
    if(!(file_exists($this->getDataFolder() . $this->config->get("player_data") . "/" . $player->getName() . ".txt"))) {
      $this->getLogger()->info(str_replace(["{player}"], [$player->getName()], $this->messages->get("generate-data-message")));
                  touch($this->getDataFolder() . $this->config->get("player_data") . "/" . $player->getName() . ".txt");
                  file_put_contents($this->getDataFolder() . $this->config->get("player_data") . "/" . $player->getName() . ".txt", 0);
                }
        }
    public function onPlayerBan(PlayerPreLoginEvent $event){
        $player = $event->getPlayer();
       $maxWarns = $this->config->get("max-warns");
        if($player->isBanned()){
             $player->close("", TF::colorize(str_replace(["{maxwarns}"], [$maxwarns], $this->messages->get("ban_message"))));
        }
    }
    /*
    public function BansDataBase(Config $config): void{ //To-Do implement public functions.
      $this->config->get($config);
    }*/
        public function onCommand(CommandSender $sender, Command $cmd, string $label, array $args): bool {
          if(strtolower($cmd->getName()) === "warn") {
            if(!$sender->hasPermission("playerwarn.warn")){
                  $sender->sendMessage(TF::colorize($this->messages->get("warns-no-permission")));
                  return true;
              }
            if(!(isset($args[0]))){
              $sender->sendMessage(TF::colorize($this->messages->get("no-arguments")));
              return true;
            } else {
              $sender_name = $sender->getName();
              $name = $args[0];
              $player = $this->getServer()->getPlayer($name);
              if($player === null) {
                $sender->sendMessage(TF::colorize(str_replace(["{player}"], [$name], $this->messages->get("player-not-found"))));
                return true;
              } else {
                unset($args[0]);
                $player_name = $player->getName();
                if(!(file_exists($this->getDataFolder() . $this->config->get("player_data") . "/" . $player_name . ".txt"))) {
                  touch($this->getDataFolder() . $this->config->get("player_data") . "/" . $player_name . ".txt");
                  file_put_contents($this->getDataFolder() . $this->config->get("player_data") . "/" . $player_name . ".txt", "0");
                }
    if($this->config->get("require-reason") === true){
                if(empty($args[1])){
    $sender->sendMessage(TF::colorize($this->messages->get("valid-reason")));
    return true;
    }
    }
    }
              $reason = implode(" ", $args);
                $file = file_get_contents($this->getDataFolder() . $this->config->get("player_data") . "/" . $player_name . ".txt");
                $maxWarns = $this->config->get("max-warns");
                if($file >= $maxWarns) {
                  $this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML, array());
                  $action = $this->config->get("action_after_three_warns");
                  if($action === "kick") {
                    if($this->config->get("enable-ops-status") === true){
                    if($player->isOP())
                        $sender->sendMessage(TF::colorize($this->messages->get("cannot-kick-ops")));
                      return true;
                    }
                  }
                    $maxwarns = $this->config->get("max-warns");
                    $action = $this->config->get("action_after_three_warns");
                    $player->kick(TF::colorize(str_replace(["{maxwarns}"], [$maxwarns], $this->messages->get("kick_message"))));
                    $sender->sendMessage(TF::colorize(str_replace(["{player}", "{maxwarns}"], [$player->getName(), $maxwarns], $this->messages->get("kick-sender-message"))));
                    return true;
                  } else if($this->config->get("action_after_three_warns") === "ban") {
                    if($this->config->get("enable-ops-status") === true){
                    if($player->isOP())
                        $sender->sendMessage(TF::colorize($this->messages->get("cannot-ban-ops")));
                      return true;
                    }
                   $banList = $sender->getServer()->getNameBans();
                    $maxwarns = $this->config->get("max-warns");
                   $banList->addBan($player_name, $reason, null, $sender->getName());
                    $player->kick(TF::colorize(str_replace(["{maxwarns}"], [$maxwarns], $this->messages->get("ban_message"))));
                    if(!(file_exists($this->getDataFolder() . $this->config->get("bans-data") . "/" . $player_name))){
                        touch($this->getDataFolder() . $this->config->get("bans-data") . "/" . $player_name . ".txt");
                        file_put_contents($this->getDataFolder() . $this->config->get("bans-data") . "/" . $player_name . ".txt", "Banned player: $player_name\nReason: $reason"); //to-do customize what goes in the bans database / file.
                    $sender->sendMessage(TF::colorize(str_replace(["{player}", "{maxwarns}"], [$player->getName(), $maxwarns], $this->messages->get("ban-sender-message"))));
                    return true;
                    }elseif($action === "ban-ip"){
                      $banList = $sender->getServer()->getIPBans();
                      $banlist->addBan($player->getAddress(), $reason, null, $sender->getName());
                      $player->kick(TF::colorize(str_replace(["{sender_name}", "{maxwarns}"], [$sender->getName(), $maxwarns], $this->messages->get("ban-ip-message"))));
                      if(!(file_exists($this->getDataFolder() . $this->config->get("bans-data") . "/" . $player_name))){
                        touch($this->getDataFolder() . $this->config->get("bans-data") . "/" . $player_name . ".txt");
                        file_put_contents($this->getDataFolder() . $this->config->get("bans-data") . "/" . $player_name . ".txt", "Banned player: $player_name\nBan type: $action\nReason: $reason");
                    }elseif($action === "message"){
                      $player->sendMessage(TF::colorize(str_replace(["{sender_name}", "{maxwarns}"], [$sender->getName(), $maxwarns], $this->messages->get("message-action-text"))));
                  } elseif($action === null){
                    $this->getLogger()->error($action . " in file config.yml is invalid, valid options: kick, ban, ban-ip, message. Disabling plugin.");
                    $this->getServer()->getPluginManager()->disablePlugin($this->getServer()->getPluginManager()->getPlugin("WarnPlayer"));
                    return true;
                  }
                } else {
                  $player->sendMessage("OOO");
                  $player->sendMessage(TF::colorize(str_replace(["{sender_name}", "{reason}"], [$sender_name, $reason], $this->messages->get("warned-message"))));
                  $file = file_get_contents($this->getDataFolder() . $this->config->get("player_data") . "/" . $player_name . ".txt");
                  file_put_contents($this->getDataFolder() . $this->config->get("player_data") . "/" . $player_name . ".txt", $file + 1);
                  $sender->sendMessage(TF::colorize(str_replace(["{player}"], [$player_name], $this->messages->get("added-warn-message"))));
                  if($this->config->get("enable-warnbroadcast-message") === true)
                    $this->getServer()->broadcastMessage(TF::colorize(str_replace(["{sender_name}", "{reason}"], [$sender_name, $reason], $this->messages->get("warn-broadcast-message"))));
                  return true;
                }
              }
            }
            }
          if(strtolower($cmd->getName()) === "warns") {
            if(!$sender->hasPermission("playerwarn.warns")){
                  $sender->sendMessage(TF::colorize($this->messages->get("warns-no-permission")));
                  return true;
              }
            if(!(isset($args[0]))){
                $sender->sendMessage(TF::colorize($this->messages->get("warns-usage")));
              return true;
            } else {
              $name = $args[0];
              $player = $this->getServer()->getPlayer($name);
              if($player === null){
                $sender->sendMessage(TF::colorize(str_replace(["{player}"], [$name], $this->messages->get("player-not-found"))));
                return true;
              } else {
                $player_name = $player->getName();
                if(!(file_exists($this->getDataFolder() . $this->config->get("player_data") . "/" . $player_name . ".txt"))) {
                  $sender->sendMessage(TF::colorize(str_replace(["{player}"], [$player_name], $this->messages->get("no-warns"))));
                  return true;
                } else {
                  $player_warns = file_get_contents($this->getDataFolder() . $this->config->get("player_data") . "/" . $player_name . ".txt");
                  $sender->sendMessage(TF::colorize(str_replace(["{player}", "{warns}"], [$player_name, $player_warns], $this->messages->get("player-warns"))));
                  return true;
                }
              }
            }
        return true;
      }
     }
    }
    
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.