弧光核心:自用all in one简单核心插件系统

Python 弧光核心:自用all in one简单核心插件系统 v0.9.63

完成注册/登录后下载
[MD] ### v0.9.63(当前版本) - ✅ **外部插件按钮图标改由各插件自带**:`api_register_main_menu_button` / `_put_main_menu_button` 的 `icon` 参数由各插件注册时传入(弧光核心RP 贴图路径,如 `textures/arc_core/guild.png`);核心移除 `BUTTON_ICONS` 集中映射 - ✅ 已适配自带图标:公会 / 按钮商店 / 木牌商店 / 别踩白块 / 异能与职业 / PvP KD 排行榜 / 枪战游戏 / 证券交易所 / UShop / 属性管理器(仅 OP 可见) ### v0.9.62 - ✅ **主菜单按钮图标三级回退**:按钮自带 `icon` → `button_id` 集中映射 → ARC logo 兜底图 `default.png` ### v0.9.61 - ✅ 版本号顺延:修复表单图标功能与「从服上报」功能占用的 v0.9.60 撞号 ### v0.9.60 - ✅ **核心表单按钮接入自定义像素图标**:新增 `ui_icons` 路径常量模块;`/arc` 主菜单与核心面板 37 个按钮带图标;`_put_main_menu_button` / `api_register_main_menu_button` 新增可选 `icon` 参数(支持按玩家计算的 callable);贴图由客户端资源包「弧光核心RP」提供(`textures/arc_core/`),缺失时 Bedrock 自动不显示图标 - ✅ **`UI_ICONS_ENABLED` 开关**(缺省 `True`):关闭后全部表单按钮降级为无图标;OP 配置面板「通用」可改 - ✅ **从服时长/次数以主服为准**:从服进退服向同步中心上报该玩家 `session_count`/`total_playtime`,本地只缓存;`api_get_player_playtime` 展示前先向主服拉取 - ✅ **进服记账提前到 delay=1**,便于 QQ 播报读到最新次数 ### v0.9.55 - ✅ **OP 面板不再含公会管理**:公会管理完全独立,使用 `arc_guild` 的 `/arcguildop`;修复面板仍引用已删除方法导致的报错 ### v0.9.54 - ✅ **简化 TPA 倒计时**:去掉 `run_two_player_task`;目标玩家 xuid/name 存进 `run_player_task` 闭包,到期再解析是否仍在线 ### v0.9.53 - ✅ **紧急修复传送/进服**:补回拆公会时误删的 `run_player_task` / `run_two_player_task`(传送倒计时、进服延迟任务依赖) ### v0.9.52 - ✅ **修复**:补回被误删的 `_api_resolve_player_xuid`(`api_get_player_playtime` 等 API) - ✅ **修复**:`player_activity_stats` 迁移前先判断旧表是否存在,避免启动时刷 `no such table: player_achievement_stats` ### v0.9.51 - ✅ **前缀全注册制**:核心内置仅 `title=3`;`guild` 槽由 `arc_guild` 注册(priority=2),文本为公会名 - ✅ **前缀可独立显隐**:`api_set_player_chat_prefix(..., visible=)` 与 `api_set_player_chat_prefix_visible`;隐藏时保留原文(例:倒地显示 `[已倒地]`,复活仅隐藏) ### v0.9.50 - ✅ **插件化跨服同步 API(协议 v4)**:其它插件可 `api_sync_register_namespace` 注册自有表,业务数据仍存各自插件库;中心落 `psync_*` 物理表;从服经 `on_apply` 回写 - ✅ **公会拆出至 `arc_guild`**:核心删除内置公会 UI/API/`GuildSystem`;领地公会判定、击杀/签到贡献、聊天前缀改为软依赖(查失败一律视为无公会、不放行) - ✅ **领地待购面板**:非 OP 不显示「创建公共领地」按钮也不提示;有 `arc_guild` 且为会长/管理者时才出现「创建公会领地」 - ✅ **时长/次数主服权威**:主服本地累加;从服进退服上报中心,展示前 PULL 主服进度(本地仅缓存) ### v0.9.49 - ✅ **聊天/展示名前缀注册制**:按 priority 升序拼接(越小越靠前,最低 0);内置公会 `guild=2`、头衔 `title=3`;新增 `api_register_chat_prefix` / `api_set_player_chat_prefix` 供其它插件注册槽位并设置玩家前缀文本 ### v0.9.48 - ✅ **主菜单按钮优先级与外部注册 API**:内置按钮硬编码优先级(签到 0/99,其余从 3 起);同优先级按文本排序;新增 `api_register_main_menu_button` / `api_unregister_main_menu_button`;移除核心对股票/商店/枪战/DTWT/PvP KD/DMZ 等的硬编码入口,改由各插件自行注册 - ✅ **游戏内死亡播报开关**:新增 `ENABLE_DEATH_BROADCAST`(默认 `True`),可在 OP 配置面板「通用」中关闭;与群聊 `QQ_DEATH_BROADCAST_MODE` 独立 ### v0.9.47 - ✅ **自杀改回单次 `/kill`**:不再循环抽血;杀不死再另说 ### v0.9.46 - ✅ **对接 DMZ**:主菜单在检测到 `dmz` 插件时显示「开放世界PVE搜打撤模式」,打开 `/dmz` 菜单(v0.9.48 起改为 DMZ 插件自行 `api_register_main_menu_button`) - ✅ **自杀曾改为多次抽血+kill**(v0.9.47 已改回单次 kill) ### v0.9.42 - ✅ **移除共享文件跨服同步**:删除 `*_DATABASE_PATH` 配置与 `legacy_recovery` 一次性导入;跨服仅支持 SyncServer + SyncClient 网络后端 ### v0.9.41 - ✅ **传送倒计时改用屏幕 title**:Home / Warp / TPA / 死亡回归 / 随机传送倒计时改为屏幕中央大数字 + 字幕提示,不再刷聊天栏 ### v0.9.40 - ✅ **修复同步主线程假死**:关服侧边栏不再写失效 Player ### v0.9.38 - ✅ **修复定时任务 purecall 崩服**:新增 `run_player_task` / `run_two_player_task` / `_resolve_online_player`;传送倒计时(45 tick)、进服延迟任务、领地边界粒子分批任务均改为闭包只存 xuid/name、回调时重取在线玩家;玩家退出时取消未完成的粒子任务 ### v0.9.37 - ✅ **条件头衔稀有度修正**:首富等自动授予头衔按定义取最高稀有度(首富为「传奇」);同持有者迁移时同步升级佩戴与解锁记录 ### v0.9.36 - ✅ **生物显示名翻译修复**:死亡播报等处 `minecraft:skeleton` 类类型 ID 可正确解析为中文;`entity.ns:id.name` 与 `entity.ns.id.name` / `ns:id` 互通查找 - ✅ **补全 entity_display_name.txt**:原版与常见模组双格式条目(`entity.*.*.name` + `ns:id`),避免空键挡住翻译 ### v0.9.35 - ✅ **迎新文案/指令改内存缓存**:`newbie_welcome.txt`、`newbie_commands.txt` 启动与 OP 重载时读入内存;进服欢迎、新手引导面板、API 不再每次读盘。公告 `broadcast.txt` 原本已是内存轮播。 ### v0.9.34 - ✅ **主线程减负**:侧边栏调度改为每 5 tick,到期玩家小顶堆取代全员扫描;金钱/头衔/公会改后台缓存 - ✅ **天眼异步落库**:事件只入内存队列,SQLite 由后台线程写入;主手物品按玩家缓存,避免反复 `item_in_main_hand` - ✅ **活动统计批量写库**:方块破坏/放置先内存累加,定时刷盘 - ✅ **领地 chunk LRU 缓存**:`get_land_at_pos` / 爆炸判定复用区块结果;领地粒子边界分 tick 发送 ### v0.9.33 - ✅ **统一领地权限检查** `check_land_permission`:破坏/放置/方块交互/实体交互/攻击/展示框/爆炸共用;`ENABLE_LAND_SYSTEM=False` 或坐标无领地时直接跳过领地部分 - ✅ **领地系统关闭时**不再做爆炸拦截、生物生成拦截、仅领地可放置方块等领地相关判定 ### v0.9.32 - ✅ **侧边栏进服 tick 错峰**:记录玩家进服 tick,调度每 1 tick 仅刷新到期玩家,自然分散负载;单人周期仍为 `SIDEBAR_REFRESH_TICKS` - ✅ **领地系统总开关**:新增 `ENABLE_LAND_SYSTEM`;关闭时不启位置追踪线程(无进出领地提示),OP 面板可配 ### v0.9.31 - ✅ **侧边栏键值不再即时重绘**:`set_value` / `set_values` 恢复为只写缓存,由定时 tick 按 `SIDEBAR_REFRESH_TICKS` 渲染 ### v0.9.30 - ✅ **修复侧边栏数值延迟十几秒才更新**:分片桶数与调度周期叠乘导致单人刷新周期被平方;调度固定每 10 tick,桶数 = refresh_ticks/10 - ✅ **刷新周期可配 1 秒**:移除 `SIDEBAR_REFRESH_TICKS=20` 被静默改回 60 的限制;OP 面板改配置后热重载即生效 ### v0.9.29 - ✅ **侧边栏纯定时刷新**:去掉进出服、金钱变动、插件 `set_value` 的事件重绘;约 3 秒 tick 按 xuid 分批渲染,降低单 tick 峰值;`/sidebar on|off|next|prev|lock` 仍即时响应 - ✅ **进服/离服减负**:`on_player_join` 头衔、时长、邀请提示、天眼、侧边栏分帧延迟执行;离服天眼与时长结算延后 1 tick,避免同帧阻塞主线程 ### v0.9.28 - ✅ **天眼查询增强**:玩家名默认模糊匹配;`action` 支持 `death`/`pvp`/`pve`/`combat` 等别名与 PvP 细分;可不传玩家名按事件类型查全服;展示区分 PvP 攻击/死亡与攻击生物 ### v0.9.27 - ✅ **PvP KD 排行榜插件适配**:检测到 `arc_pvp_kd` 时在主菜单显示「PvP KD 排行榜」入口,委托 `/kd` 打开玩家个人榜单 Form(原 `arc_hunter` / `/hunter` 已弃用) ### v0.9.26 - ✅ **修复侧边栏崩溃服务器**:`Objective.setDisplay` 改为每个 objective 只调一次;标题变化改 `display_name` 不再 `unregister` 重建;看板对象全程强引用,仅下线释放;进服延迟 `SIDEBAR_JOIN_DELAY_TICKS`(默认 40)后再写显示槽 ### v0.9.25 - ✅ **侧边栏事件驱动刷新**:默认去掉生命/饱食;`SIDEBAR_REFRESH_TICKS` 默认 60(约 3 秒)只刷时间/TPS/延迟;金钱写库成功、进出服更新在线、插件 `set_value` 时触发刷新(旧配置 20 自动迁到 60) ### v0.9.24 - ✅ **侧边栏 TPS/延迟改为 3 秒取样**:去掉延迟 10ms 量化;TPS、MSPT、ping 每 3 秒取一次,其它行仍按 `SIDEBAR_REFRESH_TICKS` 刷新 ### v0.9.23 - ✅ **修复文件同步模式下头衔迁移跨库删表**:`title_definitions` 等表重建改为 `rebuild_table_copy`(同连接事务 + VACUUM 备份),避免临时表落子服本地库、`DROP` 却打到主服共享库导致定义表丢失;启动前后校验表存在;对路由表 `DROP` 打 warning ### v0.9.22 - ✅ **备份库按 xuid 合并 `player_basic_info`**:主库缺表时先建表;按 xuid 插入/补空(密码、真实 uuid、名字),不覆盖已有密码;可从旧 `ARCCore.db` 备份恢复账号 ### v0.9.21 - ✅ **修复跨库 DDL 误删 `player_basic_info`**:重建表时临时表不再落到默认库,避免共享库真表被 DROP;不可逆重建前 `VACUUM INTO` 备份,事务内行数校验失败则回滚 - ✅ **一次性数据恢复**:主服配置 `LEGACY_IMPORT_DATABASE_PATHS` 可把旧共享库里的经济/头衔/公会导回,并用天眼/本服表重建 `player_basic_info`(无备份时密码需玩家重设) - ✅ **推荐纯网络同步**:主服开同步中心、子服 `ENABLE_SYNC_CLIENT`,清空四个 `*_DATABASE_PATH`;两种模式同时开时打 WARN ### v0.9.20 - ✅ **修复侧边栏导致客户端闪退**:不再每秒双缓冲销毁/重建 objective;改为复用稳定 `arc_sb` 并原地更新/清理行;假名截断至 40 字符;TPS/延迟按较低频率取样,降低发包频率 ### v0.9.19 - ✅ **跨服排行改用 `once_op`**:`player_basic_info` 去掉镜像 `is_op`,改为粘性 `once_op`——任意服以 OP 登录过即置 1、卸任不回落;首富/金钱榜排除读此列。本服权限仍只看 `player_local_info.is_op` - ✅ **启动迁移**:旧 `basic.is_op=1` 与本服 `local.is_op=1` 自动写入 `once_op`,并重建表去掉旧列 ### v0.9.18 - ✅ **修复全量同步超时**:连接阶段 TCP 粘包缓冲保留半包;等待 `FULL_SYNC_RESPONSE` 时消化穿插的 PUSH/心跳,避免帧错位后 `title_definitions` 等表 `timed out` - ✅ **全量同步期间不推送**:从服首心跳前 `accepts_push=False`,避免认证后立刻广播打断 request/response - ✅ **全量读库锁缩短**:同步中心 `_full_sync_lock` 只包住 SELECT,不再在 `sendall` 期间堵住其他从服;单表等待超时提到 120s ### v0.9.17 - ✅ **修复共享库 DDL 路由**:`CREATE` / `ALTER` / `DROP` / `PRAGMA table_info` 按表走 `PLAYER_*_DATABASE_PATH`,不再误改子服本地库;避免「提示已加 is_op 列、写共享库仍缺列」刷屏 - ✅ **同步落库容忍列差**:`insert` / `upsert` / `update` 自动忽略目标表不存在的列(如远端多出的 `is_op`、误带的 `money`),避免网络同步协议服刷 `no column named …` - ✅ **本服表缺列补齐**:`player_local_info` 启动时补加 `is_op` 等遗漏列 ### v0.9.16 - ✅ **连接即全面对账**:远程客户端每次连上同步中心,在全量拉取后自动把本地已启用同步表整表上行 - ✅ **OP 一键对账**:配置面板点「跨服同步」即发起全面对账并显示状态,去掉多余确认步骤 ### v0.9.15 - ✅ **猎手榜插件适配**:检测到 `arc_hunter` 时在主菜单显示「猎手榜」入口,委托 `/hunter` 打开玩家个人榜单 Form ### v0.9.14 - ✅ **跨服上行可靠投递**:子服本地写库先入 `sync_outbox`,断线不丢;重连先全量拉取再按序重放;协议升至 v3,数据操作响应带 `seq` ack(旧中心降级为发出即成功) - ✅ **修复数据操作响应类型**:`INSERT/UPDATE/DELETE_RESPONSE` 不再误用 `ERROR_RESPONSE`,客户端可确认上行成败 - ✅ **条件头衔权威服**:新增 `CONDITIONAL_TITLE_AUTHORITY`;文件模式子服默认不再与主服双算首富 - ✅ **首富排除 OP**:`player_basic_info` 增加跨服 `is_op` 镜像列,榜一查询不再依赖本服独有的 `player_local_info` - ✅ **OP 对账与状态**:核心设置 → 跨服同步 → 同步运行状态 / 立即对账(头衔) ### v0.9.13 - ✅ **核心库过时表清理**:启动时将旧 `player_achievement_stats` 的击杀/破坏/放置键迁入 `player_activity_stats` 后删除旧表;同步 DROP `richest_title_state`、`player_title_extra`、`player_achievement_unlocked`、`migration_history`(数据已迁至条件头衔表 / 成就插件本地库) ### v0.9.12 - ✅ **群聊死亡播报对接修复**:正确查找 `arc_qq_sync_astrbot`(Endstone 将 entry-point `-` 转为 `_`);原始文本优先 `api_send_raw` - ✅ **群聊死亡播报模式**:新增配置 `QQ_DEATH_BROADCAST_MODE`(`off` / `pvp` / `all`,默认 `all`),可在 OP 配置面板「通用」中调整 ### v0.9.11 - ✅ **玩家活动统计**:本服表 `player_activity_stats` 记录击杀(含玩家)、破坏/放置方块累计;只读 API 供成就等插件查询;旧 `player_achievement_stats` 的 `kill_*` 自动迁移 ### v0.9.10 - ✅ **天眼战斗留档增强**:攻击记录伤害量、受击前/后血量、最大血量、伤害类型;PvP 附带被打方装备与附魔;死亡记录全身装备与背包摘要;主手物品格式含附魔(如 `netherite_sword{sharpness:5}x1`) ### v0.9.9 - ✅ **Toast 图标微调**:默认 Windows;公会 剑;账户 护甲;传送 智能体;小喇叭 阅读 ### v0.9.8 - ✅ **Toast 标题加基岩字形图标**:金钱、领地、传送、账户、邀请、公会、Home、小喇叭 等;语言文件未含字形时也会自动补到标题最前 ### v0.9.7 - ✅ **重要提示改用 toast**:金钱变动、转账、领地创建/买卖/移交/授权、传送请求与结果、注册、公会创建、邀请奖励、Home、小喇叭等走 `send_toast`;保护拦截、击杀奖励等仍用聊天栏 - ✅ **`/tpa accept` / `/tpa deny`**:快速响应最近一条 TPA/TPHERE 请求(弹窗仍可用) - ✅ **头衔支持同名不同稀有度**:`title_definitions` / 解锁 / 佩戴以 `(title, rarity)` 为完整标识;`api_has_title_definition` / `api_unlock_title` 等 API 按名称+稀有度匹配 ### v0.9.6 - ✅ **头衔解锁不再发奖**:`api_unlock_title` / `api_unlock_title_by_xuid` 只负责解锁与自动佩戴;金钱/物品改由成就等业务插件发放。新增 `api_has_title_definition` - ✅ **进出领地提示改用 tip**:进入/离开领地由 `send_popup` 改为 `send_tip`(屏幕下方快捷栏上方),避免挡视野 ### v0.9.5 - ✅ **允许圈地开关**:新增本服独立配置 `ALLOW_LAND_CLAIM`(默认 `True`,不随主服同步);关闭后隐藏「创建新领地」并拦截 `/land` 与新建确认,管理与调整已有领地范围不受影响 ### v0.9.4 - ✅ **侧边栏灰橙配色**:重点色由 §b 改为 §6(橙金);标题/TPS 等强调项同步 ### v0.9.3 - ✅ **侧边栏主页面**:默认不再显示 MSPT,仅保留 TPS ### v0.9.2 - ✅ **侧边栏配色与排版**:§8/§7/§f/§b 四色约定;去掉加粗与空隙标题;主页顺序改为时间→性能→在线/延迟→生命/饱食→金钱;时间仅显示 `HH:MM` ### v0.9.1 - ✅ **侧边栏主页面**:新增 TPS / MSPT、在线人数上限、玩家延迟(`{tps}` `{mspt}` `{max_players}` `{ping}`) ### v0.9.0 - ✅ **侧边栏总控系统**:原生计分板多页面、默认 10 秒翻页、每玩家独立数据与开关偏好 - ✅ **核心主页面**:现实时间、金钱、生命、饱食度、在线人数等;模板与标题可配置 - ✅ **对外 API**:`api_sidebar_register_page` / `api_sidebar_set_value(s)` 等,供真实生存等插件注册页面并推送键值 - ✅ **玩家命令**:`/sidebar`(`/sb`)开关、翻页、锁定、列表;OP 面板新增「侧边栏」配置分组 [/MD]
[MD] ### v0.8.5(当前版本) - ✅ **公共领地拦截生物生成修复**:原先仅取消 EndStone `Mob` 类型,模组生物常被包成普通 Actor 因而漏拦。开启 `block_actor_spawn` 后改为取消该公共领地内**除玩家外的全部实体**生成 - ✅ **跨服玩法配置以主服为准**:远程客户端按已开启的同步类别,从同步中心拉取并覆盖对应 `core_setting.yml` 项(初始金钱、公会升级消耗、签到存款、传送/圈地价格等)。主服改配置或重载后推送;从服本地修改这些键会被主服覆盖。共享文件模式不自动同步配置 - ✅ **公会 API 补齐**:按公会 id / 玩家 xuid 查询与单独增减公共、私人贡献点(`api_get_player_guild_id`、`api_get_guild_info`、`api_get_guild_total_contribution`、`api_change_guild_total_contribution`、`api_get_member_guild_contribution`、`api_change_member_guild_contribution`、`api_list_guild_members`) - ✅ **其它系统对外 API**:经济 / 头衔 / 领地 / 传送 / 玩家解析统一支持 **xuid**;新增 `api_adjust_player_money`、财富排名、头衔列表与佩戴查询、玩家/公会领地、静默领地权限检查、坐标/Home/Warp 传送、`api_get_player_name_by_xuid` 等。旧签名保持兼容 [/MD]
[MD] ### v0.8.2(当前版本) - ✅ **公共领地三级优先级**:`lands.public_priority`(1/2/3,**3 最高**,默认 1)。高优先级公共可覆盖低优先级;同级不可重叠。位置生效顺序:**私人/公会 > 公共(3>2>1)**;私人子领地仍先于父领地。创建公共领地时 OP 选择等级;OP 公共领地设置可改级(升高时校验冲突) - ✅ **公共领地拦截生物生成**:`block_actor_spawn`(默认关闭);开启后经 `ActorSpawnEvent` 取消该公共领地内 `Mob`(不含玩家)生成 - ✅ **传送点校验修复**:设置领地传送点改为按目标领地三维 AABB(含维度/Y)判定,不再用「脚下生效领地 ID」比较,避免嵌套私人地/高层公共覆盖时误报「不在领地内」 - ✅ **领地外接 API**:`api_if_position_in_land` 适配三维 Y、维度规范化与多层生效;新增 **`api_resolve_land_at_position`**、**`api_list_lands_at_position`**。维度支持规范 ID(如 `minecraft:overworld`)及自定义维度 - ✅ **跨维传送指令修复**:`/execute in` 对原版三维度使用短名(`overworld` / `nether` / `the_end`),去掉 `minecraft:`;自定义维度仍使用完整 `namespace:dimension_identifier` - ✅ **版本号方案**:历史版本号由 `0.0.x` 调整为 `0.x`(如原 `0.0.8.1` → `0.8.1`) ### v0.8.1 - ✅ **跨服数据同步**:游戏服 **远程客户端**(**`ENABLE_SYNC_CLIENT`**)与 **共享文件路径**(**`PLAYER_DATABASE_PATH`** 等)**互斥**;远程模式支持分项开关 **`SYNC_CLIENT_SYNC_PLAYER` / `_ECONOMY` / `_TITLE` / `_GUILD`**。新增 **`sync_client.py`**、**`sync_config.py`**;同步中心 **`ENABLE_SYNC_SERVER`** 可选开启。详见上文「跨服数据同步」 - ✅ **爆炸监听修复**:修复 **`ActorExplodeEvent`** 在 **`BLOCK_ALL_EXPLOSIONS=False`** 时按领地保护的流程错误。改为用 **`block.x/y/z`** 直接取坐标;对需保留方块通过 **`get_block_at`** 重建 **`block_list`** 再写回;写回失败时回退为取消整次爆炸 [/MD]
[MD] ### v0.0.4.2 (当前版本) - ✅ **每日签到机制** - 数据库字段:`total_checkin_count`(累计次数)、`last_checkin_at`(最近一次签到时间,用于当日排序) - 随机物品条数:支持每日在 `CHECKIN_REWARD_PICK_MIN`~`CHECKIN_REWARD_PICK_MAX` 之间随机;未配置区间时仍可读旧项 `CHECKIN_REWARD_PICK_COUNT` - 签到成功后全服广播:完成提示 + **今日签到先后**(人数少时列全员;人数多时拆成「最早前 10」「最晚前 10」)+ **累计签到榜前 10** - ✅ **签到排行榜展示**:聊天侧将标题与各名次 **分行广播**,语言文件中名次分隔改为换行,避免一长串顿号连在一起 - ✅ **OP 签到管理页**:入口总览当前存款、随机条数区间、奖励池条目数;**存款与随机条数** 使用弹窗表单一次保存;**物品奖励列表** 为编号列表,可逐条进入 **编辑 / 删除(含确认)** 或 **新增** 条目,无需手改 JSON - ✅ **玩家间传送请求**:TPA / TPHERE 发起后,目标玩家 **自动收到 Modal 弹窗**,可一键同意或拒绝(仍保留聊天提示与菜单内「处理待处理请求」) [/MD]
[MD] ### v0.0.4.1 - 🔧 **随机传送缓降时长**:随机传送落地后给予的缓降(羽落)效果由 **10 秒** 调整为 **30 秒**(`/effect ... slow_falling`)。 - 🐛 **按玩家名解析 XUID(跨版本 / 插件导致名称大小写不一致)** - **现象**:与其它版本或第三方插件混用后,运行时传入的玩家名可能被规范为**全小写**(或带首尾空白),而数据库 `player_basic_info.name` 中仍为进服时写入的原始大小写;原先用 `name = ?` 做精确匹配时,SQLite 对英文**区分大小写**,会查不到行,导致 `get_player_xuid_by_name` 返回空,进而经济扣款、对外 API 加减款、传送扣费等依赖「名字 → XUID」的路径失败(例如错误码 `BANK15` / `BANK16`)。 - **修复**:优先在**在线玩家列表**中按「去空白 + 大小写不敏感」匹配名称得到 XUID;否则对数据库使用 `LOWER(TRIM(name))` 与参数做同等规范化后再匹配;`get_offline_player_op_status` 等与「按名查库」相关的逻辑已统一走上述解析。 [/MD]
[MD] ### v0.0.4.0 - ✅ **成就系统** - 新模块 `AchievementSystem.py`:击杀/破坏统计、成就条件表、达成记录;OP 面板「成就管理」可配置条件并联动头衔解锁与奖励 - ✅ **财富榜首富头衔** - 配置 `RICHEST_TITLE_NAME`;金钱变动后刷新财富榜第一;首富易主时撤销旧头衔并授予新首富;离线玩家通过 xuid 写入解锁记录 - ✅ **头衔体验** - 解锁头衔时若当前未佩戴任何头衔,自动佩戴新头衔;`PlayerDeathEvent` 与 `ActorDeathEvent` 分离为独立事件处理函数,避免原方法名冲突 - ✅ **每日签到** - `last_checkin_date`、存款与加权随机物品;主菜单「每日签到」;OP「签到配置」 - ✅ **击杀生物金钱奖励** - `kill_reward.txt`;未配置类型自动追加 `=0`;金额大于 0 才提示;显示名与 `entity_display_name.txt` 联动 - ✅ **OP 面板重构** - 入口顺序:重载配置 → 工具 → 经济管理 → 领地管理 → 传送管理 → 成就管理 → 签到配置 → 邀请奖励 → 头衔管理 - 传送管理:公共 Warp 管理 + 传送参数表单(原传送菜单内 OP 管理入口已移至此处) - 领地管理、工具二级菜单;经济管理含在线加减款与经济参数(初始存款、排行榜隐藏 OP、首富头衔名) - ✅ **配置与重载** - OP 重载时同步 `entity_display_name.txt`、`kill_reward.txt` [/MD]
[MD] ### v0.0.2.2 - ✅ **三维领地与圈地流程** - 领地改为三维:创建时输入 min/max X/Y/Z,按体积(方块数)× 地价计费;默认地价 100/格,新玩家免费格子 1000 - 命令 `/landpos1`、`/landpos2` 记录两点 XYZ 并自动排序为最小/最大坐标,粒子显示立方体边界,可用 `/landbuy` 或 UI 购买 - 创建领地表单支持预填/修改坐标,提交后显示体积与费用,可「重新选择坐标」或购买 - 数据库 `lands` 新增 `min_y`、`max_y`,旧数据迁移为 0~255;重叠检测先判 Y 再判 XZ - ✅ **子领地系统** - 领地主人可在领地详情中「管理子领地」:创建三维子领地、重命名、删除、管理授权 - 子领地不得超出父领地、不得与同父下其他子领地重叠;交互/破坏时先判子领地权限,再判父领地 - 公共领地无子领地入口(私人领地才支持子领地) - ✅ **公共领地「允许圈私人领地」** - 公共领地设置中新增「允许圈私人领地」开关(OP 在公共领地设置里配置) - 开启后,圈地重叠检测会忽略该公共领地,玩家可在其内购买私人领地;同一位置优先按私人领地权限判定 - ✅ **领地数据与退款** - `owner_paid_money` 仅在建表升级**首次添加该列**时按面积×地价回填;列已存在绝不重算(修复此前因 `execute()` 吞异常导致每次启动重算的 bug,改用 `_column_exists` 判断) - 领地设为公共领地时自动将 `owner_paid_money` 置为 0 - ✅ **创建领地重叠提示** - 与已有领地重叠时,提示「与以下领地重叠:#ID 名称, …」 - ✅ **OP 领地与区块** - OP 面板「管理脚下领地」:直接取脚下私人领地并进入该领地管理 - OP 领地详情中「强制删除领地」:私人领地全额退款给主人,公共领地无退款 - OP 面板「重建领地区块映射」:删除所有 `chunk_lands_*` 表后按当前 `lands` 表重新生成,便于在数据库里改领地边界后一键同步 - 区块映射逻辑抽成 `_register_land_to_chunk_mapping`,创建领地与重建映射共用 - ✅ **OP 执行指令** - 输入框留空并确定时执行**上一条指令**;输入框不再预填上次命令,保持空白 ### v0.0.2.1 — 全新小版本 - ✅ **我的信息 & 邀请系统** - 主菜单新增「我的信息」按钮,展示:名字、XUID、存款、领地数、剩余免费领地格子、邀请人、待领取邀请奖励次数 - 数据库 `player_basic_info` 新增 `inviter_xuid`(邀请人)、`pending_invite_reward_times`(待领取邀请奖励次数) - 未填写邀请人时可「填写邀请人」;填写后当场为双方发放奖励(被邀请人即时发放,邀请人累加待领取) - 有待领取奖励时可「领取邀请奖励」;玩家上线时若有待领取会提示 - OP 面板新增「邀请奖励配置」:可设置物资(物品 ID + 数量)、金钱、免费领地格子数奖励 - ✅ **经济系统升级:金钱精确到分** - 金钱存储由整数改为 `REAL`(float),精确到分(两位小数) - 旧数据库自动升级:`player_economy.money` 从 INTEGER 迁移为 REAL - 新增 `_round_money()` / `_format_money_display()`,界面统一两位小数显示 - 转账、OP 加减款、初始金钱、邀请奖励等均支持小数;经济相关 API 返回/接受 `float` - ✅ **OP 领地管理增强** - 在「管理所有领地」中打开任意领地后,提供完整管理入口: - **传送前往**:传送到该领地传送点(不扣费) - **强制修改领地名称**:任意领地均可修改名称(不限于公共领地) - **管理授权**:添加/移除授权玩家,与领地主人的授权管理逻辑一致 - 公共领地仍保留「公共领地设置」「设为公共领地」等入口 - ✅ **公共领地白名单保护生物** - 配置项 `PUBLIC_LAND_PROTECTED_ENTITIES`:逗号分隔的生物类型 ID(如 `minecraft:villager,minecraft:iron_golem`) - 公共领地内:若「禁止生物伤害」则一律拦截所有生物伤害;若「开放生物伤害」则仅保护白名单内生物,其他生物可被伤害 - 设为公共领地时默认开放:方块互动、生物互动、生物伤害 - ✅ **OP 重载配置** - OP 面板新增「重载配置」按钮,可立即重新载入: - 配置文件(`core_setting.yml`)并重新应用缓存项(领地价格、传送费用、公告间隔等) - 广播列表(`broadcast.txt`) - 语言文件(当前语言) - 迎新指令/迎新文案在下次新人进服时自动使用最新文件;公告与清道夫间隔变更需重启服务器后生效 - ✅ **执行指令记住上次命令** - 每位 OP 执行过的指令会记录为「上一次命令」 - 执行指令面板输入框默认显示上次命令;留空直接确定则使用当前记录点(@p1/@p2)重复执行上次命令 - 便于重复执行 fill 等命令:选点后直接点执行即可 [/MD]
[MD] - ✅ **金钱管理 UI 重构** - 更安全便捷的管理方式 - 将 `addmoney` 和 `removemoney` 命令改为 UI 菜单形式 - 集成到 OP 面板,仅管理员可访问 - 三步式操作流程:选择操作类型 → 选择玩家 → 输入金额 - 选择玩家时显示当前余额,方便操作 - 完整的输入验证和错误提示 - 移除了命令形式,提升安全性 [/MD]
[MD] - ✅ **随机传送系统** - 全新的探险功能 - 可配置的随机传送中心点和半径 - 在指定范围内随机生成传送坐标 - 自动附加10秒羽落效果,防止玩家摔死 - 配置项:`ENABLE_RANDOM_TELEPORT`(开关)、`RANDOM_TELEPORT_CENTER_X/Z`(中心点)、`RANDOM_TELEPORT_RADIUS`(半径) - ✅ **传送付费系统** - 灵活的经济控制 - 支持所有传送类型独立收费配置 - 公共传送点收费 (`TELEPORT_COST_PUBLIC_WARP`) - 私人传送点收费 (`TELEPORT_COST_HOME`) - 领地传送收费 (`TELEPORT_COST_LAND`) - 死亡地点传送收费 (`TELEPORT_COST_DEATH_LOCATION`) - 随机传送收费 (`TELEPORT_COST_RANDOM`) - 玩家互传收费 (`TELEPORT_COST_PLAYER`) - 传送前自动检查余额,余额不足时阻止传送 - 传送按钮自动显示费用(仅当费用>0时) - 设置为0表示免费传送 [/MD]
[MD] - ✅ **死亡消息系统升级** - 全新的死亡通知机制 - **幽默死亡原因翻译** - 为各种死亡原因添加了有趣的翻译 - 摔落 → "验证了牛顿第一定律" - 溺水 → "明白了学游泳的重要性" - 岩浆 → "体验了岩浆浴" - 火焰 → "玩火自焚" - 以及其他各种死亡原因的幽默翻译 - **维度名称本地化** - 自动翻译维度名称 - Overworld → 主世界 - Nether → 下界 - TheEnd → 末地 - **生物攻击者显示** - 显示导致玩家死亡的生物名称 - 支持显示生物名称(如"iron_golem") - 智能消息格式:被生物杀死时显示"被 XXX 杀死了" - **消息格式优化** - 三种灵活的消息格式 - 基础死亡消息(无原因) - 包含死亡原因的消息 - 包含生物攻击者的消息 - **LanguageManager集成** - 使用统一的语言管理器 - 所有翻译条目通过语言文件管理 - 支持动态扩展新的死亡原因翻译 - **QQ群集成** - 自动发送死亡消息到QQ群 - 游戏内和QQ群同步显示死亡信息 - 支持完整的死亡信息格式化 - **代码兼容性修复** - 修复字符串格式化问题 - 统一使用单引号包裹f-string,双引号用于内部字符串,提升代码兼容性,支持了低于Python3.13版本的Python环境 [/MD]
后退
顶部 底部