當前位置: 首頁>>代碼示例>>PHP>>正文


PHP CommandSender::distance方法代碼示例

本文整理匯總了PHP中pocketmine\command\CommandSender::distance方法的典型用法代碼示例。如果您正苦於以下問題:PHP CommandSender::distance方法的具體用法?PHP CommandSender::distance怎麽用?PHP CommandSender::distance使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在pocketmine\command\CommandSender的用法示例。


在下文中一共展示了CommandSender::distance方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: checkSelectors

 public static function checkSelectors(array $args, CommandSender $sender, Player $player)
 {
     foreach ($args as $name => $value) {
         switch ($name) {
             case "x":
             case "y":
             case "z":
                 if (isset($args["d" . $name])) {
                     break;
                 }
                 $delta = 0;
                 if ($value[0] === "~" and $sender instanceof Position) {
                     $delta += $player->{$name};
                 }
                 $actual = $sender->{$name};
                 if ((int) $delta !== (int) $actual) {
                     return false;
                 }
                 break;
             case "r":
                 if ($sender instanceof Position) {
                     if ($sender->distance($player) > floatval($value)) {
                         return false;
                     }
                     break;
                 }
                 return false;
             case "rm":
                 if ($sender instanceof Position) {
                     if ($sender->distance($player) < floatval($value)) {
                         return false;
                     }
                     break;
                 }
                 return false;
             case "m":
                 $mode = intval($value);
                 if ($mode === -1) {
                     break;
                     // what is the point of adding this (in PC) when they can just safely leave this out?
                 }
                 if ($mode !== $player->getGamemode()) {
                     return false;
                 }
                 break;
             case "name":
                 if ($value !== $sender->getName()) {
                     return false;
                 }
                 break;
             case "name!":
                 if ($value === $sender->getName()) {
                     return false;
                 }
                 break;
                 // TODO argument "c" (count)
             // TODO argument "c" (count)
             case "rx":
                 if ($player->yaw > floatval($value)) {
                     return false;
                 }
                 break;
             case "rxm":
                 if ($player->yaw < floatval($value)) {
                     return false;
                 }
                 break;
             case "ry":
                 if ($player->pitch > floatval($value)) {
                     return false;
                 }
                 break;
             case "rym":
                 if ($player->pitch < floatval($value)) {
                     return false;
                 }
                 break;
         }
     }
     foreach (["x", "y", "z"] as $v) {
         if (isset($args["d" . $v])) {
             if (isset($args[$v])) {
                 $from = (int) $args[$v];
             } elseif ($sender instanceof Position) {
                 // lower priority
                 $from = $sender->{$v};
             } else {
                 continue;
             }
             $to = (int) $args["d" . $v];
             $actual = $player->{$v};
             if ($from <= $actual and $actual <= $to) {
                 break;
             }
             return false;
         }
     }
     return true;
 }
開發者ID:barnseyminesuk,項目名稱:Small-ZC-Plugins,代碼行數:99,代碼來源:CmdSel.php


注:本文中的pocketmine\command\CommandSender::distance方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。