GuestViewer

更好的白名单替代方案

资源图片
# GuestViewer 一个Minecraft插件,限制非白名单玩家进入旁观者模式,并限制其移动能力。 ![Build Status](https://github.com/nfacha/GuestViewer/actions/workflows/build.yml/badge.svg) ## 下载 ### 稳定版 **[下载最新稳定版](https://github.com/nfacha/GuestViewer/releases)** ### 前沿版 **[下载最新前沿版](https://github.com/nfacha/GuestViewer/actions/workflows/build.yml)** ⚠️ 需要登录GitHub才能从GitHub Actions下载工件。 ## 服务器兼容性 - 已在Minecraft 1.21.x上测试并通过 - 应该适用于Paper/Spigot 服务器 ## 功能 - 基于权限的白名单系统 - 没有 `guestviewer.bypass` 权限的玩家将自动设置为旁观者模式 - 具有 `guestviewer.bypass` 权限的玩家将自动设置为生存模式 - 旁观者只能在他们正在观察的玩家周围 100 个方块内移动 - 基于权限的附近世界生成自由漫游 (`guestviewer.freeroam`) - 除非他们具有 `guestviewer.chat` 权限,否则对旁观者的聊天进行限制 - 可配置的欢迎消息,适用于普通玩家和旁观者 - 可配置的普通玩家和旁观者的加入/离开广播消息 - 简单轻量级 ## 安装 1. 从上述链接下载最新版本 2. 将 JAR 文件放在服务器的 `plugins` 目录中 3. 重新启动服务器或运行 `/reload` 4. 根据需要配置插件(请参阅配置部分) ## 使用方法 ### 权限 - `guestviewer.bypass` - 具有此权限的玩家可以正常游戏 (默认: op) - `guestviewer.admin` - 使用admin命令(如重新加载)所需的权限 (默认: op) - `guestviewer.freeroam` - 允许旁观者在世界生成点周围的配置距离内自由漫游 (默认: false) - `guestviewer.chat` - 允许旁观者使用聊天 (默认: false) ### 命令 - `/guestviewer` 或 `/gview` - 显示插件信息 - `/guestviewer reload` 或 `/gview reload` - 重新加载插件配置 ## 配置 插件的配置存储在 `plugins/GuestViewer/config.yml`: ```yaml # 旁观者可以远离目标的最大距离(方块) max-distance: 100 # 消息 messages: # 当玩家加入并被设置为旁观者模式时显示的提示信息 spectator-join: "&c您不在白名单中!您已被设置为旁观者模式。" # 当玩家加入且具有 bypass 权限时显示的提示信息 player-join: "&a欢迎回来!您正在以生存模式游戏。" # 当旁观者尝试移动超出最大距离时显示的提示信息 distance-warning: "&c您不能移动超过 100 个方块远离您正在观察的玩家!" # 当没有聊天权限的旁观者尝试聊天时显示的提示信息 chat-restricted: "&c您没有聊天权限。您处于旁观者模式。" # 聊天设置 chat: # 是否限制没有权限的旁观者的聊天 restrict-spectator-chat: true # 广播通知 broadcast: # 是否广播具有 bypass 权限的玩家加入 player-join-enabled: true player-join-message: "&e%player% &a已加入服务器。" # 是否广播具有 bypass 权限的玩家离开 player-quit-enabled: true player-quit-message: "&e%player% &c已离开服务器。" # 是否广播旁观者加入 spectator-join-enabled: true spectator-join-message: "&7Guest &e%player% &7已作为旁观者加入。" # 是否广播旁观者离开 spectator-quit-enabled: true spectator-quit-message: "&7Guest &e%player% &7已离开服务器。" ``` ## 工作原理 1. 当玩家加入时,插件会检查他们是否具有 `guestviewer.bypass` 权限 2. 如果他们具有该权限,他们将被设置为生存模式 3. 如果他们没有该权限,他们将被设置为旁观者模式 4. 旁观者被限制在他们正在观察的玩家周围 100 个方块(可配置)的半径内 5. 具有 `guestviewer.freeroam` 权限的旁观者可以移动到世界生成点周围的配置距离内 6. 没有 `guestviewer.chat` 权限的旁观者不能使用聊天 7. 如果他们尝试移动到允许的边界之外,他们将被传送到回来 ## 支持 如果您遇到任何问题或有任何建议,请在 GitHub 存储库中提出问题。 ## 授权许可 此插件使用 MIT 许可证发布。 ## 开发 ### 从源码构建 该项目使用 Maven 进行构建自动化。 要从源码构建: ```bash mvn clean package ``` 构建后的 jar 文件将位于 `target` 目录中。 ### 持续集成 该项目使用 GitHub Actions 自动构建插件。 工作流: - 在 main/master 分支中的每次推送和拉取请求时构建插件 - 使用 JDK 21 进行编译 - 创建可以从 Actions 选项卡下载的工件