mirror of
https://github.com/LeavesMC/Leaves.git
synced 2025-12-23 08:59:31 +00:00
fix: fix remove command
This commit is contained in:
@@ -108,12 +108,21 @@ public class RemoveCommand extends BotSubcommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Matcher matcher = Pattern.compile("(\\d+)([hmsHMS])").matcher(timeStr);
|
Matcher matcher = Pattern.compile("(\\d+)([hmsHMS])").matcher(timeStr);
|
||||||
int seconds = 0;
|
long seconds = 0;
|
||||||
boolean foundMatch = false;
|
boolean foundMatch = false;
|
||||||
|
|
||||||
while (matcher.find()) {
|
while (matcher.find()) {
|
||||||
foundMatch = true;
|
foundMatch = true;
|
||||||
int value = Integer.parseInt(matcher.group(1));
|
long value;
|
||||||
|
try {
|
||||||
|
value = Long.parseLong(matcher.group(1));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
throw new CommandSyntaxException(
|
||||||
|
CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherParseException(),
|
||||||
|
literal("Number too large: " + matcher.group(1))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
switch (matcher.group(2).toLowerCase()) {
|
switch (matcher.group(2).toLowerCase()) {
|
||||||
case "h" -> seconds += value * 3600;
|
case "h" -> seconds += value * 3600;
|
||||||
case "m" -> seconds += value * 60;
|
case "m" -> seconds += value * 60;
|
||||||
@@ -128,7 +137,14 @@ public class RemoveCommand extends BotSubcommand {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return seconds;
|
if (seconds > Integer.MAX_VALUE) {
|
||||||
|
throw new CommandSyntaxException(
|
||||||
|
CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherParseException(),
|
||||||
|
literal("Total time exceeds maximum limit")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (int) seconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static @NotNull String formatSeconds(int totalSeconds) {
|
private static @NotNull String formatSeconds(int totalSeconds) {
|
||||||
|
|||||||
Reference in New Issue
Block a user