Skip to content

Commit

Permalink
v7.0.10
Browse files Browse the repository at this point in the history
  • Loading branch information
deso85 committed Jul 16, 2022
1 parent e919126 commit 8d4fc92
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 16 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>Antony</groupId>
<artifactId>Antony</artifactId>
<version>7.0.9</version>
<version>7.0.10</version>

<properties>
<resteasy.version>3.5.1.Final</resteasy.version>
Expand Down
59 changes: 44 additions & 15 deletions src/main/java/bot/antony/commands/CategoryCmd.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package bot.antony.commands;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import bot.antony.commands.types.ServerCommand;
Expand All @@ -11,6 +12,7 @@
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.entities.MessageHistory;
import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.entities.VoiceChannel;

public class CategoryCmd extends ServerCommand {

Expand All @@ -28,18 +30,22 @@ public CategoryCmd() {
this.example = "sort CategoryName";
this.cmdParams.put("list (CategoryName)", "Kann genutzt werden, um alle Kategorien oder alle Kanäle innerhalb einer Kategorie auszugeben.");
this.cmdParams.put("sort CategoryName", "Kann genutzt werden, um Kanäle innerhalb einer Kategorie alphabetisch zu sortieren.");
this.cmdParams.put("sync CategoryName", "Kann genutzt werden, um die Berechtigungen der Kanäle innerhalb einer Kategorie mit den Berechtigungen der Kategorie zu synchronisieren.");
this.cmdParams.put("sync CategoryName (-o | --owner)", "Kann genutzt werden, um die Berechtigungen der Kanäle innerhalb einer Kategorie mit den Berechtigungen der Kategorie zu synchronisieren. Der Parameter `-o` bzw `--owner` muss verwendet werden, wenn die Kanäle einen dedizierten Owner haben, der extra Berechtiguengen erhalten soll. Die letzte Person, die in einem Kanal geschrieben hat, erhält dann die nötigen Rechte.");
}

@Override
public void performCommand(Member member, TextChannel channel, Message message) {
this.channel = channel;
String[] userMessage = message.getContentDisplay().split(" ");
List<String> usrMsgList = Arrays.asList(userMessage);

if (userMessage.length > 1) {
String catName = "";
if (userMessage.length > 2) {
catName = message.getContentDisplay().substring(userMessage[0].length() + userMessage[1].length() + 2);
catName = catName.replace("--owner", "");
catName = catName.replace("-o", "");
catName = catName.trim();
}

switch (userMessage[1].toLowerCase()) {
Expand All @@ -63,7 +69,11 @@ public void performCommand(Member member, TextChannel channel, Message message)
break;
case "sync":
if (userMessage.length > 2) {
if(sync(catName)) {
boolean withOwner = false;
if (usrMsgList.contains("-o") || usrMsgList.contains("--owner")) {
withOwner = true;
}
if(sync(catName, withOwner)) {
channel.sendMessage("Die Kanäle in der Kategorie **" + catName + "** wurden synchronisiert.").queue();
} else {
channel.sendMessage("Es wurde keine Kategorie mit dem Namen \"" + catName + "\" gefunden.").queue();
Expand Down Expand Up @@ -122,33 +132,52 @@ public static void sort(net.dv8tion.jda.api.entities.Category category) {
}
}

private boolean sync(String catName) {
private boolean sync(String catName, boolean withOwner) {
List<net.dv8tion.jda.api.entities.Category> categories = channel.getGuild().getCategoriesByName(catName, true);
if(categories.size() > 0) {
sync(categories.get(0));
sync(categories.get(0), withOwner);
return true;
} else {
return false;
}
}

private void sync(net.dv8tion.jda.api.entities.Category category) {
private void sync(net.dv8tion.jda.api.entities.Category category, boolean withOwner) {
ArrayList<Permission> allow = new ArrayList<Permission>();
allow.add(Permission.VIEW_CHANNEL);
allow.add(Permission.MESSAGE_SEND);
allow.add(Permission.MESSAGE_ATTACH_FILES);
allow.add(Permission.MESSAGE_EMBED_LINKS);

for(TextChannel textChan : category.getTextChannels()) {
MessageHistory mh = new MessageHistory(textChan);
mh.retrievePast(1).complete();

if(mh.getRetrievedHistory().size() > 0) {
channel.sendMessage(textChan.getAsMention() + " -> " + mh.getRetrievedHistory().get(0).getAuthor().getName()).complete();
textChan.getManager().sync().putMemberPermissionOverride(mh.getRetrievedHistory().get(0).getAuthor().getIdLong(), allow, null).complete();
} else {
channel.sendMessage(textChan.getAsMention() + " -> NIEMAND").complete();
textChan.getManager().sync().complete();
if(category.getTextChannels().size() > 0 || category.getVoiceChannels().size() > 0) {
channel.sendMessage("Synchronisiere:").complete();
}

if(withOwner) { //There is a channel owner
for(TextChannel textChan : category.getTextChannels()) {
MessageHistory mh = new MessageHistory(textChan);
mh.retrievePast(1).complete();

if(mh.getRetrievedHistory().size() > 0) {
channel.sendMessage(textChan.getAsMention() + " -> Owner: **" + mh.getRetrievedHistory().get(0).getAuthor().getName() + "**").complete();
textChan.getManager().sync().putMemberPermissionOverride(mh.getRetrievedHistory().get(0).getAuthor().getIdLong(), allow, null).complete();
} else {
channel.sendMessage(textChan.getAsMention() + " -> *Kein Owner*").complete();
textChan.getManager().sync().complete();
}
}
} else {
if(category.getTextChannels().size() > 0) {
for(TextChannel textChan : category.getTextChannels()) {
channel.sendMessage(textChan.getAsMention()).complete();
textChan.getManager().sync().complete();
}
}
}
if(category.getVoiceChannels().size() > 0) {
for(VoiceChannel vchan : category.getVoiceChannels()) {
channel.sendMessage(vchan.getAsMention()).complete();
vchan.getManager().sync().complete();
}
}
}
Expand Down
1 change: 1 addition & 0 deletions src/main/java/bot/antony/commands/ChangelogCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public void performCommand(Member member, TextChannel channel, Message message)
private List<ChangeLogEntry> getChangeLog(int limit) {
String cmdPrefix = Antony.getCmdPrefix();
List<ChangeLogEntry> changeLog = new ArrayList<ChangeLogEntry>();
changeLog.add(new ChangeLogEntry("16.07.2022 - Version 7.0.10", "Die ***" + cmdPrefix + "category*** sync Funktion wurde dahingehend geändert, dass nun auch die Voice-Kanäle synchronisiert werden und mit dem zusätzlichen Parameter `-o` bzw. `--owner` festgelegt werden kann, ob der letzte Verfasser in einem Kanal zum Kanal-Besitzer mit Sonderberechtigungen gemacht werden kann."));
changeLog.add(new ChangeLogEntry("15.07.2022 - Version 7.0.9", "Die ***" + cmdPrefix + "shutdown***, ***" + cmdPrefix + "whitelist***, ***" + cmdPrefix + "watchlist*** und ***" + cmdPrefix + "blacklist*** Funktionen wurde auf das neue Berechtigungssystem portiert. Die ***" + cmdPrefix + "addhb*** Funktion ignoriert bei der Angabe der Kategorie nun die \"#\", falls diese genutzt wird und ist damit fehlerunanfälliger."));
changeLog.add(new ChangeLogEntry("01.07.2022 - Version 7.0.8", "Die ***" + cmdPrefix + "channel*** Funktion wurde auf das neue Berechtigungssystem portiert."));
changeLog.add(new ChangeLogEntry("28.06.2022 - Version 7.0.7", "Die ***" + cmdPrefix + "addhb*** Funktion wurde auf das neue Berechtigungssystem portiert und kann jetzt Haltungsberichte zu Gattungen (z.B.: Lasius sp.) und vermuteten Arten (z.B.: Lasius cf. niger) anlegen."));
Expand Down

0 comments on commit 8d4fc92

Please sign in to comment.