【Lv:5】
最近,这个东西在国外挺流行的,就拿来分享一下。
首先,你的插件应该需要多use(调用)以下两个事件:
具体调用过程如下:
记录:
get(获取):
之后你就可以可以通过调用$os来检测了,以下案例仅供参考:
某世界只能某个设备系统的人进入
配置文件格式:
代码格式:
首先,你的插件应该需要多use(调用)以下两个事件:
PHP:
use pocketmine\event\server\DataPacketReceiveEvent;
use pocketmine\network\mcpe\protocol\LoginPacket;
PHP:
public const OS_TABLE = [
'Unknown',
'Android',
'iOS',
'macOS',
'FireOS',
'Windows 10',
'Windows',
'Dedicated',
];
PHP:
public function onData(DataPacketReceiveEvent $event){
$pk = $event->getPacket();
if($pk instanceof LoginPacket) {
$this->cache[$pk->username] = Main::OS_TABLE[$pk->clientData["DeviceOS"]];
}
}
PHP:
$os = $this->storage->get($target->getName());
某世界只能某个设备系统的人进入
配置文件格式:
YAML:
"Android": []
"iOS": []
"Windows10": []
"FireOS": []
"macOS": []
"Unknown": []
PHP:
public function onLevelChange(EntityLevelChangeEvent $e){
$p = $e->getEntity();
if(!$p instanceof Player) return;
if(in_array($e->getTarget()->getFolderName(), $this->getConfig()->get($os = $this->getOS($p->getName())))){
$p->sendMessage(TextFormat::RED . $os . TextFormat::WHITE . " 的用户无法进入这个世界.");
$e->setCancelled();
}
}
最后编辑: