Skip to content
This repository has been archived by the owner on Sep 9, 2024. It is now read-only.

develop #24

Merged
merged 12 commits into from
Sep 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@
# under the License.
wrapperVersion=3.3.2
distributionType=only-script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.8/apache-maven-3.9.8-bin.zip
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# turniptales-discord

> [!IMPORTANT]
> The TurnipTales project has come to an end.
> This repository is no longer being used and has been archived for historical purposes.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.1</version>
<version>3.3.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

Expand Down Expand Up @@ -48,7 +48,7 @@
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.1</version>
<version>5.1.0</version>
</dependency>

<!-- https://javalibs.com/artifact/org.apache.commons/commons-lang3 -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public RolesCommand(String name) {
@Override
public void onCommand(SlashCommandInteractionEvent event) {
event.reply("""
Die Standard Rolle für jedes Mitglied ist `%s`.
Die Standard Rolle für jedes Mitglied ist `%s`. Spieler, die mit ihrem Minecraft Account verknüpft sind, haben zusätzlich die Rolle `%s`.

Wenn man längere Zeit auf diesem Discord ist, wird einem automatisch eine Rolle zugewiesen. Je nachdem, wie lang man schon auf diesem Discord ist, erhält man eine höhere Rolle:

Expand All @@ -29,6 +29,7 @@ public void onCommand(SlashCommandInteractionEvent event) {

So sieht man auch gut, wer schon lang dabei ist und sich schon gut auskennen könnte. Die Rollen werden durch den TurnipTales Bot automatisch vergeben und können dadurch nicht erstattet werden, wenn man den Server zwischenzeitlich verlässt.
""".formatted(
discordBotProperties.getMemberRole().getName(),
discordBotProperties.getPlayerRole().getName(),
discordBotProperties.getRole0().getName(),
discordBotProperties.getRole1Week().getName(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ public class DiscordBotProperties {
@Value("${discord.guild.categories.ticket-category}")
private String ticketCategory;

@Value("${discord.guild.roles.member-role}")
private String memberRole;

@Value("${discord.guild.roles.player-role}")
private String playerRole;

Expand Down Expand Up @@ -93,6 +96,10 @@ public Category getTicketCategory() {
return getGuild().getCategoryById(this.ticketCategory);
}

public Role getMemberRole() {
return getGuild().getRoleById(this.memberRole);
}

public Role getPlayerRole() {
return getGuild().getRoleById(this.playerRole);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ public void run() {
log.info("Discord role synchronising: Remove role {} from member {}", role.getName(), member.getEffectiveName());
});

Role playerRole = discordBotProperties.getPlayerRole();
if (!member.getRoles().contains(playerRole) || !member.getRoles().contains(highestRoleUserShouldHave)) {
guild.addRoleToMember(member, playerRole).queue();
Role memberRole = discordBotProperties.getMemberRole();
if (!member.getRoles().contains(memberRole) || !member.getRoles().contains(highestRoleUserShouldHave)) {
guild.addRoleToMember(member, memberRole).queue();
guild.addRoleToMember(member, highestRoleUserShouldHave).queue();
log.info("Discord role synchronising: Add role {} to member {}", highestRoleUserShouldHave.getName(), member.getEffectiveName());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,32 +29,44 @@ public static void sendSelfDeletingMessage(Event event, String message, int seco
}

public static void synchronise(Event event, Member member) {
ResponseEntity<ConnectionDataValue> connectionDataValueResponseEntity = api.getData(member.getId());
if (!connectionDataValueResponseEntity.getStatusCode().is2xxSuccessful()) {
return;
}

ConnectionDataValue connectionDataValue = connectionDataValueResponseEntity.getBody();
Guild guild = discordBotProperties.getGuild();

// remove player role
guild.removeRoleFromMember(member, discordBotProperties.getPlayerRole()).queue();
// remove permission roles
guild.removeRoleFromMember(member, discordBotProperties.getSeniorModeratorRole()).queue();
guild.removeRoleFromMember(member, discordBotProperties.getModeratorRole()).queue();
guild.removeRoleFromMember(member, discordBotProperties.getSupporterRole()).queue();
// remove team roles
guild.removeRoleFromMember(member, discordBotProperties.getTeamBuilderRole()).queue();
guild.removeRoleFromMember(member, discordBotProperties.getTeamContentRole()).queue();
guild.removeRoleFromMember(member, discordBotProperties.getTeamSocialMediaRole()).queue();
// remove time roles
getTimeRoles().forEach(role -> guild.removeRoleFromMember(member, role).queue());

guild.addRoleToMember(member, discordBotProperties.getPlayerRole()).queue();
// add member role
guild.addRoleToMember(member, discordBotProperties.getMemberRole()).queue();
// add time role
guild.addRoleToMember(member, getHighestTimeRole(requireNonNull(member).getTimeJoined())).queue();

// ignore ADMINISTRATOR and HEAD_OF_DEVELOPMENT due to no permission
// ignore DEVELOPER due to not overwrite support-roles
ResponseEntity<ConnectionDataValue> connectionDataValueResponseEntity = api.getData(member.getId());
if (!connectionDataValueResponseEntity.getStatusCode().is2xxSuccessful()) {
return;
}

ConnectionDataValue connectionDataValue = connectionDataValueResponseEntity.getBody();

// add player role
guild.addRoleToMember(member, discordBotProperties.getPlayerRole()).queue();
// add permission role
// -> ignore ADMINISTRATOR and HEAD_OF_DEVELOPMENT due to no permission
// -> ignore DEVELOPER due to not overwrite support-roles
switch (requireNonNull(connectionDataValue).getRole()) {
case "SENIOR_MODERATOR" -> guild.addRoleToMember(member, discordBotProperties.getSeniorModeratorRole()).queue();
case "MODERATOR" -> guild.addRoleToMember(member, discordBotProperties.getModeratorRole()).queue();
case "SUPPORTER" -> guild.addRoleToMember(member, discordBotProperties.getSupporterRole()).queue();
}

// add team roles
connectionDataValue.getTeams().forEach(teamName -> {
switch (teamName) {
case "BUILDER" -> guild.addRoleToMember(member, discordBotProperties.getTeamBuilderRole()).queue();
Expand All @@ -63,8 +75,6 @@ public static void synchronise(Event event, Member member) {
}
});

guild.addRoleToMember(member, getHighestTimeRole(requireNonNull(member).getTimeJoined())).queue();

sendSelfDeletingMessage(event, "Rechte synchronisiert mit Minecraft Account `" + connectionDataValue.getMinecraftName() + "` für: " + member.getAsMention());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public void onGuildMemberJoin(GuildMemberJoinEvent e) {
communityTextChannel.sendMessageEmbeds(embedBuildercommunityTextChannel.build()).queue();
missionControlTextChannel.sendMessageEmbeds(embedBuildermissionControlTextChannel.build()).queue();

guild.addRoleToMember(e.getUser(), discordBotProperties.getPlayerRole()).queue();
guild.addRoleToMember(e.getUser(), discordBotProperties.getMemberRole()).queue();
guild.addRoleToMember(e.getUser(), discordBotProperties.getRole0()).queue();
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ discord.guild.channels.ticket-text-channel=1009477703990267954

discord.guild.categories.ticket-category=1009478372847517727

discord.guild.roles.player-role=1190675464549847110
discord.guild.roles.member-role=1190675464549847110
discord.guild.roles.player-role=1263052609573617684
discord.guild.roles.senior-moderator-role=1208149723547050004
discord.guild.roles.moderator-role=1025864289346658355
discord.guild.roles.supporter-role=1009477020427747408
Expand Down