From e7afeacce7fbe86cb770680ff6a7fb812e5ba67e Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 19 Dec 2019 21:05:25 +0100 Subject: [PATCH] Top confidential Clyde command --- example-config.json | 3 +- .../bbn/hadder/commands/fun/ClydeCommand.java | 45 ++++++++++++++++++- src/main/java/com/bbn/hadder/core/Config.java | 5 +++ 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/example-config.json b/example-config.json index f201256..437ec97 100644 --- a/example-config.json +++ b/example-config.json @@ -20,5 +20,6 @@ "DiscordBotReviews": "", "DiscordBots": "", "BotListSpace": "" - } + }, + "Clyde": "" } diff --git a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java index 455282b..b0af7bd 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java @@ -4,16 +4,59 @@ package com.bbn.hadder.commands.fun; * @author Skidder / GregTCLTK */ +import club.minnced.discord.webhook.WebhookClient; +import club.minnced.discord.webhook.WebhookClientBuilder; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.Perm; import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.Icon; +import net.dv8tion.jda.api.entities.TextChannel; +import net.dv8tion.jda.api.entities.Webhook; + +import java.io.InputStream; +import java.net.URL; +import java.util.concurrent.TimeUnit; @Perms(Perm.MANAGE_SERVER) public class ClydeCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { + if (args.length > 0) { + if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) { + TextChannel channel = event.getMessage().getTextChannel(); + String content = event.getMessage().getContentRaw().replace(event.getRethink().getGuildPrefix(event.getGuild().getId()), "").replace(event.getRethink().getUserPrefix(event.getAuthor().getId()), "").replace("clyde", ""); + + Webhook webhook = channel.createWebhook(event.getConfig().getClydeName()).complete(); + try { + InputStream s = new URL("https://discordapp.com/assets/f78426a064bc9dd24847519259bc42af.png").openStream(); + webhook.getManager().setAvatar(Icon.from(s)).queue(); + + WebhookClientBuilder builder = new WebhookClientBuilder(webhook.getUrl()); + + WebhookClient client = builder.build(); + try { + TimeUnit.SECONDS.sleep(1); + } catch (InterruptedException e) { + e.printStackTrace(); + } + client.send(content); + } catch (Exception e) { + e.printStackTrace(); + } + try { + TimeUnit.SECONDS.sleep(2); + } catch (InterruptedException e) { + e.printStackTrace(); + } + webhook.delete().queue(); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } else event.getHelpCommand().sendHelp(this, event); } @@ -24,7 +67,7 @@ public class ClydeCommand implements Command { @Override public String description() { - return ""; + return "Send a message as a Clyde webhook."; } @Override diff --git a/src/main/java/com/bbn/hadder/core/Config.java b/src/main/java/com/bbn/hadder/core/Config.java index 7abbf78..fce590e 100644 --- a/src/main/java/com/bbn/hadder/core/Config.java +++ b/src/main/java/com/bbn/hadder/core/Config.java @@ -63,6 +63,7 @@ public class Config { .value("DiscordExtremeList").value(null) .value("DiscordBotReviews").value(null) .value("DiscordBots").value(null) + .value("BotListSpace").value(null) .endObject().endObject().toString(); } @@ -141,4 +142,8 @@ public class Config { public String getBotListSpaceToken() { return config.getJSONObject("Tokens").getString("BotListSpace"); } + + public String getClydeName() { + return config.getString("Clyde"); + } }