mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-30 07:09:56 +00:00
Added capability to get/set screen height in lines for each CommandSender to alter page sizes of command output such as /help (#1144)
This commit is contained in:
parent
6b773dc04d
commit
a7f5ee2f3e
@ -325,6 +325,9 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
|
||||
/** @var PermissibleBase */
|
||||
private $perm = null;
|
||||
|
||||
/** @var int|null */
|
||||
protected $lineHeight = null;
|
||||
|
||||
public function getLeaveMessage(){
|
||||
return new TranslationContainer(TextFormat::YELLOW . "%multiplayer.player.left", [
|
||||
$this->getDisplayName()
|
||||
@ -461,6 +464,17 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
|
||||
$this->removeFormat = (bool) $remove;
|
||||
}
|
||||
|
||||
public function getScreenLineHeight() : int{
|
||||
return $this->lineHeight ?? 7;
|
||||
}
|
||||
|
||||
public function setScreenLineHeight(int $height = null){
|
||||
if($height !== null and $height < 1){
|
||||
throw new \InvalidArgumentException("Line height must be at least 1");
|
||||
}
|
||||
$this->lineHeight = $height;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Player $player
|
||||
*
|
||||
|
@ -44,5 +44,17 @@ interface CommandSender extends Permissible{
|
||||
*/
|
||||
public function getName();
|
||||
|
||||
/**
|
||||
* Returns the line height of the command-sender's screen. Used for determining sizes for command output pagination
|
||||
* such as in the /help command.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getScreenLineHeight() : int;
|
||||
|
||||
/**
|
||||
* Sets the line height used for command output pagination for this command sender. `null` will reset it to default.
|
||||
* @param int|null $height
|
||||
*/
|
||||
public function setScreenLineHeight(int $height = null);
|
||||
}
|
@ -31,11 +31,15 @@ use pocketmine\permission\PermissionAttachmentInfo;
|
||||
use pocketmine\plugin\Plugin;
|
||||
use pocketmine\Server;
|
||||
use pocketmine\utils\MainLogger;
|
||||
use pocketmine\utils\Terminal;
|
||||
|
||||
class ConsoleCommandSender implements CommandSender{
|
||||
|
||||
private $perm;
|
||||
|
||||
/** @var int|null */
|
||||
protected $lineHeight = null;
|
||||
|
||||
public function __construct(){
|
||||
$this->perm = new PermissibleBase($this);
|
||||
}
|
||||
@ -139,4 +143,15 @@ class ConsoleCommandSender implements CommandSender{
|
||||
|
||||
}
|
||||
|
||||
public function getScreenLineHeight() : int{
|
||||
return $this->lineHeight ?? PHP_INT_MAX;
|
||||
}
|
||||
|
||||
public function setScreenLineHeight(int $height = null){
|
||||
if($height !== null and $height < 1){
|
||||
throw new \InvalidArgumentException("Line height must be at least 1");
|
||||
}
|
||||
$this->lineHeight = $height;
|
||||
}
|
||||
|
||||
}
|
@ -60,11 +60,7 @@ class HelpCommand extends VanillaCommand{
|
||||
$pageNumber = 1;
|
||||
}
|
||||
|
||||
if($sender instanceof ConsoleCommandSender){
|
||||
$pageHeight = PHP_INT_MAX;
|
||||
}else{
|
||||
$pageHeight = 7;
|
||||
}
|
||||
$pageHeight = $sender->getScreenLineHeight();
|
||||
|
||||
if($command === ""){
|
||||
/** @var Command[][] $commands */
|
||||
|
Loading…
x
Reference in New Issue
Block a user