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

Commit

Permalink
Merge pull request #24 from TurnipTales/develop
Browse files Browse the repository at this point in the history
develop
  • Loading branch information
rettichlp authored Sep 9, 2024
2 parents 625a753 + fca6a9e commit a7d0992
Show file tree
Hide file tree
Showing 9 changed files with 45 additions and 21 deletions.
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

0 comments on commit a7d0992

Please sign in to comment.