Merge pull request #22 from SpikeHD/level_setting_commands

Set world level command
This commit is contained in:
Melledy 2022-04-19 03:22:45 -07:00 committed by GitHub
commit 2d2013dfee
2 changed files with 26 additions and 0 deletions

View File

@ -56,6 +56,8 @@ There is a dummy user named "Server" in every player's friends list that you can
`!killall` `!killall`
`!setworldlevel [level]` - Relog to see effects properly
`!godmode` - Prevents you from taking damage `!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. `!resetconst` - Resets the constellation level on your current active character, will need to relog after using the command to see any changes.

View File

@ -17,6 +17,7 @@ import emu.grasscutter.game.inventory.Inventory;
import emu.grasscutter.game.inventory.ItemType; import emu.grasscutter.game.inventory.ItemType;
import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.game.props.ActionReason;
import emu.grasscutter.game.props.FightProperty; 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.PacketEntityFightPropUpdateNotify;
import emu.grasscutter.server.packet.send.PacketItemAddHintNotify; import emu.grasscutter.server.packet.send.PacketItemAddHintNotify;
import emu.grasscutter.utils.Position; import emu.grasscutter.utils.Position;
@ -431,6 +432,29 @@ public final class PlayerCommands {
} }
} }
} }
@Command(label = "setworldlevel", aliases = {"setworldlvl"},
usage = "Usage: setworldlevel <level>", execution = Command.Execution.PLAYER)
public static class SetWorldLevelCommand implements CommandHandler {
@Override
public void execute(GenshinPlayer player, List<String> args) {
if(args.size() < 1) {
CommandHandler.sendMessage(null, "Usage: setworldlevel <level>"); 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"}, @Command(label = "clearartifacts", aliases = {"clearart"},
usage = "Usage: clearartifacts", execution = Command.Execution.PLAYER) usage = "Usage: clearartifacts", execution = Command.Execution.PLAYER)