@@ -32,16 +32,24 @@ public class Panel implements HeadRequester, InventoryHolder {
32
32
private World world ;
33
33
34
34
/**
35
- * Various types of Panel that can be created.
35
+ * Various types of Panels that can be created that use InventoryTypes.
36
+ * <br>
37
+ * The current list of inventories that cannot be created are:<br>
38
+ * <blockquote>
39
+ * {@link Type#INVENTORY}, {@link Type#HOPPER} and
40
+ * {@link Type#DROPPER}
41
+ * </blockquote>
42
+ *
43
+ * These relate to the Bukkit inventories with INVENTORY being the standard CHEST inventory.
44
+ * See {@link org.bukkit.event.inventory.InventoryType}.
36
45
* @since 1.7.0
37
46
*/
38
47
public enum Type {
39
- INVENTORY ,
40
- HOPPER ,
41
- DROPPER
48
+ INVENTORY , HOPPER , DROPPER
42
49
}
43
50
44
- public Panel () {}
51
+ public Panel () {
52
+ }
45
53
46
54
public Panel (String name , Map <Integer , PanelItem > items , int size , User user , PanelListener listener ) {
47
55
this (name , items , size , user , listener , Type .INVENTORY );
@@ -65,28 +73,27 @@ public Panel(PanelBuilder pb) {
65
73
pb .getUser (), pb .getListener (), pb .getPanelType ());
66
74
}
67
75
68
- protected void makePanel (String name , Map <Integer , PanelItem > items , int size , User user ,
69
- PanelListener listener ) {
76
+ protected void makePanel (String name , Map <Integer , PanelItem > items , int size , User user , PanelListener listener ) {
70
77
this .makePanel (name , items , size , user , listener , Type .INVENTORY );
71
78
}
72
79
73
80
/**
74
81
* @since 1.7.0
75
82
*/
76
- protected void makePanel (String name , Map <Integer , PanelItem > items , int size , User user ,
77
- PanelListener listener , Type type ) {
83
+ protected void makePanel (String name , Map <Integer , PanelItem > items , int size , User user , PanelListener listener ,
84
+ Type type ) {
78
85
this .name = name ;
79
86
this .items = items ;
80
87
81
88
// Create panel
82
89
switch (type ) {
83
- case INVENTORY -> inventory = Bukkit .createInventory (null , fixSize (size ), name );
84
- case HOPPER -> inventory = Bukkit .createInventory (null , InventoryType .HOPPER , name );
85
- case DROPPER -> inventory = Bukkit .createInventory (null , InventoryType .DROPPER , name );
90
+ case INVENTORY -> inventory = Bukkit .createInventory (null , fixSize (size ), name );
91
+ case HOPPER -> inventory = Bukkit .createInventory (null , InventoryType .HOPPER , name );
92
+ case DROPPER -> inventory = Bukkit .createInventory (null , InventoryType .DROPPER , name );
86
93
}
87
94
88
95
// Fill the inventory and return
89
- for (Map .Entry <Integer , PanelItem > en : items .entrySet ()) {
96
+ for (Map .Entry <Integer , PanelItem > en : items .entrySet ()) {
90
97
if (en .getKey () < 54 ) {
91
98
inventory .setItem (en .getKey (), en .getValue ().getItem ());
92
99
// Get player head async
@@ -97,11 +104,13 @@ protected void makePanel(String name, Map<Integer, PanelItem> items, int size, U
97
104
}
98
105
this .listener = listener ;
99
106
// If the listener is defined, then run setup
100
- if (listener != null ) listener .setup ();
107
+ if (listener != null )
108
+ listener .setup ();
101
109
102
110
// If the user is defined, then open panel immediately
103
111
this .user = user ;
104
- if (user != null ) this .open (user );
112
+ if (user != null )
113
+ this .open (user );
105
114
}
106
115
107
116
private int fixSize (int size ) {
@@ -113,7 +122,8 @@ private int fixSize(int size) {
113
122
// Make sure size is a multiple of 9 and is 54 max.
114
123
size = size + 8 ;
115
124
size -= (size % 9 );
116
- if (size > 54 ) size = 54 ;
125
+ if (size > 54 )
126
+ size = 54 ;
117
127
} else {
118
128
return 9 ;
119
129
}
@@ -194,12 +204,10 @@ public void setUser(User user) {
194
204
public void setHead (PanelItem item ) {
195
205
// Update the panel item
196
206
// Find panel item index in items and replace it once more in inventory to update it.
197
- this .items .entrySet ().stream ().
198
- filter (entry -> entry .getValue () == item ).
199
- mapToInt (Map .Entry ::getKey ).findFirst ()
200
- .ifPresent (index ->
201
- // Update item inside inventory to change icon only if item is inside panel.
202
- this .inventory .setItem (index , item .getItem ()));
207
+ this .items .entrySet ().stream ().filter (entry -> entry .getValue () == item ).mapToInt (Map .Entry ::getKey ).findFirst ()
208
+ .ifPresent (index ->
209
+ // Update item inside inventory to change icon only if item is inside panel.
210
+ this .inventory .setItem (index , item .getItem ()));
203
211
}
204
212
205
213
/**
@@ -226,5 +234,4 @@ public void setWorld(World world) {
226
234
this .world = world ;
227
235
}
228
236
229
-
230
237
}
0 commit comments