Commit Graph
507 Commits
Author SHA1 Message Date
youpaishidifu 501aa40677 feat: Web在线充值(recharge)分支 — 支付平台0.01元测试到账
- processWebTransaction 新增 type=recharge/pay_recharge 专用分支
- 支付成功后 addBonds 发放债券 + 游戏内即时通知
- 复用现有 ~5s 轮询 + ackTransaction 防重 + confirmed_transactions 双保险
2026-07-14 20:55:04 +08:00
youpaishidifu 181c2acb34 chore: 关闭背包翻译的INFO日志刷屏
- 移除MaterialTranslator.translate()和translateWithFallback()中的info日志
- 保留warning仅用于翻译源异常降级场景
- 控制台不再被每条物品的翻译缓存/命中日志淹没
- 旧版: Sdf1_login.jar.old.9
2026-07-14 19:00:19 +08:00
youpaishidifu bf0688b291 feat: 背包备份物品名走官方翻译+机翻兜底
- translateMaterial() 由硬编码替换为 MaterialTranslator.translate()
- 与领地方块记录系统一致: 优先查 zh_cn.json 官方翻译, 机翻兜底
- 旧版: Sdf1_login.jar.old.8
2026-07-14 18:48:15 +08:00
youpaishidifu 765fbd74c1 fix: 交易拉取即贴标导致自己跳过处理
根因: ackTransaction()将txId加入confirmedTxIds内存set,
processWebTransaction()检查到set包含该ID就跳过处理。
交易还没处理就被自己标记的内存set跳过了。

修复: ackTransaction()不再写confirmedTxIds,
仅写PHP confirmed_transactions表。
confirmedTxIds仅在confirmTransaction()处理完后才写入。
旧版: Sdf1_login.jar.old.7
2026-07-14 17:03:12 +08:00
youpaishidifu d2180cec1c feat: 告示牌放置/编辑监控记录
1. land_block_log表新增detail列(已有数据库ALTER兼容)
2. DatabaseManager新增recordLandBlockWithDetail方法
3. LandRecordManager新增recordSignEdit方法,记录sign_place/sign_edit动作+内容
4. AreaProtection.onSignChange()延迟1tick记录(等事件处理完)
5. 回声碎片显示告示牌内容: 玩家XXX在HH:MM放置/编辑告示牌 [内容]
2026-07-14 16:47:57 +08:00
youpaishidifu 9ccda3f541 fix: ack_transaction补tx_type + 告示牌权限豁免授权成员
1. WebManager.ackTransaction()增加txType参数, bodyJson发送tx_id+tx_type
2. AreaProtection.onSignChange(): 白名单内授权成员跳过denySignEdit检查
   PermissionLevel无MEMBER枚举, 授权成员=白名单VISITOR, 通过isPlayerWhitelisted判定
2026-07-14 15:32:52 +08:00
youpaishidifu 401fa2453a fix(area-gui): 告示牌权限动态名称:允许/禁止编辑告示牌 2026-07-14 12:55:40 +08:00
youpaishidifu 6946cfef6d feat(area-gui): CLI/GUI菜单添加禁止编辑告示牌权限条目 2026-07-14 12:42:49 +08:00
youpaishidifu 89fa765351 fix(web): 拉取交易即刻贴标ack,防止SSL断路器后重复扣费 2026-07-14 11:27:46 +08:00
youpaishidifu a118aac18c feat(land): 添加告示牌编辑独立权限和红石状态记录 2026-07-14 10:39:59 +08:00
youpaishidifu da4299cc2f 分离登录备份和自动备份显示:backup/back命令分两组列出,L前缀=登录备份,A前缀=自动备份 2026-07-13 18:16:33 +08:00
youpaishidifu 112f992fda 修复getInventoryBackups/getInventoryBackupById查错表:inventory_backups→inv_backup_auto,导致自动备份数据查不到 2026-07-13 17:57:11 +08:00
youpaishidifu 3674e1e950 修复backup子命令权限:仅OP/插件管理员/控制台可执行,支持查询他人备份 2026-07-13 17:04:46 +08:00
youpaishidifu abdd3ad7c7 修复滚动备份日志追踪+告示牌编辑权限控制 2026-07-13 16:51:35 +08:00
youpaishidifu a3c8cec664 官方翻译纯同步模式:移除异步刷新分支,部署脚本附带上传zh_cn.json缓存 2026-07-13 15:56:22 +08:00
youpaishidifu 5a0166e90c 修复官方翻译首次部署时空map问题:缓存不存在时改为同步下载,确保init返回前map就绪 2026-07-13 15:31:59 +08:00
youpaishidifu 6c6cc94905 翻译链路日志:OfficialTranslations.lookUp + MaterialTranslator.translate/translateWithFallback 每步打印日志,跟踪翻译路径 2026-07-13 15:18:56 +08:00
youpaishidifu f5a5b28f61 添加官方中文翻译源:从Mojang API下载zh_cn.json作为优先翻译,机翻兜底 2026-07-13 15:02:59 +08:00
youpaishidifu e3b459a00c 修复容器记录仅显示打开:补充存入(put)+拿取(take)差量记录,容器类型纳入翻译 2026-07-13 14:38:50 +08:00
youpaishidifu 3ef7fbdb7a 修复容器记录+翻译集成:记录移到权限检查前,queryAndPrint异步批量翻译输出中英双语 2026-07-13 14:12:47 +08:00
youpaishidifu 3795dd90eb 修复CLI菜单权限显示:管理员只显示玩家发光,隐藏全部权限配置 2026-07-13 13:56:44 +08:00
youpaishidifu 513e4c56ad 修复拾取/丢弃权限:per-player独立授权键名映射(allowPickup↔denyPickup) 2026-07-13 13:43:16 +08:00
youpaishidifu 8138b97b59 领地记录物品名多源翻译:有道+简心+Google三级降级 2026-07-13 13:15:01 +08:00
youpaishidifu 697b1069a2 PVP四项改进:回声碎片CLI入口/击杀≥10奖励盔甲药水/世界击杀纳入总榜/选装前无敌 2026-07-13 12:28:13 +08:00
youpaishidifu c7cdb60b47 修复边框粒子卡死主线程:动态密度控制+粒子总量上限 2026-07-13 12:00:27 +08:00
youpaishidifu 7489c60286 新增领地方块/容器记录系统(回声碎片)与背包滚动自动备份
- 新增 land_block_log、land_container_log、inv_backup_auto 三张表
- LandRecordManager:领地内方块破坏/放置、容器打开/拿取自动记录;回声碎片工具右键/左键查询坐标历史记录
- AreaGUIManager 主菜单新增回声碎片按钮(位置33)
- InventoryAutoBackup:每15分钟滚动备份在线玩家背包(每人保留3份),跳过PVP竞技场/练习场
- 每日定时清理超过7天的领地记录
- AreaProtection 钩子接入记录;注册 /landrec 命令
2026-07-13 10:26:05 +08:00
youpaishidifu 8ce2e727bb 领地改名和入场退场消息接入URL过滤逻辑
- 领地改名:输入新名字前先检测URL,包含链接则拒绝且不计入改名次数
- 入场/退场消息:设置消息前先检测URL,包含链接则拒绝且不保存
- 复用ChatFilterManager.extractUrls()统一过滤逻辑
2026-07-13 09:43:21 +08:00
youpaishidifu e7402985d5 修复封禁广播Long拆箱NPE + syncBans/syncAdmins改POST避免URL超长
- handleBanCommand中long expireMs→Long expireMs,避免null拆箱异常
- syncBans/syncAdmins从httpGet改为httpPost,防止55条封禁数据URL过长
- sync.php已部署含sync_bans/sync_admins case的版本到线上
2026-07-13 00:35:09 +08:00
youpaishidifu c0ab91edba R23-2: 封禁同步彻底修复 - syncBans独立hash+控制台ban监听+插件ban即时同步PHP 2026-07-12 23:45:59 +08:00
youpaishidifu 529b83666c R23: 修复4项问题 - 改名冷却逻辑(仅达上限才提示冷却) + 拦截原版/ban、/ban-ip命令广播封禁警告 2026-07-12 23:08:32 +08:00
youpaishidifu 569611c40f 新增3个功能:领地改名冷却、封禁名单联控、封禁广播警告
1. 领地改名冷却机制:1小时限5次,自然滚动窗口
   - AreaProtection: renameLand/renameCooldownMap/getRenameCooldown/getRemainingRenames
   - CLI: /protect cli rename <领地名> 交互式输入
   - GUI: Name Tag按钮(slot 33)显示冷却状态
   - 改名更新DB+内存+触发PHP同步

2. PHP用户管理显示封禁名单(联控Java BanList)
   - WebManager.syncBans(): 收集Bukkit名字/IP封禁→推送到PHP
   - PHP: web_player_bans表 + handleSyncBans + list_bans API
   - admin.php: 用户行红色+禁图标标注被封禁玩家

3. 封禁事件公屏广播警告
   - Main.applyBan(): 封禁后自动广播
   - broadcastBanWarning(): 玩家名+IP(如IP封禁)+理由+到期时间
   - loadBanWarningMessage(): 从释放警告消息.txt随机读取标语
   - 支持永久封禁/限时封禁/IP封禁3种场景
2026-07-12 22:08:38 +08:00
youpaishidifu 61e4ec967f 修复公告消息取消功能:取消后返回主菜单而非编辑子页
cancel路径showAnnouncementManagement(p, landName, 2/3)会重新设置pending输入状态,导致取消后仍停留在等待输入状态。改为showAnnouncementManagement(p, landName, 1)返回主菜单
2026-07-12 21:07:06 +08:00
youpaishidifu 57788016a4 修复占位符括号+tag管理员CLI权限视图
1. 变量替换正则新增{}花括号支持,支持领地名和领地两种写法
2. CLI showPlayerPerm:tag管理员(isAdmin)查看管理员成员时看到完整权限编辑视图,不再简化;可切换管理员身份
2026-07-12 20:58:21 +08:00
youpaishidifu ad935cbe09 修复4个bug:权限/颜色渲染/换行符/取消功能
1. toggleAdmin:插件管理员可操作非自身领地的管理员身份
2. formatAreaMsg颜色渲染:convertHtmlTags新增activeColor追踪,标签关闭§r后自动恢复颜色码,解决<span style=color>嵌套<b><u>标签时颜色在闭合处截断的问题
3. 变量替换正则改为Pattern.compile+DOTALL,确保跨行匹配
4. handleAnnouncementInput新增取消/0支持,输入取消或0时保持原样
2026-07-12 20:32:50 +08:00
youpaishidifu ae94f8edef 插件管理员可协助管理其他领地成员权限
- GUI领地列表:tag管理员可见所有领地,点击索引修正(allManageableLands替代getLandsByOwner)
- openPlayerPerm:tag管理员(isAreaAdmin)看到完整权限编辑视图,不再简化
- CLI showPlayerPerm:设为管理员按钮对tag管理员也可用
- WebManager:新增syncAdmins(),将tag管理员名单同步到PHP的web_plugin_admins表

需要PHP端配合:land_api.php新增canManageLand/isPluginAdmin逻辑
2026-07-12 19:45:51 +08:00
youpaishidifu 9af6c0cca0 feat: GUI领地公告出入消息配置 + 增强HTML语义解码
1. GUI设置面板新增进入消息(位置19)和离开消息(位置21)编辑入口,点击关闭GUI后聊天栏输入
2. AreaCLIManager新增setPendingAnnouncementInput供GUI调用
3. 新增decodeHtmlEntities: &amp; &lt; &gt; &quot; &apos; &#39; &nbsp;等HTML实体解码
4. 新增processColorTags: 支持<span style='color:#xxx'>和<p style='color:xxx'>颜色标签
5. htmlToMc增强: 支持<strong><em><ins><del><strike>等语义标签
6. 新增convertHtmlColorToMc/convertRgbToMc: HTML颜色名/十六进制/rgb()→MC颜色代码
2026-07-12 18:41:48 +08:00
youpaishidifu 49ad056a71 fix: 退出领地立即清除效果,不再依赖5秒延时
根因:playerMarkedEffects标记不可靠(hotUpdateRegionEffects会清空、
applyRegionEffects可能跳过添加),导致离开时marked为空→无延时任务→效果残留

修复:
1. 移动退出到野外:直接从oldAc.giveEffects读取效果列表,立即removePotionEffect
2. 传送到野外:同上逻辑
3. 领地→领地跨区域仍保留5秒延时差量清理
2026-07-12 18:27:38 +08:00
youpaishidifu c0bb962a11 feat: Token泄露PHP联控作废 + 领地公告变量替换
1. Token安全防线:Java revokeToken异步调用PHP sync.php revoke_weblogin_token端点,从weblogin_tokens表删除
2. PHP新增revoke_weblogin_token action:验证SECRET_KEY后删除weblogin_tokens中的记录
3. 领地公告变量替换:支持(玩家)/(领地)及[]{}【】<>《》等括号格式
4. 默认消息:进入=欢迎(玩家)来到(领地),离开=感谢(玩家)光临(领地)
5. 公告管理菜单显示变量说明和支持的括号格式
2026-07-12 17:43:23 +08:00
youpaishidifu 0db237ed04 feat: 公屏泄露webtoken自动作废安全防线
1. 玩家在公屏发送有效的48位hex token时,立即作废该token
2. 向玩家发送安全警告,提示不应分享token
3. WebManager新增revokeToken/hasToken方法
2026-07-12 17:05:56 +08:00
youpaishidifu 5d994c0dad feat: 领地边框粒子特效 + 强制游戏模式仅管理员可用
1. 进入/离开领地时展示3秒边框粒子(青色渐变DUST_COLOR_TRANSITION + 四角END_ROD高亮)
2. /protect info执行时展示5秒领地边框粒子
3. GUI强制游戏模式开关改为仅服务器管理员可操作(领地主不可操作)
2026-07-12 16:45:22 +08:00
youpaishidifu 0ff79aa959 实现在移动事件中实时热更新增益效果:新增hotUpdateRegionEffects方法,玩家在领地内移动时每2秒自动对比效果配置,实时增删缺失/多余效果,无需退出重进 2026-07-12 14:52:49 +08:00
youpaishidifu fa4402d426 修复增益效果不生效+完善所有药水效果中英文映射:resolveEffectType改用PotionEffectType常量替代不可靠的getByName兜底,支持所有MC版本 2026-07-12 13:03:48 +08:00
youpaishidifu 2fb801a59b 修复再生效果不生效:resolveEffectType缺少再生/回复中文别名映射 2026-07-12 12:19:24 +08:00
youpaishidifu 69868a4c5c 修复PHP添加增益效果后游戏内等级错误:applyFieldToAreaConfig的give_effects改用parseEffectsString替代已损坏的parseJsonArray 2026-07-12 11:41:26 +08:00
youpaishidifu 4888bb414e 修复: syncLandData权限hash漏算permissions导致成员权限变更不触发同步
perms hash 段原仅含 land_id/player_name/role,未包含 permissions 字段内容,
导致游戏内修改成员权限后 hash 不变、不触发 syncPermissions 推送到 PHP。
现把 permissions 内容加入 hash 计算(含 | 分隔符),成员权限变更可正确同步。
2026-07-12 10:29:43 +08:00
ypshidifu 890c637373 修复: PHP→Java双重JSON编码导致领地名反斜杠 + 防御性清除领地名特殊字符
- AreaProtection: updateVisitorPermFromWeb入口处清除领地名中的反斜杠
- WebManager: perm_change/add_visitor/remove_visitor/perm_clear四个case入口统一清洗land_name
- 根因: PHP json_encode双重编码产生\uXXXX, decodeUnicodeEscapes解码后残留反斜杠
- getLandIdFromDb用带反斜杠的名字查DB返回-1,导致整个降级逻辑被跳过
2026-07-12 01:05:27 +08:00
youpaishidifu 912bd62201 R16: 修复回调重试+SSL降级: callbackAddVisitorToPHP失败时尝试HTTP降级 2026-07-11 18:10:21 +08:00
youpaishidifu 0bd4d454c3 R15: PHP添加成员改为Java验证后入库(参考改领地主流程)
- add_visitor处理先验证玩家是否存在(login.db),存在则入库+回调PHP成功,不存在则回调PHP失败
- 新增callbackAddVisitorToPHP方法回调PHP添加成员结果
2026-07-11 15:53:00 +08:00
youpaishidifu bf32e528f1 R14: 修复Java→PHP权限同步缺失(hash不含权限数据导致跳过同步)
- syncLandData hash加入权限数据特征,确保权限变化时触发同步
2026-07-11 15:10:51 +08:00
youpaishidifu 5ef86ddfe8 R13: 修复addvisitor校验+PHP权限同步完整流程
- /protect addvisitor 命令添加玩家真实性校验(login.db检查)
- addvisitor/handleAddMemberInput 同时写入area_land_permissions表
- perm_change handler 确保玩家加入areaPlayerWhitelist(解决PHP同步不显示问题)
- PHP端handleChangeVisitorRole 新成员改走add_visitor流程(确保Java白名单同步)
2026-07-11 14:19:01 +08:00