add "/team prefix" command

This commit is contained in:
Jakob Schulz
2026-05-20 18:34:10 +02:00
parent a5992a9e4e
commit 24d8ec7301
3 changed files with 49 additions and 0 deletions
@@ -47,6 +47,8 @@ import static de.steamwar.persistent.Storage.teamInvitations;
@Linked
public class TeamCommand extends SWCommand {
private static final String PREFIX_MODE_CONFIG = "chatprefix";
private static final String PREFIX_MODE_SW = "SW";
public TeamCommand() {
super("team");
@@ -362,6 +364,39 @@ public class TeamCommand extends SWCommand {
return "§e";
}
@Register(value = "prefix", description = "TEAM_PREFIX_USAGE")
public void prefix(@Validator("canUseTeamPrefix") Chatter sender){
boolean swPrefix = PREFIX_MODE_SW.equals(UserConfig.getConfig(sender.user().getId(), PREFIX_MODE_CONFIG));
sender.system(swPrefix ? "TEAM_PREFIX_CURRENT_SW" : "TEAM_PREFIX_CURRENT_TEAM");
}
@Register(value = "prefix", description = "TEAM_PREFIX_USAGE")
public void prefix(@Validator("canUseTeamPrefix") Chatter sender, PrefixMode mode) {
if (mode == PrefixMode.SW) {
UserConfig.updatePlayerConfig(sender.user().getId(), PREFIX_MODE_CONFIG, PREFIX_MODE_SW);
sender.system("TEAM_PREFIX_SET_SW");
} else {
UserConfig.updatePlayerConfig(sender.user().getId(), PREFIX_MODE_CONFIG, null);
sender.system("TEAM_PREFIX_SET_TEAM");
}
}
@Validator("canUseTeamPrefix")
public TypeValidator<Chatter> canUseTeamPrefixValidator() {
return (sender, value, messageSender) -> {
SteamwarUser user = value.user();
return user.hasPerm(UserPerm.TEAM)
&& user.getTeam() != 0
&& user.prefix() != UserPerm.emptyPrefix;
};
}
private enum PrefixMode {
TEAM,
SW
}
@Register("list")
public void list(Chatter sender, @Min(intValue = 1) @OptionalValue("1") @ErrorMessage("TEAM_LIST_NOT_PAGE") int page) {
final int TEAMS_PER_PAGE = 10;