当前位置: 首页>>代码示例>>PHP>>正文


PHP player\PlayerGameModeChangeEvent类代码示例

本文整理汇总了PHP中pocketmine\event\player\PlayerGameModeChangeEvent的典型用法代码示例。如果您正苦于以下问题:PHP PlayerGameModeChangeEvent类的具体用法?PHP PlayerGameModeChangeEvent怎么用?PHP PlayerGameModeChangeEvent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了PlayerGameModeChangeEvent类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: onPlayerGameModeChange

 public function onPlayerGameModeChange(PlayerGameModeChangeEvent $event)
 {
     if ($event->isCancelled()) {
         return;
     }
     $p = $event->getPlayer();
     if (!$p->hasPermission("debe.worldinventory.change")) {
         return;
     }
     $n = strtolower($p->getName());
     $g = $event->getNewGamemode();
     $wn = strtolower($p->getLevel()->getFolderName());
     $this->createInv($p, $wn);
     $wiw = $this->wi[$n]["Worlds"][$wn];
     $g = $event->getNewGamemode();
     if ($g == 1) {
         $inv = $p->getInventory();
         foreach ($inv->getContents() as $i) {
             if ($i->getID() !== 0 and $i->getCount() > 0) {
                 $wiw[] = $i->getID() . ":" . $i->getDamage() . ":" . $i->getCount();
             }
         }
         $inv->clearAll();
     } else {
         $this->gmc[$n] = $wiw;
         $wiw = [];
     }
     $this->wi[$n]["Worlds"][$wn] = $wiw;
     $this->saveYml();
     $p->sendMessage("[WorldInventory] " . ($this->isKorean() ? "인벤토리가 교체되었습니다." : "Inventory is change ") . " : GameModeChange");
 }
开发者ID:stoastye85,项目名称:Plugins,代码行数:31,代码来源:WorldInventory.php

示例2: onGameModeChange

 /**
  * @param PlayerGameModeChangeEvent $event
  */
 public function onGameModeChange(PlayerGameModeChangeEvent $event)
 {
     $player = $event->getPlayer();
     $newGamemode = $event->getNewGamemode();
     switch ($newGamemode) {
         case 0:
             $this->plugin->getServer()->getScheduler()->scheduleDelayedTask(new GISPluginTask($this->plugin, "loadArmorContents", array($player)), 15);
             $this->plugin->getServer()->getScheduler()->scheduleDelayedTask(new GISPluginTask($this->plugin, "loadContents", array($player)), 15);
             break;
         case 1:
             $this->plugin->saveArmorContents($player);
             $this->plugin->saveContents($player);
             break;
         default:
             break;
     }
 }
开发者ID:DRedDogPE,项目名称:PureGIS,代码行数:20,代码来源:GISListener.php

示例3: onGmChange

 public function onGmChange(PlayerGameModeChangeEvent $ev)
 {
     $player = $ev->getPlayer();
     $newgm = $ev->getNewGamemode();
     $oldgm = $player->getGamemode();
     if (($newgm == 1 || $newgm == 3) && ($oldgm == 0 || $oldgm == 2)) {
         // We need to save inventory
         $this->saveInv($player);
     }
     if (($newgm == 0 || $newgm == 2) && ($oldgm == 1 || $oldgm == 3)) {
         // Need to restore inventory (but later!)
         $inv = $this->getState($player, null);
         if ($inv == null) {
             return;
         }
         // No inventory on file!
         $this->owner->getServer()->getScheduler()->scheduleDelayedTask(new PluginCallbackTask($this->owner, [$this, "loadInv"], [$player]), self::TICKS);
     }
 }
开发者ID:Gabriel865,项目名称:pocketmine-plugins,代码行数:19,代码来源:GmSaveInv.php

示例4: setGamemode

 /**
  * Sets the gamemode, and if needed, kicks the Player.
  *
  * @param int $gm
  *
  * @return bool
  */
 public function setGamemode($gm)
 {
     if ($gm < 0 or $gm > 3 or $this->gamemode === $gm) {
         return false;
     }
     $this->server->getPluginManager()->callEvent($ev = new PlayerGameModeChangeEvent($this, (int) $gm));
     if ($ev->isCancelled()) {
         return false;
     }
     $this->gamemode = $gm;
     $this->allowFlight = $this->isCreative();
     if ($this->isSpectator()) {
         $this->despawnFromAll();
     } else {
         $this->spawnToAll();
     }
     $this->namedtag->playerGameType = new Int("playerGameType", $this->gamemode);
     $spawnPosition = $this->getSpawn();
     $pk = new SetPlayerGameTypePacket();
     $pk->gamemode = $this->gamemode & 0x1;
     $this->dataPacket($pk);
     $this->sendSettings();
     $this->inventory->clearAll();
     //SurvivalInventory Clear
     if ($this->gamemode === Player::SPECTATOR) {
         $pk = new ContainerSetContentPacket();
         $pk->windowid = ContainerSetContentPacket::SPECIAL_CREATIVE;
         $this->dataPacket($pk);
     } else {
         $pk = new ContainerSetContentPacket();
         $pk->windowid = ContainerSetContentPacket::SPECIAL_CREATIVE;
         foreach (Item::getCreativeItems() as $item) {
             $pk->slots[] = clone $item;
         }
         $this->dataPacket($pk);
     }
     $this->inventory->sendContents($this);
     $this->inventory->sendContents($this->getViewers());
     $this->inventory->sendHeldItem($this->hasSpawned);
     return true;
 }
开发者ID:NewDelion,项目名称:PocketMine-0.13.x,代码行数:48,代码来源:Player.php

示例5: setGamemode

 /**
  * Sets the gamemode, and if needed, kicks the Player.
  *
  * @param int $gm
  *
  * @return bool
  */
 public function setGamemode(int $gm)
 {
     if ($gm < 0 or $gm > 3 or $this->gamemode === $gm) {
         return false;
     }
     $this->server->getPluginManager()->callEvent($ev = new PlayerGameModeChangeEvent($this, $gm));
     if ($ev->isCancelled()) {
         return false;
     }
     if ($this->server->autoClearInv) {
         $this->inventory->clearAll();
     }
     $this->gamemode = $gm;
     $this->allowFlight = $this->isCreative();
     if ($this->isSpectator()) {
         $this->despawnFromAll();
     } else {
         $this->spawnToAll();
     }
     $this->namedtag->playerGameType = new IntTag("playerGameType", $this->gamemode);
     /*$spawnPosition = $this->getSpawn();
     
     		$pk = new StartGamePacket();
     		$pk->seed = -1;
     		$pk->x = $this->x;
     		$pk->y = $this->y;
     		$pk->z = $this->z;
     		$pk->spawnX = (int)$spawnPosition->x;
     		$pk->spawnY = (int)$spawnPosition->y;
     		$pk->spawnZ = (int)$spawnPosition->z;
     		$pk->generator = 1; //0 old, 1 infinite, 2 flat
     		$pk->gamemode = $this->gamemode & 0x01;
     		$pk->eid = 0;*/
     $pk = new SetPlayerGameTypePacket();
     $pk->gamemode = $this->gamemode & 0x1;
     $this->dataPacket($pk);
     $this->sendSettings();
     if ($this->gamemode === Player::SPECTATOR) {
         $pk = new ContainerSetContentPacket();
         $pk->windowid = ContainerSetContentPacket::SPECIAL_CREATIVE;
         $this->dataPacket($pk);
     } else {
         $pk = new ContainerSetContentPacket();
         $pk->windowid = ContainerSetContentPacket::SPECIAL_CREATIVE;
         foreach (Item::getCreativeItems() as $item) {
             $pk->slots[] = clone $item;
         }
         $this->dataPacket($pk);
     }
     $this->inventory->sendContents($this);
     $this->inventory->sendContents($this->getViewers());
     $this->inventory->sendHeldItem($this->hasSpawned);
     return true;
 }
开发者ID:PepbookPvP,项目名称:Genisys,代码行数:61,代码来源:Player.php

示例6: onPlayerGameModeChange

 /**
  *
  * @param PlayerGameModeChangeEvent $event        	
  */
 public function onPlayerGameModeChange(PlayerGameModeChangeEvent $event)
 {
     $this->showGameMode($event->getPlayer());
 }
开发者ID:robozeri,项目名称:SG,代码行数:8,代码来源:PlayerWelcomeListener.php

示例7: setGamemode

 /**
  * Sets the gamemode, and if needed, kicks the player
  * TODO: Check if Mojang adds the ability to change gamemode without kicking players
  *
  * @param int $gm
  *
  * @return bool
  */
 public function setGamemode($gm)
 {
     if ($gm < 0 or $gm > 3 or $this->gamemode === $gm) {
         return false;
     }
     $this->server->getPluginManager()->callEvent($ev = new PlayerGameModeChangeEvent($this, (int) $gm));
     if ($ev->isCancelled()) {
         return false;
     }
     if (($this->gamemode & 0x1) === ($gm & 0x1)) {
         $this->gamemode = $gm;
         $this->sendMessage("Your gamemode has been changed to " . Server::getGamemodeString($this->getGamemode()) . ".\n");
     } else {
         $this->gamemode = $gm;
         $this->sendMessage("Your gamemode has been changed to " . Server::getGamemodeString($this->getGamemode()) . ".\n");
         $this->inventory->clearAll();
         $this->inventory->sendContents($this->getViewers());
         $this->inventory->sendHeldItem($this->hasSpawned);
     }
     $this->namedtag->playerGameType = new Int("playerGameType", $this->gamemode);
     $spawnPosition = $this->getSpawn();
     $pk = new StartGamePacket();
     $pk->seed = $this->level->getSeed();
     $pk->x = $this->x;
     $pk->y = $this->y + $this->getEyeHeight();
     $pk->z = $this->z;
     $pk->spawnX = (int) $spawnPosition->x;
     $pk->spawnY = (int) $spawnPosition->y;
     $pk->spawnZ = (int) $spawnPosition->z;
     $pk->generator = 1;
     //0 old, 1 infinite, 2 flat
     $pk->gamemode = $this->gamemode & 0x1;
     $pk->eid = 0;
     //Always use EntityID as zero for the actual player
     $this->dataPacket($pk);
     $this->sendSettings();
     return true;
 }
开发者ID:rryy,项目名称:PocketMine-MP,代码行数:46,代码来源:Player.php

示例8: setGamemode

 /**
  * Sets the gamemode, and if needed, kicks the Player.
  *
  * @param int  $gm
  * @param bool $client if the client made this change in their GUI
  *
  * @return bool
  */
 public function setGamemode(int $gm, bool $client = false)
 {
     if ($gm < 0 or $gm > 3 or $this->gamemode === $gm) {
         return false;
     }
     $this->server->getPluginManager()->callEvent($ev = new PlayerGameModeChangeEvent($this, (int) $gm));
     if ($ev->isCancelled()) {
         if ($client) {
             //gamemode change by client in the GUI
             $pk = new SetPlayerGameTypePacket();
             $pk->gamemode = $this->gamemode & 0x1;
             $this->dataPacket($pk);
             $this->sendSettings();
         }
         return false;
     }
     $this->gamemode = $gm;
     $this->allowFlight = $this->isCreative();
     if ($this->isSpectator()) {
         $this->flying = true;
         $this->despawnFromAll();
         // Client automatically turns off flight controls when on the ground.
         // A combination of this hack and a new AdventureSettings flag FINALLY
         // fixes spectator flight controls. Thank @robske110 for this hack.
         $this->teleport($this->temporalVector->setComponents($this->x, $this->y + 0.1, $this->z));
     } else {
         if ($this->isSurvival()) {
             $this->flying = false;
         }
         $this->spawnToAll();
     }
     $this->resetFallDistance();
     $this->namedtag->playerGameType = new IntTag("playerGameType", $this->gamemode);
     if (!$client) {
         //Gamemode changed by server, do not send for client changes
         $pk = new SetPlayerGameTypePacket();
         $pk->gamemode = $this->gamemode & 0x1;
         $this->dataPacket($pk);
         $this->sendSettings();
     } else {
         Command::broadcastCommandMessage($this, new TranslationContainer("commands.gamemode.success.self", [Server::getGamemodeString($gm)]));
     }
     $this->inventory->sendContents($this);
     $this->inventory->sendContents($this->getViewers());
     $this->inventory->sendHeldItem($this->hasSpawned);
     if ($this->isCreative()) {
         $this->inventory->sendCreativeContents();
     }
     return true;
 }
开发者ID:xxFlare,项目名称:PocketMine-MP,代码行数:58,代码来源:Player.php

示例9: onPlayerGameModeChange

 /** 
  * @param PlayerGameModeChangeEvent $event 
  * @priority HIGHEST
  * @ignoreCancelled true
  */
 public function onPlayerGameModeChange(PlayerGameModeChangeEvent $event)
 {
     if (!$this->plugin->getStorage()->getShield($event->getPlayer()->getLevel())->isAllowed(Shield::GAMEMODE_CHANGING)) {
         $event->setCancelled(true);
         $event->getPlayer()->sendTip($this->plugin->getConfig()->get("gamemodeChangeNotAllowed"));
     }
 }
开发者ID:NameNoOne100,项目名称:PocketMine-Plugins,代码行数:12,代码来源:GlobalShieldListener.php

示例10: PlayerGameModeChangeEvent

 public function PlayerGameModeChangeEvent(PlayerGameModeChangeEvent $event)
 {
     $event->getPlayer()->getInventory()->addItem(Item::get(1, 0, 1));
     $event->getPlayer()->getInventory()->clearAll();
 }
开发者ID:TwishLiX,项目名称:BuildBattlePE,代码行数:5,代码来源:Main.php

示例11: setGamemode

 /**
  * Sets the gamemode, and if needed, kicks the player
  * TODO: Check if Mojang adds the ability to change gamemode without kicking players
  *
  * @param int $gm
  *
  * @return bool
  */
 public function setGamemode($gm)
 {
     if ($gm < 0 or $gm > 3 or $this->gamemode === $gm) {
         return false;
     }
     $this->server->getPluginManager()->callEvent($ev = new PlayerGameModeChangeEvent($this, (int) $gm));
     if ($ev->isCancelled()) {
         return false;
     }
     if (($this->gamemode & 0x1) === ($gm & 0x1)) {
         $this->gamemode = $gm;
     } else {
         $this->gamemode = $gm;
         $this->inventory->clearAll();
         $this->inventory->sendContents($this);
         $this->inventory->sendContents($this->getViewers());
         $this->inventory->sendHeldItem($this->hasSpawned);
     }
     $this->namedtag->playerGameType = new Int("playerGameType", $this->gamemode);
     $spawnPosition = $this->getSpawn();
     $pk = new StartGamePacket();
     $pk->seed = -1;
     $pk->x = $this->x;
     $pk->y = $this->y;
     $pk->z = $this->z;
     $pk->spawnX = (int) $spawnPosition->x;
     $pk->spawnY = (int) $spawnPosition->y;
     $pk->spawnZ = (int) $spawnPosition->z;
     $pk->generator = 1;
     //0 old, 1 infinite, 2 flat
     $pk->gamemode = $this->gamemode & 0x1;
     $pk->eid = $this->getId();
     $this->dataPacket($pk->setChannel(Network::CHANNEL_WORLD_EVENTS));
     $this->sendSettings();
     if ($this->gamemode === Player::SPECTATOR) {
         $pk = new ContainerSetContentPacket();
         $pk->windowid = ContainerSetContentPacket::SPECIAL_CREATIVE;
         $this->dataPacket($pk->setChannel(Network::CHANNEL_WORLD_EVENTS));
     } else {
         $pk = new ContainerSetContentPacket();
         $pk->windowid = ContainerSetContentPacket::SPECIAL_CREATIVE;
         foreach (Item::getCreativeItems() as $item) {
             $pk->slots[] = clone $item;
         }
         $this->dataPacket($pk->setChannel(Network::CHANNEL_WORLD_EVENTS));
     }
     return true;
 }
开发者ID:TylerGames,项目名称:PocketMine-MP,代码行数:56,代码来源:Player.php

示例12: setGamemode

 public function setGamemode(Player $player, $gm)
 {
     if ($gm < 0 or $gm > 3 or $player->gamemode === $gm) {
         return \false;
     }
     $player->getServer()->getPluginManager()->callEvent($ev = new PlayerGameModeChangeEvent($player, (int) $gm));
     if ($ev->isCancelled()) {
         return false;
     }
     if (($player->gamemode & 0x1) === ($gm & 0x1)) {
         $player->gamemode = $gm;
         $player->sendMessage(TextFormat::DARK_AQUA . "게임모드가 변경되었습니다, " . Server::getGamemodeString($player->getGamemode()) . ".\n");
     } else {
         $player->gamemode = $gm;
         $player->sendMessage(TextFormat::DARK_AQUA . "게임모드가 변경되었습니다, " . Server::getGamemodeString($player->getGamemode()) . ".\n");
         $player->getInventory()->clearAll();
         $player->getInventory()->sendContents($player->getViewers());
         $player->getInventory()->sendHeldItem($player->getViewers());
     }
     $player->namedtag->playerGameType = new Int("playerGameType", $player->gamemode);
     $player->sendMessage(TextFormat::DARK_AQUA . "새 게임모드 적용을 위해 서버에서 킥처리됩니다.");
     $this->getServer()->getScheduler()->scheduleDelayedTask(new CallbackTask([$this, "Kick"], [$player]), 50);
     return true;
 }
开发者ID:EmreTr1,项目名称:rtr,代码行数:24,代码来源:GameModeKick.php

示例13: onGameModeChange

 public function onGameModeChange(PlayerGameModeChangeEvent $event)
 {
     $playerName = $event->getPlayer()->getName();
     //$chunkX=131;
     //$chunkZ=132;
     foreach ($this->joinedplayers as $key => $value) {
         if ($key == $playerName) {
             $event->getPlayer()->sendMessage("What are you going to do?=_=Be good buys!");
             $event->setCancelled();
             //$rere=new SimpleChunk($chunkX,$chunkZ);
         }
     }
 }
开发者ID:Wolfurama,项目名称:The-Walls,代码行数:13,代码来源:Main.php

示例14: onPlayerGameModeChange

 public function onPlayerGameModeChange(PlayerGameModeChangeEvent $event)
 {
     $Player = $event->getPlayer();
     $Level = $Player->getLevel();
     if (!$this->plugin->game || $this->plugin->game->level_name != $Level->getFolderName()) {
         return;
     }
     $event->setCancelled(!in_array($event->getNewGamemode(), [0, 3]));
 }
开发者ID:MateiGamingYTB,项目名称:BedWarsPE,代码行数:9,代码来源:EventListener.php


注:本文中的pocketmine\event\player\PlayerGameModeChangeEvent类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。