Skip to content
Snippets Groups Projects
Commit 91e4a087 authored by SpikeHD's avatar SpikeHD
Browse files

fix conventions to match other commands

parent 21a15032
Branches
Tags
No related merge requests found
...@@ -3,6 +3,7 @@ package emu.grasscutter.commands; ...@@ -3,6 +3,7 @@ package emu.grasscutter.commands;
import emu.grasscutter.Grasscutter; import emu.grasscutter.Grasscutter;
import emu.grasscutter.data.GenshinData; import emu.grasscutter.data.GenshinData;
import emu.grasscutter.data.def.ItemData; import emu.grasscutter.data.def.ItemData;
import emu.grasscutter.data.def.AvatarData;
import emu.grasscutter.data.def.MonsterData; import emu.grasscutter.data.def.MonsterData;
import emu.grasscutter.game.GenshinPlayer; import emu.grasscutter.game.GenshinPlayer;
import emu.grasscutter.game.World; import emu.grasscutter.game.World;
...@@ -177,15 +178,64 @@ public final class PlayerCommands { ...@@ -177,15 +178,64 @@ public final class PlayerCommands {
} }
} }
@Command(label = "givechar", aliases = { "givec" }, usage = "Usage: givechar [avatar id] [level]") @Command(label = "givechar", aliases = { "givec" }, usage = "Usage: givechar <playerId> <avatarId> [level]")
public static class GiveCharCommand implements CommandHandler { public static class GiveCharCommand implements CommandHandler {
@Override public void execute(GenshinPlayer player, List<String> args) {
int target, avatarID, level = 1;
@Override if(args.size() < 2) {
public void execute(GenshinPlayer player, List<String> args) { CommandHandler.sendMessage(null, "Usage: give <player> <avatarId> [level]");
int avatarID = Integer.parseInt(args.get(0)); return;
int level = Integer.parseInt(args.get(1)); }
if(player == null) { switch(args.size()) {
default:
CommandHandler.sendMessage(null, "Usage: give <player> <avatarId> [level]");
return;
case 1:
try {
avatarID = Integer.parseInt(args.get(0));
target = player.getAccount().getPlayerId();
} catch (NumberFormatException ignored) {
// TODO: Parse from avatar name using GM Handbook.
CommandHandler.sendMessage(player, "Invalid avatar id.");
return;
}
break;
case 2:
try {
target = Integer.parseInt(args.get(0));
if(Grasscutter.getGameServer().getPlayerById(target) == null) {
target = player.getId(); level = Integer.parseInt(args.get(1));
avatarID = Integer.parseInt(args.get(0));
} else {
avatarID = Integer.parseInt(args.get(1));
}
} catch (NumberFormatException ignored) {
// TODO: Parse from avatar name using GM Handbook.
CommandHandler.sendMessage(player, "Invalid avatar or player ID.");
return;
}
break;
case 3:
try {
target = Integer.parseInt(args.get(0));
if(Grasscutter.getGameServer().getPlayerById(target) == null) {
CommandHandler.sendMessage(player, "Invalid player ID."); return;
}
avatarID = Integer.parseInt(args.get(1));
level = Integer.parseInt(args.get(2));
} catch (NumberFormatException ignored) {
// TODO: Parse from avatar name using GM Handbook.
CommandHandler.sendMessage(player, "Invalid avatar or player ID.");
return;
}
break;
}
GenshinPlayer targetPlayer = Grasscutter.getGameServer().getPlayerById(target);
if(targetPlayer == null) {
CommandHandler.sendMessage(null, "Player not found."); return; CommandHandler.sendMessage(null, "Player not found."); return;
} }
...@@ -194,15 +244,41 @@ public final class PlayerCommands { ...@@ -194,15 +244,41 @@ public final class PlayerCommands {
CommandHandler.sendMessage(null, "Invalid avatar id."); return; CommandHandler.sendMessage(null, "Invalid avatar id."); return;
} }
if (args.size() == 0) { GenshinAvatar avatar = new GenshinAvatar(avatarID);
CommandHandler.sendMessage(player, "Usage: givechar [avatar id] [level]"); avatar.setLevel(level);
targetPlayer.addAvatar(avatar);
}
@Override
public void execute(List<String> args) {
if(args.size() < 2) {
CommandHandler.sendMessage(null, "Usage: give <player> <itemId|itemName> [amount]");
return; return;
} }
try {
int target = Integer.parseInt(args.get(0));
int avatarID = Integer.parseInt(args.get(1));
int level = 1; if(args.size() > 2) level = Integer.parseInt(args.get(2));
GenshinPlayer targetPlayer = Grasscutter.getGameServer().getPlayerById(target);
if(targetPlayer == null) {
CommandHandler.sendMessage(null, "Player not found."); return;
}
AvatarData avatarData = GenshinData.getAvatarDataMap().get(avatarID);
if(avatarData == null) {
CommandHandler.sendMessage(null, "Invalid avatar id."); return;
}
GenshinAvatar avatar = new GenshinAvatar(avatarID); GenshinAvatar avatar = new GenshinAvatar(avatarID);
avatar.setLevel(level); avatar.setLevel(level);
player.addAvatar(avatar); targetPlayer.addAvatar(avatar);
} catch (NumberFormatException ignored) {
CommandHandler.sendMessage(null, "Invalid item or player ID.");
}
} }
} }
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment