mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-08 02:42:58 +00:00
relying on permission subscriptions for this was unreliable (a permissible is not always subscribed to a permission even when it does have it), and also difficult to control (for example there have been various bugs in the past where a Player ended up subscribed to broadcast permissions when it didn't expect to be, thanks to permission recalculation happening too early). In addition, we might in the future want to have broadcast receivers which are not permissibles (i.e. a more general interface than CommandSender (why does a broadcast receiver need to also be a command sender, anyway?)), which the permission system wouldn't be suitable for.
97 lines
2.2 KiB
PHP
97 lines
2.2 KiB
PHP
<?php
|
|
|
|
/*
|
|
*
|
|
* ____ _ _ __ __ _ __ __ ____
|
|
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
|
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
|
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
|
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* @author PocketMine Team
|
|
* @link http://www.pocketmine.net/
|
|
*
|
|
*
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace pocketmine\event\player;
|
|
|
|
use pocketmine\command\CommandSender;
|
|
use pocketmine\event\Cancellable;
|
|
use pocketmine\event\CancellableTrait;
|
|
use pocketmine\player\Player;
|
|
use pocketmine\utils\Utils;
|
|
|
|
/**
|
|
* Called when a player chats something
|
|
*/
|
|
class PlayerChatEvent extends PlayerEvent implements Cancellable{
|
|
use CancellableTrait;
|
|
|
|
/** @var string */
|
|
protected $message;
|
|
|
|
/** @var string */
|
|
protected $format;
|
|
|
|
/** @var CommandSender[] */
|
|
protected $recipients = [];
|
|
|
|
/**
|
|
* @param CommandSender[] $recipients
|
|
*/
|
|
public function __construct(Player $player, string $message, array $recipients, string $format = "chat.type.text"){
|
|
$this->player = $player;
|
|
$this->message = $message;
|
|
|
|
$this->format = $format;
|
|
|
|
$this->recipients = $recipients;
|
|
}
|
|
|
|
public function getMessage() : string{
|
|
return $this->message;
|
|
}
|
|
|
|
public function setMessage(string $message) : void{
|
|
$this->message = $message;
|
|
}
|
|
|
|
/**
|
|
* Changes the player that is sending the message
|
|
*/
|
|
public function setPlayer(Player $player) : void{
|
|
$this->player = $player;
|
|
}
|
|
|
|
public function getFormat() : string{
|
|
return $this->format;
|
|
}
|
|
|
|
public function setFormat(string $format) : void{
|
|
$this->format = $format;
|
|
}
|
|
|
|
/**
|
|
* @return CommandSender[]
|
|
*/
|
|
public function getRecipients() : array{
|
|
return $this->recipients;
|
|
}
|
|
|
|
/**
|
|
* @param CommandSender[] $recipients
|
|
*/
|
|
public function setRecipients(array $recipients) : void{
|
|
Utils::validateArrayValueType($recipients, function(CommandSender $_) : void{});
|
|
$this->recipients = $recipients;
|
|
}
|
|
}
|