//FILENAME: pkg_dtb/dtb.java
package pkg_dtb;
import java.util.*;
import java.util.zip.*;
import java.util.List;
import java.util.regex.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
import java.util.concurrent.locks.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.table.*;
import java.io.*;
import java.net.*;
import java.lang.reflect.*;
import java.lang.ref.*;
import java.lang.management.*;
import java.security.*;
import java.security.spec.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.imageio.*;
import java.math.*;
import net.dv8tion.jda.core.events.Event;
import net.dv8tion.jda.core.events.user.update.*;
import net.dv8tion.jda.core.events.guild.member.*;
import net.dv8tion.jda.core.Permission;
import net.dv8tion.jda.core.requests.restaction.MessageAction;
import net.dv8tion.jda.core.requests.RestAction;
import java.util.function.Consumer;
import javax.swing.border.*;
import java.awt.datatransfer.StringSelection;
import java.text.SimpleDateFormat;
import javax.swing.event.AncestorListener;
import javax.swing.event.AncestorEvent;
import javax.swing.Timer;
import java.text.NumberFormat;
import javax.swing.undo.UndoManager;
import javax.net.ssl.*;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import java.text.*;
import javax.imageio.metadata.*;
import javax.imageio.stream.*;
import java.util.TimeZone;
import java.awt.geom.*;
import net.dv8tion.jda.core.*;
import net.dv8tion.jda.core.entities.*;
import net.dv8tion.jda.core.entities.Member;
import net.dv8tion.jda.core.hooks.*;
import net.dv8tion.jda.core.events.message.*;
import net.dv8tion.jda.core.events.message.react.*;
public class dtb {
abstract static public class DynTalkBot2 extends DynServerAwareDiscordBot {
static public boolean _switchableField_myName = true;
public String myName = "Anonymous bot";
transient public boolean useAGIBlueForDropPunctuation = true;
transient public boolean preprocessAtSelfToMyName = true;
transient public boolean dropPunctuation = true;
transient public boolean ngbCommands = true;
public List authorizedUsers = ll(547706854680297473L);
static public class ISaid implements IFieldsToList {
public long channelID;
public long date;
public String text;
public ISaid() {
}
public ISaid(long channelID, long date, String text) {
this.text = text;
this.date = date;
this.channelID = channelID;
}
public String toString() {
return "ISaid(" + channelID + ", " + date + ", " + text + ")";
}
public boolean equals(Object o) {
if (!(o instanceof ISaid))
return false;
ISaid x = (ISaid) o;
return eq(channelID, x.channelID) && eq(date, x.date) && eq(text, x.text);
}
public int hashCode() {
int h = 69986258;
h = boostHashCombine(h, _hashCode(channelID));
h = boostHashCombine(h, _hashCode(date));
h = boostHashCombine(h, _hashCode(text));
return h;
}
public Object[] _fieldsToList() {
return new Object[] { channelID, date, text };
}
}
public void init() {
super.init();
onPostedInChannel.add((channel, msg) -> {
if (channel instanceof Channel) {
Guild guild = ((Channel) channel).getGuild();
if (guild == null)
return;
ByServer bs = getByServer(guild);
long channelID = ((Channel) channel).getIdLong();
mapPut(bs.lastSaidInChannel, channelID, nu(ISaid.class, "channelID", channelID, "text", msg));
change();
}
});
dm_vmBus_onMessage_q("discordGuildJoin", new VF1