public static broadcastCommandMessage ( pocketmine\command\CommandSender $source, string $message, boolean $sendToSource = true ) | ||
$source | pocketmine\command\CommandSender | |
$message | string | |
$sendToSource | boolean |
public static function broadcastCommandMessage(CommandSender $source, $message, $sendToSource = true)
{
if ($message instanceof TextContainer) {
$m = clone $message;
$result = "[" . $source->getName() . ": " . ($source->getServer()->getLanguage()->get($m->getText()) !== $m->getText() ? "%" : "") . $m->getText() . "]";
$users = $source->getServer()->getPluginManager()->getPermissionSubscriptions(Server::BROADCAST_CHANNEL_ADMINISTRATIVE);
$colored = TextFormat::GRAY . TextFormat::ITALIC . $result;
$m->setText($result);
$result = clone $m;
$m->setText($colored);
$colored = clone $m;
} else {
$users = $source->getServer()->getPluginManager()->getPermissionSubscriptions(Server::BROADCAST_CHANNEL_ADMINISTRATIVE);
$result = new TranslationContainer("chat.type.admin", [$source->getName(), $message]);
$colored = new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . "%chat.type.admin", [$source->getName(), $message]);
}
if ($sendToSource === true and !$source instanceof ConsoleCommandSender) {
$source->sendMessage($message);
}
foreach ($users as $user) {
if ($user instanceof CommandSender) {
if ($user instanceof ConsoleCommandSender) {
$user->sendMessage($result);
} elseif ($user !== $source) {
$user->sendMessage($colored);
}
}
}
}
public function execute(CommandSender $sender, $currentAlias, array $args) { if (!$this->testPermission($sender)) { return true; } if (count($args) < 2) { $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage])); return true; } $player = $sender->getServer()->getPlayer($args[0]); $item = Item::fromString($args[1]); if (!isset($args[2])) { $item->setCount($item->getMaxStackSize()); } else { $item->setCount((int) $args[2]); } if ($player instanceof Player) { if ($item->getId() === 0) { $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.give.item.notFound", [$args[1]])); return true; } //TODO: overflow $player->getInventory()->addItem(clone $item); } else { $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound")); return true; } Command::broadcastCommandMessage($sender, new TranslationContainer("%commands.give.success", [$item->getName() . " (" . $item->getId() . ":" . $item->getDamage() . ")", (string) $item->getCount(), $player->getName()])); return true; }