diff --git a/README.md b/README.md index cd1ed0d40..11f694599 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,8 @@ There is a dummy user named "Server" in every player's friends list that you can `!killall` +`!setworldlevel [level]` - Relog to see effects properly + `!godmode` - Prevents you from taking damage `!resetconst` - Resets the constellation level on your current active character, will need to relog after using the command to see any changes. diff --git a/src/main/java/emu/grasscutter/commands/PlayerCommands.java b/src/main/java/emu/grasscutter/commands/PlayerCommands.java index 42317e63b..027ebd6a2 100644 --- a/src/main/java/emu/grasscutter/commands/PlayerCommands.java +++ b/src/main/java/emu/grasscutter/commands/PlayerCommands.java @@ -17,6 +17,7 @@ import emu.grasscutter.game.inventory.Inventory; import emu.grasscutter.game.inventory.ItemType; import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.game.props.FightProperty; +import emu.grasscutter.game.props.PlayerProperty; import emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify; import emu.grasscutter.server.packet.send.PacketItemAddHintNotify; import emu.grasscutter.utils.Position; @@ -431,6 +432,29 @@ public final class PlayerCommands { } } } + + @Command(label = "setworldlevel", aliases = {"setworldlvl"}, + usage = "Usage: setworldlevel ", execution = Command.Execution.PLAYER) + public static class SetWorldLevelCommand implements CommandHandler { + @Override + public void execute(GenshinPlayer player, List args) { + if(args.size() < 1) { + CommandHandler.sendMessage(null, "Usage: setworldlevel "); return; + } + + try { + int level = Integer.parseInt(args.get(0)); + + // Set in both world and player props + player.getWorld().setWorldLevel(level); + player.setProperty(PlayerProperty.PROP_PLAYER_WORLD_LEVEL, level); + + player.dropMessage("World level set to " + level + "."); + } catch (NumberFormatException ignored) { + CommandHandler.sendMessage(null, "Invalid world level."); + } + } + } @Command(label = "clearartifacts", aliases = {"clearart"}, usage = "Usage: clearartifacts", execution = Command.Execution.PLAYER)