Палгин на проверку на Читы

:boom:Комманды:
check - вызвать игрока на проверку
permission: use.check
Check.zip (3,3 КБ)

default: op

uncheck - снять игрока с проверки
permission: use.uncheck
default: op
Удачного использования :wink:

<?php

namespace check;

use pocketmine\plugin\PluginBase;
use pocketmine\event\Listener;
use pocketmine\command\{Command,CommandSender};
use pocketmine\Player;
use pocketmine\permission\Permissible;
use pocketmine\utils\Config;
use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\event\block\{BlockPlaceEvent, BlockBreakEvent};
use pocketmine\item\{Item,EnderPearl,ChorusFruit};
use pocketmine\event\player\{PlayerQuitEvent,PlayerItemConsumeEvent,PlayerDropItemEvent,PlayerInteractEvent,PlayerCommandPreprocessEvent, PlayerChatEvent, PlayerMoveEvent};


class Main extends PluginBase implements Listener {
    
    public $config;

    public function onEnable() {
        $this->getServer()->getLogger()->info("§dAuthor: vk.com/itsminfist");
        $this->getServer()->getPluginManager()->registerEvents($this, $this);
        if(!is_dir($this->getDataFolder())) {

            mkdir($this->getDataFolder(), 0777, true);

            $this->saveDefaultConfig();
        }
        if(!is_file($this->getDataFolder()."config.yml")) {
            $this->saveDefaultConfig();
        }
        $this->config = new Config($this->getDataFolder()."config.yml", Config::YAML);
    }

    public function onChat(PlayerCommandPreprocessEvent $event) {
        $msg = $event->getMessage();
        $msgs = explode(' ', $event->getMessage())[0];
        $player = $event->getPlayer();
        if (isset($this->cr[$player->getLowerCaseName()]) and $msg[0] == '/') {
            $event->setCancelled();
            $player->sendMessage($this->config->get("block-commands"));
            return;
        }
    }

    public function onBreak(BlockBreakEvent $event) {
        $player = $event->getPlayer();
        if (isset($this->cr[$player->getLowerCaseName()])) {
            $player->sendPopup($this->config->get("break-or-place"));
            $event->setCancelled();
        }
    }

    public function onDamage(EntityDamageEvent $event) {
        $player = $event->getEntity();
        if($player instanceof Player){
            if (isset($this->cr[$player->getLowerCaseName()])) {
                $player->sendMessage($this->config->get("on-damage"));
                $event->setCancelled();
            }
        }
        $damager = $event->getDamager();
        if($event instanceof EntityDamageEvent && $damager instanceof Player){
            if(isset($this->cr[$damager->getLowerCaseName()])){
               $damager->sendMessage($this->config->get("on-damager"));
               $event->setCancelled();
            }
        }
    }
    
        public function onPlace(BlockPlaceEvent $event) {
            $player = $event->getPlayer();
            if (isset($this->cr[$player->getLowerCaseName()])) {
                $player->sendPopup($this->config->get("break-or-place"));
                $event->setCancelled();
            }
        }

        public function onQuit(PlayerQuitEvent $event) {
            $player = $event->getPlayer();
            if (isset($this->cr[$player->getLowerCaseName()])) {
                unset($this->cr[$player->getLowerCaseName()]);
                if($this->config->get("on-kill") == true){
                    $player->kill();
                }
            }
        }

        public function onRun(PlayerInteractEvent $event) {
            $player = $event->getPlayer();
            if (isset($this->cr[$player->getLowerCaseName()])) {
                $item = $event->getItem()->getId();
                if ($item == 368 || $item == 432) { # 54 61 62 130 146
                    $event->setCancelled();
                    $player->sendMessage($this->config->get("run-on-check"));
                }
            }
        }
        
        public function Interact(PlayerInteractEvent $event){
            $player = $event->getPlayer();
            $item = $event->getItem()->getId();
            if(isset($this->cr[$player->getLowerCaseName()])){
                if($item == 54 || $item == 61 || $item == 130 || $item == 146){
                    $player->sendMessage($this->config->get("on-interact"));
                    $event->setCancelled();
                }
            }
        }
        
        

        public function onDrop(PlayerDropItemEvent $event) : void {
            $player = $event->getPlayer();
            if (isset($this->cr[$player->getLowerCaseName()])) {
                $player->sendPopup($this->config->get("drop-item"));
                $event->setCancelled();
            }
        }

        public function onMove(PlayerMoveEvent $event) : void {
            $player = $event->getPlayer();
            if (isset($this->cr[$player->getLowerCaseName()])) {
                $event->setCancelled();
                $player->sendPopup($this->config->get("move-on-check"));
            }
        }

        public function onCommand(CommandSender $s, Command $cmd, $label, array $args) {
            switch ($cmd) {
                case "check":
                    if (!$s->isOp() || $s->hasPermission("use.check")) {
                        $s->sendMessage($this->config->get("dHave-perm-check"));
                        return true;
                    }

                    if (!isset($args[0])) {
                        $s->sendMessage("§fИспользование:§e /check ник");
                        return true;
                    }


                    $player = $this->getServer()->getPlayer($args[0]);
                    
                    $pl = $player->getName();
                    
                    $moder = $s->getPlayer()->getName();

                    if (!$player) {
                        $s->sendMessage($this->config->get("dont-online"));
                        return true;
                    }

                    if (isset($this->cr[$player->getLowerCaseName()])) {
                        $s->sendMessage($this->config->get("on-check"));
                        return true;
                    }

                    $this->cr[$player->getLowerCaseName()] = true;

                    $s->sendMessage($this->config->get("on-check-moder"));
                    $player->sendMessage($this->config->get("on-check-player"));
                    break;

                case "uncheck":
                    if (!$s->isOp() || !$s->hasPermission("use.uncheck")) {
                        $s->sendMessage($this->config->get("dHave-perm-uncheck"));
                        return true;
                    }

                    if (!isset($args[0])) {
                        $s->sendMessage("§eИспользование: §f/uncheck [ник]");
                        return true;
                    }
                    $player = $this->getServer()->getPlayer($args[0]);
                    
                    $pl = $player->getName();
                    
                    $moder = $s->getPlayer()->getName();
                    
                    if (!$player) {
                        $s->sendMessage($this->config->get("dont-online"));
                        return true;
                    }

                    if (!isset($this->cr[$player->getLowerCaseName()])) {
                        $s->sendMessage($this->config->get("dont-check"));
                        return true;
                    }

                    unset($this->cr[$player->getLowerCaseName()]);

                    $s->sendMessage($this->config->get("moder-uncheck"));
                    $player->sendMessage($this->config->get("player-uncheck"));
                    break;

            }
        }
    }
1 лайк


Офигенный палгин

это обычная заморозка с другими командами в чем прикол?


это че такое?..



накой они?.. они ведь не используются

нейминг переменных отвратительные, все в одном классе, ужас

Дети пытаюсь написать что то свое без использования ооп, им скоро надоест, не брыкайся на них)

Крутого в нем ничего нет, а то что там якобы есть ограничение игрока то это мало что дает, просто позаботиться над игроком и все. Данный инструмент якобы для проверки, можно написать куда проще и лучше

кал

спасибо хоть за нормальную табуляцию

1 лайк

Достаточно одной фукнции в его плагин и можно обойтись без всяких массивов и событий, задействов регистрацию команды в Closure)

Всем спасибо за комментарии, учту всё к сведению т.к. в сфере php сравнительно недавно :wink:

Приму к сведению :wink:

регистрацию команды в closure? что ■■■■■?

■■■ лукин не пиши ничего на этот форум, мне кажется ты в стадии стагнации либо деградации, потому что за такой большой промежуток времени ТЫ НЕ УМНЕЕШЬ И ПРОДОЛЖАЕШЬ ПИСАТЬ ДИЧЬ

Девочка вернулась с обидами

6 лайков

Ладно…
Screenshot_20250224-163421_Chrome (1)

1 лайк

Убрали :sweat_smile:

@Bestaford слышь я походк понял кто такой ьестафорд.ти

это рома лукин ))))

он лайкнул сбщ со своих твинков, бестфорд.ти там тоже присутствует

@bestaford.ti
Разве акк ещё живой?

UPD: да, живой на моё удивление