From 1d5976a490a7c2479682282951d3a23e5f3666d0 Mon Sep 17 00:00:00 2001 From: William M Date: Fri, 15 Mar 2024 18:54:36 -0500 Subject: [PATCH] Add extra colours --- .../commands/staff/InitializeUser.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/cominatyou/commands/staff/InitializeUser.java b/src/main/java/com/cominatyou/commands/staff/InitializeUser.java index 5badf8e..9a2dcd9 100644 --- a/src/main/java/com/cominatyou/commands/staff/InitializeUser.java +++ b/src/main/java/com/cominatyou/commands/staff/InitializeUser.java @@ -6,9 +6,11 @@ import com.cominatyou.TextCommand; import com.cominatyou.db.RedisUserEntry; import com.cominatyou.util.CommandPermissions; +import com.cominatyou.util.Values; import com.cominatyou.xp.RankUtil; import com.cominatyou.xp.XPSystemCalculator; +import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.entity.permission.Role; import org.javacord.api.event.message.MessageCreateEvent; @@ -19,7 +21,7 @@ public void execute(MessageCreateEvent message, List messageArgs) { message.getChannel().sendMessage("A user ID and/or a level must be provided."); return; } - final Integer level; + final int level; try { level = Integer.parseInt(messageArgs.get(1)); @@ -28,9 +30,24 @@ public void execute(MessageCreateEvent message, List messageArgs) { return; } + if (level < 0) { + message.getChannel().sendMessage("Level must be a positive number."); + return; + } + message.getServer().get().getMemberById(messageArgs.get(0)).ifPresentOrElse(user -> { final RedisUserEntry dbUser = new RedisUserEntry(user); + if (dbUser.getLevel() >= 10 && !messageArgs.contains("--force")) { + final EmbedBuilder warningMessage = new EmbedBuilder() + .setTitle("Hold up! You might have typed something wrong.") + .setDescription(String.format("You're attempting to initialize <@%d>, but they're already level %d. **You may have specified the wrong user.**\n\nIf you're sure that this is the user you wanted, re-run your command with `--force` at the end.", user.getId(), dbUser.getLevel())) + .setColor(Values.WARNING_YELLOW); + + message.getChannel().sendMessage(warningMessage); + return; + } + final Integer xp = XPSystemCalculator.determineMinimumTotalXPForLevel(level); dbUser.set("xp", xp.toString());