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)