44import be .isach .ultracosmetics .UltraCosmeticsData ;
55import be .isach .ultracosmetics .config .MessageManager ;
66import be .isach .ultracosmetics .cosmetics .Category ;
7+ import be .isach .ultracosmetics .menu .Button ;
78import be .isach .ultracosmetics .menu .Menu ;
89import be .isach .ultracosmetics .menu .buttons .ClearCosmeticButton ;
910import be .isach .ultracosmetics .menu .buttons .KeysButton ;
1011import be .isach .ultracosmetics .menu .buttons .OpenChestButton ;
1112import be .isach .ultracosmetics .menu .buttons .OpenCosmeticMenuButton ;
1213import be .isach .ultracosmetics .player .UltraPlayer ;
1314import be .isach .ultracosmetics .shaded .adventure .text .Component ;
15+ import be .isach .ultracosmetics .shaded .adventure .text .format .NamedTextColor ;
16+ import me .datatags .ultracosmeticsguiaddon .buttons .InvisibleButtonWrapper ;
1417import org .bukkit .inventory .Inventory ;
1518
1619/**
2023 * @since 08-23-2016
2124 */
2225public class TexturedMainMenu extends Menu {
23- private final Component title = MessageManager .getMessage ("Menu.Main.Title" );
24- private int [] layout ;
26+ private final Component title = Component .text (generateTitle (), NamedTextColor .WHITE );
2527
26- public TexturedMainMenu (UltraCosmetics ultraCosmetics ) {
27- super (ultraCosmetics );
28-
29- switch (Category .enabledSize ()) {
30- case 10 :
31- layout = new int [] {9 , 11 , 13 , 15 , 17 , 27 , 29 , 31 , 33 , 35 };
32- break ;
33- case 9 :
34- layout = new int [] {9 , 11 , 13 , 15 , 17 , 28 , 30 , 32 , 34 };
35- break ;
36- case 8 :
37- layout = new int [] {10 , 12 , 14 , 16 , 28 , 30 , 32 , 34 };
38- break ;
39- case 7 :
40- layout = new int [] {10 , 13 , 16 , 28 , 30 , 32 , 34 };
41- break ;
42- case 6 :
43- layout = new int [] {10 , 13 , 16 , 28 , 31 , 34 };
44- break ;
45- case 5 :
46- layout = new int [] {10 , 16 , 22 , 29 , 33 };
47- break ;
48- case 4 :
49- layout = new int [] {19 , 21 , 23 , 25 };
50- break ;
51- case 3 :
52- layout = new int [] {20 , 22 , 24 };
53- break ;
54- case 2 :
55- layout = new int [] {21 , 23 };
56- break ;
57- case 1 :
58- layout = new int [] {22 };
59- break ;
28+ private static String generateTitle () {
29+ StringBuilder builder = new StringBuilder ();
30+ for (int i = 0 ; i < 8 ; i ++) {
31+ // Dice emoji
32+ builder .append ("\uD83C \uDFB2 " );
6033 }
34+ // House emoji
35+ return builder .append ("\uD83C \uDFE0 " ).toString ();
36+ }
6137
62- if (UltraCosmeticsData .get ().areTreasureChestsEnabled () && layout != null ) {
63- for (int i = 0 ; i < layout .length ; i ++) {
64- layout [i ] += 9 ;
65- }
66- }
38+ public TexturedMainMenu (UltraCosmetics ultraCosmetics ) {
39+ super (ultraCosmetics );
6740 }
6841
6942 @ Override
@@ -77,23 +50,32 @@ public void open(UltraPlayer player) {
7750
7851 @ Override
7952 protected void putItems (Inventory inventory , UltraPlayer player ) {
80- if ( Category .enabledSize () > 0 ) {
81- int i = 0 ;
82- boolean foundSuits = false ;
83- for ( Category category : Category .enabled ()) {
84- // Avoid counting suits categories as different menu items
85- if ( category . isSuits ()) {
86- if ( foundSuits ) continue ;
87- foundSuits = true ;
88- }
89- putItem (inventory , layout [ i ++], new OpenCosmeticMenuButton ( getUltraCosmetics (), category ) , player );
90- }
91- }
92- putItem ( inventory , inventory . getSize () - 5 , new ClearCosmeticButton (), player );
93- if ( UltraCosmeticsData . get (). areTreasureChestsEnabled () ) {
94- putItem (inventory , 5 , new KeysButton ( ultraCosmetics ) , player );
95- putItem (inventory , 3 , new OpenChestButton ( ultraCosmetics ) , player );
53+ putCategory ( inventory , 2 , Category .PETS , player );
54+ putCategory ( inventory , 3 , Category . GADGETS , player ) ;
55+ putCategory ( inventory , 4 , Category . EFFECTS , player ) ;
56+ putCategory ( inventory , 5 , Category .MOUNTS , player );
57+ putCategory ( inventory , 6 , Category . MORPHS , player );
58+ putCategory ( inventory , 11 , Category . HATS , player );
59+ putCategory ( inventory , 12 , Category . SUITS_HELMET , player ) ;
60+ putCategory ( inventory , 13 , Category . EMOTES , player ) ;
61+ putCategory ( inventory , 14 , Category . PROJECTILE_EFFECTS , player );
62+ putCategory (inventory , 15 , Category . DEATH_EFFECTS , player );
63+
64+ InvisibleButtonWrapper openChest = new InvisibleButtonWrapper ( new OpenChestButton ( ultraCosmetics ));
65+ InvisibleButtonWrapper keys = new InvisibleButtonWrapper ( new KeysButton ( ultraCosmetics ) );
66+ for ( int i = 30 ; i < 33 ; i ++ ) {
67+ putItem (inventory , i , openChest , player );
68+ putItem (inventory , i + 9 , keys , player );
9669 }
70+ putInvisibleItem (inventory , 43 , new ClearCosmeticButton (), player );
71+ }
72+
73+ protected void putCategory (Inventory inventory , int slot , Category category , UltraPlayer player ) {
74+ putInvisibleItem (inventory , slot , new OpenCosmeticMenuButton (getUltraCosmetics (), category ), player );
75+ }
76+
77+ protected void putInvisibleItem (Inventory inventory , int slot , Button button , UltraPlayer player ) {
78+ putItem (inventory , slot , new InvisibleButtonWrapper (button ), player );
9779 }
9880
9981 @ Override
@@ -103,7 +85,7 @@ protected Component getName() {
10385
10486 @ Override
10587 protected int getSize () {
106- return UltraCosmeticsData . get (). areTreasureChestsEnabled () ? 54 : 45 ;
88+ return 54 ;
10789 }
10890
10991}
0 commit comments