youpaishidifu
|
c3d2f81e9e
|
添加/mscode命令:支持粘贴Microsoft OAuth授权码(公共客户端流程)
|
2026-07-17 14:02:08 +08:00 |
|
youpaishidifu
|
f8b44dd97b
|
修复自动登录安全漏洞:移除verifyPremiumAsync自动登录路径
问题:离线模式服务器中,所有玩家UUID都是离线格式。
旧代码通过Mojang API检查名字是否存在,如果存在就autoLogin。
这意味着盗版客户端只要用正版玩家的名字就能跳过登录。
修复:
- 移除verifyViaPhpBackend和fetchMojangUuid
- 离线UUID玩家一律视为非正版,需手动登录或OAuth验证
- 保留3条安全的自动登录路径:
1. 检查点0: isVerifiedPremiumPlayer (OAuth验证)
2. 检查点1: hasJavaLogin (5分钟内重连)
3. 检查点2: isWebLoginVerified (Web密码验证)
|
2026-07-17 11:06:03 +08:00 |
|
youpaishidifu
|
ab4fe441fe
|
新增Microsoft OAuth正版验证功能
1. PHP端新增minecraft_auth.php,实现完整的Microsoft OAuth流程
- 支持Microsoft账号登录验证
- 获取Minecraft Profile(UUID、用户名)
- 验证状态持久化到SQLite
- 生成可点击的授权URL
2. Java端新增/mslogin和/正版命令
- 调用PHP后端获取授权URL
- 显示可点击链接给玩家
- 轮询PHP检查验证状态
- 验证成功后自动登录
3. 修改VerificationManager,集成PHP后端验证
- 优先通过PHP验证(支持Microsoft OAuth)
- PHP不可用时降级到Mojang API
- 支持已验证正版玩家自动登录
4. 新增verifiedPremiumPlayers内存存储
- 服务器重启前有效
- 支持快速重连无需重复验证
- 下线时保留验证状态
5. 新增plugin.yml命令定义
- /mslogin: 英文版正版验证
- /正版: 中文版正版验证
|
2026-07-17 10:22:31 +08:00 |
|
youpaishidifu
|
317d1fdbcc
|
注释快速补单日志减少噪音
|
2026-07-16 15:38:52 +08:00 |
|
youpaishidifu
|
7ba43d820a
|
修复领地权限拦截:豁免VISITOR(领地授权成员)在非安全权限检查
|
2026-07-16 14:37:56 +08:00 |
|
youpaishidifu
|
a5edbfe314
|
修复: Java doGet超时30秒+poller详细日志
- doGet超时从10秒增加到30秒,确保poller有足够时间
- poller调用添加耗时统计和详细日志
- 修复pullPendingTransactions中的语法错误
- 解决: Java调用poller超时导致补单失败
|
2026-07-15 20:25:01 +08:00 |
|
youpaishidifu
|
e791548e87
|
doTransactionPollCheck添加高频补单触发器(15秒间隔)
- WebManager: doTransactionPollCheck每~5秒触发poller_online.php(限流15秒)
- 解决补单延迟(原PollC~30-60秒才触发)
关闭 #1059
|
2026-07-15 18:01:06 +08:00 |
|
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: & < > " ' ' 等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 |
|