diff --git a/gradle.properties b/gradle.properties index 45577e5..1ed3a20 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,5 +19,5 @@ loader_version_range=[1,) mod_id=bnstoolkit mod_name=Brass and Sigil Toolkit mod_license=All Rights Reserved -mod_version=0.8.1 +mod_version=0.8.2 mod_group_id=uk.sijbers.bnstoolkit diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/BnsKeyBindings.java b/src/main/java/uk/sijbers/bnstoolkit/client/BnsKeyBindings.java index b91b0c9..cce3ef9 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/BnsKeyBindings.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/BnsKeyBindings.java @@ -10,7 +10,7 @@ import net.neoforged.neoforge.client.settings.KeyConflictContext; import org.lwjgl.glfw.GLFW; import uk.sijbers.bnstoolkit.BnsToolkit; import uk.sijbers.bnstoolkit.client.screens.BountyBoardScreen; -import uk.sijbers.bnstoolkit.client.screens.CountingHouseScreen; +import uk.sijbers.bnstoolkit.client.screens.ExchangeScreen; import uk.sijbers.bnstoolkit.client.screens.HubScreen; import uk.sijbers.bnstoolkit.client.screens.PlotPurchaseScreen; import uk.sijbers.bnstoolkit.client.screens.QuestLogScreen; @@ -114,7 +114,7 @@ public final class BnsKeyBindings { } if (OPEN_SHOP.consumeClick()) { NetSend.requestSnapshot("SELL"); - new CountingHouseScreen().openGui(); + new ExchangeScreen().openGui(); } if (OPEN_QUESTLOG.consumeClick()) { NetSend.requestSnapshot("ALL"); diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/OpenScreenDispatcher.java b/src/main/java/uk/sijbers/bnstoolkit/client/OpenScreenDispatcher.java index 1f900af..f677211 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/OpenScreenDispatcher.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/OpenScreenDispatcher.java @@ -2,7 +2,7 @@ package uk.sijbers.bnstoolkit.client; import uk.sijbers.bnstoolkit.BnsToolkit; import uk.sijbers.bnstoolkit.client.screens.BountyBoardScreen; -import uk.sijbers.bnstoolkit.client.screens.CountingHouseScreen; +import uk.sijbers.bnstoolkit.client.screens.ExchangeScreen; import uk.sijbers.bnstoolkit.client.screens.HubScreen; import uk.sijbers.bnstoolkit.client.screens.PlotPurchaseScreen; import uk.sijbers.bnstoolkit.client.screens.QuestLogScreen; @@ -25,7 +25,7 @@ public final class OpenScreenDispatcher { case "tier" -> { NetSend.requestSnapshot("TIER"); new TierUpgradeScreen().openGui(); } case "bounty" -> { NetSend.requestSnapshot("BOUNTY"); new BountyBoardScreen().openGui(); } case "plot" -> { NetSend.requestSnapshot("PLOT"); new PlotPurchaseScreen().openGui(); } - case "counthouse" -> { NetSend.requestSnapshot("SELL"); new CountingHouseScreen().openGui(); } + case "exchange" -> { NetSend.requestSnapshot("SELL"); new ExchangeScreen().openGui(); } case "journal" -> { NetSend.requestSnapshot("ALL"); new QuestLogScreen().openGui(); } case "hub" -> { NetSend.requestSnapshot("ALL"); new HubScreen().openGui(); } default -> BnsToolkit.LOG.warn("[bnstoolkit] unknown screen requested: {}", which); diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/screens/BountyBoardScreen.java b/src/main/java/uk/sijbers/bnstoolkit/client/screens/BountyBoardScreen.java index 6f78a80..1a31d92 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/BountyBoardScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/BountyBoardScreen.java @@ -120,6 +120,7 @@ public final class BountyBoardScreen extends BaseBnsScreen { if (isMouseOver) { selected = b.id(); TierUpgradeScreen.playClick(); + getGui().refreshWidgets(); // re-init so detail pane reads new selection return true; } return false; diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/screens/CountingHouseScreen.java b/src/main/java/uk/sijbers/bnstoolkit/client/screens/ExchangeScreen.java similarity index 94% rename from src/main/java/uk/sijbers/bnstoolkit/client/screens/CountingHouseScreen.java rename to src/main/java/uk/sijbers/bnstoolkit/client/screens/ExchangeScreen.java index bb9fe36..0a29221 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/CountingHouseScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/ExchangeScreen.java @@ -20,7 +20,7 @@ import uk.sijbers.bnstoolkit.data.SpurBalance; import uk.sijbers.bnstoolkit.network.NetSend; /** - * The Counting House — wealth exchange screen. + * The Exchange — wealth exchange screen. * * Players bring diamonds / netherite / ancient debris and convert them * to spurs credited directly to their bank. Reached via the Counting @@ -34,9 +34,9 @@ import uk.sijbers.bnstoolkit.network.NetSend; *
Bottom-right: Back (returns to Hub if opened from there) / * Close (NPC-opened path). */ -public final class CountingHouseScreen extends BaseBnsScreen { - public CountingHouseScreen() { - super(Component.translatable("screen.bnstoolkit.counting_house")); +public final class ExchangeScreen extends BaseBnsScreen { + public ExchangeScreen() { + super(Component.translatable("screen.bnstoolkit.exchange")); } private static ResourceLocation selected = ResourceLocation.parse("minecraft:diamond"); @@ -115,6 +115,11 @@ public final class CountingHouseScreen extends BaseBnsScreen { if (isMouseOver) { selected = itemId; TierUpgradeScreen.playClick(); + // Detail pane was built with the old selected value — re-init + // the whole screen so SellDetail.addWidgets reads the new + // selection. FTB Library's refreshWidgets clears + re-adds + // + recurses into sub-panels, which is what we need. + getGui().refreshWidgets(); return true; } return false; diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/screens/HubScreen.java b/src/main/java/uk/sijbers/bnstoolkit/client/screens/HubScreen.java index 2277f0b..d9cbf47 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/HubScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/HubScreen.java @@ -21,7 +21,7 @@ import uk.sijbers.bnstoolkit.network.NetSend; * wealth, current shop fee, slot caps, active bounties count, owned * plots count. The Quest Log button opens the read-only quest overview. * - *
Transactional features (Counting House exchange, Bounty Board, + *
Transactional features (Exchange exchange, Bounty Board,
* Tier Upgrade, Plot Office) are not reachable from the hub by design.
* Players visit the corresponding NPC at spawn — that's what makes spawn
* worth caring about. NPCs invoke {@code /bns open The Counting House is the realm's wealth exchange — not a general
- * shop. It accepts the universal wealth-store items (diamond, netherite,
- * ancient debris) and credits the player's bank account in spurs.
+ * The Exchange is the realm's wealth exchange — not a general
+ * shop. It accepts diamond, diamond_block, netherite_ingot, and
+ * ancient_debris, crediting the player's bank account in spurs.
*
* Iron, gold, coal, redstone, mob drops etc. are not here.
* Players who want to sell those operate their own shops with
diff --git a/src/main/java/uk/sijbers/bnstoolkit/network/s2c/TierStateUpdatePacket.java b/src/main/java/uk/sijbers/bnstoolkit/network/s2c/TierStateUpdatePacket.java
index 8805fe4..29409fa 100644
--- a/src/main/java/uk/sijbers/bnstoolkit/network/s2c/TierStateUpdatePacket.java
+++ b/src/main/java/uk/sijbers/bnstoolkit/network/s2c/TierStateUpdatePacket.java
@@ -11,7 +11,7 @@ import uk.sijbers.bnstoolkit.client.ClientBnsState;
/**
* S2C: civic tier (1..13), cash on hand (inventory coins), bank balance
- * (Numismatics personal account), and the effective Counting House fee%.
+ * (Numismatics personal account), and the effective Exchange fee%.
*
* Cash + bank are sent separately so the hub UI can break them out
* ("on hand" vs "in bank") while the HUD overlay sums them for the
diff --git a/src/main/java/uk/sijbers/bnstoolkit/server/BnsServerCommands.java b/src/main/java/uk/sijbers/bnstoolkit/server/BnsServerCommands.java
index fb836c1..404cddd 100644
--- a/src/main/java/uk/sijbers/bnstoolkit/server/BnsServerCommands.java
+++ b/src/main/java/uk/sijbers/bnstoolkit/server/BnsServerCommands.java
@@ -35,7 +35,7 @@ public final class BnsServerCommands {
private BnsServerCommands() {}
private static final String[] SCREEN_NAMES = {
- "hub", "tier", "bounty", "plot", "counthouse", "journal"
+ "hub", "tier", "bounty", "plot", "exchange", "journal"
};
@SubscribeEvent
@@ -74,7 +74,7 @@ public final class BnsServerCommands {
for (String s : SCREEN_NAMES) if (s.equals(which)) { ok = true; break; }
if (!ok) {
src.sendFailure(Component.literal("Unknown screen: " + which
- + ". Options: hub, tier, bounty, plot, counthouse, journal"));
+ + ". Options: hub, tier, bounty, plot, exchange, journal"));
return 0;
}
ServerEconomyBridge.openScreen(sp, which);
diff --git a/src/main/java/uk/sijbers/bnstoolkit/server/CountingHouseCommands.java b/src/main/java/uk/sijbers/bnstoolkit/server/CountingHouseCommands.java
index 4446f02..c8b96f1 100644
--- a/src/main/java/uk/sijbers/bnstoolkit/server/CountingHouseCommands.java
+++ b/src/main/java/uk/sijbers/bnstoolkit/server/CountingHouseCommands.java
@@ -22,13 +22,13 @@ import uk.sijbers.bnstoolkit.economy.NumismaticsBridge;
import uk.sijbers.bnstoolkit.network.ServerEconomyBridge;
/**
- * Counting House commands — the wealth-exchange + wallet inspection
+ * Exchange commands — the wealth-exchange + wallet inspection
* verbs that used to live in KubeJS.
*
*
*
*
@@ -85,8 +85,8 @@ public final class QuestLogScreen extends BaseBnsScreen {
add(new Header(this,""));
- // Section 2: Counting House rates
- add(new Header(this,"§e=== Counting House Rates ==="));
+ // Section 2: Exchange rates
+ add(new Header(this,"§e=== Exchange Rates ==="));
int fee = ClientBnsState.effectiveFeePct;
add(new Header(this,"§7 Your tier fee: §c" + fee + "%§r"));
for (Map.Entry
*