Commit Graph
62 Commits
Author SHA1 Message Date
ypsdf1 b7b2647ef1 需求3脱敏:config.php改为占位符分发(敏感信息不入库),清除admin.php公网前端13处与land_api.php的硬编码SECRET_KEY,改为服务端注入/常量比对 2026-09-30 11:18:41 +08:00
ypsdf1 1c9e5808a1 WIP: php 本地未提交改动
包含:
- admin.php / api/land_api.php / api/sync.php / login.php 修改
- 新增 active_players.php / online_curve.php / today_bonds.php

注:后续将视 origin/php 情况 reset --hard 对齐,本分支用于保留 WIP。
2026-07-14 22:02:10 +08:00
ypsdf1 b34753d1fd 新增封禁名单联控 + 用户管理封禁显示
- land_api.php: web_player_bans表 + handleSyncBans + sync_bans action
- admin.php: list_bans API接口
- admin.php前端: 用户行显示封禁状态(红色+禁图标+hover详情)
2026-07-12 22:08:46 +08:00
ypsdf1 498245d967 插件管理员权限扩展 + admin名单同步
- 新增web_plugin_admins表 + isPluginAdmin/canManageLand辅助函数
- handleAddVisitor/handleRemoveVisitor/handleChangeVisitorRole/handleUpdateLandField/handleUpdateVisitorPerm/handleGetMemberPerms/handleUpdateMemberPerm/handleClearMemberPerm/handleLandDetail 9处权限检查从owner-only扩展为owner+admin
- 新增sync_admins action:Java推送tag管理员名单,PHP全量写入web_plugin_admins
2026-07-12 19:46:44 +08:00
ypsdf1 f5879f4087 修复PHP操作效果后JSON解析崩溃:convertEffectsForFrontend增加容错处理+handleUpdateLandField统一管道格式到变更队列+player.php所有effects JSON.parse加try-catch 2026-07-12 11:41:26 +08:00
ypsdf1 0b283483a7 修复: 成员权限显示未合并领地默认权限
handleGetMemberPerms 新增返回领地默认权限映射(default_perms),
严格对齐 Java getLandDefaultDeny 语义(含 denyDrop/denyPickup 反向列)。
前端 renderMemberPermDetail 对无自定义覆盖的权限键回退到领地默认,
与游戏内 getEffectiveDeny 的领地默认回退逻辑一致,
修复网页端显示"允许"而游戏内实际"禁止/限制"的权限不同步问题。
2026-07-12 10:32:10 +08:00
ypshidifu 9b39c9e56f 修复: 权限管理多项问题
1. 权限字段补齐: PHP $PERM_TYPES对齐Java全部32个权限键
   - 新增denyEntityInteract(实体交互)、denyMobAttack(攻击生物)
   - 修正denyPeaceMode→peaceMode(键名与Java对齐)
   - 数据迁移: 自动重命名DB中已有的denyPeaceMode为peaceMode

2. 权限编辑二态化: 成员权限只有允许/禁止,不存在"领地默认"
   - 移除前端"默认"状态,改为允许(green)/禁止(red)二态切换
   - 后端: 禁用时存false而非删除键,确保Java端正确识别

3. 角色切换修复: 移除visitor选项(访客=未授权玩家)
   - 下拉菜单只保留admin/member
   - 确认对话框文案对应调整

4. 同步删除逻辑: handleSyncPermissions新增清理机制
   - 删除incoming列表中不存在的旧记录(120秒宽限期)
   - synced_at=NULL的记录不参与删除(防误删PHP本地创建)
   - role CASE简化为role=excluded.role(信任Java为角色权威源)

5. 部署: json_encode加JSON_UNESCAPED_UNICODE防双重编码
2026-07-12 01:07:27 +08:00
ypsdf1 a4972dde7e R16: 修复add_visitor超时边界(>65→>=60) 2026-07-11 18:10:43 +08:00
ypsdf1 d7da6ec1a6 R15: PHP添加成员改为Java验证后入库(参考改领地主流程)
- handleAddVisitor改为先写pending队列,等Java验证后入库
- 新增handleAddVisitorCallback回调PHP添加成员结果
- 新增handleGetAddVisitorStatus供前端轮询状态
- player.php添加成员后轮询状态,支持异步验证显示
2026-07-11 15:53:12 +08:00
ypsdf1 0115cbda41 R14: 修复PHP添加成员静默失败+syncPermissions删除清理
- handleAddVisitor: 移除异步验证阻塞,先添加成员再异步校验
- syncPermissions: 新增删除清理逻辑,同步Java端已移除的成员
- 120秒宽限期防止PHP刚添加的成员被误删
2026-07-11 15:11:00 +08:00
ypsdf1 ed57c8f82c R13: PHP端handleChangeVisitorRole 新成员走add_visitor流程
- 新增成员时change_type从perm_change改为add_visitor,确保Java白名单同步
2026-07-11 14:19:08 +08:00
ypsdf1 4998d7bdfa 修复PHP添加/移除成员不通知Java同步:写入web_admin_changes变更队列
1. handleAddVisitor: 添加访客后写入add_visitor变更记录,Java轮询后同步到area_land_permissions+白名单
2. handleRemoveVisitor: 移除访客后写入remove_visitor变更记录,Java轮询后同步删除
3. playerExists已检查login.db兜底,确保添加不存在的玩家会被拒绝
2026-07-11 13:36:03 +08:00
ypsdf1 646ecfa162 修复撤职管理员报无效角色member+效果中英文名兼容
1. land_api.php: handleChangeVisitorRole白名单增加member角色
2. player.php: addGiveEffect改用中文效果名(EN_TO_CN映射)发送给Java
3. player.php: addClearEffect兼容中文效果名匹配
2026-07-11 12:21:32 +08:00
ypsdf1 eaeab955e3 修复PHP三个bug:1.changeVisitorRole支持三角色切换(admin/member/visitor)并允许领地主自由切换;2.token验证兼容POST;3.成员权限toggleMemberPerm DOM检测修正 2026-07-10 23:16:32 +08:00
ypsdf1 a28083f4ca 修复PHP两个bug:1.land_api.php玩家端token验证兼容POST(changeVisitorRole等POST请求不再误报需要登录);2.player.php成员权限toggle检测逻辑修正(isCustom原本查span但自定义文字在div里,导致永远走无自定义分支只能给不能撤) 2026-07-10 22:51:04 +08:00
ypsdf1 b67480d073 PHP权限管理全面对齐Java:1.handleUpdateLandField白名单从4项扩展到33项(覆盖所有deny/allow权限开关);2.sync.php补齐14个缺失字段的INSERT和bind(deny_mount/deny_ender_pearl/deny_bow/deny_potion/deny_fire/deny_raid/deny_container/deny_mob_attack/is_public_building/allow_visitor_teleport/confiscate_items/deny_use_items/punish_commands/clear_all_bad);3.player.php新增领地权限开关面板(34项开关,与Java GUI getPermEntries一致,支持deny/allow反转显示);4.sync.php补充新列ALTER TABLE迁移 2026-07-10 22:34:39 +08:00
ypsdf1 555b9382b5 修复PHP三个关键bug:1.player.php效果字段名clear_all_bad_effects→clear_all_bad匹配DB列名;2.validation_callback的add_visitor写入web_area_permissions表(与handleAddVisitor一致,修复成员不入库);3.validatePlayerViaJava优先本地playerExists验证,减少异步等待;4.auth兜底保底防止update_land_field误入invalid secret 2026-07-10 22:00:31 +08:00
ypsdf1 b63ecc02b8 修复PHP接口:增益效果接口补齐必要参数,玩家存在性校验兼容登录库,同步新增实体交互权限字段 2026-07-10 19:08:18 +08:00
ypsdf1 e49fcaccd8 修复: syncPermissions ON CONFLICT替代INSERT OR REPLACE防角色降级
sync.php + land_api.php: 同步权限时用ON CONFLICT, 保留已有admin/member角色
2026-07-10 10:59:12 +08:00
ypsdf1 eed83a552f 领地权限切换加全链路日志+已授权用户降级为访客的拦截
- handleChangeVisitorRole: 修复$permRow未定义(旧$oldPerms恒空);新增 admin/member 降级为 visitor 的拦截并返回错误;三处 error_log 追踪切换角色流程
- handleUpdateVisitorPerm: 入口/拦截/放行三处 error_log
- handleUpdateMemberPerm: 写入 web_admin_changes 前 error_log 记录新权限JSON
- 配合 Java 端 AreaProtection.updateVisitorPermFromWeb 的 getLogger().info 端到端追踪
2026-07-10 01:34:24 +08:00
ypsdf1 c960c3ac0c 修复调整访客权限误重置管理员身份(role默认visitor+INSERT OR REPLACE覆盖);保留付费访客expires_at;change_visitor_role同步land_name 2026-07-10 00:16:04 +08:00
ypsdf1 5fa59b71b2 fix: PHP删除用户组同步 + handleDeleteUserGroup先删成员表再删组表 2026-07-03 14:27:27 +08:00
ypsdf1 591d71ede0 fix: PHP数据库锁修复 + 用户组添加/移除错误处理
1. initTables()统一创建所有核心表(web_user_groups, web_user_group_members等)
2. handleAddGroupMember改用playerExists()本地验证替代异步validatePlayerViaJava()
3. handleRemoveGroupMember增加错误处理和affected行数检查
4. 移除validation_callback/visitor中的CREATE TABLE IF NOT EXISTS
2026-07-03 13:41:22 +08:00
ypsdf1 4927aaed01 fix: Java推送成员变更到PHP新增add/remove_group_member_by_java接口; Java端调用改名加_java后缀 2026-07-03 01:16:23 +08:00
ypsdf1 d394bd0ec8 fix: PHP购买用户组流程完善 - 1. 修复duration=0永久验证(从<=0改为<0) - 2. 替换原生alert/confirm为自定义toast玻璃拟态UI - 3. 添加bond记录同步(handleSyncBondRecord) - 4. 前端购买弹窗使用玻璃拟态确认对话框 - 5. 修复可用用户组列表SQL缺失列自动迁移 2026-07-02 22:41:15 +08:00
ypsdf1 60151dc1d0 修复handleListAvailableGroups迁移缺失列+修复领地禁止点燃双方向检查 2026-07-02 20:15:12 +08:00
ypsdf1 bcc68aa4e5 feat: 实现TimerE用户组续费轮询完整流程 - poll_group_renews action + renew_group_callback + web_group_renew表 2026-07-01 20:36:17 +08:00
youpaishidifu b9ca56ff7f feat: 修复用户组权限检查 - 所有玩家可查看购买用户组 + 修复JavaScript语法错误 2026-07-01 11:22:51 +08:00
youpaishidifu 1bc97f6980 feat: 领地管理增强 - 毛玻璃改主弹窗 + pending队列 + 同步状态查询 + 玩家前端UI 2026-07-01 01:20:15 +08:00
ypsdf1 3dacc80fe1 feat: 领地删除走pending队列 + sync清理PHP残留
- land_api: handleDeleteLand改为写web_admin_changes队列
- land_api: 新增delete_land_callback处理Java回调
- sync.php: syncLands增加删除PHP中不存在的领地
- 修复admin面板过户按钮(同步到plugin目录)
2026-06-29 20:45:38 +08:00
ypsdf1 62798f2a90 添加改主状态查询API,PHP前端轮询机制 2026-06-29 20:06:27 +08:00
ypsdf1 64ed1e6ada 修复改主认证: admin.php改用secret认证, 移除不存在的transfer_land_admin函数, secret认证时设置isAdmin=true 2026-06-29 19:39:55 +08:00
ypsdf1 5403479a2c 修复PHP改主校验流程:Java失败时PHP自动回退+前端不立即刷新
1. PHP handleUpdateLandOwner: 不再直接更新web_area_lands,写入pending队列,返回pending=true
2. PHP handleOwnerChangeCallback失败时:回退owner为旧值,记录日志
3. PHP admin.php adminTransferLand: 收到pending=true时不立即刷新列表,改为5秒后轮询
4. 按钮禁用防重复提交,等待回调后恢复
2026-06-29 16:38:31 +08:00
ypsdf1 e9bd63a1e4 修复过户面板:移除独立过户按钮改为主改主、adminTransferLand/deleteLand函数修复、改主流程改为pending等待Java验证、添加owner_change_callback回调 2026-06-29 15:24:04 +08:00
ypsdf1 866b5abe15 refactor: 过户流程重构 - PHP暂存等Java验证
1. handleTransferLand: 不再立即改owner,改为status=pending等Java验证
2. 新增handleTransferCallback: Java验证成功→改owner+cooldown;失败→标记failed
3. handleCancelTransfer: 支持pending状态撤回+cooldown状态回退
4. handleTransferStatus: 增加id字段
5. transfer_callback加入syncFromPhpActions
2026-06-29 12:12:10 +08:00
ypsdf1 2237f6c855 feat: 领地过户功能 + 管理面板改主修复
1. 领地过户: 添加web_land_transfers冷却表,handleTransferLand/handleCancelTransfer/handleTransferStatus
2. 管理面板改主: 移除异步验证,直接写入web_admin_changes让Java端执行(管理员操作可信任)
3. admin.php: 过户按钮+adminTransferLand JS函数+confirm二次确认
4. 玩家名正则统一为3-16位
2026-06-29 11:48:51 +08:00
ypsdf1 c0afb47535 feat: PHP玩家验证改为异步模式
- land_api.php: 新增 pending_player_validations 表(待验证队列)
- validatePlayerViaJava(): 改为异步模式(查缓存→写pending→返回null)
- 新增 handleGetPendingValidations: Java拉取待验证列表
- 新增 handleValidationCallback: Java推送验证结果
- handleAddGroupMember/UpdateLandOwner/AddVisitor: 适配异步验证
- 改善错误提示文案
2026-06-28 15:59:42 +08:00
ypsdf1 f6265dd994 feat: 玩家验证改调Java回调服务器(替代直接读login.db)
- land_api.php: 新增 validatePlayerViaJava() 函数
  POST http://GAME_SERVER_HOST:9090/validate_player
- handleAddGroupMember: 替换直接读login.db为Java验证
- handleAddVisitor: 替换playerExists()为Java验证
- handleUpdateLandOwner: 替换playerExists()为Java验证
- config.php: 新增 GAME_SERVER_HOST (默认127.0.0.1)
2026-06-28 15:30:09 +08:00
ypsdf1 2342cc2cab fix: 用户组成员添加校验(玩家名格式+login.db存在性检查) 2026-06-28 15:16:36 +08:00
ypsdf1 35f15db034 feat: 用户组成员变更写入admin_changes通知Java同步 2026-06-28 14:27:04 +08:00
ypsdf1 1f97e3b969 修复clear_all_bad字段名不一致+handleUpdateLandField整数列类型 2026-06-28 12:17:21 +08:00
ypsdf1 d568a2ce5d feat: PHP效果选择器+管理员角色切换+JSON编码修复
- player.php: 新增glassSelect()毛玻璃选择器弹窗(29种MC药水效果)
- player.php: addClearEffect/addGiveEffect从手动输入改为效果选择器
- player.php: 访客表格角色列改为可点击标签,点击切换管理员/访客
- land_api.php: 新增change_visitor_role API + handleChangeVisitorRole()
- land_api.php: handleListUserGroups添加JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES
2026-06-28 10:48:09 +08:00
ypsdf1 ca212233a3 feat: 用户组PHP→Java变更通知
- handleUpdateUserGroup: 更新后写入web_admin_changes(group_change)
- handleDeleteUserGroup: 删除后写入web_admin_changes(group_change)
- Java端pollAdminChanges收到group_change后自动重载用户组配置
2026-06-28 00:16:25 +08:00
ypsdf1 a5a2ef733c feat(admin): 添加用户组管理页面
- 侧边栏新增「👥 用户组」管理入口
- 支持新建/编辑/删除用户组(组ID、显示名、颜色、优先级)
- 支持配置用户组独立领地单价和最大领地数
- 支持编辑用户组默认权限(38项权限复选框)
- 支持管理用户组成员(添加/移除玩家)
- API认证列表补充用户组相关action
2026-06-27 23:50:20 +08:00
ypsdf1 5f43fb1407 feat: 用户组同步+管理API (sync_user_groups, land_api endpoints) 2026-06-27 23:05:27 +08:00
ypsdf1 c0672ad47a feat: 公共建筑is_public_building同步字段 2026-06-27 22:44:50 +08:00
ypsdf1 63251c6033 fix: ack_admin_changes GET/POST兼容 2026-06-27 22:04:01 +08:00
ypsdf1 742578a107 修复PHP用户端两个bug:权限配置空白+glassPrompt未定义
1. 移到try-catch之前,修复handleGetMemberPerms调用时变量未定义导致perm_types返回null
2. player.php新增glassPrompt HTML元素(label/input/hint)和JS函数
3. glassAlertResolve支持glassPrompt返回输入框值
2026-06-27 21:43:00 +08:00
ypsdf1 fc42b777ca 修复配置值前导零bug:handleUpdateConfig/syncConfig去除前导0
- handleUpdateConfig: (string)(int)去前导零
- syncConfig: 同样处理Java推送的配置值
2026-06-27 20:15:39 +08:00
ypsdf1 48ad7035ea 修复PHP→Java配置同步:handleUpdateConfig写入变更队列
- PHP修改配置后写入 web_admin_changes (config_change)
- Java pollAdminChanges 轮询拉取并应用到本地 area_config
2026-06-27 19:58:05 +08:00