mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-18 09:54:59 +01:00
Ensures Traveler retains talent levels and constellations on inactive elements when switching elements. Relevant for any other skillDepot-changing activities like Windtrace too, though keeping those in the db might not be as useful. Refactor avatar talent upgrade and access Refactor skillExtraCharges
43 lines
1.4 KiB
Java
43 lines
1.4 KiB
Java
package emu.grasscutter.command.commands;
|
|
|
|
import emu.grasscutter.command.Command;
|
|
import emu.grasscutter.command.CommandHandler;
|
|
import emu.grasscutter.game.avatar.Avatar;
|
|
import emu.grasscutter.game.entity.EntityAvatar;
|
|
import emu.grasscutter.game.player.Player;
|
|
|
|
import java.util.List;
|
|
|
|
import static emu.grasscutter.utils.Language.translate;
|
|
|
|
@Command(
|
|
label = "resetConst",
|
|
aliases = {"resetconstellation"},
|
|
usage = "[all]",
|
|
permission = "player.resetconstellation",
|
|
permissionTargeted = "player.resetconstellation.others")
|
|
public final class ResetConstCommand implements CommandHandler {
|
|
|
|
@Override
|
|
public void execute(Player sender, Player targetPlayer, List<String> args) {
|
|
if (args.size() > 0 && args.get(0).equalsIgnoreCase("all")) {
|
|
targetPlayer.getAvatars().forEach(this::resetConstellation);
|
|
CommandHandler.sendMessage(sender, translate(sender, "commands.resetConst.reset_all"));
|
|
} else {
|
|
EntityAvatar entity = targetPlayer.getTeamManager().getCurrentAvatarEntity();
|
|
if (entity == null) {
|
|
return;
|
|
}
|
|
|
|
Avatar avatar = entity.getAvatar();
|
|
this.resetConstellation(avatar);
|
|
|
|
CommandHandler.sendMessage(sender, translate(sender, "commands.resetConst.success", avatar.getAvatarData().getName()));
|
|
}
|
|
}
|
|
|
|
private void resetConstellation(Avatar avatar) {
|
|
avatar.forceConstellationLevel(-1);
|
|
}
|
|
}
|