Fixed Spigot double logging and Kick message
This commit is contained in:
parent
5dc66effca
commit
7fbe35b83b
|
@ -3,7 +3,7 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.fpghoti</groupId>
|
<groupId>com.fpghoti</groupId>
|
||||||
<artifactId>Biscuit</artifactId>
|
<artifactId>Biscuit</artifactId>
|
||||||
<version>1.6.1</version>
|
<version>1.6.2</version>
|
||||||
<build>
|
<build>
|
||||||
<sourceDirectory>src/main/java</sourceDirectory>
|
<sourceDirectory>src/main/java</sourceDirectory>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -5,7 +5,7 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.fpghoti</groupId>
|
<groupId>com.fpghoti</groupId>
|
||||||
<artifactId>Biscuit</artifactId>
|
<artifactId>Biscuit</artifactId>
|
||||||
<version>1.6.1</version>
|
<version>1.6.2</version>
|
||||||
<build>
|
<build>
|
||||||
<sourceDirectory>src/main/java</sourceDirectory>
|
<sourceDirectory>src/main/java</sourceDirectory>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
|
@ -46,9 +46,6 @@ import com.fpghoti.biscuit.listener.ReactionListener;
|
||||||
import com.fpghoti.biscuit.listener.RoleListener;
|
import com.fpghoti.biscuit.listener.RoleListener;
|
||||||
import com.fpghoti.biscuit.logging.BColor;
|
import com.fpghoti.biscuit.logging.BColor;
|
||||||
import com.fpghoti.biscuit.logging.BiscuitLog;
|
import com.fpghoti.biscuit.logging.BiscuitLog;
|
||||||
import com.fpghoti.biscuit.timer.task.ChatCountTimer;
|
|
||||||
import com.fpghoti.biscuit.timer.task.DecrementTimer;
|
|
||||||
import com.fpghoti.biscuit.timer.task.SoftMuteTimer;
|
|
||||||
|
|
||||||
import ch.qos.logback.core.rolling.RollingFileAppender;
|
import ch.qos.logback.core.rolling.RollingFileAppender;
|
||||||
import ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy;
|
import ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy;
|
||||||
|
@ -100,13 +97,7 @@ public class Main {
|
||||||
jda.addEventListener(new RoleListener());
|
jda.addEventListener(new RoleListener());
|
||||||
biscuits = new ArrayList<Biscuit>();
|
biscuits = new ArrayList<Biscuit>();
|
||||||
for(Guild g : jda.getGuilds()) {
|
for(Guild g : jda.getGuilds()) {
|
||||||
Biscuit biscuit = new Biscuit(jda, g, log);
|
Biscuit.loadGuild(g);
|
||||||
biscuit.addTimer(new ChatCountTimer(biscuit));
|
|
||||||
biscuit.addTimer(new SoftMuteTimer(biscuit));
|
|
||||||
biscuit.addTimer(new DecrementTimer(biscuit));
|
|
||||||
|
|
||||||
biscuit.loadTimers();
|
|
||||||
biscuits.add(biscuit);
|
|
||||||
}
|
}
|
||||||
startCommandListener();
|
startCommandListener();
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class Biscuit {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Biscuit getBiscuit(String guildcode) {
|
public static Biscuit getBiscuit(String guildcode) {
|
||||||
for(Biscuit b : Main.getBiscuits()) {
|
for(Biscuit b : Main.getBiscuits()) {
|
||||||
if(b.getProperties().getGuildCode().equalsIgnoreCase(guildcode)) {
|
if(b.getProperties().getGuildCode().equalsIgnoreCase(guildcode)) {
|
||||||
|
@ -49,7 +49,7 @@ public class Biscuit {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ArrayList<PreUser> getPreUsers(User u) {
|
public static ArrayList<PreUser> getPreUsers(User u) {
|
||||||
ArrayList<PreUser> pres = new ArrayList<PreUser>();
|
ArrayList<PreUser> pres = new ArrayList<PreUser>();
|
||||||
for(Guild g : Main.getJDA().getGuilds()) {
|
for(Guild g : Main.getJDA().getGuilds()) {
|
||||||
|
@ -62,13 +62,12 @@ public class Biscuit {
|
||||||
}
|
}
|
||||||
return pres;
|
return pres;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Biscuit loadGuild(Guild g) {
|
public static Biscuit loadGuild(Guild g) {
|
||||||
Biscuit biscuit = new Biscuit(Main.getJDA(), g, Main.getLogger());
|
Biscuit biscuit = new Biscuit(Main.getJDA(), g, Main.getLogger());
|
||||||
biscuit.addTimer(new ChatCountTimer(biscuit));
|
biscuit.addTimer(new ChatCountTimer(biscuit));
|
||||||
biscuit.addTimer(new SoftMuteTimer(biscuit));
|
biscuit.addTimer(new SoftMuteTimer(biscuit));
|
||||||
biscuit.addTimer(new DecrementTimer(biscuit));
|
biscuit.addTimer(new DecrementTimer(biscuit));
|
||||||
|
|
||||||
biscuit.loadTimers();
|
biscuit.loadTimers();
|
||||||
Main.registerBiscuit(biscuit);
|
Main.registerBiscuit(biscuit);
|
||||||
return biscuit;
|
return biscuit;
|
||||||
|
@ -88,6 +87,7 @@ public class Biscuit {
|
||||||
private BiscuitMessageStore messageStore;
|
private BiscuitMessageStore messageStore;
|
||||||
|
|
||||||
private CopyOnWriteArrayList<PreUser> users = new CopyOnWriteArrayList<PreUser>();
|
private CopyOnWriteArrayList<PreUser> users = new CopyOnWriteArrayList<PreUser>();
|
||||||
|
private HashMap<Member, Role> rolequeue;
|
||||||
|
|
||||||
public Biscuit(JDA jda, Guild guild, BiscuitLog log) {
|
public Biscuit(JDA jda, Guild guild, BiscuitLog log) {
|
||||||
this.jda = jda;
|
this.jda = jda;
|
||||||
|
@ -98,7 +98,7 @@ public class Biscuit {
|
||||||
this.config = new BiscuitConfig(this);
|
this.config = new BiscuitConfig(this);
|
||||||
config.generateConfig();
|
config.generateConfig();
|
||||||
this.properties = new BiscuitProperties(this);
|
this.properties = new BiscuitProperties(this);
|
||||||
|
this.rolequeue = new HashMap<Member, Role>();
|
||||||
timer = new Timer();
|
timer = new Timer();
|
||||||
timers = new ArrayList<BiscuitTimer>();
|
timers = new ArrayList<BiscuitTimer>();
|
||||||
if(!Main.isPlugin) {
|
if(!Main.isPlugin) {
|
||||||
|
@ -137,7 +137,7 @@ public class Biscuit {
|
||||||
public Guild getGuild() {
|
public Guild getGuild() {
|
||||||
return guild;
|
return guild;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canManageServer() {
|
public boolean canManageServer() {
|
||||||
return guild.getSelfMember().hasPermission(Permission.MANAGE_SERVER);
|
return guild.getSelfMember().hasPermission(Permission.MANAGE_SERVER);
|
||||||
}
|
}
|
||||||
|
@ -314,6 +314,10 @@ public class Biscuit {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public HashMap<Member, Role> getRoleQueue() {
|
||||||
|
return rolequeue;
|
||||||
|
}
|
||||||
|
|
||||||
public void remove() {
|
public void remove() {
|
||||||
log("Removing guild biscuit...");
|
log("Removing guild biscuit...");
|
||||||
for(BiscuitTimer t : timers) {
|
for(BiscuitTimer t : timers) {
|
||||||
|
|
|
@ -173,6 +173,8 @@ public class BiscuitConfig {
|
||||||
added = addProperty("Captcha-Log-Channel", "verify-log", prop, added, silent);
|
added = addProperty("Captcha-Log-Channel", "verify-log", prop, added, silent);
|
||||||
added = addProperty("Check-Join-Invite", "false", prop, added, silent);
|
added = addProperty("Check-Join-Invite", "false", prop, added, silent);
|
||||||
added = addProperty("Custom-Command-Names", "", prop, added, silent);
|
added = addProperty("Custom-Command-Names", "", prop, added, silent);
|
||||||
|
added = addProperty("DM-Before-Kick", "true", prop, added, silent);
|
||||||
|
added = addProperty("Kick-DM-Invite", "", prop, added, silent);
|
||||||
|
|
||||||
if(!isMain) {
|
if(!isMain) {
|
||||||
if(code != null) {
|
if(code != null) {
|
||||||
|
|
|
@ -49,6 +49,14 @@ public class BiscuitProperties {
|
||||||
return biscuit.getConfig().getFromConfig(key, biscuit);
|
return biscuit.getConfig().getFromConfig(key, biscuit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getKickDMInvite(){
|
||||||
|
String key = "Kick-DM-Invite";
|
||||||
|
if(biscuit.getConfig().getFromConfig(key, biscuit).equalsIgnoreCase("[global]") && biscuit.getGuild() != null) {
|
||||||
|
return Main.getMainBiscuit().getProperties().getKickDMInvite();
|
||||||
|
}
|
||||||
|
return biscuit.getConfig().getFromConfig(key, biscuit);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean captchaEnabled(){
|
public boolean captchaEnabled(){
|
||||||
String key = "Captcha";
|
String key = "Captcha";
|
||||||
if(biscuit.getConfig().getFromConfig(key, biscuit).equalsIgnoreCase("[global]") && biscuit.getGuild() != null) {
|
if(biscuit.getConfig().getFromConfig(key, biscuit).equalsIgnoreCase("[global]") && biscuit.getGuild() != null) {
|
||||||
|
@ -67,6 +75,15 @@ public class BiscuitProperties {
|
||||||
return value.equalsIgnoreCase("true");
|
return value.equalsIgnoreCase("true");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean dmBeforeKick(){
|
||||||
|
String key = "DM-Before-Kick";
|
||||||
|
if(biscuit.getConfig().getFromConfig(key, biscuit).equalsIgnoreCase("[global]") && biscuit.getGuild() != null) {
|
||||||
|
return Main.getMainBiscuit().getProperties().dmBeforeKick();
|
||||||
|
}
|
||||||
|
String value = biscuit.getConfig().getFromConfig(key, biscuit);
|
||||||
|
return value.equalsIgnoreCase("true");
|
||||||
|
}
|
||||||
|
|
||||||
public String getCaptchaReward(){
|
public String getCaptchaReward(){
|
||||||
String key = "Captcha-Reward-Role";
|
String key = "Captcha-Reward-Role";
|
||||||
if(biscuit.getConfig().getFromConfig(key, biscuit).equalsIgnoreCase("[global]") && biscuit.getGuild() != null) {
|
if(biscuit.getConfig().getFromConfig(key, biscuit).equalsIgnoreCase("[global]") && biscuit.getGuild() != null) {
|
||||||
|
|
|
@ -176,7 +176,7 @@ public class DMListener extends ListenerAdapter{
|
||||||
|
|
||||||
Member member = g.getMemberById(author.getId());
|
Member member = g.getMemberById(author.getId());
|
||||||
|
|
||||||
g.addRoleToMember(member, newrole).queue();
|
g.addRoleToMember(member, newrole).complete();
|
||||||
g.removeRoleFromMember(member, defaultrole).complete();
|
g.removeRoleFromMember(member, defaultrole).complete();
|
||||||
p.remove();
|
p.remove();
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@ public class JoinListener extends ListenerAdapter {
|
||||||
@Async
|
@Async
|
||||||
private void logUserInvite(final User user, final Biscuit b){
|
private void logUserInvite(final User user, final Biscuit b){
|
||||||
Guild g = b.getGuild();
|
Guild g = b.getGuild();
|
||||||
g.retrieveInvites().queue((invs) -> {
|
g.retrieveInvites().queue(invs -> {
|
||||||
String usedInv = "Other";
|
String usedInv = "Other";
|
||||||
HashMap<String, Integer> newinv = new HashMap<String, Integer>();
|
HashMap<String, Integer> newinv = new HashMap<String, Integer>();
|
||||||
boolean empty = b.getInviteUses().isEmpty();
|
boolean empty = b.getInviteUses().isEmpty();
|
||||||
|
|
|
@ -15,12 +15,16 @@ public class LeaveListener extends ListenerAdapter {
|
||||||
Biscuit biscuit = Biscuit.getBiscuit(event.getGuild());
|
Biscuit biscuit = Biscuit.getBiscuit(event.getGuild());
|
||||||
User user = event.getMember().getUser();
|
User user = event.getMember().getUser();
|
||||||
PreUser u = biscuit.getPreUser(user);
|
PreUser u = biscuit.getPreUser(user);
|
||||||
int time = u.getTimeLeft();
|
int time = 1;
|
||||||
u.remove();
|
if(u != null) {
|
||||||
|
time = u.getTimeLeft();
|
||||||
|
u.remove();
|
||||||
|
}
|
||||||
if(time > 0) {
|
if(time > 0) {
|
||||||
biscuit.log(BColor.YELLOW + "USER LEFT: " + user.getName() + " " + user.getAsMention());
|
biscuit.log(BColor.YELLOW + "USER LEFT: " + user.getName() + " " + user.getAsMention());
|
||||||
biscuit.captchaLog("**User Left: ** ``" + user.getName() + "`` " + user.getAsMention() + "``");
|
biscuit.captchaLog("**User Left: ** ``" + user.getName() + "`` " + user.getAsMention() + "``");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -65,7 +65,7 @@ public class MessageReceiveListener extends ListenerAdapter{
|
||||||
msg = msg + " ";
|
msg = msg + " ";
|
||||||
}
|
}
|
||||||
for(Attachment a : event.getMessage().getAttachments()) {
|
for(Attachment a : event.getMessage().getAttachments()) {
|
||||||
tail = tail + msg + " " + a.getUrl();
|
tail = tail + " " + a.getUrl();
|
||||||
}
|
}
|
||||||
msg = msg + tail;
|
msg = msg + tail;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@ package com.fpghoti.biscuit.logging;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.fpghoti.biscuit.Main;
|
||||||
|
|
||||||
public class BiscuitLog {
|
public class BiscuitLog {
|
||||||
|
|
||||||
private final Logger console = LoggerFactory.getLogger("Biscuit");
|
private final Logger console = LoggerFactory.getLogger("Biscuit");
|
||||||
|
@ -10,27 +12,37 @@ public class BiscuitLog {
|
||||||
|
|
||||||
public void debug(String msg) {
|
public void debug(String msg) {
|
||||||
console.debug(BColor.MAGENTA_BOLD + msg + BColor.RESET);
|
console.debug(BColor.MAGENTA_BOLD + msg + BColor.RESET);
|
||||||
file.debug(BColor.clear(msg));
|
if(!Main.isPlugin) {
|
||||||
|
file.debug(BColor.clear(msg));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void error(String msg) {
|
public void error(String msg) {
|
||||||
console.error(BColor.RED + msg + BColor.RESET);
|
console.error(BColor.RED + msg + BColor.RESET);
|
||||||
file.error(BColor.clear(msg));
|
if(!Main.isPlugin) {
|
||||||
|
file.error(BColor.clear(msg));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void info(String msg) {
|
public void info(String msg) {
|
||||||
console.info(msg + BColor.RESET);
|
console.info(msg + BColor.RESET);
|
||||||
file.info(BColor.clear(msg));
|
if(!Main.isPlugin) {
|
||||||
|
file.info(BColor.clear(msg));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void trace(String msg) {
|
public void trace(String msg) {
|
||||||
console.trace(BColor.WHITE_BOLD + msg + BColor.RESET);
|
console.trace(BColor.WHITE_BOLD + msg + BColor.RESET);
|
||||||
file.trace(BColor.clear(msg));
|
if(!Main.isPlugin) {
|
||||||
|
file.trace(BColor.clear(msg));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void warn(String msg) {
|
public void warn(String msg) {
|
||||||
console.warn(BColor.YELLOW + msg + BColor.RESET);
|
console.warn(BColor.YELLOW + msg + BColor.RESET);
|
||||||
file.warn(BColor.clear(msg));
|
if(!Main.isPlugin) {
|
||||||
|
file.warn(BColor.clear(msg));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class PreUser {
|
||||||
public void setDone() {
|
public void setDone() {
|
||||||
this.done = true;
|
this.done = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getTimeLeft() {
|
public int getTimeLeft() {
|
||||||
return timeLeft;
|
return timeLeft;
|
||||||
}
|
}
|
||||||
|
@ -97,9 +97,20 @@ public class PreUser {
|
||||||
Member m = biscuit.getGuild().getMember(user);
|
Member m = biscuit.getGuild().getMember(user);
|
||||||
biscuit.log(user.getName() + " " + user.getAsMention() + " waited too long to complete the captcha. Kicking...");
|
biscuit.log(user.getName() + " " + user.getAsMention() + " waited too long to complete the captcha. Kicking...");
|
||||||
biscuit.captchaLog("``" + user.getName() +"`` " + user.getAsMention() + " waited too long to complete the captcha! Kicking...");
|
biscuit.captchaLog("``" + user.getName() +"`` " + user.getAsMention() + " waited too long to complete the captcha! Kicking...");
|
||||||
|
|
||||||
if(m != null && m.getRoles().size() == 1 && PermUtil.hasDefaultRole(m) && !PermUtil.hasRewardRole(m)) {
|
if(m != null && m.getRoles().size() == 1 && PermUtil.hasDefaultRole(m) && !PermUtil.hasRewardRole(m)) {
|
||||||
biscuit.getGuild().kick(user.getId()).queue();
|
if(biscuit.getProperties().dmBeforeKick()) {
|
||||||
|
String msg = "You did not complete the captcha in **"
|
||||||
|
+ " " + biscuit.getGuild().getName() + "**! If you believe this is a mistake, rejoin the server"
|
||||||
|
+ ", complete the captcha, and inform an administrator.";
|
||||||
|
String invite = biscuit.getProperties().getKickDMInvite().replace(" ", "");
|
||||||
|
if(!invite.equals("")) {
|
||||||
|
msg = msg + " " + invite;
|
||||||
|
}
|
||||||
|
final String fmsg = msg;
|
||||||
|
user.openPrivateChannel().flatMap(channel -> channel.sendMessage(fmsg)).complete();
|
||||||
|
}
|
||||||
|
biscuit.getGuild().kick(user.getId()).submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
remove();
|
remove();
|
||||||
|
|
|
@ -91,6 +91,14 @@ LogCaptcha = false
|
||||||
#Put the name of the text channel you want to log captcha information to.
|
#Put the name of the text channel you want to log captcha information to.
|
||||||
Captcha-Log-Channel = verify-log
|
Captcha-Log-Channel = verify-log
|
||||||
|
|
||||||
|
#DM the user before kicking for captcha.
|
||||||
|
DM-Before-Kick = true
|
||||||
|
|
||||||
|
#Send an invite to the server when dm-ing kicked users
|
||||||
|
#Does nothing when blank
|
||||||
|
#Use full link
|
||||||
|
Kick-DM-Invite =
|
||||||
|
|
||||||
#List your custom commands here. This line will always generate blank.
|
#List your custom commands here. This line will always generate blank.
|
||||||
#Example - Custom-Command-Names = hello,botcheck,apple
|
#Example - Custom-Command-Names = hello,botcheck,apple
|
||||||
Custom-Command-Names =
|
Custom-Command-Names =
|
||||||
|
|
Loading…
Reference in New Issue