Skip to content

Commit 4c1d845

Browse files
fix: Don't allow registration to Mod Garden: Nature when it has ended.
And add comments for rewriting register and unregister handlers.
1 parent 7a36e17 commit 4c1d845

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

src/main/java/net/modgarden/gardenbot/commands/event/RegisterHandler.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,27 @@
1414
import java.net.http.HttpResponse;
1515

1616
public class RegisterHandler {
17+
// TODO: Unhardcode from Mod Garden: Nature and save role data into backend event.
18+
// TODO: Rewrite this entire thing too, it's very out of date...
1719
public static Response handleEventRegister(SlashCommandInteraction interaction) {
1820
interaction.event().deferReply(true).queue();
1921
User user = interaction.event().getUser();
2022
Guild guild = interaction.event().getGuild();
2123

2224
try {
23-
HttpResponse<InputStream> stream = ModGardenAPIClient.get("user/" + user.getId() + "?service=discord", HttpResponse.BodyHandlers.ofInputStream());
24-
if (stream.statusCode() != 200) {
25+
HttpResponse<InputStream> currentEventResult = ModGardenAPIClient.get("events/current/development", HttpResponse.BodyHandlers.ofInputStream());
26+
if (currentEventResult.statusCode() != 200) {
27+
return new MessageResponse()
28+
.setMessage("There is no currently active event open for registration.")
29+
.markEphemeral();
30+
}
31+
} catch (Exception ex) {
32+
GardenBot.LOG.error("", ex);
33+
}
34+
35+
try {
36+
HttpResponse<Void> userResult = ModGardenAPIClient.get("user/" + user.getId() + "?service=discord", HttpResponse.BodyHandlers.discarding());
37+
if (userResult.statusCode() != 200) {
2538
return new MessageResponse()
2639
.setMessage("You do not have a Mod Garden account.\nPlease create one with **/account create**.")
2740
.markEphemeral();
@@ -31,7 +44,6 @@ public static Response handleEventRegister(SlashCommandInteraction interaction)
3144
}
3245

3346
if (guild != null && guild.getId().equals(GardenBot.DOTENV.get("GUILD_ID"))) {
34-
// TODO: Unhardcode from Mod Garden: Nature and save data into backend user.
3547
Role role = guild.getRoleById("1320329531990741053");
3648
if (role == null) {
3749
return new MessageResponse()
@@ -49,7 +61,7 @@ public static Response handleEventRegister(SlashCommandInteraction interaction)
4961
.markEphemeral();
5062
}
5163
return new MessageResponse()
52-
.setMessage("This command needs to be run inside the Mod Garden Discord server.")
64+
.setMessage("This command must be run inside the Mod Garden Discord server.")
5365
.markEphemeral();
5466
}
5567
}

src/main/java/net/modgarden/gardenbot/commands/event/UnregisterHandler.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package net.modgarden.gardenbot.commands.event;
22

3+
import com.google.gson.JsonElement;
4+
import com.google.gson.JsonParser;
35
import net.dv8tion.jda.api.entities.Guild;
46
import net.dv8tion.jda.api.entities.Role;
57
import net.dv8tion.jda.api.entities.User;
@@ -16,6 +18,8 @@
1618
import java.net.http.HttpResponse;
1719

1820
public class UnregisterHandler {
21+
// TODO: Unhardcode from Mod Garden: Nature and save role data into backend event.
22+
// TODO: Rewrite this entire thing too, it's very out of date...
1923
public static Response handleEventUnregister(SlashCommandInteraction interaction) {
2024
interaction.event().deferReply(true).queue();
2125
User discordUser = interaction.event().getUser();
@@ -77,7 +81,7 @@ public static Response handleEventUnregister(SlashCommandInteraction interaction
7781
.markEphemeral();
7882
}
7983
return new MessageResponse()
80-
.setMessage("This command needs to be run inside the Mod Garden Discord server.")
84+
.setMessage("This command must be run inside the Mod Garden Discord server.")
8185
.markEphemeral();
8286
}
8387

0 commit comments

Comments
 (0)