11package world .bentobox .magiccobblestonegenerator .panels .admin ;
22
33
4+ import java .text .NumberFormat ;
45import java .util .ArrayList ;
56import java .util .Collections ;
67import java .util .HashSet ;
78import java .util .List ;
9+ import java .util .Locale ;
810import java .util .Set ;
911import java .util .TreeMap ;
1012import java .util .function .Consumer ;
2527import world .bentobox .magiccobblestonegenerator .database .objects .GeneratorTierObject ;
2628import world .bentobox .magiccobblestonegenerator .panels .CommonPanel ;
2729import world .bentobox .magiccobblestonegenerator .panels .ConversationUtils ;
28- import world .bentobox .magiccobblestonegenerator .panels .utils .MultiBiomeSelector ;
2930import world .bentobox .magiccobblestonegenerator .panels .utils .GeneratorTypeSelector ;
31+ import world .bentobox .magiccobblestonegenerator .panels .utils .MultiBiomeSelector ;
3032import world .bentobox .magiccobblestonegenerator .panels .utils .SingleBlockSelector ;
3133import world .bentobox .magiccobblestonegenerator .utils .Constants ;
3234import world .bentobox .magiccobblestonegenerator .utils .Pair ;
@@ -90,7 +92,7 @@ public void build()
9092
9193 switch (this .activeTab ) {
9294 case INFO -> {
93- this .populateInfo (panelBuilder );
95+ this .populateInfo (panelBuilder , user . getLocale () );
9496
9597 // Add listener that allows to change icons
9698 panelBuilder .listener (new IconChanger ());
@@ -147,54 +149,55 @@ private void populateHeader(PanelBuilder panelBuilder)
147149 * This method populates panel body with info blocks.
148150 *
149151 * @param panelBuilder PanelBuilder that must be created.
152+ * @param locale
150153 */
151- private void populateInfo (PanelBuilder panelBuilder )
154+ private void populateInfo (PanelBuilder panelBuilder , Locale locale )
152155 {
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 ));
157160
158161 // Add locked icon
159- panelBuilder .item (20 , this .createButton (Button .LOCKED_ICON ));
162+ panelBuilder .item (20 , this .createButton (Button .LOCKED_ICON , locale ));
160163
161164 // 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 ));
165168
166169 // Default genertator do not have requirements.
167170 if (!this .generatorTier .isDefaultGenerator ())
168171 {
169172 if (this .addon .isLevelProvided ())
170173 {
171- panelBuilder .item (13 , this .createButton (Button .REQUIRED_MIN_LEVEL ));
174+ panelBuilder .item (13 , this .createButton (Button .REQUIRED_MIN_LEVEL , locale ));
172175 }
173176
174177 // 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 ));
176179
177180 if (this .addon .isVaultProvided ())
178181 {
179182 // 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 ));
181184 }
182185 }
183186
184187 // If vault is disabled.
185188 if (this .addon .isVaultProvided ())
186189 {
187- panelBuilder .item (15 , this .createButton (Button .ACTIVATION_COST ));
190+ panelBuilder .item (15 , this .createButton (Button .ACTIVATION_COST , locale ));
188191 }
189192
190- panelBuilder .item (24 , this .createButton (Button .BIOMES ));
193+ panelBuilder .item (24 , this .createButton (Button .BIOMES , locale ));
191194
192195 // deployed button.
193- panelBuilder .item (33 , this .createButton (Button .DEPLOYED ));
196+ panelBuilder .item (33 , this .createButton (Button .DEPLOYED , locale ));
194197
195198 // 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 ));
198201 }
199202
200203
@@ -323,9 +326,10 @@ else if (this.pageIndex > (this.treasureChanceList.size() / MAX_ELEMENTS))
323326 * This method creates panel item for given button type.
324327 *
325328 * @param button Button type.
329+ * @param locale locale of user requesting the button
326330 * @return Clickable PanelItem button.
327331 */
328- private PanelItem createButton (Button button )
332+ private PanelItem createButton (Button button , Locale locale )
329333 {
330334 final String reference = Constants .BUTTON + button .name ().toLowerCase ();
331335 String name = this .user .getTranslation (reference + ".name" );
@@ -623,10 +627,12 @@ private PanelItem createButton(Button button)
623627 }
624628 }
625629 case PURCHASE_COST -> {
630+ NumberFormat numberFormat = NumberFormat .getNumberInstance (locale );
631+
626632 itemStack = new ItemStack (Material .GOLD_BLOCK );
627633
628634 description .add (this .user .getTranslation (reference + ".value" ,
629- Constants .NUMBER , String . valueOf (this .generatorTier .getGeneratorTierCost ())));
635+ Constants .NUMBER , numberFormat . format (this .generatorTier .getGeneratorTierCost ())));
630636
631637 clickHandler = (panel , user , clickType , i ) ->
632638 {
@@ -1317,7 +1323,7 @@ public void onInventoryClick(User user, InventoryClickEvent event)
13171323 GeneratorEditPanel .this .selectedButton = null ;
13181324 // Rebuild icon
13191325 event .getInventory ().setItem (19 ,
1320- GeneratorEditPanel .this .createButton (Button .ICON ).getItem ());
1326+ GeneratorEditPanel .this .createButton (Button .ICON , user . getLocale () ).getItem ());
13211327 }
13221328 else
13231329 {
@@ -1327,7 +1333,7 @@ public void onInventoryClick(User user, InventoryClickEvent event)
13271333 GeneratorEditPanel .this .selectedButton = null ;
13281334 // Rebuild icon
13291335 event .getInventory ().setItem (20 ,
1330- GeneratorEditPanel .this .createButton (Button .LOCKED_ICON ).getItem ());
1336+ GeneratorEditPanel .this .createButton (Button .LOCKED_ICON , user . getLocale () ).getItem ());
13311337 }
13321338
13331339 // save change
0 commit comments