1
1
package world .bentobox .magiccobblestonegenerator .panels .admin ;
2
2
3
3
4
+ import java .text .NumberFormat ;
4
5
import java .util .ArrayList ;
5
6
import java .util .Collections ;
6
7
import java .util .HashSet ;
7
8
import java .util .List ;
9
+ import java .util .Locale ;
8
10
import java .util .Set ;
9
11
import java .util .TreeMap ;
10
12
import java .util .function .Consumer ;
25
27
import world .bentobox .magiccobblestonegenerator .database .objects .GeneratorTierObject ;
26
28
import world .bentobox .magiccobblestonegenerator .panels .CommonPanel ;
27
29
import world .bentobox .magiccobblestonegenerator .panels .ConversationUtils ;
28
- import world .bentobox .magiccobblestonegenerator .panels .utils .MultiBiomeSelector ;
29
30
import world .bentobox .magiccobblestonegenerator .panels .utils .GeneratorTypeSelector ;
31
+ import world .bentobox .magiccobblestonegenerator .panels .utils .MultiBiomeSelector ;
30
32
import world .bentobox .magiccobblestonegenerator .panels .utils .SingleBlockSelector ;
31
33
import world .bentobox .magiccobblestonegenerator .utils .Constants ;
32
34
import world .bentobox .magiccobblestonegenerator .utils .Pair ;
@@ -90,7 +92,7 @@ public void build()
90
92
91
93
switch (this .activeTab ) {
92
94
case INFO -> {
93
- this .populateInfo (panelBuilder );
95
+ this .populateInfo (panelBuilder , user . getLocale () );
94
96
95
97
// Add listener that allows to change icons
96
98
panelBuilder .listener (new IconChanger ());
@@ -147,54 +149,55 @@ private void populateHeader(PanelBuilder panelBuilder)
147
149
* This method populates panel body with info blocks.
148
150
*
149
151
* @param panelBuilder PanelBuilder that must be created.
152
+ * @param locale
150
153
*/
151
- private void populateInfo (PanelBuilder panelBuilder )
154
+ private void populateInfo (PanelBuilder panelBuilder , Locale locale )
152
155
{
153
- panelBuilder .item (10 , this .createButton (Button .NAME ));
154
- panelBuilder .item (11 , this .createButton (Button .ID ));
155
- panelBuilder .item (19 , this .createButton (Button .ICON ));
156
- panelBuilder .item (28 , this .createButton (Button .DESCRIPTION ));
156
+ panelBuilder .item (10 , this .createButton (Button .NAME , locale ));
157
+ panelBuilder .item (11 , this .createButton (Button .ID , locale ));
158
+ panelBuilder .item (19 , this .createButton (Button .ICON , locale ));
159
+ panelBuilder .item (28 , this .createButton (Button .DESCRIPTION , locale ));
157
160
158
161
// Add locked icon
159
- panelBuilder .item (20 , this .createButton (Button .LOCKED_ICON ));
162
+ panelBuilder .item (20 , this .createButton (Button .LOCKED_ICON , locale ));
160
163
161
164
// Usefull information to know about generators.
162
- panelBuilder .item (12 , this .createButton (Button .DEFAULT ));
163
- panelBuilder .item (21 , this .createButton (Button .PRIORITY ));
164
- panelBuilder .item (30 , this .createButton (Button .TYPE ));
165
+ panelBuilder .item (12 , this .createButton (Button .DEFAULT , locale ));
166
+ panelBuilder .item (21 , this .createButton (Button .PRIORITY , locale ));
167
+ panelBuilder .item (30 , this .createButton (Button .TYPE , locale ));
165
168
166
169
// Default genertator do not have requirements.
167
170
if (!this .generatorTier .isDefaultGenerator ())
168
171
{
169
172
if (this .addon .isLevelProvided ())
170
173
{
171
- panelBuilder .item (13 , this .createButton (Button .REQUIRED_MIN_LEVEL ));
174
+ panelBuilder .item (13 , this .createButton (Button .REQUIRED_MIN_LEVEL , locale ));
172
175
}
173
176
174
177
// Display only permissions if they are required.
175
- panelBuilder .item (22 , this .createButton (Button .REQUIRED_PERMISSIONS ));
178
+ panelBuilder .item (22 , this .createButton (Button .REQUIRED_PERMISSIONS , locale ));
176
179
177
180
if (this .addon .isVaultProvided ())
178
181
{
179
182
// Display cost only if there exist vault.
180
- panelBuilder .item (31 , this .createButton (Button .PURCHASE_COST ));
183
+ panelBuilder .item (31 , this .createButton (Button .PURCHASE_COST , locale ));
181
184
}
182
185
}
183
186
184
187
// If vault is disabled.
185
188
if (this .addon .isVaultProvided ())
186
189
{
187
- panelBuilder .item (15 , this .createButton (Button .ACTIVATION_COST ));
190
+ panelBuilder .item (15 , this .createButton (Button .ACTIVATION_COST , locale ));
188
191
}
189
192
190
- panelBuilder .item (24 , this .createButton (Button .BIOMES ));
193
+ panelBuilder .item (24 , this .createButton (Button .BIOMES , locale ));
191
194
192
195
// deployed button.
193
- panelBuilder .item (33 , this .createButton (Button .DEPLOYED ));
196
+ panelBuilder .item (33 , this .createButton (Button .DEPLOYED , locale ));
194
197
195
198
// display treasures.
196
- panelBuilder .item (25 , this .createButton (Button .TREASURE_CHANCE ));
197
- panelBuilder .item (34 , this .createButton (Button .TREASURE_AMOUNT ));
199
+ panelBuilder .item (25 , this .createButton (Button .TREASURE_CHANCE , locale ));
200
+ panelBuilder .item (34 , this .createButton (Button .TREASURE_AMOUNT , locale ));
198
201
}
199
202
200
203
@@ -323,9 +326,10 @@ else if (this.pageIndex > (this.treasureChanceList.size() / MAX_ELEMENTS))
323
326
* This method creates panel item for given button type.
324
327
*
325
328
* @param button Button type.
329
+ * @param locale locale of user requesting the button
326
330
* @return Clickable PanelItem button.
327
331
*/
328
- private PanelItem createButton (Button button )
332
+ private PanelItem createButton (Button button , Locale locale )
329
333
{
330
334
final String reference = Constants .BUTTON + button .name ().toLowerCase ();
331
335
String name = this .user .getTranslation (reference + ".name" );
@@ -623,10 +627,12 @@ private PanelItem createButton(Button button)
623
627
}
624
628
}
625
629
case PURCHASE_COST -> {
630
+ NumberFormat numberFormat = NumberFormat .getNumberInstance (locale );
631
+
626
632
itemStack = new ItemStack (Material .GOLD_BLOCK );
627
633
628
634
description .add (this .user .getTranslation (reference + ".value" ,
629
- Constants .NUMBER , String . valueOf (this .generatorTier .getGeneratorTierCost ())));
635
+ Constants .NUMBER , numberFormat . format (this .generatorTier .getGeneratorTierCost ())));
630
636
631
637
clickHandler = (panel , user , clickType , i ) ->
632
638
{
@@ -1317,7 +1323,7 @@ public void onInventoryClick(User user, InventoryClickEvent event)
1317
1323
GeneratorEditPanel .this .selectedButton = null ;
1318
1324
// Rebuild icon
1319
1325
event .getInventory ().setItem (19 ,
1320
- GeneratorEditPanel .this .createButton (Button .ICON ).getItem ());
1326
+ GeneratorEditPanel .this .createButton (Button .ICON , user . getLocale () ).getItem ());
1321
1327
}
1322
1328
else
1323
1329
{
@@ -1327,7 +1333,7 @@ public void onInventoryClick(User user, InventoryClickEvent event)
1327
1333
GeneratorEditPanel .this .selectedButton = null ;
1328
1334
// Rebuild icon
1329
1335
event .getInventory ().setItem (20 ,
1330
- GeneratorEditPanel .this .createButton (Button .LOCKED_ICON ).getItem ());
1336
+ GeneratorEditPanel .this .createButton (Button .LOCKED_ICON , user . getLocale () ).getItem ());
1331
1337
}
1332
1338
1333
1339
// save change
0 commit comments