1616 */
1717package me .eccentric_nz .TARDIS .lights ;
1818
19- import com .mojang .datafixers .util .Pair ;
2019import me .eccentric_nz .TARDIS .TARDIS ;
2120import me .eccentric_nz .TARDIS .builders .utility .LightLevel ;
2221import me .eccentric_nz .TARDIS .control .actions .ConsoleLampAction ;
4039
4140public class TARDISLightLevelsGUIListener extends TARDISMenuListener {
4241
42+ private static class StateResult {
43+ Boolean success ;
44+ Integer strength ;
45+ Integer level ;
46+
47+ public StateResult (Boolean success , Integer strength , Integer level ) {
48+ this .success = success ;
49+ this .strength = strength ;
50+ this .level = level ;
51+ }
52+ }
53+
4354 private final TARDIS plugin ;
4455
4556 public TARDISLightLevelsGUIListener (TARDIS plugin ) {
@@ -76,67 +87,67 @@ public void onLightLevelsMenuClick(InventoryClickEvent event) {
7687 switch (slot ) {
7788 case 9 -> {
7889 // interior minus
79- Pair < Boolean , Integer > setLevel = getNewState (view , 10 , false );
80- if (setLevel .getFirst () ) {
90+ StateResult setLevel = getNewState (view , 10 , false );
91+ if (setLevel .success ) {
8192 // update indicator
82- setState (view , 10 , setLevel .getSecond () );
93+ setState (view , 10 , setLevel .strength );
8394 // set light level
84- setLightLevel (setLevel .getSecond () , 50 , id );
95+ setLightLevel (setLevel .level , 50 , id );
8596 // TODO update control?
8697 }
8798 }
8899 case 11 -> {
89100 // interior plus
90- Pair < Boolean , Integer > setLevel = getNewState (view , 10 , true );
91- if (setLevel .getFirst () ) {
101+ StateResult setLevel = getNewState (view , 10 , true );
102+ if (setLevel .success ) {
92103 // update indicator
93- setState (view , 10 , setLevel .getSecond () );
104+ setState (view , 10 , setLevel .strength );
94105 // set light level
95- setLightLevel (setLevel .getSecond () , 50 , id );
106+ setLightLevel (setLevel .level , 50 , id );
96107 // TODO update control?
97108 }
98109 }
99110 case 15 -> {
100111 // exterior minus
101- Pair < Boolean , Integer > setLevel = getNewState (view , 16 , false );
102- if (setLevel .getFirst () ) {
112+ StateResult setLevel = getNewState (view , 16 , false );
113+ if (setLevel .success ) {
103114 // update indicator
104- setState (view , 16 , setLevel .getSecond () );
115+ setState (view , 16 , setLevel .strength );
105116 // set light level
106- setLightLevel (setLevel .getSecond () , 49 , id );
117+ setLightLevel (setLevel .level , 49 , id );
107118 // TODO update control?
108119 }
109120 }
110121 case 17 -> {
111122 // exterior plus
112- Pair < Boolean , Integer > setLevel = getNewState (view , 16 , true );
113- if (setLevel . getFirst () ) {
123+ StateResult setLevel = getNewState (view , 16 , true );
124+ if (setLevel . success ) {
114125 // update indicator
115- setState (view , 16 , setLevel .getSecond () );
126+ setState (view , 16 , setLevel .strength );
116127 // set light level
117- setLightLevel (setLevel .getSecond () , 49 , id );
128+ setLightLevel (setLevel .level , 49 , id );
118129 // TODO update control?
119130 }
120131 }
121132 case 30 -> {
122133 // console minus
123- Pair < Boolean , Integer > setLevel = getNewState (view , 31 , false );
124- if (setLevel .getFirst () ) {
134+ StateResult setLevel = getNewState (view , 31 , false );
135+ if (setLevel .success ) {
125136 // update indicator
126- setState (view , 31 , setLevel .getSecond () );
137+ setState (view , 31 , setLevel .strength );
127138 // set light level
128- setLightLevel (setLevel .getSecond () , 56 , id );
139+ setLightLevel (setLevel .level , 56 , id );
129140 // TODO update control?
130141 }
131142 }
132143 case 32 -> {
133144 // console plus
134- Pair < Boolean , Integer > setLevel = getNewState (view , 31 , true );
135- if (setLevel .getFirst () ) {
145+ StateResult setLevel = getNewState (view , 31 , true );
146+ if (setLevel .success ) {
136147 // update indicator
137- setState (view , 31 , setLevel .getSecond () );
148+ setState (view , 31 , setLevel .strength );
138149 // set light level
139- setLightLevel (setLevel .getSecond () , 56 , id );
150+ setLightLevel (setLevel .level , 56 , id );
140151 // TODO update control?
141152 }
142153 }
@@ -147,35 +158,35 @@ public void onLightLevelsMenuClick(InventoryClickEvent event) {
147158 }
148159 }
149160
150- private Pair < Boolean , Integer > getNewState (InventoryView view , int slot , boolean next ) {
161+ private StateResult getNewState (InventoryView view , int slot , boolean next ) {
151162 ItemStack is = view .getItem (slot );
152163 ItemMeta im = is .getItemMeta ();
153164 String lore = ComponentUtils .stripColour (im .lore ().getFirst ());
154- int state = TARDISNumberParsers .parseInt (lore );
165+ int currentStrength = TARDISNumberParsers .parseInt (lore );
155166 int index ;
156167 if (slot == 16 ) {
157- index = ArrayUtils .indexOf (LightLevel .exterior_level , state );
168+ index = ArrayUtils .indexOf (LightLevel .exterior_level , currentStrength );
158169 if (next && index - 1 >= 0 ) {
159- return new Pair <> (true , LightLevel .exterior_level [index - 1 ]);
160- } else if (index + 1 < LightLevel .exterior_level .length ) {
161- return new Pair <> (true , LightLevel .exterior_level [index + 1 ]);
170+ return new StateResult (true , LightLevel .exterior_level [index - 1 ], index - 1 );
171+ } else if (! next && index + 1 < LightLevel .exterior_level .length ) {
172+ return new StateResult (true , LightLevel .exterior_level [index + 1 ], index + 1 );
162173 }
163174 } else {
164- index = ArrayUtils .indexOf (LightLevel .interior_level , state );
175+ index = ArrayUtils .indexOf (LightLevel .interior_level , currentStrength );
165176 if (next && index - 1 >= 0 ) {
166- return new Pair <> (true , LightLevel .interior_level [index - 1 ]);
167- } else if (index + 1 < LightLevel .interior_level .length ) {
168- return new Pair <> (true , LightLevel .interior_level [index + 1 ]);
177+ return new StateResult (true , LightLevel .interior_level [index - 1 ], index - 1 );
178+ } else if (! next && index + 1 < LightLevel .interior_level .length ) {
179+ return new StateResult (true , LightLevel .interior_level [index + 1 ], index + 1 );
169180 }
170181 }
171- return new Pair <> (false , state );
182+ return new StateResult (false , currentStrength , 0 );
172183 }
173184
174- private void setState (InventoryView view , int slot , int level ) {
185+ private void setState (InventoryView view , int slot , int strength ) {
175186 ItemStack is = view .getItem (slot );
176187 ItemMeta im = is .getItemMeta ();
177188 List <Component > lore = im .lore ();
178- lore .set (0 , Component .text (level ));
189+ lore .set (0 , Component .text (strength ));
179190 im .lore (lore );
180191 is .setItemMeta (im );
181192 }
0 commit comments