Skip to content

Commit 41e5ef0

Browse files
committed
Automatically remove user commands (not staff)
1 parent fe7bcc5 commit 41e5ef0

File tree

4 files changed

+110
-70
lines changed

4 files changed

+110
-70
lines changed

src/main/java/tc/oc/occ/nitro/discord/DiscordBot.java

Lines changed: 49 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package tc.oc.occ.nitro.discord;
22

33
import java.util.Optional;
4+
import java.util.concurrent.TimeUnit;
45
import java.util.logging.Logger;
56
import org.javacord.api.DiscordApi;
67
import org.javacord.api.DiscordApiBuilder;
78
import org.javacord.api.entity.intent.Intent;
89
import org.javacord.api.entity.server.Server;
10+
import org.javacord.api.event.message.MessageCreateEvent;
911
import tc.oc.occ.nitro.NitroConfig;
1012
import tc.oc.occ.nitro.discord.listener.*;
1113

@@ -48,7 +50,7 @@ public void enable() {
4850
api.addListener(new NitroAddAlert(this, getConfig()));
4951
api.addListener(new NitroRemoveAlert(this, getConfig()));
5052

51-
logger.info("Discord Bot (Nitro) is now active!");
53+
logger.info("Discord Bot (NitroCloudy) is now active!");
5254
});
5355
}
5456
}
@@ -73,25 +75,57 @@ public void alert(String message) {
7375
}
7476

7577
public void sendMessage(String message, boolean alert) {
76-
if (api != null) {
78+
if (api != null && !alert) {
7779
api.getServerById(config.getServer())
7880
.ifPresent(
79-
server -> {
80-
server
81-
.getChannelById(alert ? config.getAlertChannel() : config.getMainChannel())
82-
.ifPresent(
83-
channel -> {
84-
channel
85-
.asTextChannel()
86-
.ifPresent(
87-
text -> {
88-
text.sendMessage(message);
89-
});
90-
});
91-
});
81+
server ->
82+
server
83+
.getChannelById(config.getMainChannel())
84+
.ifPresent(
85+
channel ->
86+
channel
87+
.asTextChannel()
88+
.ifPresent(
89+
text ->
90+
text.sendMessage(message)
91+
.thenAccept(
92+
sentMessage ->
93+
sentMessage
94+
.getApi()
95+
.getThreadPool()
96+
.getScheduler()
97+
.schedule(
98+
() -> sentMessage.delete(),
99+
15,
100+
TimeUnit.SECONDS)))));
101+
} else if (api != null && alert) {
102+
api.getServerById(config.getServer())
103+
.ifPresent(
104+
server ->
105+
server
106+
.getChannelById(config.getAlertChannel())
107+
.ifPresent(
108+
channel ->
109+
channel
110+
.asTextChannel()
111+
.ifPresent(text -> text.sendMessage(message))));
92112
}
93113
}
94114

115+
public void deleteCommand(MessageCreateEvent event) {
116+
event
117+
.getMessage()
118+
.addReaction("✅")
119+
.thenAccept(
120+
reaction -> {
121+
event
122+
.getApi()
123+
.getThreadPool()
124+
.getScheduler()
125+
.schedule(() -> event.getMessage().delete(), 10, TimeUnit.SECONDS);
126+
});
127+
}
128+
95129
public void reload() {
96130
if (this.api != null && !config.isEnabled()) {
97131
disable();

src/main/java/tc/oc/occ/nitro/discord/listener/NitroHelp.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package tc.oc.occ.nitro.discord.listener;
22

3+
import java.util.concurrent.TimeUnit;
34
import org.javacord.api.entity.message.embed.EmbedBuilder;
45
import org.javacord.api.event.message.MessageCreateEvent;
56
import org.javacord.api.listener.message.MessageCreateListener;
@@ -15,14 +16,15 @@ public NitroHelp(DiscordBot api, NitroConfig config) {
1516
@Override
1617
public void onMessageCreate(MessageCreateEvent event) {
1718
if (event.getMessage().getContent().equalsIgnoreCase("!nitro-help")) {
19+
api.deleteCommand(event);
1820
EmbedBuilder helpEmbed =
1921
new EmbedBuilder()
2022
.setTitle("Nitro Commands")
2123
.setDescription(
2224
"Available commands for the Nitro bot. View the source code [here](https://github.com/TBG1000/Nitro).")
2325
.addField(
2426
"Boosters",
25-
"`!nitro-redeem <inecraft username>` - Redeem Nitro privileges\n"
27+
"`!nitro-redeem <minecraft username>` - Redeem Nitro privileges\n"
2628
+ "`!nitro-remove` - Removes Nitro privileges\n"
2729
+ "`!nitro-help` - Display this menu")
2830
.addField(
@@ -36,7 +38,16 @@ public void onMessageCreate(MessageCreateEvent event) {
3638
.setFooter(
3739
"Requested by " + event.getMessageAuthor().getDiscriminatedName(),
3840
event.getMessageAuthor().getAvatar());
39-
event.getChannel().sendMessage(helpEmbed);
41+
event
42+
.getChannel()
43+
.sendMessage(helpEmbed)
44+
.thenAccept(
45+
embed ->
46+
embed
47+
.getApi()
48+
.getThreadPool()
49+
.getScheduler()
50+
.schedule(() -> embed.delete(), 30, TimeUnit.SECONDS));
4051
}
4152
}
4253
}

src/main/java/tc/oc/occ/nitro/discord/listener/NitroRedeemer.java

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package tc.oc.occ.nitro.discord.listener;
22

3-
import org.javacord.api.entity.message.MessageBuilder;
43
import org.javacord.api.event.message.MessageCreateEvent;
54
import org.javacord.api.listener.message.MessageCreateListener;
65
import tc.oc.occ.nitro.NitroCloudy;
@@ -20,6 +19,7 @@ public NitroRedeemer(DiscordBot api, NitroConfig config) {
2019
public void onMessageCreate(MessageCreateEvent event) {
2120
if (event.getChannel().getIdAsString().equals(config.getMainChannel())) {
2221
if (event.getMessage().getContent().startsWith("!nitro-redeem")) {
22+
api.deleteCommand(event);
2323
event
2424
.getMessageAuthor()
2525
.asUser()
@@ -35,16 +35,15 @@ public void onMessageCreate(MessageCreateEvent event) {
3535

3636
if (config.getUser(discordId).isPresent()) {
3737
NitroUser nitro = config.getUser(discordId).get();
38-
new MessageBuilder()
39-
.append(
40-
":negative_squared_cross_mark: "
41-
+ user.getMentionTag()
42-
+ " Your Nitro Boosting privileges have already been claimed for `"
43-
+ nitro.getMinecraftUsername()
44-
+ "` (`"
45-
+ nitro.getPlayerId().toString()
46-
+ "`). If you wish to change this, use `!nitro-remove` or contact a staff member.")
47-
.send(event.getChannel());
38+
api.sendMessage(
39+
":negative_squared_cross_mark: "
40+
+ user.getMentionTag()
41+
+ " Your Nitro Boosting privileges have already been claimed for `"
42+
+ nitro.getMinecraftUsername()
43+
+ "` (`"
44+
+ nitro.getPlayerId().toString()
45+
+ "`). If you wish to change this, use `!nitro-remove` or contact a staff member.",
46+
false);
4847
} else {
4948
WebUtils.getUUID(username)
5049
.thenAcceptAsync(
@@ -54,16 +53,15 @@ public void onMessageCreate(MessageCreateEvent event) {
5453
config.addNitro(
5554
discriminatedUsername, discordId, username, uuid);
5655
NitroCloudy.get().callSyncEvent(new NitroUserAddEvent(nitro));
57-
new MessageBuilder()
58-
.append(
59-
":white_check_mark: "
60-
+ user.getMentionTag()
61-
+ " Your Nitro Boosting privileges have been claimed for `"
62-
+ nitro.getMinecraftUsername()
63-
+ "` (`"
64-
+ nitro.getPlayerId().toString()
65-
+ "`). If something went wrong, or you're missing in-game perks, contact a staff member. Thanks for boosting the server!")
66-
.send(event.getChannel());
56+
api.sendMessage(
57+
":white_check_mark: "
58+
+ user.getMentionTag()
59+
+ " Your Nitro Boosting privileges have been claimed for `"
60+
+ nitro.getMinecraftUsername()
61+
+ "` (`"
62+
+ nitro.getPlayerId().toString()
63+
+ "`). If something went wrong, or you're missing in-game perks, contact a staff member. Thanks for boosting the server!",
64+
false);
6765
} else {
6866
api.alert(
6967
":warning: Unable to find UUID for user "
@@ -75,18 +73,16 @@ public void onMessageCreate(MessageCreateEvent event) {
7573
}
7674

7775
} else {
78-
new MessageBuilder()
79-
.append(
80-
":warning: Incorrect syntax! Please use `!nitro-redeem <minecraft username>`. For more information, use `!nitro-help`.")
81-
.send(event.getChannel());
76+
api.sendMessage(
77+
":warning: Incorrect syntax! Please use `!nitro-redeem <minecraft username>`. For more information, use `!nitro-help`.",
78+
false);
8279
}
8380
} else {
84-
new MessageBuilder()
85-
.append(
86-
":negative_squared_cross_mark: "
87-
+ user.getMentionTag()
88-
+ " You are not allowed to use this command! If you believe this is a mistake, contact a staff member.")
89-
.send(event.getChannel());
81+
api.sendMessage(
82+
":negative_squared_cross_mark: "
83+
+ user.getMentionTag()
84+
+ " You are not allowed to use this command! If you believe this is a mistake, contact a staff member.",
85+
false);
9086
}
9187
});
9288
}

src/main/java/tc/oc/occ/nitro/discord/listener/NitroRemover.java

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public NitroRemover(DiscordBot api, NitroConfig config) {
1919
public void onMessageCreate(MessageCreateEvent event) {
2020
if (event.getChannel().getIdAsString().equals(config.getMainChannel())) {
2121
if (event.getMessage().getContent().equalsIgnoreCase("!nitro-remove")) {
22+
api.deleteCommand(event);
2223
event
2324
.getMessageAuthor()
2425
.asUser()
@@ -29,31 +30,29 @@ public void onMessageCreate(MessageCreateEvent event) {
2930
if (config.getUser(discordId).isPresent()) {
3031
NitroUser nitro = config.getUser(discordId).get();
3132
NitroCloudy.get().callSyncEvent(new NitroUserRemoveEvent(nitro));
32-
new MessageBuilder()
33-
.append(
34-
":white_check_mark: "
35-
+ user.getMentionTag()
36-
+ " You have removed Nitro Boosting privileges from `"
37-
+ nitro.getMinecraftUsername()
38-
+ "` (`"
39-
+ nitro.getPlayerId().toString()
40-
+ "`). You may use `!nitro-redeem <minecraft username>` to redeem them again.")
41-
.send(event.getChannel());
33+
api.sendMessage(
34+
":white_check_mark: "
35+
+ user.getMentionTag()
36+
+ " You have removed Nitro Boosting privileges from `"
37+
+ nitro.getMinecraftUsername()
38+
+ "` (`"
39+
+ nitro.getPlayerId().toString()
40+
+ "`). You may use `!nitro-redeem <minecraft username>` to redeem them again.",
41+
false);
42+
4243
} else {
43-
new MessageBuilder()
44-
.append(
45-
":negative_squared_cross_mark: "
46-
+ user.getMentionTag()
47-
+ " You have not yet redeemed your Nitro Boosting privileges. Use `!nitro-redeem <minecraft username>` to claim them. For more information, use `!nitro-help`.")
48-
.send(event.getChannel());
44+
api.sendMessage(
45+
":negative_squared_cross_mark: "
46+
+ user.getMentionTag()
47+
+ " You have not yet redeemed your Nitro Boosting privileges. Use `!nitro-redeem <minecraft username>` to claim them. For more information, use `!nitro-help`.",
48+
false);
4949
}
5050
} else {
51-
new MessageBuilder()
52-
.append(
53-
":negative_squared_cross_mark: "
54-
+ user.getMentionTag()
55-
+ " You are not allowed to use this command! If you believe this is a mistake, contact a staff member.")
56-
.send(event.getChannel());
51+
api.sendMessage(
52+
":negative_squared_cross_mark: "
53+
+ user.getMentionTag()
54+
+ " You are not allowed to use this command! If you believe this is a mistake, contact a staff member.",
55+
false);
5756
}
5857
});
5958
}

0 commit comments

Comments
 (0)