教程 在PM服务器中简单的实现反作弊

YuIo_PQ

【Lv:5】

注册
2018/03/17
消息
590
金粒
359,861.44金粒
首先,我们需要很正常的use以下内容:
PHP:
use pocketmine\plugin\PluginBase;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\event\player\PlayerMoveEvent;
use pocketmine\event\player\PlayerToggleFlightEvent;
use pocketmine\event\player\PlayerGameModeChangeEvent;
use pocketmine\event\server\DataPacketReceiveEvent;
use pocketmine\Server;use pocketmine\Player;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\utils\Config;
use pocketmine\utils\TextFormat as Color;
开始正篇!首先,一个服务器得有简单的反飞行!
PHP:
public function onFlying(PlayerToggleFlightEvent $event) {
   
  //检测玩家飞行这个动作
      $player = $event->getPlayer();
  
     if ($event->isFlying()) {
        
         if ($player->hasPermission("xx权限")) {
           
  //如果有飞行这个动作,则判断玩家有没有飞行的权限
           
         } else {
   
  //如果没有,就踢出服务器        
           $player->kick(Color::RED . "这里写留给作弊玩家的话hh", false);
          
          
        
         }
     }
   }
检测权限的地方,我们可以用isOP来代替,因为中国大多数服务器是没有权限组这个插件的。
接下来,玩家可不能随意的切换模式!
PHP:
public function onGameModeChange(PlayerGameModeChangeEvent $event) {
       
   //检测玩家是否有更改游戏模式动作,是的话,检测玩家有没有对应权限
        $player = $event->getPlayer();
        $gamemode = $event->getNewGameMode();
        if ($player->hasPermission("xx权限")) {
           
        } else {
            //如果没有权限且玩家的游戏模式为1(创造模式)
            if ($gamemode === 1) {
           
                $player->kick("给作弊玩家写点什么hh", false);
               
            }
           
        }
       
    }
 

在线管理成员

在线会员

  • mc_xiaoQAQ_
  • jja'k'k'l'l'j'l
  • codycodyco
  • Saught
  • 小友
  • justuszjj
  • K3
  • muhan
  • 浪花
  • BrAeRd
  • 乱杖先生
  • 唯喵
  • Wxxxx
  • Carxiestra
  • CPU0
  • qwse
  • kevin2025
  • 江川神璇
  • 七六
  • wx321awa
...和 3 更多。
后退
顶部 底部