From cf83bbb163978cb4799154d237dffcf05dc847cb Mon Sep 17 00:00:00 2001 From: TheCSDev Date: Thu, 18 Jun 2026 14:48:43 +0200 Subject: [PATCH 01/10] Release 5.4.0+fn-26.2 (#41) Port to 26.2 --- .gitignore | 122 +-- build.gradle | 5 +- gradle.properties | 29 +- .../betterstats/client/BetterStatsClient.java | 2 +- .../client/gui/panel/PersonalHomePanel.java | 4 +- .../mcbs/view/menubar/MenubarItemAbout.java | 6 +- .../mcbs/view/menubar/MenubarItemFile.java | 24 +- .../mcbs/view/menubar/MenubarItemView.java | 11 +- .../mcbs/view/statsview/StatsViewGoals.java | 6 +- .../mcbs/view/statsview/StatsViewMobs.java | 4 +- ...-26.1.jar => tcdcommons-5.4.0+fn-26.2.jar} | Bin 458200 -> 461173 bytes .../assets/betterstats/lang/docs/index.html | 802 ++++++++++++++++++ .../assets/betterstats/lang/en_us.json | 2 +- .../assets/betterstats/lang/zh_cn.json | 2 +- 14 files changed, 918 insertions(+), 101 deletions(-) rename src/main/resources/META-INF/jarjar/{tcdcommons-5.3.2+fn-26.1.jar => tcdcommons-5.4.0+fn-26.2.jar} (82%) create mode 100644 src/main/resources/assets/betterstats/lang/docs/index.html diff --git a/.gitignore b/.gitignore index dc686f6..a9aa65c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,66 @@ -# -------------------- Eclipse IDE ------------------- +# ================================================== +# Gradle +# ================================================== +.gradle +**/build/ +!src/**/build/ + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# Avoid ignore Gradle wrappper properties +!gradle-wrapper.properties + +# Cache of project +.gradletasknamecache + +# Eclipse Gradle plugin generated files +# Eclipse Core +.project +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# ================================================== +# Java +# ================================================== +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +!**/src/main/resources/**/*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +/.gradle/ +/build/ + +# ================================================== +# FabricMC +# ================================================== +run/ + +# ================================================== +# Eclipse IDE +# ================================================== .metadata bin/ tmp/ @@ -60,59 +122,7 @@ local.properties # Typically, this file would be tracked if it contains build/dependency configurations: #.project -# ----------------------- Java ----------------------- -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -!**/src/main/resources/**/*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* -/.gradle/ -/build/ - -# -------------------- Idea IDE ------------------- +# ================================================== +# IntelliJ Idea IDE +# ================================================== **/.idea/ - -# ----------------------- Gradle ----------------------- -.gradle -**/build/ -!src/**/build/ - -# Ignore Gradle GUI config -gradle-app.setting - -# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) -!gradle-wrapper.jar - -# Avoid ignore Gradle wrappper properties -!gradle-wrapper.properties - -# Cache of project -.gradletasknamecache - -# Eclipse Gradle plugin generated files -# Eclipse Core -.project -# JDT-specific (Eclipse Java Development Tools) -.classpath - -# ----------------------- Fabric ----------------------- -run/ diff --git a/build.gradle b/build.gradle index e961972..467022d 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,10 @@ dependencies implementation "net.fabricmc:fabric-loader:${project["fabric.loader_version"]}" runtimeOnly "net.fabricmc.fabric-api:fabric-api:${project["fabric.api_version"]}" - implementation "com.terraformersmc:modmenu:18.0.0-alpha.8" + implementation("com.terraformersmc:modmenu:${project["modmenu.version"]}") { + exclude group: "net.fabricmc", module: "fabric-loader" //causes issues, exclude it + exclude group: "net.fabricmc.fabric-api" //causes issues, exclude it + } implementation fileTree(dir: 'src/main/resources/META-INF/jarjar', include: '*.jar') } diff --git a/gradle.properties b/gradle.properties index 3e31d09..62402af 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ maven.group = com.thecsdev # Mod properties mod.id = betterstats -mod.version = 5.3.0 +mod.version = 5.4.0 mod.name = Better Statistics Screen mod.description = A Minecraft mod that improves the statistics screen and makes it more useful. mod.author = TheCSDev @@ -26,14 +26,17 @@ mod.link.curseforge = https://thecsdev.com/fwd/betterstats-curseforge/ mod.link.modrinth = https://thecsdev.com/fwd/betterstats-modrinth/ # 'pack.mcmeta' properties -pack.format = 84.0 +pack.format = 88 # Minecraft properties -minecraft.version = 26.1 +minecraft.version = 26.2 + +# Third-party mod versions +modmenu.version = 20.0.0-beta.2 # Fabric properties -fabric.loader_version = 0.18.6 -fabric.api_version = 0.145.1+26.1 +fabric.loader_version = 0.19.3 +fabric.api_version = 0.152.1+26.2 # fabric.mod.json properties fabric.json.entrypoints.main = com.thecsdev.betterstats.fabric.BetterStatsFabric @@ -42,16 +45,16 @@ fabric.api_version = 0.145.1+26.1 fabric.json.entrypoints.modmenu = com.thecsdev.betterstats.fabric.client.BetterStatsModmenu fabric.json.depends.java = >=25 - fabric.json.depends.minecraft = ~26.1 - fabric.json.depends.fabricloader = >=0.18.4 - fabric.json.depends.fabric-api = >=0.145.1 - fabric.json.depends.tcdcommons = >=5.3.2 + fabric.json.depends.minecraft = ~26.2 + fabric.json.depends.fabricloader = >=0.19.3 + fabric.json.depends.fabric-api = >=0.152.1 + fabric.json.depends.tcdcommons = >=5.4.0 # Neo-Forge properties neoforge.version = 26.1.0.7-beta # neoforge.mods.toml properties - net.toml.loaderVersion = [2,) - neo.toml.dependencies.neoforge = [26.1.0.7-beta,) - neo.toml.dependencies.minecraft = [26.1, 26.2) - neo.toml.dependencies.tcdcommons = [5.3.2,) + net.toml.loaderVersion = [4,) + neo.toml.dependencies.neoforge = [26.2.0.1-beta,) + neo.toml.dependencies.minecraft = [26.2, 26.3) + neo.toml.dependencies.tcdcommons = [5.4.0,) diff --git a/src/main/java/com/thecsdev/betterstats/client/BetterStatsClient.java b/src/main/java/com/thecsdev/betterstats/client/BetterStatsClient.java index 28967fe..92e7ba0 100644 --- a/src/main/java/com/thecsdev/betterstats/client/BetterStatsClient.java +++ b/src/main/java/com/thecsdev/betterstats/client/BetterStatsClient.java @@ -34,7 +34,7 @@ public BetterStatsClient() //else open the Better Statistics Screen else { final var client = Minecraft.getInstance(); - client.setScreen(new BetterStatsScreen(client.screen).getAsScreen()); + client.gui.setScreen(new BetterStatsScreen(client.gui.screen()).getAsScreen()); } }); diff --git a/src/main/java/com/thecsdev/betterstats/client/gui/panel/PersonalHomePanel.java b/src/main/java/com/thecsdev/betterstats/client/gui/panel/PersonalHomePanel.java index 4c1bd07..d8091bd 100644 --- a/src/main/java/com/thecsdev/betterstats/client/gui/panel/PersonalHomePanel.java +++ b/src/main/java/com/thecsdev/betterstats/client/gui/panel/PersonalHomePanel.java @@ -374,9 +374,9 @@ protected void initCallback() BLanguage.gui_menubar_view_vanillaScreen(), _ -> { final @Nullable var player = client.player; - final @Nullable var lastScreen = client.screen; + final @Nullable var lastScreen = client.gui.screen(); if(player == null || lastScreen == null) return; //safety - shouldn't happen - client.setScreen(new StatsScreen(lastScreen, player.getStats())); + client.gui.setScreen(new StatsScreen(lastScreen, player.getStats())); }); initButton( TSprites.gui_icon_fsFolder(), diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemAbout.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemAbout.java index e217c01..a730262 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemAbout.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemAbout.java @@ -81,14 +81,14 @@ public static final void showUriScreen(@NotNull String uri, boolean isTrusted) //obtain client variables stuff final var client = Objects.requireNonNull(Minecraft.getInstance()); - final var lastScreen = client.screen; + final var lastScreen = client.gui.screen(); //create and set the confirmation screen final var screen = new ConfirmLinkScreen(accepted -> { if(accepted) Util.getPlatform().openUri(uri); - client.setScreen(lastScreen); + client.gui.setScreen(lastScreen); }, uri, isTrusted); - client.setScreen(screen); + client.gui.setScreen(screen); } // ================================================== } diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemFile.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemFile.java index 24aae40..33052cf 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemFile.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemFile.java @@ -54,24 +54,24 @@ public final class MenubarItemFile extends MenubarItem //"Open" option builder.addButton( gui(TSprites.gui_icon_fsFolder()).append(" ").append(BLanguage.gui_menubar_file_open()), - __ -> showOpenFileDialog(client, mcbsEditor)); + _ -> showOpenFileDialog(client, mcbsEditor)); //"Save as" option if(mcbsEditor.getCurrentTab() instanceof McbsEditorFileTab) builder.addButton(air().append(" ").append( BLanguage.gui_menubar_file_saveAs()), - __ -> showSaveFileDialog(client, mcbsEditor)); + _ -> showSaveFileDialog(client, mcbsEditor)); //"Settings" option builder.addSeparator(); builder.addButton( gui(BSprites.gui_icon_settings()).append(" ").append(BLanguage.gui_menubar_file_settings()), - __ -> mcbsEditor.addTab(McbsEditorSettingsTab.INSTANCE, true)); + _ -> mcbsEditor.addTab(McbsEditorSettingsTab.INSTANCE, true)); //"Close" option builder.addButton( gui(BSprites.gui_icon_close()).append(" ").append(BLanguage.gui_menubar_file_close()), - __ -> Optional.ofNullable(client.screen).ifPresent(Screen::onClose)); + _ -> Optional.ofNullable(client.gui.screen()).ifPresent(Screen::onClose)); //build and return the context menu return builder.build(); @@ -88,7 +88,7 @@ public final class MenubarItemFile extends MenubarItem @NotNull Minecraft client, @NotNull McbsEditor mcbsEditor) throws NullPointerException { - final var lastScreen = client.screen; + final var lastScreen = client.gui.screen(); final var dialog = new TFileChooserScreen.Builder(TFileChooserScreen.Mode.CHOOSE_FILE) .setLastScreen(lastScreen) .setPathFilter(TFileChooserScreen.PathFilter.extname("json")) @@ -102,12 +102,12 @@ public final class MenubarItemFile extends MenubarItem if(dialog.getResult().isCancelled()) return null; final var tit = TLanguage.misc_somethingWentWrong(); final var txt = Component.literal(getStackTrace(throwable).replace("\r\n", "\n").replace("\t", " ")); - final var edia = new TTextDialogScreen(client.screen, tit, txt); + final var edia = new TTextDialogScreen(client.gui.screen(), tit, txt); edia.getMessageLabel().wrapTextProperty().set(true, MenubarItemFile.class); - client.setScreen(edia.getAsScreen()); + client.gui.setScreen(edia.getAsScreen()); return null; }); - client.setScreen(dialog.getAsScreen()); + client.gui.setScreen(dialog.getAsScreen()); } /** @@ -126,7 +126,7 @@ public final class MenubarItemFile extends MenubarItem if(fileTab == null) return; //create and show the dialog - final var lastScreen = client.screen; + final var lastScreen = client.gui.screen(); final var dialog = new TFileChooserScreen.Builder(TFileChooserScreen.Mode.CREATE_FILE) .setLastScreen(lastScreen) .setPathFilter(TFileChooserScreen.PathFilter.extname("json")) @@ -140,12 +140,12 @@ public final class MenubarItemFile extends MenubarItem if(dialog.getResult().isCancelled()) return null; final var tit = TLanguage.misc_somethingWentWrong(); final var txt = Component.literal(getStackTrace(throwable).replace("\r\n", "\n").replace("\t", " ")); - final var edia = new TTextDialogScreen(client.screen, tit, txt); + final var edia = new TTextDialogScreen(client.gui.screen(), tit, txt); edia.getMessageLabel().wrapTextProperty().set(true, MenubarItemFile.class); - client.setScreen(edia.getAsScreen()); + client.gui.setScreen(edia.getAsScreen()); return null; }); - client.setScreen(dialog.getAsScreen()); + client.gui.setScreen(dialog.getAsScreen()); } // ================================================== } diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemView.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemView.java index 215940c..d1f3746 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemView.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemView.java @@ -31,7 +31,6 @@ public final class MenubarItemView extends MenubarItem // ================================================== public final @Override @NotNull Component getDisplayName() { return BLanguage.gui_menubar_view(); } // -------------------------------------------------- - @SuppressWarnings("DataFlowIssue") public final @Override @NotNull TContextMenu createContextMenu( @NotNull Minecraft client, @NotNull McbsEditor mcbsEditor) { @@ -50,24 +49,24 @@ public final class MenubarItemView extends MenubarItem //the vanilla screen button opens the vanilla stats screen builder.addButton( gui("statistics/item_used").append(" ").append(BLanguage.gui_menubar_view_vanillaScreen()), - __ -> { + _ -> { final @Nullable var player = client.player; - final @Nullable var lastScreen = client.screen; + final @Nullable var lastScreen = client.gui.screen(); if(player == null || lastScreen == null) return; //safety - shouldn't happen - client.setScreen(new StatsScreen(lastScreen, player.getStats())); + client.gui.setScreen(new StatsScreen(lastScreen, player.getStats())); }); builder.addSeparator(); //home-page tab builder.addButton( gui("icon/news").append(" ").append(BLanguage.gui_menubar_view_homepage()), - __ -> mcbsEditor.addTab(McbsEditorHomepageTab.INSTANCE, true) + _ -> mcbsEditor.addTab(McbsEditorHomepageTab.INSTANCE, true) ); //local-player statistics tab builder.addButton( localPlayerComponent.append(" ").append(BLanguage.gui_menubar_view_localPlayerStats()), - __ -> mcbsEditor.addTab(McbsEditorFileTab.LOCALPLAYER, true) + _ -> mcbsEditor.addTab(McbsEditorFileTab.LOCALPLAYER, true) ); //build and return the context menu diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGoals.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGoals.java index 1f4792f..02d358a 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGoals.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGoals.java @@ -356,7 +356,7 @@ private static final void onClickCreateGoal( //noinspection unchecked | open goal editing screen (if possible) final @Nullable var goalGui = (McbsGoalGUI) McbsGoalGUI.findFor(goalType); if(goalGui != null && goalGui.isEditable()) - client.setScreen(goalGui.createEditScreen(client.screen, tab, newGoal)); + client.gui.setScreen(goalGui.createEditScreen(client.gui.screen(), tab, newGoal)); } // ================================================== ================================================== // ListedGoalGui IMPLEMENTATION @@ -414,10 +414,10 @@ public ListedGoalGui(@NotNull StatsInitContext context, @NotNull T goal) this.el_btnEdit.eClicked.addListener(btn -> { final @NotNull var client = Objects.requireNonNull(btn.getClient(), "Missing 'client' instance"); final @Nullable var editScreen = Optional.ofNullable(this.goalGui) - .map(gui -> gui.createEditScreen(client.screen, tab, this.goal)) + .map(gui -> gui.createEditScreen(client.gui.screen(), tab, this.goal)) .orElse(null); if(editScreen != null) { - client.setScreen(editScreen); + client.gui.setScreen(editScreen); tab.addEditCount(); } else { btn.enabledProperty().set(false, ListedGoalGui.class); diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewMobs.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewMobs.java index 3f82286..dde2c4a 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewMobs.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewMobs.java @@ -127,11 +127,11 @@ protected StatsViewMobs() {} builder.addButton( missingNo().append(" ").append(BLanguage.gui_statsview_stats_ctxMenu_viewErrorInfo()), _ -> { - final var parent = client.screen; + final var parent = client.gui.screen(); final var title = missingNo().append(" ").append(TLanguage.misc_somethingWentWrong()); final var text = literal(getStackTrace(displayError).replace("\r\n", "\n").replace("\t", " ")); final var dialog = new TTextDialogScreen(parent, title, text); - client.setScreen(dialog.getAsScreen()); + client.gui.setScreen(dialog.getAsScreen()); }); //wiki url diff --git a/src/main/resources/META-INF/jarjar/tcdcommons-5.3.2+fn-26.1.jar b/src/main/resources/META-INF/jarjar/tcdcommons-5.4.0+fn-26.2.jar similarity index 82% rename from src/main/resources/META-INF/jarjar/tcdcommons-5.3.2+fn-26.1.jar rename to src/main/resources/META-INF/jarjar/tcdcommons-5.4.0+fn-26.2.jar index cdfd7e08f6fd864e982bf404819710cc479e00c1..135a7c158b8ce77a1fd1a99bc71660021dff4f15 100644 GIT binary patch delta 59822 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
    -Vglz21(jo)EmsQ@H3*nEyM+0AM!rv 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�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 delta 56916 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

    Vpwf-eQ9k{g^9tlF32D-Qdk<<; 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 Q-$4JTm_}P{1wD!Oe=SKFQ2+n{ diff --git a/src/main/resources/assets/betterstats/lang/docs/index.html b/src/main/resources/assets/betterstats/lang/docs/index.html new file mode 100644 index 0000000..89e8faf --- /dev/null +++ b/src/main/resources/assets/betterstats/lang/docs/index.html @@ -0,0 +1,802 @@ + + + + + + Better Statistics Screen | Language documentation + + + + + +

    Mod description for 'Mod Menu'

    +

    Name and descriptions for this mod, that show up in Mod Menu.

    +
    +
    +

    modmenu.nameTranslation.betterstats

    + The display name of the mod within the 'Mod Menu' interface. +
    +
    + +
    +

    modmenu.summaryTranslation.betterstats

    + The summary description of the mod within the 'Mod Menu' interface. +
    +
    +
    + +

    Mob categories

    +

    + Much like how items have their own corresponding creative mode tabs, mobs too have their categories. The following + language texts aim to give those categories user-friendly names. +

    +
    +
    +

    mobCategory.monster

    + Hostile creatures like zombies, skeletons, creepers, blazes, etc. +
    +
    + +
    +

    mobCategory.creature

    + Friendly creatures like pigs, cows, sheep, foxes, striders, etc. +
    +
    + +
    +

    mobCategory.ambient

    + As of 26.1.2, it contains only 1 mob; bat. There could be more in the future. +
    +
    + +
    +

    mobCategory.axolotls

    + As of 26.1.2, it contains only 1 mob; axolotl. There could be more in the future. +
    +
    + +
    +

    mobCategory.underground_water_creature

    + As of 26.1.2, it contains only 1 mob; glow squid. There could be more in the future. +
    +
    + +
    +

    mobCategory.water_creature

    + For creatures who call the underwater their home. +
    +
    + +
    +

    mobCategory.water_ambient

    + Underwater ambient creatures, like fish. +
    +
    + +
    +

    mobCategory.misc

    + Miscellaneous entities, typically ones that aren't "alive". Includes stuff like boats, minecarts, armor stands, + snowballs, etc. +
    +
    +
    + +

    Statistics

    +
    +
    +

    stat.blocksButton

    + The vanilla game has "General", "Items", and "Mobs" buttons/menus. This mod has an additional one; "Blocks". + This additional section allows users to see their statistics related specifically to blocks. +
    +
    + +
    +

    stat.betterstats.time_since_login

    + Name of the betterstats:time_since_login general/custom stat. This temporal stat tracks how long + the player's current session is. +
    +
    +
    + +

    /statistics & /stats command

    +
    +
    +

    commands.statistics.edit.output

    + Output for the /statistics edit command. +
    +
    + +
    +

    commands.statistics.clear.output

    + Output for the /statistics clear command. +
    +
    + +
    +

    commands.statistics.clear.kick

    + The /statistics clear command kicks players whose statistics are cleared. This mechanism + prevents client/server desync issues with statistics. When a player is kicked for this reason, this + is the message that shows up on their screen. +
    +
    + +
    +

    commands.statistics.query.output

    + Output for the /statistics query command. +
    +
    +
    + +

    Configurations/Settings related to this mod

    +

    Language texts used when presenting the user with a GUI interface to configure this mod.

    +
    +
    +

    betterstats.config.common.register_commands

    + User-friendly name of the "Register commands" property. +
    +
    + +
    +

    betterstats.config.common.register_commands.tooltip

    + User-friendly description of the "Register commands" property. +
    +
    + +
    +

    betterstats.config.common.api_endpoint

    + User-friendly name of the "API endpoint" property. +
    +
    + +
    +

    betterstats.config.common.api_endpoint.tooltip

    + User-friendly description of the "API endpoint" property. +
    +
    + +
    +

    betterstats.config.common.experimental_features

    + User-friendly name of the "Experimental features" property. +
    +
    + +
    +

    betterstats.config.common.experimental_features.tooltip

    + User-friendly description of the "Experimental features" property. +
    +
    + +
    +

    betterstats.config.client.allow_chat_psa

    + User-friendly name of the "Allow chat PSA messages" property. +
    +
    + +
    +

    betterstats.config.client.allow_chat_psa.tooltip

    + User-friendly description of the "Allow chat PSA messages" property. +
    +
    + +
    +

    betterstats.config.client.gui_mobs_follow_cursor

    + User-friendly name of the "GUI mobs follow cursor" property. +
    +
    + +
    +

    betterstats.config.client.gui_mobs_follow_cursor.tooltip

    + User-friendly description of the "GUI mobs follow cursor" property. +
    +
    +
    + +

    "General numeric goal" edit screen

    +

    + GUI Screen whose job is to provide an interface for editing general numeric goals. +

    +
    +
    +

    betterstats.gui.screen.edit_siv_goal.stat_type

    + Label that indicates to the user that the text field below it is for defining the "stat type" of the goal. +
    +
    + +
    +

    betterstats.gui.screen.edit_siv_goal.stat_subject

    + Label that indicates to the user that the text field below it is for defining the "stat subject" of the goal. +
    +
    + +
    +

    betterstats.gui.screen.edit_siv_goal.target_value_range

    + Label that indicates to the user that the text fields below it are for defining the "target value range" of the goal. +
    +
    +
    + +

    Menubar

    +

    + The GUI menubar panel that appears at the top of the better "Statistics" screen. +

    +
    +
    +

    betterstats.gui.menubar.file

    + File menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.file.new

    + File > New menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.file.open

    + File > Open menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.file.save_as

    + File > Save as menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.file.settings

    + File > Settings menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.file.close

    + File > Close menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.view

    + View menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.view.vanilla_screen

    + View > Vanilla screen menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.view.homepage

    + View > Home menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.view.local_player_stats

    + View > My statistics menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.view.stats_view

    + View > Switch view menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.about

    + About menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.about.source_code

    + About > Source code menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.about.support_me

    + About > Support me menubar item. +
    +
    + +
    +

    betterstats.gui.menubar.about.legal_notices

    + About > Legal notices menubar item. +
    +
    +
    + +

    Stats view

    +

    + When looking at statistics, to the left in the "Filters" menu, there is a dropdown called "Stats view" near the top + of the "Filters" panel. That dropdown allows users to select what is known as a "stats view". A "stats view" is + what determines which statistics are to be shown on screen; be it general or items or blocks or mobs etc.
    + Language texts featured here are related to those "stats views", and each "view" may have its own dedicated texts. +

    +
    +
    +

    betterstats.gui.statsview.filters

    + The "Filters" label shown on the left side where the "Filters" panel is. +
    +
    + +
    +

    betterstats.gui.statsview.filter.selected_view

    + Tooltip for the dropdown menu that allows users to select the current "stats view". +
    +
    + +
    +

    betterstats.gui.statsview.filter.search

    + Placeholder text for the text field that is used for searching. +
    +
    + +
    +

    betterstats.gui.statsview.filter.show_all_stats

    + The filters checkbox whose label says "Show all stats". Ticking this checkbox shows all related + statistics regardless of their values. +
    +
    + +
    +

    betterstats.gui.statsview.filter.hide_completed_goals

    + The filters checkbox whose label says "Hide completed goals". Ticking this checkbox hides all + completed goals in the "Goals" stats view. +
    +
    + +
    +

    betterstats.gui.statsview.filter.sort_by

    + Tooltip text for the "Sort by" filter dropdown. +
    +
    + +
    +

    betterstats.gui.statsview.filter.group_by

    + Tooltip text for the "Group by" filter dropdown. +
    +
    + +
    +

    betterstats.gui.statsview.filter.group_by.all

    + "Group by" filter option that groups all statistics in one singular group. +
    +
    + +
    +

    betterstats.gui.statsview.filter.group_by.mod

    + "Group by" filter option that groups statistics by the mod they originate from. +
    +
    + +
    +

    betterstats.gui.statsview.filter.group_by.mob_category

    + "Group by" filter option that groups mob statistics based on mob categories. +
    +
    + +
    +

    betterstats.gui.statsview.filter.group_by.creative_mode_tab

    + "Group by" filter option that groups item statistics based on the tab items appear in - in the creative mode inventory. +
    +
    + +
    +

    betterstats.gui.statsview.filter.distance_unit

    + Tooltip text for the "Distance unit" filter dropdown. +
    +
    + +
    +

    betterstats.gui.statsview.filter.time_unit

    + Tooltip text for the "Time unit" filter dropdown. +
    +
    + +
    +

    betterstats.gui.statsview.stats.no_stats

    + Text that shows up when there are no statistics to show (either because the player doesn't have any or because + none match the given filters' criteria). +
    +
    + +
    +

    betterstats.gui.statsview.stats.no_goals

    + Text that shows up when there are no goals to show (either because the player did not define any or because + none match the given filters' criteria). +
    +
    + +
    +

    betterstats.gui.statsview.stats.ctxmenu.view_error_info

    + Sometimes, errors may occur when rendering specific statistics on screen. In such cases, right-clicking such + errored stats may present the user with a choice to "View error info". That choice uses this textual label. +
    +
    + +
    +

    betterstats.gui.statsview.stats.ctxmenu.view_on_wiki

    + Right-clicking statistics about a given thing may present the user with a choice to visit the Minecraft wiki + article about the corresponding thing. That choise uses this textual label. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals

    + Name of the "Goals" stats view, as shown in the "Selected view" filter dropdown. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.alert1.prefix

    + Prefix text for one of the "Goals"-related alerts that show up on screen. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.alert1

    + Text for one of the "Goals"-related alerts that show up on screen. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.alert2.prefix

    + Prefix text for one of the "Goals"-related alerts that show up on screen. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.alert2

    + Text for one of the "Goals"-related alerts that show up on screen. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.overview

    + Name of the "Overview" section that displays things like how many goals the player completed + and what their current overall progress is towards completing all goals. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.overview.completed_goals

    + Goals "Overview" section that shows how many goals were completed. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.overview.total_progress

    + Goals overview section that shows the total progress towards completing all goals. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.new_btn

    + Text of the button for creating new goals. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.manage_btn

    + Text of the button for managing existing goals. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.edit_btn

    + Tooltip text of the button for editing a given goal. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.delete_btn

    + Tooltip text of the button for deleting a given goal. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.delete_btn.confirm

    + Text that (was intended to) show up when clicking the button to delete a goal. Its purpose is to prevent + accidental goal deletions. +
    +
    + +
    +

    betterstats.gui.statsview.mcbs_goals.no_edit_gui

    + Placeholder text that appears on screen when clicking to edit a goal but it turns the developer of that 'goal + type' did not code in an editing GUI interface for said goal. It is unlikely you will ever encounter this in-game. +
    +
    +
    + +

    Home tab

    +

    + Texts that appear on the introductory "Home" tab that is shown when the user opens the better "Statistics" screen + for the first time in a given session. +

    +
    +
    +

    betterstats.gui.home_tab.featured_stats

    + For the section featuring "Featured statistics". +
    +
    +
    + +

    Credits

    +

    Texts related to "Credits" that are featured on the "Home" tab.

    +
    +
    +

    betterstats.credits

    + Generic "Credits" label. Used to indicate that a section of GUI is for crediting stuff and people. +
    +
    + +
    +

    betterstats.credits.section.top_sponsors

    + Credits section featuring top sponsors. +
    +
    + +
    +

    betterstats.credits.section.top_sponsors.summary

    + Description of the credits section featuring top sponsors. +
    +
    + +
    +

    betterstats.credits.section.recent_sponsors

    + Credits section featuring recent sponsors. +
    +
    + +
    +

    betterstats.credits.section.recent_sponsors.summary

    + Description of the credits section featuring recent sponsors. +
    +
    + +
    +

    betterstats.credits.section.recent_sponsors.entry.sponsor

    + "Call to action" button with intent to get people to click on it to sponsor the project. +
    +
    + +
    +

    betterstats.credits.section.recent_sponsors.entry.sponsor.summary

    + Description of the "call to action" button that intends to get people to sponsor the project. +
    +
    + +
    +

    betterstats.credits.section.special_thanks

    + Credits section for "Special thanks" that thanks things and people who are special. +
    +
    + +
    +

    betterstats.credits.section.special_thanks.summary

    + Description of the "Special thanks" credits section. +
    +
    + +
    +

    betterstats.credits.section.special_thanks.entry.you

    + "Special thanks" entry crediting you! Yes YOU, the one reading this. Thank you! +
    +
    + +
    +

    betterstats.credits.section.special_thanks.entry.you.summary

    + Description of the "Special thanks" entry that credits you. +
    +
    + +
    +

    betterstats.credits.section.special_thanks.entry.contributors

    + "Special thanks" entry crediting contributors. Given you are reading this, it is likely you too + may end up credited here. Translate this mod for the community, and you too may be credited as + a contributor! +
    +
    + +
    +

    betterstats.credits.section.special_thanks.entry.contributors.summary

    + Description of the "Special thanks" entry that credits contributors. +
    +
    + +
    +

    betterstats.credits.section.contributors

    + Title of the dedicated "Contributors" credits section that credits those who contributed to this project. +
    +
    + +
    +

    betterstats.credits.section.contributors.summary

    + Description of the dedicated "Contributors" credits section. +
    +
    + +
    +

    betterstats.credits.section.contributors.entry.contribute

    + "Call to action" button whose goal is to get people to contribute to this project. +
    +
    + +
    +

    betterstats.credits.section.contributors.entry.contribute.summary

    + Description of the "call to action" button that seeks to get people to contribute to this project. +
    +
    + +
    +

    betterstats.credits.section.founder_contributors

    + Title of the dedicated credits section crediting people who contributed to this project prior to + v5.X. +
    +
    + +
    +

    betterstats.credits.section.founder_contributors.summary

    + Description of the "Founder contributors" credits section. +
    +
    +
    + +

    Goal types

    +

    + Much like how statistics have their "types" (ex. "Times used" and "Times mined"), this mod's "Goals" feature + also features the ability to have different "types" of "goals". The following language texts are names + for each of those "goal types". +

    +
    +
    +

    betterstats.mcbsgoaltype.betterstats.stat_int_value

    + Goal type for "General numeric goal". This type of goal allows the user to choose a target "stat type", + "stat subject", and "target numeric value range".
    +
    + For example, suppose the user picks the following; +
      +
    • Stat type: minecraft:mined
    • +
    • Stat subject: minecraft:stone
    • +
    • Target value range: from 0 to 50
    • +
    + The resulting "general numeric goal" then becomes: "Mine 50 Stone." +
    +
    +
    + +

    General numeric goal | Objective texts

    +

    + Every possible "general numeric goal" instance has to have a separate text representing its "objective".
    + Examples include "Mine 64 Stone", "Use 12 Apple", "Craft 128 Iron Helmet", etc. +

    + This is where complexity explodes, as it is in theory possible to have a unique objective text for every + exiting thing in the game; every item, every block, every mob, etc, 10s to 100s of thousands of theoretically + possible translation keys, if not millions. For obvious reasons, we do not actually do that. Instead, we define + general texts that encompass all possible stat type/subject pairs. +

    + For example if we take minecraft:mined, instead of creating a translation for each possible block + in the game, we create one single translation that goes "Mine %4$d %2$s", capturing all block possibilities in + one go. But you are more than welcome to make translations for specific stat type/subject pairs as well. +

    +
    +

    + Given the complexity of texts for general numeric goal objectives, this section shall serve as tutorial on how + to construct your own custom translation texts for given stat type/subject pairs. +

    +

    + Before we begin, you must first be familiar with identifiers. + Identifiers allow the game to keep track of features present in the game by assigning each feature a unique "ID". + An identifier consists of a "namespace" and a "path", and an example of an identifier is minecraft:stone where + minecraft is the namespace and stone is the path. So remember; namespace:path. That's + all an identifier is. So when this tutorial mentions a "namespace", it's referring to the left side of the colon character (:), + and "path" refers to the right side of the colon (:). +

    +

    + Next up, examples of stat type identifiers include minecraft:used and minecraft:mined, and examples + of stat subject identifiers include minecraft:stone (for a block) and minecraft:apple (for an item). + Pairing the two of them like [minecraft:used / minecraft:apple] gets us "How many apples have we used?". +

    +
    +

    + When translating an objective, there are 4 formatting arguments you can use: +

      +
    • %1$s - Stat type name. Ex. "Times used", "Times mined", etc.
    • +
    • %2$s - Stat subject name. Ex. "Stone", "Apple", "Iron Helmet", etc.
    • +
    • + %3$d - Target range value: from. When creating a goal, user has to define a + target "from / to" range. This is the to value. This argument is largely unused. +
    • +
    • + %4$d - Target range value: to - from. When creating a goal, user has to define a + target "from / to" range. This is the to - from value. Use this most of the time. +
    • +
    + So let's try making an example text with this. How about "100 %1$s for %2$s.". If stat type were + "Times mined" and stat subject were "Stone", then this would become "100 Times mined for Stone", which + is a 'botched' way of saying "Mine 100 Stone". +

    +
    +

    + Depending on the level of complexity you desire, you may pick one of the following formats to translate goal objectives: +

      +
    • betterstats.mcbsgoal.siv_objective
    • +
    • betterstats.mcbsgoal.siv_objective.[stat-type namespace].[stat-type path]
    • +
    • betterstats.mcbsgoal.siv_objective.[stat-type namespace].[stat-type path].[stat-subject namespace].[stat-subject path]
    • +
    + ...where... +
      +
    • Stat type namespace - Identifier namespace for the stat type.
    • +
    • Stat type path - Identifier path for the stat type.
    • +
    • Stat subject namespace - Identifier namespace for the stat subject.
    • +
    • Stat subject path - Identifier path for the stat subject.
    • +
    + This gives you granular control over whether you wish to translate for a specific stat type/subject pair or for all + stat subjects in a given stat type or for all objectives overall. +

    +
    +

    + Let's begin our practice with the following template:
    + betterstats.mcbsgoal.siv_objective.[stat-type namespace].[stat-type path].[stat-subject namespace].[stat-subject path]
    + We will translate an example stat type/subject pair. How about... [minecraft:used / minecraft:apple].
    + That would then become; "betterstats.mcbsgoal.siv_objective.minecraft.used.minecraft.apple": "Use %4$d apples". +

    + But of-course, we do not wish to translate for every single item that could ever exist. That'd be insane. This is where the next + template comes in:
    + betterstats.mcbsgoal.siv_objective.[stat-type namespace].[stat-type path]
    + This one encompasses all possible stat subjects for a given stat type. Let's give it a shot and see what it'd look like:
    + "betterstats.mcbsgoal.siv_objective.minecraft.used": "Use %4$d %2$s"
    + This then becomes something like "Use 64 [insert stat subject here]", which is miles better! +

    + And lastly, what if we do not wish to translate for any stat subjects or stat types? This is where our last fallback template comes in:
    + betterstats.mcbsgoal.siv_objective
    + In practice, it usually looks something like this:
    + "betterstats.mcbsgoal.siv_objective": "%4$d [%1$s] for [%2$s]"
    + ...and an in-game text for this may look like "64 [Times mined] for [Stone]". As you can see, this fallback template + includes both the stat type name and the stat subject name simultaneously, which does end up looking a little weird/botched, but + it also gets the job done. +

    +
    + +
    +
    +

    betterstats.mcbsgoal.siv_objective

    + Fallback objective text that encompasses all possible stat type/subject combinations. +
    +
    + +
    +

    betterstats.mcbsgoal.siv_objective.betterstats.edit_this_goal

    + Placeholder stat type/subject pair used to tell the user that a goal was just created and needs be + configured/edited. +
    +
    + +
    +

    betterstats.mcbsgoal.siv_objective.betterstats.edit_this_goal

    + Placeholder stat type/subject pair used to tell the user that a goal was just created and needs be + configured/edited. +
    +
    + +

    + And for the rest of 'general numeric goal' related texts, consult the tutorial above. +

    +
    + + diff --git a/src/main/resources/assets/betterstats/lang/en_us.json b/src/main/resources/assets/betterstats/lang/en_us.json index c862f7c..a1d0ad2 100644 --- a/src/main/resources/assets/betterstats/lang/en_us.json +++ b/src/main/resources/assets/betterstats/lang/en_us.json @@ -108,7 +108,7 @@ "betterstats.mcbsgoal.siv_objective": "%4$d [%1$s] for [%2$s]", "betterstats.mcbsgoal.siv_objective.betterstats.edit_this_goal": "Edit this goal", - "betterstats.mcbsgoal.siv_objective.minecraft.custom": "Do '%2$s' %4$d times", + "betterstats.mcbsgoal.siv_objective.minecraft.custom": "Do [%2$s] %4$d times", "betterstats.mcbsgoal.siv_objective.minecraft.broken": "Break %4$d %2$s", "betterstats.mcbsgoal.siv_objective.minecraft.crafted": "Craft %4$d %2$s", "betterstats.mcbsgoal.siv_objective.minecraft.dropped": "Drop %4$d %2$s", diff --git a/src/main/resources/assets/betterstats/lang/zh_cn.json b/src/main/resources/assets/betterstats/lang/zh_cn.json index b5b3d12..bda12f6 100644 --- a/src/main/resources/assets/betterstats/lang/zh_cn.json +++ b/src/main/resources/assets/betterstats/lang/zh_cn.json @@ -108,7 +108,7 @@ "betterstats.mcbsgoal.siv_objective": "%4$d [%1$s] for [%2$s]", "betterstats.mcbsgoal.siv_objective.betterstats.edit_this_goal": "Edit this goal", - "betterstats.mcbsgoal.siv_objective.minecraft.custom": "Do '%2$s' %4$d times", + "betterstats.mcbsgoal.siv_objective.minecraft.custom": "Do [%2$s] %4$d times", "betterstats.mcbsgoal.siv_objective.minecraft.broken": "Break %4$d %2$s", "betterstats.mcbsgoal.siv_objective.minecraft.crafted": "Craft %4$d %2$s", "betterstats.mcbsgoal.siv_objective.minecraft.dropped": "Drop %4$d %2$s", From 9bf8ccb691e44c7b3adb8f49ec2fa621d05782ee Mon Sep 17 00:00:00 2001 From: TheCSDev Date: Wed, 24 Jun 2026 13:44:42 +0200 Subject: [PATCH 02/10] Release 5.4.1+fn-26.2 (#42) --- gradle.properties | 2 +- .../gui/screen/McbsSivGoalEditScreen.java | 38 ++++++++++- .../mcbs/view/statsview/StatsViewBlocks.java | 61 ++++++++++++++++-- .../mcbs/view/statsview/StatsViewGeneral.java | 56 ++++++++++++++++ .../mcbs/view/statsview/StatsViewItems.java | 64 +++++++++++++++++-- .../mcbs/view/statsview/StatsViewMobs.java | 60 +++++++++++++++-- .../betterstats/resource/BLanguage.java | 1 + .../assets/betterstats/lang/docs/index.html | 7 ++ .../assets/betterstats/lang/en_us.json | 1 + .../assets/betterstats/lang/zh_cn.json | 1 + 10 files changed, 274 insertions(+), 17 deletions(-) diff --git a/gradle.properties b/gradle.properties index 62402af..bfe5792 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ maven.group = com.thecsdev # Mod properties mod.id = betterstats -mod.version = 5.4.0 +mod.version = 5.4.1 mod.name = Better Statistics Screen mod.description = A Minecraft mod that improves the statistics screen and makes it more useful. mod.author = TheCSDev diff --git a/src/main/java/com/thecsdev/betterstats/client/gui/screen/McbsSivGoalEditScreen.java b/src/main/java/com/thecsdev/betterstats/client/gui/screen/McbsSivGoalEditScreen.java index e8e594d..61a0741 100644 --- a/src/main/java/com/thecsdev/betterstats/client/gui/screen/McbsSivGoalEditScreen.java +++ b/src/main/java/com/thecsdev/betterstats/client/gui/screen/McbsSivGoalEditScreen.java @@ -8,11 +8,16 @@ import com.thecsdev.betterstats.resource.BLanguage; import com.thecsdev.common.util.enumerations.CompassDirection; import com.thecsdev.commonmc.api.client.gui.TElement; +import com.thecsdev.commonmc.api.client.gui.ctxmenu.TContextMenu; import com.thecsdev.commonmc.api.client.gui.label.TLabelElement; +import com.thecsdev.commonmc.api.client.gui.misc.TTextureElement; import com.thecsdev.commonmc.api.client.gui.panel.TPanelElement; +import com.thecsdev.commonmc.api.client.gui.widget.TButtonWidget; import com.thecsdev.commonmc.api.client.gui.widget.TScrollBarWidget; import com.thecsdev.commonmc.api.client.gui.widget.text.TSimpleTextFieldWidget; +import com.thecsdev.commonmc.api.stats.IStatsProvider; import com.thecsdev.commonmc.resource.TLanguage; +import com.thecsdev.commonmc.resource.TSprites; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.gui.screens.Screen; @@ -23,9 +28,11 @@ import org.jetbrains.annotations.Nullable; import org.jspecify.annotations.NonNull; +import java.util.Locale; import java.util.NoSuchElementException; import static com.thecsdev.betterstats.api.mcbs.view.statsview.StatsViewUtils.GAP; +import static net.minecraft.core.registries.BuiltInRegistries.STAT_TYPE; /** * Goal editing screen for {@link McbsSivGoal}. @@ -71,17 +78,42 @@ public McbsSivGoalEditScreen(@Nullable Screen lastScreen, @NotNull McbsEditorFil //stat type input StatsViewUtils.initGroupLabel(el_panel, BLanguage.gui_screen_editSivGoal_statType()); final var in_statType = new TSimpleTextFieldWidget(); - in_statType.setBounds(el_panel.computeNextYBounds(20, GAP)); + in_statType.setBounds(el_panel.computeNextYBounds(20, GAP).add(0, 0, -25, 0)); in_statType.placeholderProperty().set(Component.literal("minecraft:used"), McbsSivGoalEditScreen.class); in_statType.textProperty().set(goal.getStatType().toString(), McbsSivGoalEditScreen.class); in_statType.textProperty().addChangeListener((_, _, n) -> { try { - goal.setStatType(Identifier.parse(n)); + goal.setStatType(Identifier.parse(n.trim().toLowerCase(Locale.ROOT))); refreshPreview(); } catch (RuntimeException ignored) {} }); el_panel.add(in_statType); + final var btn_statType = new TButtonWidget(); + btn_statType.setBounds( + in_statType.getBounds().endX + 5, + in_statType.getBounds().y, + 20, + in_statType.getBounds().height); + btn_statType.contextMenuProperty().set(_ -> + { + final var ctxMenu = new TContextMenu.Builder(getClient()); + for(final var statType : STAT_TYPE) + ctxMenu.addButton( + IStatsProvider.getStatTypeName(statType), + _ -> in_statType.textProperty().set( + String.valueOf(STAT_TYPE.getKey(statType)), + McbsSivGoalEditScreen.class)); + return ctxMenu.build(); + }, + McbsSivGoalEditScreen.class); + btn_statType.eClicked.addListener(TElement::showContextMenu); + el_panel.add(btn_statType); + + final var ico_statType = new TTextureElement(TSprites.gui_widget_dropdownCollapsed()); + ico_statType.setBounds(btn_statType.getBounds().add(3, 3, -6, -6)); + el_panel.add(ico_statType); + //stat subject input StatsViewUtils.initGroupLabel(el_panel, BLanguage.gui_screen_editSivGoal_statSubject()); final var in_statSubject = new TSimpleTextFieldWidget(); @@ -90,7 +122,7 @@ public McbsSivGoalEditScreen(@Nullable Screen lastScreen, @NotNull McbsEditorFil in_statSubject.textProperty().set(goal.getStatSubject().toString(), McbsSivGoalEditScreen.class); in_statSubject.textProperty().addChangeListener((_, _, n) -> { try { - goal.setStatSubject(Identifier.parse(n)); + goal.setStatSubject(Identifier.parse(n.trim().toLowerCase(Locale.ROOT))); refreshPreview(); } catch (RuntimeException ignored) {} }); diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewBlocks.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewBlocks.java index 25bfc7c..7bc492f 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewBlocks.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewBlocks.java @@ -1,13 +1,15 @@ package com.thecsdev.betterstats.mcbs.view.statsview; +import com.thecsdev.betterstats.BetterStats; +import com.thecsdev.betterstats.api.mcbs.model.goal.McbsSivGoal; import com.thecsdev.betterstats.api.mcbs.view.statsview.StatsView; import com.thecsdev.betterstats.api.mcbs.view.statsview.StatsViewUtils; import com.thecsdev.betterstats.client.gui.panel.StatsPageChooser; import com.thecsdev.betterstats.client.gui.panel.StatsSummaryPanel; +import com.thecsdev.betterstats.client.gui.screen.McbsSivGoalEditScreen; import com.thecsdev.betterstats.resource.BLanguage; import com.thecsdev.betterstats.resource.BSprites; import com.thecsdev.common.util.annotations.Virtual; -import com.thecsdev.commonmc.api.client.gui.TElement; import com.thecsdev.commonmc.api.client.gui.ctxmenu.TContextMenu; import com.thecsdev.commonmc.api.client.gui.misc.TTextureElement; import com.thecsdev.commonmc.api.client.gui.tooltip.TTooltip; @@ -21,13 +23,16 @@ import net.minecraft.network.chat.Component; import net.minecraft.resources.Identifier; import net.minecraft.server.permissions.Permissions; +import net.minecraft.stats.StatType; import net.minecraft.util.Util; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import java.util.*; +import java.util.function.BiFunction; import java.util.function.Function; import java.util.stream.Collectors; @@ -36,6 +41,8 @@ import static com.thecsdev.commonmc.resource.TComponent.block; import static com.thecsdev.commonmc.resource.TComponent.gui; import static java.util.Comparator.comparing; +import static net.minecraft.core.registries.BuiltInRegistries.BLOCK; +import static net.minecraft.core.registries.BuiltInRegistries.STAT_TYPE; import static net.minecraft.network.chat.Component.translatable; import static net.minecraft.resources.Identifier.DEFAULT_NAMESPACE; import static net.minecraft.resources.Identifier.fromNamespaceAndPath; @@ -100,14 +107,15 @@ //obtain stats instance final var stats = widget.statsProperty().get(); assert stats != null; - //noinspection unchecked - context menu - widget.contextMenuProperty().set((Function)(Object) CTX_MENU, StatsViewBlocks.class); + + //context menu + widget.contextMenuProperty().set(_ -> CTX_MENU.apply(context, widget), StatsViewBlocks.class); } /** * Constructs a context menu for a given {@link TBlockStatsWidget}. */ - private static final Function CTX_MENU = widget -> + private static final BiFunction CTX_MENU = (context, widget) -> { //obtain the stats data and ensure it is present final var stats = widget.statsProperty().get(); @@ -115,6 +123,7 @@ //create the context menu builder final var client = Objects.requireNonNull(widget.getClient(), "Missing 'client' instance"); + final var tab = context.getTab(); final var builder = new TContextMenu.Builder(client); //give command @@ -150,6 +159,50 @@ _ -> Util.getPlatform().openUri(url_wiki)); } + //"Create goal" button + if(BetterStats.getConfig().experimentsEnabled()) { + builder.addContextMenu( + gui("container/cartography_table/map").append(" ").append(BLanguage.gui_statsview_stats_ctxMenu_createGoal()), + _ -> + { + //sub-menu for "Create goal" + final var ctx_newGoal = new TContextMenu.Builder(client); + + //sub-menu entry for each StatType + for(final var statType : STAT_TYPE) + { + //skip non-Item-related StatType-s + if(statType.getRegistry() != BLOCK) continue; + //noinspection unchecked + final var statTypeB = (StatType) statType; + + ctx_newGoal.addButton( + IStatsProvider.getStatTypeName(statTypeB), + _ -> + { + //create and add the goal + final int val = stats.getValues().getOrDefault(statTypeB.get(stats.getSubject()), 0); + final var goal = new McbsSivGoal( + Objects.requireNonNull(STAT_TYPE.getKey(statTypeB)), + stats.getSubjectID(), + val, + val + 64); + tab.putGoal(goal); + + //create and open the goal's editing screen + final var editScreen = new McbsSivGoalEditScreen(client.gui.screen(), tab, goal); + client.gui.setScreen(editScreen.getAsScreen()); + + //in the background, switch view to goals + tab.setCurrentView(StatsViewGoals.INSTANCE); + }); + } + + //build sub-menu + return ctx_newGoal.build(); + }); + } + //close button, and then build and return a new context menu builder.addButton( gui(BSprites.gui_icon_close()).append(" ").append(BLanguage.gui_menubar_file_close()), diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGeneral.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGeneral.java index c91817c..f6a78c0 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGeneral.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGeneral.java @@ -1,10 +1,14 @@ package com.thecsdev.betterstats.mcbs.view.statsview; +import com.thecsdev.betterstats.BetterStats; +import com.thecsdev.betterstats.api.mcbs.model.goal.McbsSivGoal; import com.thecsdev.betterstats.api.mcbs.view.statsview.StatsView; import com.thecsdev.betterstats.api.mcbs.view.statsview.StatsViewUtils; import com.thecsdev.betterstats.client.gui.panel.StatsPageChooser; +import com.thecsdev.betterstats.client.gui.screen.McbsSivGoalEditScreen; import com.thecsdev.betterstats.resource.BLanguage; import com.thecsdev.betterstats.resource.BSprites; +import com.thecsdev.commonmc.api.client.gui.ctxmenu.TContextMenu; import com.thecsdev.commonmc.api.client.gui.misc.TTextureElement; import com.thecsdev.commonmc.api.client.gui.tooltip.TTooltip; import com.thecsdev.commonmc.api.client.gui.widget.TDropdownWidget; @@ -17,16 +21,20 @@ import net.minecraft.network.chat.Component; import net.minecraft.resources.Identifier; import net.minecraft.stats.StatFormatter; +import net.minecraft.stats.Stats; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import java.util.*; +import java.util.function.BiFunction; import java.util.function.Function; import java.util.stream.Collectors; import static com.thecsdev.betterstats.BetterStats.MOD_ID; +import static com.thecsdev.commonmc.resource.TComponent.gui; import static com.thecsdev.commonmc.resource.TComponent.item; import static java.util.Comparator.comparing; +import static net.minecraft.core.registries.BuiltInRegistries.STAT_TYPE; import static net.minecraft.network.chat.Component.literal; import static net.minecraft.network.chat.Component.translatable; import static net.minecraft.resources.Identifier.fromNamespaceAndPath; @@ -92,6 +100,7 @@ public final void postProcessWidget(@NotNull StatsView.StatsInitContext context, //obtain stat instance final var stat = widget.statProperty().get(); assert stat != null; + //stat formatter overrides if(stat.isDistance()) { final var distanceUnit = context.getFilters().getProperty(DistanceUnit.class, DistanceUnit.FID, DistanceUnit.VANILLA); @@ -101,7 +110,54 @@ else if(stat.isTime()) { final var timeUnit = context.getFilters().getProperty(TimeUnit.class, TimeUnit.FID, TimeUnit.VANILLA); widget.formatterOverrideProperty().set(timeUnit.getFormatter(), StatsViewGeneral.class); } + + //context menu + widget.contextMenuProperty().set(_ -> CTX_MENU.apply(context, widget), StatsViewGeneral.class); } + + /** + * Constructs a context menu for a given {@link TCustomStatWidget}. + */ + private static final BiFunction CTX_MENU = (context, widget) -> + { + //obtain the stats data and ensure it is present + final var stat = widget.statProperty().get(); + assert stat != null; + + //create the context menu builder + final var client = Objects.requireNonNull(widget.getClient(), "Missing 'client' instance"); + final var tab = context.getTab(); + final var builder = new TContextMenu.Builder(client); + + //"Create goal" button + if(BetterStats.getConfig().experimentsEnabled()) { + builder.addButton( + gui("container/cartography_table/map").append(" ").append(BLanguage.gui_statsview_stats_ctxMenu_createGoal()), + _ -> + { + //create and add the goal + final var goal = new McbsSivGoal( + Objects.requireNonNull(STAT_TYPE.getKey(Stats.CUSTOM)), + stat.getSubjectID(), + stat.getValue(), + stat.getValue() + 64); + tab.putGoal(goal); + + //create and open the goal's editing screen + final var editScreen = new McbsSivGoalEditScreen(client.gui.screen(), tab, goal); + client.gui.setScreen(editScreen.getAsScreen()); + + //in the background, switch view to goals + tab.setCurrentView(StatsViewGoals.INSTANCE); + }); + } + + //close button, and then build and return a new context menu + builder.addButton( + gui(BSprites.gui_icon_close()).append(" ").append(BLanguage.gui_menubar_file_close()), + _ -> {}); + return builder.build(); + }; // -------------------------------------------------- protected final @Override @NotNull Comparator getStatsSorter(@NotNull Filters filters) throws NullPointerException { return filters.getProperty(SortBy.class, SortBy.FID, SortBy.ALPHABETICAL).getStatsSorter(); diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewItems.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewItems.java index 1ba380c..607f64e 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewItems.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewItems.java @@ -1,13 +1,15 @@ package com.thecsdev.betterstats.mcbs.view.statsview; +import com.thecsdev.betterstats.BetterStats; +import com.thecsdev.betterstats.api.mcbs.model.goal.McbsSivGoal; import com.thecsdev.betterstats.api.mcbs.view.statsview.StatsView; import com.thecsdev.betterstats.api.mcbs.view.statsview.StatsViewUtils; import com.thecsdev.betterstats.client.gui.panel.StatsPageChooser; import com.thecsdev.betterstats.client.gui.panel.StatsSummaryPanel; +import com.thecsdev.betterstats.client.gui.screen.McbsSivGoalEditScreen; import com.thecsdev.betterstats.resource.BLanguage; import com.thecsdev.betterstats.resource.BSprites; import com.thecsdev.common.util.annotations.Virtual; -import com.thecsdev.commonmc.api.client.gui.TElement; import com.thecsdev.commonmc.api.client.gui.ctxmenu.TContextMenu; import com.thecsdev.commonmc.api.client.gui.misc.TTextureElement; import com.thecsdev.commonmc.api.client.gui.tooltip.TTooltip; @@ -21,12 +23,15 @@ import net.minecraft.network.chat.Component; import net.minecraft.resources.Identifier; import net.minecraft.server.permissions.Permissions; +import net.minecraft.stats.StatType; import net.minecraft.util.Util; import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.Item; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import java.util.*; +import java.util.function.BiFunction; import java.util.function.Function; import java.util.stream.Collectors; @@ -34,6 +39,8 @@ import static com.thecsdev.commonmc.api.world.item.TItemUtils.getCreativeModeTab; import static com.thecsdev.commonmc.resource.TComponent.*; import static java.util.Comparator.comparing; +import static net.minecraft.core.registries.BuiltInRegistries.ITEM; +import static net.minecraft.core.registries.BuiltInRegistries.STAT_TYPE; import static net.minecraft.network.chat.Component.translatable; import static net.minecraft.resources.Identifier.DEFAULT_NAMESPACE; import static net.minecraft.resources.Identifier.fromNamespaceAndPath; @@ -94,18 +101,20 @@ protected StatsViewItems() {} * @param widget The newly created {@link TItemStatsWidget}. * @throws NullPointerException If any of the arguments is {@code null}. */ - protected @Virtual void postProcessWidget(@NotNull StatsView.StatsInitContext context, @NotNull TItemStatsWidget widget) { + protected @Virtual void postProcessWidget(@NotNull StatsView.StatsInitContext context, @NotNull TItemStatsWidget widget) + { //obtain stats instance final var stats = widget.statsProperty().get(); assert stats != null; - //noinspection unchecked - context menu - widget.contextMenuProperty().set((Function)(Object) CTX_MENU, StatsViewItems.class); + + //context menu + widget.contextMenuProperty().set(_ -> CTX_MENU.apply(context, widget), StatsViewItems.class); } /** * Constructs a context menu for a given {@link TItemStatsWidget}. */ - private static final Function CTX_MENU = widget -> + private static final BiFunction CTX_MENU = (context, widget) -> { //obtain the stats data and ensure it is present final var stats = widget.statsProperty().get(); @@ -113,6 +122,7 @@ protected StatsViewItems() {} //create the context menu builder final var client = Objects.requireNonNull(widget.getClient(), "Missing 'client' instance"); + final var tab = context.getTab(); final var builder = new TContextMenu.Builder(client); //give command @@ -142,6 +152,50 @@ protected StatsViewItems() {} _ -> Util.getPlatform().openUri(url_wiki)); } + //"Create goal" button + if(BetterStats.getConfig().experimentsEnabled()) { + builder.addContextMenu( + gui("container/cartography_table/map").append(" ").append(BLanguage.gui_statsview_stats_ctxMenu_createGoal()), + _ -> + { + //sub-menu for "Create goal" + final var ctx_newGoal = new TContextMenu.Builder(client); + + //sub-menu entry for each StatType + for(final var statType : STAT_TYPE) + { + //skip non-Item-related StatType-s + if(statType.getRegistry() != ITEM) continue; + //noinspection unchecked + final var statTypeI = (StatType) statType; + + ctx_newGoal.addButton( + IStatsProvider.getStatTypeName(statTypeI), + _ -> + { + //create and add the goal + final int val = stats.getValues().getOrDefault(statTypeI.get(stats.getSubject()), 0); + final var goal = new McbsSivGoal( + Objects.requireNonNull(STAT_TYPE.getKey(statTypeI)), + stats.getSubjectID(), + val, + val + 64); + tab.putGoal(goal); + + //create and open the goal's editing screen + final var editScreen = new McbsSivGoalEditScreen(client.gui.screen(), tab, goal); + client.gui.setScreen(editScreen.getAsScreen()); + + //in the background, switch view to goals + tab.setCurrentView(StatsViewGoals.INSTANCE); + }); + } + + //build sub-menu + return ctx_newGoal.build(); + }); + } + //close button, and then build and return a new context menu builder.addButton( gui(BSprites.gui_icon_close()).append(" ").append(BLanguage.gui_menubar_file_close()), diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewMobs.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewMobs.java index dde2c4a..722ca52 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewMobs.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewMobs.java @@ -1,14 +1,15 @@ package com.thecsdev.betterstats.mcbs.view.statsview; import com.thecsdev.betterstats.BetterStats; +import com.thecsdev.betterstats.api.mcbs.model.goal.McbsSivGoal; import com.thecsdev.betterstats.api.mcbs.view.statsview.StatsView; import com.thecsdev.betterstats.api.mcbs.view.statsview.StatsViewUtils; import com.thecsdev.betterstats.client.gui.panel.StatsPageChooser; import com.thecsdev.betterstats.client.gui.panel.StatsSummaryPanel; +import com.thecsdev.betterstats.client.gui.screen.McbsSivGoalEditScreen; import com.thecsdev.betterstats.resource.BLanguage; import com.thecsdev.betterstats.resource.BSprites; import com.thecsdev.common.util.annotations.Virtual; -import com.thecsdev.commonmc.api.client.gui.TElement; import com.thecsdev.commonmc.api.client.gui.ctxmenu.TContextMenu; import com.thecsdev.commonmc.api.client.gui.misc.TTextureElement; import com.thecsdev.commonmc.api.client.gui.screen.TTextDialogScreen; @@ -23,19 +24,24 @@ import net.fabricmc.api.Environment; import net.minecraft.network.chat.Component; import net.minecraft.resources.Identifier; +import net.minecraft.stats.StatType; import net.minecraft.util.Util; +import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.*; +import java.util.function.BiFunction; import java.util.function.Function; import java.util.stream.Collectors; import static com.thecsdev.betterstats.BetterStats.MOD_ID; import static com.thecsdev.commonmc.resource.TComponent.*; import static java.util.Comparator.comparing; +import static net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE; +import static net.minecraft.core.registries.BuiltInRegistries.STAT_TYPE; import static net.minecraft.network.chat.Component.literal; import static net.minecraft.network.chat.Component.translatable; import static net.minecraft.resources.Identifier.DEFAULT_NAMESPACE; @@ -103,15 +109,16 @@ protected StatsViewMobs() {} //obtain stats instance final var stats = widget.statsProperty().get(); assert stats != null; - //noinspection unchecked - context menu - widget.contextMenuProperty().set((Function)(Object) CTX_MENU, StatsViewMobs.class); + + //context menu + widget.contextMenuProperty().set(_ -> CTX_MENU.apply(context, widget), StatsViewMobs.class); widget.followsCursorProperty().set(BetterStats.getConfig().getGuiMobsFollowCursor(), StatsViewMobs.class); } /** * Constructs a context menu for a given {@link TEntityStatsWidget}. */ - private static final Function CTX_MENU = widget -> + private static final BiFunction CTX_MENU = (context, widget) -> { //obtain the stats data and ensure it is present final var stats = widget.statsProperty().get(); @@ -119,6 +126,7 @@ protected StatsViewMobs() {} //create the context menu builder final var client = Objects.requireNonNull(widget.getClient(), "Missing 'client' instance"); + final var tab = context.getTab(); final var builder = new TContextMenu.Builder(client); //error information @@ -142,6 +150,50 @@ protected StatsViewMobs() {} _ -> Util.getPlatform().openUri(url_wiki)); } + //"Create goal" button + if(BetterStats.getConfig().experimentsEnabled()) { + builder.addContextMenu( + gui("container/cartography_table/map").append(" ").append(BLanguage.gui_statsview_stats_ctxMenu_createGoal()), + _ -> + { + //sub-menu for "Create goal" + final var ctx_newGoal = new TContextMenu.Builder(client); + + //sub-menu entry for each StatType + for(final var statType : STAT_TYPE) + { + //skip non-Item-related StatType-s + if(statType.getRegistry() != ENTITY_TYPE) continue; + //noinspection unchecked + final var statTypeE = (StatType>) statType; + + ctx_newGoal.addButton( + IStatsProvider.getStatTypeName(statTypeE), + _ -> + { + //create and add the goal + final int val = stats.getValues().getOrDefault(statTypeE.get(stats.getSubject()), 0); + final var goal = new McbsSivGoal( + Objects.requireNonNull(STAT_TYPE.getKey(statTypeE)), + stats.getSubjectID(), + val, + val + 64); + tab.putGoal(goal); + + //create and open the goal's editing screen + final var editScreen = new McbsSivGoalEditScreen(client.gui.screen(), tab, goal); + client.gui.setScreen(editScreen.getAsScreen()); + + //in the background, switch view to goals + tab.setCurrentView(StatsViewGoals.INSTANCE); + }); + } + + //build sub-menu + return ctx_newGoal.build(); + }); + } + //close button, and then build and return a new context menu builder.addButton( gui(BSprites.gui_icon_close()).append(" ").append(BLanguage.gui_menubar_file_close()), diff --git a/src/main/java/com/thecsdev/betterstats/resource/BLanguage.java b/src/main/java/com/thecsdev/betterstats/resource/BLanguage.java index e90dda9..7f5685e 100644 --- a/src/main/java/com/thecsdev/betterstats/resource/BLanguage.java +++ b/src/main/java/com/thecsdev/betterstats/resource/BLanguage.java @@ -115,6 +115,7 @@ private BLanguage() {} public static final MutableComponent gui_statsview_stats_noGoals() { return translatable("betterstats.gui.statsview.stats.no_goals"); } public static final MutableComponent gui_statsview_stats_ctxMenu_viewErrorInfo() { return translatable("betterstats.gui.statsview.stats.ctxmenu.view_error_info"); } public static final MutableComponent gui_statsview_stats_ctxMenu_viewOnWiki() { return translatable("betterstats.gui.statsview.stats.ctxmenu.view_on_wiki"); } + public static final MutableComponent gui_statsview_stats_ctxMenu_createGoal() { return translatable("betterstats.gui.statsview.stats.ctxmenu.create_goal"); } public static final MutableComponent gui_statsview_stats_mcbsGoals() { return translatable("betterstats.gui.statsview.mcbs_goals"); } public static final MutableComponent gui_statsview_stats_mcbsGoals_alert1Prefix() { return translatable("betterstats.gui.statsview.mcbs_goals.alert1.prefix"); } public static final MutableComponent gui_statsview_stats_mcbsGoals_alert1() { return translatable("betterstats.gui.statsview.mcbs_goals.alert1"); } diff --git a/src/main/resources/assets/betterstats/lang/docs/index.html b/src/main/resources/assets/betterstats/lang/docs/index.html index 89e8faf..0c5a94f 100644 --- a/src/main/resources/assets/betterstats/lang/docs/index.html +++ b/src/main/resources/assets/betterstats/lang/docs/index.html @@ -434,6 +434,13 @@ article about the corresponding thing. That choise uses this textual label.
    + +
    +

    betterstats.gui.statsview.stats.ctxmenu.create_goal

    + Right-clicking statistics about a given thing may present the user with a choice to create a "Goal" about + said thing. +
    +

    betterstats.gui.statsview.mcbs_goals

    diff --git a/src/main/resources/assets/betterstats/lang/en_us.json b/src/main/resources/assets/betterstats/lang/en_us.json index a1d0ad2..f9642ba 100644 --- a/src/main/resources/assets/betterstats/lang/en_us.json +++ b/src/main/resources/assets/betterstats/lang/en_us.json @@ -67,6 +67,7 @@ "betterstats.gui.statsview.stats.no_goals": "There are no goals to show yet...", "betterstats.gui.statsview.stats.ctxmenu.view_error_info": "View error info", "betterstats.gui.statsview.stats.ctxmenu.view_on_wiki": "View on Wiki", + "betterstats.gui.statsview.stats.ctxmenu.create_goal": "Create goal", "betterstats.gui.statsview.mcbs_goals": "Goals", "betterstats.gui.statsview.mcbs_goals.alert1.prefix": "[New ✨]", "betterstats.gui.statsview.mcbs_goals.alert1": "Define custom milestones to track your progress toward specific statistical targets like resource collection.", diff --git a/src/main/resources/assets/betterstats/lang/zh_cn.json b/src/main/resources/assets/betterstats/lang/zh_cn.json index bda12f6..58bf08e 100644 --- a/src/main/resources/assets/betterstats/lang/zh_cn.json +++ b/src/main/resources/assets/betterstats/lang/zh_cn.json @@ -67,6 +67,7 @@ "betterstats.gui.statsview.stats.no_goals": "There are no goals to show yet...", "betterstats.gui.statsview.stats.ctxmenu.view_error_info": "View error info", "betterstats.gui.statsview.stats.ctxmenu.view_on_wiki": "在 Wiki 上查看", + "betterstats.gui.statsview.stats.ctxmenu.create_goal": "Create goal", "betterstats.gui.statsview.mcbs_goals": "Goals", "betterstats.gui.statsview.mcbs_goals.alert1.prefix": "[New ✨]", "betterstats.gui.statsview.mcbs_goals.alert1": "Define custom milestones to track your progress toward specific statistical targets like resource collection.", From 7399f89c580c00d5f5dc964916841574014d2441 Mon Sep 17 00:00:00 2001 From: TheCSDev Date: Mon, 6 Jul 2026 15:34:19 +0200 Subject: [PATCH 03/10] Release 5.4.2+fn-26.2 (#44) * Add Russian localization for Better Statistics (#43) --------- Co-authored-by: ADevnin <131694536+ADevnin@users.noreply.github.com> --- README.md | 2 +- gradle.properties | 6 +- ...-26.2.jar => tcdcommons-5.4.1+fn-26.2.jar} | Bin 461173 -> 462788 bytes .../assets/betterstats/lang/docs/index.html | 2 +- .../assets/betterstats/lang/ru_ru.json | 198 ++++++++++++++++++ src/main/resources/betterstats.credits.json | 6 + 6 files changed, 209 insertions(+), 5 deletions(-) rename src/main/resources/META-INF/jarjar/{tcdcommons-5.4.0+fn-26.2.jar => tcdcommons-5.4.1+fn-26.2.jar} (93%) create mode 100644 src/main/resources/assets/betterstats/lang/ru_ru.json diff --git a/README.md b/README.md index 2c9d88e..a87135c 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ This mod depends on some other mods that first need to be installed before this Follow these steps to build the project from source. ### Prerequisites -* **Java 21**: Ensure you have the Java Development Kit (JDK) 21 installed. +* **Java 25**: Ensure you have the Java Development Kit (JDK) installed. * **Git**: Required to clone this repository. ### Instructions diff --git a/gradle.properties b/gradle.properties index bfe5792..4893f6e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ maven.group = com.thecsdev # Mod properties mod.id = betterstats -mod.version = 5.4.1 +mod.version = 5.4.2 mod.name = Better Statistics Screen mod.description = A Minecraft mod that improves the statistics screen and makes it more useful. mod.author = TheCSDev @@ -48,7 +48,7 @@ fabric.api_version = 0.152.1+26.2 fabric.json.depends.minecraft = ~26.2 fabric.json.depends.fabricloader = >=0.19.3 fabric.json.depends.fabric-api = >=0.152.1 - fabric.json.depends.tcdcommons = >=5.4.0 + fabric.json.depends.tcdcommons = >=5.4.1 # Neo-Forge properties neoforge.version = 26.1.0.7-beta @@ -57,4 +57,4 @@ neoforge.version = 26.1.0.7-beta net.toml.loaderVersion = [4,) neo.toml.dependencies.neoforge = [26.2.0.1-beta,) neo.toml.dependencies.minecraft = [26.2, 26.3) - neo.toml.dependencies.tcdcommons = [5.4.0,) + neo.toml.dependencies.tcdcommons = [5.4.1,) diff --git a/src/main/resources/META-INF/jarjar/tcdcommons-5.4.0+fn-26.2.jar b/src/main/resources/META-INF/jarjar/tcdcommons-5.4.1+fn-26.2.jar similarity index 93% rename from src/main/resources/META-INF/jarjar/tcdcommons-5.4.0+fn-26.2.jar rename to src/main/resources/META-INF/jarjar/tcdcommons-5.4.1+fn-26.2.jar index 135a7c158b8ce77a1fd1a99bc71660021dff4f15..bde03a70b7ac3f5e4492b92c79d9ce30bb0e580b 100644 GIT binary patch delta 19463 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 QEwz^1E?m@>BTAM30UZApfB*mh delta 17776 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%0DKiR7s3d=JE{Wm z;h>tM8dMt*+z~Orkq{AjSA;4A_2C`i05EHy){rN(|1+o&ae!xZh=hPs6jmjEg@-7funjbRnFZsP1b|?_WvR8 zAy16%JbZwPF(MHl(G0rL8$q|YGA^-QY)VmjI|2{no?*wdsQ2|(i+zwO{hv6^xo|Nz>z~nR36B78( zkqJmELZkv(hoO?dtQWX*b(aCo?NDcUDB#o%r3J_<5U~MLt^emmt-h;`0#K_%L28oL{7qWBq2`eNp1(AzJ>c9pkKdD#9;g*WY4*;b0StP<=&1i0nRAFF zKx-H{YouSmX?{O{uPIqTB)G?!ces1w9xr?W^Z0Dt8?oDnr1zSdK2Wo`bBE&~Df{>C zkbbBpWa)p#bw5}Q-1)tS-~wF9UfN)r0|Q{71RM}J1P&k81tL0t^%dO75mEjkl&DD9 z_nT}JF4BM3)fCQOxh+qiVk3p zgHe6|5*x^@;$0LSfIR_vD3$&(k|v?ZK*k!_yS52%7_9zKTgbDg|4)Gjyi!LZ06rOm zvLBP64AB19^;riTNd0e6UW$J|@q~jD{Of$l4eZeWe|ijH?i=(OM8oV~U@--P1IvHG z!4$Y757_<-VAJ3%KX&*R;Ld>eEq=~-fCXUQ0L%J11D4hO58(mGXF+$L>z$hipmGN% zvw0TmvYh)pk(dKFOE%AYV}1_Io$YmRIL(8Gyw9Bx1Bvpxhs*v*Soc@jy9EF^jDjO= z9RM6HK+UvSSR2;QvLoPVsQWI!qN$p2oiJ*oS#6SqZpnd!8w_j*#cZ>$Rfb|Qz#k2*(nkr zeh$vh@F`Ref&Aw`)+0dm3@l&j9LP9>+Ci8u0F0kd_4{XElb>KhgiFBtCsc{z{xJp) zZWjDnll(vX#p;k%_r@U+6e;Nv^lJPCfEZ*b8W4$%Ob^6sK(T-#eCU5K835kD z(ZKvAR2+!8x;xhh|H1?0V2-a>U}_|?d(3$aZeUB4e`yXMffbfqgBo(G|BK0Qz%e&s zy2F(BcUX7(Owtgz$dmt})WEy3|KBah)ITmJ!0#8Bl#2N-nhB8L1b6eBJ5v2WBFPOl z>~jkeIF@_OKjh*TJkuYr{vkL(>~B!B^Dn`8hmWiap<(|c!2r~Fp{VbQkX7MvfR!8Y z&ft&(d@uvkVE~-)$T|>2&OcgIfSn(T3LyOkw}o?fWHQM1-#!@#vLR%Y>s~D(2(J8p zo>5Q)|Igr4asQFv0)`04s*sDn$tD7_Hl&2-j|LN%6N2IZPz+>VARYl314rpUYbk;E z|0-?J!S$P^4LdO4Jf(CFy!RChk!JI$?6dVQ$fEodr8F(%ZwyGiq z?xzCJ1lrM&6Cl=)?~XD+Dh60M z3LsSi>y*R<>s*%pLkR90AjJY3_$YIaiLsG!fG{jjs4Mq}SU_myfdFh|K`b+P RGx)9+IJi_LDEP6!{|AO%Dxv@Y diff --git a/src/main/resources/assets/betterstats/lang/docs/index.html b/src/main/resources/assets/betterstats/lang/docs/index.html index 0c5a94f..4449cdb 100644 --- a/src/main/resources/assets/betterstats/lang/docs/index.html +++ b/src/main/resources/assets/betterstats/lang/docs/index.html @@ -726,7 +726,7 @@
  1. %1$s - Stat type name. Ex. "Times used", "Times mined", etc.
  2. %2$s - Stat subject name. Ex. "Stone", "Apple", "Iron Helmet", etc.
  3. - %3$d - Target range value: from. When creating a goal, user has to define a + %3$d - Target range value: to. When creating a goal, user has to define a target "from / to" range. This is the to value. This argument is largely unused.
  4. diff --git a/src/main/resources/assets/betterstats/lang/ru_ru.json b/src/main/resources/assets/betterstats/lang/ru_ru.json new file mode 100644 index 0000000..c5551b2 --- /dev/null +++ b/src/main/resources/assets/betterstats/lang/ru_ru.json @@ -0,0 +1,198 @@ +{ + "modmenu.nameTranslation.betterstats" : "Better Statistics Screen", + "modmenu.summaryTranslation.betterstats" : "Мод для Minecraft, который улучшает экран статистики и делает его более полезным.", + + "mobCategory.monster" : "Монстры", + "mobCategory.creature" : "Существа", + "mobCategory.ambient" : "Окружающие сущности", + "mobCategory.axolotls" : "Аксолотли", + "mobCategory.underground_water_creature" : "Подземные водные существа", + "mobCategory.water_creature" : "Водные существа", + "mobCategory.water_ambient" : "Водные окружающие сущности", + "mobCategory.misc" : "Прочее", + + "stat.blocksButton" : "Блоки", + "stat.betterstats.time_since_login" : "Время этой сессии", + + "commands.statistics.edit.output" : "Отредактирована статистика %s для %d игрока(ов).", + "commands.statistics.clear.output" : "Статистика очищена для %d игрока(ов).", + "commands.statistics.clear.kick" : "Ваша статистика была очищена, для применения изменений необходимо переподключиться к серверу.", + "commands.statistics.query.output" : "Значение статистики %s для %s составляет %d.", + + "betterstats.config.common.register_commands" : "Регистрация команд", + "betterstats.config.common.register_commands.tooltip" : "Регистрирует команды мода (например, '/statistics').", + "betterstats.config.common.api_endpoint" : "Конечная точка API", + "betterstats.config.common.api_endpoint.tooltip" : "URI-адрес конечной точки REST-ful HTTP API, используемый модом для связи с серверами разработчика.", + "betterstats.config.common.experimental_features" : "Экспериментальные функции", + "betterstats.config.common.experimental_features.tooltip" : "Включение экспериментальных функций.\nТакие функции могут работать нестабильно, приводить к сбоям или потере данных. Вы активируете их на свой страх и риск, после чего необходимо перезапустить игру.\n\nНаличие подобных функций не гарантирует их появление в финальной версии. Они могут быть удалены в любой момент без предупреждения.", + "betterstats.config.client.allow_chat_psa" : "Разрешить служебные сообщения в чате", + "betterstats.config.client.allow_chat_psa.tooltip" : "Разрешает редкие информационные сообщения от разработчика мода в чате. Отключите для подавления всех подобных уведомлений.", + "betterstats.config.client.gui_mobs_follow_cursor" : "Мобы в интерфейсе следят за курсором", + "betterstats.config.client.gui_mobs_follow_cursor.tooltip" : "Мобы в графическом интерфейсе статистики визуально следят за положением курсора.", + + "betterstats.gui.screen.edit_siv_goal.stat_type" : "Тип статистики (Действие)", + "betterstats.gui.screen.edit_siv_goal.stat_subject" : "Предмет статистики (Предмет/Сущность и др.)", + "betterstats.gui.screen.edit_siv_goal.target_value_range" : "Диапазон целевого значения", + + "betterstats.gui.menubar.file" : "Файл", + "betterstats.gui.menubar.file.new" : "Новый", + "betterstats.gui.menubar.file.open" : "Открыть", + "betterstats.gui.menubar.file.save_as" : "Сохранить как", + "betterstats.gui.menubar.file.settings" : "Настройки", + "betterstats.gui.menubar.file.close" : "Закрыть", + "betterstats.gui.menubar.view" : "Вид", + "betterstats.gui.menubar.view.vanilla_screen" : "Ванильный экран", + "betterstats.gui.menubar.view.homepage" : "Главная", + "betterstats.gui.menubar.view.local_player_stats" : "Моя статистика", + "betterstats.gui.menubar.view.stats_view" : "Переключить вид", + "betterstats.gui.menubar.about" : "О моде", + "betterstats.gui.menubar.about.source_code" : "Исходный код", + "betterstats.gui.menubar.about.support_me" : "Поддержать автора", + "betterstats.gui.menubar.about.legal_notices" : "Юридическая информация", + + "betterstats.gui.statsview.filters" : "Фильтры", + "betterstats.gui.statsview.filter.selected_view" : "Выбранный вид", + "betterstats.gui.statsview.filter.search" : "Поиск", + "betterstats.gui.statsview.filter.show_all_stats" : "Показать всю статистику", + "betterstats.gui.statsview.filter.hide_completed_goals" : "Скрыть выполненные цели", + "betterstats.gui.statsview.filter.sort_by" : "Сортировать по", + "betterstats.gui.statsview.filter.group_by" : "Группировать по", + "betterstats.gui.statsview.filter.group_by.all" : "Всё", + "betterstats.gui.statsview.filter.group_by.mod" : "Название мода", + "betterstats.gui.statsview.filter.group_by.mob_category" : "Категория моба", + "betterstats.gui.statsview.filter.group_by.creative_mode_tab" : "Группа предметов", + "betterstats.gui.statsview.filter.distance_unit" : "Единица расстояния", + "betterstats.gui.statsview.filter.time_unit" : "Единица времени", + "betterstats.gui.statsview.stats.no_stats" : "Статистика пока отсутствует...", + "betterstats.gui.statsview.stats.no_goals" : "Цели пока отсутствуют...", + "betterstats.gui.statsview.stats.ctxmenu.view_error_info" : "Просмотр информации об ошибке", + "betterstats.gui.statsview.stats.ctxmenu.view_on_wiki" : "Просмотр на Wiki", + "betterstats.gui.statsview.stats.ctxmenu.create_goal" : "Создать цель", + "betterstats.gui.statsview.mcbs_goals" : "Цели", + "betterstats.gui.statsview.mcbs_goals.alert1.prefix" : "[Новое ✨]", + "betterstats.gui.statsview.mcbs_goals.alert1" : "Создавайте пользовательские этапы для отслеживания прогресса достижения конкретных целей статистики, таких как сбор ресурсов.", + "betterstats.gui.statsview.mcbs_goals.alert2.prefix" : "[Примечание 💾]", + "betterstats.gui.statsview.mcbs_goals.alert2" : "Эти цели не сохраняются после переподключения и перезапуска игры. Эта функция, возможно, будет реализована в будущем.", + "betterstats.gui.statsview.mcbs_goals.overview" : "Обзор", + "betterstats.gui.statsview.mcbs_goals.overview.completed_goals" : "Выполненные цели", + "betterstats.gui.statsview.mcbs_goals.overview.total_progress" : "Общий прогресс", + "betterstats.gui.statsview.mcbs_goals.new_btn" : "[ + Новая цель ]", + "betterstats.gui.statsview.mcbs_goals.manage_btn" : "Управление целями", + "betterstats.gui.statsview.mcbs_goals.edit_btn" : "Редактировать цель", + "betterstats.gui.statsview.mcbs_goals.delete_btn" : "Удалить цель", + "betterstats.gui.statsview.mcbs_goals.delete_btn.confirm" : "Вы уверены?", + "betterstats.gui.statsview.mcbs_goals.no_edit_gui" : "У данного типа цели нет интерфейса редактирования.", + + "betterstats.gui.home_tab.featured_stats" : "Основные статистические данные", + + "betterstats.credits" : "Авторы", + "betterstats.credits.section.top_sponsors" : "Главные спонсоры", + "betterstats.credits.section.top_sponsors.summary" : "Основные финансовые вложения в проект.", + "betterstats.credits.section.recent_sponsors" : "Последние спонсоры", + "betterstats.credits.section.recent_sponsors.summary" : "Недавние финансовые вложения в проект.", + "betterstats.credits.section.recent_sponsors.entry.sponsor" : "[+] [Спонсор]", + "betterstats.credits.section.recent_sponsors.entry.sponsor.summary" : "Внесите вклад в развитие этого мода, став спонсором.", + "betterstats.credits.section.special_thanks" : "Особая благодарность", + "betterstats.credits.section.special_thanks.summary" : "Благодарности тем, кто сделал этот мод возможным.", + "betterstats.credits.section.special_thanks.entry.you" : "[Вы]", + "betterstats.credits.section.special_thanks.entry.you.summary" : "Особая благодарность ВАМ за поддержку и помощь в развитии мода.", + "betterstats.credits.section.special_thanks.entry.contributors" : "[Участники]", + "betterstats.credits.section.special_thanks.entry.contributors.summary" : "Все, кто помогал с модом, сообщал об ошибках и оставлял отзывы. Ваша помощь неоценима.", + "betterstats.credits.section.contributors" : "Участники разработки", + "betterstats.credits.section.contributors.summary" : "Члены сообщества, внесшие свой вклад в этот мод в версии v5.X.", + "betterstats.credits.section.contributors.entry.contribute" : "[+] [Участвовать]", + "betterstats.credits.section.contributors.entry.contribute.summary" : "Внесите вклад в разработку мода, чтобы попасть в этот список.", + "betterstats.credits.section.founder_contributors" : "Основатели-участники", + "betterstats.credits.section.founder_contributors.summary" : "Члены сообщества, внесшие свой вклад в мод до версии v5.X.", + + "betterstats.mcbsgoaltype.betterstats.stat_int_value" : "Общая числовая цель", + + "betterstats.mcbsgoal.siv_objective" : "%4$d [%1$s] для [%2$s]", + "betterstats.mcbsgoal.siv_objective.betterstats.edit_this_goal" : "Редактировать эту цель", + "betterstats.mcbsgoal.siv_objective.minecraft.custom" : "Выполнить [%2$s] %4$d раз(а)", + "betterstats.mcbsgoal.siv_objective.minecraft.broken" : "Сломать %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.crafted" : "Создать %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.dropped" : "Выбросить %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.mined" : "Добыть %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.picked_up" : "Подобрать %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.used" : "Использовать %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.killed" : "Убить %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.killed_by" : "Погибнуть от %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.animals_bred" : "Развести %4$d животных", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.aviate_one_cm" : "Пролететь %4$d см на элитрах", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.bell_ring" : "Позвонить в %4$d колоколов", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.boat_one_cm" : "Проплыть на лодке %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_armor" : "Очистить %4$d частей брони", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_banner" : "Очистить %4$d флагов", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_shulker_box" : "Очистить %4$d шалкеровых ящиков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.climb_one_cm" : "Пролезть %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.crouch_one_cm" : "Прокрасться %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_absorbed" : "Поглотить %4$d урона", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_blocked_by_shield" : "Заблокировать %4$d урона", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt" : "Нанести %4$d урона", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_absorbed" : "Нанести %4$d урона (поглощено)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_resisted" : "Нанести %4$d урона (сопротивление)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_resisted" : "Отразить %4$d урона", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_taken" : "Получить %4$d урона", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.deaths" : "Умереть %4$d раз(а)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.drop" : "Выбросить %4$d предметов", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.eat_cake_slice" : "Съесть %4$d кусочков торта", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.enchant_item" : "Зачаровать %4$d предметов", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fall_one_cm" : "Упасть с высоты %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fill_cauldron" : "Наполнить %4$d котлов", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fish_caught" : "Поймать %4$d рыб", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fly_one_cm" : "Пролететь %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.happy_ghast_one_cm" : "Пролететь %4$d см с довольным гастом", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.horse_one_cm" : "Проехать на лошади %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_dispenser" : "Изучить %4$d раздатчиков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_dropper" : "Изучить %4$d выбрасывателей", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_hopper" : "Изучить %4$d воронок", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_anvil" : "Взаимодействовать с %4$d наковальнями", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_beacon" : "Взаимодействовать с %4$d маяками", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_blast_furnace" : "Взаимодействовать с %4$d плавильными печами", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_brewingstand" : "Взаимодействовать с %4$d варочными стойками", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_campfire" : "Взаимодействовать с %4$d кострами", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_cartography_table" : "Взаимодействовать с %4$d столами картографа", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_crafting_table" : "Взаимодействовать с %4$d верстаками", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_furnace" : "Взаимодействовать с %4$d печами", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_grindstone" : "Взаимодействовать с %4$d точилами", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_lectern" : "Взаимодействовать с %4$d кафедрами", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_loom" : "Взаимодействовать с %4$d ткацкими станками", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_smithing_table" : "Взаимодействовать с %4$d столами кузнеца", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_smoker" : "Взаимодействовать с %4$d коптилками", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_stonecutter" : "Взаимодействовать с %4$d камнерезами", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.jump" : "Прыгнуть %4$d раз(а)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.leave_game" : "Выйти из игры %4$d раз(а)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.minecart_one_cm" : "Проехать на вагонетке %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.mob_kills" : "Убить %4$d мобов", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.nautilus_one_cm" : "Проплыть с наутилусом %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_barrel" : "Открыть %4$d бочек", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_chest" : "Открыть %4$d сундуков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_enderchest" : "Открыть %4$d эндер-сундуков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_shulker_box" : "Открыть %4$d шалкеровых ящиков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.pig_one_cm" : "Проехать на свинье %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_noteblock" : "Включить %4$d нотных блоков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_record" : "Проиграть %4$d пластинок", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_time" : "Играть %4$d тиков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.player_kills" : "Убить %4$d игроков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.pot_flower" : "Посадить %4$d растений", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.raid_trigger" : "Начать %4$d рейдов", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.raid_win" : "Выиграть %4$d рейдов", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sleep_in_bed" : "Поспать в %4$d кроватях", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sneak_time" : "Просидеть в присяди %4$d тиков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sprint_one_cm" : "Пробежать %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.strider_one_cm" : "Проехать на страйдере %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.swim_one_cm" : "Проплыть %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.talked_to_villager" : "Поговорить с %4$d жителями", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.target_hit" : "Попасть в %4$d мишеней", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.time_since_death" : "Не умирать %4$d тиков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.time_since_rest" : "Не отдыхать %4$d тиков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.total_world_time" : "Играть %4$d тиков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.traded_with_villager" : "Торговать с %4$d жителями", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.trigger_trapped_chest" : "Активировать %4$d сундуков-ловушек", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.tune_noteblock" : "Настроить %4$d нотных блоков", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.use_cauldron" : "Использовать котлы %4$d раз(а)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_on_water_one_cm" : "Пройти %4$d см по воде", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_one_cm" : "Пройти %4$d см", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_under_water_one_cm" : "Пройти %4$d см под водой" +} diff --git a/src/main/resources/betterstats.credits.json b/src/main/resources/betterstats.credits.json index 1a0fea5..1da6cc5 100644 --- a/src/main/resources/betterstats.credits.json +++ b/src/main/resources/betterstats.credits.json @@ -6,6 +6,12 @@ "summary": { "translate": "betterstats.credits.section.contributors.summary" }, "entries": [ + { + "avatar_uri": "https://avatars.githubusercontent.com/u/131694536?v=4", + "name": "ADevnin", + "summary": "Translated this mod to 'Russian'.", + "homepage_uri": "https://github.com/ADevnin" + }, { "avatar_uri": "https://avatars.githubusercontent.com/u/110760354?v=4", "name": "WForst-Breeze", From a5c829c12b41f8f48069009426d43b2cb950c212 Mon Sep 17 00:00:00 2001 From: TheCSDev Date: Wed, 15 Jul 2026 14:03:06 +0200 Subject: [PATCH 04/10] Release 5.5.0+fn-26.2 (#46) - Resolve #45 --- .github/ISSUE_TEMPLATE/bug_report.yml | 9 +- gradle.properties | 6 +- .../controller/tab/McbsEditorFileTab.java | 1 - .../betterstats/api/mcbs/model/McbsStats.java | 16 +-- .../betterstats/client/BetterStatsClient.java | 30 ++++++ .../client/gui/panel/PersonalHomePanel.java | 92 +++++++++++------- ...-26.2.jar => tcdcommons-5.5.0+fn-26.2.jar} | Bin 462788 -> 465155 bytes 7 files changed, 100 insertions(+), 54 deletions(-) rename src/main/resources/META-INF/jarjar/{tcdcommons-5.4.1+fn-26.2.jar => tcdcommons-5.5.0+fn-26.2.jar} (91%) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 5c9f819..336707d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -20,8 +20,8 @@ body: **Version format:** v[mod_version]+[mod_loader]-[minecraft_version] - **Version example:** v5.0+fabric-1.26 - **Title example:** [v5.3.1+neoforge-1.26.2] Red "Do not click" button + **Version example:** v5.0+fabric-26 + **Title example:** [v5.3.1+neoforge-26.1.2] Red "Do not click" button crashes the game when clicked - type: textarea id: description @@ -69,9 +69,8 @@ body: mod-pack. This helps project maintainers reproduce the issue, as other mods often can and do cause issues. placeholder: >- - Name a list of mods or link a mod-pack here. Please do not expect - project maintainers to manually download and install like 300 separate - mods. + Name a list of mods or link a mod-pack here. To rule out mod conflicts, it is + advised to reproduce the issue without other mods present (except for dependencies). validations: required: true - type: checkboxes diff --git a/gradle.properties b/gradle.properties index 4893f6e..622268b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ maven.group = com.thecsdev # Mod properties mod.id = betterstats -mod.version = 5.4.2 +mod.version = 5.5.0 mod.name = Better Statistics Screen mod.description = A Minecraft mod that improves the statistics screen and makes it more useful. mod.author = TheCSDev @@ -48,7 +48,7 @@ fabric.api_version = 0.152.1+26.2 fabric.json.depends.minecraft = ~26.2 fabric.json.depends.fabricloader = >=0.19.3 fabric.json.depends.fabric-api = >=0.152.1 - fabric.json.depends.tcdcommons = >=5.4.1 + fabric.json.depends.tcdcommons = >=5.5.0 # Neo-Forge properties neoforge.version = 26.1.0.7-beta @@ -57,4 +57,4 @@ neoforge.version = 26.1.0.7-beta net.toml.loaderVersion = [4,) neo.toml.dependencies.neoforge = [26.2.0.1-beta,) neo.toml.dependencies.minecraft = [26.2, 26.3) - neo.toml.dependencies.tcdcommons = [5.4.1,) + neo.toml.dependencies.tcdcommons = [5.5.0,) diff --git a/src/main/java/com/thecsdev/betterstats/api/mcbs/controller/tab/McbsEditorFileTab.java b/src/main/java/com/thecsdev/betterstats/api/mcbs/controller/tab/McbsEditorFileTab.java index e9c04bc..3e19f6d 100644 --- a/src/main/java/com/thecsdev/betterstats/api/mcbs/controller/tab/McbsEditorFileTab.java +++ b/src/main/java/com/thecsdev/betterstats/api/mcbs/controller/tab/McbsEditorFileTab.java @@ -155,7 +155,6 @@ public final void setCurrentView(@NotNull StatsView view) throws NullPointerExce /** * Puts an {@link McbsGoal} into {@link McbsFile#getGoals()}. * @param goal The {@link McbsGoal} to add. - * @return {@code true} if the {@link McbsFile} did not already contain the goal. * @throws NullPointerException If the argument is {@code null}. */ public final void putGoal(@NotNull McbsGoal goal) throws NullPointerException diff --git a/src/main/java/com/thecsdev/betterstats/api/mcbs/model/McbsStats.java b/src/main/java/com/thecsdev/betterstats/api/mcbs/model/McbsStats.java index 3fc7670..f1d319b 100644 --- a/src/main/java/com/thecsdev/betterstats/api/mcbs/model/McbsStats.java +++ b/src/main/java/com/thecsdev/betterstats/api/mcbs/model/McbsStats.java @@ -37,14 +37,15 @@ private McbsStats( // ================================================== /** * Clears redundant statistic data like zero-value entries and empty maps. + * @apiNote Costly operation. Avoid frequent calls! */ private final @ApiStatus.Internal void cleanUp() { //remove zero-value statistic entries - for(final var statTypeEntry : this.intStats.entrySet()) - statTypeEntry.getValue().entrySet().removeIf(e -> e.getValue() == 0); + for(final var statTypeEntry : this.intStats.values()) + statTypeEntry.values().removeIf(e -> e == 0); //remove empty stat-type maps - this.intStats.entrySet().removeIf(e -> e.getValue().isEmpty()); + this.intStats.values().removeIf(ConcurrentHashMap::isEmpty); } // ================================================== /** @@ -52,7 +53,6 @@ private McbsStats( * integer-based statistics values. */ public final @NotNull ConcurrentHashMap> getIntValues() { - cleanUp(); return this.intStats; } @@ -66,8 +66,7 @@ private McbsStats( @NotNull Identifier type) throws NullPointerException { Objects.requireNonNull(type); - cleanUp(); - return this.intStats.computeIfAbsent(type, __ -> new ConcurrentHashMap<>()); + return this.intStats.computeIfAbsent(type, _ -> new ConcurrentHashMap<>()); } // ================================================== /** @@ -226,7 +225,6 @@ public final void clearAndAddAll(@NotNull IStatsProvider statsProvider) throws N public final void forEach(@NotNull McbsStats.IntValueConsumer consumer) throws NullPointerException { Objects.requireNonNull(consumer); - cleanUp(); for(final var statTypeEntry : this.intStats.entrySet()) { final var statTypeId = statTypeEntry.getKey(); for(final var statSubjectEntry : statTypeEntry.getValue().entrySet()) { @@ -274,6 +272,8 @@ public final void forEach(@NotNull McbsStats.IntValueConsumer consumer) throws N * {@link Codec} implementation for {@link McbsStats}. */ @ApiStatus.Internal - static final Codec CODEC = CODEC_INT_STATS.xmap(McbsStats::new, McbsStats::getIntValues); + static final Codec CODEC = CODEC_INT_STATS.xmap( + McbsStats::new, + stats -> { stats.cleanUp(); return stats.getIntValues(); }); // ================================================== ================================================== } diff --git a/src/main/java/com/thecsdev/betterstats/client/BetterStatsClient.java b/src/main/java/com/thecsdev/betterstats/client/BetterStatsClient.java index 92e7ba0..bb28b86 100644 --- a/src/main/java/com/thecsdev/betterstats/client/BetterStatsClient.java +++ b/src/main/java/com/thecsdev/betterstats/client/BetterStatsClient.java @@ -41,6 +41,36 @@ public BetterStatsClient() //keep track of last login time ClientEvent.PLAYER_JOIN.addListener(_ -> LAST_LOGIN_TIME = System.currentTimeMillis()); ClientEvent.PLAYER_QUIT.addListener(_ -> LAST_LOGIN_TIME = System.currentTimeMillis()); + + //FIXME - REMOVE TEST CODE THAT POPULATES STATS WITH ARBITRARY NUMBERS: + /* + ClientEvent.PLAYER_JOIN.addListener(_ -> + { + //obtain singleplayer server + final var server = Minecraft.getInstance().getSingleplayerServer(); + if(server == null) return; + + //continue execution on server-side + server.execute(() -> + { + //obtain the first player (who is usually the main player) + final var player = server.getPlayerList().getPlayers().stream().findFirst().orElse(null); + if(player == null) return; + final var stats = player.getStats(); + final var rng = new Random(); + + //noinspection unchecked | award every single stat in the game to the player + for(final var statType : (Registry>)(Object) BuiltInRegistries.STAT_TYPE) + { + //skip "custom/general" statistics + if(((Object) statType) == Stats.CUSTOM) continue; + //populate all other stat types + for(final var statSubject : statType.getRegistry()) + stats.setValue(player, statType.get(statSubject), rng.nextInt(0, 1024)); + } + }); + }); + */ } // ================================================== /** diff --git a/src/main/java/com/thecsdev/betterstats/client/gui/panel/PersonalHomePanel.java b/src/main/java/com/thecsdev/betterstats/client/gui/panel/PersonalHomePanel.java index d8091bd..effc568 100644 --- a/src/main/java/com/thecsdev/betterstats/client/gui/panel/PersonalHomePanel.java +++ b/src/main/java/com/thecsdev/betterstats/client/gui/panel/PersonalHomePanel.java @@ -23,10 +23,7 @@ import com.thecsdev.commonmc.api.client.gui.widget.TButtonWidget; import com.thecsdev.commonmc.api.client.gui.widget.TClickableWidget; import com.thecsdev.commonmc.api.client.gui.widget.stats.TTextualStatWidget; -import com.thecsdev.commonmc.api.stats.util.BlockStats; -import com.thecsdev.commonmc.api.stats.util.CustomStat; -import com.thecsdev.commonmc.api.stats.util.EntityStats; -import com.thecsdev.commonmc.api.stats.util.ItemStats; +import com.thecsdev.commonmc.api.stats.util.*; import com.thecsdev.commonmc.api.util.modinfo.ModInfoProvider; import com.thecsdev.commonmc.resource.TComponent; import com.thecsdev.commonmc.resource.TLanguage; @@ -38,15 +35,11 @@ import net.minecraft.resources.Identifier; import net.minecraft.stats.StatFormatter; import net.minecraft.stats.Stats; -import net.minecraft.world.entity.MobCategory; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Comparator; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.concurrent.Future; import java.util.function.Consumer; @@ -175,38 +168,13 @@ else if(stat.isTime()) ibmPanel.setBounds(computeNextYBounds(255, GAP)); //featured item statistics - final var items = ItemStats.getItemStats(lpStats, null, null).stream() - .sorted(Comparator.comparingDouble( - (ItemStats obj) -> obj.getValues().values().stream() - .mapToInt(Integer::intValue) - .average() - .orElse(0.0)).reversed()) - .limit(7) - .toList(); - StatsViewUtils.initItemStats(ibmPanel, null, items); + StatsViewUtils.initItemStats(ibmPanel, null, getTopStats(ItemStats.getItemStats(lpStats, null, null), 7)); //featured block statistics - final var blocks = BlockStats.getBlockStats(lpStats, null, null).stream() - .sorted(Comparator.comparingDouble( - (BlockStats obj) -> obj.getValues().values().stream() - .mapToInt(Integer::intValue) - .average() - .orElse(0.0)).reversed()) - .limit(7) - .toList(); - StatsViewUtils.initBlockStats(ibmPanel, null, blocks); + StatsViewUtils.initBlockStats(ibmPanel, null, getTopStats(BlockStats.getBlockStats(lpStats, null, null), 7)); //featured mob statistics - final var entities = EntityStats.getEntityStats(lpStats, null, null).stream() - .filter(es -> es.getSubject().getCategory() != MobCategory.MISC) - .sorted(Comparator.comparingDouble( - (EntityStats obj) -> obj.getValues().values().stream() - .mapToInt(Integer::intValue) - .average() - .orElse(0.0)).reversed()) - .limit(5) - .toList(); - StatsViewUtils.initMobStats(ibmPanel, null, entities); + StatsViewUtils.initMobStats(ibmPanel, null, getTopStats(EntityStats.getEntityStats(lpStats, null, null), 5)); //and finally, center that panel and add it to this panel ibmPanel.setBounds(ibmPanel.getContentBounds()); @@ -238,6 +206,56 @@ private final void initNewsAsync() lbl_group.textScaleProperty().set(1.1d, PersonalHomePanel.class); news.forEach(section -> CreditsPanel.initSection(this, section)); } + // ================================================== + /** + * Returns a new {@link Collection} containing the "top/largest" stats from another + * collection of stats. + * @param origin The origin {@link Collection}. + * @param size The size of the returned {@link Collection}. + * @throws NullPointerException If the argument is {@code null}. + * @throws IllegalArgumentException If {@code size < 1}. + * @implNote Uses an optimized sorting algorithm that avoids wasteful sort operations. + */ + private static final > @NotNull Collection getTopStats( + @NotNull Collection origin, int size) + throws NullPointerException, IllegalArgumentException + { + //check arguments + Objects.requireNonNull(origin); + if(origin.isEmpty() || size < 1) return new ArrayList<>(); + + //define the priority queue that'll be used for stat ranking + record RankedStat(S stat, int weight) {} + final var queue = new PriorityQueue>(size, Comparator.comparingInt(RankedStat::weight)); + + //iterate stats from origin with a single pass + for(final var stat : origin) + { + //calculate total "weight" the current stat is worth + int weight = 0; + for(final int statVal : stat.getValues().values()) weight += statVal; + + //if the queue is full, check if the current item can fit in + if(queue.size() == size) { + //a '0' definitely will not fit in the queue + if(weight == 0) continue; + //compare the score against the lowest rank in the queue + final var lowestRank = queue.peek(); + if(lowestRank != null && weight <= lowestRank.weight) + continue; //skip current stat if it ranks below lowest rank + } + + //add to queue + queue.add(new RankedStat<>(stat, weight)); + if(queue.size() > size) queue.poll(); + } + + //return a sorted list containing the ranked elements + final var stats = new ArrayList(size); + while(stats.size() < size && !queue.isEmpty()) + stats.add(queue.poll().stat); + return stats.reversed(); + } // ================================================== ================================================== // ModSummaryPanel IMPLEMENTATION // ================================================== ================================================== diff --git a/src/main/resources/META-INF/jarjar/tcdcommons-5.4.1+fn-26.2.jar b/src/main/resources/META-INF/jarjar/tcdcommons-5.5.0+fn-26.2.jar similarity index 91% rename from src/main/resources/META-INF/jarjar/tcdcommons-5.4.1+fn-26.2.jar rename to src/main/resources/META-INF/jarjar/tcdcommons-5.5.0+fn-26.2.jar index bde03a70b7ac3f5e4492b92c79d9ce30bb0e580b..a7489617dbf89a1f74dc7b5d9237bc8835b67980 100644 GIT binary patch delta 29760 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 delta 27470 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 From 4a13f619c7d8756509839051996450b32c7390de Mon Sep 17 00:00:00 2001 From: TheCSDev Date: Thu, 16 Jul 2026 10:57:48 +0200 Subject: [PATCH 05/10] Release 5.5.1+fn-26.2 (#48) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Updated 'Simplified Chinese' and added 'Traditional Chinese' translations. --------- Co-authored-by: 高新炀 --- gradle.properties | 6 +- ...-26.2.jar => tcdcommons-5.5.1+fn-26.2.jar} | Bin 465155 -> 466255 bytes .../assets/betterstats/lang/en_us.json | 2 +- .../assets/betterstats/lang/zh_cn.json | 238 +++++++++--------- .../assets/betterstats/lang/zh_tw.json | 198 +++++++++++++++ src/main/resources/betterstats.credits.json | 6 + 6 files changed, 327 insertions(+), 123 deletions(-) rename src/main/resources/META-INF/jarjar/{tcdcommons-5.5.0+fn-26.2.jar => tcdcommons-5.5.1+fn-26.2.jar} (98%) create mode 100644 src/main/resources/assets/betterstats/lang/zh_tw.json diff --git a/gradle.properties b/gradle.properties index 622268b..41b5ca7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ maven.group = com.thecsdev # Mod properties mod.id = betterstats -mod.version = 5.5.0 +mod.version = 5.5.1 mod.name = Better Statistics Screen mod.description = A Minecraft mod that improves the statistics screen and makes it more useful. mod.author = TheCSDev @@ -48,7 +48,7 @@ fabric.api_version = 0.152.1+26.2 fabric.json.depends.minecraft = ~26.2 fabric.json.depends.fabricloader = >=0.19.3 fabric.json.depends.fabric-api = >=0.152.1 - fabric.json.depends.tcdcommons = >=5.5.0 + fabric.json.depends.tcdcommons = >=5.5.1 # Neo-Forge properties neoforge.version = 26.1.0.7-beta @@ -57,4 +57,4 @@ neoforge.version = 26.1.0.7-beta net.toml.loaderVersion = [4,) neo.toml.dependencies.neoforge = [26.2.0.1-beta,) neo.toml.dependencies.minecraft = [26.2, 26.3) - neo.toml.dependencies.tcdcommons = [5.5.0,) + neo.toml.dependencies.tcdcommons = [5.5.1,) diff --git a/src/main/resources/META-INF/jarjar/tcdcommons-5.5.0+fn-26.2.jar b/src/main/resources/META-INF/jarjar/tcdcommons-5.5.1+fn-26.2.jar similarity index 98% rename from src/main/resources/META-INF/jarjar/tcdcommons-5.5.0+fn-26.2.jar rename to src/main/resources/META-INF/jarjar/tcdcommons-5.5.1+fn-26.2.jar index a7489617dbf89a1f74dc7b5d9237bc8835b67980..889fb5909a6607e464daeddc1b4d53f06f960c76 100644 GIT binary patch delta 3737 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 delta 2717 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 R&k^n;+{7j>u4)es{tvW?j{5)r diff --git a/src/main/resources/assets/betterstats/lang/en_us.json b/src/main/resources/assets/betterstats/lang/en_us.json index f9642ba..cc6c878 100644 --- a/src/main/resources/assets/betterstats/lang/en_us.json +++ b/src/main/resources/assets/betterstats/lang/en_us.json @@ -54,7 +54,7 @@ "betterstats.gui.statsview.filter.selected_view": "Selected view", "betterstats.gui.statsview.filter.search": "Search", "betterstats.gui.statsview.filter.show_all_stats": "Show all stats", - "betterstats.gui.statsview.filter.hide_completed_goals": "Hide completed hoals", + "betterstats.gui.statsview.filter.hide_completed_goals": "Hide completed goals", "betterstats.gui.statsview.filter.sort_by": "Sort by", "betterstats.gui.statsview.filter.group_by": "Group by", "betterstats.gui.statsview.filter.group_by.all": "All", diff --git a/src/main/resources/assets/betterstats/lang/zh_cn.json b/src/main/resources/assets/betterstats/lang/zh_cn.json index 58bf08e..ec2043d 100644 --- a/src/main/resources/assets/betterstats/lang/zh_cn.json +++ b/src/main/resources/assets/betterstats/lang/zh_cn.json @@ -1,6 +1,6 @@ { "modmenu.nameTranslation.betterstats": "Better Statistics Screen", - "modmenu.summaryTranslation.betterstats": "A Minecraft mod that improves the statistics screen and makes it more useful.", + "modmenu.summaryTranslation.betterstats": "一个改进统计屏幕并使其更有用的 Minecraft 模组。", "mobCategory.monster": "敌对生物", "mobCategory.creature": "自然生物", @@ -12,27 +12,27 @@ "mobCategory.misc": "其他生物", "stat.blocksButton": "方块", - "stat.betterstats.time_since_login": "Time this session", + "stat.betterstats.time_since_login": "本次会话时间", "commands.statistics.edit.output": "为 %d 个玩家修改了统计信息 %s。", "commands.statistics.clear.output": "清除了 %d 个玩家的统计信息。", - "commands.statistics.clear.kick": "你的统计信息已被清理,请中断连接并重新加入世界。", + "commands.statistics.clear.kick": "你的统计信息已被清理,请断开连接并重新加入世界。", "commands.statistics.query.output": "%s 的统计信息 %s 的值为 %d。", "betterstats.config.common.register_commands": "注册命令", "betterstats.config.common.register_commands.tooltip": "注册此模组的命令(例如 '/statistics')。", "betterstats.config.common.api_endpoint": "API 端点", "betterstats.config.common.api_endpoint.tooltip": "此模组用于与此模组开发者的服务器通信的 RESTful HTTP API 端点的 URI 地址。", - "betterstats.config.common.experimental_features": "Experimental features", - "betterstats.config.common.experimental_features.tooltip": "Whether to enable experimental features.\nSuch features may be buggy, cause crashes, or result in data loss. Enable at your own risk, then restart the game.\n\nPresence of such features is not indicative of their eventual release. They may be removed at any time without warning.", + "betterstats.config.common.experimental_features": "实验性功能", + "betterstats.config.common.experimental_features.tooltip": "是否启用实验性功能。\n此类功能可能存在漏洞、导致崩溃或数据丢失。请自行承担风险启用,然后重启游戏。\n\n这些功能的存在并不代表它们最终会发布。它们可能随时被移除,恕不另行通知。", "betterstats.config.client.allow_chat_psa": "允许聊天 PSA 消息", "betterstats.config.client.allow_chat_psa.tooltip": "允许来自此模组开发者的罕见信息性 PSA 消息显示在聊天栏中。关闭此选项以屏蔽所有此类通知。", "betterstats.config.client.gui_mobs_follow_cursor": "GUI 生物看向光标", "betterstats.config.client.gui_mobs_follow_cursor.tooltip": "实体统计信息 GUI 中的生物会始终看向光标位置。", - "betterstats.gui.screen.edit_siv_goal.stat_type": "Stat type (Activity)", - "betterstats.gui.screen.edit_siv_goal.stat_subject": "Stat subject (Item/Entity/Etc)", - "betterstats.gui.screen.edit_siv_goal.target_value_range": "Target value range", + "betterstats.gui.screen.edit_siv_goal.stat_type": "统计类型(活动)", + "betterstats.gui.screen.edit_siv_goal.stat_subject": "统计主题(物品/实体等)", + "betterstats.gui.screen.edit_siv_goal.target_value_range": "目标数值范围", "betterstats.gui.menubar.file": "文件", "betterstats.gui.menubar.file.new": "新建", @@ -54,7 +54,7 @@ "betterstats.gui.statsview.filter.selected_view": "选择的视图", "betterstats.gui.statsview.filter.search": "搜索", "betterstats.gui.statsview.filter.show_all_stats": "显示所有统计信息", - "betterstats.gui.statsview.filter.hide_completed_goals": "Hide completed hoals", + "betterstats.gui.statsview.filter.hide_completed_goals": "隐藏已完成的目标", "betterstats.gui.statsview.filter.sort_by": "排序方式", "betterstats.gui.statsview.filter.group_by": "分组方式", "betterstats.gui.statsview.filter.group_by.all": "全部", @@ -64,34 +64,34 @@ "betterstats.gui.statsview.filter.distance_unit": "距离单位", "betterstats.gui.statsview.filter.time_unit": "时间单位", "betterstats.gui.statsview.stats.no_stats": "暂无可显示的统计信息……", - "betterstats.gui.statsview.stats.no_goals": "There are no goals to show yet...", - "betterstats.gui.statsview.stats.ctxmenu.view_error_info": "View error info", + "betterstats.gui.statsview.stats.no_goals": "暂无可显示的目标……", + "betterstats.gui.statsview.stats.ctxmenu.view_error_info": "查看错误信息", "betterstats.gui.statsview.stats.ctxmenu.view_on_wiki": "在 Wiki 上查看", - "betterstats.gui.statsview.stats.ctxmenu.create_goal": "Create goal", - "betterstats.gui.statsview.mcbs_goals": "Goals", - "betterstats.gui.statsview.mcbs_goals.alert1.prefix": "[New ✨]", - "betterstats.gui.statsview.mcbs_goals.alert1": "Define custom milestones to track your progress toward specific statistical targets like resource collection.", - "betterstats.gui.statsview.mcbs_goals.alert2.prefix": "[Note 💾]", - "betterstats.gui.statsview.mcbs_goals.alert2": "These goals do not persist across rejoins and restarts. This missing feature may be implemented eventually.", - "betterstats.gui.statsview.mcbs_goals.overview": "Overview", - "betterstats.gui.statsview.mcbs_goals.overview.completed_goals": "Completed goals", - "betterstats.gui.statsview.mcbs_goals.overview.total_progress": "Total progress", - "betterstats.gui.statsview.mcbs_goals.new_btn": "[ + New goal ]", - "betterstats.gui.statsview.mcbs_goals.manage_btn": "Manage goals", - "betterstats.gui.statsview.mcbs_goals.edit_btn": "Edit goal", - "betterstats.gui.statsview.mcbs_goals.delete_btn": "Delete goal", - "betterstats.gui.statsview.mcbs_goals.delete_btn.confirm": "Are you sure?", - "betterstats.gui.statsview.mcbs_goals.no_edit_gui": "This goal type does not have an editing interface.", + "betterstats.gui.statsview.stats.ctxmenu.create_goal": "创建目标", + "betterstats.gui.statsview.mcbs_goals": "目标", + "betterstats.gui.statsview.mcbs_goals.alert1.prefix": "[新功能 ✨]", + "betterstats.gui.statsview.mcbs_goals.alert1": "定义自定义里程碑,以追踪您在特定统计目标(如资源收集)上的进度。", + "betterstats.gui.statsview.mcbs_goals.alert2.prefix": "[注意 💾]", + "betterstats.gui.statsview.mcbs_goals.alert2": "这些目标在重新加入或重启后不会保留。此缺失功能可能在将来实现。", + "betterstats.gui.statsview.mcbs_goals.overview": "概览", + "betterstats.gui.statsview.mcbs_goals.overview.completed_goals": "已完成的目标", + "betterstats.gui.statsview.mcbs_goals.overview.total_progress": "总进度", + "betterstats.gui.statsview.mcbs_goals.new_btn": "[ + 新建目标 ]", + "betterstats.gui.statsview.mcbs_goals.manage_btn": "管理目标", + "betterstats.gui.statsview.mcbs_goals.edit_btn": "编辑目标", + "betterstats.gui.statsview.mcbs_goals.delete_btn": "删除目标", + "betterstats.gui.statsview.mcbs_goals.delete_btn.confirm": "确定要删除吗?", + "betterstats.gui.statsview.mcbs_goals.no_edit_gui": "此目标类型没有编辑界面。", - "betterstats.gui.home_tab.featured_stats": "Featured statistics", + "betterstats.gui.home_tab.featured_stats": "精选统计", "betterstats.credits": "鸣谢", "betterstats.credits.section.top_sponsors": "顶级赞助者", "betterstats.credits.section.top_sponsors.summary": "对本项目贡献最大的资金支持者。", "betterstats.credits.section.recent_sponsors": "近期赞助者", "betterstats.credits.section.recent_sponsors.summary": "对本项目最近的资金支持者。", - "betterstats.credits.section.recent_sponsors.entry.sponsor": "[+] [Sponsor]", - "betterstats.credits.section.recent_sponsors.entry.sponsor.summary": "Contribute to this mod and its development by becoming a sponsor.", + "betterstats.credits.section.recent_sponsors.entry.sponsor": "[+] [赞助]", + "betterstats.credits.section.recent_sponsors.entry.sponsor.summary": "成为赞助者,为此模组及其开发贡献力量。", "betterstats.credits.section.special_thanks": "特别鸣谢", "betterstats.credits.section.special_thanks.summary": "特别鸣谢以及让此模组成为可能的人们。", "betterstats.credits.section.special_thanks.entry.you": "[您]", @@ -105,94 +105,94 @@ "betterstats.credits.section.founder_contributors": "创始贡献者", "betterstats.credits.section.founder_contributors.summary": "在 v5.X 版本之前为此模组做出贡献的社区成员。", - "betterstats.mcbsgoaltype.betterstats.stat_int_value": "General numeric goal", + "betterstats.mcbsgoaltype.betterstats.stat_int_value": "通用数值目标", - "betterstats.mcbsgoal.siv_objective": "%4$d [%1$s] for [%2$s]", - "betterstats.mcbsgoal.siv_objective.betterstats.edit_this_goal": "Edit this goal", - "betterstats.mcbsgoal.siv_objective.minecraft.custom": "Do [%2$s] %4$d times", - "betterstats.mcbsgoal.siv_objective.minecraft.broken": "Break %4$d %2$s", - "betterstats.mcbsgoal.siv_objective.minecraft.crafted": "Craft %4$d %2$s", - "betterstats.mcbsgoal.siv_objective.minecraft.dropped": "Drop %4$d %2$s", - "betterstats.mcbsgoal.siv_objective.minecraft.mined": "Mine %4$d %2$s", - "betterstats.mcbsgoal.siv_objective.minecraft.picked_up": "Pick up %4$d %2$s", - "betterstats.mcbsgoal.siv_objective.minecraft.used": "Use %4$d %2$s", - "betterstats.mcbsgoal.siv_objective.minecraft.killed": "Kill %4$d %2$s", - "betterstats.mcbsgoal.siv_objective.minecraft.killed_by": "Die to %4$d %2$s", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.animals_bred": "Breed %4$d animals", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.aviate_one_cm": "Fly %4$d cm with elytra", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.bell_ring": "Ring %4$d bells", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.boat_one_cm": "Row a boat for %4$d cm", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_armor": "Clean %4$d armor pieces", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_banner": "Clean %4$d banners", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_shulker_box": "Clean %4$d shulker boxes", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.climb_one_cm": "Climb %4$d cm", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.crouch_one_cm": "Crouch %4$d cm", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_absorbed": "Absorb %4$d damage", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_blocked_by_shield": "Block %4$d damage", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt": "Deal %4$d damage", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_absorbed": "Deal %4$d damage (Absorbed)", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_resisted": "Deal %4$d damage (Resisted)", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_resisted": "Resist %4$d damage", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_taken": "Take %4$d damage", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.deaths": "Die %4$d times", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.drop": "Drop %4$d items", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.eat_cake_slice": "Eat %4$d cake slices", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.enchant_item": "Enchant %4$d items", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fall_one_cm": "Fall %4$d cm", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fill_cauldron": "Fill %4$d cauldrons", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fish_caught": "Catch %4$d fish", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fly_one_cm": "Fly %4$d cm", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.happy_ghast_one_cm": "Fly %4$d cm with happy ghast", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.horse_one_cm": "Travel %4$d cm by horse", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_dispenser": "Search %4$d dispensers", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_dropper": "Search %4$d droppers", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_hopper": "Search %4$d hoppers", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_anvil": "Interact with %4$d anvils", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_beacon": "Interact with %4$d beacons", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_blast_furnace": "Interact with %4$d blast furnaces", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_brewingstand": "Interact with %4$d brewing stands", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_campfire": "Interact with %4$d campfires", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_cartography_table": "Interact with %4$d cartography tables", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_crafting_table": "Interact with %4$d crafting tables", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_furnace": "Interact with %4$d furnaces", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_grindstone": "Interact with %4$d grindstones", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_lectern": "Interact with %4$d lecterns", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_loom": "Interact with %4$d looms", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_smithing_table": "Interact with %4$d smithing tables", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_smoker": "Interact with %4$d smokers", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_stonecutter": "Interact with %4$d stonecutters", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.jump": "Jump %4$d times", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.leave_game": "Quit game %4$d times", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.minecart_one_cm": "Travel %4$d cm by minecart", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.mob_kills": "Kill %4$d mobs", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.nautilus_one_cm": "Travel %4$d cm by nautilus", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_barrel": "Open %4$d barrels", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_chest": "Open %4$d chests", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_enderchest": "Open %4$d ender chests", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_shulker_box": "Open %4$d shulker boxes", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.pig_one_cm": "Travel %4$d cm by pig", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_noteblock": "Play %4$d note blocks", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_record": "Play %4$d music discs", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_time": "Play for %4$d ticks", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.player_kills": "Kill %4$d players", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.pot_flower": "Pot %4$d plants", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.raid_trigger": "Trigger %4$d raids", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.raid_win": "Win %4$d raids", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sleep_in_bed": "Sleep in %4$d beds", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sneak_time": "Sneak for %4$d ticks", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sprint_one_cm": "Sprint %4$d cm", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.strider_one_cm": "Travel %4$d cm by strider", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.swim_one_cm": "Swim %4$d cm", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.talked_to_villager": "Talk to %4$d villagers", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.target_hit": "Hit %4$d targets", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.time_since_death": "Don't die for %4$d ticks", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.time_since_rest": "Don't rest for %4$d ticks", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.total_world_time": "Play for %4$d ticks", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.traded_with_villager": "Trade with %4$d villagers", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.trigger_trapped_chest": "Trigger %4$d trapped chests", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.tune_noteblock": "Tune %4$d note blocks", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.use_cauldron": "Use cauldrons %4$d times", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_on_water_one_cm": "Walk %4$d cm on water", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_one_cm": "Walk %4$d cm", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_under_water_one_cm": "Walk %4$d cm under water" -} + "betterstats.mcbsgoal.siv_objective": "%2$s 的 %1$s 达到 %4$d", + "betterstats.mcbsgoal.siv_objective.betterstats.edit_this_goal": "编辑此目标", + "betterstats.mcbsgoal.siv_objective.minecraft.custom": "执行 %2$s %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.broken": "破坏 %4$d 个 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.crafted": "合成 %4$d 个 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.dropped": "丢弃 %4$d 个 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.mined": "开采 %4$d 个 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.picked_up": "拾取 %4$d 个 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.used": "使用 %4$d 个 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.killed": "杀死 %4$d 个 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.killed_by": "被 %2$s 杀死 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.animals_bred": "繁殖 %4$d 只动物", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.aviate_one_cm": "用鞘翅飞行 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.bell_ring": "敲响 %4$d 次钟", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.boat_one_cm": "划船行进 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_armor": "清洗 %4$d 件盔甲", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_banner": "清洗 %4$d 面旗帜", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_shulker_box": "清洗 %4$d 个潜影盒", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.climb_one_cm": "攀爬 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.crouch_one_cm": "潜行 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_absorbed": "吸收 %4$d 点伤害", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_blocked_by_shield": "用盾牌格挡 %4$d 点伤害", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt": "造成 %4$d 点伤害", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_absorbed": "造成 %4$d 点伤害(被吸收)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_resisted": "造成 %4$d 点伤害(被抵抗)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_resisted": "抵抗 %4$d 点伤害", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_taken": "受到 %4$d 点伤害", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.deaths": "死亡 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.drop": "丢弃 %4$d 个物品", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.eat_cake_slice": "吃掉 %4$d 片蛋糕", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.enchant_item": "附魔 %4$d 个物品", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fall_one_cm": "摔落 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fill_cauldron": "填充 %4$d 个炼药锅", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fish_caught": "钓到 %4$d 条鱼", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fly_one_cm": "飞行 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.happy_ghast_one_cm": "骑乘开心恶魂飞行 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.horse_one_cm": "骑马行进 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_dispenser": "查看 %4$d 个发射器", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_dropper": "查看 %4$d 个投掷器", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_hopper": "查看 %4$d 个漏斗", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_anvil": "与铁砧交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_beacon": "与信标交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_blast_furnace": "与高炉交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_brewingstand": "与酿造台交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_campfire": "与营火交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_cartography_table": "与制图台交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_crafting_table": "与工作台交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_furnace": "与熔炉交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_grindstone": "与砂轮交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_lectern": "与讲台交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_loom": "与织布机交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_smithing_table": "与锻造台交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_smoker": "与烟熏炉交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_stonecutter": "与切石机交互 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.jump": "跳跃 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.leave_game": "退出游戏 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.minecart_one_cm": "乘坐矿车行进 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.mob_kills": "杀死 %4$d 只生物", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.nautilus_one_cm": "乘坐鹦鹉螺行进 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_barrel": "打开 %4$d 个木桶", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_chest": "打开 %4$d 个箱子", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_enderchest": "打开 %4$d 个末影箱", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_shulker_box": "打开 %4$d 个潜影盒", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.pig_one_cm": "骑猪行进 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_noteblock": "播放 %4$d 次音符盒", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_record": "播放 %4$d 张唱片", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_time": "游玩 %4$d 刻", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.player_kills": "杀死 %4$d 个玩家", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.pot_flower": "盆栽 %4$d 株植物", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.raid_trigger": "触发 %4$d 次袭击", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.raid_win": "赢得 %4$d 次袭击", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sleep_in_bed": "睡觉 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sneak_time": "潜行 %4$d 刻", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sprint_one_cm": "疾跑 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.strider_one_cm": "骑乘炽足兽行进 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.swim_one_cm": "游泳 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.talked_to_villager": "与村民交谈 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.target_hit": "击中 %4$d 个标靶", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.time_since_death": "连续未死亡 %4$d 刻", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.time_since_rest": "连续未休息 %4$d 刻", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.total_world_time": "世界总时间 %4$d 刻", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.traded_with_villager": "与村民交易 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.trigger_trapped_chest": "触发 %4$d 次陷阱箱", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.tune_noteblock": "调谐 %4$d 次音符盒", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.use_cauldron": "使用炼药锅 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_on_water_one_cm": "在水上行走 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_one_cm": "行走 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_under_water_one_cm": "在水下行走 %4$d 厘米" +} \ No newline at end of file diff --git a/src/main/resources/assets/betterstats/lang/zh_tw.json b/src/main/resources/assets/betterstats/lang/zh_tw.json new file mode 100644 index 0000000..7063c32 --- /dev/null +++ b/src/main/resources/assets/betterstats/lang/zh_tw.json @@ -0,0 +1,198 @@ +{ + "modmenu.nameTranslation.betterstats": "Better Statistics Screen", + "modmenu.summaryTranslation.betterstats": "一個改進統計畫面並使其更有用的 Minecraft 模組。", + + "mobCategory.monster": "敵對生物", + "mobCategory.creature": "自然生物", + "mobCategory.ambient": "環境生物", + "mobCategory.axolotls": "美西螈", + "mobCategory.underground_water_creature": "地下水域生物", + "mobCategory.water_creature": "水域生物", + "mobCategory.water_ambient": "水域環境生物", + "mobCategory.misc": "其他生物", + + "stat.blocksButton": "方塊", + "stat.betterstats.time_since_login": "本次會話時間", + + "commands.statistics.edit.output": "為 %d 個玩家修改了統計資訊 %s。", + "commands.statistics.clear.output": "清除了 %d 個玩家的統計資訊。", + "commands.statistics.clear.kick": "你的統計資訊已被清理,請中斷連線並重新加入世界。", + "commands.statistics.query.output": "%s 的統計資訊 %s 的值為 %d。", + + "betterstats.config.common.register_commands": "註冊指令", + "betterstats.config.common.register_commands.tooltip": "註冊此模組的指令(例如 '/statistics')。", + "betterstats.config.common.api_endpoint": "API 端點", + "betterstats.config.common.api_endpoint.tooltip": "此模組用於與此模組開發者的伺服器通訊的 RESTful HTTP API 端點的 URI 位址。", + "betterstats.config.common.experimental_features": "實驗性功能", + "betterstats.config.common.experimental_features.tooltip": "是否啟用實驗性功能。\n此類功能可能存在漏洞、導致崩潰或資料遺失。請自行承擔風險啟用,然後重啟遊戲。\n\n這些功能的存在並不代表它們最終會發布。它們可能隨時被移除,恕不另行通知。", + "betterstats.config.client.allow_chat_psa": "允許聊天 PSA 訊息", + "betterstats.config.client.allow_chat_psa.tooltip": "允許來自此模組開發者的罕見資訊性 PSA 訊息顯示在聊天欄中。關閉此選項以封鎖所有此類通知。", + "betterstats.config.client.gui_mobs_follow_cursor": "GUI 生物看向游標", + "betterstats.config.client.gui_mobs_follow_cursor.tooltip": "實體統計資訊 GUI 中的生物會始終看向游標位置。", + + "betterstats.gui.screen.edit_siv_goal.stat_type": "統計類型(活動)", + "betterstats.gui.screen.edit_siv_goal.stat_subject": "統計主題(物品/實體等)", + "betterstats.gui.screen.edit_siv_goal.target_value_range": "目標數值範圍", + + "betterstats.gui.menubar.file": "檔案", + "betterstats.gui.menubar.file.new": "新增", + "betterstats.gui.menubar.file.open": "開啟", + "betterstats.gui.menubar.file.save_as": "另存為", + "betterstats.gui.menubar.file.settings": "設定", + "betterstats.gui.menubar.file.close": "關閉", + "betterstats.gui.menubar.view": "檢視", + "betterstats.gui.menubar.view.vanilla_screen": "原版畫面", + "betterstats.gui.menubar.view.homepage": "首頁", + "betterstats.gui.menubar.view.local_player_stats": "我的統計資訊", + "betterstats.gui.menubar.view.stats_view": "切換檢視", + "betterstats.gui.menubar.about": "關於", + "betterstats.gui.menubar.about.source_code": "原始碼", + "betterstats.gui.menubar.about.support_me": "支持我", + "betterstats.gui.menubar.about.legal_notices": "法律聲明", + + "betterstats.gui.statsview.filters": "篩選", + "betterstats.gui.statsview.filter.selected_view": "選擇的檢視", + "betterstats.gui.statsview.filter.search": "搜尋", + "betterstats.gui.statsview.filter.show_all_stats": "顯示所有統計資訊", + "betterstats.gui.statsview.filter.hide_completed_goals": "隱藏已完成的目標", + "betterstats.gui.statsview.filter.sort_by": "排序方式", + "betterstats.gui.statsview.filter.group_by": "分組方式", + "betterstats.gui.statsview.filter.group_by.all": "全部", + "betterstats.gui.statsview.filter.group_by.mod": "模組名稱", + "betterstats.gui.statsview.filter.group_by.mob_category": "生物類別", + "betterstats.gui.statsview.filter.group_by.creative_mode_tab": "創造模式分頁", + "betterstats.gui.statsview.filter.distance_unit": "距離單位", + "betterstats.gui.statsview.filter.time_unit": "時間單位", + "betterstats.gui.statsview.stats.no_stats": "暫無可顯示的統計資訊……", + "betterstats.gui.statsview.stats.no_goals": "暫無可顯示的目標……", + "betterstats.gui.statsview.stats.ctxmenu.view_error_info": "查看錯誤資訊", + "betterstats.gui.statsview.stats.ctxmenu.view_on_wiki": "在 Wiki 上查看", + "betterstats.gui.statsview.stats.ctxmenu.create_goal": "建立目標", + "betterstats.gui.statsview.mcbs_goals": "目標", + "betterstats.gui.statsview.mcbs_goals.alert1.prefix": "[新功能 ✨]", + "betterstats.gui.statsview.mcbs_goals.alert1": "定義自訂里程碑,以追蹤您在特定統計目標(如資源收集)上的進度。", + "betterstats.gui.statsview.mcbs_goals.alert2.prefix": "[注意 💾]", + "betterstats.gui.statsview.mcbs_goals.alert2": "這些目標在重新加入或重啟後不會保留。此缺失功能可能在將來實現。", + "betterstats.gui.statsview.mcbs_goals.overview": "概覽", + "betterstats.gui.statsview.mcbs_goals.overview.completed_goals": "已完成的目標", + "betterstats.gui.statsview.mcbs_goals.overview.total_progress": "總進度", + "betterstats.gui.statsview.mcbs_goals.new_btn": "[ + 新增目標 ]", + "betterstats.gui.statsview.mcbs_goals.manage_btn": "管理目標", + "betterstats.gui.statsview.mcbs_goals.edit_btn": "編輯目標", + "betterstats.gui.statsview.mcbs_goals.delete_btn": "刪除目標", + "betterstats.gui.statsview.mcbs_goals.delete_btn.confirm": "確定要刪除嗎?", + "betterstats.gui.statsview.mcbs_goals.no_edit_gui": "此目標類型沒有編輯介面。", + + "betterstats.gui.home_tab.featured_stats": "精選統計", + + "betterstats.credits": "鳴謝", + "betterstats.credits.section.top_sponsors": "頂級贊助者", + "betterstats.credits.section.top_sponsors.summary": "對本專案貢獻最大的資金支持者。", + "betterstats.credits.section.recent_sponsors": "近期贊助者", + "betterstats.credits.section.recent_sponsors.summary": "對本專案最近的資金支持者。", + "betterstats.credits.section.recent_sponsors.entry.sponsor": "[+] [贊助]", + "betterstats.credits.section.recent_sponsors.entry.sponsor.summary": "成為贊助者,為此模組及其開發貢獻力量。", + "betterstats.credits.section.special_thanks": "特別鳴謝", + "betterstats.credits.section.special_thanks.summary": "特別鳴謝以及讓此模組成為可能的人們。", + "betterstats.credits.section.special_thanks.entry.you": "[您]", + "betterstats.credits.section.special_thanks.entry.you.summary": "特別感謝您,感謝您的支持以及幫助此模組保持活力。", + "betterstats.credits.section.special_thanks.entry.contributors": "[貢獻者]", + "betterstats.credits.section.special_thanks.entry.contributors.summary": "所有為此模組做出貢獻、回報漏洞和提供反饋的人。您的幫助意義重大。", + "betterstats.credits.section.contributors": "貢獻者", + "betterstats.credits.section.contributors.summary": "在 v5.X 版本期間為此模組做出貢獻的社群成員。", + "betterstats.credits.section.contributors.entry.contribute": "[+] [參與貢獻]", + "betterstats.credits.section.contributors.entry.contribute.summary": "參與此模組的開發,以名列此榜單。", + "betterstats.credits.section.founder_contributors": "創始貢獻者", + "betterstats.credits.section.founder_contributors.summary": "在 v5.X 版本之前為此模組做出貢獻的社群成員。", + + "betterstats.mcbsgoaltype.betterstats.stat_int_value": "通用數值目標", + + "betterstats.mcbsgoal.siv_objective": "%2$s 的 %1$s 達到 %4$d", + "betterstats.mcbsgoal.siv_objective.betterstats.edit_this_goal": "編輯此目標", + "betterstats.mcbsgoal.siv_objective.minecraft.custom": "執行 %2$s %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.broken": "破壞 %4$d 個 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.crafted": "合成 %4$d 個 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.dropped": "丟棄 %4$d 個 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.mined": "開採 %4$d 個 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.picked_up": "拾取 %4$d 個 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.used": "使用 %4$d 個 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.killed": "殺死 %4$d 個 %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.killed_by": "被 %2$s 殺死 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.animals_bred": "繁殖 %4$d 隻動物", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.aviate_one_cm": "用鞘翅飛行 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.bell_ring": "敲響 %4$d 次鐘", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.boat_one_cm": "划船行進 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_armor": "清洗 %4$d 件盔甲", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_banner": "清洗 %4$d 面旗幟", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_shulker_box": "清洗 %4$d 個界伏盒", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.climb_one_cm": "攀爬 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.crouch_one_cm": "潛行 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_absorbed": "吸收 %4$d 點傷害", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_blocked_by_shield": "用盾牌格擋 %4$d 點傷害", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt": "造成 %4$d 點傷害", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_absorbed": "造成 %4$d 點傷害(被吸收)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_resisted": "造成 %4$d 點傷害(被抵抗)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_resisted": "抵抗 %4$d 點傷害", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_taken": "受到 %4$d 點傷害", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.deaths": "死亡 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.drop": "丟棄 %4$d 個物品", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.eat_cake_slice": "吃掉 %4$d 片蛋糕", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.enchant_item": "附魔 %4$d 個物品", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fall_one_cm": "摔落 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fill_cauldron": "填充 %4$d 個鍋釜", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fish_caught": "釣到 %4$d 條魚", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fly_one_cm": "飛行 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.happy_ghast_one_cm": "騎乘開心惡魂飛行 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.horse_one_cm": "騎馬行進 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_dispenser": "查看 %4$d 個發射器", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_dropper": "查看 %4$d 個投擲器", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_hopper": "查看 %4$d 個漏斗", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_anvil": "與鐵砧互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_beacon": "與烽火台互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_blast_furnace": "與高爐互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_brewingstand": "與釀造台互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_campfire": "與營火互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_cartography_table": "與製圖台互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_crafting_table": "與工作台互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_furnace": "與熔爐互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_grindstone": "與砂輪互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_lectern": "與講台互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_loom": "與織布機互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_smithing_table": "與鍛造台互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_smoker": "與煙燻爐互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_stonecutter": "與切石機互動 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.jump": "跳躍 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.leave_game": "退出遊戲 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.minecart_one_cm": "乘坐礦車行進 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.mob_kills": "殺死 %4$d 隻生物", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.nautilus_one_cm": "乘坐鸚鵡螺行進 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_barrel": "開啟 %4$d 個木桶", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_chest": "開啟 %4$d 個箱子", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_enderchest": "開啟 %4$d 個終界箱", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_shulker_box": "開啟 %4$d 個界伏盒", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.pig_one_cm": "騎豬行進 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_noteblock": "播放 %4$d 次音階盒", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_record": "播放 %4$d 張唱片", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_time": "遊玩 %4$d 刻", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.player_kills": "殺死 %4$d 個玩家", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.pot_flower": "盆栽 %4$d 株植物", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.raid_trigger": "觸發 %4$d 次襲擊", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.raid_win": "贏得 %4$d 次襲擊", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sleep_in_bed": "睡覺 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sneak_time": "潛行 %4$d 刻", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sprint_one_cm": "疾跑 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.strider_one_cm": "騎乘熾足獸行進 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.swim_one_cm": "游泳 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.talked_to_villager": "與村民交談 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.target_hit": "擊中 %4$d 個標靶", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.time_since_death": "連續未死亡 %4$d 刻", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.time_since_rest": "連續未休息 %4$d 刻", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.total_world_time": "世界總時間 %4$d 刻", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.traded_with_villager": "與村民交易 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.trigger_trapped_chest": "觸發 %4$d 次陷阱箱", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.tune_noteblock": "調諧 %4$d 次音階盒", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.use_cauldron": "使用鍋釜 %4$d 次", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_on_water_one_cm": "在水上行走 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_one_cm": "行走 %4$d 厘米", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_under_water_one_cm": "在水下行走 %4$d 厘米" +} \ No newline at end of file diff --git a/src/main/resources/betterstats.credits.json b/src/main/resources/betterstats.credits.json index 1da6cc5..20a5aa9 100644 --- a/src/main/resources/betterstats.credits.json +++ b/src/main/resources/betterstats.credits.json @@ -18,6 +18,12 @@ "summary": "Translated this mod to 'Simplified Chinese'.", "homepage_uri": "https://github.com/WForst-Breeze" }, + { + "avatar_uri": "https://avatars.githubusercontent.com/u/150860092?v=4", + "name": "Xinyang-Gao", + "summary": "Translated this mod to 'Simplified Chinese' and 'Traditional Chinese'.", + "homepage_uri": "https://github.com/Xinyang-Gao" + }, { "avatar_uri": null, "name": { "translate": "betterstats.credits.section.contributors.entry.contribute" }, From 82e87ac80e4b25a14f8ea4481507aec2b03949a5 Mon Sep 17 00:00:00 2001 From: TheCSDev Date: Sat, 18 Jul 2026 00:28:14 +0200 Subject: [PATCH 06/10] Release 5.5.2+fn-26.2 (#50) * Add Polish translation (#49) --------- Co-authored-by: JustShadow78 --- gradle.properties | 6 +- ...-26.2.jar => tcdcommons-5.5.2+fn-26.2.jar} | Bin 466255 -> 467323 bytes .../assets/betterstats/lang/pl_pl.json | 198 ++++++++++++++++++ src/main/resources/betterstats.credits.json | 6 + 4 files changed, 207 insertions(+), 3 deletions(-) rename src/main/resources/META-INF/jarjar/{tcdcommons-5.5.1+fn-26.2.jar => tcdcommons-5.5.2+fn-26.2.jar} (98%) create mode 100644 src/main/resources/assets/betterstats/lang/pl_pl.json diff --git a/gradle.properties b/gradle.properties index 41b5ca7..987c9dd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ maven.group = com.thecsdev # Mod properties mod.id = betterstats -mod.version = 5.5.1 +mod.version = 5.5.2 mod.name = Better Statistics Screen mod.description = A Minecraft mod that improves the statistics screen and makes it more useful. mod.author = TheCSDev @@ -48,7 +48,7 @@ fabric.api_version = 0.152.1+26.2 fabric.json.depends.minecraft = ~26.2 fabric.json.depends.fabricloader = >=0.19.3 fabric.json.depends.fabric-api = >=0.152.1 - fabric.json.depends.tcdcommons = >=5.5.1 + fabric.json.depends.tcdcommons = >=5.5.2 # Neo-Forge properties neoforge.version = 26.1.0.7-beta @@ -57,4 +57,4 @@ neoforge.version = 26.1.0.7-beta net.toml.loaderVersion = [4,) neo.toml.dependencies.neoforge = [26.2.0.1-beta,) neo.toml.dependencies.minecraft = [26.2, 26.3) - neo.toml.dependencies.tcdcommons = [5.5.1,) + neo.toml.dependencies.tcdcommons = [5.5.2,) diff --git a/src/main/resources/META-INF/jarjar/tcdcommons-5.5.1+fn-26.2.jar b/src/main/resources/META-INF/jarjar/tcdcommons-5.5.2+fn-26.2.jar similarity index 98% rename from src/main/resources/META-INF/jarjar/tcdcommons-5.5.1+fn-26.2.jar rename to src/main/resources/META-INF/jarjar/tcdcommons-5.5.2+fn-26.2.jar index 889fb5909a6607e464daeddc1b4d53f06f960c76..fc8ffcd9f20f33ecaedebb2ed6aaa4eccc9e0eab 100644 GIT binary patch delta 3421 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 delta 2554 zcmY+Fc|25Y8^>pknR6z~7-OG?NRh0`Qap<6WQZ_9bhBrqrH;d~&c9iew-DPj?+NkM}pU4{P zKRI$+@znk^#*2Eb1B!+Db4SBBN%$vn=^q`ucr58~-Mq}nc$LSD=e_;|sd5^Q;X)S- zOJ4WAA>8QzUwmww!{@K;pxB3uG}IICtaplh_-HY@K>6>;W42{)?TYhix}#fmFq{1f zlD^eU#cvF0a`w8xcFRl2TGvesw%}HZzg=ha-ZrhwvadxZYs^|shLM;FXSzSBn?4Ys zOE>f^kKHh)pN}ah4&HhJqIec1zLzGeO9$2De_^G&UaE~DP7md#UFVZMhVx?!-__a6w}U;Su+Ev8eRtGeG&s5eH(O4G{^7lkdfD7%eMPIQa4uD zG#~hW;aHR1u=ES5nfx4Tzwd684V9#S40Fk!z%=<>z ztmrU4{^6tYkbiXUhx$y^ejRk@`Z$^USgrLPby4r{k3TkkOc747@K1en+rTkGSL3TP_Pj3j!FD7C#=2{7E0Zz`uk798 z%>y>?esgzjI&Z(VMUG)|h+}`=q$yLRN~$H`IdnujnMUk04!g<-Kb`XSsRfC6|9g=U ze~8kc$TjOo;pxoeLF-wynlDa5rF^)*;0GA+vvIo*7mNM)GfOpUwpOm zt&sTyQ^E5Ml@w=fot?THE@?4n4uguhuMgjtO!A`}cvzlo=Lu?y_1+rgJHlOjgif|? zqCT~Jsv3S#>jr_?sKV76oGzbL{S9XRc}KXKr&y|_Gm^FMW892yrGqiWDWWo#5Eo}} zUFx_lh74TnDs~2u;!YUbtSjFmQ=PQy$8ntjcw_W>eXX5FM|8!0( z=in61zt$=G%<@an(u&jjN6$Q~C=(BR`I|pXZckdcoLgOx8@AWe`x&eL%QZ8k*DmH; z!=J)cs)mt`M1>Z~7*}pxU8;SDW}ut!wEpbZ!tKGGpPPmrXm=*pFGwVt&@K+dkQ&Xh zGpM6IaY1{Jum{{fx0!d3;c99Uy&MorYxTNPFy7p7xqxE%LFj2n%4N5SUH0d;j1_N_ zGSH@eH*S{u&iee`SoG;wm`irg`G_>h+To9~4gGj}NxI?B9GdyPUr0_ z%Tsi+)eRmsQ)9ZF6Zbb?l+=0QT^?fqs8kF853{u)ZE%?Ief*WSANnFEsyg<6;r?hm zAV+c=7pw?9F|}3Nt8Tk#rHRf78oAxl-K*}XYEy5$PWh7S|3W!U_cALkNA*q=^0 zA~*KdOj}v6M%vjZ zIs3p=X;6i%Fw8E5{HB1HHmOiblgc6+(R-?9r48o8vM#*`kRx~E?aC{sHo+Ht|^?4kQs z+7UGeBX-gcR!g+k|BQ3j?v>0RH9F7M3O!oC!%~~w#1J&q3GT^!^^%X=_L6~9=;&)` zRIvZR+}rZgh9KN-C2Aplt}lynL1=3D<%qIUW52_$n_bZXOFlzOH8b&^i-`%?_2pCo zJRw^CL~ z0&)P_LIBd-h!D6yKxmM|syMU`!Gi<>OaKcU+`_ZsL9s3N5Rl?VC?K#IRtL98Fp=-q zY``f7LfuqOgE(MvBfG#s9)todZCD|rGB7tt-j# zqFtkkEBGtN)26y2T=)MYSk1c;%-lgw8 Date: Sun, 19 Jul 2026 21:41:32 +0200 Subject: [PATCH 07/10] Release 5.5.3+fn-26.2 (#52) * Add de_de.json (#51) --------- Co-authored-by: Ultra --- README.md | 2 +- gradle.properties | 6 +- .../gui/screen/BetterStatsConfigScreen.java | 47 ++++- ...-26.2.jar => tcdcommons-5.5.3+fn-26.2.jar} | Bin 467323 -> 468391 bytes .../assets/betterstats/lang/de_de.json | 198 ++++++++++++++++++ .../assets/betterstats/lang/en_us.json | 2 +- .../assets/betterstats/lang/pl_pl.json | 2 +- .../assets/betterstats/lang/ru_ru.json | 2 +- src/main/resources/betterstats.credits.json | 6 + 9 files changed, 248 insertions(+), 17 deletions(-) rename src/main/resources/META-INF/jarjar/{tcdcommons-5.5.2+fn-26.2.jar => tcdcommons-5.5.3+fn-26.2.jar} (98%) create mode 100644 src/main/resources/assets/betterstats/lang/de_de.json diff --git a/README.md b/README.md index a87135c..49eda0e 100644 --- a/README.md +++ b/README.md @@ -41,8 +41,8 @@ The vanilla statistics screen is a mess, harder to read and navigate, and lacks ## Dependencies This mod depends on some other mods that first need to be installed before this mod can be installed. Those dependencies are as follows: +- 🧵 [Fabric API](https://github.com/FabricMC/fabric-api) (Fabric only) - Loads this mod's assets and resources. - 🖥 [TCDCommons API](https://github.com/TheCSDev/tcdcommons) - Powers the GUI interface of this mod -- 🏗 [Architectury API](https://github.com/architectury/architectury-api) - Allows this mod to run on `Fabric` and `NeoForge` ## Building diff --git a/gradle.properties b/gradle.properties index 987c9dd..8f1cf77 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ maven.group = com.thecsdev # Mod properties mod.id = betterstats -mod.version = 5.5.2 +mod.version = 5.5.3 mod.name = Better Statistics Screen mod.description = A Minecraft mod that improves the statistics screen and makes it more useful. mod.author = TheCSDev @@ -48,7 +48,7 @@ fabric.api_version = 0.152.1+26.2 fabric.json.depends.minecraft = ~26.2 fabric.json.depends.fabricloader = >=0.19.3 fabric.json.depends.fabric-api = >=0.152.1 - fabric.json.depends.tcdcommons = >=5.5.2 + fabric.json.depends.tcdcommons = >=5.5.3 # Neo-Forge properties neoforge.version = 26.1.0.7-beta @@ -57,4 +57,4 @@ neoforge.version = 26.1.0.7-beta net.toml.loaderVersion = [4,) neo.toml.dependencies.neoforge = [26.2.0.1-beta,) neo.toml.dependencies.minecraft = [26.2, 26.3) - neo.toml.dependencies.tcdcommons = [5.5.2,) + neo.toml.dependencies.tcdcommons = [5.5.3,) diff --git a/src/main/java/com/thecsdev/betterstats/api/client/gui/screen/BetterStatsConfigScreen.java b/src/main/java/com/thecsdev/betterstats/api/client/gui/screen/BetterStatsConfigScreen.java index 690341f..b968811 100644 --- a/src/main/java/com/thecsdev/betterstats/api/client/gui/screen/BetterStatsConfigScreen.java +++ b/src/main/java/com/thecsdev/betterstats/api/client/gui/screen/BetterStatsConfigScreen.java @@ -26,8 +26,10 @@ import com.thecsdev.commonmc.resource.TLanguage; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.ChatFormatting; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -93,7 +95,7 @@ public static final void initConfigGui(@NotNull TPanelElement panel) throws Null initStringProperty( panel, BLanguage.config_common_apiEndpoint(), - TTooltip.of(BLanguage.config_common_apiEndpoint_tooltip()), + BLanguage.config_common_apiEndpoint_tooltip(), bss_config.getApiEndpoint().toString(), (_, _, n) -> { try { bss_config.setApiEndpoint(URI.create(n));} @@ -102,13 +104,13 @@ public static final void initConfigGui(@NotNull TPanelElement panel) throws Null initBooleanProperty( panel, BLanguage.config_common_registerCommands(), - TTooltip.of(BLanguage.config_common_registerCommands_tooltip()), + BLanguage.config_common_registerCommands_tooltip(), bss_config.canRegisterCommands(), (_, _, n) -> bss_config.setRegisterCommands(n)); initBooleanProperty( panel, BLanguage.config_common_experiments(), - TTooltip.of(BLanguage.config_common_experiments_tooltip()), + BLanguage.config_common_experiments_tooltip(), bss_config.experimentsEnabled(), (_, _, n) -> bss_config.setExperimentsEnabled(n)); @@ -117,13 +119,13 @@ public static final void initConfigGui(@NotNull TPanelElement panel) throws Null initBooleanProperty( panel, BLanguage.config_client_guiMobsFollowCursor(), - TTooltip.of(BLanguage.config_client_guiMobsFollowCursor_tooltip()), + BLanguage.config_client_guiMobsFollowCursor_tooltip(), bss_config.getGuiMobsFollowCursor(), (_, _, n) -> bss_config.setGuiMobsFollowCursor(n)); initBooleanProperty( panel, BLanguage.config_client_allowChatPsa(), - TTooltip.of(BLanguage.config_client_allowChatPsa_tooltip()), + BLanguage.config_client_allowChatPsa_tooltip(), bss_config.allowsChatPsaMessages(), (_, _, n) -> bss_config.setAllowChatPsaMessages(n)); @@ -144,7 +146,7 @@ public static final void initConfigGui(@NotNull TPanelElement panel) throws Null initBooleanProperty( panel, TLanguage.config_client_updateItemGroupsOnJoin(), - TTooltip.of(TLanguage.config_client_updateItemGroupsOnJoin_tooltip()), + TLanguage.config_client_updateItemGroupsOnJoin_tooltip(), tcd_config.updateItemGroupsOnJoin(), (_, _, n) -> tcd_config.setUpdateItemGroupsOnJoin(n)); @@ -204,6 +206,7 @@ private static final void initTableHead( * Initializes a blank setting slot that has no setting there. * @param panel The target {@link TPanelElement}. */ + @ApiStatus.Internal private static final void initNothingSetting(@NotNull TPanelElement panel) { //background color element @@ -224,15 +227,27 @@ private static final void initNothingSetting(@NotNull TPanelElement panel) * Initializes a boolean property setting. * @param panel The panel where the setting is to be initialized. * @param name The display name label text. - * @param tooltip The tooltip text. + * @param tooltipText The tooltip text. * @param value The current value of the setting. * @param changeListener Use this to apply setting value changes. */ + @ApiStatus.Internal private static final void initBooleanProperty( @NotNull TPanelElement panel, - @NotNull Component name, @Nullable TTooltip tooltip, + @NotNull Component name, @Nullable Component tooltipText, boolean value, @NotNull IChangeListener changeListener) { + //preparation + if(tooltipText != null) + tooltipText = Component.literal("") + .append(Component.literal("").append(name).withStyle(ChatFormatting.YELLOW)) + .append("\n") + .append(Component.literal("").append(tooltipText).withStyle(ChatFormatting.GRAY)); + else + tooltipText = Component.literal("") + .append(Component.literal("").append(name).withStyle(ChatFormatting.YELLOW)); + final var tooltip = TTooltip.of(tooltipText); + //background color element final var el_bg = new TFillColorElement.Flat((panel.size() % 2 == 0) ? 0x33000000 : 0x44000000, 0); el_bg.hoverableProperty().set(true, BetterStatsConfigScreen.class); @@ -258,15 +273,27 @@ private static final void initBooleanProperty( * Initializes a string property setting. * @param panel The panel where the setting is to be initialized. * @param name The display name label text. - * @param tooltip The tooltip text. + * @param tooltipText The tooltip text. * @param value The current value of the setting. * @param changeListener Use this to apply setting value changes. */ + @ApiStatus.Internal private static final void initStringProperty( @NotNull TPanelElement panel, - @NotNull Component name, @Nullable TTooltip tooltip, + @NotNull Component name, @Nullable Component tooltipText, @NotNull String value, @NotNull IChangeListener changeListener) { + //preparation + if(tooltipText != null) + tooltipText = Component.literal("") + .append(Component.literal("").append(name).withStyle(ChatFormatting.YELLOW)) + .append("\n") + .append(Component.literal("").append(tooltipText).withStyle(ChatFormatting.GRAY)); + else + tooltipText = Component.literal("") + .append(Component.literal("").append(name).withStyle(ChatFormatting.YELLOW)); + final var tooltip = TTooltip.of(tooltipText); + //background color element final var el_bg = new TFillColorElement.Flat((panel.size() % 2 == 0) ? 0x33000000 : 0x44000000, 0); el_bg.hoverableProperty().set(true, BetterStatsConfigScreen.class); diff --git a/src/main/resources/META-INF/jarjar/tcdcommons-5.5.2+fn-26.2.jar b/src/main/resources/META-INF/jarjar/tcdcommons-5.5.3+fn-26.2.jar similarity index 98% rename from src/main/resources/META-INF/jarjar/tcdcommons-5.5.2+fn-26.2.jar rename to src/main/resources/META-INF/jarjar/tcdcommons-5.5.3+fn-26.2.jar index fc8ffcd9f20f33ecaedebb2ed6aaa4eccc9e0eab..be7f677ca95f8f404347f7ab47b631dc438e9b35 100644 GIT binary patch delta 3385 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 b1{rXJ`$Unz_6hRg@Zm_Whru|!x8;8U^(Vem delta 2437 zcmZvcc{o)2AICX3XOd+sV;M8dpkJ~ik}X8CrLkoRp+!?&k*1I)#uP1g5}G(PaC zvP80EtyKTKq(!720CVT13}_4&Q1*bA54c_iG-$f0>C0b{n7=~Z_CfHf7ccDsH}AS{ z9#p~Xc{iLeUTB!)$8b(`>3(C#x;_$kTo-@vri8=(k#mQ#cD9{X5++r)Z8kf2Yr3Bq zWcJR9xz8V)r_tIsN?}G;Fe)!Ax#$>pCRlP?{TR6iVaq$OE7Er6Wrol`rWooQ*B6?4 zMAS4@6bBm%n_V?2T0y*7MCdWt)snRm@q1;t>54~XXV-n18_JM9uK&ojv#arZjD|^? zLTajF{QNHLblHb=GMd`weg3^^{G|)Dv-4i%g<;`V>RVo*tqd~k>5g}9HZa_wz2ElK zJraIVHl2@qb3o$N@M&@;@4$H);r`Uzmo90o_R=_y@!mqcV+L8g z*Dr7(?FG{pbdU6%8EF7UcF#ifg$q)3l9G;;&>=WT0^E$^PuIM(>!`_xSrVWYP3m^x z_MWJ|);*o7Gpb%z z0nZs`Mz*X#CC@FDW8CQ2rY($5G@=4mwXsf?dnA@}%np07B(JtJ&>`i4CC})^l@r`C zZ0hj7G9`8Wf*ZNmnl*aw4Z_XYBzDiNTIJz;ht(3*EwiYXdMgA`J zQjDuT$muhE^7k}{wCT;hoL4bTn6&cf*_f1E$K?x0uVXOL9E_>sa!B(sm8N4qRaZ!M zF9IUBmv%)vm!YXA*7~Y64V9vI91XNu4jNsO9ewpspryvrxaF(btry5>np@X2 zR?5Ya*U(h+Wb)KH6o{voC>rUoS={<3COP>`W}#<9V!dkmt(I)&;PX%$U->JJr&Io- z4!f+B+B6_7ht&$&EO7#r;pYD(#D(lf3wSv9f zOUEeuK76OE-6Z}pE8$|?pjx^eKFiYR0rRNdk;r1k@aJaZCs9rtJky3gMB`t*2gzNYCae2X42Vvh;5WXkTWo#EqpXF*%)$& z_%**x27i6`xym;PJ!mJQeT6AdZ659B|B+t)D$2j9|Hd(sM4sy#!;n$&khOWX|G z+tWfGEFEo)SV_AAIo|%=)UA3ff*4H8* z(p1IF$G`hFLPIAkP^?%d&$m41U~0;lT)9st316C=JD+OtD5VLu*`cG}<#FS}a4Byd zL83JIW@g6vmOPq~WN||8d(Oz~Ir=nrqDrnmPWS2TE3e2(ADho(rBcIY{5&0Z5@F(@ zKqWOcO2=fv(5Z?dwfZl^{5LN;OIRCHymktYR$n}Xva2X`b+|mqih5#d!y4gSBcbYz z$qU^P-8M7w%nWgCJq`tSE7zA0z*gS(7r%Z#3Q7b-kBLAU+AX*jXAfgH`1rEFeaJ56MF6@T3kR`^!TfK!c7*X_1Gv0q6BZaNH2FZP184 zXed%j(TII@jR@2f5IAQh0)_=?qfvkFiMAZ-t~Vjw&mqlgr6`VK^RbPe|-Qa4fNUwJv)vnU5`{wd?({kq7p-qnC);Hy|j4zPFs=}`djEh6~l38LY1 z8pu-iQU!xUc1b0PGWMDf1n1$9Ovh4X$_HEq4|pR-z{Vqu$av)b1RhJ4AOXyx=K)B0 z{gihBZ110-3?q%!!#FJnD^7#yc*q1^(1KLpL@i{Irti-j8cy{``g{+25|BPGmwFT1 zkQtC+?a>}$y2vvk`by|G{FfB4B|>|ELjg+^S}-UB^NC0&OyIAwaR>;(I2n;$P{vWWH{muXY diff --git a/src/main/resources/assets/betterstats/lang/de_de.json b/src/main/resources/assets/betterstats/lang/de_de.json new file mode 100644 index 0000000..2d7a641 --- /dev/null +++ b/src/main/resources/assets/betterstats/lang/de_de.json @@ -0,0 +1,198 @@ +{ + "modmenu.nameTranslation.betterstats": "Better Statistics Screen", + "modmenu.summaryTranslation.betterstats": "Ein Minecraft-Mod, die den Statistikbildschirm verbessert und ihn nützlicher macht.", + + "mobCategory.monster": "Monster", + "mobCategory.creature": "Kreaturen", + "mobCategory.ambient": "Ambiente", + "mobCategory.axolotls": "Axolotl", + "mobCategory.underground_water_creature": "Unterwasserkreaturen", + "mobCategory.water_creature": "Wasserkreaturen", + "mobCategory.water_ambient": "Wasserambiente", + "mobCategory.misc": "Verschiedenes", + + "stat.blocksButton": "Blöcke", + "stat.betterstats.time_since_login": "Die Dauer dieser Sitzung", + + "commands.statistics.edit.output": "Statistiken %s für %d Spieler(n) bearbeitet.", + "commands.statistics.clear.output": "Statistiken von %d Spieler(n) gelöscht.", + "commands.statistics.clear.kick": "Deine Statistiken wurden zurückgesetzt, daher wurde die Verbindung abgebrochen und du musst erneut beitreten", + "commands.statistics.query.output": "Der Statistikwert von %s für %s beträgt %d.", + + "betterstats.config.common.register_commands": "Befehle registieren", + "betterstats.config.common.register_commands.tooltip": "Registriert die Befehle dieser Mod (z. B. '/statistics').", + "betterstats.config.common.api_endpoint": "API-Endpunkt", + "betterstats.config.common.api_endpoint.tooltip": "Die URI-Adresse des RESTful-HTTP-API-Endpunkts, den diese Mod zur Kommunikation mit den Servern ihres Entwicklers verwendet.", + "betterstats.config.common.experimental_features": "Experimentelle Funktionen", + "betterstats.config.common.experimental_features.tooltip": "Hier lässt sich festlegen, ob Experimentelle Funtionen aktiviert werden sollen.\nSolche Funktionen können fehlerhaft sein, Abstürze verursachen oder zu Datenverlust führen. Die Aktivierung erfolgt auf eigene Gefahr, starte anschließend das Spiel neu.\n\nDas Vorhandensein dieser Funktionen lässt nicht zwangsläufig auf eine spätere Veröffentlichung schließen. Sie können jederzeit ohne Vorwarnung entfernt werden.", + "betterstats.config.client.allow_chat_psa": "Chat-PSA zulassen", + "betterstats.config.client.allow_chat_psa.tooltip": "Ermöglicht die Anzeige seltener informativer Nachichten (PSAs) des Mod-Entwicklers im Chat. Deaktivieren Sie diese Option, um alle derartigen Benachrichtigungen zu underdrücken.", + "betterstats.config.client.gui_mobs_follow_cursor": "GUI-Mobs folgen folgen dem Cursor", + "betterstats.config.client.gui_mobs_follow_cursor.tooltip": "Die GUI für die Entitätsstatistiken folgt visuell der Cursor-Position.", + + "betterstats.gui.screen.edit_siv_goal.stat_type": "Statistiktyp (Aktivität)", + "betterstats.gui.screen.edit_siv_goal.stat_subject": "Statistikobjekt (Item/Entität/usw.)", + "betterstats.gui.screen.edit_siv_goal.target_value_range": "Zielwertbereich", + + "betterstats.gui.menubar.file": "Datei", + "betterstats.gui.menubar.file.new": "Neu", + "betterstats.gui.menubar.file.open": "Öffnen", + "betterstats.gui.menubar.file.save_as": "Speicher unter", + "betterstats.gui.menubar.file.settings": "Einstellungen", + "betterstats.gui.menubar.file.close": "Schließen", + "betterstats.gui.menubar.view": "Ansicht", + "betterstats.gui.menubar.view.vanilla_screen": "Vanilla-Bildschirm", + "betterstats.gui.menubar.view.homepage": "Startseite", + "betterstats.gui.menubar.view.local_player_stats": "Meine statistiken", + "betterstats.gui.menubar.view.stats_view": "Ansicht wechseln", + "betterstats.gui.menubar.about": "Über", + "betterstats.gui.menubar.about.source_code": "Quellcode", + "betterstats.gui.menubar.about.support_me": "Unterstütze mich", + "betterstats.gui.menubar.about.legal_notices": "Rechtliche Hinweise", + + "betterstats.gui.statsview.filters": "Filter", + "betterstats.gui.statsview.filter.selected_view": "Ausgewählte Ansicht", + "betterstats.gui.statsview.filter.search": "Suchen", + "betterstats.gui.statsview.filter.show_all_stats": "Alle Statistiken anzeigen", + "betterstats.gui.statsview.filter.hide_completed_goals": "Abgeschlossene Ziele ausblenden", + "betterstats.gui.statsview.filter.sort_by": "Sortieren nach", + "betterstats.gui.statsview.filter.group_by": "Gruppieren nach", + "betterstats.gui.statsview.filter.group_by.all": "Alle", + "betterstats.gui.statsview.filter.group_by.mod": "Mod-Name", + "betterstats.gui.statsview.filter.group_by.mob_category": "Mob-Kategorie", + "betterstats.gui.statsview.filter.group_by.creative_mode_tab": "Item-Gruppe", + "betterstats.gui.statsview.filter.distance_unit": "Entfernungseinheit", + "betterstats.gui.statsview.filter.time_unit": "Zeiteinheit", + "betterstats.gui.statsview.stats.no_stats": "Es gibt noch keine Statistiken die angezeigt werden können...", + "betterstats.gui.statsview.stats.no_goals": "Es gibt noch keine Ziele die angezeigt werden können...", + "betterstats.gui.statsview.stats.ctxmenu.view_error_info": "Fehlerinformationen anzeigen", + "betterstats.gui.statsview.stats.ctxmenu.view_on_wiki": "Im Wiki ansehen", + "betterstats.gui.statsview.stats.ctxmenu.create_goal": "Ziel erstellen", + "betterstats.gui.statsview.mcbs_goals": "Ziele", + "betterstats.gui.statsview.mcbs_goals.alert1.prefix": "[Neu ✨]", + "betterstats.gui.statsview.mcbs_goals.alert1": "Definieren Sie Benutzerdefinierte Meilensteine, um ihren Fortschritt in Bezug auf bestimmte statistische Kennzahlen wie die Ressourcenerfassung zu verfolgen.", + "betterstats.gui.statsview.mcbs_goals.alert2.prefix": "[Notiz 💾]", + "betterstats.gui.statsview.mcbs_goals.alert2": "Diese Ziele bleiben nach einem erneuten Beitritt oder Neustart nicht erhalten. Diese fehlende Funktion wird möglicherweise irgendwann implementiert.", + "betterstats.gui.statsview.mcbs_goals.overview": "Überblick", + "betterstats.gui.statsview.mcbs_goals.overview.completed_goals": "Abgeschlossene Ziele", + "betterstats.gui.statsview.mcbs_goals.overview.total_progress": "Gesamtfortschritt", + "betterstats.gui.statsview.mcbs_goals.new_btn": "[ + Neues Ziel ]", + "betterstats.gui.statsview.mcbs_goals.manage_btn": "Ziele Verwalten", + "betterstats.gui.statsview.mcbs_goals.edit_btn": "Ziel bearbeiten", + "betterstats.gui.statsview.mcbs_goals.delete_btn": "Ziel löschen", + "betterstats.gui.statsview.mcbs_goals.delete_btn.confirm": "Bist du sicher?", + "betterstats.gui.statsview.mcbs_goals.no_edit_gui": "Dieser Zieltyp verfügt über keine Berarbeitungsoberfläche.", + + "betterstats.gui.home_tab.featured_stats": "Empfohlene Statistiken", + + "betterstats.credits": "Danksagungen", + "betterstats.credits.section.top_sponsors": "Top-Sponsoren", + "betterstats.credits.section.top_sponsors.summary": "Wichtigste finanziellen Beiträge für dieses Projekt.", + "betterstats.credits.section.recent_sponsors": "Kürzliche Sponsoren", + "betterstats.credits.section.recent_sponsors.summary": "Kürzliche finanziellen Beiträge für dieses Projekt.", + "betterstats.credits.section.recent_sponsors.entry.sponsor": "[+] [Sponsor werden]", + "betterstats.credits.section.recent_sponsors.entry.sponsor.summary": "Trage zu dieser Mod und ihrer Entwicklung bei, indem du Sponsor wirst.", + "betterstats.credits.section.special_thanks": "Besonderer Dank", + "betterstats.credits.section.special_thanks.summary": "Besonderer Dank gilt denjenigen, die diese Mod möglich gemacht haben.", + "betterstats.credits.section.special_thanks.entry.you": "[Du]", + "betterstats.credits.section.special_thanks.entry.you.summary": "Ein Besonderer Dank geht an DICH für diene Unterstützung und dafür, dass du dazu beiträgst diese Mod am Weiterleben bringst.", + "betterstats.credits.section.special_thanks.entry.contributors": "[Mitwirkende]", + "betterstats.credits.section.special_thanks.entry.contributors.summary": "An alle, die zu dieser Mod beigetragen, Fehler gemeldet und Feedback gegeben haben. Eure Hilfe bedeutet mir sehr viel.", + "betterstats.credits.section.contributors": "Mitwirkende", + "betterstats.credits.section.contributors.summary": "Community-Mitglieder, die während der Version v5.X. zu dieser Mod beigetragen haben", + "betterstats.credits.section.contributors.entry.contribute": "[+] [Beitragen]", + "betterstats.credits.section.contributors.entry.contribute.summary": "Trage ur Entwicklung dieser Mod bei, um auf dieser Liste genannt zu werden.", + "betterstats.credits.section.founder_contributors": "Gründungsbeitragende", + "betterstats.credits.section.founder_contributors.summary": "Community-Mitglieder, die vor v5.X. zu dieser Mod beigetragen haben", + + "betterstats.mcbsgoaltype.betterstats.stat_int_value": "Allgemeines numerisches Ziel", + + "betterstats.mcbsgoal.siv_objective": "%4$d [%1$s] für [%2$s]", + "betterstats.mcbsgoal.siv_objective.betterstats.edit_this_goal": "Dieses Ziel bearbeiten", + "betterstats.mcbsgoal.siv_objective.minecraft.custom": "[%2$s] %4$d-mal", + "betterstats.mcbsgoal.siv_objective.minecraft.broken": "%4$d %2$s zerstören", + "betterstats.mcbsgoal.siv_objective.minecraft.crafted": "%4$d %2$s herstellen", + "betterstats.mcbsgoal.siv_objective.minecraft.dropped": "%4$d %2$s fallen lassen", + "betterstats.mcbsgoal.siv_objective.minecraft.mined": "%4$d %2$s abbauen", + "betterstats.mcbsgoal.siv_objective.minecraft.picked_up": "%4$d %2$s aufsammeln", + "betterstats.mcbsgoal.siv_objective.minecraft.used": "%4$d %2$s benutzen", + "betterstats.mcbsgoal.siv_objective.minecraft.killed": "%4$d %2$s töten", + "betterstats.mcbsgoal.siv_objective.minecraft.killed_by": "%4$d-mal durch %2$s sterben", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.animals_bred": "Züchte %4$d Tiere", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.aviate_one_cm": "Fliege %4$d cm mit Elytren", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.bell_ring": "Läute %4$d Glocken", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.boat_one_cm": "Rudere ein Boot %4$d cm weit", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_armor": "Reinige %4$d Rüstungsteile", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_banner": "Reinige %4$d Bannern", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_shulker_box": "Reinige %4$d Shulker-Kiste", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.climb_one_cm": "Kletter %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.crouch_one_cm": "Hocke %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_absorbed": "Absorbiere %4$d Schaden", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_blocked_by_shield": "Blockiere %4$d Schaden mit einem Schild", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt": "Zufüge %4$d Schaden", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_absorbed": "Zufüge %4$d Schaden (Absorbiert)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_resisted": "Zufüge %4$d Schaden (Widergestanden)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_resisted": "Widerstehe %4$d Schaden", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_taken": "Nimm %4$d Schaden", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.deaths": "Sterbe %4$d-Mal", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.drop": "Ablege %4$d Gegenstände", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.eat_cake_slice": "Esse %4$d Kuchenstücke", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.enchant_item": "Verzauber %4$d Gegenstände", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fall_one_cm": "Falle %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fill_cauldron": "Fülle %4$d Kesseln", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fish_caught": "Fange %4$d Fisch", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fly_one_cm": "Fliege %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.happy_ghast_one_cm": "Fliege %4$d cm mit einen Glücklicher-Ghast", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.horse_one_cm": "Reise %4$d cm mit einen Pferd", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_dispenser": "Suche %4$d Werfer", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_dropper": "Suche %4$d Spender", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_hopper": "Suche %4$d Trichter", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_anvil": "Interagieren mit %4$d Ambosse", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_beacon": "Interagieren mit %4$d Leuchtfeuer", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_blast_furnace": "Interagieren mit %4$d Schmelzöfen", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_brewingstand": "Interagieren mit %4$d Braustände", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_campfire": "Interagieren mit %4$d Lagerfeuern", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_cartography_table": "Interagieren mit %4$d Kartentische", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_crafting_table": "Interagieren mit %4$d Werkbänke", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_furnace": "Interagieren mit %4$d Öfen", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_grindstone": "Interagieren mit %4$d Schleifsteine", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_lectern": "Interagieren mit %4$d Lesepulte", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_loom": "Interagieren mit %4$d Webstühle", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_smithing_table": "Interagieren mit %4$d Schmiedetische", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_smoker": "Interagieren mit %4$d Räucheröfen", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_stonecutter": "Interagieren mit %4$d Steinsägen", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.jump": "Springe %4$d-Mal", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.leave_game": "Verlasse das Spiel %4$d-Mal", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.minecart_one_cm": "Reise %4$d cm mit einer Lore", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.mob_kills": "Töte %4$d Kreaturen", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.nautilus_one_cm": "Reise %4$d cm mit einen Nautilus", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_barrel": "Öffne %4$d Fässe", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_chest": "Öffne %4$d Truhen", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_enderchest": "Öffne %4$d Endertruhen", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_shulker_box": "Öffne %4$d Shulker-Kisten", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.pig_one_cm": "Reise %4$d cm mit einen Schwein", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_noteblock": "Spiele %4$d Notenblöcke", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_record": "Spiele %4$d Shallplatten", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_time": "Spiele für %4$d Ticks", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.player_kills": "Töte %4$d Spielern", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.pot_flower": "%4$d in Blumentöpfe anpflanzen", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.raid_trigger": "Löse %4$d Überfälle", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.raid_win": "Gewinne %4$d Überfälle", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sleep_in_bed": "Schlafe in %4$d Betten", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sneak_time": "Schleiche für %4$d ticks", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sprint_one_cm": "Sprinte %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.strider_one_cm": "Reise %4$d cm mit einen Schreiter", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.swim_one_cm": "Schwimme %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.talked_to_villager": "Rede zu %4$d Dorfbewohnern", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.target_hit": "Treffe %4$d Zielblöcke", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.time_since_death": "Sterbe nicht für %4$d Ticks", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.time_since_rest": "Ruhe dich nicht aus für %4$d Ticks", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.total_world_time": "Spiele für %4$d Ticks", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.traded_with_villager": "Handel mit %4$d Dorfbewohnern", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.trigger_trapped_chest": "Löse %4$d Redstone-Truhen", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.tune_noteblock": "Stimme %4$d Notenblöcke", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.use_cauldron": "Benutze Kesseln %4$d-Mal", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_on_water_one_cm": "Gehe %4$d cm auf Wasser", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_one_cm": "Gehe %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_under_water_one_cm": "Gehe %4$d cm unterwasser" +} diff --git a/src/main/resources/assets/betterstats/lang/en_us.json b/src/main/resources/assets/betterstats/lang/en_us.json index cc6c878..e637741 100644 --- a/src/main/resources/assets/betterstats/lang/en_us.json +++ b/src/main/resources/assets/betterstats/lang/en_us.json @@ -128,7 +128,7 @@ "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.climb_one_cm": "Climb %4$d cm", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.crouch_one_cm": "Crouch %4$d cm", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_absorbed": "Absorb %4$d damage", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_blocked_by_shield": "Block %4$d damage", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_blocked_by_shield": "Block %4$d damage using a shield", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt": "Deal %4$d damage", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_absorbed": "Deal %4$d damage (Absorbed)", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_resisted": "Deal %4$d damage (Resisted)", diff --git a/src/main/resources/assets/betterstats/lang/pl_pl.json b/src/main/resources/assets/betterstats/lang/pl_pl.json index 3fbdbe1..824018e 100644 --- a/src/main/resources/assets/betterstats/lang/pl_pl.json +++ b/src/main/resources/assets/betterstats/lang/pl_pl.json @@ -128,7 +128,7 @@ "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.climb_one_cm": "Wspinaj się przez %4$d cm", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.crouch_one_cm": "Przejdź %4$d cm po kucaku", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_absorbed": "Pochłoń %4$d obrażeń", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_blocked_by_shield": "Zablokuj %4$d obrażeń", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_blocked_by_shield": "Zablokuj %4$d obrażeń przy użyciu tarczy", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt": "Zadaj %4$d obrażeń", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_absorbed": "Zadaj %4$d obrażeń (pochłoniętych)", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_resisted": "Zadaj %4$d obrażeń (odpartych)", diff --git a/src/main/resources/assets/betterstats/lang/ru_ru.json b/src/main/resources/assets/betterstats/lang/ru_ru.json index c5551b2..64745b9 100644 --- a/src/main/resources/assets/betterstats/lang/ru_ru.json +++ b/src/main/resources/assets/betterstats/lang/ru_ru.json @@ -128,7 +128,7 @@ "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.climb_one_cm" : "Пролезть %4$d см", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.crouch_one_cm" : "Прокрасться %4$d см", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_absorbed" : "Поглотить %4$d урона", - "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_blocked_by_shield" : "Заблокировать %4$d урона", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_blocked_by_shield" : "Заблокировать %4$d урона с помощью щита", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt" : "Нанести %4$d урона", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_absorbed" : "Нанести %4$d урона (поглощено)", "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_resisted" : "Нанести %4$d урона (сопротивление)", diff --git a/src/main/resources/betterstats.credits.json b/src/main/resources/betterstats.credits.json index 6b981a7..f1a1dee 100644 --- a/src/main/resources/betterstats.credits.json +++ b/src/main/resources/betterstats.credits.json @@ -18,6 +18,12 @@ "summary": "Translated this mod to 'Polish'.", "homepage_uri": "https://github.com/JustShadow78" }, + { + "avatar_uri": "https://avatars.githubusercontent.com/u/306860017?v=4", + "name": "Ultra0641", + "summary": "Translated this mod to 'German'.", + "homepage_uri": "https://github.com/Ultra0641" + }, { "avatar_uri": "https://avatars.githubusercontent.com/u/110760354?v=4", "name": "WForst-Breeze", From 33e330b3af61467990629e1e600e3287be8e301c Mon Sep 17 00:00:00 2001 From: TheCSDev Date: Fri, 24 Jul 2026 19:30:36 +0200 Subject: [PATCH 08/10] Release 5.5.4+fn-26.2 (#53) --- gradle.properties | 6 +- ...-26.2.jar => tcdcommons-5.5.4+fn-26.2.jar} | Bin 468391 -> 469422 bytes .../assets/betterstats/lang/bs_ba.json | 198 ++++++++++++++++++ 3 files changed, 201 insertions(+), 3 deletions(-) rename src/main/resources/META-INF/jarjar/{tcdcommons-5.5.3+fn-26.2.jar => tcdcommons-5.5.4+fn-26.2.jar} (97%) create mode 100644 src/main/resources/assets/betterstats/lang/bs_ba.json diff --git a/gradle.properties b/gradle.properties index 8f1cf77..bd51d41 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ maven.group = com.thecsdev # Mod properties mod.id = betterstats -mod.version = 5.5.3 +mod.version = 5.5.4 mod.name = Better Statistics Screen mod.description = A Minecraft mod that improves the statistics screen and makes it more useful. mod.author = TheCSDev @@ -48,7 +48,7 @@ fabric.api_version = 0.152.1+26.2 fabric.json.depends.minecraft = ~26.2 fabric.json.depends.fabricloader = >=0.19.3 fabric.json.depends.fabric-api = >=0.152.1 - fabric.json.depends.tcdcommons = >=5.5.3 + fabric.json.depends.tcdcommons = >=5.5.4 # Neo-Forge properties neoforge.version = 26.1.0.7-beta @@ -57,4 +57,4 @@ neoforge.version = 26.1.0.7-beta net.toml.loaderVersion = [4,) neo.toml.dependencies.neoforge = [26.2.0.1-beta,) neo.toml.dependencies.minecraft = [26.2, 26.3) - neo.toml.dependencies.tcdcommons = [5.5.3,) + neo.toml.dependencies.tcdcommons = [5.5.4,) diff --git a/src/main/resources/META-INF/jarjar/tcdcommons-5.5.3+fn-26.2.jar b/src/main/resources/META-INF/jarjar/tcdcommons-5.5.4+fn-26.2.jar similarity index 97% rename from src/main/resources/META-INF/jarjar/tcdcommons-5.5.3+fn-26.2.jar rename to src/main/resources/META-INF/jarjar/tcdcommons-5.5.4+fn-26.2.jar index be7f677ca95f8f404347f7ab47b631dc438e9b35..0c1bf04a2971e1b5b6e4f0a3b0458d934bb48c05 100644 GIT binary patch delta 3318 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 A8UO$Q delta 2494 zcmZvcc|4SB8^>oJ=6S>z`!<%0^~iGilo&K+FUi=lrJ$>l|_@&J6&t+nmSSG~eVse+^ zdfB+Z(TjbBpr4IXWig#fcrj(;^DoatCX=;N*dt459m>4+b zr*zGZ{xbbQBgP@loMYPgL8CB#$s$Tg_H+uD(TTCdz|><6%Zk4w{oHJq8U3c!)!O$F zS>&?m!+#I=@D%q-%=p>gWUQo;i7w&OPZ|lu#3L(}4IEh~8lEv)=vQD_np-o#d`2#6 zJ5`W+s&+v@A-t95lR4p;J9B5t06xr;S2HQEA-v!5)+4LoXNq@bZB-TRQhtMfqyN$H z)j67CW9nUzuyxibA5%~org0e}dY7d1lZ3TN!8Q3aU0EJiYU2rC$K9+u;1n`cG0$uN z*L~ZLMRx6tv`~f%TmS6%Ya4NElPx}xtQW*GlJcA!>*SokO-1QHoindq&p0DHqvJtT zBuXo@{%j_HxIabekYCKdD>LfP(pFv(U#hb)sc#F~Az4ida#V;iSY4goo z{wh4RSFW>3H~hOnS%e?!=EpHQ*U0mU<{h1HWjKZxMmkkSGQ^TCPv7jxGqGK;ZQq;l zQcXWac1+n~GKe((l=r&zn7fT77dNoMBa#($99%j#j!8|zW`iSKurXt)&#^#2vF$Uf zbZF1pYbjxO@5YU_)qTsnQxHjw!l)MsX2Qj3M!w(AoR_!teTeO|)0#ZI5OdPxOe|f$ z`<~MAu&UF_yY6;e+sb;)j_AqH%Qntx%{&p%6P{xp=pdYTrhT`Uema#fY_2DIj&UyI zRg2}Y`1OzyBg9Ox2~JC8>^fVMF?O~3S$)AdaOKOcq8MAp5h3R$zTC`$Pi8k#<$4Pf zRPQ+j`;)6__smw3c|Khp=!5Zt{ppK3U8hB7NAR9MW-{kw9@XPzo>Q!R#i})l{WSGp3Az#0m|{Qv}-zJtM0zqVRH7QH#{Fo zmm`y|DH`*r3f&m@`5cntxx-)<5?n4D4~@i5Enn74ua#}8p2nI6S0qQCW>4l2gqCSZ zSwUX*CyO(cuLZq&{uxPUQY_3B{3U7wu7X|Z!3Dt7!C2pasLaSWVys!zPS~(1mRzpN5_L ztM(a$QiXf1=oSrzlsCrm^KfcT2c;`1qu@bF!h_L=rHTBKkGj-F`br~8j%(}C`iH}H zSd|(~=c2x&ON)*(*jb-OQ~xl>eY+>{;nU7jb}Kbf`g zd)0uCd(u6paM9^25eBX%J$kK%Y9oHf-)j|1+~#fcxgE?7t7Y>CWz~cj6vlm(Z4167 zQ&EP%x?&X!c{pO`$0N+)Lqd46IXFzfG0&4gNDVOn7ArV{fD+oywJ#@De+BnzG%N)^ z;Sm?EqZk+!iolN_p<*w9YJS9@>l6foL=qh*ZHL+C;6=vlBh*WU|2Y?uwA$A?mpr?6k-Qi z@7s*|0Y?gPg5vjY#-31!#b&|}q@~d!d=G5KTflZ}7zgsC(cDza{}UqsiVRw%?!on# zG^kl6%zsEQ)(r$oBin$D9KsLUWf2!hgu3om07G`LAPD#g9YKa2OaS-g5InT>Uj_+~ zsDc{yY(;1E*m`}jG;lwJ&aYf>Z82VO4`$<8i?P}46k5xYoCxCuwKh0E8EMx}s_7V%=DdN}xWNLeJu(E#N(ce+I=ne1zP7O>Wwbrp zT-Rfo;G;5PhkXG8mC&oW-4jMY{ZX{0PF1vD4JxSlU$k{|JY?>^F7!c%E9yp#R7l|H sI@SUu$JYv>LUqSB;~zB~R72BV@&G<+2$|rG^~NUGV=!1R7`^|01BGMwTL1t6 diff --git a/src/main/resources/assets/betterstats/lang/bs_ba.json b/src/main/resources/assets/betterstats/lang/bs_ba.json new file mode 100644 index 0000000..3fb794e --- /dev/null +++ b/src/main/resources/assets/betterstats/lang/bs_ba.json @@ -0,0 +1,198 @@ +{ + "modmenu.nameTranslation.betterstats": "Better Statistics Screen", + "modmenu.summaryTranslation.betterstats": "Minecraft mod koji poboljšava ekran statistike i čini ga korisnijim.", + + "mobCategory.monster": "Čudovišta", + "mobCategory.creature": "Stvorenja", + "mobCategory.ambient": "Ambijentalna", + "mobCategory.axolotls": "Aksolotli", + "mobCategory.underground_water_creature": "Podzemna vodena stvorenja", + "mobCategory.water_creature": "Vodena stvorenja", + "mobCategory.water_ambient": "Vodeni ambijent", + "mobCategory.misc": "Razno", + + "stat.blocksButton": "Blokovi", + "stat.betterstats.time_since_login": "Vrijeme u ovoj sesiji", + + "commands.statistics.edit.output": "Statistika %s je izmijenjena za %d igrača.", + "commands.statistics.clear.output": "Statistike obrisane za %d igrača.", + "commands.statistics.clear.kick": "Vaše statistike su obrisane. Zbog toga potrebno je da se ponovo povežete.", + "commands.statistics.query.output": "Vrijednost statistike %2$s za %1$s je %3$d.", + + "betterstats.config.common.register_commands": "Registruj komande", + "betterstats.config.common.register_commands.tooltip": "Registruje komande ovog moda (npr. '/statistics').", + "betterstats.config.common.api_endpoint": "API krajnja tačka", + "betterstats.config.common.api_endpoint.tooltip": "TURI adresa RESTful HTTP API krajnje tačke koju ovaj mod koristi za komunikaciju sa serverima autora ovog moda.", + "betterstats.config.common.experimental_features": "Eksperimentalne funkcije", + "betterstats.config.common.experimental_features.tooltip": "Omogućava eksperimentalne funkcije.\nOve funkcije mogu sadržavati greške, uzrokovati rušenje igre ili dovesti do gubitka podataka. Omogućite ih na vlastitu odgovornost, te zatim ponovo pokrenite igru.\n\nPrisustvo ovakvih funkcija ne znači da će one biti objavljene u konačnoj verziji. Mogu biti uklonjene u bilo kojem trenutku bez prethodne najave.", + "betterstats.config.client.allow_chat_psa": "Dozvoli \"PSA\" poruke u chatu", + "betterstats.config.client.allow_chat_psa.tooltip": "Dozvoljava da se u chatu povremeno prikazuju informativne \"PSA\" poruke autora ovog moda. Isključite ovu opciju da biste onemogućili sva takva obavještenja.", + "betterstats.config.client.gui_mobs_follow_cursor": "Mobovi u GUI-ju prate kursor", + "betterstats.config.client.gui_mobs_follow_cursor.tooltip": "Mobovi prikazani u GUI-ju statistike entiteta vizuelno prate položaj kursora.", + + "betterstats.gui.screen.edit_siv_goal.stat_type": "Tip statistike (aktivnost)", + "betterstats.gui.screen.edit_siv_goal.stat_subject": "Subjekat statistike (predmet/entitet/itd.)", + "betterstats.gui.screen.edit_siv_goal.target_value_range": "Raspon ciljane vrijednosti", + + "betterstats.gui.menubar.file": "Datoteka", + "betterstats.gui.menubar.file.new": "Novo", + "betterstats.gui.menubar.file.open": "Otvori", + "betterstats.gui.menubar.file.save_as": "Sačuvaj kao", + "betterstats.gui.menubar.file.settings": "Podešavanja", + "betterstats.gui.menubar.file.close": "Zatvori", + "betterstats.gui.menubar.view": "Prikaz", + "betterstats.gui.menubar.view.vanilla_screen": "Vanilla ekran", + "betterstats.gui.menubar.view.homepage": "Početna", + "betterstats.gui.menubar.view.local_player_stats": "Moje statistike", + "betterstats.gui.menubar.view.stats_view": "Promijeni prikaz", + "betterstats.gui.menubar.about": "O modu", + "betterstats.gui.menubar.about.source_code": "Izvorni kod", + "betterstats.gui.menubar.about.support_me": "Podrži autora", + "betterstats.gui.menubar.about.legal_notices": "Pravne napomene", + + "betterstats.gui.statsview.filters": "Filteri", + "betterstats.gui.statsview.filter.selected_view": "Izabrani prikaz", + "betterstats.gui.statsview.filter.search": "Pretraga", + "betterstats.gui.statsview.filter.show_all_stats": "Prikaži sve statistike", + "betterstats.gui.statsview.filter.hide_completed_goals": "Sakrij završene ciljeve", + "betterstats.gui.statsview.filter.sort_by": "Poredaj po", + "betterstats.gui.statsview.filter.group_by": "Grupiši po", + "betterstats.gui.statsview.filter.group_by.all": "Sve", + "betterstats.gui.statsview.filter.group_by.mod": "Naziv moda", + "betterstats.gui.statsview.filter.group_by.mob_category": "Kategorija mobova", + "betterstats.gui.statsview.filter.group_by.creative_mode_tab": "Grupa predmeta", + "betterstats.gui.statsview.filter.distance_unit": "Jedinica udaljenosti", + "betterstats.gui.statsview.filter.time_unit": "Jedinica vremena", + "betterstats.gui.statsview.stats.no_stats": "Još nema statistika za prikaz...", + "betterstats.gui.statsview.stats.no_goals": "Još nema ciljeva za prikaz...", + "betterstats.gui.statsview.stats.ctxmenu.view_error_info": "Prikaži informacije o grešci", + "betterstats.gui.statsview.stats.ctxmenu.view_on_wiki": "Pogledaj na Wikiju", + "betterstats.gui.statsview.stats.ctxmenu.create_goal": "Kreiraj cilj", + "betterstats.gui.statsview.mcbs_goals": "Ciljevi", + "betterstats.gui.statsview.mcbs_goals.alert1.prefix": "[Novo ✨]", + "betterstats.gui.statsview.mcbs_goals.alert1": "Definišite prilagođene prekretnice za praćenje napretka prema određenim statističkim ciljevima, kao na primjer prikupljanje resursa.", + "betterstats.gui.statsview.mcbs_goals.alert2.prefix": "[Napomena 💾]", + "betterstats.gui.statsview.mcbs_goals.alert2": "Ovi ciljevi se ne čuvaju nakon ponovnog povezivanja ili ponovnog pokretanja igre. Ova nedostajuća funkcija bi mogla biti dodana u budućnosti.", + "betterstats.gui.statsview.mcbs_goals.overview": "Pregled", + "betterstats.gui.statsview.mcbs_goals.overview.completed_goals": "Završeni ciljevi", + "betterstats.gui.statsview.mcbs_goals.overview.total_progress": "Ukupan napredak", + "betterstats.gui.statsview.mcbs_goals.new_btn": "[ + Novi cilj ]", + "betterstats.gui.statsview.mcbs_goals.manage_btn": "Upravljaj ciljevima", + "betterstats.gui.statsview.mcbs_goals.edit_btn": "Uredi cilj", + "betterstats.gui.statsview.mcbs_goals.delete_btn": "Obriši cilj", + "betterstats.gui.statsview.mcbs_goals.delete_btn.confirm": "Jeste li sigurni?", + "betterstats.gui.statsview.mcbs_goals.no_edit_gui": "Ova vrsta cilja nema interfejs za uređivanje.", + + "betterstats.gui.home_tab.featured_stats": "Istaknute statistike", + + "betterstats.credits": "Zasluge", + "betterstats.credits.section.top_sponsors": "Najveći sponzori", + "betterstats.credits.section.top_sponsors.summary": "Najveći finansijski doprinosi ovom projektu.", + "betterstats.credits.section.recent_sponsors": "Nedavni sponzori", + "betterstats.credits.section.recent_sponsors.summary": "Nedavni finansijski doprinosi ovom projektu.", + "betterstats.credits.section.recent_sponsors.entry.sponsor": "[+] [Sponzoriši]", + "betterstats.credits.section.recent_sponsors.entry.sponsor.summary": "Doprinesite ovom modu i njegovom razvoju ako postanete sponzor.", + "betterstats.credits.section.special_thanks": "Posebne zahvale", + "betterstats.credits.section.special_thanks.summary": "Posebne zasluge i osobe koje su omogućile ovaj mod.", + "betterstats.credits.section.special_thanks.entry.you": "[Ti]", + "betterstats.credits.section.special_thanks.entry.you.summary": "Posebne zahvale TEBI za tvoju podršku i pomoć u održavanju ovog moda.", + "betterstats.credits.section.special_thanks.entry.contributors": "[Doprinosioci]", + "betterstats.credits.section.special_thanks.entry.contributors.summary": "Svi koji su doprinijeli ovom modu, prijavili greške i pružili povratne informacije. Vaša pomoć mnogo znači.", + "betterstats.credits.section.contributors": "Doprinosioci", + "betterstats.credits.section.contributors.summary": "Članovi zajednice koji su doprinijeli ovom modu tokom verzije v5.X.", + "betterstats.credits.section.contributors.entry.contribute": "[+] [Doprinesi]", + "betterstats.credits.section.contributors.entry.contribute.summary": "Doprinesite razvoju ovog moda kako biste bili navedeni na ovoj listi.", + "betterstats.credits.section.founder_contributors": "Prvi doprinosioci", + "betterstats.credits.section.founder_contributors.summary": "Članovi zajednice koji su doprinijeli ovom modu prije verzije v5.X.", + + "betterstats.mcbsgoaltype.betterstats.stat_int_value": "Opšti brojčani cilj", + + "betterstats.mcbsgoal.siv_objective": "%4$d [%1$s] za [%2$s]", + "betterstats.mcbsgoal.siv_objective.betterstats.edit_this_goal": "Izmjeni ovaj cilj", + "betterstats.mcbsgoal.siv_objective.minecraft.custom": "Uradi [%2$s] %4$d puta", + "betterstats.mcbsgoal.siv_objective.minecraft.broken": "Razbiji %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.crafted": "Napravi %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.dropped": "Ispusti %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.mined": "Izkopaj %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.picked_up": "Pokupi %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.used": "Upotrebi %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.killed": "Ubij %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.killed_by": "Umri od %4$d %2$s", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.animals_bred": "Uzgoji %4$d životinja", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.aviate_one_cm": "Leti %4$d cm sa krilima", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.bell_ring": "Pozvoni %4$d zvona", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.boat_one_cm": "Veslaj čamcem %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_armor": "Očisti %4$d komada oklopa", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_banner": "Očisti %4$d zastava", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.clean_shulker_box": "Očisti %4$d šulker kutija", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.climb_one_cm": "Popni se %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.crouch_one_cm": "Čuči %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_absorbed": "Upij %4$d štete", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_blocked_by_shield": "Blokiraj %4$d štete štitom", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt": "Nanesi %4$d štete", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_absorbed": "Nanesi %4$d štete (Upijeno)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_dealt_resisted": "Nanesi %4$d štete (Odbijeno)", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_resisted": "Odbij %4$d štete", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.damage_taken": "Primi %4$d štete", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.deaths": "Umri %4$d puta", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.drop": "Ispusti %4$d predmeta", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.eat_cake_slice": "Pojedi %4$d komada torte", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.enchant_item": "Začaraj %4$d predmeta", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fall_one_cm": "Padni %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fill_cauldron": "Napuni %4$d kazana", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fish_caught": "Uhvati %4$d ribe", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.fly_one_cm": "Leti %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.happy_ghast_one_cm": "Leti %4$d cm sa srećnim ghastom", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.horse_one_cm": "Putuj %4$d cm sa konjem", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_dispenser": "Pretraži %4$d automata", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_dropper": "Pretraži %4$d izbacivača", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.inspect_hopper": "Pretraži %4$d lijevka", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_anvil": "Koristi %4$d nakovnja", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_beacon": "Koristi %4$d svjetionika", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_blast_furnace": "Koristi %4$d visokih peći", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_brewingstand": "Koristi %4$d postolja za napitke", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_campfire": "Koristi %4$d logorskih vatri", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_cartography_table": "Koristi %4$d kartografskih stolova", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_crafting_table": "Koristi %4$d stolova za izradu", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_furnace": "Koristi %4$d peći", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_grindstone": "Koristi %4$d brusnih kamenova", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_lectern": "Koristi %4$d govornica", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_loom": "Koristi %4$d razboja", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_smithing_table": "Koristi %4$d kovačkih stolova", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_smoker": "Koristi %4$d pušnica", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.interact_with_stonecutter": "Koristi %4$d rezača kamena", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.jump": "Skoči %4$d puta", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.leave_game": "Izađi iz igre %4$d puta", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.minecart_one_cm": "Putuj %4$d cm sa vagonom", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.mob_kills": "Ubij %4$d mobova", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.nautilus_one_cm": "Putuj %4$d cm sa nautilusom", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_barrel": "Otvori %4$d bureta", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_chest": "Otvori %4$d sanduka", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_enderchest": "Otvori %4$d ender sanduka", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.open_shulker_box": "Otvori %4$d šulker kutija", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.pig_one_cm": "Putuj %4$d cm sa svinjom", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_noteblock": "Sviraj %4$d note blokova", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_record": "Pusti %4$d muzičkih ploča", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.play_time": "Igraj tokom %4$d tikova", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.player_kills": "Ubij %4$d igrača", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.pot_flower": "Posadi %4$d biljaka u saksijama", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.raid_trigger": "Pokreni %4$d napada", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.raid_win": "Pobjedi %4$d napada", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sleep_in_bed": "Spavaj u %4$d kreveta", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sneak_time": "Šunjaj se tokom %4$d tikova", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.sprint_one_cm": "Triči %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.strider_one_cm": "Putuj %4$d cm sa šetačem", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.swim_one_cm": "Plivaj %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.talked_to_villager": "Razgovaraj sa %4$d seljaka", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.target_hit": "Pogodi %4$d mete", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.time_since_death": "Nemoj umrijeti tokom %4$d tokova", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.time_since_rest": "Nemoj odmarati tokom %4$d tikova", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.total_world_time": "Igraj tokom %4$d tikova", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.traded_with_villager": "Trguj sa %4$d seljaka", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.trigger_trapped_chest": "Aktiviraj %4$d sanduka sa zamkom", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.tune_noteblock": "Uštimaj %4$d note blokova", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.use_cauldron": "Koristi %4$d kazana", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_on_water_one_cm": "Hodaj %4$d cm po vodi", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_one_cm": "Hodaj %4$d cm", + "betterstats.mcbsgoal.siv_objective.minecraft.custom.minecraft.walk_under_water_one_cm": "Hodaj %4$d cm pod vodom" +} From b66b18080be595514c8cff3939f3803b504b9e02 Mon Sep 17 00:00:00 2001 From: TheCSDev Date: Thu, 30 Jul 2026 14:49:42 +0200 Subject: [PATCH 09/10] Release 5.5.5+fn-26.2 (#54) --- build.gradle | 2 +- gradle.properties | 6 +++--- gradle/wrapper/gradle-wrapper.properties | 4 +++- ...-26.2.jar => tcdcommons-5.5.5+fn-26.2.jar} | Bin 469422 -> 462182 bytes 4 files changed, 7 insertions(+), 5 deletions(-) rename src/main/resources/META-INF/jarjar/{tcdcommons-5.5.4+fn-26.2.jar => tcdcommons-5.5.5+fn-26.2.jar} (70%) diff --git a/build.gradle b/build.gradle index 467022d..0c6b85a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'net.fabricmc.fabric-loom' version "1.15-SNAPSHOT" + id 'net.fabricmc.fabric-loom' version "1.17-SNAPSHOT" } repositories diff --git a/gradle.properties b/gradle.properties index bd51d41..09e7ea4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ maven.group = com.thecsdev # Mod properties mod.id = betterstats -mod.version = 5.5.4 +mod.version = 5.5.5 mod.name = Better Statistics Screen mod.description = A Minecraft mod that improves the statistics screen and makes it more useful. mod.author = TheCSDev @@ -48,7 +48,7 @@ fabric.api_version = 0.152.1+26.2 fabric.json.depends.minecraft = ~26.2 fabric.json.depends.fabricloader = >=0.19.3 fabric.json.depends.fabric-api = >=0.152.1 - fabric.json.depends.tcdcommons = >=5.5.4 + fabric.json.depends.tcdcommons = >=5.5.5 # Neo-Forge properties neoforge.version = 26.1.0.7-beta @@ -57,4 +57,4 @@ neoforge.version = 26.1.0.7-beta net.toml.loaderVersion = [4,) neo.toml.dependencies.neoforge = [26.2.0.1-beta,) neo.toml.dependencies.minecraft = [26.2, 26.3) - neo.toml.dependencies.tcdcommons = [5.5.4,) + neo.toml.dependencies.tcdcommons = [5.5.5,) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 19a6bde..df6a6ad 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,9 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip networkTimeout=10000 +retries=0 +retryBackOffMs=500 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/resources/META-INF/jarjar/tcdcommons-5.5.4+fn-26.2.jar b/src/main/resources/META-INF/jarjar/tcdcommons-5.5.5+fn-26.2.jar similarity index 70% rename from src/main/resources/META-INF/jarjar/tcdcommons-5.5.4+fn-26.2.jar rename to src/main/resources/META-INF/jarjar/tcdcommons-5.5.5+fn-26.2.jar index 0c1bf04a2971e1b5b6e4f0a3b0458d934bb48c05..a448c444cbf31219b61645604f11e1c52d6b9efe 100644 GIT binary patch delta 31261 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 T=2%gzC~C2mRu%rA+iLwE#tm0C delta 45348 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®sAi{nr`8f5zhTy90`4JjI~x`>07b97G$zT92J_PN{RH0`+*- z0KEXViGeATQ~0)^PP7Uw;8*x+*%owBrBKSx6{^nG3i!Bl`DviK2MoRh8Ag%1d{l#` z>!VtJIf%yP=lZ}>#bQHh9gLhM(l*Vt<}-riviQXLq<}(wVtC%cz!KA9RBq`@Q`v*p zOi|~hg^|Le%q@W^SQ2RfFI06RTtLNd+6DG!#)-~-%g>b1Bp4Sh^AI((2_J#-)L?40 z`~rjKhGbKD9^hcfdNrU6(k%xl=0FW8<(G0vo!S@JiwD4N7pjJq4UL|h7|CSY&~^<` z>LDycFxG>90~O5xb7VXw2jmvUCx>|$i^t>})^hwHB{2?og#|QW(iHO&V=R#|#(=Ry z)C4p5{GL5v`HwODrb9LG>72+~G6b?F;|%!`jsx;r{Mcm6T){gwOpR}i^7MGF+nNl= z-=vL*;NTDZ178r91{&jg{YZ5)HYj+C)^|Z5c{I-Vha+%6Z4=c&;%OXk<484NV_sJ( zG2fBp~YoIy$e From 8ccc5bc4bde1e5a1f2f02c9cdb70c6243f5f3183 Mon Sep 17 00:00:00 2001 From: TheCSDev Date: Thu, 6 Aug 2026 19:56:52 +0200 Subject: [PATCH 10/10] Backport to 26.1 --- gradle.properties | 24 +++++++++--------- .../betterstats/client/BetterStatsClient.java | 2 +- .../client/gui/panel/PersonalHomePanel.java | 4 +-- .../mcbs/view/menubar/MenubarItemAbout.java | 6 ++--- .../mcbs/view/menubar/MenubarItemFile.java | 18 ++++++------- .../mcbs/view/menubar/MenubarItemView.java | 4 +-- .../mcbs/view/statsview/StatsViewBlocks.java | 4 +-- .../mcbs/view/statsview/StatsViewGeneral.java | 4 +-- .../mcbs/view/statsview/StatsViewGoals.java | 6 ++--- .../mcbs/view/statsview/StatsViewItems.java | 4 +-- .../mcbs/view/statsview/StatsViewMobs.java | 8 +++--- ...-26.2.jar => tcdcommons-5.5.5+fn-26.1.jar} | Bin 462182 -> 460903 bytes 12 files changed, 42 insertions(+), 42 deletions(-) rename src/main/resources/META-INF/jarjar/{tcdcommons-5.5.5+fn-26.2.jar => tcdcommons-5.5.5+fn-26.1.jar} (83%) diff --git a/gradle.properties b/gradle.properties index 09e7ea4..3174776 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,17 +26,17 @@ mod.link.curseforge = https://thecsdev.com/fwd/betterstats-curseforge/ mod.link.modrinth = https://thecsdev.com/fwd/betterstats-modrinth/ # 'pack.mcmeta' properties -pack.format = 88 +pack.format = 84 # Minecraft properties -minecraft.version = 26.2 +minecraft.version = 26.1 # Third-party mod versions -modmenu.version = 20.0.0-beta.2 +modmenu.version = 18.0.0 # Fabric properties -fabric.loader_version = 0.19.3 -fabric.api_version = 0.152.1+26.2 +fabric.loader_version = 0.18.5 +fabric.api_version = 0.144.0+26.1 # fabric.mod.json properties fabric.json.entrypoints.main = com.thecsdev.betterstats.fabric.BetterStatsFabric @@ -45,16 +45,16 @@ fabric.api_version = 0.152.1+26.2 fabric.json.entrypoints.modmenu = com.thecsdev.betterstats.fabric.client.BetterStatsModmenu fabric.json.depends.java = >=25 - fabric.json.depends.minecraft = ~26.2 - fabric.json.depends.fabricloader = >=0.19.3 - fabric.json.depends.fabric-api = >=0.152.1 + fabric.json.depends.minecraft = ~26.1 + fabric.json.depends.fabricloader = >=0.18.5 + fabric.json.depends.fabric-api = >=0.144.0 fabric.json.depends.tcdcommons = >=5.5.5 # Neo-Forge properties neoforge.version = 26.1.0.7-beta # neoforge.mods.toml properties - net.toml.loaderVersion = [4,) - neo.toml.dependencies.neoforge = [26.2.0.1-beta,) - neo.toml.dependencies.minecraft = [26.2, 26.3) - neo.toml.dependencies.tcdcommons = [5.5.5,) + net.toml.loaderVersion = [2,) + neo.toml.dependencies.neoforge = [26.1.0.7-beta,) + neo.toml.dependencies.minecraft = [26.1, 26.2) + neo.toml.dependencies.tcdcommons = [5.3.2,) diff --git a/src/main/java/com/thecsdev/betterstats/client/BetterStatsClient.java b/src/main/java/com/thecsdev/betterstats/client/BetterStatsClient.java index bb28b86..9e19f63 100644 --- a/src/main/java/com/thecsdev/betterstats/client/BetterStatsClient.java +++ b/src/main/java/com/thecsdev/betterstats/client/BetterStatsClient.java @@ -34,7 +34,7 @@ public BetterStatsClient() //else open the Better Statistics Screen else { final var client = Minecraft.getInstance(); - client.gui.setScreen(new BetterStatsScreen(client.gui.screen()).getAsScreen()); + client.setScreen(new BetterStatsScreen(client.screen).getAsScreen()); } }); diff --git a/src/main/java/com/thecsdev/betterstats/client/gui/panel/PersonalHomePanel.java b/src/main/java/com/thecsdev/betterstats/client/gui/panel/PersonalHomePanel.java index effc568..b35e706 100644 --- a/src/main/java/com/thecsdev/betterstats/client/gui/panel/PersonalHomePanel.java +++ b/src/main/java/com/thecsdev/betterstats/client/gui/panel/PersonalHomePanel.java @@ -392,9 +392,9 @@ protected void initCallback() BLanguage.gui_menubar_view_vanillaScreen(), _ -> { final @Nullable var player = client.player; - final @Nullable var lastScreen = client.gui.screen(); + final @Nullable var lastScreen = client.screen; if(player == null || lastScreen == null) return; //safety - shouldn't happen - client.gui.setScreen(new StatsScreen(lastScreen, player.getStats())); + client.setScreen(new StatsScreen(lastScreen, player.getStats())); }); initButton( TSprites.gui_icon_fsFolder(), diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemAbout.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemAbout.java index a730262..e217c01 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemAbout.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemAbout.java @@ -81,14 +81,14 @@ public static final void showUriScreen(@NotNull String uri, boolean isTrusted) //obtain client variables stuff final var client = Objects.requireNonNull(Minecraft.getInstance()); - final var lastScreen = client.gui.screen(); + final var lastScreen = client.screen; //create and set the confirmation screen final var screen = new ConfirmLinkScreen(accepted -> { if(accepted) Util.getPlatform().openUri(uri); - client.gui.setScreen(lastScreen); + client.setScreen(lastScreen); }, uri, isTrusted); - client.gui.setScreen(screen); + client.setScreen(screen); } // ================================================== } diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemFile.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemFile.java index 33052cf..b727f14 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemFile.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemFile.java @@ -71,7 +71,7 @@ public final class MenubarItemFile extends MenubarItem //"Close" option builder.addButton( gui(BSprites.gui_icon_close()).append(" ").append(BLanguage.gui_menubar_file_close()), - _ -> Optional.ofNullable(client.gui.screen()).ifPresent(Screen::onClose)); + _ -> Optional.ofNullable(client.screen).ifPresent(Screen::onClose)); //build and return the context menu return builder.build(); @@ -88,7 +88,7 @@ public final class MenubarItemFile extends MenubarItem @NotNull Minecraft client, @NotNull McbsEditor mcbsEditor) throws NullPointerException { - final var lastScreen = client.gui.screen(); + final var lastScreen = client.screen; final var dialog = new TFileChooserScreen.Builder(TFileChooserScreen.Mode.CHOOSE_FILE) .setLastScreen(lastScreen) .setPathFilter(TFileChooserScreen.PathFilter.extname("json")) @@ -102,12 +102,12 @@ public final class MenubarItemFile extends MenubarItem if(dialog.getResult().isCancelled()) return null; final var tit = TLanguage.misc_somethingWentWrong(); final var txt = Component.literal(getStackTrace(throwable).replace("\r\n", "\n").replace("\t", " ")); - final var edia = new TTextDialogScreen(client.gui.screen(), tit, txt); + final var edia = new TTextDialogScreen(client.screen, tit, txt); edia.getMessageLabel().wrapTextProperty().set(true, MenubarItemFile.class); - client.gui.setScreen(edia.getAsScreen()); + client.setScreen(edia.getAsScreen()); return null; }); - client.gui.setScreen(dialog.getAsScreen()); + client.setScreen(dialog.getAsScreen()); } /** @@ -126,7 +126,7 @@ public final class MenubarItemFile extends MenubarItem if(fileTab == null) return; //create and show the dialog - final var lastScreen = client.gui.screen(); + final var lastScreen = client.screen; final var dialog = new TFileChooserScreen.Builder(TFileChooserScreen.Mode.CREATE_FILE) .setLastScreen(lastScreen) .setPathFilter(TFileChooserScreen.PathFilter.extname("json")) @@ -140,12 +140,12 @@ public final class MenubarItemFile extends MenubarItem if(dialog.getResult().isCancelled()) return null; final var tit = TLanguage.misc_somethingWentWrong(); final var txt = Component.literal(getStackTrace(throwable).replace("\r\n", "\n").replace("\t", " ")); - final var edia = new TTextDialogScreen(client.gui.screen(), tit, txt); + final var edia = new TTextDialogScreen(client.screen, tit, txt); edia.getMessageLabel().wrapTextProperty().set(true, MenubarItemFile.class); - client.gui.setScreen(edia.getAsScreen()); + client.setScreen(edia.getAsScreen()); return null; }); - client.gui.setScreen(dialog.getAsScreen()); + client.setScreen(dialog.getAsScreen()); } // ================================================== } diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemView.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemView.java index d1f3746..f0325ce 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemView.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/menubar/MenubarItemView.java @@ -51,9 +51,9 @@ public final class MenubarItemView extends MenubarItem gui("statistics/item_used").append(" ").append(BLanguage.gui_menubar_view_vanillaScreen()), _ -> { final @Nullable var player = client.player; - final @Nullable var lastScreen = client.gui.screen(); + final @Nullable var lastScreen = client.screen; if(player == null || lastScreen == null) return; //safety - shouldn't happen - client.gui.setScreen(new StatsScreen(lastScreen, player.getStats())); + client.setScreen(new StatsScreen(lastScreen, player.getStats())); }); builder.addSeparator(); diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewBlocks.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewBlocks.java index 7bc492f..b99111c 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewBlocks.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewBlocks.java @@ -190,8 +190,8 @@ tab.putGoal(goal); //create and open the goal's editing screen - final var editScreen = new McbsSivGoalEditScreen(client.gui.screen(), tab, goal); - client.gui.setScreen(editScreen.getAsScreen()); + final var editScreen = new McbsSivGoalEditScreen(client.screen, tab, goal); + client.setScreen(editScreen.getAsScreen()); //in the background, switch view to goals tab.setCurrentView(StatsViewGoals.INSTANCE); diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGeneral.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGeneral.java index f6a78c0..0815773 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGeneral.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGeneral.java @@ -144,8 +144,8 @@ else if(stat.isTime()) { tab.putGoal(goal); //create and open the goal's editing screen - final var editScreen = new McbsSivGoalEditScreen(client.gui.screen(), tab, goal); - client.gui.setScreen(editScreen.getAsScreen()); + final var editScreen = new McbsSivGoalEditScreen(client.screen, tab, goal); + client.setScreen(editScreen.getAsScreen()); //in the background, switch view to goals tab.setCurrentView(StatsViewGoals.INSTANCE); diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGoals.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGoals.java index 02d358a..1f4792f 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGoals.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewGoals.java @@ -356,7 +356,7 @@ private static final void onClickCreateGoal( //noinspection unchecked | open goal editing screen (if possible) final @Nullable var goalGui = (McbsGoalGUI) McbsGoalGUI.findFor(goalType); if(goalGui != null && goalGui.isEditable()) - client.gui.setScreen(goalGui.createEditScreen(client.gui.screen(), tab, newGoal)); + client.setScreen(goalGui.createEditScreen(client.screen, tab, newGoal)); } // ================================================== ================================================== // ListedGoalGui IMPLEMENTATION @@ -414,10 +414,10 @@ public ListedGoalGui(@NotNull StatsInitContext context, @NotNull T goal) this.el_btnEdit.eClicked.addListener(btn -> { final @NotNull var client = Objects.requireNonNull(btn.getClient(), "Missing 'client' instance"); final @Nullable var editScreen = Optional.ofNullable(this.goalGui) - .map(gui -> gui.createEditScreen(client.gui.screen(), tab, this.goal)) + .map(gui -> gui.createEditScreen(client.screen, tab, this.goal)) .orElse(null); if(editScreen != null) { - client.gui.setScreen(editScreen); + client.setScreen(editScreen); tab.addEditCount(); } else { btn.enabledProperty().set(false, ListedGoalGui.class); diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewItems.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewItems.java index 607f64e..6f4d3f1 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewItems.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewItems.java @@ -183,8 +183,8 @@ protected StatsViewItems() {} tab.putGoal(goal); //create and open the goal's editing screen - final var editScreen = new McbsSivGoalEditScreen(client.gui.screen(), tab, goal); - client.gui.setScreen(editScreen.getAsScreen()); + final var editScreen = new McbsSivGoalEditScreen(client.screen, tab, goal); + client.setScreen(editScreen.getAsScreen()); //in the background, switch view to goals tab.setCurrentView(StatsViewGoals.INSTANCE); diff --git a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewMobs.java b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewMobs.java index 722ca52..0996fd6 100644 --- a/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewMobs.java +++ b/src/main/java/com/thecsdev/betterstats/mcbs/view/statsview/StatsViewMobs.java @@ -135,11 +135,11 @@ protected StatsViewMobs() {} builder.addButton( missingNo().append(" ").append(BLanguage.gui_statsview_stats_ctxMenu_viewErrorInfo()), _ -> { - final var parent = client.gui.screen(); + final var parent = client.screen; final var title = missingNo().append(" ").append(TLanguage.misc_somethingWentWrong()); final var text = literal(getStackTrace(displayError).replace("\r\n", "\n").replace("\t", " ")); final var dialog = new TTextDialogScreen(parent, title, text); - client.gui.setScreen(dialog.getAsScreen()); + client.setScreen(dialog.getAsScreen()); }); //wiki url @@ -181,8 +181,8 @@ protected StatsViewMobs() {} tab.putGoal(goal); //create and open the goal's editing screen - final var editScreen = new McbsSivGoalEditScreen(client.gui.screen(), tab, goal); - client.gui.setScreen(editScreen.getAsScreen()); + final var editScreen = new McbsSivGoalEditScreen(client.screen, tab, goal); + client.setScreen(editScreen.getAsScreen()); //in the background, switch view to goals tab.setCurrentView(StatsViewGoals.INSTANCE); diff --git a/src/main/resources/META-INF/jarjar/tcdcommons-5.5.5+fn-26.2.jar b/src/main/resources/META-INF/jarjar/tcdcommons-5.5.5+fn-26.1.jar similarity index 83% rename from src/main/resources/META-INF/jarjar/tcdcommons-5.5.5+fn-26.2.jar rename to src/main/resources/META-INF/jarjar/tcdcommons-5.5.5+fn-26.1.jar index a448c444cbf31219b61645604f11e1c52d6b9efe..d834a321b81a66c9aae3742108d016fd151e8274 100644 GIT binary patch delta 51069 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

    T_{*n?|+(4 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 C5MpQm