Repository navigation
Releases
MobInteract 1.4.0
中文
1.4.0 是一次「按审计报告大扫除」:修掉 2 个致命、11 个高危,加上一批中低问题的收口。
致命
plugin.yml的version/api-version改成字面量。之前依赖 Maven 资源过滤,一旦拿到的 jar 没经过过滤,服务端解析 api-version 会抛NumberFormatException,插件根本不加载。- 怪物挖方块现在会触发
BlockBreakEvent:WorldGuard、CoreProtect、领地插件终于能看见并拦住它。同时掉落改用主手镐子的附魔与等级结算,石头类不再空手零掉落。
高危
- 追击打列不再永久卡死(被拒列计数有上限,满了自动清空)。
- 区块卸载、僵尸变形不再丢档案,走远回来不会重新掷骰白送方块。
- 临时方块的到期队列加锁,跨区域并发不再破坏堆结构。
- 区块键改成 record,负坐标与超大坐标不再撞 key 导致误删整批方块。
- 放置的规划与执行都做区域归属校验,跨区域读写不再每 tick 刷堆栈。
- 写入方块前复核实体占用(规划到落块之间有好几个 tick,世界会变),不再把人埋进墙里。
- 拾取只认
placement.yml里entries列出的方块:以前连钻石块都捡,15 秒后又被清理,等于静默销毁玩家财产。 - 版本比较重写:
rc10 > rc2、1.0.0-1 < 1.0.0-alpha、+build忽略、release-1.4.0能正确解析。 - 放 TNT / 倒水前检查波及范围内的保护区,不再隔着一格拆家。
中低
- 背包加锁;
/mi inspect切到怪物所在区域的线程;tab 补全按权限过滤。 /mi reload会重建档案:世界里已经生成的怪也按新配置重新掷出生装备,不用重启服务端。message.yml改写列表现在真的生效;占位符一次性替换;&A、&R这类大写颜色码也认。- 更新检查:响应体上限 512 KB,同一版本只提醒一次。
- 配置边界:
hard-cap-seconds: 0= 不设上限;block-lifetime-seconds负数按 1 秒(0 仍是永久);backpack.chance: 65按 65% 处理,不再被截成 1.0。
升级提示:直接替换 jar 重启即可。配置文件不会被覆盖;如果你之前把 hard-cap-seconds 写成 0 或把 backpack.chance 写成百分数,行为会在这一版开始符合直觉。
English
1.4.0 is a full pass over an external audit: 2 critical and 11 high-severity issues fixed, plus a batch of medium and low ones.
Critical
version/api-versioninplugin.ymlare now literals. They used to rely on Maven resource filtering; an unfiltered jar made Paper throwNumberFormatExceptiononapi-versionand refuse to load the plugin.- Mining now fires
BlockBreakEvent, so WorldGuard / CoreProtect / claim plugins finally see and can block it. Drops are resolved with the mob's actual pickaxe, so stone no longer yields nothing.
High
- Chases no longer stall forever when too many lanes have been rejected.
- Chunk unloads and zombie transformations keep the mob profile, so walking away and back no longer re-rolls free blocks.
- The temporary-block expiry queue is locked; concurrent region access no longer corrupts it.
- Chunk keys are a record now, so negative or huge coordinates cannot collide and wipe an unrelated batch.
- Placement planning and execution both verify region ownership; no more stack traces every tick.
- Entity occupancy is re-checked right before a block is written (several ticks pass between plan and write), so players no longer get walled in.
- Pickup only accepts blocks listed in
placement.yml→entries. Before, a mob would pick up diamond blocks and the 15-second cleanup would destroy them. - Version comparison rewritten:
rc10 > rc2,1.0.0-1 < 1.0.0-alpha,+buildignored,release-1.4.0parsed correctly. - TNT and fluids check the protected area within their blast / flow range before being placed.
Medium / low
- Backpack is synchronized;
/mi inspecthops to the mob's region thread; tab completion is permission-gated. /mi reloadrebuilds profiles, so mobs already in the world re-roll their equipment with the new settings.- List values in
message.ymlnow override the built-in defaults; placeholders are substituted once;&A/&Rwork. - Update checks: 512 KB response cap, one announcement per release.
- Config edges:
hard-cap-seconds: 0means no cap; negativeblock-lifetime-secondsbecomes 1 (0 still means forever);backpack.chance: 65is read as 65%.
Upgrading: drop in the jar and restart. Existing configuration files are kept as they are.
MobInteract 1.3.0
MobInteract 1.3.0
New: update checker
The plugin now tells you when a newer build is published here.
- Runs in the background — first check 60 seconds after start, then every 6 hours. Requests are fully async, the server tick is never blocked.
- Console prints one line when a new version shows up; online admins (
mobinteract.admin) get an in-game message, and admins are reminded once per restart when they join. /mobinteract updatechecks immediately.- Everything is configurable in the new
update.yml: turn it off, point it at another repository, change the interval, silence the console or the in-game notices, skip pre-releases, tweak the timeout. - It only tells you — nothing is downloaded or installed automatically; you get the version number and a link to the release page.
Upgrading
Replace the jar and restart. Your mining.yml, placement.yml, equip.yml, targeting.yml and message.yml are untouched; update.yml is written on first start with comments explaining every key.
中文
新增「检查更新」:启动 60 秒后查一次 GitHub Releases,之后每 6 小时一次,全程异步、不卡主线程。发现新版本时控制台打一行提示,在线的 OP 收到游戏内消息,OP 上线时也会被提醒一次(每次开服每人只提醒一次)。/mobinteract update 可以立刻查一次。开关、仓库地址、间隔、是否提醒、是否包含预发布版、超时全部在新的 update.yml 里。只提示,不自动下载安装,只给版本号与发布页链接。