This commit is contained in:
Ocame
2019-02-07 06:15:08 +01:00
commit 6808f6ed2c
8 changed files with 455 additions and 0 deletions

View File

@ -0,0 +1,117 @@
package AtlasGruppe;
import net.dv8tion.jda.core.entities.ChannelType;
import net.dv8tion.jda.core.entities.Member;
import net.dv8tion.jda.core.entities.Role;
import net.dv8tion.jda.core.entities.User;
import net.dv8tion.jda.core.entities.impl.RoleImpl;
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
import net.dv8tion.jda.core.hooks.ListenerAdapter;
import net.dv8tion.jda.core.exceptions.InsufficientPermissionException;
public class groupchange extends ListenerAdapter {
private String prefixPromote;
private String prefixDegradation;
public groupchange() {
this.prefixPromote = "!add";
this.prefixDegradation = "!remove";
}
@Override
public void onMessageReceived(MessageReceivedEvent event) {
if ((!event.getMessage().getContentRaw().startsWith(this.prefixPromote) && !event.getMessage().getContentRaw().startsWith(this.prefixDegradation)) || event.getChannelType() != ChannelType.TEXT) {
return;
}
User author = event.getAuthor();
if (!author.isBot()) {
if (event.getMessage().getContentRaw().startsWith(this.prefixPromote + " ")) {
this.changeGroup(event, true);
} else if (event.getMessage().getContentRaw().startsWith(this.prefixDegradation + " ")) {
this.changeGroup(event, false);
}
}
}
private void changeGroup(MessageReceivedEvent event, Boolean promote) {
Member MentionedMember = null;
User MentionedUser = null;
boolean roleCheck = false;
try {
Role targetRole = event.getGuild().getRolesByName("Test2", true).get(0);
Role authorizedRole = event.getGuild().getRolesByName("Test2", true).get(0);
if (event.getMessage().getMentionedUsers().isEmpty()) {
event.getChannel().sendMessage(event.getMember().getAsMention() + " Benutzer nicht gefunden").queue();
return;
}
MentionedUser = event.getMessage().getMentionedUsers().get(0);
if (MentionedUser.isBot()) { // Ziel darf kein Bot sein
event.getChannel().sendMessage(event.getMember().getAsMention() + " Finger weg von den Bots!").queue();
return;
}
MentionedMember = event.getGuild().getMemberById(MentionedUser.getId());
roleCheck = false;
for (Object x : event.getMember().getRoles().toArray()) {
if (((RoleImpl) x).getId().equals(authorizedRole.getId())) { // hat Absender die Notwendig Gruppe
roleCheck = true;
break;
}
}
if (!roleCheck) {
event.getChannel().sendMessage(event.getMember().getAsMention() + " Du bist nicht berechtigt den Befehl auszuführen").queue();
return;
}
if (promote) {
roleCheck = false;
for (Object x : MentionedMember.getRoles().toArray()) {
if (((RoleImpl) x).getId().equals(targetRole.getId())) { // hat Ziel bereits die Gruppe?
roleCheck = true;
break;
}
}
if (roleCheck) {
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + MentionedMember.getEffectiveName() + " hat bereits die Gruppe " + targetRole.getName()).queue();
return;
}
event.getGuild().getController().addSingleRoleToMember(MentionedMember, targetRole).queue();
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + MentionedMember.getEffectiveName() + " wurde der Gruppe " + targetRole.getName() + " zugeteilt").queue();
} else {
roleCheck = false;
for (Object x : MentionedMember.getRoles().toArray()) {
if (((RoleImpl) x).getId().equals(targetRole.getId())) { // hat Ziel bereits die Gruppe?
roleCheck = true;
break;
}
}
if (!roleCheck) {
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + MentionedMember.getEffectiveName() + " ist nicht in der Gruppe " + targetRole.getName()).queue();
return;
}
event.getGuild().getController().removeSingleRoleFromMember(MentionedMember, targetRole).queue();
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + MentionedMember.getEffectiveName() + " wurde aus der Gruppe " + targetRole.getName() + " entfernt").queue();
}
} catch (InsufficientPermissionException e) {
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + e.getMessage()).queue();
} catch (Exception e) {
//System.out.println("problem: "+e.getMessage());
}
}
}

View File

@ -0,0 +1,38 @@
package core;
import AtlasGruppe.groupchange;
import net.dv8tion.jda.core.JDA;
import net.dv8tion.jda.core.JDABuilder;
import net.dv8tion.jda.core.AccountType;
import net.dv8tion.jda.core.OnlineStatus;
import net.dv8tion.jda.core.entities.Game;
import javax.security.auth.login.LoginException;
public class Main {
public static void main(String[] args) {
// Insert your bot's token here
String token = "NDA1MDQ2NDg1OTk0OTYyOTQ2.DUessg.YFKvsTLIyPwprLlEOnZc0PXWJH0";
JDABuilder builder = new JDABuilder(AccountType.BOT);
builder.setToken(token);
builder.setAutoReconnect(true);
builder.setStatus(OnlineStatus.ONLINE);
builder.setGame(Game.watching("Den NinjaSäuen zu"));
builder.addEventListener(new groupchange());
try {
JDA jda = builder.build();
}
catch (LoginException e) {
e.printStackTrace();
}
}
}