I want to send a message when a Member got kicked and a other if he was banned.
So in the docs of the JDA stands, that the onGuildMemberRemove Event includes Kick, Ban and Normal Leave.
@Override
public void onGuildMemberRemove(@NotNull GuildMemberRemoveEvent event) {
}
But how should I now detect when a Member gots Banned or Kicked ?
You can use retrieveAuditLogs and check if the user was recently targeted by a ban or kick.
Example:
@Override
public void onGuildMemberRemove(GuildMemberRemoveEvent event) {
event.getGuild()
.retrieveAuditLogs()
.queueAfter(1, TimeUnit.SECONDS, (logs) -> { // Gotta wait a second for discord to populate the logs properly
boolean isBan = false, isKick = false;
for (AuditLogEntry log : logs) {
if (log.getTargetIdLong() == event.getUser().getIdLong()) {
isBan = log.getType() == ActionType.BAN;
isKick = log.getType() == ActionType.KICK;
break;
}
}
... code here
});
}
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments