Allow gamemode strings for gamemode property in server.properties (#4638)

closes #2692
This commit is contained in:
Matthew Jordan 2021-12-14 16:56:22 -06:00 committed by GitHub
parent 4b06fe73f2
commit a41404bd8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 8 deletions

View File

@ -36,7 +36,6 @@ use pocketmine\crafting\CraftingManager;
use pocketmine\crafting\CraftingManagerFromDataHelper; use pocketmine\crafting\CraftingManagerFromDataHelper;
use pocketmine\crash\CrashDump; use pocketmine\crash\CrashDump;
use pocketmine\crash\CrashDumpRenderer; use pocketmine\crash\CrashDumpRenderer;
use pocketmine\data\java\GameModeIdMap;
use pocketmine\entity\EntityDataHelper; use pocketmine\entity\EntityDataHelper;
use pocketmine\entity\Location; use pocketmine\entity\Location;
use pocketmine\event\HandlerListManager; use pocketmine\event\HandlerListManager;
@ -357,7 +356,7 @@ class Server{
} }
public function getGamemode() : GameMode{ public function getGamemode() : GameMode{
return GameModeIdMap::getInstance()->fromId($this->configGroup->getConfigInt("gamemode", 0)) ?? GameMode::SURVIVAL(); return GameMode::fromString($this->configGroup->getConfigString("gamemode", GameMode::SURVIVAL()->name())) ?? GameMode::SURVIVAL();
} }
public function getForceGamemode() : bool{ public function getForceGamemode() : bool{
@ -804,7 +803,7 @@ class Server{
"enable-ipv6" => true, "enable-ipv6" => true,
"white-list" => false, "white-list" => false,
"max-players" => 20, "max-players" => 20,
"gamemode" => 0, "gamemode" => GameMode::SURVIVAL()->name(),
"force-gamemode" => false, "force-gamemode" => false,
"hardcore" => false, "hardcore" => false,
"pvp" => true, "pvp" => true,

View File

@ -25,7 +25,6 @@ namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\data\java\GameModeIdMap;
use pocketmine\lang\KnownTranslationFactory; use pocketmine\lang\KnownTranslationFactory;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\GameMode; use pocketmine\player\GameMode;
@ -57,7 +56,7 @@ class DefaultGamemodeCommand extends VanillaCommand{
return true; return true;
} }
$sender->getServer()->getConfigGroup()->setConfigInt("gamemode", GameModeIdMap::getInstance()->toId($gameMode)); $sender->getServer()->getConfigGroup()->setConfigString("gamemode", $gameMode->name());
$sender->sendMessage(KnownTranslationFactory::commands_defaultgamemode_success($gameMode->getTranslatableName())); $sender->sendMessage(KnownTranslationFactory::commands_defaultgamemode_success($gameMode->getTranslatableName()));
return true; return true;
} }

View File

@ -162,9 +162,9 @@ LICENSE;
$this->message($this->lang->translate(KnownTranslationFactory::gamemode_info())); $this->message($this->lang->translate(KnownTranslationFactory::gamemode_info()));
do{ do{
$gamemode = (int) $this->getInput($this->lang->translate(KnownTranslationFactory::default_gamemode()), (string) GameModeIdMap::getInstance()->toId(GameMode::SURVIVAL())); $gamemode = GameModeIdMap::getInstance()->fromId((int) $this->getInput($this->lang->translate(KnownTranslationFactory::default_gamemode()), (string) GameModeIdMap::getInstance()->toId(GameMode::SURVIVAL())));
}while($gamemode < 0 or $gamemode > 3); }while($gamemode === null);
$config->set("gamemode", $gamemode); $config->set("gamemode", $gamemode->name());
$config->set("max-players", (int) $this->getInput($this->lang->translate(KnownTranslationFactory::max_players()), (string) self::DEFAULT_PLAYERS)); $config->set("max-players", (int) $this->getInput($this->lang->translate(KnownTranslationFactory::max_players()), (string) self::DEFAULT_PLAYERS));