From 5969e45b0a13ea9ecc90e4c43af476bae89aada3 Mon Sep 17 00:00:00 2001 From: Saratoga Date: Mon, 16 Dec 2024 19:20:36 +0900 Subject: [PATCH 1/7] add config for nametagvisibility --- .../arena/module/teamcolors/TeamColors.java | 24 +++++++++++++++++++ .../arena/options/ArenaOptionType.java | 2 ++ .../arena/options/NametagOption.java | 8 +++++++ 3 files changed, 34 insertions(+) create mode 100644 plugin/src/main/java/org/battleplugins/arena/options/NametagOption.java diff --git a/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java b/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java index e9326b89..03b989fe 100644 --- a/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java +++ b/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java @@ -13,7 +13,9 @@ import org.battleplugins.arena.module.ArenaModule; import org.battleplugins.arena.module.ArenaModuleInitializer; import org.battleplugins.arena.options.ArenaOptionType; +import org.battleplugins.arena.options.NametagOption; import org.battleplugins.arena.options.types.BooleanArenaOption; +import org.battleplugins.arena.options.types.EnumArenaOption; import org.battleplugins.arena.team.ArenaTeam; import org.battleplugins.arena.team.ArenaTeams; import org.bukkit.Bukkit; @@ -21,6 +23,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.scoreboard.Team; +import org.battleplugins.arena.config.ArenaOption; /** * A module that adds team colors to a player's name. */ @@ -29,6 +32,8 @@ public class TeamColors implements ArenaModuleInitializer { public static final String ID = "team-colors"; public static final ArenaOptionType TEAM_PREFIXES = ArenaOptionType.create("team-prefixes", BooleanArenaOption::new); + public static final ArenaOptionType> NAME_TAG_VISIBILITY = ArenaOptionType.create("name-tag-visibility", params -> new EnumArenaOption<>(params, NametagOption.class, "option")); + @EventHandler public void onJoin(ArenaJoinEvent event) { @@ -49,6 +54,25 @@ public void onJoin(ArenaJoinEvent event) { } } + // Apply NAME_TAG_VISIBILITY option + final Team finalBukkitTeam = bukkitTeam; + event.getCompetition().option(NAME_TAG_VISIBILITY).ifPresent(option -> { + NametagOption nametagOption = option.getOption(); + switch (nametagOption) { + case ALWAYS: + finalBukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.ALWAYS); + break; + case NEVER: + finalBukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER); + break; + case FOR_OTHER_TEAMS: + finalBukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.FOR_OTHER_TEAMS); + break; + case FOR_OWN_TEAM: + finalBukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.FOR_OWN_TEAM); + break; + } + }); // If players are already on the team, add them to the Bukkit team for (ArenaPlayer teamPlayer : event.getCompetition().getTeamManager().getPlayersOnTeam(team)) { bukkitTeam.addPlayer(teamPlayer.getPlayer()); diff --git a/plugin/src/main/java/org/battleplugins/arena/options/ArenaOptionType.java b/plugin/src/main/java/org/battleplugins/arena/options/ArenaOptionType.java index 5595ee32..0b937e68 100644 --- a/plugin/src/main/java/org/battleplugins/arena/options/ArenaOptionType.java +++ b/plugin/src/main/java/org/battleplugins/arena/options/ArenaOptionType.java @@ -28,9 +28,11 @@ public final class ArenaOptionType { public static final ArenaOptionType KEEP_EXPERIENCE = new ArenaOptionType<>("keep-experience", BooleanArenaOption::new); public static final ArenaOptionType HUNGER_DEPLETE = new ArenaOptionType<>("hunger-deplete", BooleanArenaOption::new); public static final ArenaOptionType TEAM_SELECTION = new ArenaOptionType<>("team-selection", BooleanArenaOption::new); + public static final ArenaOptionType> DAMAGE_PLAYERS = new ArenaOptionType<>("damage-players", params -> new EnumArenaOption<>(params, DamageOption.class, "option")); public static final ArenaOptionType> DAMAGE_ENTITIES = new ArenaOptionType<>("damage-entities", params -> new EnumArenaOption<>(params, DamageOption.class, "option")); + public static final ArenaOptionType> NAME_TAG_VISIBILITY = new ArenaOptionType<>("name-tag-visibility", params -> new EnumArenaOption<>(params, NametagOption.class, "option")); private final String name; private final Function, T> factory; diff --git a/plugin/src/main/java/org/battleplugins/arena/options/NametagOption.java b/plugin/src/main/java/org/battleplugins/arena/options/NametagOption.java new file mode 100644 index 00000000..c8dd48cf --- /dev/null +++ b/plugin/src/main/java/org/battleplugins/arena/options/NametagOption.java @@ -0,0 +1,8 @@ +package org.battleplugins.arena.options; + +public enum NametagOption { + FOR_OTHER_TEAMS, + NEVER, + ALWAYS, + FOR_OWN_TEAM +} From 37c9987016ba0f43a6f30478f0f6f95827bd1d04 Mon Sep 17 00:00:00 2001 From: Saratoga Date: Tue, 17 Dec 2024 00:27:29 +0900 Subject: [PATCH 2/7] =?UTF-8?q?options=E3=81=AB=E3=83=8D=E3=83=BC=E3=83=A0?= =?UTF-8?q?=E3=82=BF=E3=82=B0=E8=A1=A8=E7=A4=BA=E8=A8=AD=E5=AE=9A=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../arena/module/teamcolors/TeamColors.java | 61 ++++++++++++------- .../arena/options/ArenaOptionType.java | 2 +- .../arena/options/NametagOption.java | 2 +- .../src/main/resources/arenas/deathmatch.yml | 1 + 4 files changed, 42 insertions(+), 24 deletions(-) diff --git a/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java b/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java index 03b989fe..c4b0f400 100644 --- a/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java +++ b/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java @@ -13,7 +13,7 @@ import org.battleplugins.arena.module.ArenaModule; import org.battleplugins.arena.module.ArenaModuleInitializer; import org.battleplugins.arena.options.ArenaOptionType; -import org.battleplugins.arena.options.NametagOption; +import org.battleplugins.arena.options.NameTagOption; import org.battleplugins.arena.options.types.BooleanArenaOption; import org.battleplugins.arena.options.types.EnumArenaOption; import org.battleplugins.arena.team.ArenaTeam; @@ -21,6 +21,7 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.scoreboard.NameTagVisibility; import org.bukkit.scoreboard.Team; import org.battleplugins.arena.config.ArenaOption; @@ -32,8 +33,6 @@ public class TeamColors implements ArenaModuleInitializer { public static final String ID = "team-colors"; public static final ArenaOptionType TEAM_PREFIXES = ArenaOptionType.create("team-prefixes", BooleanArenaOption::new); - public static final ArenaOptionType> NAME_TAG_VISIBILITY = ArenaOptionType.create("name-tag-visibility", params -> new EnumArenaOption<>(params, NametagOption.class, "option")); - @EventHandler public void onJoin(ArenaJoinEvent event) { @@ -45,34 +44,27 @@ public void onJoin(ArenaJoinEvent event) { for (ArenaTeam team : event.getCompetition().getTeamManager().getTeams()) { // Register a new Bukkit team for each team in the competition Team bukkitTeam = event.getPlayer().getScoreboard().getTeam("ba-" + team.getName()); + + if (bukkitTeam == null) { bukkitTeam = event.getPlayer().getScoreboard().registerNewTeam("ba-" + team.getName()); bukkitTeam.displayName(team.getFormattedName()); bukkitTeam.color(NamedTextColor.nearestTo(team.getTextColor())); + + NameTagOption visibilityOption = event.getCompetition().option(ArenaOptionType.NAME_TAG_VISIBILITY) + .map(EnumArenaOption::getOption) + .orElse(NameTagOption.ALWAYS); + bukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, convertNameTagOption(visibilityOption)); + //bukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER); + //Bukkit.getLogger().info("[TC.phase.original]" + visibilityOption.toString()); + //Bukkit.getLogger().info("[TC.phase.convert]" + convertNameTagOption(visibilityOption).toString()); + if (showTeamPrefixes(event.getCompetition(), team)) { bukkitTeam.prefix(Component.text("[" + team.getName() + "] ", team.getTextColor())); } } - // Apply NAME_TAG_VISIBILITY option - final Team finalBukkitTeam = bukkitTeam; - event.getCompetition().option(NAME_TAG_VISIBILITY).ifPresent(option -> { - NametagOption nametagOption = option.getOption(); - switch (nametagOption) { - case ALWAYS: - finalBukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.ALWAYS); - break; - case NEVER: - finalBukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER); - break; - case FOR_OTHER_TEAMS: - finalBukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.FOR_OTHER_TEAMS); - break; - case FOR_OWN_TEAM: - finalBukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.FOR_OWN_TEAM); - break; - } - }); + // If players are already on the team, add them to the Bukkit team for (ArenaPlayer teamPlayer : event.getCompetition().getTeamManager().getPlayersOnTeam(team)) { bukkitTeam.addPlayer(teamPlayer.getPlayer()); @@ -81,6 +73,21 @@ public void onJoin(ArenaJoinEvent event) { }); } + private Team.OptionStatus convertNameTagOption(NameTagOption option) { + switch (option) { + case NEVER: + return Team.OptionStatus.NEVER; + case ALWAYS: + return Team.OptionStatus.ALWAYS; + case FOR_OWN_TEAM: + return Team.OptionStatus.FOR_OWN_TEAM; + case FOR_OTHER_TEAMS: + return Team.OptionStatus.FOR_OTHER_TEAMS; + default: + return Team.OptionStatus.ALWAYS; + } +} + @EventHandler public void onPhaseStart(ArenaPhaseStartEvent event) { if (!event.getArena().isModuleEnabled(ID)) { @@ -91,6 +98,11 @@ public void onPhaseStart(ArenaPhaseStartEvent event) { // Scoreboards may change when phases change, so update // team colors in player scoreboards when this happens if (event.getCompetition() instanceof LiveCompetition liveCompetition) { + + NameTagOption visibilityOption = liveCompetition.option(ArenaOptionType.NAME_TAG_VISIBILITY) + .map(EnumArenaOption::getOption) + .orElse(NameTagOption.ALWAYS); + for (ArenaPlayer arenaPlayer : liveCompetition.getPlayers()) { Player player = arenaPlayer.getPlayer(); for (ArenaTeam team : liveCompetition.getTeamManager().getTeams()) { @@ -99,6 +111,11 @@ public void onPhaseStart(ArenaPhaseStartEvent event) { bukkitTeam = player.getScoreboard().registerNewTeam("ba-" + team.getName()); bukkitTeam.displayName(team.getFormattedName()); bukkitTeam.color(NamedTextColor.nearestTo(team.getTextColor())); + + bukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, convertNameTagOption(visibilityOption)); + //Bukkit.getLogger().info("[TC.phase.original]" + visibilityOption.toString()); + //Bukkit.getLogger().info("[TC.phase.convert]" + convertNameTagOption(visibilityOption).toString()); + if (showTeamPrefixes(liveCompetition, team)) { bukkitTeam.prefix(Component.text("[" + team.getName() + "] ", team.getTextColor())); } diff --git a/plugin/src/main/java/org/battleplugins/arena/options/ArenaOptionType.java b/plugin/src/main/java/org/battleplugins/arena/options/ArenaOptionType.java index 0b937e68..8b59f24b 100644 --- a/plugin/src/main/java/org/battleplugins/arena/options/ArenaOptionType.java +++ b/plugin/src/main/java/org/battleplugins/arena/options/ArenaOptionType.java @@ -32,7 +32,7 @@ public final class ArenaOptionType { public static final ArenaOptionType> DAMAGE_PLAYERS = new ArenaOptionType<>("damage-players", params -> new EnumArenaOption<>(params, DamageOption.class, "option")); public static final ArenaOptionType> DAMAGE_ENTITIES = new ArenaOptionType<>("damage-entities", params -> new EnumArenaOption<>(params, DamageOption.class, "option")); - public static final ArenaOptionType> NAME_TAG_VISIBILITY = new ArenaOptionType<>("name-tag-visibility", params -> new EnumArenaOption<>(params, NametagOption.class, "option")); + public static final ArenaOptionType> NAME_TAG_VISIBILITY = new ArenaOptionType<>("name-tag-visibility", params -> new EnumArenaOption<>(params, NameTagOption.class, "option")); private final String name; private final Function, T> factory; diff --git a/plugin/src/main/java/org/battleplugins/arena/options/NametagOption.java b/plugin/src/main/java/org/battleplugins/arena/options/NametagOption.java index c8dd48cf..eebad332 100644 --- a/plugin/src/main/java/org/battleplugins/arena/options/NametagOption.java +++ b/plugin/src/main/java/org/battleplugins/arena/options/NametagOption.java @@ -1,6 +1,6 @@ package org.battleplugins.arena.options; -public enum NametagOption { +public enum NameTagOption { FOR_OTHER_TEAMS, NEVER, ALWAYS, diff --git a/plugin/src/main/resources/arenas/deathmatch.yml b/plugin/src/main/resources/arenas/deathmatch.yml index a58a1651..7664d674 100644 --- a/plugin/src/main/resources/arenas/deathmatch.yml +++ b/plugin/src/main/resources/arenas/deathmatch.yml @@ -48,6 +48,7 @@ options: - keep-inventory{enabled=true} - keep-experience{enabled=true} - class-equip-only-selects{enabled=true} + - name-tag-visibility{option=NEVER} initial-phase: waiting phases: waiting: From bb3b0d687dafda0bf7f71cfe054c7eeb4b1588d8 Mon Sep 17 00:00:00 2001 From: Saratoga Date: Wed, 18 Dec 2024 10:16:23 +0900 Subject: [PATCH 3/7] =?UTF-8?q?teamStats=E3=81=8Cfalse=E3=81=AE=E3=81=A8?= =?UTF-8?q?=E3=81=8D=E3=81=AB=E5=80=8B=E4=BA=BA=E6=88=A6=E3=81=AB=E3=81=AA?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=9F(?= =?UTF-8?q?=E8=A9=A6=E9=A8=93=E7=9A=84)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../competition/victory/types/HighestStatCondition.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugin/src/main/java/org/battleplugins/arena/competition/victory/types/HighestStatCondition.java b/plugin/src/main/java/org/battleplugins/arena/competition/victory/types/HighestStatCondition.java index 03bec3fc..e5931b46 100644 --- a/plugin/src/main/java/org/battleplugins/arena/competition/victory/types/HighestStatCondition.java +++ b/plugin/src/main/java/org/battleplugins/arena/competition/victory/types/HighestStatCondition.java @@ -11,6 +11,7 @@ import org.battleplugins.arena.stat.ArenaStats; import org.battleplugins.arena.stat.StatHolder; import org.battleplugins.arena.team.ArenaTeam; +import org.bukkit.Bukkit; import java.util.Set; import java.util.stream.Collectors; @@ -112,7 +113,9 @@ public Set identifyPotentialVictors() { // the victory based on whether the team won. If the player is to // win individually, their team should just contain them, or be empty. ArenaTeam team = player.getTeam(); - if (team == null || this.getCompetition().getArena().getTeams().isNonTeamGame()) { + if (team == null || this.getCompetition().getArena().getTeams().isNonTeamGame() || !this.teamStats) { + //デバック用のログ出力 + Bukkit.getLogger().info("[IPV]: F4A online..."); return Stream.of(player); } From f07a6e5a75e4810dc7b824d0ecdb3c82051e6acf Mon Sep 17 00:00:00 2001 From: Saratoga Date: Wed, 18 Dec 2024 14:57:30 +0900 Subject: [PATCH 4/7] fixed 2 byte char lol --- .../arena/competition/victory/types/HighestStatCondition.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/src/main/java/org/battleplugins/arena/competition/victory/types/HighestStatCondition.java b/plugin/src/main/java/org/battleplugins/arena/competition/victory/types/HighestStatCondition.java index e5931b46..d301720f 100644 --- a/plugin/src/main/java/org/battleplugins/arena/competition/victory/types/HighestStatCondition.java +++ b/plugin/src/main/java/org/battleplugins/arena/competition/victory/types/HighestStatCondition.java @@ -114,7 +114,7 @@ public Set identifyPotentialVictors() { // win individually, their team should just contain them, or be empty. ArenaTeam team = player.getTeam(); if (team == null || this.getCompetition().getArena().getTeams().isNonTeamGame() || !this.teamStats) { - //デバック用のログ出力 + //debug log Bukkit.getLogger().info("[IPV]: F4A online..."); return Stream.of(player); } From 4c25cdd47482e1dc08593ff350e555db96cee9c8 Mon Sep 17 00:00:00 2001 From: saratoga Date: Mon, 30 Dec 2024 16:00:43 +0900 Subject: [PATCH 5/7] deleted debug message --- .../battleplugins/arena/module/teamcolors/TeamColors.java | 6 ------ .../competition/victory/types/HighestStatCondition.java | 2 -- 2 files changed, 8 deletions(-) diff --git a/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java b/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java index c4b0f400..9d4855bd 100644 --- a/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java +++ b/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java @@ -55,9 +55,6 @@ public void onJoin(ArenaJoinEvent event) { .map(EnumArenaOption::getOption) .orElse(NameTagOption.ALWAYS); bukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, convertNameTagOption(visibilityOption)); - //bukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER); - //Bukkit.getLogger().info("[TC.phase.original]" + visibilityOption.toString()); - //Bukkit.getLogger().info("[TC.phase.convert]" + convertNameTagOption(visibilityOption).toString()); if (showTeamPrefixes(event.getCompetition(), team)) { bukkitTeam.prefix(Component.text("[" + team.getName() + "] ", team.getTextColor())); @@ -113,9 +110,6 @@ public void onPhaseStart(ArenaPhaseStartEvent event) { bukkitTeam.color(NamedTextColor.nearestTo(team.getTextColor())); bukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, convertNameTagOption(visibilityOption)); - //Bukkit.getLogger().info("[TC.phase.original]" + visibilityOption.toString()); - //Bukkit.getLogger().info("[TC.phase.convert]" + convertNameTagOption(visibilityOption).toString()); - if (showTeamPrefixes(liveCompetition, team)) { bukkitTeam.prefix(Component.text("[" + team.getName() + "] ", team.getTextColor())); } diff --git a/plugin/src/main/java/org/battleplugins/arena/competition/victory/types/HighestStatCondition.java b/plugin/src/main/java/org/battleplugins/arena/competition/victory/types/HighestStatCondition.java index d301720f..58740df4 100644 --- a/plugin/src/main/java/org/battleplugins/arena/competition/victory/types/HighestStatCondition.java +++ b/plugin/src/main/java/org/battleplugins/arena/competition/victory/types/HighestStatCondition.java @@ -114,8 +114,6 @@ public Set identifyPotentialVictors() { // win individually, their team should just contain them, or be empty. ArenaTeam team = player.getTeam(); if (team == null || this.getCompetition().getArena().getTeams().isNonTeamGame() || !this.teamStats) { - //debug log - Bukkit.getLogger().info("[IPV]: F4A online..."); return Stream.of(player); } From 412263b77e6a024be20625e0aa2d1604535a4c86 Mon Sep 17 00:00:00 2001 From: HMS-CV-Unicorn Date: Sun, 21 Dec 2025 00:09:53 +0900 Subject: [PATCH 6/7] style: Improve code formatting and remove unused imports. --- .../arena/module/teamcolors/TeamColors.java | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java b/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java index 9d4855bd..39f4fdd7 100644 --- a/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java +++ b/module/team-colors/src/main/java/org/battleplugins/arena/module/teamcolors/TeamColors.java @@ -21,10 +21,8 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; -import org.bukkit.scoreboard.NameTagVisibility; import org.bukkit.scoreboard.Team; -import org.battleplugins.arena.config.ArenaOption; /** * A module that adds team colors to a player's name. */ @@ -32,7 +30,8 @@ public class TeamColors implements ArenaModuleInitializer { public static final String ID = "team-colors"; - public static final ArenaOptionType TEAM_PREFIXES = ArenaOptionType.create("team-prefixes", BooleanArenaOption::new); + public static final ArenaOptionType TEAM_PREFIXES = ArenaOptionType.create("team-prefixes", + BooleanArenaOption::new); @EventHandler public void onJoin(ArenaJoinEvent event) { @@ -45,15 +44,14 @@ public void onJoin(ArenaJoinEvent event) { // Register a new Bukkit team for each team in the competition Team bukkitTeam = event.getPlayer().getScoreboard().getTeam("ba-" + team.getName()); - if (bukkitTeam == null) { bukkitTeam = event.getPlayer().getScoreboard().registerNewTeam("ba-" + team.getName()); bukkitTeam.displayName(team.getFormattedName()); bukkitTeam.color(NamedTextColor.nearestTo(team.getTextColor())); NameTagOption visibilityOption = event.getCompetition().option(ArenaOptionType.NAME_TAG_VISIBILITY) - .map(EnumArenaOption::getOption) - .orElse(NameTagOption.ALWAYS); + .map(EnumArenaOption::getOption) + .orElse(NameTagOption.ALWAYS); bukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, convertNameTagOption(visibilityOption)); if (showTeamPrefixes(event.getCompetition(), team)) { @@ -61,7 +59,6 @@ public void onJoin(ArenaJoinEvent event) { } } - // If players are already on the team, add them to the Bukkit team for (ArenaPlayer teamPlayer : event.getCompetition().getTeamManager().getPlayersOnTeam(team)) { bukkitTeam.addPlayer(teamPlayer.getPlayer()); @@ -71,19 +68,19 @@ public void onJoin(ArenaJoinEvent event) { } private Team.OptionStatus convertNameTagOption(NameTagOption option) { - switch (option) { - case NEVER: - return Team.OptionStatus.NEVER; - case ALWAYS: - return Team.OptionStatus.ALWAYS; - case FOR_OWN_TEAM: - return Team.OptionStatus.FOR_OWN_TEAM; - case FOR_OTHER_TEAMS: - return Team.OptionStatus.FOR_OTHER_TEAMS; - default: - return Team.OptionStatus.ALWAYS; + switch (option) { + case NEVER: + return Team.OptionStatus.NEVER; + case ALWAYS: + return Team.OptionStatus.ALWAYS; + case FOR_OWN_TEAM: + return Team.OptionStatus.FOR_OWN_TEAM; + case FOR_OTHER_TEAMS: + return Team.OptionStatus.FOR_OTHER_TEAMS; + default: + return Team.OptionStatus.ALWAYS; + } } -} @EventHandler public void onPhaseStart(ArenaPhaseStartEvent event) { @@ -97,8 +94,8 @@ public void onPhaseStart(ArenaPhaseStartEvent event) { if (event.getCompetition() instanceof LiveCompetition liveCompetition) { NameTagOption visibilityOption = liveCompetition.option(ArenaOptionType.NAME_TAG_VISIBILITY) - .map(EnumArenaOption::getOption) - .orElse(NameTagOption.ALWAYS); + .map(EnumArenaOption::getOption) + .orElse(NameTagOption.ALWAYS); for (ArenaPlayer arenaPlayer : liveCompetition.getPlayers()) { Player player = arenaPlayer.getPlayer(); @@ -108,14 +105,16 @@ public void onPhaseStart(ArenaPhaseStartEvent event) { bukkitTeam = player.getScoreboard().registerNewTeam("ba-" + team.getName()); bukkitTeam.displayName(team.getFormattedName()); bukkitTeam.color(NamedTextColor.nearestTo(team.getTextColor())); - - bukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, convertNameTagOption(visibilityOption)); + + bukkitTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, + convertNameTagOption(visibilityOption)); if (showTeamPrefixes(liveCompetition, team)) { bukkitTeam.prefix(Component.text("[" + team.getName() + "] ", team.getTextColor())); } } - for (ArenaPlayer teamPlayer : arenaPlayer.getCompetition().getTeamManager().getPlayersOnTeam(team)) { + for (ArenaPlayer teamPlayer : arenaPlayer.getCompetition().getTeamManager() + .getPlayersOnTeam(team)) { bukkitTeam.addPlayer(teamPlayer.getPlayer()); } } @@ -169,7 +168,8 @@ private void joinTeam(Player player, LiveCompetition competition, ArenaTeam a Team team = competitionPlayer.getScoreboard().getTeam("ba-" + arenaTeam.getName()); if (team == null) { - BattleArena.getInstance().warn("Team {} does not have a Bukkit team registered for {}!", arenaTeam.getName(), player.getName()); + BattleArena.getInstance().warn("Team {} does not have a Bukkit team registered for {}!", + arenaTeam.getName(), player.getName()); continue; } From 5567b94e0c4f3d2e5c5df641f1332b1c7775e7cb Mon Sep 17 00:00:00 2001 From: HMS-CV-Unicorn Date: Sun, 21 Dec 2025 00:36:18 +0900 Subject: [PATCH 7/7] fix: exclude self-kills from triggering ArenaKillEvent --- .../battleplugins/arena/competition/CompetitionListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin/src/main/java/org/battleplugins/arena/competition/CompetitionListener.java b/plugin/src/main/java/org/battleplugins/arena/competition/CompetitionListener.java index accafc8b..10271bdc 100644 --- a/plugin/src/main/java/org/battleplugins/arena/competition/CompetitionListener.java +++ b/plugin/src/main/java/org/battleplugins/arena/competition/CompetitionListener.java @@ -79,8 +79,8 @@ public void onDeath(PlayerDeathEvent event, ArenaPlayer player) { return; } - // Check if the killer is in the same arena - if (killerPlayer.getCompetition().equals(this.competition)) { + // Check if the killer is in the same arena and is not the same player + if (killerPlayer.getCompetition().equals(this.competition) && !killerPlayer.equals(player)) { this.competition.getArena().getEventManager().callEvent(new ArenaKillEvent(killerPlayer, player)); } }