youpaishidifu
|
ca54dd61ba
|
修复6项领地系统问题:
- 删除轮询空日志(pollWebLoginConfirmations)
- 添加拾取限制事件监听(PlayerPickupItemEvent)
- 新增独立容器管理权限(denyContainer)
- 管理员权限自动隐藏(per-player编辑跳过)
- GUI添加成员排除自身
- 验证破坏方块权限覆盖所有方块
|
2026-06-26 12:28:20 +08:00 |
|
youpaishidifu
|
47e1ad3be5
|
修复和平模式扫描范围+在线玩家同步+领地数据同步
|
2026-06-26 11:25:57 +08:00 |
|
youpaishidifu
|
46b483848c
|
修复问题4: GUI效果管理改为可点击选择列表
问题4修复: GUI效果管理
- 移除点击后在聊天栏输入模式
- 新增可点击效果选择列表(与CLI一致)
- 负面效果(16种)、中性效果(3种)、正面效果(20种)
- 点击效果直接添加到清除/增益列表
- 支持重复检测,已添加的效果显示灰色
新增方法:
- openEffectsSelection(): 打开效果选择列表GUI
- getEffectNameBySlot(): 根据槽位获取效果名
- pendingEffectSelection: 存储选择状态
|
2026-06-26 11:13:12 +08:00 |
|
youpaishidifu
|
40edd85ea7
|
修复多个问题:空白日志+禁止袭击更名+CDK逻辑简化
问题1修复: 移除空白日志
- 移除Web登录确认轮询和密码验证轮询的PHP响应日志
- 这些日志在data为空时输出无意义内容
问题6修复: 禁止袭击更名
- 启用状态(denyRaid=true)显示禁止袭击
- 禁用状态(denyRaid=false)显示启用袭击
- 修改AreaGUIManager和AreaCLIManager显示逻辑
问题3修复: CDK兑换逻辑简化
- PHP不再更新bond_cache,只记录pending交易
- Java端负责拉取交易并处理加债券
- 远程CDK和本地CDK统一处理逻辑
|
2026-06-26 10:59:50 +08:00 |
|
youpaishidifu
|
59313d4f32
|
问题10修复: CDK兑换不到账+假密码+隐藏密码框
CDK兑换修复:
- PHP远程CDK兑换改为写pending交易(cdK_redeem+pending)
- PHP远程CDK兑换同时更新bond_cache
- Java端移除sdf1反射调用(不必要的复杂度)
- 远程/本地CDK兑换链路统一:PHP更新cache→写pending→Java拉取→addBonds
假密码/密码框修复:
- player.php商城购买: 总价≤1000时隐藏密码输入框
- player.phpCDK兑换: 完全移除密码输入框(CDK免验证)
- shop.php移除硬性密码检查,交给validateWebAccess处理
- 动态切换:调整数量时密码框实时显示/隐藏
|
2026-06-26 10:21:35 +08:00 |
|
youpaishidifu
|
c86e9f76b9
|
@ SeniorDeveloper 修复领地系统10项问题:空白日志、CLI效果管理、GUI验证、在线玩家同步、领地数据同步、领地所有权验证、用户端UI优化、效果管理、和平模式修复
|
2026-06-25 23:46:57 +08:00 |
|
youpaishidifu
|
142b15973a
|
v23: 修复定时器A启动延迟 - 双条件判断
问题:
- 定时器A每次执行都检查initialSyncComplete,只有全量同步完成后才执行轮询
- 全量同步耗时60+秒,导致Web登录后60秒才开始轮询
- 玩家在20:09:19加入,20:10:01超时下线,20:10:19才开始轮询(延迟60秒)
修复:
- 新增allowLoginPolling标志,双条件:initialSyncComplete OR 玩家在线
- 玩家onJoin时立即设置allowLoginPolling=true(不等全量同步完成)
- 定时器A改为检查allowLoginPolling,有玩家在线时立即开始轮询
- 确保不影响定时器B/C的initialSyncComplete逻辑
|
2026-06-25 20:17:24 +08:00 |
|
youpaishidifu
|
3e21bbb112
|
v22: 简化Web登录确认逻辑+缩短轮询间隔到3~5秒
问题1 - 玩家Web登录后,Java拒绝自动登录(phpVerified=false):
- pollWebLoginConfirmations双重验证太严格:Java内存记录 AND PHP验证状态都为空时拒绝
- 根因:Java重启/内存清理后verifiedWebLogins为空,PHP的web_login_verified也无记录
- 但web_login_confirmations记录本身已代表通过安全验证(PHP verifyWebPassword 已禁用)
修复1 - 安全逻辑简化:
- 有确认记录 = 已通过某种安全验证,直接允许自动登录
- 移除「Java和PHP均无验证记录则拒绝」的严格检查
- 记录PHP验证状态仅用于日志诊断,不再作为拦截条件
问题2 - 轮询间隔8~15秒太长,导致Web登录后66秒才自动登录:
- 修复2:定时器A间隔缩短到3~5秒,快速响应登录请求
|
2026-06-25 20:00:38 +08:00 |
|
youpaishidifu
|
df6cc2bea8
|
v21: 修复Web登录同步失败+全链路日志
问题根因:
- pollWebLoginConfirmations只检查Java内存isWebLoginVerified
- 邮箱验证码登录时PHP直接写web_login_confirmations,Java从未调用recordWebLogin
- 导致hasVerifiedRecord=false,自动登录被安全拦截
修复内容:
- PHP端:check_web_login_confirmations返回php_verified字段(查询web_login_verified表)
- Java端:pollWebLoginConfirmations信任PHP验证状态,Java无记录但PHP有→信任PHP并写入
- 全链路日志增强:轮询开始/PHP响应/安全检查/回写结果全部打印详细日志
- PHP端:webLoginRequest/completeWebLoginRequest/checkPendingWebLogins增加debugLog
|
2026-06-25 19:35:10 +08:00 |
|
youpaishidifu
|
d23ce56606
|
v20: 修复锁库频率+URI undefined scheme错误
问题1 - 锁库超预期(每分钟2次):
- 定时器A间隔0~5秒太短,三个并行任务同时打PHP
- 修复:定时器A间隔改为8~15秒,减少锁库概率
问题2 - URI with undefined scheme:
- pollAdminChanges的ackUrl是相对路径/api/land_api.php?...,缺少webBaseUrl前缀
- 修复:ackUrl加上webBaseUrl前缀
- 附带修复:poll_admin_changes的secretKey未URL编码,已加上URLEncoder.encode
|
2026-06-25 19:15:57 +08:00 |
|
youpaishidifu
|
eb3c336e38
|
v19: 修复Web登录验证链路 - verifiedWebLogins永不写入导致自动登录失败
问题根因:
- pollWebLoginRequests验证密码成功后不写verifiedWebLogins(注释写了'不在验证成功时写入')
- pollWebLoginConfirmations检查isWebLoginVerified永远返回false → 自动登录被拒绝
- 导致PHP确认登录成功但Java不自动登录玩家
修复内容:
- 新增recordWebLogin()方法:密码验证成功时立即写入verifiedWebLogins
- pollWebLoginRequests:密码验证成功后调用recordWebLogin
- pollWebLoginConfirmations:增强安全检查日志
- isJavaLoginRecorded:增加详细诊断日志(记录数、过期时间等)
|
2026-06-25 18:58:44 +08:00 |
|
youpaishidifu
|
f1cd0da7d4
|
v18 修复快速重连:新增javaLoginRecords持久化登录记录(5分钟),检查点1放行同IP重连;添加PHP响应日志
|
2026-06-25 18:44:42 +08:00 |
|
youpaishidifu
|
329bca61a9
|
v17 合并定时器重构:6个独立定时器→3个合并错峰定时器(A注册登录0~5s B交易0~10s C其它10~20s),自动错峰≥5秒,消灭锁库
|
2026-06-25 18:22:03 +08:00 |
|
youpaishidifu
|
b6863c45c7
|
修复: 自动登录逻辑重构+轮询间隔增大降低DB锁
|
2026-06-25 18:03:45 +08:00 |
|
youpaishidifu
|
2867c7614a
|
优化数据库锁检测:修复注册轮询锁库逻辑,为CDK轮询和领地同步添加锁库检测,调整交易/库存轮询间隔为8±5秒
|
2026-06-25 17:33:43 +08:00 |
|
youpaishidifu
|
23337695b4
|
v15: 修复PHP假密码绕过 + 快速重连安全检查
安全修复(严重):
- WebManager.pollWebLoginRequests(): 不再在handleWebPasswordVerify成功后写入verifiedWebLogins
- 之前逻辑:PHP推送密码给Java → Java验证成功 → 自动写入verifiedWebLogins → onJoin自动登录
- 漏洞:PHP端如果输入假密码/错误密码,Java不会验证(Java验证只基于login.db),verifiedWebLogins不会被设置
- 但pollWebLoginConfirmations()检查isWebLoginVerified()失败后,玩家快速重连仍被canAutoLogin放行
- Main.onJoin(): 快速重连检查(canAutoLogin)之前增加isWebLoginVerified()检查
- 玩家在Web端通过Java验证登录过 → verifiedWebLogins有记录 → 5分钟内重连放行
- 玩家无Java验证记录 → 拒绝快速重连(即使用IP快速重连也不行)
- 解决:PHP假密码/错误密码 → Java不会设置verifiedWebLogins → 快速重连被拒
|
2026-06-25 16:24:15 +08:00 |
|
youpaishidifu
|
15f473abc8
|
v14: Java快速重连三层检查(纯内存)+ 回退DB持久化
快速重连修复(按流程图严格实现):
- 检查点1: 检查loggedIn集合中是否有Java手动登录记录 → 有则继续正常流程
- 检查点2: 检查verifiedWebLogins内存中是否有PHP验证记录 → 有则自动登录
- 检查点3: 上述2路都失败 → 强制重新验证密码
- autoGenerateWebLoginToken和syncUserOnJoin移到检查点1/2之间执行
回退DB持久化:
- DatabaseManager.java删除web_verified_at列定义
- WebManager.java isWebLoginVerified()回退为纯内存检查
- WebManager.java clearWebLoginVerified()回退为纯内存清除
- pollWebLoginRequests()验证成功后不再写入login.db
部署:
- JAR: 733300 bytes → SFTP ✅
|
2026-06-25 15:15:07 +08:00 |
|
youpaishidifu
|
d47997294d
|
v13: 安全加固 - PHP禁止自验证密码 + Java本地验证记录持久化
安全修复(严重隐患):
- PHP端: verifyWebPassword()函数体改为error(),禁止PHP直接验证密码
- Java端: pollWebLoginConfirmations()增加本地验证记录检查,PHP推送的登录确认必须有Java本地验证记录才允许自动登录
- Java端: 验证成功后写入login.db的web_verified_at字段(重启不丢失)
- Java端: isWebLoginVerified()增加login.db回查(内存没有时从DB恢复)
- Java端: clearWebLoginVerified()同时清除DB记录
- Java端: pollWebLoginConfirmations消费后立即清除验证记录(防重放)
|
2026-06-25 14:41:25 +08:00 |
|
youpaishidifu
|
6d569fed23
|
v12: PHP密码验证安全修复 + 任务间延迟6-14秒随机
安全修复:
- sync.php: 删除verify_web_password端点,禁止PHP自验证密码
- core.php: validateWebAccess大额交易密码验证改为检查web_login_verified(Java验证结果)
- 密码验证强制走web_login_request流程(Java端handleWebPasswordVerify)
锁库优化:
- 任务间随机延迟从10-12秒改为6-14秒(8秒变异范围)
- 增大随机性,避免周期性锁争用
|
2026-06-25 14:13:31 +08:00 |
|
youpaishidifu
|
6e24546a6c
|
v11: SSL断路器防重复触发 + HTTP降级延长冷却 + 启动同步锁库修复
SSL断路器:
- 新增triggerCircuitBreaker()安全方法,并发请求不再重复触发
- HTTP降级也失败时立即延长冷却(CDN完全不可达场景)
- 基础冷却30秒→60秒(CF恢复通常1-5分钟)
- GET/POST/HTTP降级失败统一走triggerCircuitBreaker
启动锁库:
- 新增initialSyncComplete标志,注册/CDK/库存轮询器等待全量同步完成
- 避免启动阶段多个轮询器与全量同步并发请求PHP导致SQLite锁
|
2026-06-25 13:42:34 +08:00 |
|
youpaishidifu
|
eb0b39d8b9
|
v10: SSL断路器指数退避 + 超时统一10秒 + 延迟增到10-12秒
- SSL断路器冷却从固定30秒改为指数退避: 30s→60s→120s→240s→300s(上限)
- 新增sslCircuitOpenCount跟踪连续断路次数,成功时重置
- 请求超时统一10秒(connectTimeout和request timeout一致)
- 任务间随机延迟从8-10秒增到10-12秒,进一步减少锁库
- HTTP降级成功也重置退避计数
|
2026-06-25 13:27:05 +08:00 |
|
youpaishidifu
|
10e148be5f
|
v9: 修复pollAdminChanges 404 + 延迟增到8-10秒
- 修复 ack_admin_changes double URL bug(httpPost重复拼接webBaseUrl)
- 改用GET方式发送ack,避免POST Content-Type不匹配
- land_api.php 支持GET参数ids
- 所有任务间随机延迟从6-8秒增到8-10秒
- 目标:锁库降到0-1次/分钟
|
2026-06-25 13:05:41 +08:00 |
|
youpaishidifu
|
9599a66cc5
|
增强: 随机间隔从±8秒扩大到±10秒;任务间随机延迟从4-6秒增加到6-8秒;减少PHP端SQLite锁冲突
|
2026-06-25 12:46:45 +08:00 |
|
youpaishidifu
|
c05c6d9512
|
修复: SSL降级触发条件优化-任何连接异常都计数;任务间随机延迟从2-4秒增加到4-6秒;增加SSL计数器在POST最终失败时
|
2026-06-25 12:21:25 +08:00 |
|
youpaishidifu
|
2a976710e9
|
增强: 随机间隔扩大到±8秒;所有同步任务间改为随机2-4秒延迟;拆分同步添加0-2秒随机延迟避免并发锁库
|
2026-06-25 12:07:48 +08:00 |
|
youpaishidifu
|
c2a8385895
|
优化: 首次全量同步和周期同步任务间错开1500ms,避免PHP端SQLite数据库锁
|
2026-06-25 11:53:58 +08:00 |
|
youpaishidifu
|
3c71664284
|
修复: 404问题-在线玩家同步GET返回404时触发分批POST拆分(每人一批); 库存轮询增加DB锁错误检测; 随机间隔扩大到±5秒
|
2026-06-25 01:44:46 +08:00 |
|
youpaishidifu
|
c9e2f71361
|
增强: 随机间隔扩大到±5秒减少DB锁冲突;库存轮询增加数据库锁错误检测
|
2026-06-25 01:19:47 +08:00 |
|
youpaishidifu
|
3c085e086d
|
优化: 全量同步任务间错开800ms执行,避免瞬间堆叠导致DB队列等待过久和HTTP 404
|
2026-06-25 00:49:31 +08:00 |
|
youpaishidifu
|
28a120fea0
|
修复: 补充rebuildHttpClient方法和initPlainHttpClient方法,实现SSL降级到HTTP功能;添加randomIntervalSeconds随机间隔定时器,避免并发SQL锁死
|
2026-06-25 00:19:46 +08:00 |
|
youpaishidifu
|
dee6ab8eed
|
feat: SSL连续失败3次自动降级到HTTP + 编译部署
|
2026-06-24 23:06:03 +08:00 |
|
youpaishidifu
|
5273220716
|
修复:poll_admin_changes返回JSON包含Unicode转义序列导致解析404
|
2026-06-24 21:28:42 +08:00 |
|
youpaishidifu
|
e416372a41
|
修复:GUI效果管理回调子页面保持、PVP双端检查、传送安全位置、游戏模式管理员豁免
|
2026-06-24 20:33:35 +08:00 |
|
youpaishidifu
|
bbf23aad31
|
fix: 领地系统多项修复 - 管理员TAG验证/和平模式/袭击模式命名/效果管理GUI/添加成员功能
|
2026-06-24 18:32:25 +08:00 |
|
youpaishidifu
|
7ae4f46f75
|
fix: 修复CLI效果管理点击返回回到首页问题,去除返回按钮中的clickEvent导致
|
2026-06-24 15:38:17 +08:00 |
|
youpaishidifu
|
4a74a0a77f
|
feat: 新增效果管理功能 — CLI/GUI可视化操作 1.CLI效果管理菜单: 全清负面/禁止所有效果/单清列表/增益列表 2.CLI快捷指令: effectsclearall effectsdenyall effectsclearadd effectsclearremove effectsaddadd effectsaddremove 3.GUI效果管理: 管理领地菜单新增效果管理入口, 3个子菜单(GUI可视化操作)
|
2026-06-24 14:27:02 +08:00 |
|
youpaishidifu
|
9944fd5f16
|
Fix area protection: perm renames, DB save fix, perm_change sync, teleport command
|
2026-06-24 13:07:11 +08:00 |
|
youpaishidifu
|
3662466434
|
chore: 从main分支移除web文件夹(PHP代码归php分支管辖)
|
2026-06-24 11:17:18 +08:00 |
|
youpaishidifu
|
302268d0da
|
fix: 领地系统4个bug修复
1. CLI用户权限管理: 添加shortKeyToDenyField映射修复键名不匹配
2. 移除用户: 修复大小写敏感导致的移除失败
3. 权限组反转: 修复togglePerm反馈消息语义(deny=true→已禁止)
4. GUI工具: BLAZE_ROD替代STICK
|
2026-06-24 11:08:55 +08:00 |
|
youpaishidifu
|
6ec438abd9
|
fix: parseJson数组解析 + WebManager ClassCastException修复
- addParsedEntry增加JSON数组识别,存为List<Map>而非String
- 新增parseJsonArray/parseJsonArrayItem递归解析嵌套数组
- 修复pollAdminChanges中List类型强转失败(class String cannot be cast to List)
|
2026-06-24 10:25:36 +08:00 |
|
youpaishidifu
|
9e3182e1a1
|
fix: 8项问题修复
1. PHP登录安全: player.php改用web_login_request走Java验证
2. 圈地工具改为BLAZE_ROD(避免投影mod冲突)
3. CLI更新后打印新版配置内容
4. 智能数字解析: 支持+/-前缀、中英文/罗马数字、封底值
5. 删除upload_sftp.py敏感文件并加入gitignore
6. CLI成员权限页面添加所有者/管理员权限检查
7. GUI模式移除冗余sendMessage调用(消息不外泄)
8. AreaCLIManager变量名冲突修复
|
2026-06-24 01:22:59 +08:00 |
|
youpaishidifu
|
8cd380a93b
|
feat: 成员独立权限系统 + PHP→Java同步 + SSL兼容性
|
2026-06-23 23:46:44 +08:00 |
|
youpaishidifu
|
a3030c3b80
|
feat: 8项修复 - 圈地工具冷却/删除取消/CLI配置/智能数字解析/SSL重连
1. 圈地工具5秒冷却+拥有检测(CLI+GUI)
2. 删除冷却期间权限修改/成员变更自动取消删除
3. CLI全局配置页面(点击可修改各配置项)
4. GUI管理员面板改为聊天栏输入+智能数字解析
支持: 纯数字、中文数字、中文大写、罗马数字、英文数字
5. SSL: 强制TLSv1.2+CF兼容密码套件+断路器冷却后重建HttpClient
6. SSL断路器增强: submitDbTask/getDoGet/doPost前置检查
|
2026-06-23 22:30:12 +08:00 |
|
youpaishidifu
|
2a5db378d3
|
fix: SSL断路器增强 - 多层防护避免SSL握手风暴
问题:SSL握手失败时,多个轮询定时器(5秒/2秒/3秒)并发提交任务,
导致连续失败计数飙升(58-69次),断路器反复触发但无法有效阻断。
修复:
1. submitDbTask()添加断路器检查 - 断路期间跳过所有DB任务
2. doGet/doPost/doGetStatus/doPostWithRetry添加断路器前置检查
3. 断路期间不再发送任何HTTP请求,避免无意义的SSL握手
4. 60秒冷却期结束后自动恢复
部署:JAR已上传MC服务器
|
2026-06-23 21:26:33 +08:00 |
|
youpaishidifu
|
05ebd07df6
|
领地系统8项修复: SSL断路器/计费/GUI-CLI切换/删除取消/管理细分/配置释放/txt迁移
|
2026-06-23 19:52:55 +08:00 |
|
youpaishidifu
|
542879177c
|
feat: 新增AreaCLIManager交互式CLI菜单系统
- CLI主菜单:创建领地/领地列表/权限商店/信息/切换模式
- 领地列表:分页显示,每条有[管理][传送][删除]可点击按钮
- 权限管理:分页显示29项权限,每项有✔/✘标记+切换按钮
- /protect无参数时CLI模式直接打开交互菜单
- AreaProtection新增getAllLands()公开方法
|
2026-06-23 18:15:31 +08:00 |
|
youpaishidifu
|
69c9e0ceb9
|
@
领地系统大修:新增10个权限事件处理器 + GUI权限补全 + 删除二次确认修复
新增事件处理器:
- ProjectileLaunchEvent: 投掷物检测(三叉戟/雪球/风蛋)
- PlayerInteractEvent: 门禁交互(按钮/门/压力板/绊线钩)
- NotePlayEvent: 音符盒交互
- JukeboxPlay(InteractEvent): 唱片机交互
- PlayerInteractEvent: 红石交互(中继器/比较器)
- PlayerInteractEntityEvent: 拴绳使用
- BlockGrowEvent: 农作物收获
- PlayerShearEntityEvent: 剪切羊毛/生物
- EntityBreedEvent: 投喂动物
- RaidTriggerEvent: 袭击侦测
- 周期性扫描: 玩家发光检测
修复:
- GUI权限列表: "PVP"→"玩家对战", "Raid"→"袭击侦测", 补全全部29项权限
- 删除二次确认: 防止绕过1分钟延迟
- 移除重复import, 修复InventoryHolder缺失
@
|
2026-06-23 17:57:24 +08:00 |
|
youpaishidifu
|
58cc9677ae
|
fix: 迁移INSERT列数不匹配(45→46) + 移除未使用import
|
2026-06-23 17:17:18 +08:00 |
|
youpaishidifu
|
c691e9c44f
|
@
领地系统:修复DB列数不匹配(59→61) + 用户UI偏好设置
- 修复saveAreaToDb INSERT语句缺少2个?占位符(warp_pitch/warp_world)
- 新增 /protect uimode cli|gui 命令切换UI偏好
- 主菜单39号位添加领地系统入口,读取偏好决定GUI/CLI
- /protect无参数时读取偏好,自动选择GUI或CLI模式
@
|
2026-06-23 17:13:18 +08:00 |
|
youpaishidifu
|
70b8e991da
|
feat: 领地系统大规模重构
1. 全局配置: area_config表存储创建价格/每人上限/默认高度等
2. 新增10+权限: 投掷物/发光/红石/门禁/音符盒/拴绳/农作物/羊毛/动物投喂
3. 传送点: settp设置传送点,tp传送到领地传送点
4. 删除安全: 1分钟延迟+二次确认(输入完整领地名),操作自动取消
5. 容器权限: 覆盖所有BlockState容器+Container接口
6. 安全传送: 头顶≥2格空气+脚下实体方块+距边界≥3格,否则世界出生点
7. 和平模式: 最长1小时(3600秒)强制订正
|
2026-06-23 16:44:05 +08:00 |
|