77import de .themoep .inventorygui .DynamicGuiElement ;
88import de .themoep .inventorygui .InventoryGui ;
99import de .themoep .inventorygui .StaticGuiElement ;
10+ import java .util .List ;
11+ import java .util .Locale ;
12+ import java .util .Map ;
1013import org .bukkit .Material ;
1114import org .bukkit .entity .Player ;
1215import org .bukkit .inventory .ItemStack ;
1316
1417public class ServerQueueMenu {
1518
16- private static final String [] MENU_LAYOUT = {
17- " " ,
18- " x y z " ,
19- " " ,
20- " c " ,
21- };
22-
2319 private final InventoryGui menu ;
2420
2521 private ServerQueueMenu (TheJpsPit plugin , String title ) {
22+ final String [] MENU_LAYOUT = plugin .getQueues ().getMenuLayout ().toArray (new String [0 ]);
2623 this .menu = new InventoryGui (plugin , title , MENU_LAYOUT );
2724
2825 // Add filler items
2926 this .menu .setFiller (new ItemStack (Material .BLACK_STAINED_GLASS_PANE , 1 ));
3027 // Add pagination handling
31- this .menu .addElement (
32- queueButton ('x' , "lobby" , new ItemStack (Material .PINK_WOOL ),
33- "CatchTheWool" , "&7相手陣地にある羊毛を自分陣地へ持ち帰れ!" ));
34- this .menu .addElement (
35- queueButton ('y' , "battle" , new ItemStack (Material .COBBLESTONE ),
36- "BattleCastle" , "&7自分のコアを守りつつ相手のコアを破壊せよ!!" ));
28+
29+ final Map <String , List <String >> queues = plugin .getQueues ().getServers ();
30+
31+ queues .forEach ((s , info ) -> {
32+ if (info .size () != 5 ) return ;
33+ final String serverName = info .get (0 );
34+ final String name = info .get (1 );
35+ final String description = info .get (2 );
36+ final String icon = info .get (3 ).toUpperCase (Locale .ROOT );
37+ final String command = info .get (4 );
38+ final Material material = Material .getMaterial (icon );
39+ this .menu .addElement (
40+ queueButton (String .valueOf (s ).charAt (0 ), serverName , command , new ItemStack (material == null ? Material .BARRIER : material ),
41+ name , description ));
42+ });
3743 this .menu .addElement (statusButton ());
3844 this .menu .addElement (closeButton ());
3945 }
@@ -46,7 +52,7 @@ public void show(PitPlayer player) {
4652 menu .show (player .getPlayer ());
4753 }
4854
49- private DynamicGuiElement queueButton (char symbol , String serverName , ItemStack itemStack ,
55+ private DynamicGuiElement queueButton (char symbol , String serverName , String command , ItemStack itemStack ,
5056 String title , String desc ) {
5157 return new DynamicGuiElement (symbol , (viewer ) -> {
5258 final QueueManager queueManager = TheJpsPit .getInstance ().getQueueManager ();
@@ -57,7 +63,7 @@ private DynamicGuiElement queueButton(char symbol, String serverName, ItemStack
5763 if (isQueued ) {
5864 queueManager .cancelQueue (pitPlayer );
5965 } else {
60- queueManager .addQueue (pitPlayer , serverName );
66+ queueManager .addQueue (pitPlayer , serverName , command );
6167 }
6268 click .getGui ().draw ();
6369 return true ;
0 commit comments