Repository navigation
Releases: ColdTearsYY/ALInvite
Releases · ColdTearsYY/ALInvite
Release list
ALInvite 2.1.4
ALInvite 2.1.4
未绑定邀请码玩家的登录门禁增强。
新增
- 指令白名单:未绑定期间仅允许
/alinvite、/ali、/invite,其余指令全部拦截(含命名空间形式)。 - 强制旁观者模式:锁定期间自动切换到旁观者,天然规避受伤、PvP、死亡重生绕过、方块/实体交互;绑定或放行后恢复原模式(可配置回退模式
restore_gamemode)。 - 禁止聊天:锁定期间无法公屏发言。
- 禁止背包与物品:拦截打开容器/背包、物品栏点击、丢弃物品、使用物品与方块交互。
- 可选位置锁定
binding_gate.position_lock:true(默认):玩家被钉在登录位置,禁止移动与传送。false:玩家可在旁观者模式下自由移动查看,但指令/聊天/背包/物品等其余限制仍然生效。
配置项(binding_gate)
spectator_lock、restore_gamemode、position_lock、block_commands、block_chat、block_interaction,均默认开启(restore_gamemode 默认 SURVIVAL)。
兼容性
- Paper / Folia(已在 Folia 26.3 环境核对线程归属:旁观者切换与恢复均在玩家 region 线程执行,关闭位置锁后不做任何跨区域传送)。
- 构建:Java 21,Maven package 通过(单元测试全绿)。
注:本版本为代码发布,尚未在生产服务器实际部署与真人端到端验证。
ALInvite 2.1.3
ALInvite v2.1.3
邀请码可靠性
- 邀请码生成改为数据库唯一约束驱动的原子写入。
- 只有数据库写入成功后才返回并写入缓存。
- 唯一键冲突会自动异步重试,不再在重试耗尽后返回未经确认的候选码。
- 同一玩家的并发生成请求合并为同一个异步任务。
- 数据库写入失败不会再伪造成功邀请码。
隐藏开放注册池
- 管理员可执行
/alinvite admin open <数量>生成指定数量的隐藏注册码。 - 新玩家进服时自动领取一个隐藏注册码,注册码本身不会展示。
- 隐藏注册只提供进入资格,不建立邀请人关系、不消耗邀请人的个人名额,也不触发邀请奖励。
/alinvite admin close可关闭开放注册并作废尚未领取的隐藏注册码。- 隐藏注册玩家之后仍可以主动输入朋友的邀请码,建立正常邀请关系。
- 已绑定玩家和
/alinvite add预邀请玩家不会重复消耗隐藏注册码。
其他
- 保留未绑定玩家位置锁定、60 秒宽限、10 秒提醒和超时踢出。
- 保留
/alinvite add <玩家名>预邀请功能、数据库名字目录和跨服事务保护。
验证
- Maven tests: 17 passed
- Java 21 build: passed
- Artifact:
ALInvite-2.1.3.jar
ALInvite 2.1.2
ALInvite v2.1.2(fork 发布)
基于 fork v2.1.1,合并上游 v2.0.3 的 Folia 线程模型完整适配。
合并自上游(AllenLinong/ALInvite v2.0.3)
- 修复 Folia 核心下奖励命令无法执行:所有命令分发(奖励命令、菜单
console:/player:动作、权限组奖励、点券发放)统一走全局线程。 - 奖励命令占位符:
%player_name%、%player%、{player}三种写法均可用。 - 同 IP 防自邀检查不再于异步线程读取玩家连接状态。
- 权限组周期检查、LuckPerms 事件检查、管理员
checkgroup:逐玩家调度到其实体线程。 - 里程碑全服/同世界广播、跨服公告:逐玩家调度渲染+发送,不再跨区域操作玩家。
其他修复
- 修复
docs/ourTravel-???????.md非法文件名导致 Windows 无法检出仓库的问题,已重命名为docs/ourTravel-notes.md。
保留的 fork 定制
传火名额、IP 限制、返利双视图、管理员返利审计、Lophine/Folia 26.2 适配等全部保留。
适用:Minecraft 1.20.1 - 26.2(Lophine/Folia 已验证),Java 21。
ALInvite 2.1.1 — Lophine 26.2 Folia 传火邀请制
ALInvite 2.1.1
基于 fork 2.1.0 的 Lophine 26.2 / Folia 传火邀请制版本,跟进上游修复后的正式发布。
本次更新
- 跟进上游 MySQL 唯一邀请人索引创建修复,兼容 SQLite 与 MySQL 的索引幂等创建。
- 修复启动横幅从
database.yml读取实际数据库类型。 - 保留 Folia 调度、传火名额、IP 限制、返利双视图和管理员审计等 fork 定制。
- 保留并更新上游 CHANGELOG。
兼容性
- Lophine/Folia 26.2(已验证)
- Java 21 编译;测试服使用 Java 25
- SQLite / MySQL
下载与安装
下载 ALInvite-2.1.1.jar,替换服务器 plugins 目录中的旧插件后重启即可。
不要部署 original-ALInvite-2.1.1.jar,它不是 shaded 部署包。
验证
- Maven
clean test package:通过 - 14 项测试通过
- 生成物:
ALInvite-2.1.1.jar
ALInvite 2.1.0 — Lophine 26.2 Folia 传火邀请制
ALInvite 2.1.0
面向 Lophine 26.2 / Folia 的传火邀请制升级版。
主要更新
- 兼容 Lophine 26.2 / Folia 调度器,保留
folia-supported: true。 - 使用 Java 21 编译,支持测试服 Java 25。
- 新增传火邀请名额:每人初始 1 个名额,用完后每 24 小时恢复 1 个,最多积累 1 个。
- 邀请记录、邀请人数、名额扣减使用 SQLite/MySQL 事务处理。
- 增加 IP 绑定限制与跨服 IP 计数,默认每个 IP 最多成功绑定 1 次。
- 新人礼包默认包含:
- 面包 ×32
- 石镐 ×1
- 火把 ×16
- PlayerPoints ×20
- 邀请里程碑默认调整为:
- 1 人:10 点券
- 3 人:50 点券
- 10 人:200 点券
- 在线累计 24 小时自动获得
alinvite.veteran;PlaceholderAPI 不可用时回退 BukkitPLAY_ONE_MINUTE统计。 - 新增
/alinvite generate兼容别名。 - 新增管理员连带处罚:
/alinvite admin punish <被邀请人> [原因]- 保留邀请审计记录,避免重复处罚。
- 插件不会自动监听封禁,需管理员确认后手动执行。
- 增加玩家与管理员返利历史视图,以及返利到账/领取记录类型。
- 修复 Folia 下异步线程直接读取玩家状态、GUI 聊天回调、跨区域消息发送和 reload 任务残留问题。
- SQLite/MySQL JDBC 驱动随 shaded JAR 打包。
- 补充中文部署与验收文档:
docs/ourTravel-传火部署与验收.md。
依赖
可选软依赖:
- LuckPerms
- PlaceholderAPI 2.12.3+
- PlayerPoints 3.3.5+
- VaultUnlocked 与 Vault Economy provider
- Redis + MySQL(跨服场景)
缺少可选依赖时,插件保留降级行为;点券/权限/外部占位符功能需要相应插件实际安装。
白名单重要说明
原生 white-list=true 会在玩家进入服务器之前拦截不在白名单中的新人。ALInvite 无法让尚未进入服务器的新人仅凭邀请码完成首次登录。
请使用代理层门禁/激活码、临时关闭原生白名单,或预先导入测试账号。绑定成功后的 whitelist add 登记只对后续连接生效。
验证
- Maven
clean test package:通过,13 项测试通过。 - Lophine 26.2 / Folia / Java 25:插件加载、SQLite 初始化、Folia 调度识别和服务器启动完成均通过。
- 已联调 LuckPerms 5.5.71、PlaceholderAPI 2.12.3、PlayerPoints 3.3.5 的插件加载与命令注册。
发布资产
ALInvite-2.1.0.jar:部署用 shaded JAR。- 不要部署
original-ALInvite-2.1.0.jar。