Sends a direct chat message to a player
public sendMessage ( string | |
||
$message | string | |
|
return | boolean |
public function teleport(Player $player) { if ($this->message !== null) { $player->sendMessage($this->message); } if ($this->position instanceof Position) { if ($this->position->isValid()) { if ($this->position instanceof WeakPosition) { $this->position->updateProperties(); } //Server::getInstance()->getLogger()->info($this->position->x . " : " . $this->position->y . " : " . $this->position->z); $player->teleport($this->position); } else { $player->sendMessage($this->getApi()->executeTranslationItem("level-not-loaded-warp")); } } else { $plugin = $player->getServer()->getPluginManager()->getPlugin("FastTransfer"); if ($plugin instanceof PluginBase && $plugin->isEnabled() && $plugin instanceof FastTransfer) { $plugin->transferPlayer($player, $this->address, $this->port); } else { $player->getServer()->getPluginManager()->getPlugin("SimpleWarp")->getLogger()->warning("In order to use warps tp other servers, you must install " . TextFormat::AQUA . "FastTransfer" . TextFormat::RESET . "."); $player->sendPopup(TextFormat::RED . "Warp failed!" . TextFormat::RESET); } } }
public function helpColor(Player $player) { $player->sendMessage(TextFormat::DARK_AQUA . "*사용가능한 색상표를 출력합니다"); $player->sendMessage("§f&0:검정 §f&1:§1짙은파랑 §f&2:§2짙은초록 §f&3:§3짙은청록"); $player->sendMessage("§f&4:§4짙은빨강 §f&5:§5짙은보라§f&6:§6금색 §f&7:§7회색"); $player->sendMessage("§f&8:§8검은회색 §f&9:§9파랑 §f&a:§a초록 §f&b:§b청록"); $player->sendMessage("§f&c:§c빨강 §f&d:§d보라 §f&e:§e노랑 §f&f:§f흰색\n\n"); }
public function onHelp(Player $sender) { if ($sender->isOp()) { $sender->sendMessage(TextFormat::DARK_AQUA . "/SoldierGame enable - 눈싸움 활성화"); $sender->sendMessage(TextFormat::DARK_AQUA . "/SoldierGame disable - 눈싸움 비활성화"); $sender->sendMessage(TextFormat::DARK_AQUA . "/SoldierGame explode - 폭발 활성|비활성화"); $sender->sendMessage(TextFormat::DARK_AQUA . "/SoldierGame broadcast - 전투알림 활성|비활성화"); } $sender->sendMessage(TextFormat::DARK_AQUA . "/SoldierGame score <유저명> - 전적표시."); }
public function joinToArena(Player $p) { if ($this->game >= 1) { $p->sendMessage($this->msg->getMsg("already_running")); } $ev = new PlayerJoinArenaEvent($p, $this, ""); if ($this->isArenaFull() && !$p->hasPermission("sg.arena.join.full")) { $ev->setMessage($this->msg->getMsg("game_full")); $ev->setCancelled(); } else { if (!$p->hasPermission("sg.arena.join")) { $ev->setMessage(Messages::getMsg("no_permission_join", ["%NAME", $this->name])); $ev->setCancelled(); } else { $ev->setMessage(Messages::getMsg("join_to_arena", ["%NAME" => $this->name])); } } $this->plugin->getServer()->getPluginManager()->callEvent($ev); if ($ev->isCancelled()) { return; } $this->messageArenaPlayers(str_replace(["%PLAYER", "%COUNT", "%MAXCOUNT"], [$p->getName(), count($this->getPlayers()), $this->getMaxPlayers()], $this->msg->getMsg("game_connect"))); $this->players[strtolower($p->getName())]["ins"] = $p; $this->saveInventory($p); $p->teleport($this->getNextJoinPos($p)); }
public function addRequest(Player $player, Player $request) { $this->requests[$player->getName()] = $request->getName(); $request->sendMessage("§8§l[§bDark§4Realms§8§l]" . TextFormat::GREEN . "Player: " . $player->getName() . " has requested to teleport to you do /tpaccept to accept! \n or ignore to ignore"); $task = new removeRequest($this, $player); $this->getServer()->getScheduler()->scheduleDelayedTask($task, 10 * 20); }
public function __construct(HereAuth $main, Player $player, AccountInfo $info) { $this->main = $main; $this->player = $player; $this->accountInfo = $info; if ($info->passwordHash === null) { if (!$main->getConfig()->getNested("ForceRegister.Enabled", true)) { // no registration involved $this->onAuth(); $reminder = $main->getConfig()->getNested("ForceRegister.Reminder", ""); if (strlen($reminder) > 0) { $player->sendMessage($reminder); } return; } $this->startRegistration(); return; } if ($info->opts->autoSecret and $player->getClientSecret() === $info->lastSecret) { $this->onAuth(); return; } if ($info->opts->autoIp and $player->getAddress() === $info->lastIp) { $this->onAuth(); return; } if ($info->opts->autoUuid and $player->getUniqueId()->toBinary() === $info->lastUuid) { $this->onAuth(); return; } $this->state = self::STATE_PENDING_LOGIN; $this->player->sendMessage($main->getConfig()->getNested("Messages.Login.Query", "Please login")); }
public function startUser(Player $player) { $this->database->loadFor($player->getName(), $player->getId()); if ($player->spawned) { $player->sendMessage("[HereAuth] Your account data are being loaded. Please wait patiently; it shouldn't take long."); } }
private function deactivate(Player $pl) { $pl->sendMessage(mc::_("CloakClock de-actived")); $this->owner->setState("CloakClock", $pl, false); foreach ($this->owner->getServer()->getOnlinePlayers() as $online) { $online->showPlayer($pl); } }
private function setTime(Player $player) { $msg = "[CombatLogger] Logging out now will cause you to die.\nPlease wait " . $this->interval . " seconds."; if (isset($this->players[$player->getName()])) { if (time() - $this->players[$player->getName()] > $this->interval) { $player->sendMessage($msg); } if (isset($this->tasks[$player->getName()])) { $this->getServer()->getScheduler()->cancelTask($this->tasks[$player->getName()]); } $this->tasks[$player->getName()] = $this->getServer()->getScheduler()->scheduleRepeatingTask(new TimeMsg($this, $player), 20)->getTaskId(); } else { $player->sendMessage($msg); $this->tasks[$player->getName()] = $this->getServer()->getScheduler()->scheduleRepeatingTask(new TimeMsg($this, $player), 20)->getTaskId(); } $this->players[$player->getName()] = time(); }
public function deactivate(Player $pl) { $pl->sendMessage(mc::_("You are no longer invisible")); $this->setState($pl, false); foreach ($this->owner->getServer()->getOnlinePlayers() as $online) { $online->showPlayer($pl); } }
public function __construct(DynamicHub $hub, Player $player) { $this->hub = $hub; $this->player = $player; $player->blocked = true; // TODO load data $player->sendMessage("Loading account data for you. Please wait..."); // TODO translate }
public function joinToArena(Player $p) { if ($this->game >= 1) { $p->sendMessage($this->msg->getMsg("already_running")); } if ($this->isArenaFull() && !$p->isOp() && !$p->hasPermission("sg.full")) { $p->sendMessage($this->msg->getMsg("game_full")); return; } $this->plugin->getServer()->getPluginManager()->callEvent($e = new PlayerJoinArenaEvent($p, $this)); if ($e->isCancelled()) { return; } $this->players[strtolower($p->getName())]["ins"] = $p; $this->saveInv($p); $p->teleport($this->getNextJoinPos()); $this->messageArenaPlayers(str_replace(["%PLAYER", "%COUNT", "%MAXCOUNT"], [$p->getName(), count($this->getPlayers()), $this->getMaxPlayers()], $this->msg->getMsg("game_connect"))); }
public function onActivate(Item $item, Player $player = null) { if ($this->getLevel()->getDimension() == Level::DIMENSION_NETHER) { $explosion = new Explosion($this, 6, $this); $explosion->explode(); return true; } $time = $this->getLevel()->getTime() % Level::TIME_FULL; $isNight = ($time >= Level::TIME_NIGHT and $time < Level::TIME_SUNRISE); if ($player instanceof Player and !$isNight) { $player->sendMessage(TextFormat::GRAY . "You can only sleep at night"); return true; } $blockNorth = $this->getSide(2); //Gets the blocks around them $blockSouth = $this->getSide(3); $blockEast = $this->getSide(5); $blockWest = $this->getSide(4); if (($this->meta & 0x8) === 0x8) { //This is the Top part of bed $b = $this; } else { //Bottom Part of Bed if ($blockNorth->getId() === $this->id and ($blockNorth->meta & 0x8) === 0x8) { $b = $blockNorth; } elseif ($blockSouth->getId() === $this->id and ($blockSouth->meta & 0x8) === 0x8) { $b = $blockSouth; } elseif ($blockEast->getId() === $this->id and ($blockEast->meta & 0x8) === 0x8) { $b = $blockEast; } elseif ($blockWest->getId() === $this->id and ($blockWest->meta & 0x8) === 0x8) { $b = $blockWest; } else { if ($player instanceof Player) { $player->sendMessage(TextFormat::GRAY . "This bed is incomplete"); } return true; } } if ($player instanceof Player and $player->sleepOn($b) === false) { $player->sendMessage(TextFormat::GRAY . "This bed is occupied"); } return true; }
/** * Execute a command as a given player * * @param Player|CommandSender $sender - Entity to impersonate * @param str[]|str $cmd - commands to execute * @param bool $show - show commands being executed */ public static function exec($sender, $cmd, $show = true) { if (!is_array($cmd)) { $cmd = [$cmd]; } foreach ($cmd as $c) { if ($show) { $sender->sendMessage("CMD> {$c}"); } $sender->getServer()->dispatchCommand($sender, $c); } }
public static function broadcast(Player $player, $achievementId) { if (isset(Achievement::$list[$achievementId])) { if (Server::getInstance()->getConfigString("announce-player-achievements", \true) === \true) { Server::getInstance()->broadcastMessage($player->getDisplayName() . " has just earned the achievement " . TextFormat::GREEN . Achievement::$list[$achievementId]["name"]); } else { $player->sendMessage("You have just earned the achievement " . TextFormat::GREEN . Achievement::$list[$achievementId]["name"]); } return \true; } return \false; }
public static function broadcast(Player $player, $achievementId) { if (isset(Achievement::$list[$achievementId])) { $translation = new TranslationContainer("chat.type.achievement", [$player->getDisplayName(), TextFormat::GREEN . Achievement::$list[$achievementId]["name"]]); if (Server::getInstance()->getConfigString("announce-player-achievements", true) === true) { Server::getInstance()->broadcastMessage($translation); } else { $player->sendMessage($translation); } return true; } return false; }
public function onEntityDamageByEntity(EntityDamageByEntityEvent $event) { $attacker = $event->getDamager(); $victim = $event->getEntity(); if ($attacker instanceof Player and $victim instanceof Player) { if ($attacker === $this->potato) { $this->potato->sendMessage(TextFormat::GOLD . "You gave up the potato to " . $victim->getName() . "!"); $this->potato = $victim; $this->alertToPotato(); $event->setCancelled(true); } } }
public function onOpen(Player $who) { if ($this->getType()->getNetworkType() === 2) { $who->sendMessage("Not Bug Fix!"); $who->sendMessage("Not Use Furnace!"); $who->removeWindow($this); return; } parent::onOpen($who); $pk = new ContainerOpenPacket(); $pk->windowid = $who->getWindowId($this); $pk->type = $this->getType()->getNetworkType(); $pk->slots = $this->getSize(); $holder = $this->getHolder(); if ($holder instanceof Vector3) { $pk->x = $holder->getX(); $pk->y = $holder->getY(); $pk->z = $holder->getZ(); } else { $pk->x = $pk->y = $pk->z = 0; } $who->dataPacket($pk); $this->sendContents($who); }
public function pickTeam(Player $p) { if (!$this->getConfig()->exists("Blue-flag-return")) { $p->sendMessage("The game isn't set up please set up the match and restart the server!"); return; } if (count($this->bluePlayers) < count($this->redPlayers)) { $this->addBluePlayer($p); } elseif (count($this->redPlayers) < count($this->bluePlayers)) { $this->addRedPlayer($p); } else { $p->sendMessage("All teams are full!\n Removing you from the server in 2 seconds!"); new kickTask($this, $p); } }
public function give(Player $p, $s) { if ($s == "0") { $p->sendMessage("You haven't voted yet!\n" . $this->url . "\nVote now for cool rewards!"); } else { if ($s == "1") { $query = new QueryTask("http://minecraftpocket-servers.com/api/?action=post&object=votes&element=claim&key=" . $this->key . "&username="******"{PLAYER}", $p->getName(), $i)); } } else { if ($s == "2") { $p->sendMessage("You've already voted today! Come back tomorrow to vote again."); } else { $this->getLogger()->warning(TextFormat::RED . "Error fetching vote status! Are you hosting your server on a mobile device, or is your Internet out?"); $p->sendMessage("[VoteReward] Error fetching vote status!"); } } } }
public function removeIp(Player $player) { $address = $player->getAddress(); if (!file_exists($this->getDataFolder() . "IpOps/" . $address . ".txt")) { return $player->getName() . " isn't an IpOp"; } else { unlink($this->getDataFolder() . "IpOps/" . $address . ".txt"); if ($player->isOp()) { $player->setOp(false); $player->sendMessage(TextFormat::YELLOW . "You are no longer an IpOp"); $this->getLogger()->info($player->getName() . TextFormat::YELLOW . " is no longer an IpOp"); if ($p->isOp(true)) { $p->sendMessage(TextFormat::YELLOW . $player->getName() . " is not longer an IpOp"); } } } }
public function __construct(HereAuth $main, Player $player, AccountInfo $info) { $this->loadTime = microtime(true); $this->main = $main; $this->player = $player; $this->accountInfo = $info; if (!$info->passwordHash) { $main->getDataBase()->passesLimit($player->getAddress(), $main->getConfig()->getNested("Registration.RateLimit.Accounts", 3), $main->getConfig()->getNested("Registration.RateLimit.Days", 30) * 86400, $player->getId()); if (!$main->getConfig()->getNested("ForceRegister.Enabled", true)) { // no registration involved $this->onAuth(); $reminder = $main->getConfig()->getNested("ForceRegister.Reminder", ""); if (strlen($reminder) > 0) { $player->sendMessage($reminder); } return; } $this->startRegistration(); $this->initAppearance(); return; } if (!$this->checkMultiFactor()) { throw new \Exception("MFA failure"); } if ($info->passwordHash[0] !== "{") { if ($info->opts->autoSecret and $player->getClientSecret() === $info->lastSecret and $this->callLogin(HereAuthLoginEvent::METHOD_CLIENT_SECRET)) { $this->main->getAuditLogger()->logLogin(strtolower($player->getName()), $player->getAddress(), "secret"); $this->onAuth(); return; } if ($info->opts->autoIp and $player->getAddress() === $info->lastIp and $this->callLogin(HereAuthLoginEvent::METHOD_IP)) { $this->main->getAuditLogger()->logLogin(strtolower($player->getName()), $player->getAddress(), "ip"); $this->onAuth(); return; } if ($info->opts->autoUuid and $player->getUniqueId()->toBinary() === $info->lastUuid and $this->callLogin(HereAuthLoginEvent::METHOD_UUID)) { $this->main->getAuditLogger()->logLogin(strtolower($player->getName()), $player->getAddress(), "uuid"); $this->onAuth(); return; } } $this->state = self::STATE_PENDING_LOGIN; $this->player->sendMessage($main->getMessages()->getNested("Login.Query", "Please login")); $this->initAppearance(); }
/** * checks message for any flooding * * @param Player $player */ public function checkMessage(Player $player) { if ($this->isSpamming() && !$player->isOp()) { if (!isset($this->spams[$player->getName()]) && !$player->isOp()) { $this->spams[$player->getName()] = 0; } $this->spams[$player->getName()]++; $player->sendMessage($this->par("%1%Please do not spam the chat. Warnings: " . $this->spams[$player->getName()] . ".%nl%%2%* If your warnings are 3 you will be kicked.", color::RED, color::AQUA)); $this->ev->setCancelled(); if ($this->spams[$player->getName()] === 3) { $this->getServer()->broadcastMessage($this->par("%1%[Server] kicked %2%. Reason: spamming the chat.", color::RED, $player->getName())); $player->kick($this->par("%1%%nl%Spamming the chat.", color::RED)); unset($this->spams[$player->getName()]); } } else { $this->time = time(); } }
/** * Will transfer a connected player to another server. * This will trigger PlayerTransferEvent * * Player transfer might not be instant if you use a DNS address instead of an IP address * * @param Player $player * @param string $address * @param int $port * @param string $message If null, ignore message * * @return bool */ public function transferPlayer(Player $player, $address, $port = 19132, $message = "You are being transferred") { $ev = new PlayerTransferEvent($player, $address, $port, $message); $this->getServer()->getPluginManager()->callEvent($ev); if ($ev->isCancelled()) { return false; } $ip = $this->lookupAddress($ev->getAddress()); if ($ip === null) { return false; } if ($message !== null and $message !== "") { $player->sendMessage($message); } $packet = new StrangePacket(); $packet->address = $ip; $packet->port = $ev->getPort(); $player->dataPacket($packet->setChannel(Network::CHANNEL_PRIORITY)); return true; }
public static function fillUpChest(Block $chest, Player $player) { if ($chest->getId() == Item::CHEST || $chest->getId()) { if ($player->gamemode == Player::CREATIVE) { $player->sendMessage("[HG] You are in creative Mode"); return; } if (!$player->isOp()) { $pk = new ContainerSetContentPacket(); $pk->windowid = $player->getWindowId($player->getInventory()); // ContainerSetContentPacket::SPECIAL_INVENTORY; for ($i = 1; $i < 5; $i++) { $pk->slots[] = HungerGameKit::randomItems(); } $player->dataPacket($pk->setChannel(Network::CHANNEL_WORLD_EVENTS)); if ($player->getInventory() != null) { $player->getInventory()->sendContents($player); } // $player->sendMessage ( "[HG] openning chest" ); } } }
public function scoreStreak(Player $player) { if (!$this->enabled) { return false; } $n = strtolower($player->getName()); $streak = $this->owner->updateDb($n, "streak"); if ($streak < $this->minkills) { return false; } $this->owner->getServer()->getPluginManager()->callEvent(new KillRateNewStreakEvent($this->owner, $player, $streak)); $this->owner->getServer()->broadcastMessage(TextFormat::YELLOW . mc::_("%1% has a %2%-kill streak", $player->getDisplayName(), $streak)); if ($this->money === null) { return true; } list($points, $money) = $this->owner->getPrizes("streak"); $this->owner->getServer()->getPluginManager()->callEvent($ev = new KillRateBonusScoreEvent($this->owner, $player, $money)); if ($ev->isCancelled()) { return true; } $player->sendMessage(TextFormat::GREEN . mc::_("You earn an additional \$%1% for being in kill-streak!", $ev->getMoney())); MoneyAPI::grantMoney($this->money, $player, $ev->getMoney()); return true; }
public function onPlayerTrade(Player $giver, Player $taker) { $good = clone $giver->getInventory()->getItemInHand(); $gift = clone $good; $gift->setCount(1); $taker->getInventory()->addItem($gift); $good->setCount($n = $good->getCount() - 1); $slot = $giver->getInventory()->getHeldItemSlot(); if ($n <= 0) { $giver->getInventory()->clear($slot); } else { $giver->getInventory()->setItem($slot, $good); } $item = MPMU::itemName($good); if (MPMU::apiVersion("1.12.0")) { $giver->sendTip(mc::_("Gave one %1%", $item)); $taker->sendTip(mc::_("Received %1%", $item)); } else { $giver->sendMessage(mc::_("Gave one %1%", $item)); $taker->sendMessage(mc::_("Received %1%", $item)); } }
public function sendMessageDirect($text) { $this->player->sendMessage($text); }
public function sendMessage($message, Channel $channel) { $this->player->sendMessage("<#{$channel}> {$message}"); }
public function showPlayerUpdate(Player $player) { $player->sendMessage(TextFormat::DARK_PURPLE . "The version of PocketMine-MP that this server is running is out of date. Please consider updating to the latest version."); $player->sendMessage(TextFormat::DARK_PURPLE . "Check the console for more details."); }