mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-16 17:05:20 +01:00
new command join and remove to force join or remove avatars into your current team (#549)
* feat:new command "join" and "remove" to force join or remove avatar in your current team * fix:change MaxAvatarsInTeam from 9 to 4 * feat:update & merge branch.Translate fix
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package emu.grasscutter.command.commands;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.command.Command;
|
||||
import emu.grasscutter.command.CommandHandler;
|
||||
import emu.grasscutter.game.avatar.Avatar;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.server.packet.send.PacketChangeMpTeamAvatarRsp;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static emu.grasscutter.utils.Language.translate;
|
||||
|
||||
@Command(label = "join", usage = "join [AvatarIDs] such as\"join 10000038 10000039\"",
|
||||
description = "commands.join.description", permission = "player.join")
|
||||
public class JoinCommand implements CommandHandler {
|
||||
|
||||
@Override
|
||||
public void execute(Player sender, Player targetPlayer, List<String> args) {
|
||||
List<Integer> avatarIds = new ArrayList<>();
|
||||
for (String arg : args) {
|
||||
try {
|
||||
int avatarId = Integer.parseInt(arg);
|
||||
avatarIds.add(avatarId);
|
||||
} catch (Exception ignored) {
|
||||
ignored.printStackTrace();
|
||||
CommandHandler.sendMessage(sender, translate("commands.generic.invalid.avatarId"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < args.size(); i++) {
|
||||
Avatar avatar = sender.getAvatars().getAvatarById(avatarIds.get(i));
|
||||
if (avatar == null || sender.getTeamManager().getCurrentTeamInfo().contains(avatar)) {
|
||||
CommandHandler.sendMessage(sender, translate("commands.generic.invalid.avatarId"));
|
||||
return;
|
||||
}
|
||||
sender.getTeamManager().getCurrentTeamInfo().addAvatar(avatar);
|
||||
}
|
||||
|
||||
// Packet
|
||||
sender.getTeamManager().updateTeamEntities(new PacketChangeMpTeamAvatarRsp(sender, sender.getTeamManager().getCurrentTeamInfo()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package emu.grasscutter.command.commands;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.command.Command;
|
||||
import emu.grasscutter.command.CommandHandler;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.server.packet.send.PacketChangeMpTeamAvatarRsp;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static emu.grasscutter.utils.Language.translate;
|
||||
|
||||
@Command(label = "remove", usage = "remove [indexOfYourTeams] index start from 1",
|
||||
description = "commands.remove.description", permission = "player.remove")
|
||||
public class RemoveCommand implements CommandHandler {
|
||||
|
||||
@Override
|
||||
public void execute(Player sender, Player targetPlayer, List<String> args) {
|
||||
List<Integer> avatarIds = new ArrayList<>();
|
||||
for (String arg : args) {
|
||||
try {
|
||||
int avatarId = Integer.parseInt(arg);
|
||||
avatarIds.add(avatarId);
|
||||
} catch (Exception ignored) {
|
||||
ignored.printStackTrace();
|
||||
CommandHandler.sendMessage(sender, translate("commands.remove.invalid_index"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < avatarIds.size(); i++) {
|
||||
if (avatarIds.get(i) > sender.getTeamManager().getCurrentTeamInfo().getAvatars().size() || avatarIds.get(i) <= 0) {
|
||||
CommandHandler.sendMessage(sender, translate("commands.remove.invalid_index"));
|
||||
return;
|
||||
}
|
||||
sender.getTeamManager().getCurrentTeamInfo().removeAvatar(avatarIds.get(i) - 1);
|
||||
}
|
||||
|
||||
// Packet
|
||||
sender.getTeamManager().updateTeamEntities(new PacketChangeMpTeamAvatarRsp(sender, sender.getTeamManager().getCurrentTeamInfo()));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user