From da89a98ef272052f352ccedc08fc39e5df357bf8 Mon Sep 17 00:00:00 2001 From: youpaishidifu <1@ypshidifu.cn> Date: Mon, 12 Oct 2026 13:50:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E6=89=8B=E5=95=86=E5=BA=97=E7=AC=AC?= =?UTF-8?q?=E5=85=AD=E6=89=B9:=20=E9=85=8D=E7=BD=AE=E7=83=AD=E9=87=8D?= =?UTF-8?q?=E8=BD=BD=E7=94=9F=E6=95=88=E6=97=B6=E5=BA=8F=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E2=80=94=E2=80=94=E2=91=A0=E8=B4=AD=E4=B9=B0=E7=BB=93=E7=AE=97?= =?UTF-8?q?=E5=89=8D=E5=85=88=E5=81=9A=E5=A2=9E=E9=87=8F=E5=AF=B9=E9=BD=90?= =?UTF-8?q?,=E6=9C=AC=E7=AC=94=E4=BA=A4=E6=98=93=E7=AB=8B=E5=8D=B3?= =?UTF-8?q?=E6=8C=89=E6=96=B0=E8=B4=B9=E7=8E=87=E6=89=A3=E6=AC=BE(?= =?UTF-8?q?=E5=8E=9F=E8=B4=AD=E4=B9=B0=E8=A7=A6=E5=8F=91=E7=82=B9=E5=9C=A8?= =?UTF-8?q?=E7=BB=93=E7=AE=97=E4=B9=8B=E5=90=8E,13:31=E6=94=B90.0038?= =?UTF-8?q?=E3=80=8113:33=E4=BB=8D=E6=8C=892%=E7=BB=93=E7=AE=97)=20?= =?UTF-8?q?=E2=91=A1=E6=89=93=E5=BC=80=E4=BA=8C=E6=89=8B=E5=95=86=E5=BA=97?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E5=85=88=E5=AF=B9=E9=BD=90,lore=E6=89=8B?= =?UTF-8?q?=E7=BB=AD=E8=B4=B9=E5=8D=B3=E6=97=B6=E6=9B=B4=E6=96=B0=20?= =?UTF-8?q?=E2=91=A2=E5=AE=9A=E6=97=B6=E6=89=AB=E6=8F=8F15=E5=88=86?= =?UTF-8?q?=E9=92=9F=E6=94=B915=E7=A7=92,=E5=AF=B9=E9=BD=90=E6=AF=8F?= =?UTF-8?q?=E5=88=86=E9=92=9F=E7=AC=AC0/15/30/45=E7=A7=92(=E5=8E=9F?= =?UTF-8?q?=E7=90=86=E8=A7=A3=E5=81=8F=E5=B7=AE:=E6=8A=8A=E6=95=B4?= =?UTF-8?q?=E7=82=B9=E5=86=99=E6=88=90=E4=BA=860/15/30/45=E5=88=86?= =?UTF-8?q?=E9=92=9F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Sdf1_login/ShopManager.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/Sdf1_login/ShopManager.java b/src/main/java/Sdf1_login/ShopManager.java index b40d068..ea8397e 100644 --- a/src/main/java/Sdf1_login/ShopManager.java +++ b/src/main/java/Sdf1_login/ShopManager.java @@ -3639,9 +3639,9 @@ public class ShopManager implements Listener { + changes.size() + " 项变更: " + String.join(";", changes)); } - /** 每整点 0/15/30/45 分扫描一次配置文件(初始对齐到下一个 15 分钟边界) */ + /** 每分钟第 0/15/30/45 秒扫描一次配置文件(初始对齐到下一个 15 秒边界;2026-10-12 第六批:原 15 分钟太粗导致改配置迟迟不生效) */ private void startShCfgReloadTask() { - final long periodMs = 15 * 60 * 1000L; + final long periodMs = 15 * 1000L; // 15 秒 = 每分钟 0/15/30/45 秒四个对齐点 long now = System.currentTimeMillis(); long next = (now / periodMs + 1) * periodMs; long delayTicks = Math.max(1L, (next - now) / 50L); @@ -3833,6 +3833,8 @@ public class ShopManager implements Listener { // ===== 打开二手商店主界面 ===== public void openSecondHandShop(Player p, int page) { + // ★ 打开界面先对齐配置(2026-10-12 第六批):lore 展示的手续费立即用最新费率 + reloadSecondHandConfigIncremental("界面打开"); Inventory g = Bukkit.createInventory(null, 54, "§6§l二手商店"); int total = (int) Math.ceil((double) secondHandListings.size() / PAGE_SIZE); if (total < 1) total = 1; @@ -4674,6 +4676,9 @@ public class ShopManager implements Listener { p.sendMessage("§c§l[二手商店] §f卖家债券账户被冻结,该商品暂不可购买"); return; } + // ★ 结算前先对齐配置费率(2026-10-12 第六批): + // 原「购买触发」reload 在结算之后,本笔交易仍按旧费率扣款(用户实测 13:31 改 0.0038、13:33 仍按 2% 结算) + reloadSecondHandConfigIncremental("购买结算前对齐"); // ★ 手续费真正扣款(2026-10-11 任务3 修复「手续费蒸发」严重bug): // 奸商模式(买方出):买家支付 price+手续费,卖家全额到手 price // 正常模式(卖方出):买家支付 price,卖家到手 price-手续费 @@ -4742,8 +4747,7 @@ public class ShopManager implements Listener { } secondHandListings.remove(l); saveSecondHand(); - // ★ 购买成功立刻触发一次增量热重载,把配置数据对齐(2026-10-11 问题4 例外) - reloadSecondHandConfigIncremental("购买触发"); + // (增量热重载已前移到结算之前,见方法开头「购买结算前对齐」,2026-10-12 第六批) p.sendMessage("§a§l[二手商店] §f购买成功: §e" + ItemNameResolver.toChinese(is.getType()) + " §7x" + is.getAmount() + " §6" + l.price + " §7枚债券"); if (fee > 0) {