diff --git a/lists/copypastas.txt b/lists/copypastas.txt index 396f7d4..cb752a7 100644 --- a/lists/copypastas.txt +++ b/lists/copypastas.txt @@ -17,6 +17,7 @@ // Unicode Bob || /▌ && /\ && This is bob Lennipede || ╚═(███)═╝ && Lenn +Doge || ▐▄█▀▒▒▒▒▄▀█▄ && ▐▄█▄█▌▄▒▀▒ && ▒▀▀▄▄▒▒▒▄▒ // Text Navy Seals || say about me && ll have you know I && I am trained && Think again && Not only am I extensively trained && kid diff --git a/lists/referral_domains.txt b/lists/referral_domains.txt index 725fa70..2354f03 100644 --- a/lists/referral_domains.txt +++ b/lists/referral_domains.txt @@ -110,6 +110,7 @@ // Scams amazingsexdating.com easter-event.com +ezrobux.gg fortnite.cards fortnite.events fortnite-christmas.com diff --git a/src/main/java/com/jagrosh/vortex/Constants.java b/src/main/java/com/jagrosh/vortex/Constants.java index 8c9cb45..6578561 100644 --- a/src/main/java/com/jagrosh/vortex/Constants.java +++ b/src/main/java/com/jagrosh/vortex/Constants.java @@ -33,7 +33,7 @@ public final static String HELP_REACTION = SUCCESS.replaceAll("", "$1:$2"); public final static String ERROR_REACTION = ERROR.replaceAll("", "$1:$2"); public final static String VORTEX_EMOJI = "<:Vortex:386971287282515970>"; - public final static int DEFAULT_CACHE_SIZE = 2000; + public final static int DEFAULT_CACHE_SIZE = 8000; public final static Permission[] PERMISSIONS = {Permission.ADMINISTRATOR, Permission.BAN_MEMBERS, Permission.KICK_MEMBERS, Permission.MANAGE_ROLES, Permission.MANAGE_SERVER, Permission.MESSAGE_ADD_REACTION, Permission.MESSAGE_ATTACH_FILES, Permission.MESSAGE_READ, Permission.MESSAGE_WRITE,Permission.MESSAGE_EMBED_LINKS, Permission.MESSAGE_HISTORY, Permission.MESSAGE_EXT_EMOJI, diff --git a/src/main/java/com/jagrosh/vortex/Vortex.java b/src/main/java/com/jagrosh/vortex/Vortex.java index 14c0cc1..3cea8a6 100644 --- a/src/main/java/com/jagrosh/vortex/Vortex.java +++ b/src/main/java/com/jagrosh/vortex/Vortex.java @@ -70,6 +70,7 @@ private final WebhookClient logwebhook; private final AutoMod automod; private final StrikeHandler strikehandler; + private final CommandExceptionListener listener; public Vortex() throws Exception { @@ -87,6 +88,7 @@ logwebhook = new WebhookClientBuilder(config.getString("webhook-url")).build(); automod = new AutoMod(this, config); strikehandler = new StrikeHandler(this); + listener = new CommandExceptionListener(); CommandClient client = new CommandClientBuilder() .setPrefix(Constants.PREFIX) .setGame(Game.playing(Constants.Wiki.SHORT_WIKI)) @@ -95,7 +97,7 @@ .setEmojis(Constants.SUCCESS, Constants.WARNING, Constants.ERROR) .setLinkedCacheSize(0) .setGuildSettingsManager(database.settings) - .setListener(new CommandExceptionListener()) + .setListener(listener) .setScheduleExecutor(threadpool) .setShutdownAutomatically(false) .addCommands( @@ -187,6 +189,7 @@ .setRequestTimeoutRetry(true) .setDisabledCacheFlags(EnumSet.of(CacheFlag.EMOTE, CacheFlag.GAME)) //TODO: dont disable GAME .setSessionController(new BlockingSessionController()) + .setCompressionEnabled(false) .build(); modlog.start(); @@ -253,6 +256,11 @@ return strikehandler; } + public CommandExceptionListener getListener() + { + return listener; + } + // Global methods public void cleanPremium() diff --git a/src/main/java/com/jagrosh/vortex/automod/AutoMod.java b/src/main/java/com/jagrosh/vortex/automod/AutoMod.java index 162c404..b888090 100644 --- a/src/main/java/com/jagrosh/vortex/automod/AutoMod.java +++ b/src/main/java/com/jagrosh/vortex/automod/AutoMod.java @@ -70,6 +70,7 @@ private final CopypastaResolver copypastaResolver = new CopypastaResolver(); private final FixedCache spams = new FixedCache<>(3000); private final HashMap latestGuildJoin = new HashMap<>(); + private final HashMap usage = new HashMap<>(); public AutoMod(Vortex vortex, Config config) { @@ -94,6 +95,11 @@ this.refLinkList = OtherUtil.readLines("referral_domains"); } + public HashMap getUsage() + { + return usage; + } + public void enableRaidMode(Guild guild, Member moderator, OffsetDateTime now, String reason) { vortex.getDatabase().settings.enableRaidMode(guild); @@ -245,6 +251,7 @@ try { + usage.put(member.getGuild().getIdLong(), usage.getOrDefault(member.getGuild().getIdLong(), 0) + 1); OtherUtil.dehoist(member, settings.dehoistChar); } catch(Exception ignore) {} @@ -271,6 +278,7 @@ List inviteWhitelist = !preventInvites ? Collections.emptyList() : vortex.getDatabase().inviteWhitelist.readWhitelist(message.getGuild()); List filters = vortex.getDatabase().filters.getFilters(message.getGuild()); + usage.put(message.getGuild().getIdLong(), usage.getOrDefault(message.getGuild().getIdLong(), 0) + 1); boolean shouldDelete = false; String channelWarning = null; @@ -421,6 +429,7 @@ LOG.trace("Found "+invites.size()+" invites."); for(String inviteCode : invites) { + LOG.info("Resolving invite in " + message.getGuild().getId() + ": " + inviteCode); long gid = inviteResolver.resolve(message.getJDA(), inviteCode); if(gid != message.getGuild().getIdLong() && !inviteWhitelist.contains(gid)) { @@ -478,7 +487,9 @@ { if(preventInvites && resolved.matches(INVITE_LINK)) { - long invite = inviteResolver.resolve(message.getJDA(), resolved.replaceAll(INVITE_LINK, "$1")); + String code = resolved.replaceAll(INVITE_LINK, "$1"); + LOG.info("Delayed resolving invite in " + message.getGuild().getId() + ": " + code); + long invite = inviteResolver.resolve(message.getJDA(), code); if(invite != message.getGuild().getIdLong() && !inviteWhitelist.contains(invite)) containsInvite = true; } @@ -487,7 +498,6 @@ if(resolved.matches(REF.pattern()) || isReferralUrl(resolved.replaceAll(BASE_URL.pattern(), "$1"))) containsRef = true; } - } if((containsInvite || !preventInvites) && (containsRef || settings.refStrikes<1)) break; diff --git a/src/main/java/com/jagrosh/vortex/automod/InviteResolver.java b/src/main/java/com/jagrosh/vortex/automod/InviteResolver.java index a5e8af7..fecb89d 100644 --- a/src/main/java/com/jagrosh/vortex/automod/InviteResolver.java +++ b/src/main/java/com/jagrosh/vortex/automod/InviteResolver.java @@ -18,6 +18,8 @@ import com.jagrosh.vortex.utils.FixedCache; import net.dv8tion.jda.core.JDA; import net.dv8tion.jda.core.entities.Invite; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @@ -25,15 +27,17 @@ */ public class InviteResolver { - private final FixedCache cached = new FixedCache<>(200); + private final Logger log = LoggerFactory.getLogger(InviteResolver.class); + private final FixedCache cached = new FixedCache<>(5000); public long resolve(JDA jda, String code) { + log.debug("Attempting to resolve " + code); if(cached.contains(code)) return cached.get(code); try { - Invite i = Invite.resolve(jda, code).complete(); + Invite i = Invite.resolve(jda, code).complete(false); cached.put(code, i.getGuild().getIdLong()); return i.getGuild().getIdLong(); } diff --git a/src/main/java/com/jagrosh/vortex/commands/CommandExceptionListener.java b/src/main/java/com/jagrosh/vortex/commands/CommandExceptionListener.java index 63a097b..2a17ad8 100644 --- a/src/main/java/com/jagrosh/vortex/commands/CommandExceptionListener.java +++ b/src/main/java/com/jagrosh/vortex/commands/CommandExceptionListener.java @@ -18,6 +18,8 @@ import com.jagrosh.jdautilities.command.Command; import com.jagrosh.jdautilities.command.CommandEvent; import com.jagrosh.jdautilities.command.CommandListener; +import java.util.HashMap; +import net.dv8tion.jda.core.entities.ChannelType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -28,6 +30,7 @@ public class CommandExceptionListener implements CommandListener { private final Logger log = LoggerFactory.getLogger("Command"); + private final HashMap usage = new HashMap<>(); @Override public void onCommandException(CommandEvent event, Command command, Throwable throwable) @@ -55,4 +58,16 @@ super(message); } } + + @Override + public void onCommand(CommandEvent event, Command command) + { + if(event.isFromType(ChannelType.TEXT)) + usage.put(event.getGuild().getIdLong(), usage.getOrDefault(event.getGuild().getIdLong(), 0) + 1); + } + + public HashMap getUsage() + { + return usage; + } } diff --git a/src/main/java/com/jagrosh/vortex/commands/tools/LookupCmd.java b/src/main/java/com/jagrosh/vortex/commands/tools/LookupCmd.java index 794e151..3f695f6 100644 --- a/src/main/java/com/jagrosh/vortex/commands/tools/LookupCmd.java +++ b/src/main/java/com/jagrosh/vortex/commands/tools/LookupCmd.java @@ -29,6 +29,8 @@ import net.dv8tion.jda.core.utils.MiscUtil; import net.dv8tion.jda.core.utils.WidgetUtil; import net.dv8tion.jda.core.utils.WidgetUtil.Widget; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @@ -41,7 +43,9 @@ private final static String GUILD_EMOJI = "\uD83D\uDDA5"; // 🖥 private final static String LINESTART = "\u25AB"; // ▫ + private final Logger log = LoggerFactory.getLogger(LookupCmd.class); private final Vortex vortex; + private boolean debug = true; public LookupCmd(Vortex vortex) { @@ -69,6 +73,12 @@ return; } event.getChannel().sendTyping().queue(); + log.info(event.getGuild().getId() + " - " + event.getMember().getUser().getId() + ": " + event.getMessage().getContentRaw()); + if(debug && event.getGuild().getMemberById(113156185389092864L)==null && event.getGuild().getMemberById(194257036828082176L)==null) + { + event.reactError(); + return; + } event.async(() -> { try diff --git a/src/main/java/com/jagrosh/vortex/utils/FormatUtil.java b/src/main/java/com/jagrosh/vortex/utils/FormatUtil.java index a15f6a8..410b403 100644 --- a/src/main/java/com/jagrosh/vortex/utils/FormatUtil.java +++ b/src/main/java/com/jagrosh/vortex/utils/FormatUtil.java @@ -295,7 +295,7 @@ builder.addField("Additional Help", helpLinks(event), false); - return new MessageBuilder().append(content).setEmbed(builder.build()).build(); + return new MessageBuilder().append(filterEveryone(content)).setEmbed(builder.build()).build(); } public static String helpLinks(CommandEvent event)