diff options
author | mdway <romangraef@gmail.com> | 2017-09-18 15:45:36 +0200 |
---|---|---|
committer | mdway <romangraef@gmail.com> | 2017-09-18 15:45:36 +0200 |
commit | d3f212f5f5d6377c3defa0864a9237075052e079 (patch) | |
tree | af8e4870be8d2da28ca562ee950c14cd06d9e764 /src/main | |
parent | 2db44377a72fee1aaf05ecee05a67ff576f6fee3 (diff) | |
download | Selfbot-d3f212f5f5d6377c3defa0864a9237075052e079.tar.gz Selfbot-d3f212f5f5d6377c3defa0864a9237075052e079.tar.bz2 Selfbot-d3f212f5f5d6377c3defa0864a9237075052e079.zip |
Intitial stuff
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/de/romjaki/selfbot/Main.java | 18 | ||||
-rw-r--r-- | src/main/java/de/romjaki/selfbot/MessageListener.java | 62 | ||||
-rw-r--r-- | src/main/java/de/romjaki/selfbot/Util.java | 5 |
3 files changed, 62 insertions, 23 deletions
diff --git a/src/main/java/de/romjaki/selfbot/Main.java b/src/main/java/de/romjaki/selfbot/Main.java index 5225df4..093f0b3 100644 --- a/src/main/java/de/romjaki/selfbot/Main.java +++ b/src/main/java/de/romjaki/selfbot/Main.java @@ -1,10 +1,7 @@ package de.romjaki.selfbot; import jdk.nashorn.api.scripting.NashornScriptEngineFactory; -import net.dv8tion.jda.client.JDAClientBuilder; -import net.dv8tion.jda.core.AccountType; -import net.dv8tion.jda.core.JDA; -import net.dv8tion.jda.core.JDABuilder; +import net.dv8tion.jda.core.*; import net.dv8tion.jda.core.exceptions.RateLimitedException; import net.dv8tion.jda.core.utils.SimpleLog; @@ -26,21 +23,18 @@ public class Main { } public static void main(String[] args) { - Config c = Config.getConfig(String.join(" ", args)); + System.out.println(JDAInfo.VERSION); + System.out.println(System.getProperty("config.file")); + Config c = Config.getConfig(System.getProperty("config.file")); System.out.println(c.TOKEN); jda = null; try { if (c.AUTH_METHOD.equalsIgnoreCase("TOKEN")) { jda = new JDABuilder(AccountType.CLIENT) .setToken(c.TOKEN) + .setStatus(OnlineStatus.INVISIBLE) .addEventListener(new MessageListener(c)) .buildBlocking(); - } else { - jda = new JDAClientBuilder() - .setEmail(c.MAIL) - .setPassword(c.PASSWORD) - .addListener(new MessageListener(c)) - .buildBlocking().getJDA(); } } catch (LoginException | RateLimitedException | InterruptedException e) { SimpleLog.getLog("startup").fatal(String.format("Failed to connect: %s", e)); @@ -71,7 +65,7 @@ public class Main { se.eval("var imports = new JavaImporter(" + "java.nio.file," + "java.lang," + - "java.util.stream,"+ + "java.util.stream," + "java.lang.management," + "java.text," + "java.sql," + diff --git a/src/main/java/de/romjaki/selfbot/MessageListener.java b/src/main/java/de/romjaki/selfbot/MessageListener.java index 94465ae..2631f07 100644 --- a/src/main/java/de/romjaki/selfbot/MessageListener.java +++ b/src/main/java/de/romjaki/selfbot/MessageListener.java @@ -1,10 +1,7 @@ package de.romjaki.selfbot; import net.dv8tion.jda.core.EmbedBuilder; -import net.dv8tion.jda.core.entities.Game; -import net.dv8tion.jda.core.entities.Message; -import net.dv8tion.jda.core.entities.MessageEmbed; -import net.dv8tion.jda.core.entities.MessageHistory; +import net.dv8tion.jda.core.entities.*; import net.dv8tion.jda.core.events.message.MessageReceivedEvent; import net.dv8tion.jda.core.events.message.guild.react.GenericGuildMessageReactionEvent; import net.dv8tion.jda.core.hooks.ListenerAdapter; @@ -19,7 +16,6 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; -import java.util.regex.Pattern; import static de.romjaki.selfbot.Main.jda; import static java.util.concurrent.TimeUnit.SECONDS; @@ -29,8 +25,9 @@ import static java.util.concurrent.TimeUnit.SECONDS; */ public class MessageListener extends ListenerAdapter { private static final Rot rotter = new Rot(); + private static final String AFK_IMAGE = "http://unisci24.com/data_images/wlls/2/174841-afk.jpg"; + static boolean AFK = false; static AtomicInteger name = new AtomicInteger(0); - static Pattern regionalPattern = Pattern.compile("regional_indicator_(?<char>[a-z])", Pattern.CASE_INSENSITIVE | Pattern.DOTALL); private static String SANDUHRDINGS = " -`\n" + " .o+`\n" + " `ooo/\n" + @@ -123,8 +120,27 @@ public class MessageListener extends ListenerAdapter { @Override public void onMessageReceived(MessageReceivedEvent event) { if (!event.getAuthor().equals(event.getJDA().getSelfUser())) { + if (AFK && event.getMessage().getMentionedUsers().contains(jda.getSelfUser())) { + event.getChannel().sendMessage(new EmbedBuilder() + .setColor(Color.green) + .setImage(AFK_IMAGE) + .setTitle("AFK") + .setDescription(jda.getSelfUser().getAsMention() + " is AFK.") + .setFooter("This afk-disclaimer was triggered because you mentioned " + jda.getSelfUser().getAsMention(), jda.getSelfUser().getEffectiveAvatarUrl()) + .build()).queue(message -> message.delete().queueAfter(20, SECONDS)); + } return; } + List<MessageEmbed> embeds = event.getMessage().getEmbeds(); + boolean containsAfk = false; + for (MessageEmbed embed : embeds) { + if (embed.getTitle().toLowerCase().contains("afk")) { + containsAfk = true; + } + } + if (!containsAfk && AFK) { + AFK = false; + } Message message = event.getMessage(); String raw = message.getRawContent(); Message mes = null; @@ -174,6 +190,14 @@ public class MessageListener extends ListenerAdapter { t.start(); mes = null; } + if (raw.matches("(?is)^::moveto\\s.*")) { + mes = moveTo(event); + } + if (raw.matches("(?is)^::afk.*")) { + AFK = true; + event.getMessage().delete().queue(); + mes = null; + } if (raw.matches("(?is)^::hangman\\s.*")) { mes = hangman(event); } @@ -183,6 +207,32 @@ public class MessageListener extends ListenerAdapter { } + private Message moveTo(MessageReceivedEvent event) { + Message m = event.getMessage(); + String[] parts = m.getRawContent().split("\\s+", 3); + if (parts.length < 2) { + m.editMessage(new EmbedBuilder() + .setTitle("MOVE FAILED") + .setDescription("Missing category") + .build()).queue(); + return m; + } + String cat = parts[1].replaceAll("#|>|<", ""); + String reason = "Moved."; + if (parts.length == 3) { + reason = parts[2]; + } + TextChannel toMove = event.getTextChannel(); + Category moveTo = event.getGuild().getCategoryById(cat); + toMove.getManager().setParent(moveTo).reason(reason).queue(); + m.editMessage(new EmbedBuilder() + .setTitle("MOVE SUCCEEDED") + .setDescription("Moved " + toMove.getAsMention() + " to <#" + moveTo.getId() + ">") + .setColor(Color.green) + .build()).queue(); + return m; + } + private Message hangman(MessageReceivedEvent event) { SimpleLog.getLog("info").info("in hangman"); String word = event.getMessage().getContent().replaceAll("(?is)^[>:]:hangman\\s+", ""); diff --git a/src/main/java/de/romjaki/selfbot/Util.java b/src/main/java/de/romjaki/selfbot/Util.java index 892ca15..a41c5cd 100644 --- a/src/main/java/de/romjaki/selfbot/Util.java +++ b/src/main/java/de/romjaki/selfbot/Util.java @@ -1,29 +1,24 @@ package de.romjaki.selfbot; import net.dv8tion.jda.core.entities.TextChannel; -import org.jetbrains.annotations.Contract; /** * Created by RGR on 19.05.2017. */ public class Util { - @Contract(value = " -> fail", pure = true) private Util() { Util.singleton(Util.class); } - @Contract(pure = true, value = "_ -> fail") public static void singleton(Class<?> clazz) { throw new Error("No " + clazz.toGenericString() + " instances for you!"); } - @Contract(pure = true, value = "null -> fail") public static boolean isBotChannel(TextChannel channel) { return channel.getName().toLowerCase().contains("bot"); } - @Contract(pure = true, value = "null -> fail ; !null -> !null") public static String escape(String join) { return join.replace("\\", "\\\\").replace("\"", "\\\"").replace("\n", "\\n").replace("\t", "\\t"); } |