New /version format

This commit is contained in:
Dylan K. Taylor 2021-08-10 19:32:28 +01:00
parent 2ad5de379f
commit 2cdd6e634f
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
4 changed files with 113 additions and 5 deletions

@ -1 +1 @@
Subproject commit ca7fecaf24d8a8f9b947b69f1a8772475e03c379 Subproject commit 6f74d9449a00f806fd78140743004d6077b1577b

View File

@ -30,10 +30,16 @@ use pocketmine\network\mcpe\protocol\ProtocolInfo;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\plugin\Plugin; use pocketmine\plugin\Plugin;
use pocketmine\utils\TextFormat; use pocketmine\utils\TextFormat;
use pocketmine\utils\Utils;
use pocketmine\VersionInfo;
use function count; use function count;
use function function_exists;
use function implode; use function implode;
use function opcache_get_status;
use function sprintf;
use function stripos; use function stripos;
use function strtolower; use function strtolower;
use const PHP_VERSION;
class VersionCommand extends VanillaCommand{ class VersionCommand extends VanillaCommand{
@ -53,12 +59,42 @@ class VersionCommand extends VanillaCommand{
} }
if(count($args) === 0){ if(count($args) === 0){
$sender->sendMessage(KnownTranslationFactory::pocketmine_server_info_extended( $sender->sendMessage(KnownTranslationFactory::pocketmine_command_version_serverSoftwareName(
$sender->getServer()->getName(), TextFormat::GREEN,
$sender->getServer()->getPocketMineVersion(), VersionInfo::NAME
$sender->getServer()->getVersion(), ));
$sender->sendMessage(KnownTranslationFactory::pocketmine_command_version_serverSoftwareVersion(
TextFormat::GREEN,
VersionInfo::getVersionObj()->getFullVersion(),
VersionInfo::getGitHash()
));
$sender->sendMessage(KnownTranslationFactory::pocketmine_command_version_minecraftVersion(
TextFormat::GREEN,
ProtocolInfo::MINECRAFT_VERSION_NETWORK,
(string) ProtocolInfo::CURRENT_PROTOCOL (string) ProtocolInfo::CURRENT_PROTOCOL
)); ));
$sender->sendMessage(KnownTranslationFactory::pocketmine_command_version_phpVersion(TextFormat::GREEN, PHP_VERSION));
$jitColor = TextFormat::GREEN;
if(
function_exists('opcache_get_status') &&
($opcacheStatus = opcache_get_status(false)) !== false &&
isset($opcacheStatus["jit"]["on"])
){
$jit = $opcacheStatus["jit"];
if($jit["on"] === true){
$jitStatus = KnownTranslationFactory::pocketmine_command_version_phpJitEnabled(
sprintf("CRTO: %s%s%s%s", $jit["opt_flags"] >> 2, $jit["opt_flags"] & 0x03, $jit["kind"], $jit["opt_level"])
);
$jitColor = TextFormat::YELLOW;
}else{
$jitStatus = KnownTranslationFactory::pocketmine_command_version_phpJitDisabled();
}
}else{
$jitStatus = KnownTranslationFactory::pocketmine_command_version_phpJitNotSupported();
}
$sender->sendMessage(KnownTranslationFactory::pocketmine_command_version_phpJitStatus($jitColor, $sender->getLanguage()->translate($jitStatus)));
$sender->sendMessage(KnownTranslationFactory::pocketmine_command_version_operatingSystem(TextFormat::GREEN, Utils::getOS()));
}else{ }else{
$pluginName = implode(" ", $args); $pluginName = implode(" ", $args);
$exactPlugin = $sender->getServer()->getPluginManager()->getPlugin($pluginName); $exactPlugin = $sender->getServer()->getPluginManager()->getPlugin($pluginName);

View File

@ -1124,10 +1124,72 @@ final class KnownTranslationFactory{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_DESCRIPTION, []); return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_DESCRIPTION, []);
} }
public static function pocketmine_command_version_header() : TranslationContainer{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_HEADER, []);
}
public static function pocketmine_command_version_minecraftVersion(string $color, string $minecraftVersion, string $minecraftProtocolVersion) : TranslationContainer{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_MINECRAFTVERSION, [
"color" => $color,
"minecraftVersion" => $minecraftVersion,
"minecraftProtocolVersion" => $minecraftProtocolVersion,
]);
}
public static function pocketmine_command_version_noSuchPlugin() : TranslationContainer{ public static function pocketmine_command_version_noSuchPlugin() : TranslationContainer{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_NOSUCHPLUGIN, []); return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_NOSUCHPLUGIN, []);
} }
public static function pocketmine_command_version_operatingSystem(string $color, string $operatingSystemName) : TranslationContainer{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_OPERATINGSYSTEM, [
"color" => $color,
"operatingSystemName" => $operatingSystemName,
]);
}
public static function pocketmine_command_version_phpJitDisabled() : TranslationContainer{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_PHPJITDISABLED, []);
}
public static function pocketmine_command_version_phpJitEnabled(string $extraJitInfo) : TranslationContainer{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_PHPJITENABLED, [
"extraJitInfo" => $extraJitInfo,
]);
}
public static function pocketmine_command_version_phpJitNotSupported() : TranslationContainer{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_PHPJITNOTSUPPORTED, []);
}
public static function pocketmine_command_version_phpJitStatus(string $color, string $jitStatus) : TranslationContainer{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_PHPJITSTATUS, [
"color" => $color,
"jitStatus" => $jitStatus,
]);
}
public static function pocketmine_command_version_phpVersion(string $color, string $phpVersion) : TranslationContainer{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_PHPVERSION, [
"color" => $color,
"phpVersion" => $phpVersion,
]);
}
public static function pocketmine_command_version_serverSoftwareName(string $color, string $serverSoftwareName) : TranslationContainer{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_SERVERSOFTWARENAME, [
"color" => $color,
"serverSoftwareName" => $serverSoftwareName,
]);
}
public static function pocketmine_command_version_serverSoftwareVersion(string $color, string $serverSoftwareVersion, string $serverGitHash) : TranslationContainer{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_SERVERSOFTWAREVERSION, [
"color" => $color,
"serverSoftwareVersion" => $serverSoftwareVersion,
"serverGitHash" => $serverGitHash,
]);
}
public static function pocketmine_command_version_usage() : TranslationContainer{ public static function pocketmine_command_version_usage() : TranslationContainer{
return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_USAGE, []); return new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_USAGE, []);
} }

View File

@ -246,7 +246,17 @@ final class KnownTranslationKeys{
public const POCKETMINE_COMMAND_UNBAN_IP_DESCRIPTION = "pocketmine.command.unban.ip.description"; public const POCKETMINE_COMMAND_UNBAN_IP_DESCRIPTION = "pocketmine.command.unban.ip.description";
public const POCKETMINE_COMMAND_UNBAN_PLAYER_DESCRIPTION = "pocketmine.command.unban.player.description"; public const POCKETMINE_COMMAND_UNBAN_PLAYER_DESCRIPTION = "pocketmine.command.unban.player.description";
public const POCKETMINE_COMMAND_VERSION_DESCRIPTION = "pocketmine.command.version.description"; public const POCKETMINE_COMMAND_VERSION_DESCRIPTION = "pocketmine.command.version.description";
public const POCKETMINE_COMMAND_VERSION_HEADER = "pocketmine.command.version.header";
public const POCKETMINE_COMMAND_VERSION_MINECRAFTVERSION = "pocketmine.command.version.minecraftVersion";
public const POCKETMINE_COMMAND_VERSION_NOSUCHPLUGIN = "pocketmine.command.version.noSuchPlugin"; public const POCKETMINE_COMMAND_VERSION_NOSUCHPLUGIN = "pocketmine.command.version.noSuchPlugin";
public const POCKETMINE_COMMAND_VERSION_OPERATINGSYSTEM = "pocketmine.command.version.operatingSystem";
public const POCKETMINE_COMMAND_VERSION_PHPJITDISABLED = "pocketmine.command.version.phpJitDisabled";
public const POCKETMINE_COMMAND_VERSION_PHPJITENABLED = "pocketmine.command.version.phpJitEnabled";
public const POCKETMINE_COMMAND_VERSION_PHPJITNOTSUPPORTED = "pocketmine.command.version.phpJitNotSupported";
public const POCKETMINE_COMMAND_VERSION_PHPJITSTATUS = "pocketmine.command.version.phpJitStatus";
public const POCKETMINE_COMMAND_VERSION_PHPVERSION = "pocketmine.command.version.phpVersion";
public const POCKETMINE_COMMAND_VERSION_SERVERSOFTWARENAME = "pocketmine.command.version.serverSoftwareName";
public const POCKETMINE_COMMAND_VERSION_SERVERSOFTWAREVERSION = "pocketmine.command.version.serverSoftwareVersion";
public const POCKETMINE_COMMAND_VERSION_USAGE = "pocketmine.command.version.usage"; public const POCKETMINE_COMMAND_VERSION_USAGE = "pocketmine.command.version.usage";
public const POCKETMINE_COMMAND_WHITELIST_DESCRIPTION = "pocketmine.command.whitelist.description"; public const POCKETMINE_COMMAND_WHITELIST_DESCRIPTION = "pocketmine.command.whitelist.description";
public const POCKETMINE_CRASH_ARCHIVE = "pocketmine.crash.archive"; public const POCKETMINE_CRASH_ARCHIVE = "pocketmine.crash.archive";