From 92f9e732a17ad6e397e81394ec4a28cc3b7c6fe8 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Sat, 1 Mar 2025 22:40:37 +0100 Subject: [PATCH] Remove redundant code and add victory reward commands Removed unused methods and logging, such as `kickFromVoiceIfNeeded` and unnecessary permission checks. Added a feature to grant temporary permissions to winning players using LuckPerms. Updated the build number to reflect the changes. --- .../com/alttd/ctf/events/OtherGameEvents.java | 1 - .../com/alttd/ctf/game/phases/EndedPhase.java | 11 +++++++++++ .../java/com/alttd/ctf/team/DiscordTeam.java | 19 ++----------------- version.properties | 4 ++-- 4 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/alttd/ctf/events/OtherGameEvents.java b/src/main/java/com/alttd/ctf/events/OtherGameEvents.java index d1e2282..0fc72f7 100644 --- a/src/main/java/com/alttd/ctf/events/OtherGameEvents.java +++ b/src/main/java/com/alttd/ctf/events/OtherGameEvents.java @@ -30,7 +30,6 @@ public class OtherGameEvents implements Listener { @EventHandler public void onBlockBreak(BlockBreakEvent event) { if (gameManager.getGamePhase().isEmpty()) { - log.info("no game phases"); return; } if (!Tag.SNOW.isTagged(event.getBlock().getType())) { diff --git a/src/main/java/com/alttd/ctf/game/phases/EndedPhase.java b/src/main/java/com/alttd/ctf/game/phases/EndedPhase.java index be2fb07..cc08894 100644 --- a/src/main/java/com/alttd/ctf/game/phases/EndedPhase.java +++ b/src/main/java/com/alttd/ctf/game/phases/EndedPhase.java @@ -13,9 +13,11 @@ import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; import org.bukkit.Bukkit; import org.bukkit.Location; +import org.bukkit.OfflinePlayer; import org.bukkit.World; import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeInstance; +import org.bukkit.command.ConsoleCommandSender; import java.util.ArrayList; import java.util.HashMap; @@ -88,6 +90,15 @@ public class EndedPhase implements GamePhaseExecutor { messages.add(miniMessage.deserialize(" has won with captures!", Placeholder.component("team", winner.getName()), Placeholder.parsed("score", String.valueOf(highestScore)))); + ConsoleCommandSender consoleSender = Bukkit.getConsoleSender(); + winner.getPlayers().forEach(teamPlayer -> { + OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(teamPlayer.getUuid()); + String name = offlinePlayer.getName(); + if (name == null) { + return; + } + Bukkit.dispatchCommand(consoleSender, String.format("lp user %s permission settemp ctf.victory.%s true 14d", name, winner.getId())); + }); if (wins.size() <= 1) { return messages; } diff --git a/src/main/java/com/alttd/ctf/team/DiscordTeam.java b/src/main/java/com/alttd/ctf/team/DiscordTeam.java index 81953a9..135d304 100644 --- a/src/main/java/com/alttd/ctf/team/DiscordTeam.java +++ b/src/main/java/com/alttd/ctf/team/DiscordTeam.java @@ -5,7 +5,6 @@ import com.alttd.ctf.game.GameManager; import com.alttd.galaxy.discord.Bot; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.JDA; -import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.*; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -68,7 +67,7 @@ public class DiscordTeam { log.info("Unable to remove team role from server owner"); return; } - member.getGuild().removeRoleFromMember(member, role).queue(ignored -> kickFromVoiceIfNeeded(member)); + member.getGuild().removeRoleFromMember(member, role).queue(); }); } @@ -82,21 +81,7 @@ public class DiscordTeam { member.getRoles().stream() .filter(otherRole -> otherRole.getIdLong() == otherTeam.getDiscordRole()) .forEach(otherRole -> member.getGuild().removeRoleFromMember(member, otherRole).queue())); - member.getGuild().addRoleToMember(member, role).queue(ignored -> kickFromVoiceIfNeeded(member)); + member.getGuild().addRoleToMember(member, role).queue(); }); } - - private void kickFromVoiceIfNeeded(@NotNull Member member) { - GuildVoiceState voiceState = member.getVoiceState(); - if (voiceState == null || !voiceState.inAudioChannel()) { - return; - } - AudioChannel channel = voiceState.getChannel(); - if (channel == null) { - return; - } - if (!member.hasPermission(channel, Permission.VOICE_CONNECT)) { - member.getGuild().kickVoiceMember(member).queue(); - } - } } diff --git a/version.properties b/version.properties index e0f2f7a..8e744b1 100644 --- a/version.properties +++ b/version.properties @@ -1,3 +1,3 @@ -#Sat Mar 01 20:08:55 CET 2025 -buildNumber=103 +#Sat Mar 01 22:40:35 CET 2025 +buildNumber=110 version=0.1