initial
This commit is contained in:
117
src/main/java/AtlasGruppe/groupchange.java
Normal file
117
src/main/java/AtlasGruppe/groupchange.java
Normal 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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
38
src/main/java/core/Main.java
Normal file
38
src/main/java/core/Main.java
Normal 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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user