sendMessage() public method

Sends a direct chat message to a player
public sendMessage ( string | TextContainer $message ) : boolean
$message string | pocketmine\event\TextContainer
return boolean
Beispiel #1
1
 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);
         }
     }
 }
Beispiel #2
0
 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");
 }
Beispiel #3
0
 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 <유저명> - 전적표시.");
 }
Beispiel #4
0
 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));
 }
Beispiel #5
0
 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);
 }
Beispiel #6
0
 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"));
 }
Beispiel #7
0
 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.");
     }
 }
Beispiel #8
0
 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);
     }
 }
Beispiel #9
0
 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);
     }
 }
Beispiel #11
0
 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
 }
Beispiel #12
0
 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")));
 }
Beispiel #13
0
 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;
 }
Beispiel #14
0
 /**
  * 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;
 }
Beispiel #17
0
 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);
 }
Beispiel #19
0
 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);
     }
 }
Beispiel #20
0
 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!");
             }
         }
     }
 }
Beispiel #21
0
 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");
             }
         }
     }
 }
Beispiel #22
0
 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;
 }
Beispiel #25
0
 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));
     }
 }
Beispiel #28
0
 public function sendMessageDirect($text)
 {
     $this->player->sendMessage($text);
 }
 public function sendMessage($message, Channel $channel)
 {
     $this->player->sendMessage("<#{$channel}> {$message}");
 }
Beispiel #30
0
 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.");
 }