youpaishidifu
|
2e417c67b3
|
调整商店出售限额为部分出售,并修复单件附魔书NBT重建
- 出售限额改为部分出售:超出限额只卖限额内部分,背包剩余不动
- sellItem/sellAllOf 引入 getMaxSellableUnits 计算可卖单位数
- 新增 removeItemsOfMaterial 按材质精确移除指定数量,保留背包剩余
- 修复单件PHP购买附魔书(itemStack为null)按商品ID权威重建NBT,避免整单退款
|
2026-07-09 13:59:11 +08:00 |
|
youpaishidifu
|
626fbcd591
|
附魔书NBT:移除空壳兜底,解析失败则整单取消并退款(含单笔购买退款)
|
2026-07-09 13:32:50 +08:00 |
|
youpaishidifu
|
e4e74f1cb8
|
修复三处Bug:附魔书NBT空壳(ID权威重建)、PVP死亡榜世界未销毁不清战机、TPA processedRequests永不清导致秒过期
|
2026-07-09 13:15:57 +08:00 |
|
youpaishidifu
|
8fd5b06960
|
修复雪球菜单可被丢弃导致永久丢失的问题
- 新增 PlayerDropItemEvent 拦截:玩家主动丢弃菜单雪球时取消丢弃并提示,雪球留在手中
- 调整 EntityPickupItemEvent:仅阻止生物(如恶魂)拾取菜单雪球,允许玩家自身拾取,避免任何掉落路径导致永久丢失
|
2026-07-09 11:17:06 +08:00 |
|
youpaishidifu
|
70bbdba16d
|
修复附魔书材料匹配失败+购物车发货失败自动退款
- ShopManager: .md加载时对附魔书ID格式(material无效但id像MENDING_I)容错默认ENCHANTED_BOOK,不再静默跳过
- WebManager dispatchItemByMaterialOrId: 增加方式3附魔书兜底(名称含附魔关键词时直接getShopStackByName)
- WebManager shop_cart: 发货跟踪failedItems列表,任一商品失败→不confirm交易+writeRefundTransaction写回PHP退款
- WebManager: 新增writeRefundTransaction方法通过sync.php写退款记录
- PHP sync.php: 新增write_shop_refund action(接收Java退款请求,恢复bond_cache+写refund交易+标记原交易refunded)
- PHP shop.php buy_cart: 扣款前验证每件商品material有效性(防止扣款后无法发货)
|
2026-07-09 10:54:35 +08:00 |
|
youpaishidifu
|
dfd8fee381
|
优化PVP世界创建:关闭结构生成+简化安全出生点,消除主线程长时卡服
- createPVPWorld: 加 c.generateStructures(false),去除村庄/神庙/矿洞等结构生成(出生点搜索时单区块十几秒卡死的主因);hill/water/cave/tree 自然地形特征不受影响
- forceSafeSpawn: 删除半径8广域扫描(289列同步区块生成),改为仅检查Minecraft已生成的(0,0)出生列,不安全才原地搭3x3小平台(O(1)零额外生成)
- 预生成半径 4->2(25区块),进一步缩短主线程占用
|
2026-07-09 00:37:12 +08:00 |
|
youpaishidifu
|
7a14457713
|
修复PVP装备确认后被误遣返及榜单残留
- onInventoryClose: 关闭事件判定同时检查 equipmentConfirmed,避免确认装备后 selectedTier 已移除导致误判未选择而遣返
- 遣返路径补 cleanupPlayerStats(player),修复回到主世界仍携带PVP榜单
- joinArena: createPVPWorld 移入 runTask 下一tick执行,/pvp join 命令即时返回,不再冻结命令线程
|
2026-07-09 00:18:49 +08:00 |
|
youpaishidifu
|
a8451a4ccf
|
修复PVP chunk预生成:异步改同步分批,消除AsyncCatcher全拦截
- preGenerateSpawnChunksAsync: runTaskAsynchronous → runTaskTimer 同步分批(每tick一行chunk)
- 原因:Paper AsyncCatcher 强制要求 chunk 操作在主线程,原异步方案导致81个区块全部失败
- 新方案:radius=4 时 9 tick 完成(每行 9 chunk),均摊不冻服,自取消用 BukkitTask[] 闭包
- 日志清理:SFTP /logs 删除50个6月旧日志,保留59个7月日志
|
2026-07-09 00:05:10 +08:00 |
|
youpaishidifu
|
2df8c44cda
|
传送请求改为纯内存存储并改用JVM运行时长计时
- TeleportManager: 移除 saveTeleportRequest 及全部 DB 读写回退,传送请求仅驻留内存
- 计时改用 ManagementFactory.getRuntimeMXBean().getUptime() 单调钟,不再依赖墙钟时间戳
- 新增 teleportRequestTypes 内存映射记录 tpa/tpahere/tpaall 类型,移除时同步清理
- DatabaseManager: 删除不再使用的 teleport_requests 表
|
2026-07-08 23:49:47 +08:00 |
|
youpaishidifu
|
46a3dc2515
|
修复传送请求过期key不对称:incoming循环/清理统一为sender:receiver,确保接收方请求能被定时器正常清理
|
2026-07-08 23:17:13 +08:00 |
|
youpaishidifu
|
9fab58afe8
|
修复:回退PVP异步创建世界(改用主线程NORMAL避免IllegalStateException崩溃),保留真实自然地形
|
2026-07-08 23:00:50 +08:00 |
|
youpaishidifu
|
33ea4292b7
|
修复PVP地形与日志:改回NORMAL真实自然地形(异步创建避免主线程卡服),ConfigManager改用Bukkit.getLogger()消除System.out警告
|
2026-07-08 22:50:58 +08:00 |
|
youpaishidifu
|
f4c5c0049a
|
修复PVP加入卡服(13s看门狗)并新增公共设施连控权限
- PVP世界改由 WorldType.FLAT 空世界+手动地形生成:createWorld 毫秒级返回,
彻底杜绝主线程13s卡服与 Chunk wait 看门狗报错;随机种子仍保证每次地形不同(防背图);
新增 forceSafeSpawn 固化安全出生点,绕开原'水→删除重建换种子'卡服链路
- 公共设施连控:领地 isPublicBuilding 启用时,所有访客自动获得 传送/容器交互/攻击敌对生物
3项权限(传送在 canTeleportToLand,容器交互在两处 denyContainer 检查,攻击敌对生物复用既有逻辑)
|
2026-07-08 20:58:41 +08:00 |
|
youpaishidifu
|
ee22930efd
|
第20轮修复:①移除WorldCreator.keepSpawnInMemory(false)(Paper26.x已移除此API,导致/pvp join NoSuchMethodError崩溃)②访客授权GUI/CLI补全传送权限(openVisitorPerm/getPermList/toggle三处均缺传送项,导致4页翻完无传送选项);AreaConfig新增allowVisitorTeleport字段+DB自动迁移ALTER TABLE+canTeleportToLand检查该字段
|
2026-07-08 20:41:09 +08:00 |
|
youpaishidifu
|
612ec7a66b
|
第19轮PVP修复:彻底移除模板世界方案(unloadWorld删目录导致无法加入),改为每次随机种子createWorld+出生点实体方块校验(水/空气等非实体则删除重来换种子),预生成区块改为异步不卡服;防背图逻辑恢复为玩家离开删世界、加入时非实体出生点自动换种子
|
2026-07-08 20:14:36 +08:00 |
|
youpaishidifu
|
b6fb3c3ab2
|
第17轮修复4问题:①PVP模板世界改为懒加载(从onEnable移除,首次/pvp join时按需生成,消除启动卡50秒)②修复模板不存在导致无法加入PVP(ensurePVPTemplates先创建成功再加列表+复制前校验目录存在+递归重试)③confirmTransaction改同步调用+本地confirmedTxIds去重+PHP超时60s→3600s三管齐下修复重启重复发货bug;PHP端pull_pending_transactions不再选中processing状态交易
|
2026-07-08 19:43:48 +08:00 |
|
youpaishidifu
|
5ed006538e
|
修复PVP战绩榜与卡服、领地传送权限:记分板改用1.21.4三参registerNewObjective,击杀事件改用DamageSource.getCausingEntity()替代已移除的getKiller();PVP世界改为模板复制避免实时生成地形卡服;领地新增传送权限控制(领地主/插件管理员/领地管理员无条件,未授权玩家需allowTeleport授权,CLI/GUI可授权);药水效果改用setBasePotionType
|
2026-07-08 19:27:11 +08:00 |
|
youpaishidifu
|
dec41c7b67
|
修复PVP加入崩溃 + 合并小票潜影盒(兼容中文标签)
1. /pvp join 崩溃(NoSuchMethodError: WorldCreator.keepSpawnInMemory):
运行时 Paper API 已移除 WorldCreator.keepSpawnInMemory(boolean),
移除该 Creator 调用,改由 reapplyWorldRules 的 World.setKeepSpawnInMemory(false)
(稳定方法)控制出生点区块不常驻,避免同步加载卡主线程,且不再抛 NoSuchMethodError。
2. 收银台不打包(塞背包)仍给小票潜影盒:
PHP(api/shop.php)推送小票时 settlement 误传中文标签(塞背包(环保单)/潜影盒打包),
导致 Java give_receipt_book 的 equals('backpack') 守卫不匹配而仍然单独发书。
修复:PHP 改传原始代码($settlement);Java 守卫同时兼容原始代码与中文标签
(含'潜影盒'/'背包'即拦截),双保险——两种结算模式均不再单独发放小票潜影盒
(打包:小票已在商品盒内;不打包:跳过发书)。
|
2026-07-08 17:34:04 +08:00 |
|
youpaishidifu
|
8b03ff4dcb
|
修复PVP崩溃/卡死 + 合并小票潜影盒 + ShopManager类缺失防护
1. PVP加入世界 WorldInitEvent 异步崩溃:createWorld 必须在主线程执行
(WorldInitEvent/WorldLoadEvent 仅允许同步触发)。改为主线程同步创建,
并通过 WorldCreator.keepSpawnInMemory(false) + 取消 reapplyWorldRules 的
setKeepSpawnInMemory(true),使 createWorld 不再同步加载出生点区块,
主线程毫秒级返回,彻底消除 Watchdog 卡死(上一版误用异步线程导致崩溃)。
移除无用的 pvpWorldCreating 异步互斥锁。
2. 收银台合并发货:打包(潜影盒)模式不再单独发放'小票潜影盒',
小票已塞入商品潜影盒内;不打包(塞背包)模式跳过发放小票书。
解决玩家拿到两个潜影盒(商品+小票 / 仅小票)的问题。
3. 构建时确保 ShopManager$1 等匿名内部类完整打入 JAR,避免 NoClassDefFoundError。
|
2026-07-08 17:06:14 +08:00 |
|
youpaishidifu
|
2f29f3beb1
|
修复PVP:选装备被误遣返 + 加入世界主线程卡死
1. 装备确认/一键装备分支关闭GUI前加 guiReopening 标记,
避免 Paper 延迟关闭事件在 selectedTier 已移除后误判为未选装备而遣返。
2. joinArena 的世界创建(Bukkit.createWorld 阻塞~8s)移到异步线程执行,
主线程仅负责传送与打开装备GUI,修复 Watchdog 卡死;
新增 pvpWorldCreating 互斥锁防止并发 /pvp join 重复创建世界。
|
2026-07-08 16:30:38 +08:00 |
|
youpaishidifu
|
2d84153571
|
订正NBT退款:移除散装退货退款路径中残留的旧签名调用,统一走OrderItem精确匹配收回实物
|
2026-07-08 15:25:57 +08:00 |
|
youpaishidifu
|
ebd35f5c1c
|
修复三处问题:1.PVP创建看门狗超时(预生成区块改异步非阻塞) 2.NBT商品快速退款仅退款(OrderItem携带NBT快照并精确匹配收回实物) 3.订单退款校验支持NBT精确计数
|
2026-07-08 15:19:00 +08:00 |
|
youpaishidifu
|
0eca13f5a1
|
修复PVP种子忽略/退款仅退钱/潜影盒小票丢失三问题
PVPArenaManager:
- PVP世界改为每次随机世界名(pvp_arena_<随机数>)+随机种子,彻底绕开Windows文件锁导致旧世界目录删不掉、复用旧小岛地形的问题
- 删除deleteExistingPVPWorldFolder,改用deleteWorldFolderIfExists(String) best-effort移入trash;15处PVP_WORLD_NAME引用改为动态pvpWorldName
- cleanupOldTrashWorlds前缀匹配改用pvp_arena_前缀
OrderManager:
- 修复管理员审批全额退款'两段处理'bug:原逻辑status提前变2导致退货分支永不可达,表现为只退钱不退货
- 改为status==0时同步收回物品(潜影盒按lore标签#orderId定位清除,普通物品按mat/qty移除)后再addBonds
WebManager:
- 修复打包发货小票落入被丢弃盒子副本:改为先addBookToShulker塞入首个潜影盒,再整体addItem进背包
|
2026-07-08 13:53:52 +08:00 |
|
youpaishidifu
|
e658aa3274
|
修复6项问题:#804菜单[玩家名]方括号占位符、#805 PVP装备选择宽限期防误遣返、#808收银台附魔书NBT重建、#809商店退货精确扣货
|
2026-07-08 12:34:44 +08:00 |
|
youpaishidifu
|
121c12c71d
|
修复3个问题:#801菜单玩家名中文占位符 #802 PVP种子被MC忽略 #803 .web.md同步PHP
#801 菜单控制台指令+玩家名变量(Main.java 两处处理器)
- 原代码只匹配英文 {player} 等模式,实际菜单用中文 {玩家名}
- 新增5种中文占位符支持:{玩家名} %玩家名% <玩家名> [玩家名] (玩家名)
- 控制台权限检测本身正常(日志确认走了console路径)
#802 PVP世界种子固定问题(PVPArenaManager.java createPVPWorld)
- creator.createWorld() 改为 Bukkit.createWorld(creator)(完整Bukkit管线更可靠处理seed)
- 新增种子验证:创建后比对期望种子 vs MC实际种子,日志明确报告是否匹配
- 种子不匹配时输出警告(Paper 26.x 已知行为,需观察 Bukkit.createWorld 是否解决)
#803 .web.md PHP专属商品同步(ShopManager.java buildCatalogJson)
- loadCategories() 继续跳过 .web.md(游戏内不加载,行为不变)
- buildCatalogJson() 新增第二遍扫描:单独读取 .web.md 文件并纳入同步JSON
- PHP 收银台现在能展示 .web.md 中的专属商品
|
2026-07-08 11:42:15 +08:00 |
|
youpaishidifu
|
7631e30e2a
|
修复: PVP显式随机种子(根除固定-5092种子) + 菜单控制台指令+玩家名变量 + 商店跳过.web.md(PHP专属商品)
- PVPArenaManager: createPVPWorld改用worldSeedRandom.nextLong()显式设定随机种子(用户实测连续多次createWorld返回相同种子-5092048402667366605);增加删除后验证日志(确认目录消失或告警)
- Main.java(两处菜单点击): 新增permType提取→控制台/console身份执行(Bukkit.getConsoleSender);玩家名变量替换{player}/%player%/<player>/[player]/(player)等所有括号形式
- ShopManager: loadCategories文件过滤器增加!.web.md条件,游戏内不加载.web.md文件(PHP端专属商品)
|
2026-07-08 10:57:46 +08:00 |
|
youpaishidifu
|
3c15e6b060
|
修复PVP地形被切小岛/出生点干预、药水NBT缺失,以及商店附魔书NBT解析
- PVPArenaManager: 删除forceTerraformSpawnArea等184行小岛死代码;新增deleteExistingPVPWorldFolder确保每次进入都是自然生成的纯净主世界(彻底消除旧版setSpawnLocation/小岛误加载);pvpEquipment与makePotion改用PotionMeta写入INSTANT_HEALTH真实治疗NBT(1.21.4 PotionType.HEALING)
- ShopManager: 新增ENCHANT_MAP与inferEnchantedBook,按中文名解析附魔等级并写入EnchantmentStorageMeta,商店附魔书现在带正确附魔NBT
|
2026-07-08 01:37:46 +08:00 |
|
youpaishidifu
|
3c3d7cdbf2
|
修复PVP世界逻辑:不再锁定出生点、去除删世界重建死循环、有玩家直接加入无人即删
|
2026-07-08 01:05:51 +08:00 |
|
youpaishidifu
|
caa58977a4
|
修复: green_discount语义从减免百分比改为折扣率(折数)——10不打折/9.9=9.9折(支付99%),命令/计算/显示文案全链路修正
|
2026-07-08 00:18:26 +08:00 |
|
youpaishidifu
|
e18587c432
|
修复: packmoney和green_discount全面支持小数(int→double,去掉Math.floor截断),PHP侧packmoney强转int改为float
|
2026-07-07 23:54:20 +08:00 |
|
youpaishidifu
|
6bf3fceed6
|
修复: PVP世界生成改为每次强制删除现有世界后重新生成全新主世界(彻底杜绝复用小平台/环形岛),移除无用的正版标记逻辑
|
2026-07-07 23:39:37 +08:00 |
|
youpaishidifu
|
ebece189e1
|
修复: PVP世界生成加诊断日志+遗留世界识别强制重置(环形岛/小平台不再复用) + 正版世界标记
|
2026-07-07 22:43:51 +08:00 |
|
youpaishidifu
|
a5a63dc5d8
|
修复: PVP世界生成改为仅检测出生点非实体方块则删除重建(插件放手不干预地形); shop子命令新增packmoney/green参数; 彻底移除商店.md文件运行时复写(onDisable与定时任务不再saveAll, saveCategory改为空操作)
|
2026-07-07 22:14:24 +08:00 |
|
youpaishidifu
|
4297e0e02d
|
修复:PVP世界改为纯NORMAL主世界(插件零干预地形,仅只读定位出生点);商店保存改为合并感知,避免服务器关闭时覆盖管理员手工新增的商品/分类
|
2026-07-07 21:25:57 +08:00 |
|
youpaishidifu
|
3ebd8f0d5f
|
修复: PVP世界改FLAT+噪声圆形岛根除方形切割区块丢失 + 商城目录定时全量同步给PHP + 装备GUI响应优化(延迟20->5tick)
|
2026-07-07 19:40:47 +08:00 |
|
youpaishidifu
|
7c8c7f7818
|
修复: PVP世界种子重试机制+强制造陆兜底,根除小平台地形
|
2026-07-07 16:53:44 +08:00 |
|
youpaishidifu
|
49461ac042
|
修复: PVP世界旧虚空世界Windows删除锁致地形失效(重命名回收站强制刷新NORMAL地形) + /weblogin命令主线程同步HTTP卡服改为异步
|
2026-07-07 14:26:45 +08:00 |
|
youpaishidifu
|
dd7166d73e
|
修复: PVP加入即被遣返(跨世界强制关背包误触遣返) + 打包小票书改为潜影盒包装并改用黑色文字
|
2026-07-07 13:37:50 +08:00 |
|
youpaishidifu
|
6d655787ce
|
功能+修复: PVP地形陆地优先搜索+打包小票 Written Book
PVP地形 (PVPArenaManager.java):
1. findSafeSpawn 大幅改进: 搜索半径32→64格, 新增陆地质量评分
系统(草地3>沙子2>其它1), 海洋biome自动远距离扫掠找陆地
2. 区块预生成半径4→8(256格), 减少虚空可见范围
3. 保底平台扩大20x20 + 围栏 + 四角萤石标记
小票书 (WebManager.java):
4. 新增 give_receipt_book 变更类型处理(pollAdminChanges拾取)
5. 新增 giveReceiptBook() 方法生成 Written Book(§颜色热敏小票风格)
6. 书本含订单号/时间/玩家/操作员/结算方式/商品明细/合计多页
|
2026-07-07 12:28:40 +08:00 |
|
youpaishidifu
|
d18884a3ee
|
修复: PVP装备选择彻底改判(已选档位则自动重开GUI不遣返) + 60秒超时安全网
|
2026-07-07 11:37:57 +08:00 |
|
youpaishidifu
|
751eeecfd5
|
修复: PVP装备选择误遣返(新增GUI打开宽限期3秒忽略地形加载期间的InventoryClose)
|
2026-07-07 10:39:35 +08:00 |
|
youpaishidifu
|
79b5af66b2
|
修复PVP装备选择误遣返并改用自然主世界地形生成
|
2026-07-07 00:33:24 +08:00 |
|
youpaishidifu
|
164267208a
|
商店打包费/环保减免配置化与收银台双模式收款
- ConfigManager 新增 packingFee/greenDiscount 公共配置字段
- ShopManager 颜色选择框对齐原色(SHULKER_BOX),打包费改读配置;新增 shop setgreen 命令
- WebManager 购物车结算支持现金模式(跳过扣债券),小票书塞入首个潜影盒;新增 pullShopConfig/pushShopConfig 与定时器拉取
- Main 新增 set packmoney 命令,修复 getConfigMgr()/webManager 访问方式
- 修复 openColorSelect 名字错乱(索引错位)与硬编码打包费显示
|
2026-07-06 23:51:01 +08:00 |
|
youpaishidifu
|
4cdd32913e
|
修复PVP背包被覆盖问题(独立备份表+未退场不覆盖)、优化随机地形生成、TPA传送请求有效期下限保护
|
2026-07-06 21:48:43 +08:00 |
|
youpaishidifu
|
122850f6f4
|
修复PVP竞技场三项问题:世界重建、进入流程与背包序列化
- 加入世界版本检测机制,磁盘残留的旧版小平台世界自动删除并重建为完整主世界地形
- 补全 PlayerChangedWorldEvent 事件处理器,进入/离开PVP世界时正确触发装备选择GUI与背包还原
- joinArena 传送后立即直接触发进入流程,杜绝跳过选装备清背包阶段
- 实现背包物品序列化(BukkitObjectOutputStream+Base64),真正支持清背包后还原玩家物品
|
2026-07-06 20:01:49 +08:00 |
|
youpaishidifu
|
035dd418fc
|
修复PVP世界生成小平台问题:先强制生成出生点区块再寻找安全点,避免误判虚空铺设漂浮平台(#735)
|
2026-07-06 19:27:03 +08:00 |
|
youpaishidifu
|
24e5248cec
|
新增maxhome全局传送点上限参数,并联动用户组home_limit(#726)
- AreaProtection新增max_home_per_player全局配置,复用现有area_config/web_area_config通路
- updateAreaConfig同步刷新内存字段,Web后台修改后立即生效
- HomeManager.getGlobalHomeLimit改为读取area_config,解析失败或<=0回退默认5
- 用户组home_limit(>0覆盖/0跟随/-1无限)逻辑不变,形成完整联动
|
2026-07-06 18:10:06 +08:00 |
|
youpaishidifu
|
28198114e6
|
修复购物车结算潜影盒颜色变量作用域;重构PVP竞技场为独立主世界(装备选择+背包备份还原);新增商品价格同步接口
|
2026-07-06 17:33:15 +08:00 |
|
youpaishidifu
|
f0b0f23827
|
修复PVP竞技场无法进入:新增/pvp join进入与/pvp leave离开指令,世界生成时铺设出生平台防止掉虚空
|
2026-07-06 16:48:33 +08:00 |
|
youpaishidifu
|
d62b61ef51
|
新增购物车结算shop_cart类型处理:Gson解析多商品detail,支持塞背包和潜影盒打包两种发货模式,含CartEntry内部类及辅助方法
|
2026-07-06 16:39:47 +08:00 |
|