Guest User

Untitled

a guest
Jan 27th, 2019
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 25.02 KB | None | 0 0
  1. <?php
  2.  
  3. namespace oremix\flayzer\auth;
  4.  
  5. class main extends \pocketmine\plugin\PluginBase implements \pocketmine\event\Listener {
  6.  
  7.     public $session;
  8.  
  9.     function onEnable(){
  10.         $this->getServer()->getPluginManager()->registerEvents($this, $this);
  11.  
  12.         $this->config = new \pocketmine\utils\Config($this->getDataFolder() .'config.yml', \pocketmine\utils\Config::YAML);
  13.  
  14.         $this->password = new \pocketmine\utils\Config($this->getDataFolder() .'/players/password.yml', \pocketmine\utils\Config::YAML);
  15.         $this->client = new \pocketmine\utils\Config($this->getDataFolder() .'/players/client.yml', \pocketmine\utils\Config::YAML);
  16.         $this->ipadress = new \pocketmine\utils\Config($this->getDataFolder() .'/players/ipadress.yml', \pocketmine\utils\Config::YAML);
  17.         $this->uuid = new \pocketmine\utils\Config($this->getDataFolder() .'/players/uuid.yml', \pocketmine\utils\Config::YAML);
  18.  
  19.         $this->addtexttop = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 64.5, 247), '', '');
  20.         $this->addtexttop1 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 64, 247), '', '');
  21.         $this->addtexttop2 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 63.5, 247), '', '');
  22.         $this->addtexttop3 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 63, 247), '', '');
  23.         $this->addtexttop4 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 62.5, 247), '', '');
  24.         $this->addtexttop5 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 62, 247), '', '');
  25.         $this->addtexttop6 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 61.5, 247), '', '');
  26.         $this->addtexttop7 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 61, 247), '', '');
  27.         $this->addtexttop8 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 60.5, 247), '', '');
  28.         $this->addtexttop9 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 60, 247), '', '');
  29.         $this->addtexttop10 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 59.5, 247), '', '');
  30.         $this->place = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 59, 247), '', '');
  31.         $this->countjoinadd = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(308.5, 58.5, 247), '', '');
  32.         $this->countjoinadd1 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 58.5, 250), '', '');
  33.  
  34.         $this->addtexttop11 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 64.5, 250), '', '');
  35.  
  36.         $this->addtexttop111 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 64, 250), '', '');
  37.         $this->addtexttop21 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 63.5, 250), '', '');
  38.         $this->addtexttop31 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 63, 250), '', '');
  39.         $this->addtexttop41 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 62.5, 250), '', '');
  40.         $this->addtexttop51 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 62, 250), '', '');
  41.         $this->addtexttop61 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 61.5, 250), '', '');
  42.         $this->addtexttop71 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 61, 250), '', '');
  43.         $this->addtexttop81 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 60.5, 250), '', '');
  44.         $this->addtexttop91 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 60, 250), '', '');
  45.         $this->addtexttop101 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 59.5, 250), '', '');
  46.         $this->place1 = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 59, 250), '', '');
  47.         $this->season = new \pocketmine\level\particle\FloatingTextParticle(new \pocketmine\math\Vector3(293.5, 58, 250), '', '');
  48.     }
  49.  
  50.     function onJoin(\pocketmine\event\player\PlayerJoinEvent $event){
  51.         $player = $event->getPlayer();
  52.  
  53.         $username = strtolower($player->getName());
  54.         $client = $player->getClientId();
  55.         $ip = $player->getAddress();
  56.         $uuid = strtolower($player->getUniqueId());
  57.  
  58.         if(!$this->password->exists($username) && !$this->client->exists($username) && !$this->ipadress->exists($username) && !$this->uuid->exists($username)){
  59.             $register = $this->config->get('message_register');
  60.             $player->sendMessage(str_replace('{PLAYER}', $player->getName(), $register));
  61.  
  62.             $player->setImmobile(true);
  63.             $this->setSession($player, true);
  64.  
  65.         } else {
  66.             if($this->client->get($username) == $client && $this->ipadress->get($username) == $ip){
  67.                 $login = $this->config->get('message_login');
  68.                 $player->sendMessage(str_replace('{PLAYER}', $player->getName(), $login));
  69.  
  70.                 $player->setImmobile(false);
  71.                 $this->setSession($player, false);
  72.             } else {
  73.                 $no_login = $this->config->get('message_no_login');
  74.                 $player->sendMessage($no_login);
  75.  
  76.                 $player->setImmobile(true);
  77.                 $this->setSession($player, true);
  78.             }
  79.         }
  80. $dirr = $this->getServer()->getDataPath();
  81.         $dir = scandir("/home/data/");
  82.         $all = [];
  83.  
  84.         foreach($dir as $pidr){
  85.             if($pidr == ".." || $pidr == ".") continue;
  86.             $all[] = substr($pidr, 0, -4);
  87.         }
  88.  
  89.         $p = [];
  90.  
  91.         foreach($all as $player){
  92.             $nick = strtolower($player);
  93.             $wins = (new \pocketmine\utils\Config("/home/data/{$nick}.yml", \pocketmine\utils\Config::YAML))->get("wins");
  94.             $p[$nick] = $wins;
  95.         }
  96.  
  97.         arsort($p);
  98.  
  99.         $top1 = array_keys($p)[0];
  100.         $top2 = array_keys($p)[1];
  101.         $top3 = array_keys($p)[2];
  102.         $top4 = array_keys($p)[3];
  103.         $top5 = array_keys($p)[4];
  104.         $top6 = array_keys($p)[5];
  105.         $top7 = array_keys($p)[6];
  106.         $top8 = array_keys($p)[7];
  107.         $top9 = array_keys($p)[8];
  108.         $top10 = array_keys($p)[9];
  109.  
  110.         $n = array_search(strtolower($event->getPlayer()->getName()), array_keys($p));
  111.         $topcountplayerjoin = $n + 1;
  112.  
  113.         $this->addtop1 = new \pocketmine\utils\Config('/home/data/'. $top1 .'.yml', \pocketmine\utils\Config::YAML);
  114.         $this->addtop2 = new \pocketmine\utils\Config('/home/data/'. $top2 .'.yml', \pocketmine\utils\Config::YAML);
  115.         $this->addtop3 = new \pocketmine\utils\Config('/home/data/'. $top3 .'.yml', \pocketmine\utils\Config::YAML);
  116.         $this->addtop4 = new \pocketmine\utils\Config('/home/data/'. $top4 .'.yml', \pocketmine\utils\Config::YAML);
  117.         $this->addtop5 = new \pocketmine\utils\Config('/home/data/'. $top5 .'.yml', \pocketmine\utils\Config::YAML);
  118.         $this->addtop6 = new \pocketmine\utils\Config('/home/data/'. $top6 .'.yml', \pocketmine\utils\Config::YAML);
  119.         $this->addtop7 = new \pocketmine\utils\Config('/home/data/'. $top7 .'.yml', \pocketmine\utils\Config::YAML);
  120.         $this->addtop8 = new \pocketmine\utils\Config('/home/data/'. $top8 .'.yml', \pocketmine\utils\Config::YAML);
  121.         $this->addtop9 = new \pocketmine\utils\Config('/home/data/'. $top9 .'.yml', \pocketmine\utils\Config::YAML);
  122.         $this->addtop10 = new \pocketmine\utils\Config('/home/data/'. $top10 .'.yml', \pocketmine\utils\Config::YAML);
  123.         $this->countjoinplayer = new \pocketmine\utils\Config('/home/data/'. strtolower($event->getPlayer()->getName()) .'.yml', \pocketmine\utils\Config::YAML);
  124.  
  125.         // addtop
  126.         $this->addtexttop->setTitle('§bЗа все время Побед');
  127.         //$this->addtexttop->setText('');
  128.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop, [$event->getPlayer()]);
  129.  
  130.         // top1
  131.         $this->addtexttop1->setTitle('§e1. §7'. $top1 .'§7 -§e '. $this->addtop1->get("wins") .'');
  132.         //$this->addtexttop1->setText('');
  133.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop1, [$event->getPlayer()]);
  134.  
  135.         // top2
  136.         $this->addtexttop2->setTitle('§e2. §7'. $top2 .'§7 -§e '. $this->addtop2->get("wins") .'');
  137.         //$this->addtexttop2->setText('');
  138.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop2, [$event->getPlayer()]);
  139.  
  140.         // top3
  141.         $this->addtexttop3->setTitle('§e3. §7'. $top3 .'§7 -§e '. $this->addtop3->get("wins") .'');
  142.         //$this->addtexttop3->setText('');
  143.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop3, [$event->getPlayer()]);
  144.  
  145.         // top4
  146.         $this->addtexttop4->setTitle('§e4. §7'. $top4 .'§7 -§e '. $this->addtop4->get("wins") .'');
  147.         //$this->addtexttop4->setText('');
  148.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop4, [$event->getPlayer()]);
  149.  
  150.         // top5
  151.         $this->addtexttop5->setTitle('§e5. §7'. $top5 .'§7 -§e '. $this->addtop5->get("wins") .'');
  152.         //$this->addtexttop5->setText('');
  153.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop5, [$event->getPlayer()]);
  154.  
  155.         // top6
  156.         $this->addtexttop6->setTitle('§e6. §7'. $top6 .'§7 -§e '. $this->addtop6->get("wins") .'');
  157.         //$this->addtexttop6->setText('');
  158.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop6, [$event->getPlayer()]);
  159.  
  160.         // top7
  161.         $this->addtexttop7->setTitle('§e7. §7'. $top7 .'§7 -§e '. $this->addtop7->get("wins") .'');
  162.         //$this->addtexttop7->setText('');
  163.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop7, [$event->getPlayer()]);
  164.  
  165.         // top8
  166.         $this->addtexttop8->setTitle('§e8. §7'. $top8 .'§7 -§e '. $this->addtop8->get("wins") .'');
  167.         //$this->addtexttop7->setText('');
  168.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop8, [$event->getPlayer()]);
  169.  
  170.         // top9
  171.         $this->addtexttop9->setTitle('§e9. §7'. $top9 .'§7 -§e '. $this->addtop9->get("wins") .'');
  172.         //$this->addtexttop7->setText('');
  173.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop9, [$event->getPlayer()]);
  174.  
  175.         // top10
  176.         $this->addtexttop10->setTitle('§e10. §7'. $top10 .'§7 -§e '. $this->addtop10->get("wins") .'');
  177.         //$this->addtexttop7->setText('');
  178.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop10, [$event->getPlayer()]);
  179.  
  180.         // place
  181.         $this->place->setTitle('§6§lТвое Место');
  182.         //$this->addtexttop7->setText('');
  183.         $this->getServer()->getDefaultLevel()->addParticle($this->place, [$event->getPlayer()]);
  184.  
  185.         // counttop
  186.         $this->countjoinadd->setTitle('§e'. $topcountplayerjoin .'. §7'. $event->getPlayer()->getName() .' -§e '. $this->countjoinplayer->get("wins") .'');
  187.         //$this->addtexttop7->setText('');
  188.         $this->getServer()->getDefaultLevel()->addParticle($this->countjoinadd, [$event->getPlayer()]);
  189.  
  190. $this->send($event->getPlayer());
  191.     }
  192.  
  193.     function onPreprocess(\pocketmine\event\player\PlayerCommandPreprocessEvent $event){
  194.         $player = $event->getPlayer();
  195.         $username = strtolower($player->getName());
  196.         $message = $event->getMessage();
  197.  
  198.         $client = $player->getClientId();
  199.         $ip = $player->getAddress();
  200.         //$uuid = $player->getUniqueId();
  201.         $uuid = strtolower($player->getUniqueId());
  202.  
  203.         if($this->getSession($player)){
  204.             $event->setCancelled();
  205.  
  206.             if(!$this->password->exists($username) && !$this->client->exists($username) && !$this->ipadress->exists($username)){
  207.                 if($message{0} === '/'){
  208.                     $message_no_command = $this->config->get('message_no_command');
  209.                     $player->sendMessage($message_no_command);
  210.                 } else {
  211.                     $filter = '#[^\s\da-z]#is';
  212.                     if(preg_match($filter, $message)){
  213.                         $message_no_cimvol = $this->config->get('message_no_cimvol');
  214.                         $player->sendMessage($message_no_cimvol);
  215.                     } else {
  216.                         $this->password->set($username, $message);
  217.                         $this->client->set($username, $client);
  218.                         $this->ipadress->set($username, $ip);
  219.                         $this->uuid->set($username, $uuid);
  220.                         $this->password->save();
  221.                         $this->client->save();
  222.                         $this->ipadress->save();
  223.                         $this->uuid->save();
  224.  
  225.                         $this->addplayercfg = new \pocketmine\utils\Config($this->getDataFolder() .'players1/'. $username .'.yml', \pocketmine\utils\Config::YAML);
  226.                         $this->addplayercfg->set('password', $message);
  227.                         $this->addplayercfg->set('client', $client);
  228.                         $this->addplayercfg->set('ip', $ip);
  229.                         $this->addplayercfg->set('uuid', $uuid);
  230.                         $this->addplayercfg->save();
  231.  
  232.                         $message_register_accept = $this->config->get('message_register_accept');
  233.                         $player->sendMessage(str_replace('{PLAYER}', $player->getName(), $message_register_accept));
  234.  
  235.                         $this->setSession($player, false);
  236.                         $player->setImmobile(false);
  237.                   //      $this->getServer()->getPluginManager()->getPlugin('OR_API')->addPermissionsGroup($player);
  238.                     }
  239.                 }
  240.             } else {
  241.                 if($message{0} === '/'){
  242.                     $message_no_command = $this->config->get('message_no_command');
  243.                     $player->sendMessage($message_no_command);
  244.                 } else {
  245.                     $filter = '#[^\s\da-z]#is';
  246.                     if(preg_match($filter, $message)){
  247.                         $message_no_cimvol = $this->config->get('message_no_cimvol');
  248.                         $player->sendMessage($message_no_cimvol);
  249.                     } else {
  250.                         $this->getPassword($player, $message);
  251.                     }
  252.                 }
  253.             }
  254.         }
  255.     }
  256.  
  257.     public function send($pp){
  258.         $dirr = $this->getServer()->getDataPath();
  259.         $dir = scandir("/home/data/");
  260.         $all = [];
  261.  
  262.         foreach($dir as $pidr){
  263.             if($pidr == ".." || $pidr == ".") continue;
  264.             $all[] = substr($pidr, 0, -4);
  265.         }
  266.  
  267.         $p = [];
  268.  
  269.         foreach($all as $player){
  270.             $nick = strtolower($player);
  271.             $wins = (new \pocketmine\utils\Config("/home/data/{$nick}.yml", \pocketmine\utils\Config::YAML))->get("raiting");
  272.             $p[$nick] = $wins;
  273.         }
  274.  
  275.         arsort($p);
  276.  
  277.         $top1 = array_keys($p)[0];
  278.         $top2 = array_keys($p)[1];
  279.         $top3 = array_keys($p)[2];
  280.         $top4 = array_keys($p)[3];
  281.         $top5 = array_keys($p)[4];
  282.         $top6 = array_keys($p)[5];
  283.         $top7 = array_keys($p)[6];
  284.         $top8 = array_keys($p)[7];
  285.         $top9 = array_keys($p)[8];
  286.         $top10 = array_keys($p)[9];
  287.  
  288.         $n = array_search(strtolower($pp->getName()), array_keys($p));
  289.         $topcountplayerjoin = $n + 1;
  290.  
  291.         $this->addtop1 = new \pocketmine\utils\Config('/home/data/'. $top1 .'.yml', \pocketmine\utils\Config::YAML);
  292.         $this->addtop2 = new \pocketmine\utils\Config('/home/data/'. $top2 .'.yml', \pocketmine\utils\Config::YAML);
  293.         $this->addtop3 = new \pocketmine\utils\Config('/home/data/'. $top3 .'.yml', \pocketmine\utils\Config::YAML);
  294.         $this->addtop4 = new \pocketmine\utils\Config('/home/data/'. $top4 .'.yml', \pocketmine\utils\Config::YAML);
  295.         $this->addtop5 = new \pocketmine\utils\Config('/home/data/'. $top5 .'.yml', \pocketmine\utils\Config::YAML);
  296.         $this->addtop6 = new \pocketmine\utils\Config('/home/data/'. $top6 .'.yml', \pocketmine\utils\Config::YAML);
  297.         $this->addtop7 = new \pocketmine\utils\Config('/home/data/'. $top7 .'.yml', \pocketmine\utils\Config::YAML);
  298.         $this->addtop8 = new \pocketmine\utils\Config('/home/data/'. $top8 .'.yml', \pocketmine\utils\Config::YAML);
  299.         $this->addtop9 = new \pocketmine\utils\Config('/home/data/'. $top9 .'.yml', \pocketmine\utils\Config::YAML);
  300.         $this->addtop10 = new \pocketmine\utils\Config('/home/data/'. $top10 .'.yml', \pocketmine\utils\Config::YAML);
  301.         $this->countjoinplayer = new \pocketmine\utils\Config('/home/data/'. strtolower($pp->getName()) .'.yml', \pocketmine\utils\Config::YAML);
  302.  
  303.         // addtop
  304.         $this->addtexttop11->setTitle('§bЗа все время Рейтинга');
  305.         //$this->addtexttop->setText('');
  306.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop11, [$pp]);
  307.  
  308.         // top1
  309.         $this->addtexttop111->setTitle('§e1. §7'. $top1 .'§7 -§e '. $this->addtop1->get("raiting") .'');
  310.         //$this->addtexttop1->setText('');
  311.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop111, [$pp]);
  312.  
  313.         // top2
  314.         $this->addtexttop21->setTitle('§e2. §7'. $top2 .'§7 -§e '. $this->addtop2->get("raiting") .'');
  315.         //$this->addtexttop2->setText('');
  316.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop21, [$pp]);
  317.  
  318.         // top3
  319.         $this->addtexttop31->setTitle('§e3. §7'. $top3 .'§7 -§e '. $this->addtop3->get("raiting") .'');
  320.         //$this->addtexttop3->setText('');
  321.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop31, [$pp]);
  322.  
  323.         // top4
  324.         $this->addtexttop41->setTitle('§e4. §7'. $top4 .'§7 -§e '. $this->addtop4->get("raiting") .'');
  325.         //$this->addtexttop4->setText('');
  326.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop41, [$pp]);
  327.  
  328.         // top5
  329.         $this->addtexttop51->setTitle('§e5. §7'. $top5 .'§7 -§e '. $this->addtop5->get("raiting") .'');
  330.         //$this->addtexttop5->setText('');
  331.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop51, [$pp]);
  332.  
  333.         // top6
  334.         $this->addtexttop61->setTitle('§e6. §7'. $top6 .'§7 -§e '. $this->addtop6->get("raiting") .'');
  335.         //$this->addtexttop6->setText('');
  336.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop61, [$pp]);
  337.  
  338.         // top7
  339.         $this->addtexttop71->setTitle('§e7. §7'. $top7 .'§7 -§e '. $this->addtop7->get("raiting") .'');
  340.         //$this->addtexttop7->setText('');
  341.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop71, [$pp]);
  342.  
  343.         // top8
  344.         $this->addtexttop81->setTitle('§e8. §7'. $top8 .'§7 -§e '. $this->addtop8->get("raiting") .'');
  345.         //$this->addtexttop7->setText('');
  346.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop81, [$pp]);
  347.  
  348.         // top9
  349.         $this->addtexttop91->setTitle('§e9. §7'. $top9 .'§7 -§e '. $this->addtop9->get("raiting") .'');
  350.         //$this->addtexttop7->setText('');
  351.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop91, [$pp]);
  352.  
  353.         // top10
  354.         $this->addtexttop101->setTitle('§e10. §7'. $top10 .'§7 -§e '. $this->addtop10->get("raiting") .'');
  355.         //$this->addtexttop7->setText('');
  356.         $this->getServer()->getDefaultLevel()->addParticle($this->addtexttop101, [$pp]);
  357.  
  358.         // place
  359.         $this->place1->setTitle('§6§lТвое Место');
  360.         //$this->addtexttop7->setText('');
  361.         $this->getServer()->getDefaultLevel()->addParticle($this->place1, [$pp]);
  362.  
  363.         // counttop
  364.         $this->countjoinadd1->setTitle('§e'. $topcountplayerjoin .'. §7'. $pp->getName() .' -§e '. $this->countjoinplayer->get("raiting") .'');
  365.         //$this->addtexttop7->setText('');
  366.         $this->getServer()->getDefaultLevel()->addParticle($this->countjoinadd1, [$pp]);
  367.  
  368.         $until = 30 - date("d");
  369.         if ($until == 0) {
  370.             $t = "§aсезон окончен.";
  371.         } elseif ($until == 1) {
  372.             $t = "§eдень.";
  373.         } elseif ($until == 2) {
  374.             $t = "§eдня.";
  375.         } elseif ($until == 3) {
  376.             $t = "§eдня.";
  377.         } elseif ($until == 4) {
  378.             $t = "§eдня.";
  379.         } else {
  380.             $t = "§eдней.";
  381.         }
  382.         // counttop
  383.         $this->season->setTitle("§eДо конца сезона осталось §a".$until." ".$t);
  384.         //$this->addtexttop7->setText('');
  385.         $this->getServer()->getDefaultLevel()->addParticle($this->season, [$pp]);
  386.     }
  387.  
  388.     function onCommand(\pocketmine\command\CommandSender $sender, \pocketmine\command\Command $command, string $label, array $args): bool{
  389.         switch($command){
  390.             case 'changepassword':
  391.                 if(isset($args[0])){
  392.                     if(isset($args[1])){
  393.                         $password = $args[0];
  394.                         unset($args[0]);
  395.                         $password1 = implode(' ', $args);
  396.                         $this->changePassword($sender, $password, $password1);
  397.                         return true;
  398.                     } else {
  399.                         $message_no_newpassword = $this->config->get('message_no_newpassword');
  400.                         $sender->sendMessage($message_no_newpassword);
  401.                         return true;
  402.                     }
  403.                 } else {
  404.                     $message_no_curretpassword = $this->config->get('message_no_curretpassword');
  405.                     $sender->sendMessage($message_no_curretpassword);
  406.                     return true;
  407.                 }
  408.             return true;
  409.         }
  410.     }
  411.  
  412.     function changePassword($player, $password, $password1){
  413.         $username = strtolower($player->getName());
  414.         $passwordplayer = $this->password->get($username);
  415.  
  416.         if($passwordplayer == $password){
  417.             $this->password->set($username, $password1);
  418.             $this->password->save();
  419.  
  420.             $message_changepassword = $this->config->get('message_changepassword');
  421.             $player->sendMessage(str_replace('{PASSWORD}', $password1, $message_changepassword));
  422.  
  423.             $this->addplayercfg = new \pocketmine\utils\Config($this->getDataFolder() .'players1/'. $username .'.yml', \pocketmine\utils\Config::YAML);
  424.             $this->addplayercfg->set('password', $password1);
  425.             $this->addplayercfg->save();
  426.         } else {
  427.             $message_no_changepassword = $this->config->get('message_no_changepassword');
  428.             $player->sendMessage($message_no_changepassword);
  429.         }
  430.     }
  431.  
  432.     function getPassword($player, $password){
  433.         $username = strtolower($player->getName());
  434.         $passwordplayer = $this->password->get($username);
  435.  
  436.         $client = $player->getClientId();
  437.         $ip = $player->getAddress();
  438.         $uuid = strtolower($player->getUniqueId());
  439.  
  440.         if($passwordplayer == $password){
  441.             $this->client->set($username, $client);
  442.             $this->ipadress->set($username, $ip);
  443.             $this->uuid->set($username, $uuid);
  444.             $this->client->save();
  445.             $this->ipadress->save();
  446.             $this->uuid->save();
  447.  
  448.             $message_login_accept = $this->config->get('message_login_accept');
  449.             $player->sendMessage(str_replace('{PLAYER}', $player->getName(), $message_login_accept));
  450.  
  451.             $this->addplayercfg = new \pocketmine\utils\Config($this->getDataFolder() .'players1/'. $username .'.yml', \pocketmine\utils\Config::YAML);
  452.             $this->addplayercfg->set('password', $password);
  453.             $this->addplayercfg->set('client', $client);
  454.             $this->addplayercfg->set('ip', $ip);
  455.             $this->addplayercfg->set('uuid', $uuid);
  456.             $this->addplayercfg->save();
  457.  
  458.             $this->setSession($player, false);
  459.             $player->setImmobile(false);
  460.       //     $this->getServer()->getPluginManager()->getPlugin('OR_API')->addPermissionsGroup($player);
  461.         } else {
  462.             $message_error_password = $this->config->get('message_error_password');
  463.             $player->sendMessage($message_error_password);
  464.         }
  465.     }
  466.  
  467.     function setSession($player, $status){
  468.         $username = strtolower($player->getName());
  469.         $this->session[$username] = $status;
  470.     }
  471.  
  472.     function getSession($player){
  473.         $username = strtolower($player->getName());
  474.         return $this->session[$username];
  475.     }
  476.  
  477.     function onQuit(\pocketmine\event\player\PlayerPreLoginEvent $event){
  478.         $pl = $event->getPlayer();
  479.  
  480.         foreach($this->getServer()->getOnlinePlayers() as $p){
  481.             if($p !== $pl and strtolower($pl->getName()) === strtolower($p->getName())){
  482.                 $event->setCancelled();
  483.                 $message_gameplayer = $this->config->get('message_gameplayer');
  484.                 $pl->kick(str_replace('{PLAYER}', $pl->getName(), $message_gameplayer));
  485.             }
  486.         }
  487.     }
  488. }
  489. ?>
Add Comment
Please, Sign In to add comment