1快速开始
3 步完成安装,5 分钟即可上手。适用于 Minecraft 1.12.2(Paper / Spigot)。
环境要求
| 项目 | 要求 |
|---|---|
| 服务端 | Paper 或 Spigot 1.12.2 |
| Java | Java 8(推荐)或 Java 17/21(需加 --add-opens 参数) |
| 内存 | 建议 ≥ 2GB |
| 依赖插件 | 无硬性依赖,可选 XlandCore / 假人插件 / XlandStop |
安装步骤
-
编译打包
使用 Maven 编译:mvn clean package,生成InTheNameOfLinux.jar。 -
放入插件目录
将 jar 文件放入服务器plugins/目录。 -
启动服务器
首次启动会生成默认配置,控制台应输出"首次初始化登录密码"。 -
登录验证
保护对象(默认Linux582021)进服后,输入/linux login,然后在聊天栏发送初始密码password。 -
修改密码
登录成功后,执行/linux chargepw <新密码>修改密码(至少 6 位)。
务必第一时间修改密码
初始密码
password 是明文公开的,未修改前任何人都可以登录。
为什么密码要在聊天栏输入?
因为
/linux login 密码 这种形式会被服务端日志记录(Minecraft 原生行为)。而聊天栏消息会被插件拦截,控制台和日志完全看不到密码。
2命令详解
登录相关
| 命令 | 说明 | 权限 |
|---|---|---|
/linux login |
进入密码输入模式,在聊天栏发送密码即可验证身份 | 仅 Linux582021 |
/linux chargepw <新密码> |
修改登录密码(需先登录,至少 6 位) | 仅 Linux582021 |
封禁相关
| 命令 | 说明 | 权限 |
|---|---|---|
/ban <玩家> [原因] |
永久封禁玩家账号 | ban |
/tempban <玩家> <时间> [原因] |
临时封禁,到期自动解封 | tempban |
/banip <玩家/IP> [原因] |
封禁 IP 地址,同 IP 玩家会被踢出 | banip |
/unban <玩家> |
解封玩家(同时删除最近一条封禁历史) | unban |
/unbanip <IP> |
解封 IP | unbanip |
功能封禁(协管可用)
| 命令 | 说明 | 权限 |
|---|---|---|
/linux banblock <玩家> [时间] [原因] |
禁止方块交互(挖掘、放置、交互) | 协管 |
/linux banmove <玩家> [时间] [原因] |
禁止移动,玩家会被冻结在原位置 | 协管 |
/linux banmsg <玩家> [时间] [原因] |
禁言,拦截聊天、私聊、/say 等 | 协管 |
/linux banall <玩家> [时间] [原因] |
以上三者合一,全面封禁 | 协管 |
/linux unbanblock <玩家> |
解除方块交互禁用 | 协管 |
/linux unbanmove <玩家> |
解除移动禁止 | 协管 |
/linux unbanmsg <玩家> |
解除禁言 | 协管 |
/linux unbanall <玩家> |
解除所有功能封禁 | 协管 |
查询与信息
| 命令 | 说明 | 权限 |
|---|---|---|
/linux lookup <玩家/IP> |
查询 UUID、IP、身份、游玩时长、封禁历史 | lookup |
/linux seenip <IP> |
查询使用过该 IP 的所有玩家 | lookup |
/linux history <玩家> |
查看玩家完整封禁历史 | history |
/linux clearhistory <玩家> |
清除玩家全部历史(需二次确认) | clearhistory |
/banlist |
查看所有封禁记录(账号 + 功能) | ban |
/linux op [list] |
检查自己身份 / 列出所有管理员 | lookup |
时间格式
10s # 10 秒
5m # 5 分钟
1h # 1 小时
1d # 1 天
1w # 1 周
1d12h # 1 天 12 小时(组合)
1w2d3h30m # 1 周 2 天 3 小时 30 分钟
支持单位:s(秒)、m(分钟)、h(小时)、d(天)、w(周)。可以组合使用。
3权限说明
插件使用三级权限体系:OP / 协管 / 普通玩家。
| 权限节点 | 说明 | 默认 |
|---|---|---|
inthenameoflinux.reload |
重载配置、修改拦截列表、开关控制台拦截 | OP |
inthenameoflinux.ban |
使用 /ban /xlban /banlist | OP |
inthenameoflinux.tempban |
使用 /tempban | OP |
inthenameoflinux.banip |
使用 /banip | OP |
inthenameoflinux.unban |
使用 /unban | OP |
inthenameoflinux.unbanip |
使用 /unbanip | OP |
inthenameoflinux.lookup |
使用 /linux lookup / seenip / fp | OP |
inthenameoflinux.history |
使用 /linux history | OP |
inthenameoflinux.clearhistory |
使用 /linux clearhistory | OP |
inthenameoflinux.penalty |
完整惩罚权限(banblock / banmove / banmsg / banall 等) | OP |
inthenameoflinux.moderator |
协管权限节点(XlandCore 未加载时的回退) | 否 |
协管说明
- 协管身份优先从 XlandCore 读取(身份 = "协管")。
- 如果 XlandCore 未加载,则回退到权限节点
inthenameoflinux.moderator。 - 协管可用 8 个功能封禁命令,不能使用账号封禁(/ban、/tempban、/banip)。
- 协管封禁时长上限为 7 天,不能执行永久封禁。
- 协管的帮助菜单和 TAB 补全只显示可用命令。
OP 优先原则
如果玩家同时是 OP 和协管,插件会将其识别为"完整管理员",显示完整帮助。
4配置说明
所有配置都在 plugins/InTheNameOfLinux/config.yml,修改后执行 /linux reload 即可生效(无需重启)。
关键配置项
| 配置项 | 默认值 | 说明 |
|---|---|---|
protected-player |
Linux582021 | 重点保护的玩家名 |
blocked-player |
fs1 | 突破拦截时的代理玩家 |
appeal-group |
925200745 | 封禁踢出消息里的申诉群号 |
broadcast-ban |
true | 是否全服广播封禁消息(false 只广播给管理员) |
refuse-enabled |
true | 全局命令拦截开关 |
console-cmd-enabled |
false | 控制台对保护对象命令的拦截开关 |
fs1-refuse-enabled |
true | 突破 fs1 拦截功能开关 |
penalty-sync.interval-seconds |
60 | 功能封禁缓存与文件对齐间隔 |
data-save.interval-seconds |
30 | 数据文件批量写盘间隔 |
登录配置
login:
password-salt: "" # 自动生成,勿改
password-hash: "" # 自动生成,勿改
min-length: 6 # 密码最短长度
fail-delay-seconds: 3 # 失败冷却(秒)
max-fails: 5 # 连续失败多少次锁定
lockout-seconds: 300 # 锁定时长(秒)
timeout-seconds: 90 # 登录超时踢出(秒)
协管配置
moderator:
enabled: true # 协管功能开关
max-duration-days: 7 # 协管封禁时长上限(天)
fallback-permission: "inthenameoflinux.moderator"
不要手动修改 login.password-salt / password-hash
这两行由插件自动生成。如果修改错误,会导致无法登录。想重置密码,删掉这两行的值(改成
""),重启后会自动重置为 password。
5插件联动
XlandCore
用于读取玩家身份(服主 / 副服主 / 管理员 / 协管)。协管体系依赖此插件。
- 如果 XlandCore 在服务器启动时已加载,静态块会立即检测到。
- 如果 XlandCore 后加载,插件会在 20 秒后延迟检测一次。
- 执行
/linux reload也会重新检测。
假人插件(FakePlayerPlugin)
同步假人数据,用于 /linux fp 和查询识别。
如果假人插件改过包名
请在
config.yml 修改 fakeplayer.info-class 的值。
XlandStop
监听 xstop / xlstop / xlandstop 命令,全服广播谁在重启服务器。
6故障排查
问题:登录后仍然无法执行命令
- 确认输对了密码(大小写敏感)。
- 如果被锁定,等待锁定时间结束(默认 300 秒)。
- 查看控制台是否输出"验证身份成功"。
问题:封禁命令没有生效
- 检查是否拥有对应权限(
/linux op检查自己身份)。 - 检查
config.yml里的refuse-enabled是否为 true。 - 查看控制台是否有错误堆栈。
问题:ProtocolLib 报错 "Unable to make protected final java.lang.Class..."
这是 ProtocolLib 与 Java 17+ 的兼容问题,与本插件无关。
在启动脚本的 java 命令中加参数:
--add-opens java.base/java.lang=ALL-UNNAMED
问题:假人插件显示"版本不兼容"
- 检查假人插件的实际包名。
- 修改
config.yml的fakeplayer.info-class。 - 执行
/linux reload。
问题:重启后临时封禁没有恢复
- 检查
data.yml是否损坏(YAML 格式)。 - 检查服务器时间是否准确(时间错乱会导致到期判断错误)。
- 查看控制台是否有"恢复任务失败"日志。
问题:/linux reload 后功能失效
- 检查控制台是否有异常堆栈。
- 尝试完全重启服务器(而非 /reload)。
- 如果仍然异常,删除
plugins/InTheNameOfLinux/下的缓存文件(保留 config.yml)。
7常见问题
为什么密码要在聊天栏输入,不能直接 /linux login 密码?
Minecraft 服务端在处理命令前,会先把
/linux login 密码 整条命令写进日志。
而聊天栏消息可以被插件"提前拦截",不会进入日志。
为了密码安全,本插件采用聊天栏输入方式。
忘记密码了怎么办?
两种方法:
- 方法一:编辑
config.yml,把login.password-salt和login.password-hash两行改成""(空字符串),重启服务器后密码重置为password。 - 方法二:删除整个
config.yml,重启后会自动生成新配置。
协管为什么不能封禁账号?
这是设计选择。协管权限有限,只能使用"功能封禁"(禁方块 / 禁移动 / 禁言 / 全封)。
账号封禁(/ban、/tempban、/banip)属于更高级的操作,仅限完整管理员。
协管为什么不能永久封禁?
防止协管滥用权限。永久封禁是不可逆操作,需要完整管理员执行。
协管最长可封 7 天(可配置)。
封禁后玩家还能上线吗?
- 账号封禁:直接踢出,登录时被拒绝。
- 功能封禁(禁方块 / 禁移动 / 禁言):可以正常登录,但对应功能被限制。
为什么被禁言后,我说话没反应?
这是正常的。禁言会拦截你的所有聊天消息、私聊指令、/say 等。你只能与管理员私聊。
屏幕上会显示一条提示"你已被禁言!"。
/linux login 后没有提示我输密码?
检查几点:
- 你是否是保护对象(默认 Linux582021)?
- 聊天栏有没有显示黄色提示"请在聊天栏直接输入密码"?
- 如果提示出现后你退出了游戏,再次进服需要重新输入 /linux login。
数据文件在哪里?如何备份?
所有数据都在
plugins/InTheNameOfLinux/ 目录下:
config.yml— 插件配置data.yml— 封禁历史penalty.yml— 功能封禁记录userip.yml— IP 与身份缓存playtime.yml— 游玩时长fp.yml— 假人数据快照
插件会影响服务器性能吗?
影响极小。插件采用了多重优化:
- 所有数据都缓存到内存,避免频繁读磁盘。
- 封禁缓存 3 秒,重复查询不重建。
- 数据文件批量保存(默认 30 秒一次)。
- 异步事件只读判断,回主线程处理。
- 反射方法首次调用后缓存。
如何修改封禁广播的范围?
编辑
config.yml 里的 broadcast-ban:
true(默认):全服广播。false:只广播给有权限的管理员。
/linux reload 生效。
如何关闭"突破 fs1 拦截"功能?
两种方法:
- 执行
/linux fs off(仅 Linux582021 本人可用)。 - 编辑
config.yml,把fs1-refuse-enabled改成false。
能同时封禁多个玩家吗?
目前不支持批量命令。可以写循环脚本调用
/ban。
批量封禁时,插件会立即写盘(不受 30 秒批量保存影响)。
玩家改名后历史记录会丢失吗?
- 正版服务器:UUID 不变,改名后历史记录仍在(用 UUID 关联)。
- 离线服务器:UUID 由名字计算,改名 = 换人,历史记录不会关联。
8卸载与备份
备份
- 停止服务器(
stop)。 - 复制
plugins/InTheNameOfLinux/整个目录到安全位置。 - 如果使用了协管功能,同时备份 XlandCore 的配置文件。
卸载
- 停止服务器。
- 删除
plugins/InTheNameOfLinux.jar。 - 可选:删除
plugins/InTheNameOfLinux/目录(保留则下次安装时数据仍存在)。 - 启动服务器。
卸载前请注意
如果插件中存在活跃的临时封禁任务,卸载后这些任务会被取消,被封禁的玩家将立刻可以进入服务器。
卸载前建议先手动解封所有玩家。
更新插件时
直接替换 jar 文件即可,不需要删除数据目录。配置和数据会自动保留。