From 1ff1ceb3c9cd70f6344890a57e3467716adae60f Mon Sep 17 00:00:00 2001 From: nahkd123 Date: Sat, 12 Aug 2023 12:34:00 +0700 Subject: [PATCH 1/5] Rename MenuText to Translations --- .../stonks/fabric/StonksFabricHelper.java | 29 +++++----- .../java/stonks/fabric/StonksFabricUtils.java | 11 ++-- .../{menu/MenuText.java => Translations.java} | 6 +-- .../stonks/fabric/menu/MarketMainMenu.java | 37 ++++++------- .../java/stonks/fabric/menu/MenuIcons.java | 13 ++--- .../menu/handling/WaitableGuiElement.java | 4 +- .../fabric/menu/player/OfferInfoMenu.java | 36 ++++++------- .../fabric/menu/player/ViewOffersMenu.java | 36 ++++++------- .../menu/product/InstantBuyConfirmMenu.java | 22 ++++---- .../fabric/menu/product/InstantBuyMenu.java | 30 +++++------ .../product/OfferAmountConfigureMenu.java | 20 +++---- .../fabric/menu/product/OfferConfirmMenu.java | 18 +++---- .../menu/product/OfferPriceConfigureMenu.java | 54 +++++++++---------- .../fabric/menu/product/ProductMenu.java | 40 +++++++------- .../product/input/OfferCustomPriceInput.java | 16 +++--- .../input/OfferInstantBuyAmountInput.java | 14 ++--- .../input/OfferSelectCustomAmountInput.java | 16 +++--- 17 files changed, 200 insertions(+), 202 deletions(-) rename fabric/src/main/java/stonks/fabric/{menu/MenuText.java => Translations.java} (99%) diff --git a/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java b/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java index 1b174c3..04222fb 100644 --- a/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java +++ b/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java @@ -31,7 +31,6 @@ import stonks.core.market.Offer; import stonks.core.market.OfferType; import stonks.core.product.Product; -import stonks.fabric.menu.MenuText; public class StonksFabricHelper { public static Task instantOffer(ServerPlayerEntity player, Product product, OfferType type, int units, double balance) { @@ -44,13 +43,13 @@ public static Task instantOffer(ServerPlayerEntity player, Product product provider.getStonksAdapter().removeUnitsFrom(player, product, units); } - player.sendMessage(MenuText.message$pleaseWait, true); + player.sendMessage(Translations.message$pleaseWait, true); var task = provider.getStonksService().instantOffer(product, type, units, balance); provider.getTasksHandler() .handle(task, (result, error) -> { if (error != null) { - player.sendMessage(MenuText.message$errorRefunding, true); + player.sendMessage(Translations.message$errorRefunding, true); if (type == OfferType.BUY) provider.getStonksAdapter().accountDeposit(player, balance); else provider.getStonksAdapter().addUnitsTo(player, product, units); error.printStackTrace(); @@ -74,8 +73,8 @@ public static Task instantOffer(ServerPlayerEntity player, Product product var unitsLeftText = Text.literal(Integer.toString(unitsLeft)) .styled(s -> s.withColor(Formatting.AQUA)); var text = unitsLeft == 0 - ? MenuText.messages$bought(amountText, productNameText, moneySpentText) - : MenuText.messages$boughtWithExtras(amountText, productNameText, moneySpentText, + ? Translations.messages$bought(amountText, productNameText, moneySpentText) + : Translations.messages$boughtWithExtras(amountText, productNameText, moneySpentText, unitsLeftText); player.sendMessage(text, true); } else { @@ -93,8 +92,8 @@ public static Task instantOffer(ServerPlayerEntity player, Product product var unitsLeftText = Text.literal(Integer.toString(unitsLeft)) .styled(s -> s.withColor(Formatting.AQUA)); var text = unitsLeft == 0 - ? MenuText.messages$sold(amountText, productNameText, moneyReceivedText) - : MenuText.messages$soldWithExtras(amountText, productNameText, moneyReceivedText, + ? Translations.messages$sold(amountText, productNameText, moneyReceivedText) + : Translations.messages$soldWithExtras(amountText, productNameText, moneyReceivedText, unitsLeftText); player.sendMessage(text, true); } @@ -112,7 +111,7 @@ public static void placeOffer(ServerPlayerEntity player, Product product, OfferT var balance = adapter.accountBalance(player); if (balance < totalPrice) { - player.sendMessage(MenuText.messages$notEnoughMoney(balance, totalPrice), true); + player.sendMessage(Translations.messages$notEnoughMoney(balance, totalPrice), true); return; } @@ -126,19 +125,19 @@ public static void placeOffer(ServerPlayerEntity player, Product product, OfferT } if (currentUnits < units) { - player.sendMessage(MenuText.messages$notEnoughItems(currentUnits, units)); + player.sendMessage(Translations.messages$notEnoughItems(currentUnits, units)); return; } adapter.removeUnitsFrom(player, product, units); } - player.sendMessage(MenuText.message$pleaseWait, true); + player.sendMessage(Translations.message$pleaseWait, true); provider.getTasksHandler() .handle(provider.getStonksService().listOffer(player.getUuid(), product, type, units, pricePerUnit), (offer, error) -> { if (error != null) { - player.sendMessage(MenuText.message$errorRefunding, true); + player.sendMessage(Translations.message$errorRefunding, true); if (type == OfferType.BUY) { adapter.accountDeposit(player, totalPrice); @@ -156,8 +155,8 @@ public static void placeOffer(ServerPlayerEntity player, Product product, OfferT var totalPriceText = StonksFabricUtils.currencyText(Optional.of(totalPrice), true); var pricePerUnitText = StonksFabricUtils.currencyText(Optional.of(pricePerUnit), true); player.sendMessage(offer.getType() == OfferType.BUY - ? MenuText.messages$placedBuyOffer(unitsText, productNameText, totalPriceText, pricePerUnitText) - : MenuText.messages$placedSellOffer(unitsText, productNameText, totalPriceText, + ? Translations.messages$placedBuyOffer(unitsText, productNameText, totalPriceText, pricePerUnitText) + : Translations.messages$placedSellOffer(unitsText, productNameText, totalPriceText, pricePerUnitText), true); }); @@ -167,7 +166,7 @@ public static void sendOfferFilledMessage(MinecraftServer server, Offer filledOf var player = server.getPlayerManager().getPlayer(filledOffer.getOffererId()); if (player == null) return; player.sendMessage(filledOffer.getType() == OfferType.BUY - ? MenuText.messages$buyOfferFilled(filledOffer) - : MenuText.messages$sellOfferFilled(filledOffer)); + ? Translations.messages$buyOfferFilled(filledOffer) + : Translations.messages$sellOfferFilled(filledOffer)); } } diff --git a/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java b/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java index d19211f..bfe2af2 100644 --- a/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java +++ b/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java @@ -33,7 +33,6 @@ import net.minecraft.util.Formatting; import stonks.core.market.OfferType; import stonks.core.market.OverviewOffer; -import stonks.fabric.menu.MenuText; public class StonksFabricUtils { public static Text progressBar(int width, Formatting background, double[] progress, Formatting[] colors) { @@ -76,8 +75,8 @@ public static String createStringFor(ItemStack stack, MinecraftServer server) { public static final DecimalFormat TAX_FORMATTER = new DecimalFormat("#,##0.##%"); public static Text currencyText(Optional v, boolean fullNotAvailable) { - if (v.isEmpty()) return fullNotAvailable ? MenuText.messages$notAvailable : MenuText.messages$notAvailableShort; - return MenuText.messages$currency(v.get()); + if (v.isEmpty()) return fullNotAvailable ? Translations.messages$notAvailable : Translations.messages$notAvailableShort; + return Translations.messages$currency(v.get()); } public static Optional taxText(double tax) { @@ -87,14 +86,14 @@ public static Optional taxText(double tax) { public static Text offerText(OfferType type, OverviewOffer offer) { var typeText = type == OfferType.BUY - ? MenuText.messages$offerInfoText$buy - : MenuText.messages$offerInfoText$sell; + ? Translations.messages$offerInfoText$buy + : Translations.messages$offerInfoText$sell; var totalAvailableUnits = Text.literal(Integer.toString(offer.totalAvailableUnits())) .styled(s -> s.withColor(Formatting.AQUA)); var offersCountText = Text.literal(Integer.toString(offer.offers())).styled(s -> s.withColor(Formatting.AQUA)); var ppuText = currencyText(Optional.of(offer.pricePerUnit()), false); - return MenuText.messages$offerInfoText(typeText, totalAvailableUnits, offersCountText, ppuText); + return Translations.messages$offerInfoText(typeText, totalAvailableUnits, offersCountText, ppuText); } public static boolean compareStack(ItemStack a, ItemStack b) { diff --git a/fabric/src/main/java/stonks/fabric/menu/MenuText.java b/fabric/src/main/java/stonks/fabric/Translations.java similarity index 99% rename from fabric/src/main/java/stonks/fabric/menu/MenuText.java rename to fabric/src/main/java/stonks/fabric/Translations.java index a08e3fa..210936a 100644 --- a/fabric/src/main/java/stonks/fabric/menu/MenuText.java +++ b/fabric/src/main/java/stonks/fabric/Translations.java @@ -19,7 +19,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package stonks.fabric.menu; +package stonks.fabric; import static net.minecraft.text.Text.translatableWithFallback; @@ -31,11 +31,9 @@ import stonks.core.market.ComputedOffersList; import stonks.core.market.Offer; import stonks.core.product.Product; -import stonks.fabric.PlatformConfig; -import stonks.fabric.StonksFabricUtils; // @formatter:off -public class MenuText { +public class Translations { public static final Text icons$border = translatableWithFallback("stonks.menu.icon.border", " "); public static final Text icons$previousMenu = translatableWithFallback("stonks.menu.icon.previousMenu", "\u00a77<-- \u00a7aBack"); public static final Text icons$mainMenu = translatableWithFallback("stonks.menu.icon.mainMenu", "\u00a7eMarket menu"); diff --git a/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java b/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java index d6de3d9..1c63733 100644 --- a/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java @@ -39,6 +39,7 @@ import stonks.core.product.Category; import stonks.core.product.Product; import stonks.fabric.StonksFabric; +import stonks.fabric.Translations; import stonks.fabric.menu.handling.WaitableGuiElement; import stonks.fabric.menu.product.ProductMenu; @@ -51,7 +52,7 @@ public class MarketMainMenu extends StackedMenu { public MarketMainMenu(StackedMenu previous, ServerPlayerEntity player) { super(previous, ScreenHandlerType.GENERIC_9X6, player, false); - setTitle(MenuText.menus$mainMenu); + setTitle(Translations.menus$mainMenu); for (int i = 0; i < getHeight() - 1; i++) { var slot = (i + 1) * getWidth(); @@ -68,8 +69,8 @@ public MarketMainMenu(StackedMenu previous, ServerPlayerEntity player) { (categories, error) -> { if (error != null) { var icon = new GuiElementBuilder(Items.BARRIER) - .setName(MenuText.errors) - .addLoreLine(MenuText.errors$categoriesList); + .setName(Translations.errors) + .addLoreLine(Translations.errors$categoriesList); for (int i = 0; i < getHeight() - 1; i++) { var slot = (i + 1) * getWidth(); @@ -104,8 +105,8 @@ protected void placePagesNavigations(List categories) { setSlot(10, categories == null || categoriesPage <= 0 ? MenuIcons.BORDER : new GuiElementBuilder(Items.RED_STAINED_GLASS_PANE, Math.max(Math.min(categoriesPage, 64), 1)) - .setName(MenuText.icons$scrollUp) - .addLoreLine(MenuText.icons$scrollUp$0(categoriesPage, categoriesMaxPages)) + .setName(Translations.icons$scrollUp) + .addLoreLine(Translations.icons$scrollUp$0(categoriesPage, categoriesMaxPages)) .setCallback((index, type, action, gui) -> { if (categoriesPage <= 0 || categories == null) return; categoriesPage--; @@ -115,8 +116,8 @@ protected void placePagesNavigations(List categories) { setSlot(46, categories == null || categoriesPage >= (categoriesMaxPages - 1) ? MenuIcons.BORDER : new GuiElementBuilder(Items.YELLOW_STAINED_GLASS_PANE, Math.max(Math.min(categoriesPage + 2, 64), 1)) - .setName(MenuText.icons$scrollDown) - .addLoreLine(MenuText.icons$scrollDown$0(categoriesPage, categoriesMaxPages)) + .setName(Translations.icons$scrollDown) + .addLoreLine(Translations.icons$scrollDown$0(categoriesPage, categoriesMaxPages)) .setCallback((index, type, action, gui) -> { if (categoriesPage >= (categoriesMaxPages - 1) || categories == null) return; categoriesPage++; @@ -128,8 +129,8 @@ protected void placePagesNavigations(List categories) { setSlot(2, categories == null || productsPage <= 0 ? MenuIcons.BORDER : new GuiElementBuilder(Items.ARROW, Math.max(Math.min(productsPage, 64), 1)) - .setName(MenuText.icons$previousPage) - .addLoreLine(MenuText.icons$previousPage$0(productsPage, productsMaxPage)) + .setName(Translations.icons$previousPage) + .addLoreLine(Translations.icons$previousPage$0(productsPage, productsMaxPage)) .setCallback((index, type, action, gui) -> { if (productsPage <= 0 || categories == null) return; productsPage--; @@ -139,8 +140,8 @@ protected void placePagesNavigations(List categories) { setSlot(6, categories == null || productsPage >= (productsMaxPage - 1) ? MenuIcons.BORDER : new GuiElementBuilder(Items.ARROW, Math.max(Math.min(productsPage + 2, 64), 1)) - .setName(MenuText.icons$nextPage) - .addLoreLine(MenuText.icons$nextPage$0(productsPage, productsMaxPage)) + .setName(Translations.icons$nextPage) + .addLoreLine(Translations.icons$nextPage$0(productsPage, productsMaxPage)) .setCallback((index, type, action, gui) -> { if (productsPage >= (productsMaxPage - 1) || categories == null) return; productsPage++; @@ -167,8 +168,8 @@ private void placeCategories(List categories) { .setName(Text.literal(category.getCategoryName()) .styled(s -> s.withColor(Formatting.AQUA))) .addLoreLine(selected - ? MenuText.menus$mainMenu$category$selected - : MenuText.menus$mainMenu$category$unselected) + ? Translations.menus$mainMenu$category$selected + : Translations.menus$mainMenu$category$unselected) .setCallback((index, type, action, gui) -> { selectedCategoryIndex = currentCategoryIndex; productsPage = 0; @@ -213,8 +214,8 @@ private void placeProduct(int slot, StonksServiceCache cache, Category category, public ItemStack createStackWhenLoaded(ProductMarketOverview overview, Throwable error) { // TODO use message from UserException if (error != null) return new GuiElementBuilder(Items.BARRIER) - .setName(MenuText.errors) - .addLoreLine(MenuText.errors$quickPriceDetails) + .setName(Translations.errors) + .addLoreLine(Translations.errors$quickPriceDetails) .asStack(); // TODO should we use avg price? @@ -226,10 +227,10 @@ public ItemStack createStackWhenLoaded(ProductMarketOverview overview, Throwable .addLoreLine(Text.literal(category.getCategoryName()) .styled(s -> s.withColor(Formatting.DARK_GRAY))) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$mainMenu$product$instantBuy(instantBuyPrice)) - .addLoreLine(MenuText.menus$mainMenu$product$instantSell(instantSellPrice)) + .addLoreLine(Translations.menus$mainMenu$product$instantBuy(instantBuyPrice)) + .addLoreLine(Translations.menus$mainMenu$product$instantSell(instantSellPrice)) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$mainMenu$product$clickToOpen) + .addLoreLine(Translations.menus$mainMenu$product$clickToOpen) .asStack(); } diff --git a/fabric/src/main/java/stonks/fabric/menu/MenuIcons.java b/fabric/src/main/java/stonks/fabric/menu/MenuIcons.java index f842277..c407eab 100644 --- a/fabric/src/main/java/stonks/fabric/menu/MenuIcons.java +++ b/fabric/src/main/java/stonks/fabric/menu/MenuIcons.java @@ -23,21 +23,22 @@ import eu.pb4.sgui.api.elements.GuiElementBuilder; import net.minecraft.item.Items; +import stonks.fabric.Translations; import stonks.fabric.menu.player.ViewOffersMenu; public class MenuIcons { public static final GuiElementBuilder BORDER = new GuiElementBuilder(Items.BLACK_STAINED_GLASS_PANE) - .setName(MenuText.icons$border); + .setName(Translations.icons$border); public static final GuiElementBuilder BACK = new GuiElementBuilder(Items.ARROW) - .setName(MenuText.icons$previousMenu) + .setName(Translations.icons$previousMenu) .setCallback((index, type, action, gui) -> { if (gui instanceof StackedMenu stacked) { stacked.getPrevious().open(); } }); public static final GuiElementBuilder MAIN_MENU = new GuiElementBuilder(Items.GOLD_BLOCK) - .setName(MenuText.icons$mainMenu) - .addLoreLine(MenuText.icons$mainMenu$0) + .setName(Translations.icons$mainMenu) + .addLoreLine(Translations.icons$mainMenu$0) .setCallback((index, type, action, gui) -> { var previous = gui instanceof StackedMenu stacked ? stacked : null; if (previous != null && previous.getPrevious() instanceof MarketMainMenu) { @@ -50,8 +51,8 @@ public class MenuIcons { }); public static final GuiElementBuilder VIEW_SELF_OFFERS = new GuiElementBuilder(Items.CHEST) - .setName(MenuText.icons$viewOffers) - .addLoreLine(MenuText.icons$viewOffer$0) + .setName(Translations.icons$viewOffers) + .addLoreLine(Translations.icons$viewOffer$0) .setCallback((index, type, action, gui) -> { var previous = gui instanceof StackedMenu stacked ? stacked : null; if (previous != null && previous.getPrevious() instanceof ViewOffersMenu) { diff --git a/fabric/src/main/java/stonks/fabric/menu/handling/WaitableGuiElement.java b/fabric/src/main/java/stonks/fabric/menu/handling/WaitableGuiElement.java index 3616fd8..2efc0e2 100644 --- a/fabric/src/main/java/stonks/fabric/menu/handling/WaitableGuiElement.java +++ b/fabric/src/main/java/stonks/fabric/menu/handling/WaitableGuiElement.java @@ -33,13 +33,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.screen.slot.SlotActionType; -import stonks.fabric.menu.MenuText; +import stonks.fabric.Translations; public abstract class WaitableGuiElement implements GuiElementInterface { protected static final ItemStack[] LOADING = Stream .of(":..", ".:.", "..:", ".:.") .map(v -> new GuiElementBuilder(Items.CLOCK) - .setName(MenuText.icons$loading(v)) + .setName(Translations.icons$loading(v)) .asStack()) .toArray(ItemStack[]::new); diff --git a/fabric/src/main/java/stonks/fabric/menu/player/OfferInfoMenu.java b/fabric/src/main/java/stonks/fabric/menu/player/OfferInfoMenu.java index d074564..ad81b65 100644 --- a/fabric/src/main/java/stonks/fabric/menu/player/OfferInfoMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/player/OfferInfoMenu.java @@ -31,8 +31,8 @@ import stonks.core.market.Offer; import stonks.core.market.OfferType; import stonks.fabric.StonksFabric; +import stonks.fabric.Translations; import stonks.fabric.menu.MenuIcons; -import stonks.fabric.menu.MenuText; import stonks.fabric.menu.StackedMenu; public class OfferInfoMenu extends StackedMenu { @@ -41,7 +41,7 @@ public class OfferInfoMenu extends StackedMenu { public OfferInfoMenu(StackedMenu previous, ServerPlayerEntity player, Offer offer) { super(previous, ScreenHandlerType.GENERIC_9X4, player, false); this.offer = offer; - setTitle(MenuText.menus$offerInfo(offer)); + setTitle(Translations.menus$offerInfo(offer)); setSlot(7, ViewOffersMenu.createOfferButton(player, offer)); @@ -63,16 +63,16 @@ public GuiElementBuilder createClaimAllButton() { var tax = config.tax; return new GuiElementBuilder(canClaim ? Items.GOLD_INGOT : Items.BARRIER) - .setName(MenuText.menus$offerInfo$claimOffer) + .setName(Translations.menus$offerInfo$claimOffer) .addLoreLine(Text.empty()) .addLoreLine(offer.getType() == OfferType.BUY - ? MenuText.menus$offerInfo$claimOffer$units(unitsToClaim) - : tax > 0d ? MenuText.menus$offerInfo$claimOffer$moneyWithTax(unitsToClaim, offer, config) - : MenuText.menus$offerInfo$claimOffer$money(unitsToClaim, offer)) + ? Translations.menus$offerInfo$claimOffer$units(unitsToClaim) + : tax > 0d ? Translations.menus$offerInfo$claimOffer$moneyWithTax(unitsToClaim, offer, config) + : Translations.menus$offerInfo$claimOffer$money(unitsToClaim, offer)) .addLoreLine(Text.empty()) .addLoreLine(canClaim - ? MenuText.menus$offerInfo$claimOffer$clickToClaim - : MenuText.menus$offerInfo$claimOffer$noClaim) + ? Translations.menus$offerInfo$claimOffer$clickToClaim + : Translations.menus$offerInfo$claimOffer$noClaim) .setCallback((index, type, action, gui) -> { if (!canClaim) return; @@ -81,14 +81,14 @@ public GuiElementBuilder createClaimAllButton() { var handler = StonksFabric.getServiceProvider(getPlayer()).getTasksHandler(); setSlot(index, new GuiElementBuilder(Items.CLOCK) - .setName(MenuText.menus$offerInfo$claimOffer$claiming)); + .setName(Translations.menus$offerInfo$claimOffer$claiming)); var previousUnits = offer.getClaimedUnits(); handler.handle(service.claimOffer(offer), (newOffer, error) -> { if (error != null) { if (isOpen()) setSlot(index, new GuiElementBuilder(Items.BARRIER) - .setName(MenuText.menus$offerInfo$claimOffer$claimFailed)); - else getPlayer().sendMessage(MenuText.messages$offerClaimFailed, true); + .setName(Translations.menus$offerInfo$claimOffer$claimFailed)); + else getPlayer().sendMessage(Translations.messages$offerClaimFailed, true); error.printStackTrace(); return; } @@ -110,24 +110,24 @@ public GuiElementBuilder createClaimAllButton() { public GuiElementBuilder createCancelButton() { return new GuiElementBuilder(Items.RED_TERRACOTTA) - .setName(MenuText.menus$offerInfo$cancelOffer) - .addLoreLine(MenuText.menus$offerInfo$cancelOffer$0) + .setName(Translations.menus$offerInfo$cancelOffer) + .addLoreLine(Translations.menus$offerInfo$cancelOffer$0) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$offerInfo$cancelOffer$clickToCancel) + .addLoreLine(Translations.menus$offerInfo$cancelOffer$clickToCancel) .setCallback((index, type, action, gui) -> { var adapter = StonksFabric.getServiceProvider(getPlayer()).getStonksAdapter(); var service = StonksFabric.getServiceProvider(getPlayer()).getStonksService(); var handler = StonksFabric.getServiceProvider(getPlayer()).getTasksHandler(); setSlot(index, new GuiElementBuilder(Items.CLOCK) - .setName(MenuText.menus$offerInfo$cancelOffer$cancelling)); + .setName(Translations.menus$offerInfo$cancelOffer$cancelling)); var previousClaimedUnits = offer.getClaimedUnits(); handler.handle(service.cancelOffer(offer), (newOffer, error) -> { if (error != null) { if (isOpen()) setSlot(index, new GuiElementBuilder(Items.BARRIER) - .setName(MenuText.menus$offerInfo$cancelOffer$cancelFailed)); - else getPlayer().sendMessage(MenuText.messages$offerCancelFailed, true); + .setName(Translations.menus$offerInfo$cancelOffer$cancelFailed)); + else getPlayer().sendMessage(Translations.messages$offerCancelFailed, true); error.printStackTrace(); return; } @@ -150,7 +150,7 @@ public GuiElementBuilder createCancelButton() { close(); getPlayer().playSound(SoundEvents.BLOCK_GLASS_BREAK, SoundCategory.PLAYERS, 1f, 1f); - getPlayer().sendMessage(MenuText.messages$offerCancelled(newOffer, refundUnits, refundMoney), true); + getPlayer().sendMessage(Translations.messages$offerCancelled(newOffer, refundUnits, refundMoney), true); }); }); } diff --git a/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java b/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java index 639ad4f..acf7133 100644 --- a/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java @@ -33,8 +33,8 @@ import stonks.core.market.Offer; import stonks.core.market.OfferType; import stonks.fabric.StonksFabric; +import stonks.fabric.Translations; import stonks.fabric.menu.MenuIcons; -import stonks.fabric.menu.MenuText; import stonks.fabric.menu.StackedMenu; import stonks.fabric.menu.handling.WaitableGuiElement; @@ -48,7 +48,7 @@ public class ViewOffersMenu extends StackedMenu { public ViewOffersMenu(StackedMenu previous, ServerPlayerEntity player) { super(previous, ScreenHandlerType.GENERIC_9X6, player, false); - setTitle(MenuText.menus$viewOffers); + setTitle(Translations.menus$viewOffers); offersCache = StonksFabric.getServiceProvider(player).getStonksCache().getOffers(player.getUuid()); setSlot((getHeight() / 2) * getWidth() + getWidth() / 2, WaitableGuiElement.ANIMATED_LOADING); @@ -65,8 +65,8 @@ protected void placePagesNavigations() { setSlot(2, page <= 0 ? MenuIcons.BORDER : new GuiElementBuilder(Items.ARROW, Math.max(Math.min(page, 64), 1)) - .setName(MenuText.icons$previousPage) - .addLoreLine(MenuText.icons$previousPage$0(page, maxPages)) + .setName(Translations.icons$previousPage) + .addLoreLine(Translations.icons$previousPage$0(page, maxPages)) .setCallback((index, type, action, gui) -> { if (page <= 0 || isUpdating) return; page--; @@ -76,8 +76,8 @@ protected void placePagesNavigations() { setSlot(6, page >= (maxPages - 1) ? MenuIcons.BORDER : new GuiElementBuilder(Items.ARROW, Math.max(Math.min(page + 2, 64), 1)) - .setName(MenuText.icons$nextPage) - .addLoreLine(MenuText.icons$nextPage$0(page, maxPages)) + .setName(Translations.icons$nextPage) + .addLoreLine(Translations.icons$nextPage$0(page, maxPages)) .setCallback((index, type, action, gui) -> { if (page >= (maxPages - 1) || isUpdating) return; page++; @@ -100,8 +100,8 @@ public void onTick() { if (error != null) { loadedOffers = null; setSlot((getHeight() / 2) * getWidth() + getWidth() / 2, new GuiElementBuilder(Items.BARRIER) - .setName(MenuText.errors) - .addLoreLine(MenuText.menus$viewOffers$retrying) + .setName(Translations.errors) + .addLoreLine(Translations.menus$viewOffers$retrying) .asStack()); return; } @@ -120,9 +120,9 @@ public void placeOffers(List offers) { if (offers == null) return; if (offers.size() == 0) { setSlot((getHeight() / 2) * getWidth() + getWidth() / 2, new GuiElementBuilder(Items.BARRIER) - .setName(MenuText.menus$viewOffers$noOffers) - .addLoreLine(MenuText.menus$viewOffers$noOffers$0) - .addLoreLine(MenuText.menus$viewOffers$noOffers$1)); + .setName(Translations.menus$viewOffers$noOffers) + .addLoreLine(Translations.menus$viewOffers$noOffers$0) + .addLoreLine(Translations.menus$viewOffers$noOffers$1)); return; } @@ -136,7 +136,7 @@ public void placeOffers(List offers) { var offer = offers.get(offerIndex); setSlot(getWidth() + i, createOfferButton(player, offer) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$viewOffers$offer$clickToOpen) + .addLoreLine(Translations.menus$viewOffers$offer$clickToOpen) .setCallback((index, type, action, gui) -> new OfferInfoMenu(this, player, offer).open())); } } @@ -147,14 +147,14 @@ public static GuiElementBuilder createOfferButton(ServerPlayerEntity player, Off .getStonksAdapter() .createDisplayStack(offer.getProduct())) .setName(offer.getType() == OfferType.BUY - ? MenuText.menus$viewOffers$offer$buy(offer) - : MenuText.menus$viewOffers$offer$sell(offer)) + ? Translations.menus$viewOffers$offer$buy(offer) + : Translations.menus$viewOffers$offer$sell(offer)) .setLore(new ArrayList<>()) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$viewOffers$offer$progress(offer)) - .addLoreLine(MenuText.menus$viewOffers$offer$progressLegends) + .addLoreLine(Translations.menus$viewOffers$offer$progress(offer)) + .addLoreLine(Translations.menus$viewOffers$offer$progressLegends) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$viewOffers$offer$pricePerUnit(offer)) - .addLoreLine(MenuText.menus$viewOffers$offer$totalPrice(offer)); + .addLoreLine(Translations.menus$viewOffers$offer$pricePerUnit(offer)) + .addLoreLine(Translations.menus$viewOffers$offer$totalPrice(offer)); } } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyConfirmMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyConfirmMenu.java index ecf6dbe..aff213b 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyConfirmMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyConfirmMenu.java @@ -31,7 +31,7 @@ import stonks.core.product.Product; import stonks.fabric.StonksFabric; import stonks.fabric.StonksFabricHelper; -import stonks.fabric.menu.MenuText; +import stonks.fabric.Translations; import stonks.fabric.menu.StackedMenu; public class InstantBuyConfirmMenu extends StackedMenu { @@ -47,7 +47,7 @@ public InstantBuyConfirmMenu(StackedMenu previous, ServerPlayerEntity player, Pr this.originalPricePerUnit = originalPricePerUnit; this.instantPricePerUnit = instantPricePerUnit; - setTitle(MenuText.menus$instantBuy(product)); + setTitle(Translations.menus$instantBuy(product)); var balance = StonksFabric.getServiceProvider(player).getStonksAdapter().accountBalance(player); setSlot(22, createConfirmButton(balance, Items.GOLD_INGOT)); } @@ -65,24 +65,24 @@ public GuiElementBuilder createConfirmButton(double balance, Item icon) { var canBuy = balance >= moneyToSpend; return new GuiElementBuilder(canBuy ? icon : Items.BARRIER, Math.min(Math.max(amount / 64, 1), 64)) - .setName(MenuText.menus$instantBuy$confirm) - .addLoreLine(MenuText.menus$instantBuy$confirm$0(amount, getProduct())) + .setName(Translations.menus$instantBuy$confirm) + .addLoreLine(Translations.menus$instantBuy$confirm$0(amount, getProduct())) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$instantBuy$averagePrice(amount, originalPricePerUnit)) - .addLoreLine(MenuText.menus$instantBuy$minimumBalance(moneyToSpend)) - .addLoreLine(MenuText.menus$instantBuy$0) - .addLoreLine(MenuText.menus$instantBuy$1) + .addLoreLine(Translations.menus$instantBuy$averagePrice(amount, originalPricePerUnit)) + .addLoreLine(Translations.menus$instantBuy$minimumBalance(moneyToSpend)) + .addLoreLine(Translations.menus$instantBuy$0) + .addLoreLine(Translations.menus$instantBuy$1) .addLoreLine(Text.empty()) .addLoreLine(canBuy - ? MenuText.menus$instantBuy$clickToBuy - : MenuText.menus$instantBuy$noBuy) + ? Translations.menus$instantBuy$clickToBuy + : Translations.menus$instantBuy$noBuy) .setCallback((index, type, action, gui) -> { close(); var provider = StonksFabric.getServiceProvider(getPlayer()); var adapter = provider.getStonksAdapter(); if (adapter.accountBalance(getPlayer()) < moneyToSpend) { - getPlayer().sendMessage(MenuText.messages$noMoneyToInstantBuy(moneyToSpend), true); + getPlayer().sendMessage(Translations.messages$noMoneyToInstantBuy(moneyToSpend), true); close(); return; } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyMenu.java index 2f6b729..b92ae59 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyMenu.java @@ -32,7 +32,7 @@ import stonks.core.product.Product; import stonks.fabric.StonksFabric; import stonks.fabric.StonksFabricHelper; -import stonks.fabric.menu.MenuText; +import stonks.fabric.Translations; import stonks.fabric.menu.StackedMenu; import stonks.fabric.menu.product.input.OfferInstantBuyAmountInput; @@ -47,7 +47,7 @@ public InstantBuyMenu(StackedMenu previous, ServerPlayerEntity player, Product p this.originalPricePerUnit = originalPricePerUnit; this.instantPricePerUnit = instantPricePerUnit; - setTitle(MenuText.menus$instantBuy(product)); + setTitle(Translations.menus$instantBuy(product)); placeBuyButtons(); } @@ -66,17 +66,17 @@ public void placeBuyButtons() { setSlot(23, createInstantBuyButton(balance, 1024, Items.GOLD_BLOCK)); setSlot(25, new GuiElementBuilder(Items.DARK_OAK_SIGN) - .setName(MenuText.menus$instantBuy$customAmount) + .setName(Translations.menus$instantBuy$customAmount) .addLoreLine(Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$instantBuy$customAmount$0) + .addLoreLine(Translations.menus$instantBuy$customAmount$0) .setCallback((index, type, action, gui) -> new OfferInstantBuyAmountInput(player, this).open())); } public void blockBuyButtons() { var blockIcon = new GuiElementBuilder(Items.BARRIER) - .setName(MenuText.menus$instantBuy$buying) - .addLoreLine(MenuText.menus$instantBuy$buying$0); + .setName(Translations.menus$instantBuy$buying) + .addLoreLine(Translations.menus$instantBuy$buying$0); setSlot(19, blockIcon); setSlot(20, blockIcon); setSlot(21, blockIcon); @@ -90,24 +90,24 @@ public GuiElementBuilder createInstantBuyButton(double balance, int amount, Item var canBuy = balance >= moneyToSpend; return new GuiElementBuilder(canBuy ? icon : Items.BARRIER, Math.min(Math.max(amount / 64, 1), 64)) - .setName(MenuText.menus$instantBuy$fixedAmount(amount)) + .setName(Translations.menus$instantBuy$fixedAmount(amount)) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$instantBuy$averagePrice(amount, originalPricePerUnit)) - .addLoreLine(MenuText.menus$instantBuy$minimumBalance(moneyToSpend)) + .addLoreLine(Translations.menus$instantBuy$averagePrice(amount, originalPricePerUnit)) + .addLoreLine(Translations.menus$instantBuy$minimumBalance(moneyToSpend)) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$instantBuy$0) - .addLoreLine(MenuText.menus$instantBuy$1) + .addLoreLine(Translations.menus$instantBuy$0) + .addLoreLine(Translations.menus$instantBuy$1) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$instantBuy$holdShift) + .addLoreLine(Translations.menus$instantBuy$holdShift) .addLoreLine(canBuy - ? MenuText.menus$instantBuy$clickToBuy - : MenuText.menus$instantBuy$noBuy) + ? Translations.menus$instantBuy$clickToBuy + : Translations.menus$instantBuy$noBuy) .setCallback((index, type, action, gui) -> { var provider = StonksFabric.getServiceProvider(getPlayer()); var adapter = provider.getStonksAdapter(); if (adapter.accountBalance(getPlayer()) < moneyToSpend) { - getPlayer().sendMessage(MenuText.messages$noMoneyToInstantBuy(moneyToSpend), true); + getPlayer().sendMessage(Translations.messages$noMoneyToInstantBuy(moneyToSpend), true); close(); return; } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/OfferAmountConfigureMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/OfferAmountConfigureMenu.java index 56bd641..8287388 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/OfferAmountConfigureMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/OfferAmountConfigureMenu.java @@ -32,8 +32,8 @@ import stonks.core.market.ProductMarketOverview; import stonks.core.product.Product; import stonks.fabric.StonksFabric; +import stonks.fabric.Translations; import stonks.fabric.menu.MenuIcons; -import stonks.fabric.menu.MenuText; import stonks.fabric.menu.StackedMenu; import stonks.fabric.menu.product.input.OfferSelectCustomAmountInput; @@ -49,8 +49,8 @@ public OfferAmountConfigureMenu(StackedMenu previous, ServerPlayerEntity player, this.overview = overview; setTitle(offerType == OfferType.BUY - ? MenuText.menus$createOffer$buy(product) - : MenuText.menus$createOffer$sell(product)); + ? Translations.menus$createOffer$buy(product) + : Translations.menus$createOffer$sell(product)); var icons = switch (offerType) { case BUY -> new Item[] { Items.IRON_INGOT, Items.DIAMOND, Items.DIAMOND_BLOCK }; @@ -66,10 +66,10 @@ public OfferAmountConfigureMenu(StackedMenu previous, ServerPlayerEntity player, setSlot(23, createOfferSelectButton(offerType == OfferType.BUY ? 4096 : -1, icons[2])); setSlot(25, new GuiElementBuilder(Items.DARK_OAK_SIGN) - .setName(MenuText.menus$createOffer$customAmount) + .setName(Translations.menus$createOffer$customAmount) .addLoreLine(Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$createOffer$clickForAmount) + .addLoreLine(Translations.menus$createOffer$clickForAmount) .setCallback((index, type, action, gui) -> new OfferSelectCustomAmountInput(player, this).open())); } @@ -95,17 +95,17 @@ private GuiElementBuilder createOfferSelectButton(int amount, Item icon) { var amount2 = amount; var buttonName = offerType == OfferType.BUY - ? MenuText.menus$createOffer$buyFixed(amount) - : fillAll ? MenuText.menus$createOffer$sellAll - : MenuText.menus$createOffer$sellFixed(amount); + ? Translations.menus$createOffer$buyFixed(amount) + : fillAll ? Translations.menus$createOffer$sellAll + : Translations.menus$createOffer$sellFixed(amount); return new GuiElementBuilder(disabled ? Items.BARRIER : icon, Math.min(Math.max(amount / 64, 1), 64)) .setName(buttonName) .addLoreLine(Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))) .addLoreLine(Text.empty()) .addLoreLine(disabled - ? MenuText.menus$createOffer$noOfferForYou - : MenuText.menus$createOffer$clickForPrice) + ? Translations.menus$createOffer$noOfferForYou + : Translations.menus$createOffer$clickForPrice) .setCallback((index, type, action, gui) -> { if (disabled) return; new OfferPriceConfigureMenu(this, getPlayer(), getOfferType(), amount2, getOverview()).open(); diff --git a/fabric/src/main/java/stonks/fabric/menu/product/OfferConfirmMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/OfferConfirmMenu.java index dfecf4b..c35a64e 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/OfferConfirmMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/OfferConfirmMenu.java @@ -33,14 +33,14 @@ import stonks.core.product.Product; import stonks.fabric.StonksFabric; import stonks.fabric.StonksFabricHelper; +import stonks.fabric.Translations; import stonks.fabric.menu.MenuIcons; -import stonks.fabric.menu.MenuText; import stonks.fabric.menu.StackedMenu; public class OfferConfirmMenu extends StackedMenu { public OfferConfirmMenu(StackedMenu previous, ServerPlayerEntity player, Product product, OfferType offerType, int amount, double pricePerUnit) { super(previous, ScreenHandlerType.GENERIC_9X4, player, false); - setTitle(MenuText.menus$confirmOffer); + setTitle(Translations.menus$confirmOffer); setSlot(7, GuiElementBuilder.from(StonksFabric.getServiceProvider(getPlayer()) .getStonksAdapter() @@ -52,16 +52,16 @@ public OfferConfirmMenu(StackedMenu previous, ServerPlayerEntity player, Product setSlot(22, new GuiElementBuilder(Items.GREEN_TERRACOTTA) .setName(offerType == OfferType.BUY - ? MenuText.menus$confirmOffer$buy - : MenuText.menus$confirmOffer$sell) + ? Translations.menus$confirmOffer$buy + : Translations.menus$confirmOffer$sell) .addLoreLine(Text.empty()) .addLoreLine(offerType == OfferType.BUY - ? MenuText.menus$confirmOffer$buying(product, amount) - : MenuText.menus$confirmOffer$selling(product, amount)) - .addLoreLine(MenuText.menus$confirmOffer$pricePerUnit(pricePerUnit)) - .addLoreLine(MenuText.menus$confirmOffer$totalPrice(amount, pricePerUnit)) + ? Translations.menus$confirmOffer$buying(product, amount) + : Translations.menus$confirmOffer$selling(product, amount)) + .addLoreLine(Translations.menus$confirmOffer$pricePerUnit(pricePerUnit)) + .addLoreLine(Translations.menus$confirmOffer$totalPrice(amount, pricePerUnit)) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$confirmOffer$clickToConfirm) + .addLoreLine(Translations.menus$confirmOffer$clickToConfirm) .setCallback((index, type, action, gui) -> { close(); StonksFabricHelper.placeOffer(player, product, offerType, amount, pricePerUnit); diff --git a/fabric/src/main/java/stonks/fabric/menu/product/OfferPriceConfigureMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/OfferPriceConfigureMenu.java index 4c647b3..5e62482 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/OfferPriceConfigureMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/OfferPriceConfigureMenu.java @@ -33,8 +33,8 @@ import stonks.core.market.ProductMarketOverview; import stonks.core.product.Product; import stonks.fabric.StonksFabric; +import stonks.fabric.Translations; import stonks.fabric.menu.MenuIcons; -import stonks.fabric.menu.MenuText; import stonks.fabric.menu.StackedMenu; import stonks.fabric.menu.product.input.OfferCustomPriceInput; @@ -52,8 +52,8 @@ public OfferPriceConfigureMenu(StackedMenu previous, ServerPlayerEntity player, product = overview.getProduct(); setTitle(offerType == OfferType.BUY - ? MenuText.menus$createOffer$buy(product) - : MenuText.menus$createOffer$sell(product)); + ? Translations.menus$createOffer$buy(product) + : Translations.menus$createOffer$sell(product)); setSlot(7, GuiElementBuilder.from(StonksFabric.getServiceProvider(getPlayer()) .getStonksAdapter() @@ -98,25 +98,25 @@ private void placeOfferButtons() { var averageOffer = computed.map(v -> v.average()); var topOfferTextDelta = switch (offerType) { - case BUY -> MenuText.menus$createOffer$topBuyDelta(delta); - case SELL -> MenuText.menus$createOffer$topSellDelta(delta); + case BUY -> Translations.menus$createOffer$topBuyDelta(delta); + case SELL -> Translations.menus$createOffer$topSellDelta(delta); }; var totalTextDelta = switch (offerType) { - case BUY -> MenuText.menus$createOffer$totalSpending(topOfferDelta, amount); - case SELL -> MenuText.menus$createOffer$totalEarning(topOfferDelta, amount); + case BUY -> Translations.menus$createOffer$totalSpending(topOfferDelta, amount); + case SELL -> Translations.menus$createOffer$totalEarning(topOfferDelta, amount); }; setSlot(19, new GuiElementBuilder(computed.isPresent() ? Items.GOLD_INGOT : Items.BARRIER) .setName(topOfferTextDelta) - .addLoreLine(MenuText.menus$createOffer$topOfferDelta) + .addLoreLine(Translations.menus$createOffer$topOfferDelta) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$createOffer$topOfferPrice(topOfferPPU)) - .addLoreLine(MenuText.menus$createOffer$yourOfferPrice(topOfferDelta)) + .addLoreLine(Translations.menus$createOffer$topOfferPrice(topOfferPPU)) + .addLoreLine(Translations.menus$createOffer$yourOfferPrice(topOfferDelta)) .addLoreLine(totalTextDelta) .addLoreLine(Text.empty()) .addLoreLine(topOfferDelta.isPresent() - ? MenuText.menus$createOffer$clickForConfirmation - : MenuText.menus$createOffer$noOfferForYou) + ? Translations.menus$createOffer$clickForConfirmation + : Translations.menus$createOffer$noOfferForYou) .setCallback((index, type, action, gui) -> { if (!topOfferDelta.isPresent()) return; new OfferConfirmMenu(this, getPlayer(), getProduct(), getOfferType(), amount, topOfferDelta.get()) @@ -124,19 +124,19 @@ private void placeOfferButtons() { })); var totalTextTop = switch (offerType) { - case BUY -> MenuText.menus$createOffer$totalSpending(topOfferPPU, amount); - case SELL -> MenuText.menus$createOffer$totalEarning(topOfferPPU, amount); + case BUY -> Translations.menus$createOffer$totalSpending(topOfferPPU, amount); + case SELL -> Translations.menus$createOffer$totalEarning(topOfferPPU, amount); }; setSlot(21, new GuiElementBuilder(topOfferPPU.isPresent() ? Items.GOLD_BLOCK : Items.BARRIER) - .setName(MenuText.menus$createOffer$sameAsTopOffer) + .setName(Translations.menus$createOffer$sameAsTopOffer) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$createOffer$topOfferPrice(topOfferPPU)) + .addLoreLine(Translations.menus$createOffer$topOfferPrice(topOfferPPU)) .addLoreLine(totalTextTop) .addLoreLine(Text.empty()) .addLoreLine(topOfferPPU.isPresent() - ? MenuText.menus$createOffer$clickForConfirmation - : MenuText.menus$createOffer$noOfferForYou) + ? Translations.menus$createOffer$clickForConfirmation + : Translations.menus$createOffer$noOfferForYou) .setCallback((index, type, action, gui) -> { if (!topOfferPPU.isPresent()) return; new OfferConfirmMenu(this, getPlayer(), getProduct(), getOfferType(), amount, topOfferPPU.get()) @@ -144,19 +144,19 @@ private void placeOfferButtons() { })); var totalTextAverage = switch (offerType) { - case BUY -> MenuText.menus$createOffer$totalSpending(averageOffer, amount); - case SELL -> MenuText.menus$createOffer$totalEarning(averageOffer, amount); + case BUY -> Translations.menus$createOffer$totalSpending(averageOffer, amount); + case SELL -> Translations.menus$createOffer$totalEarning(averageOffer, amount); }; setSlot(23, new GuiElementBuilder(averageOffer.isPresent() ? Items.CHEST : Items.BARRIER) - .setName(MenuText.menus$createOffer$averageOfTopOffers) + .setName(Translations.menus$createOffer$averageOfTopOffers) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$createOffer$avgOfferPrice(averageOffer)) + .addLoreLine(Translations.menus$createOffer$avgOfferPrice(averageOffer)) .addLoreLine(totalTextAverage) .addLoreLine(Text.empty()) .addLoreLine(averageOffer.isPresent() - ? MenuText.menus$createOffer$clickForConfirmation - : MenuText.menus$createOffer$noOfferForYou) + ? Translations.menus$createOffer$clickForConfirmation + : Translations.menus$createOffer$noOfferForYou) .setCallback((index, type, action, gui) -> { if (!averageOffer.isPresent()) return; new OfferConfirmMenu(this, getPlayer(), getProduct(), getOfferType(), amount, averageOffer.get()) @@ -164,10 +164,10 @@ private void placeOfferButtons() { })); setSlot(25, new GuiElementBuilder(Items.DARK_OAK_SIGN) - .setName(MenuText.menus$createOffer$customPrice) - .addLoreLine(MenuText.menus$createOffer$customPrice$0) + .setName(Translations.menus$createOffer$customPrice) + .addLoreLine(Translations.menus$createOffer$customPrice$0) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$createOffer$clickForCustomPrice) + .addLoreLine(Translations.menus$createOffer$clickForCustomPrice) .setCallback((index, type, action, gui) -> new OfferCustomPriceInput(player, this).open())); } } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/ProductMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/ProductMenu.java index 676605e..7d0b4c9 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/ProductMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/ProductMenu.java @@ -42,8 +42,8 @@ import stonks.fabric.StonksFabric; import stonks.fabric.StonksFabricHelper; import stonks.fabric.StonksFabricUtils; +import stonks.fabric.Translations; import stonks.fabric.menu.MenuIcons; -import stonks.fabric.menu.MenuText; import stonks.fabric.menu.StackedMenu; import stonks.fabric.menu.handling.WaitableGuiElement; @@ -53,7 +53,7 @@ public class ProductMenu extends StackedMenu { public ProductMenu(StackedMenu previous, ServerPlayerEntity player, Product product) { super(previous, ScreenHandlerType.GENERIC_9X4, player, false); - setTitle(MenuText.menus$productInfo(product)); + setTitle(Translations.menus$productInfo(product)); this.product = product; this.queryTask = StonksFabric.getServiceProvider(getPlayer()).getStonksCache().getOverview(product).get(); @@ -97,8 +97,8 @@ public ItemStack createStackWhenLoaded(Optional computed, Th error.printStackTrace(); // TODO use message from UserException return new GuiElementBuilder(Items.BARRIER) - .setName(MenuText.errors) - .addLoreLine(MenuText.errors$quickPriceDetails) + .setName(Translations.errors) + .addLoreLine(Translations.errors$quickPriceDetails) .asStack(); } @@ -106,20 +106,20 @@ public ItemStack createStackWhenLoaded(Optional computed, Th var tax = StonksFabric.getServiceProvider(getPlayer()).getPlatformConfig().tax; var out = new GuiElementBuilder(icon) .setName(type == OfferType.BUY - ? MenuText.menus$productInfo$instantBuy(computed) - : MenuText.menus$productInfo$instantSell(computed)) + ? Translations.menus$productInfo$instantBuy(computed) + : Translations.menus$productInfo$instantSell(computed)) .addLoreLine(Text.empty()) - .addLoreLine(MenuText.menus$productInfo$topOfferedPrice(topPrice)) - .addLoreLine(MenuText.menus$productInfo$avgOfferedPrice(computed)); + .addLoreLine(Translations.menus$productInfo$topOfferedPrice(topPrice)) + .addLoreLine(Translations.menus$productInfo$avgOfferedPrice(computed)); - if (type == OfferType.SELL && tax > 0d) out.addLoreLine(MenuText.menus$productInfo$instantSellTax(tax)); + if (type == OfferType.SELL && tax > 0d) out.addLoreLine(Translations.menus$productInfo$instantSellTax(tax)); return out .addLoreLine(Text.empty()) .addLoreLine(computed.isEmpty() - ? MenuText.menus$productInfo$noOffers - : type == OfferType.BUY ? MenuText.menus$productInfo$clickToInstantBuy - : MenuText.menus$productInfo$clickToInstantSell) + ? Translations.menus$productInfo$noOffers + : type == OfferType.BUY ? Translations.menus$productInfo$clickToInstantBuy + : Translations.menus$productInfo$clickToInstantSell) .asStack(); } @@ -138,7 +138,7 @@ public void onSlotClick(int index, ClickType clickType, SlotActionType action, S var provider = StonksFabric.getServiceProvider(getPlayer()); var units = provider.getStonksAdapter().getUnits(getPlayer(), product); if (units <= 0) { - getPlayer().sendMessage(MenuText.messages$noUnitsToInstantSell(product), true); + getPlayer().sendMessage(Translations.messages$noUnitsToInstantSell(product), true); return; } @@ -161,28 +161,28 @@ public ItemStack createStackWhenLoaded(OverviewOffersList list, Throwable error) error.printStackTrace(); // TODO use message from UserException return new GuiElementBuilder(Items.BARRIER) - .setName(MenuText.errors) - .addLoreLine(MenuText.errors$quickPriceDetails) + .setName(Translations.errors) + .addLoreLine(Translations.errors$quickPriceDetails) .asStack(); } var elem = new GuiElementBuilder(icon) .setName(type == OfferType.BUY - ? MenuText.menus$productInfo$buyOffer - : MenuText.menus$productInfo$sellOffer) + ? Translations.menus$productInfo$buyOffer + : Translations.menus$productInfo$sellOffer) .addLoreLine(Text.empty()); if (list.getEntries().size() > 0) { for (var e : list.getEntries()) { elem.addLoreLine(StonksFabricUtils.offerText(type, e)); } } else { - elem.addLoreLine(MenuText.menus$productInfo$noOffers); + elem.addLoreLine(Translations.menus$productInfo$noOffers); } return elem .addLoreLine(Text.empty()) .addLoreLine(list.getEntries().size() == 0 - ? MenuText.menus$productInfo$makeOffer$noOffers - : MenuText.menus$productInfo$makeOffer) + ? Translations.menus$productInfo$makeOffer$noOffers + : Translations.menus$productInfo$makeOffer) .asStack(); } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferCustomPriceInput.java b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferCustomPriceInput.java index 9ec2527..6f41a97 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferCustomPriceInput.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferCustomPriceInput.java @@ -28,7 +28,7 @@ import net.minecraft.util.DyeColor; import stonks.core.market.OfferType; import stonks.fabric.StonksFabric; -import stonks.fabric.menu.MenuText; +import stonks.fabric.Translations; import stonks.fabric.menu.product.OfferConfirmMenu; import stonks.fabric.menu.product.OfferPriceConfigureMenu; @@ -42,11 +42,11 @@ public OfferCustomPriceInput(ServerPlayerEntity player, OfferPriceConfigureMenu setSignType(Blocks.DARK_OAK_SIGN); setColor(DyeColor.WHITE); setLine(0, Text.empty()); - setLine(1, MenuText.signInputs$separator); - setLine(2, MenuText.signInputs$priceInput); + setLine(1, Translations.signInputs$separator); + setLine(2, Translations.signInputs$priceInput); setLine(3, menu.getOfferType() == OfferType.BUY - ? MenuText.signInputs$currentBuyTarget(menu.getAmount(), menu.getProduct()) - : MenuText.signInputs$currentSellTarget(menu.getAmount(), menu.getProduct())); + ? Translations.signInputs$currentBuyTarget(menu.getAmount(), menu.getProduct()) + : Translations.signInputs$currentSellTarget(menu.getAmount(), menu.getProduct())); } public OfferPriceConfigureMenu getMenu() { return menu; } @@ -74,7 +74,7 @@ public void onClose() { var price = base * mul; if (price <= 0) { - getPlayer().sendMessage(MenuText.messages$priceMoreThanZero, true); + getPlayer().sendMessage(Translations.messages$priceMoreThanZero, true); return; } @@ -84,13 +84,13 @@ public void onClose() { var totalPrice = price * menu.getAmount(); if (menu.getOfferType() == OfferType.BUY && totalPrice > balance) { - getPlayer().sendMessage(MenuText.messages$notEnoughMoney(balance, totalPrice)); + getPlayer().sendMessage(Translations.messages$notEnoughMoney(balance, totalPrice)); } new OfferConfirmMenu(menu, player, menu.getProduct(), menu.getOfferType(), menu.getAmount(), price) .open(); } catch (NumberFormatException e) { - getPlayer().sendMessage(MenuText.messages$invaildInput(input), true); + getPlayer().sendMessage(Translations.messages$invaildInput(input), true); } } } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferInstantBuyAmountInput.java b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferInstantBuyAmountInput.java index 9443b45..05d2a90 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferInstantBuyAmountInput.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferInstantBuyAmountInput.java @@ -27,7 +27,7 @@ import net.minecraft.text.Text; import net.minecraft.util.DyeColor; import stonks.fabric.StonksFabric; -import stonks.fabric.menu.MenuText; +import stonks.fabric.Translations; import stonks.fabric.menu.product.InstantBuyConfirmMenu; import stonks.fabric.menu.product.InstantBuyMenu; @@ -41,9 +41,9 @@ public OfferInstantBuyAmountInput(ServerPlayerEntity player, InstantBuyMenu menu setSignType(Blocks.DARK_OAK_SIGN); setColor(DyeColor.WHITE); setLine(0, Text.empty()); - setLine(1, MenuText.signInputs$separator); - setLine(2, MenuText.signInputs$amountInput); - setLine(3, MenuText.signInputs$currentBuyTarget(menu.getProduct())); + setLine(1, Translations.signInputs$separator); + setLine(2, Translations.signInputs$amountInput); + setLine(3, Translations.signInputs$currentBuyTarget(menu.getProduct())); } public InstantBuyMenu getMenu() { return menu; } @@ -67,7 +67,7 @@ public void onClose() { var amount = base * mul; if (amount <= 0) { - getPlayer().sendMessage(MenuText.messages$amountAtLeastOne, true); + getPlayer().sendMessage(Translations.messages$amountAtLeastOne, true); return; } @@ -77,7 +77,7 @@ public void onClose() { var totalPrice = menu.getInstantPricePerUnit() * amount; if (balance < totalPrice) { - getPlayer().sendMessage(MenuText.messages$notEnoughMoney(balance, totalPrice), true); + getPlayer().sendMessage(Translations.messages$notEnoughMoney(balance, totalPrice), true); return; } @@ -85,7 +85,7 @@ public void onClose() { .getInstantPricePerUnit()) .open(); } catch (NumberFormatException e) { - getPlayer().sendMessage(MenuText.messages$invaildInput(input), true); + getPlayer().sendMessage(Translations.messages$invaildInput(input), true); } } } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferSelectCustomAmountInput.java b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferSelectCustomAmountInput.java index 237202d..bf98772 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferSelectCustomAmountInput.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferSelectCustomAmountInput.java @@ -28,7 +28,7 @@ import net.minecraft.util.DyeColor; import stonks.core.market.OfferType; import stonks.fabric.StonksFabric; -import stonks.fabric.menu.MenuText; +import stonks.fabric.Translations; import stonks.fabric.menu.product.OfferAmountConfigureMenu; import stonks.fabric.menu.product.OfferPriceConfigureMenu; @@ -42,11 +42,11 @@ public OfferSelectCustomAmountInput(ServerPlayerEntity player, OfferAmountConfig setSignType(Blocks.DARK_OAK_SIGN); setColor(DyeColor.WHITE); setLine(0, Text.empty()); - setLine(1, MenuText.signInputs$separator); - setLine(2, MenuText.signInputs$amountInput); + setLine(1, Translations.signInputs$separator); + setLine(2, Translations.signInputs$amountInput); setLine(3, menu.getOfferType() == OfferType.BUY - ? MenuText.signInputs$currentBuyTarget(menu.getProduct()) - : MenuText.signInputs$currentSellTarget(menu.getProduct())); + ? Translations.signInputs$currentBuyTarget(menu.getProduct()) + : Translations.signInputs$currentSellTarget(menu.getProduct())); } public OfferAmountConfigureMenu getMenu() { return menu; } @@ -70,7 +70,7 @@ public void onClose() { var amount = base * mul; if (amount <= 0) { - getPlayer().sendMessage(MenuText.messages$amountAtLeastOne, true); + getPlayer().sendMessage(Translations.messages$amountAtLeastOne, true); return; } @@ -78,14 +78,14 @@ public void onClose() { .getStonksAdapter() .getUnits(getPlayer(), getMenu().getProduct()); if (menu.getOfferType() == OfferType.SELL && amount > currentAmount) { - getPlayer().sendMessage(MenuText.messages$notEnoughItems(currentAmount, amount), true); + getPlayer().sendMessage(Translations.messages$notEnoughItems(currentAmount, amount), true); return; } var type = getMenu().getOfferType(); new OfferPriceConfigureMenu(getMenu(), getPlayer(), type, amount, getMenu().getOverview()).open(); } catch (NumberFormatException e) { - getPlayer().sendMessage(MenuText.messages$invaildInput(input), true); + getPlayer().sendMessage(Translations.messages$invaildInput(input), true); } } } From 9a16a96423dcbcfaabc7a90cf999f43d99fadf00 Mon Sep 17 00:00:00 2001 From: nahkd123 Date: Sat, 12 Aug 2023 13:21:35 +0700 Subject: [PATCH 2/5] Move translations into subclasses --- .../stonks/fabric/StonksFabricHelper.java | 29 +- .../java/stonks/fabric/StonksFabricUtils.java | 12 +- .../main/java/stonks/fabric/Translations.java | 358 +++++++++--------- .../stonks/fabric/menu/MarketMainMenu.java | 38 +- .../java/stonks/fabric/menu/MenuIcons.java | 12 +- .../menu/handling/WaitableGuiElement.java | 4 +- .../fabric/menu/player/OfferInfoMenu.java | 37 +- .../fabric/menu/player/ViewOffersMenu.java | 36 +- .../menu/product/InstantBuyConfirmMenu.java | 20 +- .../fabric/menu/product/InstantBuyMenu.java | 28 +- .../product/OfferAmountConfigureMenu.java | 18 +- .../fabric/menu/product/OfferConfirmMenu.java | 16 +- .../menu/product/OfferPriceConfigureMenu.java | 52 +-- .../fabric/menu/product/ProductMenu.java | 40 +- .../product/input/OfferCustomPriceInput.java | 14 +- .../input/OfferInstantBuyAmountInput.java | 12 +- .../input/OfferSelectCustomAmountInput.java | 14 +- 17 files changed, 383 insertions(+), 357 deletions(-) diff --git a/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java b/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java index 04222fb..874d189 100644 --- a/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java +++ b/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java @@ -43,13 +43,13 @@ public static Task instantOffer(ServerPlayerEntity player, Product product provider.getStonksAdapter().removeUnitsFrom(player, product, units); } - player.sendMessage(Translations.message$pleaseWait, true); + player.sendMessage(Translations.Messages.PleaseWait, true); var task = provider.getStonksService().instantOffer(product, type, units, balance); provider.getTasksHandler() .handle(task, (result, error) -> { if (error != null) { - player.sendMessage(Translations.message$errorRefunding, true); + player.sendMessage(Translations.Messages.ErrorRefunding, true); if (type == OfferType.BUY) provider.getStonksAdapter().accountDeposit(player, balance); else provider.getStonksAdapter().addUnitsTo(player, product, units); error.printStackTrace(); @@ -73,8 +73,8 @@ public static Task instantOffer(ServerPlayerEntity player, Product product var unitsLeftText = Text.literal(Integer.toString(unitsLeft)) .styled(s -> s.withColor(Formatting.AQUA)); var text = unitsLeft == 0 - ? Translations.messages$bought(amountText, productNameText, moneySpentText) - : Translations.messages$boughtWithExtras(amountText, productNameText, moneySpentText, + ? Translations.Messages.Bought(amountText, productNameText, moneySpentText) + : Translations.Messages.BoughtWithExtras(amountText, productNameText, moneySpentText, unitsLeftText); player.sendMessage(text, true); } else { @@ -92,8 +92,8 @@ public static Task instantOffer(ServerPlayerEntity player, Product product var unitsLeftText = Text.literal(Integer.toString(unitsLeft)) .styled(s -> s.withColor(Formatting.AQUA)); var text = unitsLeft == 0 - ? Translations.messages$sold(amountText, productNameText, moneyReceivedText) - : Translations.messages$soldWithExtras(amountText, productNameText, moneyReceivedText, + ? Translations.Messages.Sold(amountText, productNameText, moneyReceivedText) + : Translations.Messages.SoldWithExtras(amountText, productNameText, moneyReceivedText, unitsLeftText); player.sendMessage(text, true); } @@ -111,7 +111,7 @@ public static void placeOffer(ServerPlayerEntity player, Product product, OfferT var balance = adapter.accountBalance(player); if (balance < totalPrice) { - player.sendMessage(Translations.messages$notEnoughMoney(balance, totalPrice), true); + player.sendMessage(Translations.Messages.NotEnoughMoney(balance, totalPrice), true); return; } @@ -125,19 +125,19 @@ public static void placeOffer(ServerPlayerEntity player, Product product, OfferT } if (currentUnits < units) { - player.sendMessage(Translations.messages$notEnoughItems(currentUnits, units)); + player.sendMessage(Translations.Messages.NotEnoughItems(currentUnits, units)); return; } adapter.removeUnitsFrom(player, product, units); } - player.sendMessage(Translations.message$pleaseWait, true); + player.sendMessage(Translations.Messages.PleaseWait, true); provider.getTasksHandler() .handle(provider.getStonksService().listOffer(player.getUuid(), product, type, units, pricePerUnit), (offer, error) -> { if (error != null) { - player.sendMessage(Translations.message$errorRefunding, true); + player.sendMessage(Translations.Messages.ErrorRefunding, true); if (type == OfferType.BUY) { adapter.accountDeposit(player, totalPrice); @@ -155,8 +155,9 @@ public static void placeOffer(ServerPlayerEntity player, Product product, OfferT var totalPriceText = StonksFabricUtils.currencyText(Optional.of(totalPrice), true); var pricePerUnitText = StonksFabricUtils.currencyText(Optional.of(pricePerUnit), true); player.sendMessage(offer.getType() == OfferType.BUY - ? Translations.messages$placedBuyOffer(unitsText, productNameText, totalPriceText, pricePerUnitText) - : Translations.messages$placedSellOffer(unitsText, productNameText, totalPriceText, + ? Translations.Messages.PlacedBuyOffer(unitsText, productNameText, totalPriceText, + pricePerUnitText) + : Translations.Messages.PlacedSellOffer(unitsText, productNameText, totalPriceText, pricePerUnitText), true); }); @@ -166,7 +167,7 @@ public static void sendOfferFilledMessage(MinecraftServer server, Offer filledOf var player = server.getPlayerManager().getPlayer(filledOffer.getOffererId()); if (player == null) return; player.sendMessage(filledOffer.getType() == OfferType.BUY - ? Translations.messages$buyOfferFilled(filledOffer) - : Translations.messages$sellOfferFilled(filledOffer)); + ? Translations.Messages.BuyOfferFilled(filledOffer) + : Translations.Messages.SellOfferFilled(filledOffer)); } } diff --git a/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java b/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java index bfe2af2..36318f4 100644 --- a/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java +++ b/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java @@ -75,8 +75,10 @@ public static String createStringFor(ItemStack stack, MinecraftServer server) { public static final DecimalFormat TAX_FORMATTER = new DecimalFormat("#,##0.##%"); public static Text currencyText(Optional v, boolean fullNotAvailable) { - if (v.isEmpty()) return fullNotAvailable ? Translations.messages$notAvailable : Translations.messages$notAvailableShort; - return Translations.messages$currency(v.get()); + if (v.isEmpty()) return fullNotAvailable + ? Translations.Messages.NotAvailable + : Translations.Messages.NotAvailableShort; + return Translations.Messages.Currency(v.get()); } public static Optional taxText(double tax) { @@ -86,14 +88,14 @@ public static Optional taxText(double tax) { public static Text offerText(OfferType type, OverviewOffer offer) { var typeText = type == OfferType.BUY - ? Translations.messages$offerInfoText$buy - : Translations.messages$offerInfoText$sell; + ? Translations.Messages.OfferInfoText$Buy + : Translations.Messages.OfferInfoText$Sell; var totalAvailableUnits = Text.literal(Integer.toString(offer.totalAvailableUnits())) .styled(s -> s.withColor(Formatting.AQUA)); var offersCountText = Text.literal(Integer.toString(offer.offers())).styled(s -> s.withColor(Formatting.AQUA)); var ppuText = currencyText(Optional.of(offer.pricePerUnit()), false); - return Translations.messages$offerInfoText(typeText, totalAvailableUnits, offersCountText, ppuText); + return Translations.Messages.OfferInfoText(typeText, totalAvailableUnits, offersCountText, ppuText); } public static boolean compareStack(ItemStack a, ItemStack b) { diff --git a/fabric/src/main/java/stonks/fabric/Translations.java b/fabric/src/main/java/stonks/fabric/Translations.java index 210936a..1b243b6 100644 --- a/fabric/src/main/java/stonks/fabric/Translations.java +++ b/fabric/src/main/java/stonks/fabric/Translations.java @@ -32,180 +32,194 @@ import stonks.core.market.Offer; import stonks.core.product.Product; -// @formatter:off -public class Translations { - public static final Text icons$border = translatableWithFallback("stonks.menu.icon.border", " "); - public static final Text icons$previousMenu = translatableWithFallback("stonks.menu.icon.previousMenu", "\u00a77<-- \u00a7aBack"); - public static final Text icons$mainMenu = translatableWithFallback("stonks.menu.icon.mainMenu", "\u00a7eMarket menu"); - public static final Text icons$mainMenu$0 = translatableWithFallback("stonks.menu.icon.mainMenu.0", "\u00a77Click to go back to market menu"); - public static final Text icons$viewOffers = translatableWithFallback("stonks.menu.icon.viewOffers", "\u00a7eView offers"); - public static final Text icons$viewOffer$0 = translatableWithFallback("stonks.menu.icon.viewOffers.0", "\u00a77Click to view your offers"); - public static final Text icons$scrollUp = translatableWithFallback("stonks.menu.icon.scrollUp", "\u00a77Scroll Up"); - public static Text icons$scrollUp$0(int page, int maxPages) { return translatableWithFallback("stonks.menu.icon.scrollUp.0", "\u00a77Current page: %s\u00a77/%s", page + 1, maxPages); } - public static final Text icons$scrollDown = translatableWithFallback("stonks.menu.icon.scrollDown", "\u00a77Scroll Down"); - public static Text icons$scrollDown$0(int page, int maxPages) { return translatableWithFallback("stonks.menu.icon.scrollDown.0", "\u00a77Current page: %s\u00a77/%s", page + 1, maxPages); } - public static final Text icons$previousPage = translatableWithFallback("stonks.menu.icon.previousPage", "\u00a77<-- Previous Page"); - public static Text icons$previousPage$0(int page, int maxPages) { return translatableWithFallback("stonks.menu.icon.previousPage.0", "\u00a77Current page: %s\u00a77/%s", page + 1, maxPages); } - public static final Text icons$nextPage = translatableWithFallback("stonks.menu.icon.nextPage", "\u00a77Next Page -->"); - public static Text icons$nextPage$0(int page, int maxPages) { return translatableWithFallback("stonks.menu.icon.nextPage.0", "\u00a77Current page: %s\u00a77/%s", page + 1, maxPages); } - public static Text icons$loading(String v) { return translatableWithFallback("stonks.menu.icon.loading", "\u00a77Please wait %s", v); } - - public static final Text errors = translatableWithFallback("stonks.menu.error", "\u00a7cAn error occured!"); - public static final Text errors$categoriesList = translatableWithFallback("stonks.menu.error.categoriesList", "\u00a77Failed to get categories list"); - public static final Text errors$quickPriceDetails = translatableWithFallback("stonks.menu.error.quickPriceDetails", "\u00a77Failed to query quick price details"); - - public static final Text menus$mainMenu = translatableWithFallback("stonks.menu.mainMenu", "Market"); - public static final Text menus$mainMenu$category$selected = translatableWithFallback("stonks.menu.mainMenu.category.selected", "\u00a77Selected"); - public static final Text menus$mainMenu$category$unselected = translatableWithFallback("stonks.menu.mainMenu.category.unselected", "\u00a77Click to select"); - public static Text menus$mainMenu$product$instantBuy(Optional instantBuyPrice) { return translatableWithFallback("stonks.menu.mainMenu.product.instantBuy", "\u00a77Instant Buy: %s", StonksFabricUtils.currencyText(instantBuyPrice, true)); } - public static Text menus$mainMenu$product$instantSell(Optional instantSellPrice) { return translatableWithFallback("stonks.menu.mainMenu.product.instantSell", "\u00a77Instant Sell: %s", StonksFabricUtils.currencyText(instantSellPrice, true)); } - public static final Text menus$mainMenu$product$clickToOpen = translatableWithFallback("stonks.menu.mainMenu.product.clickToOpen", "\u00a7eClick \u00a77to open product info"); - - public static final Text menus$viewOffers = translatableWithFallback("stonks.menu.viewOffers", "Market > Offers"); - public static final Text menus$viewOffers$retrying = translatableWithFallback("stonks.menu.viewOffers.retrying", "\u00a77Retrying in few seconds, please wait..."); - public static final Text menus$viewOffers$noOffers = translatableWithFallback("stonks.menu.viewOffers.noOffers", "\u00a7cNo offers!"); - public static final Text menus$viewOffers$noOffers$0 = translatableWithFallback("stonks.menu.viewOffers.noOffers.0", "\u00a77Go back and place offers to see"); - public static final Text menus$viewOffers$noOffers$1 = translatableWithFallback("stonks.menu.viewOffers.noOffers.1", "\u00a77them here!"); - public static final Text menus$viewOffers$offer$clickToOpen = translatableWithFallback("stonks.menu.viewOffers.offer.clickToOpen", "\u00a77Click to open"); - public static Text menus$viewOffers$offer$buy(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.buy", "\u00a7a\u00a7lBUY OFFER: %s", Text.literal(offer.getProduct().getProductName()).styled(s -> s.withColor(Formatting.AQUA))); } - public static Text menus$viewOffers$offer$sell(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.sell", "\u00a7e\u00a7lSELL OFFER: %s", Text.literal(offer.getProduct().getProductName()).styled(s -> s.withColor(Formatting.AQUA))); } - public static Text menus$viewOffers$offer$progress(Offer offer) { - return translatableWithFallback("stonks.menu.viewOffers.offer.progress", "\u00a77Progress: %s %s/%s/%s", - StonksFabricUtils.progressBar(20, Formatting.DARK_GRAY, - new double[] { offer.getClaimedUnits() / (double) offer.getTotalUnits(), offer.getFilledUnits() / (double) offer.getTotalUnits() }, - new Formatting[] { Formatting.GREEN, Formatting.YELLOW }), - Text.literal(Integer.toString(offer.getClaimedUnits())).styled(s -> s.withColor(Formatting.GREEN)), - Text.literal(Integer.toString(offer.getFilledUnits())).styled(s -> s.withColor(Formatting.YELLOW)), - Text.literal(Integer.toString(offer.getTotalUnits())).styled(s -> s.withColor(Formatting.WHITE))); +public final class Translations { + // @formatter:off + public static final class Icons { + public static final Text Border = translatableWithFallback("stonks.menu.icon.border", " "); + public static final Text PreviousMenu = translatableWithFallback("stonks.menu.icon.previousMenu", "\u00a77<-- \u00a7aBack"); + public static final Text MainMenu = translatableWithFallback("stonks.menu.icon.mainMenu", "\u00a7eMarket menu"); + public static final Text MainMenu$0 = translatableWithFallback("stonks.menu.icon.mainMenu.0", "\u00a77Click to go back to market menu"); + public static final Text ViewOffers = translatableWithFallback("stonks.menu.icon.viewOffers", "\u00a7eView offers"); + public static final Text ViewOffers$0 = translatableWithFallback("stonks.menu.icon.viewOffers.0", "\u00a77Click to view your offers"); + public static final Text ScrollUp = translatableWithFallback("stonks.menu.icon.scrollUp", "\u00a77Scroll Up"); + public static final Text ScrollUp$0(int page, int maxPages) { return translatableWithFallback("stonks.menu.icon.scrollUp.0", "\u00a77Current page: %s\u00a77/%s", page + 1, maxPages); } + public static final Text ScrollDown = translatableWithFallback("stonks.menu.icon.scrollDown", "\u00a77Scroll Down"); + public static final Text ScrollDown$0(int page, int maxPages) { return translatableWithFallback("stonks.menu.icon.scrollDown.0", "\u00a77Current page: %s\u00a77/%s", page + 1, maxPages); } + public static final Text PreviousPage = translatableWithFallback("stonks.menu.icon.previousPage", "\u00a77<-- Previous Page"); + public static final Text PreviousPage$0(int page, int maxPages) { return translatableWithFallback("stonks.menu.icon.previousPage.0", "\u00a77Current page: %s\u00a77/%s", page + 1, maxPages); } + public static final Text NextPage = translatableWithFallback("stonks.menu.icon.nextPage", "\u00a77Next Page -->"); + public static final Text NextPage$0(int page, int maxPages) { return translatableWithFallback("stonks.menu.icon.nextPage.0", "\u00a77Current page: %s\u00a77/%s", page + 1, maxPages); } + public static final Text Loading(String v) { return translatableWithFallback("stonks.menu.icon.loading", "\u00a77Please wait %s", v); } } - public static final Text menus$viewOffers$offer$progressLegends = translatableWithFallback("stonks.menu.viewOffers.offer.progressLegends", "\u00a78(Claimed/Filled/Total)"); - public static Text menus$viewOffers$offer$pricePerUnit(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.pricePerUnit", "\u00a77Price per unit: %s", StonksFabricUtils.currencyText(Optional.of(offer.getPricePerUnit()), true)); } - public static Text menus$viewOffers$offer$totalPrice(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.totalPrice", "\u00a77Total price: %s", StonksFabricUtils.currencyText(Optional.of(offer.getPricePerUnit() * offer.getTotalUnits()), true)); } - - public static Text menus$offerInfo(Offer offer) { return translatableWithFallback("stonks.menu.offerInfo", "Market > Offers > %s", offer.getProduct().getProductName()); } - public static final Text menus$offerInfo$claimOffer = translatableWithFallback("stonks.menu.offerInfo.claimOffer", "\u00a7eClaim offer"); - public static Text menus$offerInfo$claimOffer$units(int unitsToClaim) { return translatableWithFallback("stonks.menu.offerInfo.claimOffer.units", "\u00a77You have %s \u00a77units to claim", Text.literal(Integer.toString(unitsToClaim)).styled(s -> s.withColor(Formatting.AQUA))); } - public static Text menus$offerInfo$claimOffer$money(int unitsToClaim, Offer offer) { return translatableWithFallback("stonks.menu.offerInfo.claimOffer.money", "\u00a77You have %s \u00a77to claim", StonksFabricUtils.currencyText(Optional.of(unitsToClaim * offer.getPricePerUnit()), true)); } - public static Text menus$offerInfo$claimOffer$moneyWithTax(int unitsToClaim, Offer offer, PlatformConfig config) { - return translatableWithFallback("stonks.menu.offerInfo.claimOffer.moneyWithTax", "\u00a77You have %s \u00a77to claim (%s\u00a77 tax incl.)", - StonksFabricUtils.currencyText(Optional.of(config.applyTax(unitsToClaim * offer.getPricePerUnit())), true), - StonksFabricUtils.taxText(config.tax).orElse(Text.literal("0%"))); + public static final class Errors { + public static final Text Errors = translatableWithFallback("stonks.menu.error", "\u00a7cAn error occured!"); + public static final Text CategoriesList = translatableWithFallback("stonks.menu.error.categoriesList", "\u00a77Failed to get categories list"); + public static final Text QuickPriceDetails = translatableWithFallback("stonks.menu.error.quickPriceDetails", "\u00a77Failed to query quick price details"); } - public static final Text menus$offerInfo$claimOffer$clickToClaim = translatableWithFallback("stonks.menu.offerInfo.claimOffer.clickToClaim", "\u00a77Click to claim all"); - public static final Text menus$offerInfo$claimOffer$noClaim = translatableWithFallback("stonks.menu.offerInfo.claimOffer.noClaim", "\u00a7cCan't claim"); - public static final Text menus$offerInfo$claimOffer$claiming = translatableWithFallback("stonks.menu.offerInfo.claimOffer.claiming", "\u00a77Claiming..."); - public static final Text menus$offerInfo$claimOffer$claimFailed = translatableWithFallback("stonks.menu.offerInfo.claimOffer.claimFailed", "\u00a7cClaim failed!"); - public static final Text menus$offerInfo$cancelOffer = translatableWithFallback("stonks.menu.offerInfo.cancelOffer", "\u00a7eCancel offer"); - public static final Text menus$offerInfo$cancelOffer$0 = Text.translatableWithFallback("stonks.menu.offerInfo.cancelOffer.0", "\u00a77Pending items/money will be refuned"); - public static final Text menus$offerInfo$cancelOffer$clickToCancel = Text.translatableWithFallback("stonks.menu.offerInfo.cancelOffer.clickToCancel", "\u00a77Click to cancel"); - public static final Text menus$offerInfo$cancelOffer$cancelling = Text.translatableWithFallback("stonks.menu.offerInfo.cancelOffer.cancelling", "\u00a77Cancelling..."); - public static final Text menus$offerInfo$cancelOffer$cancelFailed = Text.translatableWithFallback("stonks.menu.offerInfo.cancelOffer.cancelFailed", "\u00a7cCancel failed!"); - - public static Text menus$productInfo(Product product) { return Text.translatableWithFallback("stonks.menu.productInfo", "Market > %s", product.getProductName()); } - public static Text menus$productInfo$instantBuy(Optional computed) { return Text.translatableWithFallback("stonks.menu.productInfo.instantBuy", "\u00a7eInstant buy \u00a76(\u00a7eAvg. %s\u00a76)", StonksFabricUtils.currencyText(computed.map(v -> v.average()), false)); } - public static Text menus$productInfo$instantSell(Optional computed) { return Text.translatableWithFallback("stonks.menu.productInfo.instantSell", "\u00a7eInstant sell \u00a76(\u00a7eAvg. %s\u00a76)", StonksFabricUtils.currencyText(computed.map(v -> v.average()), false)); } - public static Text menus$productInfo$topOfferedPrice(Optional topPrice) { return Text.translatableWithFallback("stonks.menu.productInfo.topOfferedPrice", "\u00a77Top Offered Price: %s", StonksFabricUtils.currencyText(topPrice, true)); } - public static Text menus$productInfo$avgOfferedPrice(Optional computed) { return Text.translatableWithFallback("stonks.menu.productInfo.avgOfferedPrice", "\u00a77Average Offered Price: %s", StonksFabricUtils.currencyText(computed.map(v -> v.average()), true)); } - public static Text menus$productInfo$instantSellTax(double tax) { return Text.translatableWithFallback("stonks.menu.productInfo.instantSellTax", "\u00a77A small %s \u00a77tax will be applied", StonksFabricUtils.taxText(tax).orElse(Text.literal("0%"))); } - public static final Text menus$productInfo$noOffers = Text.translatableWithFallback("stonks.menu.productInfo.noOffers", "\u00a7cNo offers!"); - public static final Text menus$productInfo$clickToInstantBuy = Text.translatableWithFallback("stonks.menu.productInfo.clickToInstantBuy", "\u00a77Click to setup instant buy"); - public static final Text menus$productInfo$clickToInstantSell = Text.translatableWithFallback("stonks.menu.productInfo.clickToInstantSell", "\u00a77Click to sell all"); - public static final Text menus$productInfo$buyOffer = Text.translatableWithFallback("stonks.menu.productInfo.buyOffer", "\u00a7eCreate buy offer"); - public static final Text menus$productInfo$sellOffer = Text.translatableWithFallback("stonks.menu.productInfo.sellOffer", "\u00a7eCreate sell offer"); - public static final Text menus$productInfo$makeOffer = Text.translatableWithFallback("stonks.menu.productInfo.makeOffer", "\u00a77Click to make offer"); - public static final Text menus$productInfo$makeOffer$noOffers = Text.translatableWithFallback("stonks.menu.productInfo.makeOffer.noOffers", "\u00a77Click to become the first person to get rich"); - - public static Text menus$instantBuy(Product product) { return Text.translatableWithFallback("stonks.menu.instantBuy", "Market > %s > Instant buy", product.getProductName()); } - public static final Text menus$instantBuy$customAmount = Text.translatableWithFallback("stonks.menu.instantBuy.customAmount", "\u00a7eCustom amount"); - public static final Text menus$instantBuy$customAmount$0 = Text.translatableWithFallback("stonks.menu.instantBuy.customAmount.0", "\u00a77Click to specify amount"); - public static Text menus$instantBuy$fixedAmount(int amount) { return Text.translatableWithFallback("stonks.menu.instantBuy.fixedAmount", "\u00a7eInstant buy x%s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.YELLOW))); } - public static Text menus$instantBuy$averagePrice(int amount, double originalPricePerUnit) { return Text.translatableWithFallback("stonks.menu.instantBuy.averagePrice", "\u00a77Average price: %s", StonksFabricUtils.currencyText(Optional.of(amount * originalPricePerUnit), true)); } - public static Text menus$instantBuy$minimumBalance(double moneyToSpend) { return Text.translatableWithFallback("stonks.menu.instantBuy.minimumBalance", "\u00a77Minimum balance: %s", StonksFabricUtils.currencyText(Optional.of(moneyToSpend), true)); } - public static final Text menus$instantBuy$0 = Text.translatableWithFallback("stonks.menu.instantBuy.0", "\u00a78Having minimum balance is required to"); - public static final Text menus$instantBuy$1 = Text.translatableWithFallback("stonks.menu.instantBuy.1", "\u00a78avoid your buy request from failing."); - public static final Text menus$instantBuy$holdShift = Text.translatableWithFallback("stonks.menu.instantBuy.holdShift", "\u00a77Hold Shift to keep this menu opened"); - public static final Text menus$instantBuy$clickToBuy = Text.translatableWithFallback("stonks.menu.instantBuy.clickToBuy", "\u00a77Click to instantly buy"); - public static final Text menus$instantBuy$noBuy = Text.translatableWithFallback("stonks.menu.instantBuy.noBuy", "\u00a7cCan't instant buy"); - public static final Text menus$instantBuy$buying = Text.translatableWithFallback("stonks.menu.instantBuy.buying", "\u00a7cCan't buy now"); - public static final Text menus$instantBuy$buying$0 = Text.translatableWithFallback("stonks.menu.instantBuy.buying.0", "\u00a77Buying product..."); - public static final Text menus$instantBuy$confirm = Text.translatableWithFallback("stonks.menu.instantBuy.confirm", "\u00a7eConfirm instant buy"); - public static Text menus$instantBuy$confirm$0(int amount, Product product) { - return Text.translatableWithFallback("stonks.menu.instantBuy.confirm.0", "\u00a77%s\u00a77x %s", - Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.GRAY)), - Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))); + public static final class Menus { + public static final class MainMenu { + public static final Text MainMenu = translatableWithFallback("stonks.menu.mainMenu", "Market"); + public static final Text Category$Selected = translatableWithFallback("stonks.menu.mainMenu.category.selected", "\u00a77Selected"); + public static final Text Category$Unselected = translatableWithFallback("stonks.menu.mainMenu.category.unselected", "\u00a77Click to select"); + public static final Text Product$ClickToOpen = translatableWithFallback("stonks.menu.mainMenu.product.clickToOpen", "\u00a7eClick \u00a77to open product info"); + public static final Text product$instantBuy(Optional instantBuyPrice) { return translatableWithFallback("stonks.menu.mainMenu.product.instantBuy", "\u00a77Instant Buy: %s", StonksFabricUtils.currencyText(instantBuyPrice, true)); } + public static final Text product$instantSell(Optional instantSellPrice) { return translatableWithFallback("stonks.menu.mainMenu.product.instantSell", "\u00a77Instant Sell: %s", StonksFabricUtils.currencyText(instantSellPrice, true)); } + } + public static final class ViewOffers { + public static final Text ViewOffers = translatableWithFallback("stonks.menu.viewOffers", "Market > Offers"); + public static final Text Retrying = translatableWithFallback("stonks.menu.viewOffers.retrying", "\u00a77Retrying in few seconds, please wait..."); + public static final Text NoOffers = translatableWithFallback("stonks.menu.viewOffers.noOffers", "\u00a7cNo offers!"); + public static final Text NoOffers$0 = translatableWithFallback("stonks.menu.viewOffers.noOffers.0", "\u00a77Go back and place offers to see"); + public static final Text NoOffers$1 = translatableWithFallback("stonks.menu.viewOffers.noOffers.1", "\u00a77them here!"); + public static final Text Offer$ClickToOpen = translatableWithFallback("stonks.menu.viewOffers.offer.clickToOpen", "\u00a77Click to open"); + public static final Text Offer$ProgressLegends = translatableWithFallback("stonks.menu.viewOffers.offer.progressLegends", "\u00a78(Claimed/Filled/Total)"); + public static final Text Offer$Buy(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.buy", "\u00a7a\u00a7lBUY OFFER: %s", Text.literal(offer.getProduct().getProductName()).styled(s -> s.withColor(Formatting.AQUA))); } + public static final Text Offer$Sell(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.sell", "\u00a7e\u00a7lSELL OFFER: %s", Text.literal(offer.getProduct().getProductName()).styled(s -> s.withColor(Formatting.AQUA))); } + public static final Text Offer$Progress(Offer offer) { + return translatableWithFallback("stonks.menu.viewOffers.offer.progress", "\u00a77Progress: %s %s/%s/%s", + StonksFabricUtils.progressBar(20, Formatting.DARK_GRAY, + new double[] { offer.getClaimedUnits() / (double) offer.getTotalUnits(), offer.getFilledUnits() / (double) offer.getTotalUnits() }, + new Formatting[] { Formatting.GREEN, Formatting.YELLOW }), + Text.literal(Integer.toString(offer.getClaimedUnits())).styled(s -> s.withColor(Formatting.GREEN)), + Text.literal(Integer.toString(offer.getFilledUnits())).styled(s -> s.withColor(Formatting.YELLOW)), + Text.literal(Integer.toString(offer.getTotalUnits())).styled(s -> s.withColor(Formatting.WHITE))); + } + public static final Text Offer$PricePerUnit(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.pricePerUnit", "\u00a77Price per unit: %s", StonksFabricUtils.currencyText(Optional.of(offer.getPricePerUnit()), true)); } + public static final Text Offer$TotalPrice(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.totalPrice", "\u00a77Total price: %s", StonksFabricUtils.currencyText(Optional.of(offer.getPricePerUnit() * offer.getTotalUnits()), true)); } + } + public static final class OfferInfo { + public static final Text _OfferInfo(Offer offer) { return translatableWithFallback("stonks.menu.offerInfo", "Market > Offers > %s", offer.getProduct().getProductName()); } + public static final Text ClaimOffer = translatableWithFallback("stonks.menu.offerInfo.claimOffer", "\u00a7eClaim offer"); + public static final Text ClaimOffer$ClickToClaim = translatableWithFallback("stonks.menu.offerInfo.claimOffer.clickToClaim", "\u00a77Click to claim all"); + public static final Text ClaimOffer$NoClaim = translatableWithFallback("stonks.menu.offerInfo.claimOffer.noClaim", "\u00a7cCan't claim"); + public static final Text ClaimOffer$Claiming = translatableWithFallback("stonks.menu.offerInfo.claimOffer.claiming", "\u00a77Claiming..."); + public static final Text ClaimOffer$ClaimFailed = translatableWithFallback("stonks.menu.offerInfo.claimOffer.claimFailed", "\u00a7cClaim failed!"); + public static final Text CancelOffer = translatableWithFallback("stonks.menu.offerInfo.cancelOffer", "\u00a7eCancel offer"); + public static final Text CancelOffer$0 = translatableWithFallback("stonks.menu.offerInfo.cancelOffer.0", "\u00a77Pending items/money will be refuned"); + public static final Text CancelOffer$ClickToCancel = translatableWithFallback("stonks.menu.offerInfo.cancelOffer.clickToCancel", "\u00a77Click to cancel"); + public static final Text CancelOffer$Cancelling = translatableWithFallback("stonks.menu.offerInfo.cancelOffer.cancelling", "\u00a77Cancelling..."); + public static final Text CancelOffer$CancelFailed = translatableWithFallback("stonks.menu.offerInfo.cancelOffer.cancelFailed", "\u00a7cCancel failed!"); + public static final Text ClaimOffer$Units(int unitsToClaim) { return translatableWithFallback("stonks.menu.offerInfo.claimOffer.units", "\u00a77You have %s \u00a77units to claim", Text.literal(Integer.toString(unitsToClaim)).styled(s -> s.withColor(Formatting.AQUA))); } + public static final Text ClaimOffer$Money(int unitsToClaim, Offer offer) { return translatableWithFallback("stonks.menu.offerInfo.claimOffer.money", "\u00a77You have %s \u00a77to claim", StonksFabricUtils.currencyText(Optional.of(unitsToClaim * offer.getPricePerUnit()), true)); } + public static final Text ClaimOffer$MoneyWithTax(int unitsToClaim, Offer offer, PlatformConfig config) { + return translatableWithFallback("stonks.menu.offerInfo.claimOffer.moneyWithTax", "\u00a77You have %s \u00a77to claim (%s\u00a77 tax incl.)", + StonksFabricUtils.currencyText(Optional.of(config.applyTax(unitsToClaim * offer.getPricePerUnit())), true), + StonksFabricUtils.taxText(config.tax).orElse(Text.literal("0%"))); + } + } + public static final class ProductInfo { + public static final Text _ProductInfo(Product product) { return translatableWithFallback("stonks.menu.productInfo", "Market > %s", product.getProductName()); } + public static final Text NoOffers = translatableWithFallback("stonks.menu.productInfo.noOffers", "\u00a7cNo offers!"); + public static final Text ClickToInstantBuy = translatableWithFallback("stonks.menu.productInfo.clickToInstantBuy", "\u00a77Click to setup instant buy"); + public static final Text ClickToInstantSell = translatableWithFallback("stonks.menu.productInfo.clickToInstantSell", "\u00a77Click to sell all"); + public static final Text BuyOffer = translatableWithFallback("stonks.menu.productInfo.buyOffer", "\u00a7eCreate buy offer"); + public static final Text SellOffer = translatableWithFallback("stonks.menu.productInfo.sellOffer", "\u00a7eCreate sell offer"); + public static final Text MakeOffer = translatableWithFallback("stonks.menu.productInfo.makeOffer", "\u00a77Click to make offer"); + public static final Text MakeOffer$NoOffers = translatableWithFallback("stonks.menu.productInfo.makeOffer.noOffers", "\u00a77Click to become the first person to get rich"); + public static final Text InstantBuy(Optional computed) { return translatableWithFallback("stonks.menu.productInfo.instantBuy", "\u00a7eInstant buy \u00a76(\u00a7eAvg. %s\u00a76)", StonksFabricUtils.currencyText(computed.map(v -> v.average()), false)); } + public static final Text InstantSell(Optional computed) { return translatableWithFallback("stonks.menu.productInfo.instantSell", "\u00a7eInstant sell \u00a76(\u00a7eAvg. %s\u00a76)", StonksFabricUtils.currencyText(computed.map(v -> v.average()), false)); } + public static final Text TopOfferedPrice(Optional topPrice) { return translatableWithFallback("stonks.menu.productInfo.topOfferedPrice", "\u00a77Top Offered Price: %s", StonksFabricUtils.currencyText(topPrice, true)); } + public static final Text AvgOfferedPrice(Optional computed) { return translatableWithFallback("stonks.menu.productInfo.avgOfferedPrice", "\u00a77Average Offered Price: %s", StonksFabricUtils.currencyText(computed.map(v -> v.average()), true)); } + public static final Text InstantSellTax(double tax) { return translatableWithFallback("stonks.menu.productInfo.instantSellTax", "\u00a77A small %s \u00a77tax will be applied", StonksFabricUtils.taxText(tax).orElse(Text.literal("0%"))); } + } + public static final class InstantBuy { + public static final Text _InstantBuy(Product product) { return translatableWithFallback("stonks.menu.instantBuy", "Market > %s > Instant buy", product.getProductName()); } + public static final Text CustomAmount = translatableWithFallback("stonks.menu.instantBuy.customAmount", "\u00a7eCustom amount"); + public static final Text CustomAmount$0 = translatableWithFallback("stonks.menu.instantBuy.customAmount.0", "\u00a77Click to specify amount"); + public static final Text GuideText$0 = translatableWithFallback("stonks.menu.instantBuy.0", "\u00a78Having minimum balance is required to"); + public static final Text GuideText$1 = translatableWithFallback("stonks.menu.instantBuy.1", "\u00a78avoid your buy request from failing."); + public static final Text HoldShift = translatableWithFallback("stonks.menu.instantBuy.holdShift", "\u00a77Hold Shift to keep this menu opened"); + public static final Text ClickToBuy = translatableWithFallback("stonks.menu.instantBuy.clickToBuy", "\u00a77Click to instantly buy"); + public static final Text NoBuy = translatableWithFallback("stonks.menu.instantBuy.noBuy", "\u00a7cCan't instant buy"); + public static final Text Buying = translatableWithFallback("stonks.menu.instantBuy.buying", "\u00a7cCan't buy now"); + public static final Text Buying$0 = translatableWithFallback("stonks.menu.instantBuy.buying.0", "\u00a77Buying product..."); + public static final Text Confirm = translatableWithFallback("stonks.menu.instantBuy.confirm", "\u00a7eConfirm instant buy"); + public static final Text FixedAmount(int amount) { return translatableWithFallback("stonks.menu.instantBuy.fixedAmount", "\u00a7eInstant buy x%s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.YELLOW))); } + public static final Text AveragePrice(int amount, double originalPricePerUnit) { return translatableWithFallback("stonks.menu.instantBuy.averagePrice", "\u00a77Average price: %s", StonksFabricUtils.currencyText(Optional.of(amount * originalPricePerUnit), true)); } + public static final Text MinimumBalance(double moneyToSpend) { return translatableWithFallback("stonks.menu.instantBuy.minimumBalance", "\u00a77Minimum balance: %s", StonksFabricUtils.currencyText(Optional.of(moneyToSpend), true)); } + public static final Text Confirm$0(int amount, Product product) { + return translatableWithFallback("stonks.menu.instantBuy.confirm.0", "\u00a77%s\u00a77x %s", + Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.GRAY)), + Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))); + } + } + public static final class CreateOffer { + public static final Text SellAll = translatableWithFallback("stonks.menu.createOffer.sellAll", "\u00a7eSell everything!"); + public static final Text NoOfferForYou = translatableWithFallback("stonks.menu.createOffer.noOfferForYou", "\u00a7cCan't make this offer"); + public static final Text ClickForPrice = translatableWithFallback("stonks.menu.createOffer.clickForPrice", "\u00a77Click to configure offer pricing"); + public static final Text CustomAmount = translatableWithFallback("stonks.menu.createOffer.customAmount", "\u00a7eCustom amount"); + public static final Text ClickForAmount = translatableWithFallback("stonks.menu.createOffer.clickForAmount", "\u00a77Click to specify amount"); + public static final Text TopOfferDelta = translatableWithFallback("stonks.menu.createOffer.topOfferDelta.0", "\u00a77Get your offer filled first"); + public static final Text SameAsTopOffer = translatableWithFallback("stonks.menu.createOffer.sameAsTopOffer", "\u00a7eSame as top offer"); + public static final Text AverageOfTopOffers = translatableWithFallback("stonks.menu.createOffer.averageOfTopOffers", "\u00a7eAverage of top offers"); + public static final Text ClickForConfirmation = translatableWithFallback("stonks.menu.createOffer.clickToPlace", "\u00a77Click to place offer"); + public static final Text CustomPrice = translatableWithFallback("stonks.menu.createOffer.customPrice", "\u00a7eCustom price"); + public static final Text CustomPrice$0 = translatableWithFallback("stonks.menu.createOffer.customPrice.0", "\u00a77Get rich in your own way."); + public static final Text ClickForCustomPrice = translatableWithFallback("stonks.menu.createOffer.clickForCustomPrice", "\u00a77Click to specify custom price"); + public static final Text Title$Buy(Product product) { return translatableWithFallback("stonks.menu.createOffer.buy", "Market > %s > Buy offer", product.getProductName()); } + public static final Text Title$Sell(Product product) { return translatableWithFallback("stonks.menu.createOffer.sell", "Market > %s > Sell offer", product.getProductName());} + public static final Text BuyFixed(int amount) { return translatableWithFallback("stonks.menu.createOffer.buyFixed", "\u00a7eBuy x%s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.YELLOW))); } + public static final Text SellFixed(int amount) { return translatableWithFallback("stonks.menu.createOffer.sellFixed", "\u00a7eSell x%s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.YELLOW))); } + public static final Text TopBuyDelta(double delta) { return translatableWithFallback("stonks.menu.createOffer.topBuyDelta", "\u00a7eTop offer + %s", StonksFabricUtils.currencyText(Optional.of(delta), false));} + public static final Text TopSellDelta(double delta) { return translatableWithFallback("stonks.menu.createOffer.topSellDelta", "\u00a7eTop offer - %s", StonksFabricUtils.currencyText(Optional.of(delta), false)); } + public static final Text TotalSpending(Optional topOfferDelta, int amount) { return translatableWithFallback("stonks.menu.createOffer.totalSpending", "\u00a77Total spending: %s", StonksFabricUtils.currencyText(topOfferDelta.map(v -> v * amount), true)); } + public static final Text TotalEarning(Optional topOfferDelta, int amount) { return translatableWithFallback("stonks.menu.createOffer.totalEarning", "\u00a77Total earning: %s", StonksFabricUtils.currencyText(topOfferDelta.map(v -> v * amount), true)); } + public static final Text TopOfferPrice(Optional pricePerUnit) { return translatableWithFallback("stonks.menu.createOffer.topOfferPrice", "\u00a77Top offer: %s\u00a77", StonksFabricUtils.currencyText(pricePerUnit, true)); } + public static final Text AvgOfferPrice(Optional pricePerUnit) { return translatableWithFallback("stonks.menu.createOffer.avgOfferPrice", "\u00a77Average price: %s\u00a77", StonksFabricUtils.currencyText(pricePerUnit, true)); } + public static final Text YourOfferPrice(Optional pricePerUnit) { return translatableWithFallback("stonks.menu.createOffer.yourOfferPrice", "\u00a77Your offer: %s\u00a77", StonksFabricUtils.currencyText(pricePerUnit, true)); } + } + public static final class ConfirmOffer { + public static final Text ConfirmOffer = translatableWithFallback("stonks.menu.confirmOffer", "Confirm offer"); + public static final Text Buy = translatableWithFallback("stonks.menu.confirmOffer.buy", "\u00a7aConfirm buy offer"); + public static final Text Sell = translatableWithFallback("stonks.menu.confirmOffer.sell", "\u00a7aConfirm sell offer"); + public static final Text ClickToConfirm = translatableWithFallback("stonks.menu.confirmOffer.clickToConfirm", "\u00a77Click to confirm"); + public static final Text Buying(Product product, int amount) { return translatableWithFallback("stonks.menu.confirmOffer.buying", "\u00a77Buying %s\u00a77x %s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.GRAY)), Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))); } + public static final Text Selling(Product product, int amount) { return translatableWithFallback("stonks.menu.confirmOffer.selling", "\u00a77Selling %s\u00a77x %s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.GRAY)), Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))); } + public static final Text TotalPrice(int amount, double pricePerUnit) { return translatableWithFallback("stonks.menu.confirmOffer.totalPrice", "\u00a77Total price: %s", StonksFabricUtils.currencyText(Optional.of(pricePerUnit * amount), true)); } + public static final Text PricePerUnit(double pricePerUnit) { return translatableWithFallback("stonks.menu.confirmOffer.pricePerUnit", "\u00a77Price per unit: %s", StonksFabricUtils.currencyText(Optional.of(pricePerUnit), true)); } + } } - - public static Text menus$createOffer$buy(Product product) { return Text.translatableWithFallback("stonks.menu.createOffer.buy", "Market > %s > Buy offer", product.getProductName()); } - public static Text menus$createOffer$sell(Product product) { return Text.translatableWithFallback("stonks.menu.createOffer.sell", "Market > %s > Sell offer", product.getProductName());} - public static Text menus$createOffer$buyFixed(int amount) { return Text.translatableWithFallback("stonks.menu.createOffer.buyFixed", "\u00a7eBuy x%s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.YELLOW))); } - public static Text menus$createOffer$sellFixed(int amount) { return Text.translatableWithFallback("stonks.menu.createOffer.sellFixed", "\u00a7eSell x%s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.YELLOW))); } - public static final Text menus$createOffer$sellAll = Text.translatableWithFallback("stonks.menu.createOffer.sellAll", "\u00a7eSell everything!"); - public static final Text menus$createOffer$noOfferForYou = Text.translatableWithFallback("stonks.menu.createOffer.noOfferForYou", "\u00a7cCan't make this offer"); - public static final Text menus$createOffer$clickForPrice = Text.translatableWithFallback("stonks.menu.createOffer.clickForPrice", "\u00a77Click to configure offer pricing"); - public static final Text menus$createOffer$customAmount = Text.translatableWithFallback("stonks.menu.createOffer.customAmount", "\u00a7eCustom amount"); - public static final Text menus$createOffer$clickForAmount = Text.translatableWithFallback("stonks.menu.createOffer.clickForAmount", "\u00a77Click to specify amount"); - public static Text menus$createOffer$topBuyDelta(double delta) { return Text.translatableWithFallback("stonks.menu.createOffer.topBuyDelta", "\u00a7eTop offer + %s", StonksFabricUtils.currencyText(Optional.of(delta), false));} - public static Text menus$createOffer$topSellDelta(double delta) { return Text.translatableWithFallback("stonks.menu.createOffer.topSellDelta", "\u00a7eTop offer - %s", StonksFabricUtils.currencyText(Optional.of(delta), false)); } - public static final Text menus$createOffer$topOfferDelta = Text.translatableWithFallback("stonks.menu.createOffer.topOfferDelta.0", "\u00a77Get your offer filled first"); - public static final Text menus$createOffer$sameAsTopOffer = Text.translatableWithFallback("stonks.menu.createOffer.sameAsTopOffer", "\u00a7eSame as top offer"); - public static final Text menus$createOffer$averageOfTopOffers = Text.translatableWithFallback("stonks.menu.createOffer.averageOfTopOffers", "\u00a7eAverage of top offers"); - public static Text menus$createOffer$totalSpending(Optional topOfferDelta, int amount) { return Text.translatableWithFallback("stonks.menu.createOffer.totalSpending", "\u00a77Total spending: %s", StonksFabricUtils.currencyText(topOfferDelta.map(v -> v * amount), true)); } - public static Text menus$createOffer$totalEarning(Optional topOfferDelta, int amount) { return Text.translatableWithFallback("stonks.menu.createOffer.totalEarning", "\u00a77Total earning: %s", StonksFabricUtils.currencyText(topOfferDelta.map(v -> v * amount), true)); } - public static Text menus$createOffer$topOfferPrice(Optional pricePerUnit) { return Text.translatableWithFallback("stonks.menu.createOffer.topOfferPrice", "\u00a77Top offer: %s\u00a77", StonksFabricUtils.currencyText(pricePerUnit, true)); } - public static Text menus$createOffer$avgOfferPrice(Optional pricePerUnit) { return Text.translatableWithFallback("stonks.menu.createOffer.avgOfferPrice", "\u00a77Average price: %s\u00a77", StonksFabricUtils.currencyText(pricePerUnit, true)); } - public static Text menus$createOffer$yourOfferPrice(Optional pricePerUnit) { return Text.translatableWithFallback("stonks.menu.createOffer.yourOfferPrice", "\u00a77Your offer: %s\u00a77", StonksFabricUtils.currencyText(pricePerUnit, true)); } - public static final Text menus$createOffer$clickForConfirmation = Text.translatableWithFallback("stonks.menu.createOffer.clickToPlace", "\u00a77Click to place offer"); - public static final Text menus$createOffer$customPrice = Text.translatableWithFallback("stonks.menu.createOffer.customPrice", "\u00a7eCustom price"); - public static final Text menus$createOffer$customPrice$0 = Text.translatableWithFallback("stonks.menu.createOffer.customPrice.0", "\u00a77Get rich in your own way."); - public static final Text menus$createOffer$clickForCustomPrice = Text.translatableWithFallback("stonks.menu.createOffer.clickForCustomPrice", "\u00a77Click to specify custom price"); - - public static final Text menus$confirmOffer = Text.translatableWithFallback("stonks.menu.confirmOffer", "Confirm offer"); - public static final Text menus$confirmOffer$buy = Text.translatableWithFallback("stonks.menu.confirmOffer.buy", "\u00a7aConfirm buy offer"); - public static final Text menus$confirmOffer$sell = Text.translatableWithFallback("stonks.menu.confirmOffer.sell", "\u00a7aConfirm sell offer"); - public static Text menus$confirmOffer$buying(Product product, int amount) { return Text.translatableWithFallback("stonks.menu.confirmOffer.buying", "\u00a77Buying %s\u00a77x %s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.GRAY)), Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))); } - public static Text menus$confirmOffer$selling(Product product, int amount) { return Text.translatableWithFallback("stonks.menu.confirmOffer.selling", "\u00a77Selling %s\u00a77x %s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.GRAY)), Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))); } - public static Text menus$confirmOffer$totalPrice(int amount, double pricePerUnit) { return Text.translatableWithFallback("stonks.menu.confirmOffer.totalPrice", "\u00a77Total price: %s", StonksFabricUtils.currencyText(Optional.of(pricePerUnit * amount), true)); } - public static Text menus$confirmOffer$pricePerUnit(double pricePerUnit) { return Text.translatableWithFallback("stonks.menu.confirmOffer.pricePerUnit", "\u00a77Price per unit: %s", StonksFabricUtils.currencyText(Optional.of(pricePerUnit), true)); } - public static final Text menus$confirmOffer$clickToConfirm = Text.translatableWithFallback("stonks.menu.confirmOffer.clickToConfirm", "\u00a77Click to confirm"); - - public static final Text signInputs$separator = Text.translatableWithFallback("stonks.signInput.separator", "--------"); - public static final Text signInputs$priceInput = Text.translatableWithFallback("stonks.signInput.priceInput", "Specify your price per unit"); - public static final Text signInputs$amountInput = Text.translatableWithFallback("stonks.signInput.amountInput", "Specify your amount"); - public static Text signInputs$currentBuyTarget(int amount, Product product) { return Text.translatableWithFallback("stonks.signInput.priceInput.currentBuyTargetWithAmount", "You're buying %sx %s", amount, product.getProductName()); } - public static Text signInputs$currentSellTarget(int amount, Product product) { return Text.translatableWithFallback("stonks.signInput.priceInput.currentSellTargetWithAmount", "You're selling %sx %s", amount, product.getProductName()); } - public static Text signInputs$currentBuyTarget(Product product) { return Text.translatableWithFallback("stonks.signInput.priceInput.currentBuyTarget", "You're buying %s", product.getProductName()); } - public static Text signInputs$currentSellTarget(Product product) { return Text.translatableWithFallback("stonks.signInput.priceInput.currentSellTarget", "You're selling %s", product.getProductName()); } - - public static final Text messages$offerClaimFailed = translatableWithFallback("stonks.message.offerClaimFailed", "\u00a7cAn error occured. Claim failed!"); - public static final Text messages$offerCancelFailed = Text.translatableWithFallback("stonks.message.offerCancelFailed", "\u00a7cAn error occured. Cancel failed!"); - public static Text messages$offerCancelled(Offer newOffer, int refundUnits, double refundMoney) { - return Text.translatableWithFallback("stonks.message.offerCancelled", "Offer cancelled! Refunded %sx %s and %s", - Text.literal(Integer.toString(refundUnits)).styled(s -> s.withColor(Formatting.AQUA)), - newOffer.getProduct().getProductName(), - StonksFabricUtils.currencyText(Optional.of(refundMoney), true)); + public static final class SignInputs { + public static final Text Separator = translatableWithFallback("stonks.signInput.separator", "--------"); + public static final Text PriceInput = translatableWithFallback("stonks.signInput.priceInput", "Specify your price per unit"); + public static final Text AmountInput = translatableWithFallback("stonks.signInput.amountInput", "Specify your amount"); + public static final Text CurrentBuyTarget(int amount, Product product) { return translatableWithFallback("stonks.signInput.priceInput.currentBuyTargetWithAmount", "You're buying %sx %s", amount, product.getProductName()); } + public static final Text CurrentSellTarget(int amount, Product product) { return translatableWithFallback("stonks.signInput.priceInput.currentSellTargetWithAmount", "You're selling %sx %s", amount, product.getProductName()); } + public static final Text CurrentBuyTarget(Product product) { return translatableWithFallback("stonks.signInput.priceInput.currentBuyTarget", "You're buying %s", product.getProductName()); } + public static final Text CurrentSellTarget(Product product) { return translatableWithFallback("stonks.signInput.priceInput.currentSellTarget", "You're selling %s", product.getProductName()); } + } + public static final class Messages { + public static final Text OfferClaimFailed = translatableWithFallback("stonks.message.offerClaimFailed", "\u00a7cAn error occured. Claim failed!"); + public static final Text OfferCancelFailed = translatableWithFallback("stonks.message.offerCancelFailed", "\u00a7cAn error occured. Cancel failed!"); + public static final Text PriceMoreThanZero = translatableWithFallback("stonks.message.priceMoreThanZero", "\u00a7cYou must specify price more than $0"); + public static final Text AmountAtLeastOne = translatableWithFallback("stonks.message.amountAtLeastOne", "\u00a7cYou must specify at least 1"); + public static final Text PleaseWait = translatableWithFallback("stonks.message.pleaseWait", "Please wait..."); + public static final Text ErrorRefunding = translatableWithFallback("stonks.message.errorRefunding", "\u00a7cAn error occured, refunding all your stuffs"); + public static final Text NotAvailable = translatableWithFallback("stonks.message.notAvailable", "\u00a7cNot Available!"); + public static final Text NotAvailableShort = translatableWithFallback("stonks.message.notAvailable.short", "\u00a7cn/a"); + public static final Text OfferInfoText$Buy = translatableWithFallback("stonks.message.offerInfoText.buy", "\u00a7a\u00a9lBUY"); + public static final Text OfferInfoText$Sell = translatableWithFallback("stonks.message.offerInfoText.sell", "\u00a7e\u00a7lSELL"); + public static final Text OfferCancelled(Offer newOffer, int refundUnits, double refundMoney) { + return translatableWithFallback("stonks.message.offerCancelled", "Offer cancelled! Refunded %sx %s and %s", + Text.literal(Integer.toString(refundUnits)).styled(s -> s.withColor(Formatting.AQUA)), + newOffer.getProduct().getProductName(), + StonksFabricUtils.currencyText(Optional.of(refundMoney), true)); + } + public static final Text NoUnitsToInstantSell(Product product) { return translatableWithFallback("stonks.message.noProductsToInstantSell", "\u00a7cYou don't have %s \u00a7cto sell!", product.getProductName()); } + public static final Text NoMoneyToInstantBuy(double moneyToSpend) { return translatableWithFallback("stonks.message.noMoneyToInstantBuy", "\u00a7cYou don't have %s \u00a7cto buy!", StonksFabricUtils.currencyText(Optional.of(moneyToSpend), true)); } + public static final Text NotEnoughMoney(double balance, double price) { return translatableWithFallback("stonks.message.notEnoughMoney", "\u00a7cNot enough money! (%s\u00a7c/%s\u00a7c)", StonksFabricUtils.currencyText(Optional.of(price), true), StonksFabricUtils.currencyText(Optional.of(balance), true)); } + public static final Text NotEnoughItems(int currentAmount, int amount) { return translatableWithFallback("stonks.message.notEnoughItems", "\u00a7cNot enough items! (%s/%s\u00a7c)", amount, currentAmount); } + public static final Text InvaildInput(String input) { return translatableWithFallback("stonks.message.invaildInput", "\u00a7cInvaild input: %s", input); } + public static final Text Bought(Text amountText, Text productNameText, Text moneySpentText) { return translatableWithFallback("stonks.message.bought", "Bought %sx %s for %s", amountText, productNameText, moneySpentText); } + public static final Text BoughtWithExtras(Text amountText, Text productNameText, Text moneySpentText, MutableText unitsLeftText) { return translatableWithFallback("stonks.message.boughtWithExtras", "Bought %sx %s for %s with %s units can't be bought", amountText, productNameText, moneySpentText, unitsLeftText); } + public static final Text Sold(Text amountText, Text productNameText, Text moneySpentText) { return translatableWithFallback("stonks.message.sold", "Sold %sx %s for %s", amountText, productNameText, moneySpentText); } + public static final Text SoldWithExtras(Text amountText, Text productNameText, Text moneyReceivedText, MutableText unitsLeftText) { return translatableWithFallback("stonks.message.soldWithExtras", "Sold %sx %s for %s with %s units can't be sold", amountText, productNameText, moneyReceivedText, unitsLeftText); } + public static final Text PlacedBuyOffer(MutableText unitsText, MutableText productNameText, Text totalPriceText, Text pricePerUnitText) { return translatableWithFallback("stonks.message.placedBuyOffer", "Placed buy offer: %sx %s for %s @ %s/each", unitsText, productNameText, totalPriceText, pricePerUnitText); } + public static final Text PlacedSellOffer(MutableText unitsText, MutableText productNameText, Text totalPriceText, Text pricePerUnitText) { return translatableWithFallback("stonks.message.placedSellOffer", "Placed sell offer: %sx %s for %s @ %s/each", unitsText, productNameText, totalPriceText, pricePerUnitText); } + public static final Text Currency(double val) { return translatableWithFallback("stonks.message.currency", "\u00a7e$%s", Text.literal(StonksFabricUtils.CURRENCY_FORMATTER.format(val)).styled(s -> s.withColor(Formatting.YELLOW))); } + public static final Text OfferInfoText(Text typeText, Text totalAvailableUnits, Text offersCountText, Text ppuText) { return translatableWithFallback("stonks.message.offerInfoText", "\u00a77%s %s\u00a77x from %s \u00a77offers for %s\u00a77/each", typeText, totalAvailableUnits, offersCountText, ppuText); } + public static final Text BuyOfferFilled(Offer offer) { return translatableWithFallback("stonks.message.buyOfferFilled", "\u00a77\u00a7l[\u00a7eStonks\u00a77\u00a7l]\u00a7r Your %sx %s buy offer has been filled!", Text.literal(Integer.toString(offer.getTotalUnits())).styled(s -> s.withColor(Formatting.AQUA)), Text.literal(offer.getProduct().getProductName()).styled(s -> s.withColor(Formatting.AQUA))); } + public static final Text SellOfferFilled(Offer offer) { return translatableWithFallback("stonks.message.sellOfferFilled", "\u00a77\u00a7l[\u00a7eStonks\u00a77\u00a7l]\u00a7r Your %sx %s sell offer has been filled!", Text.literal(Integer.toString(offer.getTotalUnits())).styled(s -> s.withColor(Formatting.AQUA)), Text.literal(offer.getProduct().getProductName()).styled(s -> s.withColor(Formatting.AQUA))); } } - public static Text messages$noUnitsToInstantSell(Product product) { return Text.translatableWithFallback("stonks.message.noProductsToInstantSell", "\u00a7cYou don't have %s \u00a7cto sell!", product.getProductName()); } - public static Text messages$noMoneyToInstantBuy(double moneyToSpend) { return Text.translatableWithFallback("stonks.message.noMoneyToInstantBuy", "\u00a7cYou don't have %s \u00a7cto buy!", StonksFabricUtils.currencyText(Optional.of(moneyToSpend), true)); } - public static Text messages$notEnoughMoney(double balance, double price) { return Text.translatableWithFallback("stonks.message.notEnoughMoney", "\u00a7cNot enough money! (%s\u00a7c/%s\u00a7c)", StonksFabricUtils.currencyText(Optional.of(price), true), StonksFabricUtils.currencyText(Optional.of(balance), true)); } - public static Text messages$notEnoughItems(int currentAmount, int amount) { return Text.translatableWithFallback("stonks.message.notEnoughItems", "\u00a7cNot enough items! (%s/%s\u00a7c)", amount, currentAmount); } - public static final Text messages$priceMoreThanZero = Text.translatableWithFallback("stonks.message.priceMoreThanZero", "\u00a7cYou must specify price more than $0"); - public static Text messages$invaildInput(String input) { return Text.translatableWithFallback("stonks.message.invaildInput", "\u00a7cInvaild input: %s", input); } - public static final Text messages$amountAtLeastOne = Text.translatableWithFallback("stonks.message.amountAtLeastOne", "\u00a7cYou must specify at least 1"); - public static final Text message$pleaseWait = Text.translatableWithFallback("stonks.message.pleaseWait", "Please wait..."); - public static final Text message$errorRefunding = Text.translatableWithFallback("stonks.message.errorRefunding", "\u00a7cAn error occured, refunding all your stuffs"); - public static Text messages$bought(Text amountText, Text productNameText, Text moneySpentText) { return Text.translatableWithFallback("stonks.message.bought", "Bought %sx %s for %s", amountText, productNameText, moneySpentText); } - public static Text messages$boughtWithExtras(Text amountText, Text productNameText, Text moneySpentText, MutableText unitsLeftText) { return Text.translatableWithFallback("stonks.message.boughtWithExtras", "Bought %sx %s for %s with %s units can't be bought", amountText, productNameText, moneySpentText, unitsLeftText); } - public static Text messages$sold(Text amountText, Text productNameText, Text moneySpentText) { return Text.translatableWithFallback("stonks.message.sold", "Sold %sx %s for %s", amountText, productNameText, moneySpentText); } - public static Text messages$soldWithExtras(Text amountText, Text productNameText, Text moneyReceivedText, MutableText unitsLeftText) { return Text.translatableWithFallback("stonks.message.soldWithExtras", "Sold %sx %s for %s with %s units can't be sold", amountText, productNameText, moneyReceivedText, unitsLeftText); } - public static Text messages$placedBuyOffer(MutableText unitsText, MutableText productNameText, Text totalPriceText, Text pricePerUnitText) { return Text.translatableWithFallback("stonks.message.placedBuyOffer", "Placed buy offer: %sx %s for %s @ %s/each", unitsText, productNameText, totalPriceText, pricePerUnitText); } - public static Text messages$placedSellOffer(MutableText unitsText, MutableText productNameText, Text totalPriceText, Text pricePerUnitText) { return Text.translatableWithFallback("stonks.message.placedSellOffer", "Placed sell offer: %sx %s for %s @ %s/each", unitsText, productNameText, totalPriceText, pricePerUnitText); } - public static final Text messages$notAvailable = Text.translatableWithFallback("stonks.message.notAvailable", "\u00a7cNot Available!"); - public static final Text messages$notAvailableShort = Text.translatableWithFallback("stonks.message.notAvailable.short", "\u00a7cn/a"); - public static Text messages$currency(double val) { return Text.translatableWithFallback("stonks.message.currency", "\u00a7e$%s", Text.literal(StonksFabricUtils.CURRENCY_FORMATTER.format(val)).styled(s -> s.withColor(Formatting.YELLOW))); } - public static Text messages$offerInfoText(Text typeText, Text totalAvailableUnits, Text offersCountText, Text ppuText) { return Text.translatableWithFallback("stonks.message.offerInfoText", "\u00a77%s %s\u00a77x from %s \u00a77offers for %s\u00a77/each", typeText, totalAvailableUnits, offersCountText, ppuText); } - public static final Text messages$offerInfoText$buy = Text.translatableWithFallback("stonks.message.offerInfoText.buy", "\u00a7a\u00a9lBUY"); - public static final Text messages$offerInfoText$sell = Text.translatableWithFallback("stonks.message.offerInfoText.sell", "\u00a7e\u00a7lSELL"); - public static Text messages$buyOfferFilled(Offer offer) { return Text.translatableWithFallback("stonks.message.buyOfferFilled", "\u00a77\u00a7l[\u00a7eStonks\u00a77\u00a7l]\u00a7r Your %sx %s buy offer has been filled!", Text.literal(Integer.toString(offer.getTotalUnits())).styled(s -> s.withColor(Formatting.AQUA)), Text.literal(offer.getProduct().getProductName()).styled(s -> s.withColor(Formatting.AQUA))); } - public static Text messages$sellOfferFilled(Offer offer) { return Text.translatableWithFallback("stonks.message.sellOfferFilled", "\u00a77\u00a7l[\u00a7eStonks\u00a77\u00a7l]\u00a7r Your %sx %s sell offer has been filled!", Text.literal(Integer.toString(offer.getTotalUnits())).styled(s -> s.withColor(Formatting.AQUA)), Text.literal(offer.getProduct().getProductName()).styled(s -> s.withColor(Formatting.AQUA))); } + // @formatter:on } -// @formatter:on diff --git a/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java b/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java index 1c63733..6543571 100644 --- a/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java @@ -40,6 +40,8 @@ import stonks.core.product.Product; import stonks.fabric.StonksFabric; import stonks.fabric.Translations; +import stonks.fabric.Translations.Errors; +import stonks.fabric.Translations.Menus.MainMenu; import stonks.fabric.menu.handling.WaitableGuiElement; import stonks.fabric.menu.product.ProductMenu; @@ -52,7 +54,7 @@ public class MarketMainMenu extends StackedMenu { public MarketMainMenu(StackedMenu previous, ServerPlayerEntity player) { super(previous, ScreenHandlerType.GENERIC_9X6, player, false); - setTitle(Translations.menus$mainMenu); + setTitle(MainMenu.MainMenu); for (int i = 0; i < getHeight() - 1; i++) { var slot = (i + 1) * getWidth(); @@ -69,8 +71,8 @@ public MarketMainMenu(StackedMenu previous, ServerPlayerEntity player) { (categories, error) -> { if (error != null) { var icon = new GuiElementBuilder(Items.BARRIER) - .setName(Translations.errors) - .addLoreLine(Translations.errors$categoriesList); + .setName(Errors.Errors) + .addLoreLine(Translations.Errors.CategoriesList); for (int i = 0; i < getHeight() - 1; i++) { var slot = (i + 1) * getWidth(); @@ -105,8 +107,8 @@ protected void placePagesNavigations(List categories) { setSlot(10, categories == null || categoriesPage <= 0 ? MenuIcons.BORDER : new GuiElementBuilder(Items.RED_STAINED_GLASS_PANE, Math.max(Math.min(categoriesPage, 64), 1)) - .setName(Translations.icons$scrollUp) - .addLoreLine(Translations.icons$scrollUp$0(categoriesPage, categoriesMaxPages)) + .setName(Translations.Icons.ScrollUp) + .addLoreLine(Translations.Icons.ScrollUp$0(categoriesPage, categoriesMaxPages)) .setCallback((index, type, action, gui) -> { if (categoriesPage <= 0 || categories == null) return; categoriesPage--; @@ -116,8 +118,8 @@ protected void placePagesNavigations(List categories) { setSlot(46, categories == null || categoriesPage >= (categoriesMaxPages - 1) ? MenuIcons.BORDER : new GuiElementBuilder(Items.YELLOW_STAINED_GLASS_PANE, Math.max(Math.min(categoriesPage + 2, 64), 1)) - .setName(Translations.icons$scrollDown) - .addLoreLine(Translations.icons$scrollDown$0(categoriesPage, categoriesMaxPages)) + .setName(Translations.Icons.ScrollDown) + .addLoreLine(Translations.Icons.ScrollDown$0(categoriesPage, categoriesMaxPages)) .setCallback((index, type, action, gui) -> { if (categoriesPage >= (categoriesMaxPages - 1) || categories == null) return; categoriesPage++; @@ -129,8 +131,8 @@ protected void placePagesNavigations(List categories) { setSlot(2, categories == null || productsPage <= 0 ? MenuIcons.BORDER : new GuiElementBuilder(Items.ARROW, Math.max(Math.min(productsPage, 64), 1)) - .setName(Translations.icons$previousPage) - .addLoreLine(Translations.icons$previousPage$0(productsPage, productsMaxPage)) + .setName(Translations.Icons.PreviousPage) + .addLoreLine(Translations.Icons.PreviousPage$0(productsPage, productsMaxPage)) .setCallback((index, type, action, gui) -> { if (productsPage <= 0 || categories == null) return; productsPage--; @@ -140,8 +142,8 @@ protected void placePagesNavigations(List categories) { setSlot(6, categories == null || productsPage >= (productsMaxPage - 1) ? MenuIcons.BORDER : new GuiElementBuilder(Items.ARROW, Math.max(Math.min(productsPage + 2, 64), 1)) - .setName(Translations.icons$nextPage) - .addLoreLine(Translations.icons$nextPage$0(productsPage, productsMaxPage)) + .setName(Translations.Icons.NextPage) + .addLoreLine(Translations.Icons.NextPage$0(productsPage, productsMaxPage)) .setCallback((index, type, action, gui) -> { if (productsPage >= (productsMaxPage - 1) || categories == null) return; productsPage++; @@ -168,8 +170,8 @@ private void placeCategories(List categories) { .setName(Text.literal(category.getCategoryName()) .styled(s -> s.withColor(Formatting.AQUA))) .addLoreLine(selected - ? Translations.menus$mainMenu$category$selected - : Translations.menus$mainMenu$category$unselected) + ? Translations.Menus.MainMenu.Category$Selected + : Translations.Menus.MainMenu.Category$Unselected) .setCallback((index, type, action, gui) -> { selectedCategoryIndex = currentCategoryIndex; productsPage = 0; @@ -214,8 +216,8 @@ private void placeProduct(int slot, StonksServiceCache cache, Category category, public ItemStack createStackWhenLoaded(ProductMarketOverview overview, Throwable error) { // TODO use message from UserException if (error != null) return new GuiElementBuilder(Items.BARRIER) - .setName(Translations.errors) - .addLoreLine(Translations.errors$quickPriceDetails) + .setName(Errors.Errors) + .addLoreLine(Translations.Errors.QuickPriceDetails) .asStack(); // TODO should we use avg price? @@ -227,10 +229,10 @@ public ItemStack createStackWhenLoaded(ProductMarketOverview overview, Throwable .addLoreLine(Text.literal(category.getCategoryName()) .styled(s -> s.withColor(Formatting.DARK_GRAY))) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$mainMenu$product$instantBuy(instantBuyPrice)) - .addLoreLine(Translations.menus$mainMenu$product$instantSell(instantSellPrice)) + .addLoreLine(Translations.Menus.MainMenu.product$instantBuy(instantBuyPrice)) + .addLoreLine(Translations.Menus.MainMenu.product$instantSell(instantSellPrice)) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$mainMenu$product$clickToOpen) + .addLoreLine(Translations.Menus.MainMenu.Product$ClickToOpen) .asStack(); } diff --git a/fabric/src/main/java/stonks/fabric/menu/MenuIcons.java b/fabric/src/main/java/stonks/fabric/menu/MenuIcons.java index c407eab..21789dc 100644 --- a/fabric/src/main/java/stonks/fabric/menu/MenuIcons.java +++ b/fabric/src/main/java/stonks/fabric/menu/MenuIcons.java @@ -28,17 +28,17 @@ public class MenuIcons { public static final GuiElementBuilder BORDER = new GuiElementBuilder(Items.BLACK_STAINED_GLASS_PANE) - .setName(Translations.icons$border); + .setName(Translations.Icons.Border); public static final GuiElementBuilder BACK = new GuiElementBuilder(Items.ARROW) - .setName(Translations.icons$previousMenu) + .setName(Translations.Icons.PreviousMenu) .setCallback((index, type, action, gui) -> { if (gui instanceof StackedMenu stacked) { stacked.getPrevious().open(); } }); public static final GuiElementBuilder MAIN_MENU = new GuiElementBuilder(Items.GOLD_BLOCK) - .setName(Translations.icons$mainMenu) - .addLoreLine(Translations.icons$mainMenu$0) + .setName(Translations.Icons.MainMenu) + .addLoreLine(Translations.Icons.MainMenu$0) .setCallback((index, type, action, gui) -> { var previous = gui instanceof StackedMenu stacked ? stacked : null; if (previous != null && previous.getPrevious() instanceof MarketMainMenu) { @@ -51,8 +51,8 @@ public class MenuIcons { }); public static final GuiElementBuilder VIEW_SELF_OFFERS = new GuiElementBuilder(Items.CHEST) - .setName(Translations.icons$viewOffers) - .addLoreLine(Translations.icons$viewOffer$0) + .setName(Translations.Icons.ViewOffers) + .addLoreLine(Translations.Icons.ViewOffers$0) .setCallback((index, type, action, gui) -> { var previous = gui instanceof StackedMenu stacked ? stacked : null; if (previous != null && previous.getPrevious() instanceof ViewOffersMenu) { diff --git a/fabric/src/main/java/stonks/fabric/menu/handling/WaitableGuiElement.java b/fabric/src/main/java/stonks/fabric/menu/handling/WaitableGuiElement.java index 2efc0e2..c69aa4a 100644 --- a/fabric/src/main/java/stonks/fabric/menu/handling/WaitableGuiElement.java +++ b/fabric/src/main/java/stonks/fabric/menu/handling/WaitableGuiElement.java @@ -33,13 +33,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.screen.slot.SlotActionType; -import stonks.fabric.Translations; +import stonks.fabric.Translations.Icons; public abstract class WaitableGuiElement implements GuiElementInterface { protected static final ItemStack[] LOADING = Stream .of(":..", ".:.", "..:", ".:.") .map(v -> new GuiElementBuilder(Items.CLOCK) - .setName(Translations.icons$loading(v)) + .setName(Icons.Loading(v)) .asStack()) .toArray(ItemStack[]::new); diff --git a/fabric/src/main/java/stonks/fabric/menu/player/OfferInfoMenu.java b/fabric/src/main/java/stonks/fabric/menu/player/OfferInfoMenu.java index ad81b65..e8fd573 100644 --- a/fabric/src/main/java/stonks/fabric/menu/player/OfferInfoMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/player/OfferInfoMenu.java @@ -41,7 +41,7 @@ public class OfferInfoMenu extends StackedMenu { public OfferInfoMenu(StackedMenu previous, ServerPlayerEntity player, Offer offer) { super(previous, ScreenHandlerType.GENERIC_9X4, player, false); this.offer = offer; - setTitle(Translations.menus$offerInfo(offer)); + setTitle(Translations.Menus.OfferInfo._OfferInfo(offer)); setSlot(7, ViewOffersMenu.createOfferButton(player, offer)); @@ -63,16 +63,17 @@ public GuiElementBuilder createClaimAllButton() { var tax = config.tax; return new GuiElementBuilder(canClaim ? Items.GOLD_INGOT : Items.BARRIER) - .setName(Translations.menus$offerInfo$claimOffer) + .setName(Translations.Menus.OfferInfo.ClaimOffer) .addLoreLine(Text.empty()) .addLoreLine(offer.getType() == OfferType.BUY - ? Translations.menus$offerInfo$claimOffer$units(unitsToClaim) - : tax > 0d ? Translations.menus$offerInfo$claimOffer$moneyWithTax(unitsToClaim, offer, config) - : Translations.menus$offerInfo$claimOffer$money(unitsToClaim, offer)) + ? Translations.Menus.OfferInfo.ClaimOffer$Units(unitsToClaim) + : tax > 0d + ? Translations.Menus.OfferInfo.ClaimOffer$MoneyWithTax(unitsToClaim, offer, config) + : Translations.Menus.OfferInfo.ClaimOffer$Money(unitsToClaim, offer)) .addLoreLine(Text.empty()) .addLoreLine(canClaim - ? Translations.menus$offerInfo$claimOffer$clickToClaim - : Translations.menus$offerInfo$claimOffer$noClaim) + ? Translations.Menus.OfferInfo.ClaimOffer$ClickToClaim + : Translations.Menus.OfferInfo.ClaimOffer$NoClaim) .setCallback((index, type, action, gui) -> { if (!canClaim) return; @@ -81,14 +82,14 @@ public GuiElementBuilder createClaimAllButton() { var handler = StonksFabric.getServiceProvider(getPlayer()).getTasksHandler(); setSlot(index, new GuiElementBuilder(Items.CLOCK) - .setName(Translations.menus$offerInfo$claimOffer$claiming)); + .setName(Translations.Menus.OfferInfo.ClaimOffer$Claiming)); var previousUnits = offer.getClaimedUnits(); handler.handle(service.claimOffer(offer), (newOffer, error) -> { if (error != null) { if (isOpen()) setSlot(index, new GuiElementBuilder(Items.BARRIER) - .setName(Translations.menus$offerInfo$claimOffer$claimFailed)); - else getPlayer().sendMessage(Translations.messages$offerClaimFailed, true); + .setName(Translations.Menus.OfferInfo.ClaimOffer$ClaimFailed)); + else getPlayer().sendMessage(Translations.Messages.OfferClaimFailed, true); error.printStackTrace(); return; } @@ -110,24 +111,24 @@ public GuiElementBuilder createClaimAllButton() { public GuiElementBuilder createCancelButton() { return new GuiElementBuilder(Items.RED_TERRACOTTA) - .setName(Translations.menus$offerInfo$cancelOffer) - .addLoreLine(Translations.menus$offerInfo$cancelOffer$0) + .setName(Translations.Menus.OfferInfo.CancelOffer) + .addLoreLine(Translations.Menus.OfferInfo.CancelOffer$0) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$offerInfo$cancelOffer$clickToCancel) + .addLoreLine(Translations.Menus.OfferInfo.CancelOffer$ClickToCancel) .setCallback((index, type, action, gui) -> { var adapter = StonksFabric.getServiceProvider(getPlayer()).getStonksAdapter(); var service = StonksFabric.getServiceProvider(getPlayer()).getStonksService(); var handler = StonksFabric.getServiceProvider(getPlayer()).getTasksHandler(); setSlot(index, new GuiElementBuilder(Items.CLOCK) - .setName(Translations.menus$offerInfo$cancelOffer$cancelling)); + .setName(Translations.Menus.OfferInfo.CancelOffer$Cancelling)); var previousClaimedUnits = offer.getClaimedUnits(); handler.handle(service.cancelOffer(offer), (newOffer, error) -> { if (error != null) { if (isOpen()) setSlot(index, new GuiElementBuilder(Items.BARRIER) - .setName(Translations.menus$offerInfo$cancelOffer$cancelFailed)); - else getPlayer().sendMessage(Translations.messages$offerCancelFailed, true); + .setName(Translations.Menus.OfferInfo.CancelOffer$CancelFailed)); + else getPlayer().sendMessage(Translations.Messages.OfferCancelFailed, true); error.printStackTrace(); return; } @@ -150,7 +151,9 @@ public GuiElementBuilder createCancelButton() { close(); getPlayer().playSound(SoundEvents.BLOCK_GLASS_BREAK, SoundCategory.PLAYERS, 1f, 1f); - getPlayer().sendMessage(Translations.messages$offerCancelled(newOffer, refundUnits, refundMoney), true); + getPlayer().sendMessage( + Translations.Messages.OfferCancelled(newOffer, refundUnits, refundMoney), + true); }); }); } diff --git a/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java b/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java index acf7133..d058285 100644 --- a/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java @@ -34,6 +34,8 @@ import stonks.core.market.OfferType; import stonks.fabric.StonksFabric; import stonks.fabric.Translations; +import stonks.fabric.Translations.Errors; +import stonks.fabric.Translations.Icons; import stonks.fabric.menu.MenuIcons; import stonks.fabric.menu.StackedMenu; import stonks.fabric.menu.handling.WaitableGuiElement; @@ -48,7 +50,7 @@ public class ViewOffersMenu extends StackedMenu { public ViewOffersMenu(StackedMenu previous, ServerPlayerEntity player) { super(previous, ScreenHandlerType.GENERIC_9X6, player, false); - setTitle(Translations.menus$viewOffers); + setTitle(Translations.Menus.ViewOffers.ViewOffers); offersCache = StonksFabric.getServiceProvider(player).getStonksCache().getOffers(player.getUuid()); setSlot((getHeight() / 2) * getWidth() + getWidth() / 2, WaitableGuiElement.ANIMATED_LOADING); @@ -65,8 +67,8 @@ protected void placePagesNavigations() { setSlot(2, page <= 0 ? MenuIcons.BORDER : new GuiElementBuilder(Items.ARROW, Math.max(Math.min(page, 64), 1)) - .setName(Translations.icons$previousPage) - .addLoreLine(Translations.icons$previousPage$0(page, maxPages)) + .setName(Icons.PreviousPage) + .addLoreLine(Icons.PreviousPage$0(page, maxPages)) .setCallback((index, type, action, gui) -> { if (page <= 0 || isUpdating) return; page--; @@ -76,8 +78,8 @@ protected void placePagesNavigations() { setSlot(6, page >= (maxPages - 1) ? MenuIcons.BORDER : new GuiElementBuilder(Items.ARROW, Math.max(Math.min(page + 2, 64), 1)) - .setName(Translations.icons$nextPage) - .addLoreLine(Translations.icons$nextPage$0(page, maxPages)) + .setName(Icons.NextPage) + .addLoreLine(Icons.NextPage$0(page, maxPages)) .setCallback((index, type, action, gui) -> { if (page >= (maxPages - 1) || isUpdating) return; page++; @@ -100,8 +102,8 @@ public void onTick() { if (error != null) { loadedOffers = null; setSlot((getHeight() / 2) * getWidth() + getWidth() / 2, new GuiElementBuilder(Items.BARRIER) - .setName(Translations.errors) - .addLoreLine(Translations.menus$viewOffers$retrying) + .setName(Errors.Errors) + .addLoreLine(Translations.Menus.ViewOffers.Retrying) .asStack()); return; } @@ -120,9 +122,9 @@ public void placeOffers(List offers) { if (offers == null) return; if (offers.size() == 0) { setSlot((getHeight() / 2) * getWidth() + getWidth() / 2, new GuiElementBuilder(Items.BARRIER) - .setName(Translations.menus$viewOffers$noOffers) - .addLoreLine(Translations.menus$viewOffers$noOffers$0) - .addLoreLine(Translations.menus$viewOffers$noOffers$1)); + .setName(Translations.Menus.ViewOffers.NoOffers) + .addLoreLine(Translations.Menus.ViewOffers.NoOffers$0) + .addLoreLine(Translations.Menus.ViewOffers.NoOffers$1)); return; } @@ -136,7 +138,7 @@ public void placeOffers(List offers) { var offer = offers.get(offerIndex); setSlot(getWidth() + i, createOfferButton(player, offer) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$viewOffers$offer$clickToOpen) + .addLoreLine(Translations.Menus.ViewOffers.Offer$ClickToOpen) .setCallback((index, type, action, gui) -> new OfferInfoMenu(this, player, offer).open())); } } @@ -147,14 +149,14 @@ public static GuiElementBuilder createOfferButton(ServerPlayerEntity player, Off .getStonksAdapter() .createDisplayStack(offer.getProduct())) .setName(offer.getType() == OfferType.BUY - ? Translations.menus$viewOffers$offer$buy(offer) - : Translations.menus$viewOffers$offer$sell(offer)) + ? Translations.Menus.ViewOffers.Offer$Buy(offer) + : Translations.Menus.ViewOffers.Offer$Sell(offer)) .setLore(new ArrayList<>()) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$viewOffers$offer$progress(offer)) - .addLoreLine(Translations.menus$viewOffers$offer$progressLegends) + .addLoreLine(Translations.Menus.ViewOffers.Offer$Progress(offer)) + .addLoreLine(Translations.Menus.ViewOffers.Offer$ProgressLegends) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$viewOffers$offer$pricePerUnit(offer)) - .addLoreLine(Translations.menus$viewOffers$offer$totalPrice(offer)); + .addLoreLine(Translations.Menus.ViewOffers.Offer$PricePerUnit(offer)) + .addLoreLine(Translations.Menus.ViewOffers.Offer$TotalPrice(offer)); } } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyConfirmMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyConfirmMenu.java index aff213b..ae6fc0b 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyConfirmMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyConfirmMenu.java @@ -47,7 +47,7 @@ public InstantBuyConfirmMenu(StackedMenu previous, ServerPlayerEntity player, Pr this.originalPricePerUnit = originalPricePerUnit; this.instantPricePerUnit = instantPricePerUnit; - setTitle(Translations.menus$instantBuy(product)); + setTitle(Translations.Menus.InstantBuy._InstantBuy(product)); var balance = StonksFabric.getServiceProvider(player).getStonksAdapter().accountBalance(player); setSlot(22, createConfirmButton(balance, Items.GOLD_INGOT)); } @@ -65,24 +65,24 @@ public GuiElementBuilder createConfirmButton(double balance, Item icon) { var canBuy = balance >= moneyToSpend; return new GuiElementBuilder(canBuy ? icon : Items.BARRIER, Math.min(Math.max(amount / 64, 1), 64)) - .setName(Translations.menus$instantBuy$confirm) - .addLoreLine(Translations.menus$instantBuy$confirm$0(amount, getProduct())) + .setName(Translations.Menus.InstantBuy.Confirm) + .addLoreLine(Translations.Menus.InstantBuy.Confirm$0(amount, getProduct())) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$instantBuy$averagePrice(amount, originalPricePerUnit)) - .addLoreLine(Translations.menus$instantBuy$minimumBalance(moneyToSpend)) - .addLoreLine(Translations.menus$instantBuy$0) - .addLoreLine(Translations.menus$instantBuy$1) + .addLoreLine(Translations.Menus.InstantBuy.AveragePrice(amount, originalPricePerUnit)) + .addLoreLine(Translations.Menus.InstantBuy.MinimumBalance(moneyToSpend)) + .addLoreLine(Translations.Menus.InstantBuy.GuideText$0) + .addLoreLine(Translations.Menus.InstantBuy.GuideText$1) .addLoreLine(Text.empty()) .addLoreLine(canBuy - ? Translations.menus$instantBuy$clickToBuy - : Translations.menus$instantBuy$noBuy) + ? Translations.Menus.InstantBuy.ClickToBuy + : Translations.Menus.InstantBuy.NoBuy) .setCallback((index, type, action, gui) -> { close(); var provider = StonksFabric.getServiceProvider(getPlayer()); var adapter = provider.getStonksAdapter(); if (adapter.accountBalance(getPlayer()) < moneyToSpend) { - getPlayer().sendMessage(Translations.messages$noMoneyToInstantBuy(moneyToSpend), true); + getPlayer().sendMessage(Translations.Messages.NoMoneyToInstantBuy(moneyToSpend), true); close(); return; } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyMenu.java index b92ae59..0f70d9d 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyMenu.java @@ -47,7 +47,7 @@ public InstantBuyMenu(StackedMenu previous, ServerPlayerEntity player, Product p this.originalPricePerUnit = originalPricePerUnit; this.instantPricePerUnit = instantPricePerUnit; - setTitle(Translations.menus$instantBuy(product)); + setTitle(Translations.Menus.InstantBuy._InstantBuy(product)); placeBuyButtons(); } @@ -66,17 +66,17 @@ public void placeBuyButtons() { setSlot(23, createInstantBuyButton(balance, 1024, Items.GOLD_BLOCK)); setSlot(25, new GuiElementBuilder(Items.DARK_OAK_SIGN) - .setName(Translations.menus$instantBuy$customAmount) + .setName(Translations.Menus.InstantBuy.CustomAmount) .addLoreLine(Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$instantBuy$customAmount$0) + .addLoreLine(Translations.Menus.InstantBuy.CustomAmount$0) .setCallback((index, type, action, gui) -> new OfferInstantBuyAmountInput(player, this).open())); } public void blockBuyButtons() { var blockIcon = new GuiElementBuilder(Items.BARRIER) - .setName(Translations.menus$instantBuy$buying) - .addLoreLine(Translations.menus$instantBuy$buying$0); + .setName(Translations.Menus.InstantBuy.Buying) + .addLoreLine(Translations.Menus.InstantBuy.Buying$0); setSlot(19, blockIcon); setSlot(20, blockIcon); setSlot(21, blockIcon); @@ -90,24 +90,24 @@ public GuiElementBuilder createInstantBuyButton(double balance, int amount, Item var canBuy = balance >= moneyToSpend; return new GuiElementBuilder(canBuy ? icon : Items.BARRIER, Math.min(Math.max(amount / 64, 1), 64)) - .setName(Translations.menus$instantBuy$fixedAmount(amount)) + .setName(Translations.Menus.InstantBuy.FixedAmount(amount)) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$instantBuy$averagePrice(amount, originalPricePerUnit)) - .addLoreLine(Translations.menus$instantBuy$minimumBalance(moneyToSpend)) + .addLoreLine(Translations.Menus.InstantBuy.AveragePrice(amount, originalPricePerUnit)) + .addLoreLine(Translations.Menus.InstantBuy.MinimumBalance(moneyToSpend)) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$instantBuy$0) - .addLoreLine(Translations.menus$instantBuy$1) + .addLoreLine(Translations.Menus.InstantBuy.GuideText$0) + .addLoreLine(Translations.Menus.InstantBuy.GuideText$1) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$instantBuy$holdShift) + .addLoreLine(Translations.Menus.InstantBuy.HoldShift) .addLoreLine(canBuy - ? Translations.menus$instantBuy$clickToBuy - : Translations.menus$instantBuy$noBuy) + ? Translations.Menus.InstantBuy.ClickToBuy + : Translations.Menus.InstantBuy.NoBuy) .setCallback((index, type, action, gui) -> { var provider = StonksFabric.getServiceProvider(getPlayer()); var adapter = provider.getStonksAdapter(); if (adapter.accountBalance(getPlayer()) < moneyToSpend) { - getPlayer().sendMessage(Translations.messages$noMoneyToInstantBuy(moneyToSpend), true); + getPlayer().sendMessage(Translations.Messages.NoMoneyToInstantBuy(moneyToSpend), true); close(); return; } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/OfferAmountConfigureMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/OfferAmountConfigureMenu.java index 8287388..0b78024 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/OfferAmountConfigureMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/OfferAmountConfigureMenu.java @@ -49,8 +49,8 @@ public OfferAmountConfigureMenu(StackedMenu previous, ServerPlayerEntity player, this.overview = overview; setTitle(offerType == OfferType.BUY - ? Translations.menus$createOffer$buy(product) - : Translations.menus$createOffer$sell(product)); + ? Translations.Menus.CreateOffer.Title$Buy(product) + : Translations.Menus.CreateOffer.Title$Sell(product)); var icons = switch (offerType) { case BUY -> new Item[] { Items.IRON_INGOT, Items.DIAMOND, Items.DIAMOND_BLOCK }; @@ -66,10 +66,10 @@ public OfferAmountConfigureMenu(StackedMenu previous, ServerPlayerEntity player, setSlot(23, createOfferSelectButton(offerType == OfferType.BUY ? 4096 : -1, icons[2])); setSlot(25, new GuiElementBuilder(Items.DARK_OAK_SIGN) - .setName(Translations.menus$createOffer$customAmount) + .setName(Translations.Menus.CreateOffer.CustomAmount) .addLoreLine(Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$createOffer$clickForAmount) + .addLoreLine(Translations.Menus.CreateOffer.ClickForAmount) .setCallback((index, type, action, gui) -> new OfferSelectCustomAmountInput(player, this).open())); } @@ -95,17 +95,17 @@ private GuiElementBuilder createOfferSelectButton(int amount, Item icon) { var amount2 = amount; var buttonName = offerType == OfferType.BUY - ? Translations.menus$createOffer$buyFixed(amount) - : fillAll ? Translations.menus$createOffer$sellAll - : Translations.menus$createOffer$sellFixed(amount); + ? Translations.Menus.CreateOffer.BuyFixed(amount) + : fillAll ? Translations.Menus.CreateOffer.SellAll + : Translations.Menus.CreateOffer.SellFixed(amount); return new GuiElementBuilder(disabled ? Items.BARRIER : icon, Math.min(Math.max(amount / 64, 1), 64)) .setName(buttonName) .addLoreLine(Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))) .addLoreLine(Text.empty()) .addLoreLine(disabled - ? Translations.menus$createOffer$noOfferForYou - : Translations.menus$createOffer$clickForPrice) + ? Translations.Menus.CreateOffer.NoOfferForYou + : Translations.Menus.CreateOffer.ClickForPrice) .setCallback((index, type, action, gui) -> { if (disabled) return; new OfferPriceConfigureMenu(this, getPlayer(), getOfferType(), amount2, getOverview()).open(); diff --git a/fabric/src/main/java/stonks/fabric/menu/product/OfferConfirmMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/OfferConfirmMenu.java index c35a64e..d5c5d99 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/OfferConfirmMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/OfferConfirmMenu.java @@ -40,7 +40,7 @@ public class OfferConfirmMenu extends StackedMenu { public OfferConfirmMenu(StackedMenu previous, ServerPlayerEntity player, Product product, OfferType offerType, int amount, double pricePerUnit) { super(previous, ScreenHandlerType.GENERIC_9X4, player, false); - setTitle(Translations.menus$confirmOffer); + setTitle(Translations.Menus.ConfirmOffer.ConfirmOffer); setSlot(7, GuiElementBuilder.from(StonksFabric.getServiceProvider(getPlayer()) .getStonksAdapter() @@ -52,16 +52,16 @@ public OfferConfirmMenu(StackedMenu previous, ServerPlayerEntity player, Product setSlot(22, new GuiElementBuilder(Items.GREEN_TERRACOTTA) .setName(offerType == OfferType.BUY - ? Translations.menus$confirmOffer$buy - : Translations.menus$confirmOffer$sell) + ? Translations.Menus.ConfirmOffer.Buy + : Translations.Menus.ConfirmOffer.Sell) .addLoreLine(Text.empty()) .addLoreLine(offerType == OfferType.BUY - ? Translations.menus$confirmOffer$buying(product, amount) - : Translations.menus$confirmOffer$selling(product, amount)) - .addLoreLine(Translations.menus$confirmOffer$pricePerUnit(pricePerUnit)) - .addLoreLine(Translations.menus$confirmOffer$totalPrice(amount, pricePerUnit)) + ? Translations.Menus.ConfirmOffer.Buying(product, amount) + : Translations.Menus.ConfirmOffer.Selling(product, amount)) + .addLoreLine(Translations.Menus.ConfirmOffer.PricePerUnit(pricePerUnit)) + .addLoreLine(Translations.Menus.ConfirmOffer.TotalPrice(amount, pricePerUnit)) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$confirmOffer$clickToConfirm) + .addLoreLine(Translations.Menus.ConfirmOffer.ClickToConfirm) .setCallback((index, type, action, gui) -> { close(); StonksFabricHelper.placeOffer(player, product, offerType, amount, pricePerUnit); diff --git a/fabric/src/main/java/stonks/fabric/menu/product/OfferPriceConfigureMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/OfferPriceConfigureMenu.java index 5e62482..b8f982d 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/OfferPriceConfigureMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/OfferPriceConfigureMenu.java @@ -52,8 +52,8 @@ public OfferPriceConfigureMenu(StackedMenu previous, ServerPlayerEntity player, product = overview.getProduct(); setTitle(offerType == OfferType.BUY - ? Translations.menus$createOffer$buy(product) - : Translations.menus$createOffer$sell(product)); + ? Translations.Menus.CreateOffer.Title$Buy(product) + : Translations.Menus.CreateOffer.Title$Sell(product)); setSlot(7, GuiElementBuilder.from(StonksFabric.getServiceProvider(getPlayer()) .getStonksAdapter() @@ -98,25 +98,25 @@ private void placeOfferButtons() { var averageOffer = computed.map(v -> v.average()); var topOfferTextDelta = switch (offerType) { - case BUY -> Translations.menus$createOffer$topBuyDelta(delta); - case SELL -> Translations.menus$createOffer$topSellDelta(delta); + case BUY -> Translations.Menus.CreateOffer.TopBuyDelta(delta); + case SELL -> Translations.Menus.CreateOffer.TopSellDelta(delta); }; var totalTextDelta = switch (offerType) { - case BUY -> Translations.menus$createOffer$totalSpending(topOfferDelta, amount); - case SELL -> Translations.menus$createOffer$totalEarning(topOfferDelta, amount); + case BUY -> Translations.Menus.CreateOffer.TotalSpending(topOfferDelta, amount); + case SELL -> Translations.Menus.CreateOffer.TotalEarning(topOfferDelta, amount); }; setSlot(19, new GuiElementBuilder(computed.isPresent() ? Items.GOLD_INGOT : Items.BARRIER) .setName(topOfferTextDelta) - .addLoreLine(Translations.menus$createOffer$topOfferDelta) + .addLoreLine(Translations.Menus.CreateOffer.TopOfferDelta) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$createOffer$topOfferPrice(topOfferPPU)) - .addLoreLine(Translations.menus$createOffer$yourOfferPrice(topOfferDelta)) + .addLoreLine(Translations.Menus.CreateOffer.TopOfferPrice(topOfferPPU)) + .addLoreLine(Translations.Menus.CreateOffer.YourOfferPrice(topOfferDelta)) .addLoreLine(totalTextDelta) .addLoreLine(Text.empty()) .addLoreLine(topOfferDelta.isPresent() - ? Translations.menus$createOffer$clickForConfirmation - : Translations.menus$createOffer$noOfferForYou) + ? Translations.Menus.CreateOffer.ClickForConfirmation + : Translations.Menus.CreateOffer.NoOfferForYou) .setCallback((index, type, action, gui) -> { if (!topOfferDelta.isPresent()) return; new OfferConfirmMenu(this, getPlayer(), getProduct(), getOfferType(), amount, topOfferDelta.get()) @@ -124,19 +124,19 @@ private void placeOfferButtons() { })); var totalTextTop = switch (offerType) { - case BUY -> Translations.menus$createOffer$totalSpending(topOfferPPU, amount); - case SELL -> Translations.menus$createOffer$totalEarning(topOfferPPU, amount); + case BUY -> Translations.Menus.CreateOffer.TotalSpending(topOfferPPU, amount); + case SELL -> Translations.Menus.CreateOffer.TotalEarning(topOfferPPU, amount); }; setSlot(21, new GuiElementBuilder(topOfferPPU.isPresent() ? Items.GOLD_BLOCK : Items.BARRIER) - .setName(Translations.menus$createOffer$sameAsTopOffer) + .setName(Translations.Menus.CreateOffer.SameAsTopOffer) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$createOffer$topOfferPrice(topOfferPPU)) + .addLoreLine(Translations.Menus.CreateOffer.TopOfferPrice(topOfferPPU)) .addLoreLine(totalTextTop) .addLoreLine(Text.empty()) .addLoreLine(topOfferPPU.isPresent() - ? Translations.menus$createOffer$clickForConfirmation - : Translations.menus$createOffer$noOfferForYou) + ? Translations.Menus.CreateOffer.ClickForConfirmation + : Translations.Menus.CreateOffer.NoOfferForYou) .setCallback((index, type, action, gui) -> { if (!topOfferPPU.isPresent()) return; new OfferConfirmMenu(this, getPlayer(), getProduct(), getOfferType(), amount, topOfferPPU.get()) @@ -144,19 +144,19 @@ private void placeOfferButtons() { })); var totalTextAverage = switch (offerType) { - case BUY -> Translations.menus$createOffer$totalSpending(averageOffer, amount); - case SELL -> Translations.menus$createOffer$totalEarning(averageOffer, amount); + case BUY -> Translations.Menus.CreateOffer.TotalSpending(averageOffer, amount); + case SELL -> Translations.Menus.CreateOffer.TotalEarning(averageOffer, amount); }; setSlot(23, new GuiElementBuilder(averageOffer.isPresent() ? Items.CHEST : Items.BARRIER) - .setName(Translations.menus$createOffer$averageOfTopOffers) + .setName(Translations.Menus.CreateOffer.AverageOfTopOffers) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$createOffer$avgOfferPrice(averageOffer)) + .addLoreLine(Translations.Menus.CreateOffer.AvgOfferPrice(averageOffer)) .addLoreLine(totalTextAverage) .addLoreLine(Text.empty()) .addLoreLine(averageOffer.isPresent() - ? Translations.menus$createOffer$clickForConfirmation - : Translations.menus$createOffer$noOfferForYou) + ? Translations.Menus.CreateOffer.ClickForConfirmation + : Translations.Menus.CreateOffer.NoOfferForYou) .setCallback((index, type, action, gui) -> { if (!averageOffer.isPresent()) return; new OfferConfirmMenu(this, getPlayer(), getProduct(), getOfferType(), amount, averageOffer.get()) @@ -164,10 +164,10 @@ private void placeOfferButtons() { })); setSlot(25, new GuiElementBuilder(Items.DARK_OAK_SIGN) - .setName(Translations.menus$createOffer$customPrice) - .addLoreLine(Translations.menus$createOffer$customPrice$0) + .setName(Translations.Menus.CreateOffer.CustomPrice) + .addLoreLine(Translations.Menus.CreateOffer.CustomPrice$0) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$createOffer$clickForCustomPrice) + .addLoreLine(Translations.Menus.CreateOffer.ClickForCustomPrice) .setCallback((index, type, action, gui) -> new OfferCustomPriceInput(player, this).open())); } } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/ProductMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/ProductMenu.java index 7d0b4c9..740516f 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/ProductMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/ProductMenu.java @@ -53,7 +53,7 @@ public class ProductMenu extends StackedMenu { public ProductMenu(StackedMenu previous, ServerPlayerEntity player, Product product) { super(previous, ScreenHandlerType.GENERIC_9X4, player, false); - setTitle(Translations.menus$productInfo(product)); + setTitle(Translations.Menus.ProductInfo._ProductInfo(product)); this.product = product; this.queryTask = StonksFabric.getServiceProvider(getPlayer()).getStonksCache().getOverview(product).get(); @@ -97,8 +97,8 @@ public ItemStack createStackWhenLoaded(Optional computed, Th error.printStackTrace(); // TODO use message from UserException return new GuiElementBuilder(Items.BARRIER) - .setName(Translations.errors) - .addLoreLine(Translations.errors$quickPriceDetails) + .setName(Translations.Errors.Errors) + .addLoreLine(Translations.Errors.QuickPriceDetails) .asStack(); } @@ -106,20 +106,21 @@ public ItemStack createStackWhenLoaded(Optional computed, Th var tax = StonksFabric.getServiceProvider(getPlayer()).getPlatformConfig().tax; var out = new GuiElementBuilder(icon) .setName(type == OfferType.BUY - ? Translations.menus$productInfo$instantBuy(computed) - : Translations.menus$productInfo$instantSell(computed)) + ? Translations.Menus.ProductInfo.InstantBuy(computed) + : Translations.Menus.ProductInfo.InstantSell(computed)) .addLoreLine(Text.empty()) - .addLoreLine(Translations.menus$productInfo$topOfferedPrice(topPrice)) - .addLoreLine(Translations.menus$productInfo$avgOfferedPrice(computed)); + .addLoreLine(Translations.Menus.ProductInfo.TopOfferedPrice(topPrice)) + .addLoreLine(Translations.Menus.ProductInfo.AvgOfferedPrice(computed)); - if (type == OfferType.SELL && tax > 0d) out.addLoreLine(Translations.menus$productInfo$instantSellTax(tax)); + if (type == OfferType.SELL && tax > 0d) + out.addLoreLine(Translations.Menus.ProductInfo.InstantSellTax(tax)); return out .addLoreLine(Text.empty()) .addLoreLine(computed.isEmpty() - ? Translations.menus$productInfo$noOffers - : type == OfferType.BUY ? Translations.menus$productInfo$clickToInstantBuy - : Translations.menus$productInfo$clickToInstantSell) + ? Translations.Menus.ProductInfo.NoOffers + : type == OfferType.BUY ? Translations.Menus.ProductInfo.ClickToInstantBuy + : Translations.Menus.ProductInfo.ClickToInstantSell) .asStack(); } @@ -138,7 +139,8 @@ public void onSlotClick(int index, ClickType clickType, SlotActionType action, S var provider = StonksFabric.getServiceProvider(getPlayer()); var units = provider.getStonksAdapter().getUnits(getPlayer(), product); if (units <= 0) { - getPlayer().sendMessage(Translations.messages$noUnitsToInstantSell(product), true); + getPlayer().sendMessage(Translations.Messages.NoUnitsToInstantSell(product), + true); return; } @@ -161,28 +163,28 @@ public ItemStack createStackWhenLoaded(OverviewOffersList list, Throwable error) error.printStackTrace(); // TODO use message from UserException return new GuiElementBuilder(Items.BARRIER) - .setName(Translations.errors) - .addLoreLine(Translations.errors$quickPriceDetails) + .setName(Translations.Errors.Errors) + .addLoreLine(Translations.Errors.QuickPriceDetails) .asStack(); } var elem = new GuiElementBuilder(icon) .setName(type == OfferType.BUY - ? Translations.menus$productInfo$buyOffer - : Translations.menus$productInfo$sellOffer) + ? Translations.Menus.ProductInfo.BuyOffer + : Translations.Menus.ProductInfo.SellOffer) .addLoreLine(Text.empty()); if (list.getEntries().size() > 0) { for (var e : list.getEntries()) { elem.addLoreLine(StonksFabricUtils.offerText(type, e)); } } else { - elem.addLoreLine(Translations.menus$productInfo$noOffers); + elem.addLoreLine(Translations.Menus.ProductInfo.NoOffers); } return elem .addLoreLine(Text.empty()) .addLoreLine(list.getEntries().size() == 0 - ? Translations.menus$productInfo$makeOffer$noOffers - : Translations.menus$productInfo$makeOffer) + ? Translations.Menus.ProductInfo.MakeOffer$NoOffers + : Translations.Menus.ProductInfo.MakeOffer) .asStack(); } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferCustomPriceInput.java b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferCustomPriceInput.java index 6f41a97..82f2790 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferCustomPriceInput.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferCustomPriceInput.java @@ -42,11 +42,11 @@ public OfferCustomPriceInput(ServerPlayerEntity player, OfferPriceConfigureMenu setSignType(Blocks.DARK_OAK_SIGN); setColor(DyeColor.WHITE); setLine(0, Text.empty()); - setLine(1, Translations.signInputs$separator); - setLine(2, Translations.signInputs$priceInput); + setLine(1, Translations.SignInputs.Separator); + setLine(2, Translations.SignInputs.PriceInput); setLine(3, menu.getOfferType() == OfferType.BUY - ? Translations.signInputs$currentBuyTarget(menu.getAmount(), menu.getProduct()) - : Translations.signInputs$currentSellTarget(menu.getAmount(), menu.getProduct())); + ? Translations.SignInputs.CurrentBuyTarget(menu.getAmount(), menu.getProduct()) + : Translations.SignInputs.CurrentSellTarget(menu.getAmount(), menu.getProduct())); } public OfferPriceConfigureMenu getMenu() { return menu; } @@ -74,7 +74,7 @@ public void onClose() { var price = base * mul; if (price <= 0) { - getPlayer().sendMessage(Translations.messages$priceMoreThanZero, true); + getPlayer().sendMessage(Translations.Messages.PriceMoreThanZero, true); return; } @@ -84,13 +84,13 @@ public void onClose() { var totalPrice = price * menu.getAmount(); if (menu.getOfferType() == OfferType.BUY && totalPrice > balance) { - getPlayer().sendMessage(Translations.messages$notEnoughMoney(balance, totalPrice)); + getPlayer().sendMessage(Translations.Messages.NotEnoughMoney(balance, totalPrice)); } new OfferConfirmMenu(menu, player, menu.getProduct(), menu.getOfferType(), menu.getAmount(), price) .open(); } catch (NumberFormatException e) { - getPlayer().sendMessage(Translations.messages$invaildInput(input), true); + getPlayer().sendMessage(Translations.Messages.InvaildInput(input), true); } } } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferInstantBuyAmountInput.java b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferInstantBuyAmountInput.java index 05d2a90..89e2355 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferInstantBuyAmountInput.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferInstantBuyAmountInput.java @@ -41,9 +41,9 @@ public OfferInstantBuyAmountInput(ServerPlayerEntity player, InstantBuyMenu menu setSignType(Blocks.DARK_OAK_SIGN); setColor(DyeColor.WHITE); setLine(0, Text.empty()); - setLine(1, Translations.signInputs$separator); - setLine(2, Translations.signInputs$amountInput); - setLine(3, Translations.signInputs$currentBuyTarget(menu.getProduct())); + setLine(1, Translations.SignInputs.Separator); + setLine(2, Translations.SignInputs.AmountInput); + setLine(3, Translations.SignInputs.CurrentBuyTarget(menu.getProduct())); } public InstantBuyMenu getMenu() { return menu; } @@ -67,7 +67,7 @@ public void onClose() { var amount = base * mul; if (amount <= 0) { - getPlayer().sendMessage(Translations.messages$amountAtLeastOne, true); + getPlayer().sendMessage(Translations.Messages.AmountAtLeastOne, true); return; } @@ -77,7 +77,7 @@ public void onClose() { var totalPrice = menu.getInstantPricePerUnit() * amount; if (balance < totalPrice) { - getPlayer().sendMessage(Translations.messages$notEnoughMoney(balance, totalPrice), true); + getPlayer().sendMessage(Translations.Messages.NotEnoughMoney(balance, totalPrice), true); return; } @@ -85,7 +85,7 @@ public void onClose() { .getInstantPricePerUnit()) .open(); } catch (NumberFormatException e) { - getPlayer().sendMessage(Translations.messages$invaildInput(input), true); + getPlayer().sendMessage(Translations.Messages.InvaildInput(input), true); } } } diff --git a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferSelectCustomAmountInput.java b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferSelectCustomAmountInput.java index bf98772..ea9e606 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferSelectCustomAmountInput.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferSelectCustomAmountInput.java @@ -42,11 +42,11 @@ public OfferSelectCustomAmountInput(ServerPlayerEntity player, OfferAmountConfig setSignType(Blocks.DARK_OAK_SIGN); setColor(DyeColor.WHITE); setLine(0, Text.empty()); - setLine(1, Translations.signInputs$separator); - setLine(2, Translations.signInputs$amountInput); + setLine(1, Translations.SignInputs.Separator); + setLine(2, Translations.SignInputs.AmountInput); setLine(3, menu.getOfferType() == OfferType.BUY - ? Translations.signInputs$currentBuyTarget(menu.getProduct()) - : Translations.signInputs$currentSellTarget(menu.getProduct())); + ? Translations.SignInputs.CurrentBuyTarget(menu.getProduct()) + : Translations.SignInputs.CurrentSellTarget(menu.getProduct())); } public OfferAmountConfigureMenu getMenu() { return menu; } @@ -70,7 +70,7 @@ public void onClose() { var amount = base * mul; if (amount <= 0) { - getPlayer().sendMessage(Translations.messages$amountAtLeastOne, true); + getPlayer().sendMessage(Translations.Messages.AmountAtLeastOne, true); return; } @@ -78,14 +78,14 @@ public void onClose() { .getStonksAdapter() .getUnits(getPlayer(), getMenu().getProduct()); if (menu.getOfferType() == OfferType.SELL && amount > currentAmount) { - getPlayer().sendMessage(Translations.messages$notEnoughItems(currentAmount, amount), true); + getPlayer().sendMessage(Translations.Messages.NotEnoughItems(currentAmount, amount), true); return; } var type = getMenu().getOfferType(); new OfferPriceConfigureMenu(getMenu(), getPlayer(), type, amount, getMenu().getOverview()).open(); } catch (NumberFormatException e) { - getPlayer().sendMessage(Translations.messages$invaildInput(input), true); + getPlayer().sendMessage(Translations.Messages.InvaildInput(input), true); } } } From 5efa8b499547219e35c0cc6bcfa16ce7a6e450e9 Mon Sep 17 00:00:00 2001 From: nahkd123 Date: Sat, 12 Aug 2023 13:25:17 +0700 Subject: [PATCH 3/5] Move Translations into stonks.fabric.translation package --- fabric/src/main/java/stonks/fabric/StonksFabricHelper.java | 1 + fabric/src/main/java/stonks/fabric/StonksFabricUtils.java | 1 + fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java | 6 +++--- fabric/src/main/java/stonks/fabric/menu/MenuIcons.java | 2 +- .../stonks/fabric/menu/handling/WaitableGuiElement.java | 2 +- .../main/java/stonks/fabric/menu/player/OfferInfoMenu.java | 2 +- .../main/java/stonks/fabric/menu/player/ViewOffersMenu.java | 6 +++--- .../stonks/fabric/menu/product/InstantBuyConfirmMenu.java | 2 +- .../java/stonks/fabric/menu/product/InstantBuyMenu.java | 2 +- .../fabric/menu/product/OfferAmountConfigureMenu.java | 2 +- .../java/stonks/fabric/menu/product/OfferConfirmMenu.java | 2 +- .../stonks/fabric/menu/product/OfferPriceConfigureMenu.java | 2 +- .../main/java/stonks/fabric/menu/product/ProductMenu.java | 2 +- .../fabric/menu/product/input/OfferCustomPriceInput.java | 2 +- .../menu/product/input/OfferInstantBuyAmountInput.java | 2 +- .../menu/product/input/OfferSelectCustomAmountInput.java | 2 +- .../java/stonks/fabric/{ => translation}/Translations.java | 4 +++- 17 files changed, 23 insertions(+), 19 deletions(-) rename fabric/src/main/java/stonks/fabric/{ => translation}/Translations.java (99%) diff --git a/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java b/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java index 874d189..5a6670b 100644 --- a/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java +++ b/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java @@ -31,6 +31,7 @@ import stonks.core.market.Offer; import stonks.core.market.OfferType; import stonks.core.product.Product; +import stonks.fabric.translation.Translations; public class StonksFabricHelper { public static Task instantOffer(ServerPlayerEntity player, Product product, OfferType type, int units, double balance) { diff --git a/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java b/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java index 36318f4..41a424a 100644 --- a/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java +++ b/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java @@ -33,6 +33,7 @@ import net.minecraft.util.Formatting; import stonks.core.market.OfferType; import stonks.core.market.OverviewOffer; +import stonks.fabric.translation.Translations; public class StonksFabricUtils { public static Text progressBar(int width, Formatting background, double[] progress, Formatting[] colors) { diff --git a/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java b/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java index 6543571..0540a77 100644 --- a/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java @@ -39,11 +39,11 @@ import stonks.core.product.Category; import stonks.core.product.Product; import stonks.fabric.StonksFabric; -import stonks.fabric.Translations; -import stonks.fabric.Translations.Errors; -import stonks.fabric.Translations.Menus.MainMenu; import stonks.fabric.menu.handling.WaitableGuiElement; import stonks.fabric.menu.product.ProductMenu; +import stonks.fabric.translation.Translations; +import stonks.fabric.translation.Translations.Errors; +import stonks.fabric.translation.Translations.Menus.MainMenu; public class MarketMainMenu extends StackedMenu { private static final int CATEGORIES_PER_PAGE = 5; diff --git a/fabric/src/main/java/stonks/fabric/menu/MenuIcons.java b/fabric/src/main/java/stonks/fabric/menu/MenuIcons.java index 21789dc..7b92603 100644 --- a/fabric/src/main/java/stonks/fabric/menu/MenuIcons.java +++ b/fabric/src/main/java/stonks/fabric/menu/MenuIcons.java @@ -23,8 +23,8 @@ import eu.pb4.sgui.api.elements.GuiElementBuilder; import net.minecraft.item.Items; -import stonks.fabric.Translations; import stonks.fabric.menu.player.ViewOffersMenu; +import stonks.fabric.translation.Translations; public class MenuIcons { public static final GuiElementBuilder BORDER = new GuiElementBuilder(Items.BLACK_STAINED_GLASS_PANE) diff --git a/fabric/src/main/java/stonks/fabric/menu/handling/WaitableGuiElement.java b/fabric/src/main/java/stonks/fabric/menu/handling/WaitableGuiElement.java index c69aa4a..327f1fa 100644 --- a/fabric/src/main/java/stonks/fabric/menu/handling/WaitableGuiElement.java +++ b/fabric/src/main/java/stonks/fabric/menu/handling/WaitableGuiElement.java @@ -33,7 +33,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.screen.slot.SlotActionType; -import stonks.fabric.Translations.Icons; +import stonks.fabric.translation.Translations.Icons; public abstract class WaitableGuiElement implements GuiElementInterface { protected static final ItemStack[] LOADING = Stream diff --git a/fabric/src/main/java/stonks/fabric/menu/player/OfferInfoMenu.java b/fabric/src/main/java/stonks/fabric/menu/player/OfferInfoMenu.java index e8fd573..db0614d 100644 --- a/fabric/src/main/java/stonks/fabric/menu/player/OfferInfoMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/player/OfferInfoMenu.java @@ -31,9 +31,9 @@ import stonks.core.market.Offer; import stonks.core.market.OfferType; import stonks.fabric.StonksFabric; -import stonks.fabric.Translations; import stonks.fabric.menu.MenuIcons; import stonks.fabric.menu.StackedMenu; +import stonks.fabric.translation.Translations; public class OfferInfoMenu extends StackedMenu { private Offer offer; diff --git a/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java b/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java index d058285..6b6b356 100644 --- a/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java @@ -33,12 +33,12 @@ import stonks.core.market.Offer; import stonks.core.market.OfferType; import stonks.fabric.StonksFabric; -import stonks.fabric.Translations; -import stonks.fabric.Translations.Errors; -import stonks.fabric.Translations.Icons; import stonks.fabric.menu.MenuIcons; import stonks.fabric.menu.StackedMenu; import stonks.fabric.menu.handling.WaitableGuiElement; +import stonks.fabric.translation.Translations; +import stonks.fabric.translation.Translations.Errors; +import stonks.fabric.translation.Translations.Icons; public class ViewOffersMenu extends StackedMenu { private Cached> offersCache; diff --git a/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyConfirmMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyConfirmMenu.java index ae6fc0b..b51f38b 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyConfirmMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyConfirmMenu.java @@ -31,8 +31,8 @@ import stonks.core.product.Product; import stonks.fabric.StonksFabric; import stonks.fabric.StonksFabricHelper; -import stonks.fabric.Translations; import stonks.fabric.menu.StackedMenu; +import stonks.fabric.translation.Translations; public class InstantBuyConfirmMenu extends StackedMenu { private Product product; diff --git a/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyMenu.java index 0f70d9d..ec1c774 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/InstantBuyMenu.java @@ -32,9 +32,9 @@ import stonks.core.product.Product; import stonks.fabric.StonksFabric; import stonks.fabric.StonksFabricHelper; -import stonks.fabric.Translations; import stonks.fabric.menu.StackedMenu; import stonks.fabric.menu.product.input.OfferInstantBuyAmountInput; +import stonks.fabric.translation.Translations; public class InstantBuyMenu extends StackedMenu { private Product product; diff --git a/fabric/src/main/java/stonks/fabric/menu/product/OfferAmountConfigureMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/OfferAmountConfigureMenu.java index 0b78024..691251f 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/OfferAmountConfigureMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/OfferAmountConfigureMenu.java @@ -32,10 +32,10 @@ import stonks.core.market.ProductMarketOverview; import stonks.core.product.Product; import stonks.fabric.StonksFabric; -import stonks.fabric.Translations; import stonks.fabric.menu.MenuIcons; import stonks.fabric.menu.StackedMenu; import stonks.fabric.menu.product.input.OfferSelectCustomAmountInput; +import stonks.fabric.translation.Translations; public class OfferAmountConfigureMenu extends StackedMenu { private Product product; diff --git a/fabric/src/main/java/stonks/fabric/menu/product/OfferConfirmMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/OfferConfirmMenu.java index d5c5d99..9a7c63c 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/OfferConfirmMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/OfferConfirmMenu.java @@ -33,9 +33,9 @@ import stonks.core.product.Product; import stonks.fabric.StonksFabric; import stonks.fabric.StonksFabricHelper; -import stonks.fabric.Translations; import stonks.fabric.menu.MenuIcons; import stonks.fabric.menu.StackedMenu; +import stonks.fabric.translation.Translations; public class OfferConfirmMenu extends StackedMenu { public OfferConfirmMenu(StackedMenu previous, ServerPlayerEntity player, Product product, OfferType offerType, int amount, double pricePerUnit) { diff --git a/fabric/src/main/java/stonks/fabric/menu/product/OfferPriceConfigureMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/OfferPriceConfigureMenu.java index b8f982d..5791a97 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/OfferPriceConfigureMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/OfferPriceConfigureMenu.java @@ -33,10 +33,10 @@ import stonks.core.market.ProductMarketOverview; import stonks.core.product.Product; import stonks.fabric.StonksFabric; -import stonks.fabric.Translations; import stonks.fabric.menu.MenuIcons; import stonks.fabric.menu.StackedMenu; import stonks.fabric.menu.product.input.OfferCustomPriceInput; +import stonks.fabric.translation.Translations; public class OfferPriceConfigureMenu extends StackedMenu { private Product product; diff --git a/fabric/src/main/java/stonks/fabric/menu/product/ProductMenu.java b/fabric/src/main/java/stonks/fabric/menu/product/ProductMenu.java index 740516f..32caac6 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/ProductMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/ProductMenu.java @@ -42,10 +42,10 @@ import stonks.fabric.StonksFabric; import stonks.fabric.StonksFabricHelper; import stonks.fabric.StonksFabricUtils; -import stonks.fabric.Translations; import stonks.fabric.menu.MenuIcons; import stonks.fabric.menu.StackedMenu; import stonks.fabric.menu.handling.WaitableGuiElement; +import stonks.fabric.translation.Translations; public class ProductMenu extends StackedMenu { private Product product; diff --git a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferCustomPriceInput.java b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferCustomPriceInput.java index 82f2790..cdab86b 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferCustomPriceInput.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferCustomPriceInput.java @@ -28,9 +28,9 @@ import net.minecraft.util.DyeColor; import stonks.core.market.OfferType; import stonks.fabric.StonksFabric; -import stonks.fabric.Translations; import stonks.fabric.menu.product.OfferConfirmMenu; import stonks.fabric.menu.product.OfferPriceConfigureMenu; +import stonks.fabric.translation.Translations; public class OfferCustomPriceInput extends SignGui { private OfferPriceConfigureMenu menu; diff --git a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferInstantBuyAmountInput.java b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferInstantBuyAmountInput.java index 89e2355..f94ccf1 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferInstantBuyAmountInput.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferInstantBuyAmountInput.java @@ -27,9 +27,9 @@ import net.minecraft.text.Text; import net.minecraft.util.DyeColor; import stonks.fabric.StonksFabric; -import stonks.fabric.Translations; import stonks.fabric.menu.product.InstantBuyConfirmMenu; import stonks.fabric.menu.product.InstantBuyMenu; +import stonks.fabric.translation.Translations; public class OfferInstantBuyAmountInput extends SignGui { private InstantBuyMenu menu; diff --git a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferSelectCustomAmountInput.java b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferSelectCustomAmountInput.java index ea9e606..1da8133 100644 --- a/fabric/src/main/java/stonks/fabric/menu/product/input/OfferSelectCustomAmountInput.java +++ b/fabric/src/main/java/stonks/fabric/menu/product/input/OfferSelectCustomAmountInput.java @@ -28,9 +28,9 @@ import net.minecraft.util.DyeColor; import stonks.core.market.OfferType; import stonks.fabric.StonksFabric; -import stonks.fabric.Translations; import stonks.fabric.menu.product.OfferAmountConfigureMenu; import stonks.fabric.menu.product.OfferPriceConfigureMenu; +import stonks.fabric.translation.Translations; public class OfferSelectCustomAmountInput extends SignGui { private OfferAmountConfigureMenu menu; diff --git a/fabric/src/main/java/stonks/fabric/Translations.java b/fabric/src/main/java/stonks/fabric/translation/Translations.java similarity index 99% rename from fabric/src/main/java/stonks/fabric/Translations.java rename to fabric/src/main/java/stonks/fabric/translation/Translations.java index 1b243b6..fccd0f1 100644 --- a/fabric/src/main/java/stonks/fabric/Translations.java +++ b/fabric/src/main/java/stonks/fabric/translation/Translations.java @@ -19,7 +19,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package stonks.fabric; +package stonks.fabric.translation; import static net.minecraft.text.Text.translatableWithFallback; @@ -31,6 +31,8 @@ import stonks.core.market.ComputedOffersList; import stonks.core.market.Offer; import stonks.core.product.Product; +import stonks.fabric.PlatformConfig; +import stonks.fabric.StonksFabricUtils; public final class Translations { // @formatter:off From cecd0391499a4d8bae544027c03660c4ac01b749 Mon Sep 17 00:00:00 2001 From: nahkd123 Date: Sat, 12 Aug 2023 14:18:29 +0700 Subject: [PATCH 4/5] Refactor Translations --- .../stonks/fabric/StonksFabricHelper.java | 45 +++--------- .../java/stonks/fabric/StonksFabricUtils.java | 8 +-- .../fabric/translation/Translations.java | 68 ++++++++++--------- 3 files changed, 49 insertions(+), 72 deletions(-) diff --git a/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java b/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java index 5a6670b..22208cb 100644 --- a/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java +++ b/fabric/src/main/java/stonks/fabric/StonksFabricHelper.java @@ -21,13 +21,9 @@ */ package stonks.fabric; -import java.util.Optional; - import nahara.common.tasks.Task; import net.minecraft.server.MinecraftServer; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.text.Text; -import net.minecraft.util.Formatting; import stonks.core.market.Offer; import stonks.core.market.OfferType; import stonks.core.product.Product; @@ -57,8 +53,6 @@ public static Task instantOffer(ServerPlayerEntity player, Product product return; } - var productNameText = Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.AQUA)); - if (type == OfferType.BUY) { var unitsLeft = result.units(); var unitsBought = units - unitsLeft; @@ -68,16 +62,10 @@ public static Task instantOffer(ServerPlayerEntity player, Product product provider.getStonksAdapter().accountDeposit(player, moneyLeft); provider.getStonksAdapter().addUnitsTo(player, product, unitsBought); - var amountText = Text.literal(Integer.toString(unitsBought)) - .styled(s -> s.withColor(Formatting.AQUA)); - var moneySpentText = StonksFabricUtils.currencyText(Optional.of(moneySpent), true); - var unitsLeftText = Text.literal(Integer.toString(unitsLeft)) - .styled(s -> s.withColor(Formatting.AQUA)); - var text = unitsLeft == 0 - ? Translations.Messages.Bought(amountText, productNameText, moneySpentText) - : Translations.Messages.BoughtWithExtras(amountText, productNameText, moneySpentText, - unitsLeftText); - player.sendMessage(text, true); + player.sendMessage(unitsLeft == 0 + ? Translations.Messages.Bought(unitsBought, product, moneySpent) + : Translations.Messages.BoughtWithExtras(unitsBought, product, moneySpent, unitsLeft), + true); } else { var config = StonksFabric.getServiceProvider(player).getPlatformConfig(); var unitsLeft = result.units(); @@ -87,16 +75,10 @@ public static Task instantOffer(ServerPlayerEntity player, Product product provider.getStonksAdapter().accountDeposit(player, earnings); provider.getStonksAdapter().addUnitsTo(player, product, unitsLeft); - var amountText = Text.literal(Integer.toString(unitsSold)) - .styled(s -> s.withColor(Formatting.AQUA)); - var moneyReceivedText = StonksFabricUtils.currencyText(Optional.of(earnings), true); - var unitsLeftText = Text.literal(Integer.toString(unitsLeft)) - .styled(s -> s.withColor(Formatting.AQUA)); - var text = unitsLeft == 0 - ? Translations.Messages.Sold(amountText, productNameText, moneyReceivedText) - : Translations.Messages.SoldWithExtras(amountText, productNameText, moneyReceivedText, - unitsLeftText); - player.sendMessage(text, true); + player.sendMessage(unitsLeft == 0 + ? Translations.Messages.Sold(unitsSold, product, earnings) + : Translations.Messages.SoldWithExtras(unitsSold, product, earnings, unitsLeft), + true); } }); @@ -150,16 +132,9 @@ public static void placeOffer(ServerPlayerEntity player, Product product, OfferT return; } - var unitsText = Text.literal(Integer.toString(units)).styled(s -> s.withColor(Formatting.AQUA)); - var productNameText = Text.literal(product.getProductName()) - .styled(s -> s.withColor(Formatting.AQUA)); - var totalPriceText = StonksFabricUtils.currencyText(Optional.of(totalPrice), true); - var pricePerUnitText = StonksFabricUtils.currencyText(Optional.of(pricePerUnit), true); player.sendMessage(offer.getType() == OfferType.BUY - ? Translations.Messages.PlacedBuyOffer(unitsText, productNameText, totalPriceText, - pricePerUnitText) - : Translations.Messages.PlacedSellOffer(unitsText, productNameText, totalPriceText, - pricePerUnitText), + ? Translations.Messages.PlacedBuyOffer(units, product, totalPrice, pricePerUnit) + : Translations.Messages.PlacedSellOffer(units, product, totalPrice, pricePerUnit), true); }); } diff --git a/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java b/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java index 41a424a..a9aab9b 100644 --- a/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java +++ b/fabric/src/main/java/stonks/fabric/StonksFabricUtils.java @@ -91,12 +91,8 @@ public static Text offerText(OfferType type, OverviewOffer offer) { var typeText = type == OfferType.BUY ? Translations.Messages.OfferInfoText$Buy : Translations.Messages.OfferInfoText$Sell; - var totalAvailableUnits = Text.literal(Integer.toString(offer.totalAvailableUnits())) - .styled(s -> s.withColor(Formatting.AQUA)); - var offersCountText = Text.literal(Integer.toString(offer.offers())).styled(s -> s.withColor(Formatting.AQUA)); - var ppuText = currencyText(Optional.of(offer.pricePerUnit()), false); - - return Translations.Messages.OfferInfoText(typeText, totalAvailableUnits, offersCountText, ppuText); + return Translations.Messages.OfferInfoText(typeText, offer.totalAvailableUnits(), offer.offers(), + offer.pricePerUnit()); } public static boolean compareStack(ItemStack a, ItemStack b) { diff --git a/fabric/src/main/java/stonks/fabric/translation/Translations.java b/fabric/src/main/java/stonks/fabric/translation/Translations.java index fccd0f1..4140c2b 100644 --- a/fabric/src/main/java/stonks/fabric/translation/Translations.java +++ b/fabric/src/main/java/stonks/fabric/translation/Translations.java @@ -25,7 +25,6 @@ import java.util.Optional; -import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; import stonks.core.market.ComputedOffersList; @@ -75,8 +74,8 @@ public static final class ViewOffers { public static final Text NoOffers$1 = translatableWithFallback("stonks.menu.viewOffers.noOffers.1", "\u00a77them here!"); public static final Text Offer$ClickToOpen = translatableWithFallback("stonks.menu.viewOffers.offer.clickToOpen", "\u00a77Click to open"); public static final Text Offer$ProgressLegends = translatableWithFallback("stonks.menu.viewOffers.offer.progressLegends", "\u00a78(Claimed/Filled/Total)"); - public static final Text Offer$Buy(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.buy", "\u00a7a\u00a7lBUY OFFER: %s", Text.literal(offer.getProduct().getProductName()).styled(s -> s.withColor(Formatting.AQUA))); } - public static final Text Offer$Sell(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.sell", "\u00a7e\u00a7lSELL OFFER: %s", Text.literal(offer.getProduct().getProductName()).styled(s -> s.withColor(Formatting.AQUA))); } + public static final Text Offer$Buy(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.buy", "\u00a7a\u00a7lBUY OFFER: %s", productName(offer.getProduct())); } + public static final Text Offer$Sell(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.sell", "\u00a7e\u00a7lSELL OFFER: %s", productName(offer.getProduct())); } public static final Text Offer$Progress(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.progress", "\u00a77Progress: %s %s/%s/%s", StonksFabricUtils.progressBar(20, Formatting.DARK_GRAY, @@ -86,8 +85,8 @@ public static final class ViewOffers { Text.literal(Integer.toString(offer.getFilledUnits())).styled(s -> s.withColor(Formatting.YELLOW)), Text.literal(Integer.toString(offer.getTotalUnits())).styled(s -> s.withColor(Formatting.WHITE))); } - public static final Text Offer$PricePerUnit(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.pricePerUnit", "\u00a77Price per unit: %s", StonksFabricUtils.currencyText(Optional.of(offer.getPricePerUnit()), true)); } - public static final Text Offer$TotalPrice(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.totalPrice", "\u00a77Total price: %s", StonksFabricUtils.currencyText(Optional.of(offer.getPricePerUnit() * offer.getTotalUnits()), true)); } + public static final Text Offer$PricePerUnit(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.pricePerUnit", "\u00a77Price per unit: %s", currency(offer.getPricePerUnit())); } + public static final Text Offer$TotalPrice(Offer offer) { return translatableWithFallback("stonks.menu.viewOffers.offer.totalPrice", "\u00a77Total price: %s", currency(offer.getPricePerUnit() * offer.getTotalUnits())); } } public static final class OfferInfo { public static final Text _OfferInfo(Offer offer) { return translatableWithFallback("stonks.menu.offerInfo", "Market > Offers > %s", offer.getProduct().getProductName()); } @@ -101,11 +100,11 @@ public static final class OfferInfo { public static final Text CancelOffer$ClickToCancel = translatableWithFallback("stonks.menu.offerInfo.cancelOffer.clickToCancel", "\u00a77Click to cancel"); public static final Text CancelOffer$Cancelling = translatableWithFallback("stonks.menu.offerInfo.cancelOffer.cancelling", "\u00a77Cancelling..."); public static final Text CancelOffer$CancelFailed = translatableWithFallback("stonks.menu.offerInfo.cancelOffer.cancelFailed", "\u00a7cCancel failed!"); - public static final Text ClaimOffer$Units(int unitsToClaim) { return translatableWithFallback("stonks.menu.offerInfo.claimOffer.units", "\u00a77You have %s \u00a77units to claim", Text.literal(Integer.toString(unitsToClaim)).styled(s -> s.withColor(Formatting.AQUA))); } - public static final Text ClaimOffer$Money(int unitsToClaim, Offer offer) { return translatableWithFallback("stonks.menu.offerInfo.claimOffer.money", "\u00a77You have %s \u00a77to claim", StonksFabricUtils.currencyText(Optional.of(unitsToClaim * offer.getPricePerUnit()), true)); } + public static final Text ClaimOffer$Units(int unitsToClaim) { return translatableWithFallback("stonks.menu.offerInfo.claimOffer.units", "\u00a77You have %s \u00a77units to claim", units(unitsToClaim)); } + public static final Text ClaimOffer$Money(int unitsToClaim, Offer offer) { return translatableWithFallback("stonks.menu.offerInfo.claimOffer.money", "\u00a77You have %s \u00a77to claim", currency(unitsToClaim * offer.getPricePerUnit())); } public static final Text ClaimOffer$MoneyWithTax(int unitsToClaim, Offer offer, PlatformConfig config) { return translatableWithFallback("stonks.menu.offerInfo.claimOffer.moneyWithTax", "\u00a77You have %s \u00a77to claim (%s\u00a77 tax incl.)", - StonksFabricUtils.currencyText(Optional.of(config.applyTax(unitsToClaim * offer.getPricePerUnit())), true), + currency(config.applyTax(unitsToClaim * offer.getPricePerUnit())), StonksFabricUtils.taxText(config.tax).orElse(Text.literal("0%"))); } } @@ -137,8 +136,8 @@ public static final class InstantBuy { public static final Text Buying$0 = translatableWithFallback("stonks.menu.instantBuy.buying.0", "\u00a77Buying product..."); public static final Text Confirm = translatableWithFallback("stonks.menu.instantBuy.confirm", "\u00a7eConfirm instant buy"); public static final Text FixedAmount(int amount) { return translatableWithFallback("stonks.menu.instantBuy.fixedAmount", "\u00a7eInstant buy x%s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.YELLOW))); } - public static final Text AveragePrice(int amount, double originalPricePerUnit) { return translatableWithFallback("stonks.menu.instantBuy.averagePrice", "\u00a77Average price: %s", StonksFabricUtils.currencyText(Optional.of(amount * originalPricePerUnit), true)); } - public static final Text MinimumBalance(double moneyToSpend) { return translatableWithFallback("stonks.menu.instantBuy.minimumBalance", "\u00a77Minimum balance: %s", StonksFabricUtils.currencyText(Optional.of(moneyToSpend), true)); } + public static final Text AveragePrice(int amount, double originalPricePerUnit) { return translatableWithFallback("stonks.menu.instantBuy.averagePrice", "\u00a77Average price: %s", currency(amount * originalPricePerUnit)); } + public static final Text MinimumBalance(double moneyToSpend) { return translatableWithFallback("stonks.menu.instantBuy.minimumBalance", "\u00a77Minimum balance: %s", currency(moneyToSpend)); } public static final Text Confirm$0(int amount, Product product) { return translatableWithFallback("stonks.menu.instantBuy.confirm.0", "\u00a77%s\u00a77x %s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.GRAY)), @@ -162,8 +161,8 @@ public static final class CreateOffer { public static final Text Title$Sell(Product product) { return translatableWithFallback("stonks.menu.createOffer.sell", "Market > %s > Sell offer", product.getProductName());} public static final Text BuyFixed(int amount) { return translatableWithFallback("stonks.menu.createOffer.buyFixed", "\u00a7eBuy x%s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.YELLOW))); } public static final Text SellFixed(int amount) { return translatableWithFallback("stonks.menu.createOffer.sellFixed", "\u00a7eSell x%s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.YELLOW))); } - public static final Text TopBuyDelta(double delta) { return translatableWithFallback("stonks.menu.createOffer.topBuyDelta", "\u00a7eTop offer + %s", StonksFabricUtils.currencyText(Optional.of(delta), false));} - public static final Text TopSellDelta(double delta) { return translatableWithFallback("stonks.menu.createOffer.topSellDelta", "\u00a7eTop offer - %s", StonksFabricUtils.currencyText(Optional.of(delta), false)); } + public static final Text TopBuyDelta(double delta) { return translatableWithFallback("stonks.menu.createOffer.topBuyDelta", "\u00a7eTop offer + %s", currency(delta));} + public static final Text TopSellDelta(double delta) { return translatableWithFallback("stonks.menu.createOffer.topSellDelta", "\u00a7eTop offer - %s", currency(delta)); } public static final Text TotalSpending(Optional topOfferDelta, int amount) { return translatableWithFallback("stonks.menu.createOffer.totalSpending", "\u00a77Total spending: %s", StonksFabricUtils.currencyText(topOfferDelta.map(v -> v * amount), true)); } public static final Text TotalEarning(Optional topOfferDelta, int amount) { return translatableWithFallback("stonks.menu.createOffer.totalEarning", "\u00a77Total earning: %s", StonksFabricUtils.currencyText(topOfferDelta.map(v -> v * amount), true)); } public static final Text TopOfferPrice(Optional pricePerUnit) { return translatableWithFallback("stonks.menu.createOffer.topOfferPrice", "\u00a77Top offer: %s\u00a77", StonksFabricUtils.currencyText(pricePerUnit, true)); } @@ -177,8 +176,8 @@ public static final class ConfirmOffer { public static final Text ClickToConfirm = translatableWithFallback("stonks.menu.confirmOffer.clickToConfirm", "\u00a77Click to confirm"); public static final Text Buying(Product product, int amount) { return translatableWithFallback("stonks.menu.confirmOffer.buying", "\u00a77Buying %s\u00a77x %s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.GRAY)), Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))); } public static final Text Selling(Product product, int amount) { return translatableWithFallback("stonks.menu.confirmOffer.selling", "\u00a77Selling %s\u00a77x %s", Text.literal(Integer.toString(amount)).styled(s -> s.withColor(Formatting.GRAY)), Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.GRAY))); } - public static final Text TotalPrice(int amount, double pricePerUnit) { return translatableWithFallback("stonks.menu.confirmOffer.totalPrice", "\u00a77Total price: %s", StonksFabricUtils.currencyText(Optional.of(pricePerUnit * amount), true)); } - public static final Text PricePerUnit(double pricePerUnit) { return translatableWithFallback("stonks.menu.confirmOffer.pricePerUnit", "\u00a77Price per unit: %s", StonksFabricUtils.currencyText(Optional.of(pricePerUnit), true)); } + public static final Text TotalPrice(int amount, double pricePerUnit) { return translatableWithFallback("stonks.menu.confirmOffer.totalPrice", "\u00a77Total price: %s", currency(pricePerUnit * amount)); } + public static final Text PricePerUnit(double pricePerUnit) { return translatableWithFallback("stonks.menu.confirmOffer.pricePerUnit", "\u00a77Price per unit: %s", currency(pricePerUnit)); } } } public static final class SignInputs { @@ -201,27 +200,34 @@ public static final class Messages { public static final Text NotAvailableShort = translatableWithFallback("stonks.message.notAvailable.short", "\u00a7cn/a"); public static final Text OfferInfoText$Buy = translatableWithFallback("stonks.message.offerInfoText.buy", "\u00a7a\u00a9lBUY"); public static final Text OfferInfoText$Sell = translatableWithFallback("stonks.message.offerInfoText.sell", "\u00a7e\u00a7lSELL"); - public static final Text OfferCancelled(Offer newOffer, int refundUnits, double refundMoney) { - return translatableWithFallback("stonks.message.offerCancelled", "Offer cancelled! Refunded %sx %s and %s", - Text.literal(Integer.toString(refundUnits)).styled(s -> s.withColor(Formatting.AQUA)), - newOffer.getProduct().getProductName(), - StonksFabricUtils.currencyText(Optional.of(refundMoney), true)); - } + public static final Text OfferCancelled(Offer newOffer, int refundUnits, double refundMoney) { return translatableWithFallback("stonks.message.offerCancelled", "Offer cancelled! Refunded %sx %s and %s", units(refundUnits), productName(newOffer.getProduct()), currency(refundMoney)); } public static final Text NoUnitsToInstantSell(Product product) { return translatableWithFallback("stonks.message.noProductsToInstantSell", "\u00a7cYou don't have %s \u00a7cto sell!", product.getProductName()); } - public static final Text NoMoneyToInstantBuy(double moneyToSpend) { return translatableWithFallback("stonks.message.noMoneyToInstantBuy", "\u00a7cYou don't have %s \u00a7cto buy!", StonksFabricUtils.currencyText(Optional.of(moneyToSpend), true)); } - public static final Text NotEnoughMoney(double balance, double price) { return translatableWithFallback("stonks.message.notEnoughMoney", "\u00a7cNot enough money! (%s\u00a7c/%s\u00a7c)", StonksFabricUtils.currencyText(Optional.of(price), true), StonksFabricUtils.currencyText(Optional.of(balance), true)); } + public static final Text NoMoneyToInstantBuy(double moneyToSpend) { return translatableWithFallback("stonks.message.noMoneyToInstantBuy", "\u00a7cYou don't have %s \u00a7cto buy!", currency(moneyToSpend)); } + public static final Text NotEnoughMoney(double balance, double price) { return translatableWithFallback("stonks.message.notEnoughMoney", "\u00a7cNot enough money! (%s\u00a7c/%s\u00a7c)", currency(price), currency(balance)); } public static final Text NotEnoughItems(int currentAmount, int amount) { return translatableWithFallback("stonks.message.notEnoughItems", "\u00a7cNot enough items! (%s/%s\u00a7c)", amount, currentAmount); } public static final Text InvaildInput(String input) { return translatableWithFallback("stonks.message.invaildInput", "\u00a7cInvaild input: %s", input); } - public static final Text Bought(Text amountText, Text productNameText, Text moneySpentText) { return translatableWithFallback("stonks.message.bought", "Bought %sx %s for %s", amountText, productNameText, moneySpentText); } - public static final Text BoughtWithExtras(Text amountText, Text productNameText, Text moneySpentText, MutableText unitsLeftText) { return translatableWithFallback("stonks.message.boughtWithExtras", "Bought %sx %s for %s with %s units can't be bought", amountText, productNameText, moneySpentText, unitsLeftText); } - public static final Text Sold(Text amountText, Text productNameText, Text moneySpentText) { return translatableWithFallback("stonks.message.sold", "Sold %sx %s for %s", amountText, productNameText, moneySpentText); } - public static final Text SoldWithExtras(Text amountText, Text productNameText, Text moneyReceivedText, MutableText unitsLeftText) { return translatableWithFallback("stonks.message.soldWithExtras", "Sold %sx %s for %s with %s units can't be sold", amountText, productNameText, moneyReceivedText, unitsLeftText); } - public static final Text PlacedBuyOffer(MutableText unitsText, MutableText productNameText, Text totalPriceText, Text pricePerUnitText) { return translatableWithFallback("stonks.message.placedBuyOffer", "Placed buy offer: %sx %s for %s @ %s/each", unitsText, productNameText, totalPriceText, pricePerUnitText); } - public static final Text PlacedSellOffer(MutableText unitsText, MutableText productNameText, Text totalPriceText, Text pricePerUnitText) { return translatableWithFallback("stonks.message.placedSellOffer", "Placed sell offer: %sx %s for %s @ %s/each", unitsText, productNameText, totalPriceText, pricePerUnitText); } + public static final Text Bought(int amount, Product product, double moneySpend) { return translatableWithFallback("stonks.message.bought", "Bought %sx %s for %s", units(amount), productName(product), currency(moneySpend)); } + public static final Text BoughtWithExtras(int amount, Product product, double moneySpend, int unitsLeft) { return translatableWithFallback("stonks.message.boughtWithExtras", "Bought %sx %s for %s with %s units can't be bought", units(amount), productName(product), currency(moneySpend), units(unitsLeft)); } + public static final Text Sold(int amount, Product product, double moneySpend) { return translatableWithFallback("stonks.message.sold", "Sold %sx %s for %s", units(amount), productName(product), currency(moneySpend)); } + public static final Text SoldWithExtras(int amount, Product product, double moneySpend, int unitsLeft) { return translatableWithFallback("stonks.message.soldWithExtras", "Sold %sx %s for %s with %s units can't be sold", units(amount), productName(product), currency(moneySpend), units(unitsLeft)); } + public static final Text PlacedBuyOffer(int units, Product product, double totalPrice, double pricePerUnit) { return translatableWithFallback("stonks.message.placedBuyOffer", "Placed buy offer: %sx %s for %s @ %s/each", units(units), productName(product), currency(totalPrice), currency(pricePerUnit)); } + public static final Text PlacedSellOffer(int units, Product product, double totalPrice, double pricePerUnit) { return translatableWithFallback("stonks.message.placedSellOffer", "Placed sell offer: %sx %s for %s @ %s/each", units(units), productName(product), currency(totalPrice), currency(pricePerUnit)); } public static final Text Currency(double val) { return translatableWithFallback("stonks.message.currency", "\u00a7e$%s", Text.literal(StonksFabricUtils.CURRENCY_FORMATTER.format(val)).styled(s -> s.withColor(Formatting.YELLOW))); } - public static final Text OfferInfoText(Text typeText, Text totalAvailableUnits, Text offersCountText, Text ppuText) { return translatableWithFallback("stonks.message.offerInfoText", "\u00a77%s %s\u00a77x from %s \u00a77offers for %s\u00a77/each", typeText, totalAvailableUnits, offersCountText, ppuText); } - public static final Text BuyOfferFilled(Offer offer) { return translatableWithFallback("stonks.message.buyOfferFilled", "\u00a77\u00a7l[\u00a7eStonks\u00a77\u00a7l]\u00a7r Your %sx %s buy offer has been filled!", Text.literal(Integer.toString(offer.getTotalUnits())).styled(s -> s.withColor(Formatting.AQUA)), Text.literal(offer.getProduct().getProductName()).styled(s -> s.withColor(Formatting.AQUA))); } - public static final Text SellOfferFilled(Offer offer) { return translatableWithFallback("stonks.message.sellOfferFilled", "\u00a77\u00a7l[\u00a7eStonks\u00a77\u00a7l]\u00a7r Your %sx %s sell offer has been filled!", Text.literal(Integer.toString(offer.getTotalUnits())).styled(s -> s.withColor(Formatting.AQUA)), Text.literal(offer.getProduct().getProductName()).styled(s -> s.withColor(Formatting.AQUA))); } + public static final Text OfferInfoText(Text typeText, int totalAvailable, int offers, double pricePerUnit) { return translatableWithFallback("stonks.message.offerInfoText", "\u00a77%s %s\u00a77x from %s \u00a77offers for %s\u00a77/each", typeText, units(totalAvailable), units(offers), currency(pricePerUnit)); } + public static final Text BuyOfferFilled(Offer offer) { return translatableWithFallback("stonks.message.buyOfferFilled", "\u00a77\u00a7l[\u00a7eStonks\u00a77\u00a7l]\u00a7r Your %sx %s buy offer has been filled!", units(offer.getTotalUnits()), productName(offer.getProduct())); } + public static final Text SellOfferFilled(Offer offer) { return translatableWithFallback("stonks.message.sellOfferFilled", "\u00a77\u00a7l[\u00a7eStonks\u00a77\u00a7l]\u00a7r Your %sx %s sell offer has been filled!", units(offer.getTotalUnits()), productName(offer.getProduct())); } } // @formatter:on + + public static Text units(int units) { + return Text.literal(Integer.toString(units)).styled(s -> s.withColor(Formatting.AQUA)); + } + + public static Text productName(Product product) { + return Text.literal(product.getProductName()).styled(s -> s.withColor(Formatting.AQUA)); + } + + public static Text currency(double value) { + return StonksFabricUtils.currencyText(Optional.of(value), true); + } } From 9cf73daae750984a71e0e5532a4a69af82b295bf Mon Sep 17 00:00:00 2001 From: nahkd123 Date: Sat, 12 Aug 2023 14:24:54 +0700 Subject: [PATCH 5/5] Remove direct access to Translations subclasses --- .../main/java/stonks/fabric/menu/MarketMainMenu.java | 8 +++----- .../stonks/fabric/menu/player/ViewOffersMenu.java | 12 +++++------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java b/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java index 0540a77..c93d0cd 100644 --- a/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/MarketMainMenu.java @@ -42,8 +42,6 @@ import stonks.fabric.menu.handling.WaitableGuiElement; import stonks.fabric.menu.product.ProductMenu; import stonks.fabric.translation.Translations; -import stonks.fabric.translation.Translations.Errors; -import stonks.fabric.translation.Translations.Menus.MainMenu; public class MarketMainMenu extends StackedMenu { private static final int CATEGORIES_PER_PAGE = 5; @@ -54,7 +52,7 @@ public class MarketMainMenu extends StackedMenu { public MarketMainMenu(StackedMenu previous, ServerPlayerEntity player) { super(previous, ScreenHandlerType.GENERIC_9X6, player, false); - setTitle(MainMenu.MainMenu); + setTitle(Translations.Menus.MainMenu.MainMenu); for (int i = 0; i < getHeight() - 1; i++) { var slot = (i + 1) * getWidth(); @@ -71,7 +69,7 @@ public MarketMainMenu(StackedMenu previous, ServerPlayerEntity player) { (categories, error) -> { if (error != null) { var icon = new GuiElementBuilder(Items.BARRIER) - .setName(Errors.Errors) + .setName(Translations.Errors.Errors) .addLoreLine(Translations.Errors.CategoriesList); for (int i = 0; i < getHeight() - 1; i++) { @@ -216,7 +214,7 @@ private void placeProduct(int slot, StonksServiceCache cache, Category category, public ItemStack createStackWhenLoaded(ProductMarketOverview overview, Throwable error) { // TODO use message from UserException if (error != null) return new GuiElementBuilder(Items.BARRIER) - .setName(Errors.Errors) + .setName(Translations.Errors.Errors) .addLoreLine(Translations.Errors.QuickPriceDetails) .asStack(); diff --git a/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java b/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java index 6b6b356..66eaab7 100644 --- a/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java +++ b/fabric/src/main/java/stonks/fabric/menu/player/ViewOffersMenu.java @@ -37,8 +37,6 @@ import stonks.fabric.menu.StackedMenu; import stonks.fabric.menu.handling.WaitableGuiElement; import stonks.fabric.translation.Translations; -import stonks.fabric.translation.Translations.Errors; -import stonks.fabric.translation.Translations.Icons; public class ViewOffersMenu extends StackedMenu { private Cached> offersCache; @@ -67,8 +65,8 @@ protected void placePagesNavigations() { setSlot(2, page <= 0 ? MenuIcons.BORDER : new GuiElementBuilder(Items.ARROW, Math.max(Math.min(page, 64), 1)) - .setName(Icons.PreviousPage) - .addLoreLine(Icons.PreviousPage$0(page, maxPages)) + .setName(Translations.Icons.PreviousPage) + .addLoreLine(Translations.Icons.PreviousPage$0(page, maxPages)) .setCallback((index, type, action, gui) -> { if (page <= 0 || isUpdating) return; page--; @@ -78,8 +76,8 @@ protected void placePagesNavigations() { setSlot(6, page >= (maxPages - 1) ? MenuIcons.BORDER : new GuiElementBuilder(Items.ARROW, Math.max(Math.min(page + 2, 64), 1)) - .setName(Icons.NextPage) - .addLoreLine(Icons.NextPage$0(page, maxPages)) + .setName(Translations.Icons.NextPage) + .addLoreLine(Translations.Icons.NextPage$0(page, maxPages)) .setCallback((index, type, action, gui) -> { if (page >= (maxPages - 1) || isUpdating) return; page++; @@ -102,7 +100,7 @@ public void onTick() { if (error != null) { loadedOffers = null; setSlot((getHeight() / 2) * getWidth() + getWidth() / 2, new GuiElementBuilder(Items.BARRIER) - .setName(Errors.Errors) + .setName(Translations.Errors.Errors) .addLoreLine(Translations.Menus.ViewOffers.Retrying) .asStack()); return;