Add command to stop bot process
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
Previously, anyone could send the keywords in chat and kill the bot. Now, only the set bot owner can run the command.
This commit is contained in:
parent
bd76562bcc
commit
dd4ffe252e
@ -11,6 +11,9 @@ public class Configuration
|
||||
private static boolean paused = false;
|
||||
private static String prefix = ".";
|
||||
|
||||
// todo: allow people to set their own user id
|
||||
private static final long botOwnerId = 979809420714332260L;
|
||||
|
||||
|
||||
/**
|
||||
* Checks if the bot has been started with the verbose argument.
|
||||
@ -61,4 +64,6 @@ public class Configuration
|
||||
*/
|
||||
public static void setPaused(boolean p) { paused = p; }
|
||||
|
||||
public static long getBotOwnerId() { return botOwnerId; }
|
||||
|
||||
}
|
||||
|
@ -53,17 +53,6 @@ public class MessageListener extends ListenerAdapter
|
||||
return;
|
||||
}
|
||||
|
||||
if(eventMessage.equalsIgnoreCase("hideko die"))
|
||||
{
|
||||
MessageChannel channel = event.getChannel();
|
||||
|
||||
channel.sendMessage("Going to sleep! Cya :sparkles:").queue();
|
||||
|
||||
Executors.newSingleThreadScheduledExecutor().schedule(HidekoBot::shutdown, 3, TimeUnit.SECONDS);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(eventMessage.equalsIgnoreCase("hideko verbose"))
|
||||
{
|
||||
MessageChannel channel = event.getChannel();
|
||||
|
@ -10,10 +10,14 @@ import net.dv8tion.jda.api.interactions.InteractionHook;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
||||
import net.dv8tion.jda.api.requests.restaction.interactions.ReplyCallbackAction;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import wtf.beatrice.hidekobot.Configuration;
|
||||
import wtf.beatrice.hidekobot.HidekoBot;
|
||||
import wtf.beatrice.hidekobot.utils.RandomUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class SlashCommandListener extends ListenerAdapter
|
||||
{
|
||||
@ -26,6 +30,17 @@ public class SlashCommandListener extends ListenerAdapter
|
||||
event.reply("Pong!").queue();
|
||||
}
|
||||
|
||||
else if (event.getName().equals("die"))
|
||||
{
|
||||
if(Configuration.getBotOwnerId() != event.getMember().getIdLong())
|
||||
{
|
||||
event.reply("Sorry, only the bot owner can run this command!").setEphemeral(true).queue();
|
||||
} else {
|
||||
event.reply("Going to sleep! Cya :sparkles:").queue();
|
||||
Executors.newSingleThreadScheduledExecutor().schedule(HidekoBot::shutdown, 3, TimeUnit.SECONDS);
|
||||
}
|
||||
}
|
||||
|
||||
else if (event.getName().equals("coinflip"))
|
||||
{
|
||||
int rand = RandomUtil.getRandomNumber(0, 1);
|
||||
|
@ -20,11 +20,13 @@ public class SlashCommandsUtil
|
||||
|
||||
static List<CommandData> allCommands = new ArrayList<>()
|
||||
{{
|
||||
add(Commands.slash("ping", "Test if the bot is responsive."));
|
||||
add(Commands.slash("coinflip", "Flip a coin and get head or tails."));
|
||||
add(Commands.slash("die", "Stop the bot's process")
|
||||
.setDefaultPermissions(DefaultMemberPermissions.DISABLED));
|
||||
add(Commands.slash("clear", "Clear the current channel's chat.")
|
||||
.addOption(OptionType.INTEGER, "amount", "The amount of messages to delete.")
|
||||
.setDefaultPermissions(DefaultMemberPermissions.enabledFor(Permission.MESSAGE_MANAGE)));
|
||||
add(Commands.slash("coinflip", "Flip a coin and get head or tails."));
|
||||
add(Commands.slash("ping", "Test if the bot is responsive."));
|
||||
}};
|
||||
|
||||
public static void updateSlashCommands()
|
||||
|
Loading…
Reference in New Issue
Block a user