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 */
|
/** @var PermissibleBase */
|
||||||
private $perm = null;
|
private $perm = null;
|
||||||
|
|
||||||
|
/** @var int|null */
|
||||||
|
protected $lineHeight = null;
|
||||||
|
|
||||||
public function getLeaveMessage(){
|
public function getLeaveMessage(){
|
||||||
return new TranslationContainer(TextFormat::YELLOW . "%multiplayer.player.left", [
|
return new TranslationContainer(TextFormat::YELLOW . "%multiplayer.player.left", [
|
||||||
$this->getDisplayName()
|
$this->getDisplayName()
|
||||||
@ -461,6 +464,17 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
|
|||||||
$this->removeFormat = (bool) $remove;
|
$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
|
* @param Player $player
|
||||||
*
|
*
|
||||||
|
@ -44,5 +44,17 @@ interface CommandSender extends Permissible{
|
|||||||
*/
|
*/
|
||||||
public function getName();
|
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\plugin\Plugin;
|
||||||
use pocketmine\Server;
|
use pocketmine\Server;
|
||||||
use pocketmine\utils\MainLogger;
|
use pocketmine\utils\MainLogger;
|
||||||
|
use pocketmine\utils\Terminal;
|
||||||
|
|
||||||
class ConsoleCommandSender implements CommandSender{
|
class ConsoleCommandSender implements CommandSender{
|
||||||
|
|
||||||
private $perm;
|
private $perm;
|
||||||
|
|
||||||
|
/** @var int|null */
|
||||||
|
protected $lineHeight = null;
|
||||||
|
|
||||||
public function __construct(){
|
public function __construct(){
|
||||||
$this->perm = new PermissibleBase($this);
|
$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;
|
$pageNumber = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($sender instanceof ConsoleCommandSender){
|
$pageHeight = $sender->getScreenLineHeight();
|
||||||
$pageHeight = PHP_INT_MAX;
|
|
||||||
}else{
|
|
||||||
$pageHeight = 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($command === ""){
|
if($command === ""){
|
||||||
/** @var Command[][] $commands */
|
/** @var Command[][] $commands */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user