2121import net .kyori .adventure .text .Component ;
2222import java .util .LinkedList ;
2323import java .util .UUID ;
24+ import java .util .function .BiFunction ;
2425import org .bukkit .World ;
2526import org .bukkit .entity .Player ;
2627
@@ -36,6 +37,8 @@ public class PermHUD implements HUDImplementer {
3637 private static final String WHITE = Colors .WHITE ;
3738 private static final String YELLOW = Colors .YELLOW ;
3839
40+ private final static BiFunction <Boolean , Translator , Component > translateOnOff = (test , translator ) -> miniMessage (test ? translator .of ("status_on" ) : translator .of ("status_off" ));
41+
3942 final HUD hud ;
4043
4144 public PermHUD (HUD hud ) {
@@ -67,29 +70,29 @@ public static void updatePerms(Player p, WorldCoord worldCoord) {
6770
6871 private static void sendWildernessHUD (Player p , TownyWorld world , Translator translator , ServerHUD hud ) {
6972
70- Component build = getTranslatedOnOrOff (world .getUnclaimedZoneBuild (), translator );
71- Component destroy = getTranslatedOnOrOff (world .getUnclaimedZoneDestroy (), translator );
72- Component switching = getTranslatedOnOrOff (world .getUnclaimedZoneSwitch (), translator );
73- Component item = getTranslatedOnOrOff (world .getUnclaimedZoneItemUse (), translator );
74- Component pvp = getTranslatedOnOrOff (world .isPVP (), translator );
75- Component explosions = getTranslatedOnOrOff (world .isExpl (), translator );
76- Component firespread = getTranslatedOnOrOff (world .isFire (), translator );
77- Component mobspawn = getTranslatedOnOrOff (world .hasWildernessMobs (), translator );
73+ Component build = translateOnOff . apply (world .getUnclaimedZoneBuild (), translator );
74+ Component destroy = translateOnOff . apply (world .getUnclaimedZoneDestroy (), translator );
75+ Component switching = translateOnOff . apply (world .getUnclaimedZoneSwitch (), translator );
76+ Component item = translateOnOff . apply (world .getUnclaimedZoneItemUse (), translator );
77+ Component pvp = translateOnOff . apply (world .isPVP (), translator );
78+ Component explosions = translateOnOff . apply (world .isExpl (), translator );
79+ Component firespread = translateOnOff . apply (world .isFire (), translator );
80+ Component mobspawn = translateOnOff . apply (world .hasWildernessMobs (), translator );
7881
7982 LinkedList <Component > sbComponents = new LinkedList <>();
8083 sbComponents .add (miniMessage (DARK_GREEN + translator .of ("unclaimed_zone_name" )));
8184 sbComponents .add (Component .empty ());
8285 sbComponents .add (miniMessage (YELLOW + UNDERLINED + translator .of ("msg_perm_hud_title" ) + RESET ));
8386
84- sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_build" ) + " " ).append (build ));
85- sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_destroy" ) + " " ).append (destroy ));
86- sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_switch" ) + " " ).append (switching ));
87- sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_item_use" ) + " " ).append (item ));
87+ sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_build" )).append (build ));
88+ sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_destroy" )).append (destroy ));
89+ sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_switch" )).append (switching ));
90+ sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_item_use" )).append (item ));
8891
89- sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_pvp" ) + " " ).append (pvp ));
90- sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_explosions" ) + " " ).append (explosions ));
91- sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_firespread" ) + " " ).append (firespread ));
92- sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_mobspawns" ) + " " ).append (mobspawn ));
92+ sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_pvp" )).append (pvp ));
93+ sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_explosions" )).append (explosions ));
94+ sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_firespread" )).append (firespread ));
95+ sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_mobspawns" )).append (mobspawn ));
9396
9497 UUID uuid = p .getUniqueId ();
9598 hud .setTitle (uuid , miniMessage (HUDManager .check (getFormattedWildernessName (p .getWorld ()))));
@@ -109,10 +112,10 @@ public static void sendTownHUD(Player p, WorldCoord worldCoord, Translator trans
109112 Component switching = getPermLine (tp , ActionType .SWITCH , residentOwned );
110113 Component item = getPermLine (tp , ActionType .ITEM_USE , residentOwned );
111114 TownyWorld world = townBlock .getWorld ();
112- Component pvp = getTranslatedOnOrOff (!CombatUtil .preventPvP (world , townBlock ), translator );
113- Component explosions = getTranslatedOnOrOff (world .isForceExpl () || tp .explosion , translator );
114- Component firespread = getTranslatedOnOrOff (world .isForceFire () || tp .fire , translator );
115- Component mobspawn = getTranslatedOnOrOff (world .isForceTownMobs () || tp .mobs || townBlock .getTownOrNull ().isAdminEnabledMobs (), translator );
115+ Component pvp = translateOnOff . apply (!CombatUtil .preventPvP (world , townBlock ), translator );
116+ Component explosions = translateOnOff . apply (world .isForceExpl () || tp .explosion , translator );
117+ Component firespread = translateOnOff . apply (world .isForceFire () || tp .fire , translator );
118+ Component mobspawn = translateOnOff . apply (world .isForceTownMobs () || tp .mobs || townBlock .getTownOrNull ().isAdminEnabledMobs (), translator );
116119
117120 LinkedList <Component > sbComponents = new LinkedList <>();
118121 sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_plot_type" ) + type ));
@@ -124,18 +127,15 @@ public static void sendTownHUD(Player p, WorldCoord worldCoord, Translator trans
124127 sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_switch" )).append (switching ));
125128 sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_item_use" )).append (item ));
126129
127- sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_pvp" ) + " " ).append (pvp ));
128- sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_explosions" ) + " " ).append (explosions ));
129- sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_firespread" ) + " " ).append (firespread ));
130- sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_mobspawns" ) + " " ).append (mobspawn ));
130+ sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_pvp" )).append (pvp ));
131+ sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_explosions" )).append (explosions ));
132+ sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_firespread" )).append (firespread ));
133+ sbComponents .add (miniMessage (DARK_GREEN + translator .of ("msg_perm_hud_mobspawns" )).append (mobspawn ));
131134
132135 sbComponents .add (miniMessage (YELLOW + UNDERLINED + translator .of ("msg_perm_hud_key" )));
133- sbComponents .add (miniMessage (DARK_GREEN + BOLD + "f" + RESET + WHITE + " - " + GRAY + translator .of ("msg_perm_hud_friend" ) + " "
134- +DARK_GREEN + BOLD + "r" + RESET + WHITE + " - " + GRAY + translator .of ("msg_perm_hud_resident" )));
135- sbComponents .add (miniMessage (DARK_GREEN + BOLD + "t" + RESET + WHITE + " - " + GRAY + translator .of ("msg_perm_hud_town" ) + " "
136- +DARK_GREEN + BOLD + "n" + RESET + WHITE + " - " + GRAY + translator .of ("msg_perm_hud_nation" )));
137- sbComponents .add (miniMessage (DARK_GREEN + BOLD + "a" + RESET + WHITE + " - " + GRAY + translator .of ("msg_perm_hud_ally" ) + " "
138- +DARK_GREEN + BOLD + "o" + RESET + WHITE + " - " + GRAY + translator .of ("msg_perm_hud_outsider" )));
136+ sbComponents .add (formatKey ("f" , translator .of ("msg_perm_hud_friend" ), "r" , translator .of ("msg_perm_hud_resident" )));
137+ sbComponents .add (formatKey ("t" , translator .of ("msg_perm_hud_town" ), "n" , translator .of ("msg_perm_hud_nation" )));
138+ sbComponents .add (formatKey ("a" , translator .of ("msg_perm_hud_ally" ), "o" , translator .of ("msg_perm_hud_outsider" )));
139139
140140 UUID uuid = p .getUniqueId ();
141141 hud .setTitle (uuid , miniMessage (GOLD + owner .getName () + (townBlock .hasResident () ? " (" + townBlock .getTownOrNull ().getName () + ")" : "" )));
@@ -163,8 +163,8 @@ private static Component getPermLine(TownyPermission tp, ActionType actionType,
163163 (tp .getAllyPerm (actionType ) ? "a" : "-" ) + (tp .getOutsiderPerm (actionType ) ? "o" : "-" ));
164164 }
165165
166- private static Component getTranslatedOnOrOff ( boolean test , Translator translator ) {
167- return miniMessage (test ? translator . of ( "status_on" ) : translator . of ( "status_off" ) );
166+ private static Component formatKey ( String symbol , String explanation , String symbol2 , String explanation2 ) {
167+ return miniMessage (DARK_GREEN + BOLD + symbol + RESET + WHITE + " - " + GRAY + explanation + " " + DARK_GREEN + BOLD + symbol2 + RESET + WHITE + " - " + GRAY + explanation2 );
168168 }
169169
170170 private static String getFormattedWildernessName (World w ) {
0 commit comments