public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if ($cmd->getName() != "blowup") { return false; } if (count($args) == 0) { return false; } if (($pl = MPMU::getPlayer($sender, $args[0])) === null) { return true; } array_shift($args); $yield = 5; $magic = false; foreach ($args as $i) { if (is_numeric($i)) { $yield = intval($i); if ($yield < 1) { $yield = 1; } } elseif (strtolower($i) == "magic") { $magic = true; } elseif (strtolower($i) == "normal") { $magic = false; } } $this->blowPlayer($pl, $yield, $magic); return true; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if ($cmd->getName() != "heal") { return false; } if (count($args) == 0) { if (!MPMU::inGame($sender)) { return true; } $sender->setHealth($sender->getMaxHealth()); $sender->sendMessage(mc::_("You have been healed")); return true; } if (($patient = MPMU::getPlayer($sender, $args[0])) === null) { return true; } if (isset($args[1]) && is_numeric($args[1])) { $health = $patient->getHealth() + intval($args[1]); if ($health > $patient->getMaxHealth()) { $health = $patient->getMaxHealth(); } } else { $health = $patient->getMaxHealth(); } $patient->setHealth($health); $sender->sendMessage(mc::_("%1% was healed.", $args[0])); return true; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if ($cmd->getName() != "as") { return false; } if (count($args) < 2) { $sender->sendMessage(mc::_("Must specified a player and a command")); return false; } if (($player = MPMU::getPlayer($sender, $n = array_shift($args))) === null) { return true; } if ($args[0] == 'chat' || $args[0] == 'say') { array_shift($args); $chat = implode(" ", $args); $this->owner->getServer()->getPluginManager()->callEvent($ev = new PlayerChatEvent($player, $chat)); if (!$ev->isCancelled()) { if (MPMU::apiVersion("1.12.0")) { $s = $this->owner->getServer(); $s->broadcastMessage($s->getLanguage()->translateString($ev->getFormat(), [$ev->getPlayer()->getDisplayName(), $ev->getMessage()]), $ev->getRecipients()); } else { $this->owner->getServer()->broadcastMessage(sprintf($ev->getFormat(), $ev->getPlayer()->getDisplayName(), $ev->getMessage()), $ev->getRecipients()); } } } else { $cmdline = implode(' ', $args); $sender->sendMessage(mc::_("Running command as %1%", $n)); $this->owner->getServer()->dispatchCommand($player, $cmdline); } return true; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if ($cmd->getName() != "top") { return false; } switch (count($args)) { case 0: if (!MPMU::inGame($sender)) { return true; } $pl = $sender; break; case 1: if (!MPMU::access($sender, "gb.cmd.top.others")) { return true; } if (($pl = MPMU::getPlayer($sender, $args[0])) === null) { return true; } break; default: return false; } $y = $pl->getLevel()->getHighestBlockAt($pl->getX(), $pl->getZ()) + 1; $pl->teleport(new Vector3($pl->getX(), $y, $pl->getZ())); return true; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { $pageNumber = $this->getPageNumber($args); if (count($args) != 1) { $sender->sendMessage(mc::_("You must specify a player's name")); return false; } if (($target = MPMU::getPlayer($sender, $args[0])) === null) { return true; } if ($cmd->getName() == "seeinv") { $tab = [[$args[0], mc::_("Count"), mc::_("Damage")]]; $max = $target->getInventory()->getSize(); foreach ($target->getInventory()->getContents() as $slot => &$item) { if ($slot >= $max) { continue; } $tab[] = [ItemName::str($item) . " (" . $item->getId() . ")", $item->getCount(), $item->getDamage()]; } if (count($tab) == 1) { $sender->sendMessage(mc::_("The inventory for %1% is EMPTY", $args[0])); return true; } } elseif ($cmd->getName() == "seearmor") { $tab = [[mc::_("Armor for"), TextFormat::RED . $args[0]]]; foreach ([0 => "head", 1 => "body", 2 => "legs", 3 => "boots"] as $slot => $attr) { $item = $target->getInventory()->getArmorItem($slot); if ($item->getID() == 0) { continue; } $tab[] = [$attr . TextFormat::BLUE, ItemName::str($item) . " (" . $item->getId() . ":" . $item->getDamage() . ")"]; } } return $this->paginateTable($sender, $pageNumber, $tab); }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { switch (count($args)) { case 0: if (!MPMU::inGame($sender)) { return true; } $target = $sender; $other = false; break; case 1: if (($target = MPMU::getPlayer($sender, $args[0])) === null) { return true; } $other = true; break; default: return false; } $item = clone $target->getInventory()->getItemInHand(); if ($item->getId() == Item::AIR) { if ($other) { $sender->sendMessage(mc::_("%1% is holding nothing!", $target->getDisplayName())); } else { $sender->sendMessage(mc::_("You are holding nothing!")); } return true; } $sender->sendMessage(TextFormat::BLUE . mc::_("Item: ") . TextFormat::WHITE . ItemName::str($item)); $sender->sendMessage(TextFormat::BLUE . mc::_("ItemId: ") . TextFormat::WHITE . $item->getId()); $sender->sendMessage(TextFormat::BLUE . mc::_("Count: ") . TextFormat::WHITE . $item->getCount()); $sender->sendMessage(TextFormat::BLUE . mc::_("Damage: ") . TextFormat::WHITE . $item->getDamage()); return true; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if ($cmd->getName() == "rminv") { return $this->rmInvItem($sender, $args); } if (count($args) > 1) { return false; } if (count($args) == 0) { if (!MPMU::inGame($sender)) { return true; } $target = $sender; $other = false; } else { if (!MPMU::access($sender, "gb.cmd." . $cmd->getName() . ".others")) { return true; } if (($target = MPMU::getPlayer($sender, $args[0])) === null) { return true; } $other = true; } switch ($cmd->getName()) { case "fixit": $item = clone $target->getInventory()->getItemInHand(); if ($item->getDamage() == 0) { $sender->sendMessage(mc::_("That item is brand NEW!")); return true; } $item->setDamage(0); $target->getInventory()->setItemInHand($item); $target->getInventory()->sendContents($target); if ($other) { $target->sendMessage(mc::_("Your currently held item has been fixed by %1%", $sender->getName())); } $sender->sendMessage(mc::_("%1%'s held item has been fixed", $target->getName())); return true; case "clearinv": InvUtils::clearInventory($target); if ($other) { $target->sendMessage(mc::_("Your inventory has been cleared by %1%", $sender->getName())); } $sender->sendMessage(mc::_("%1%'s inventory cleared", $target->getName())); return true; case "clearhotbar": InvUtils::clearHotbar($target); if ($other) { $target->sendMessage(mc::_("Your hotbar has been cleared by %1%", $sender->getName())); } $sender->sendMessage(mc::_("%1%'s hotbar cleared", $target->getName())); return true; } return false; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if ($cmd->getName() != "throw") { return false; } if (count($args) > 2 || count($args) == 0) { return false; } if (($pl = MPMU::getPlayer($sender, $args[0])) === null) { return true; } $this->throwPlayer($pl); return true; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if (count($args) > 1) { return false; } if (count($args) == 0) { if (!MPMU::inGame($sender)) { return true; } $target = $sender; $other = false; } else { if (!MPMU::access($sender, "gb.cmd." . $cmd->getName() . ".others")) { return true; } if (($target = MPMU::getPlayer($sender, $args[0])) == null) { return true; } $other = true; } $n = strtolower($target->getName()); if ($target->isOp()) { // Player is dropping from op... $this->reops[$n] = true; $target->setOp(false); if ($other) { $sender->sendMessage(mc::_("%1% is no longer Op", $target->getDisplayName())); } $target->sendMessage(mc::_("You are no longer Op")); return true; } // Player wants to resume op if (isset($this->reops[$n])) { $target->setOp(true); unset($this->reops[$n]); if ($other) { $sender->sendMessage(mc::_("%1% is now Op", $target->getDisplayName())); } $target->sendMessage(mc::_("You are now Op")); return true; } // This player can not be re-opped if ($other) { $sender->sendMessage(mc::_("That is not possible")); return true; } $sender->sendMessage(mc::_("You are not allowed to do this")); return true; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if ($cmd->getName() != "slay") { return false; } if (!isset($args[0])) { $sender->sendMessage(mc::_("Must specify a player to slay")); return false; } if (($victim = MPMU::getPlayer($sender, array_shift($args))) === null) { return true; } $this->slay($victim, implode(" ", $args)); $sender->sendMessage(TextFormat::RED . mc::_("%1% has been slain.", $victim->getName())); return true; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if ($cmd->getName() != "burn") { return false; } if (count($args) > 2 || count($args) == 0) { return false; } if (($pl = MPMU::getPlayer($sender, $args[0])) === null) { return true; } $secs = self::DEFAULTSECS; if (isset($args[1])) { $secs = intval($args[1]); } if ($secs <= 1) { $secs = self::DEFAULTSECS; } $pl->setOnFire($secs); return true; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if ($cmd->getName() != "perm") { return false; } $pageNumber = $this->getPageNumber($args); if (count($args) < 2) { return false; } if (($target = MPMU::getPlayer($sender, $args[0])) === null) { return true; } array_shift($args); if (strtolower($args[0]) == "dump") { if (count($args) != 1) { return false; } $txt = [TextFormat::YELLOW . mc::_("Permissions for %1%", $target->getName())]; $target->recalculatePermissions(); foreach ($target->getEffectivePermissions() as $pp) { $txt[] = TextFormat::GREEN . $pp->getPermission() . ": " . TextFormat::WHITE . ($pp->getValue() ? mc::_("YES") : mc::_("NO")); } return $this->paginateText($sender, $pageNumber, $txt); } $perm = array_shift($args); if (count($args) > 1) { return false; } if (count($args) == 1) { $bool = filter_var(array_shift($args), FILTER_VALIDATE_BOOLEAN); $n = strtolower($target->getName()); if (!isset($this->perms[$n])) { $this->perms[$n] = $target->addAttachment($this->owner); } $at = $this->perms[$n]; $at->setPermission($perm, $bool); } $sender->sendMessage(TextFormat::YELLOW . $target->getName() . "," . TextFormat::GREEN . $perm . ": " . TextFormat::WHITE . ($target->hasPermission($perm) ? mc::_("YES") : mc::_("NO"))); return true; }
public function cmdDismiss(CommandSender $c, $args) { if (count($args) == 0) { return false; } if (!MPMU::inGame($c)) { return true; } $state = $this->getState($c, []); if (count($state) == 0) { $c->sendMessage(mc::_("There is nobody to dismiss")); $c->sendMessage(mc::_("You need to summon people first")); return true; } if ($args[0] == "--all") { $args = array_keys($state); } foreach ($args as $i) { $pl = MPMU::getPlayer($c, $i); if (!$pl) { $i = strtolower($i); if (isset($state[$i])) { unset($state[$i]); } continue; } $pn = strtolower($pl->getName()); if (!isset($state[$pn])) { $c->sendMessage(mc::_("%1% was never summoned", $i)); continue; } $pl->sendMessage(mc::_("You have been dismissed by %1%", $c->getName())); $c->sendMessage(mc::_("Dismissing %1%", $i)); $pl->teleport($state[$pn]); unset($state[$pn]); } $this->setState($c, $state); return true; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if (!MPMU::inGame($sender)) { return true; } if (count($args) != 1) { return false; } if (($b = MPMU::getPlayer($sender, $args[0])) === null) { return true; } switch ($cmd->getName()) { case "tpask": return $this->cmdTpAsk($sender, $b); case "tpahere": return $this->cmdTpHere($sender, $b); case "tpaccept": return $this->cmdAccept($sender, $b); case "tpdecline": return $this->cmdDecline($sender, $b); } return false; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if (count($args) == 0) { $sender->sendMessage(mc::_("Mutes: %1%", count($this->mutes))); if (count($this->mutes)) { $sender->sendMessage(implode(", ", $this->mutes)); } return true; } switch ($cmd->getName()) { case "mute": foreach ($args as $n) { if (($player = MPMU::getPlayer($sender, $n)) === null) { continue; } $this->mutes[strtolower($player->getName())] = $player->getName(); $player->sendMessage(mc::_("You have been muted by %1%", $sender->getName())); $sender->sendMessage(mc::_("%1% is muted.", $n)); } return true; case "unmute": foreach ($args as $n) { if (isset($this->mutes[strtolower($n)])) { unset($this->mutes[strtolower($n)]); $player = $this->owner->getServer()->getPlayer($n); if ($player) { $player->sendMessage(mc::_("You have been unmuted by %1%", $sender->getName())); } $sender->sendMessage(mc::_("%1% is un-muted", $n)); } else { $sender->sendMessage(mc::_("%1% not found or not muted", $n)); } } return true; } return false; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if (strtolower($cmd->getName()) != "xyz") { return false; } if (count($args) == 0) { if (!MPMU::inGame($sender)) { return true; } $sender->sendMessage(mc::_("You are at %1%,%2%,%3% in world %4%, heading %5%", (int) $sender->getX(), (int) $sender->getY(), (int) $sender->getZ(), $sender->getLevel()->getName(), ExpandVars::bearing($sender->getYaw()))); } else { if (count($args) != 1) { return false; } if (!MPMU::access($sender, "gb.cmd.xyz.others")) { return true; } if (($player = MPMU::getPlayer($sender, $args[0])) === null) { return true; } $sender->sendMessage(mc::_("%6% is at %1%,%2%,%3% in world %4%, heading %5%", (int) $player->getX(), (int) $player->getY(), (int) $player->getZ(), $player->getLevel()->getName(), ExpandVars::bearing($player->getYaw()), $player->getDisplayName())); } return true; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { $s = MPMU::iName($sender); switch ($cmd->getName()) { case "followers": $pageNumber = $this->getPageNumber($args); $txt = [mc::_("Leads: %1%", count($this->leaders))]; foreach ($this->leaders as $lead => $followers) { $txt[] = $lead . "(" . count($followers) . "):" . implode(", ", $followers); } return $this->paginateText($sender, $pageNumber, $txt); case "follow": if (!MPMU::inGame($sender)) { return true; } if (count($args) != 1) { return false; } $n = array_shift($args); if (($player = MPMU::getPlayer($sender, $n)) === null) { return true; } if (isset($this->followers[$s])) { $sender->sendMessage(mc::_("You are no longer following %1%", $this->followers[$s])); $this->stopFollowing($s); } $sender->sendMessage(mc::_("You are now following %1%", $n)); $this->follow($s, $player); return true; case "follow-off": if (!MPMU::inGame($sender)) { return true; } if (count($args) != 0) { return false; } if (isset($this->followers[$s])) { $sender->sendMessage(mc::_("You are no longer following %1%", $this->followers[$s])); $this->stopFollowing($s); } else { $sender->sendMessage(mc::_("You are not following anybody")); } return true; case "followme": if (!MPMU::inGame($sender)) { return true; } if (count($args) == 0) { return false; } foreach ($args as $n) { if (($player = MPMU::getPlayer($sender, $n)) === null) { return true; } $this->stopFollowing($player); $this->follow($player, $s); $sender->sendMessage(mc::_("%1% is now following you", $n)); $player->sendMessage(mc::_("You are now following %1%", $s)); } return true; case "followme-off": if (!MPMU::inGame($sender)) { return true; } if (count($args) != 0) { return false; } $this->stopLeading($s); $sender->sendMessage(mc::_("Nobody is following you")); return true; } return false; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { switch ($cmd->getName()) { case "nick": if (!MPMU::inGame($sender)) { return true; } if (count($args) == 0) { $sender->sendMessage(mc::_("Current nick is: %1%", $sender->getDisplayName())); return true; } if (count($args) !== 1) { return false; } $this->owner->getServer(mc::_("%1% is now known as %2%", $sender->getDisplayName(), $args[0])); $sender->setDisplayName($args[0]); return true; case "clearchat": if (!MPMU::inGame($sender)) { return true; } if (count($args) != 0) { return false; } for ($i = 0; $i < 32; ++$i) { $sender->sendMessage(" "); } return true; case "chat-on": case "chat-off": if (count($args) > 0) { switch ($n = strtolower(array_shift($args))) { case "--list": case "--ls": case "-l": if (!MPMU::access($sender, "gb.cmd.togglechat.others")) { return true; } $pageNumber = $this->getPageNumber($args); $txt = [""]; $cols = 8; $i = 0; foreach ($this->owner->getServer()->getOnlinePlayers() as $p) { if (!$this->getState($p, false)) { continue; } $n = $p->getDisplayName(); if ($i++ % $cols == 0) { $txt[] = $n; } else { $txt[count($txt) - 1] .= ", " . $n; } } if ($i == 0) { $sender->sendMessage(mc::_("No players with chat off")); if (!$this->chat) { $sender->sendMessage(mc::_("Chat is GLOBALLY off")); } return true; } if ($this->chat) { $txt[0] = mc::n(mc::_("One player with chat off"), mc::_("%1% players with chat off", $i), $i); } else { $txt[0] = mc::_("Chat is GLOBALLY off"); } return $this->paginateText($sender, $pageNumber, $txt); case "--server": case "--global": case "-g": if (count($args)) { return false; } if (!MPMU::access($sender, "gb.cmd.togglechat.global")) { return true; } if ($cmd->getName() == "chat-off") { $this->setGlobalChat(false); $this->owner->getServer()->broadcastMessage(mc::_("Chat disabled globally from %1%", $sender->getName())); } else { $this->setGlobalChat(true); $this->owner->getServer()->broadcastMessage(mc::_("Chat enabled globally from %1%", $sender->getName())); } return true; default: if (count($args)) { return false; } if (!MPMU::access($sender, "gb.cmd.togglechat.others")) { return true; } if (($player = MPMU::getPlayer($sender, $n)) === null) { return true; } if ($cmd->getName() == "chat-off") { $this->setState($player, true); $player->sendMessage(mc::_("Chat disabled from %1%", $sender->getName())); $sender->sendMessage(mc::_("Chat disabled for %1%", $player->getDisplayName())); } else { $this->unsetState($player); $player->sendMessage(mc::_("Chat enabled from %1%", $sender->getName())); $sender->sendMessage(mc::_("Chat enabled for %1%", $player->getDisplayName())); } return true; } return false; } if (!MPMU::inGame($sender)) { return true; } if ($cmd->getName() == "chat-off") { $this->setState($sender, true); $sender->sendMessage(mc::_("Chat disabled")); } else { $this->unsetState($sender); $sender->sendMessage(mc::_("Chat enabled")); } return true; } return false; }
private function spyCmd(CommandSender $sender, $args) { if (count($args) == 0) { return false; } switch (strtolower($args[0])) { case "status": if (count($args) > 2) { return false; } if (count($args) == 1) { if (!MPMU::inGame($sender)) { return true; } $pl = $sender; } else { if (($pl = MPMU::getPlayer($sender, $args[0])) == null) { return true; } } if (!$this->spy->isTapping($pl)) { $sender->sendMessage(mc::_("%1% is not spying", $pl->getName())); return true; } $taps = $this->spy->getTaps($pl); if ($taps == null) { $sender->sendMessage(mc::_("%1% has a global tap", $pl->getName())); return true; } $sender->sendMessage(mc::_("%1% spying on: %2%", $pl->getName(), implode(", ", $taps))); return true; case "start": case "stop": if (count($args) != 2) { return false; } if (!MPMU::inGame($sender)) { return true; } $ena = strtolower($args[0]) == "start"; if ($ena) { if (!$this->spy->isTapping($sender)) { $this->spy->configTap($sender, [$this, "spyCb"]); } } switch (strtolower($args[1])) { case "--all": $this->spy->setTap($sender, null, $ena); if ($ena) { $this->owner->getServer()->broadcastMessage(mc::_("%1% activated a global tap", $sender->getName())); } else { $this->spy->configTap($sender, null); $this->owner->getServer()->broadcastMessage(mc::_("%1% stopped tapping", $sender->getName())); } return true; case "--console": $this->spy->setTap($sender, SpySession::CONSOLE, $ena); $this->spy->setTap($sender, SpySession::RCON, $ena); $this->owner->getServer()->broadcastMessage($ena ? mc::_("%1% activated a console tap", $sender->getName()) : mc::_("%1% stopped a console tap")); break; default: if (($pl = MPMU::getPlayer($sender, $args[1])) == null) { return true; } $this->spy->setTap($sender, $pl, $ena); $this->owner->getServer()->broadcastMessage($ena ? mc::_("%1% is spying on %2%", $sender->getName(), $pl->getName()) : mc::_("%1% stopped spying on %2%", $sender->getName(), $pl->getName())); break; } if (!$ena) { if (count($this->spy->getTaps($sender)) == 0) { $this->spy->configTap($sender, null); } } return true; } return false; }
private function cmdWarp(CommandSender $sender, $args) { switch (count($args)) { case 0: $warps = $this->getWarps(); if (count($warps)) { $sender->sendMessage(mc::_("Warps(%1%): %2%", count($warps), implode(", ", $warps))); } else { $sender->sendMessage(mc::_("No warps defined")); } return true; case 1: if (!MPMU::inGame($sender)) { return true; } $n = strtolower($args[0]); $pos = $this->getWarp($n); if ($pos === null) { $sender->sendMessage(mc::_("Warp %1% does not exist", $args[0])); return true; } if (!MPMU::access($sender, "gb.warp." . $n)) { return true; } $sender->sendMessage(mc::_("Warping to %1%", $args[0])); $sender->teleport($pos); return true; case 2: if (!MPMU::access($sender, "gb.cmd.warp.other")) { return true; } if (($player = MPMU::getPlayer($sender, $args[0])) === null) { return true; } $n = strtolower($args[1]); $pos = $this->getWarp($n); if ($pos === null) { $player->sendMessage(mc::_("Warp %1% does not exist", $args[1])); return true; } if (!MPMU::access($sender, "gb.warp." . $n)) { return true; } $player->sendMessage(mc::_("You are being warped to %1% by %2%", $args[1], $sender->getName())); $player->teleport($pos); $sender->sendMessage(mc::_("%1% was warped to %2%", $player->getDisplayName(), $args[1])); return true; } return false; }
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args) { if (count($args) == 0) { $sender->sendMessage(mc::_("Frozen: %1%", count($this->frosties))); if (count($this->frosties)) { $sender->sendMessage(implode(", ", $this->frosties)); } return true; } switch ($cmd->getName()) { case "freeze": if ($args[0] == "--hard") { $sender->sendMessage(mc::_("Now doing hard freeze")); $this->setHardFreeze(true); return true; } elseif ($args[0] == "--soft") { $sender->sendMessage(mc::_("Now doing soft freeze")); $this->setHardFreeze(false); return true; } foreach ($args as $n) { if (($player = MPMU::getPlayer($sender, $n)) === null) { continue; } $this->frosties[strtolower($player->getName())] = $player->getName(); $player->sendMessage(mc::_("You have been frozen by %1%", $sender->getName())); $sender->sendMessage(mc::_("%1% is frozen.", $n)); } return true; case "thaw": foreach ($args as $n) { if (isset($this->frosties[strtolower($n)])) { unset($this->frosties[strtolower($n)]); $player = $this->owner->getServer()->getPlayer($n); if ($player) { $player->sendMessage(mc::_("You have been thawed by %1%", $sender->getName())); } $sender->sendMessage(mc::_("%1% is thawed", $n)); } else { $sender->sendMessage(mc::_("%1% not found or not thawed", $n)); } } return true; } return false; }