BetterView

一个Paper插件和Fabric模组,用于扩展服务器的正常视野距离,同时不会牺牲服务器性能。

资源图片
# BetterView logo [![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/MinceraftMC/BetterView?style=flat-square)](https://github.com/MinceraftMC/BetterView) [![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg?style=flat-square)](https://opensource.org/license/gpl-v3/) [![Discord](https://img.shields.io/discord/1094193723191070793?style=flat-square&label=Discord&link=https%3A%2F%2Fdiscord.gg%2FzC8xjtSPKC)](https://discord.gg/zC8xjtSPKC) ## 描述 BetterView 是一个针对 Minecraft 服务器的高性能 Paper 插件和 Fabric 模组。它在不牺牲服务器性能的情况下扩展了正常的视野距离,使用异步玩家处理、直接从磁盘读取区块以及缓存区块数据。 ## 功能 - 在网络线程上进行异步快速玩家滴答 - 直接从磁盘读取区块,无需加载 - 优化区块状态跟踪和区块迭代 - 可配置的区块数据缓存,以便快速访问 - 可配置的区块发送和区块生成的限制 - 每个维度的配置选项 - 支持集成或专用 Fabric 服务器 - 轻量级的透视X射线防护
示例:视野距离为 127 个区块的加载速度 下面的截图是在 `0 2250 0` 地点,末地维度,视野距离为 127 个区块(禁用雾气)时拍摄的。在一台 AMD Ryzen 7 5800X 上,所有可见区块在大约 12 秒后传递到客户端,并且在冷缓存后大约需要 9 秒钟才能传递到客户端。 主末地岛屿的俯视图以及外末地岛屿的部分区域
### 支持的软件 | Minecraft 版本 | Paper | Fabric | |-------------------|-------|--------| | 1.21.7 | ✅ | ✅ | | 1.21.6 | ✅ | ✅ | | 1.21.5 | ✅ | ✅ | | 1.21.4 | ✅ | ✅ | | 1.21.3 | ✅ | ✅ | | 1.21.1 | ✅ | ✅ | 在 Fabric 上,此模组依赖于 [Moonrise](https://github.com/Tuinity/Moonrise) 来正常工作。 ## 使用方法 在 Paper 服务器上,将 jar 文件放入您的 `plugins` 目录并重启您的服务器。在 Fabric 服务器/客户端上,将 jar 文件放入您的 `mods` 目录并重启您的服务器或客户端。默认情况下,BetterView 将为每个维度配置视野距离为 32 个区块。 ### 配置 首次启动时,该插件将自动创建配置文件。如果使用 Paper,则会在 `plugins/BetterView/config.yml` 中创建;如果使用 Fabric,则会在您的世界目录(例如 `world` 用于专用服务器)中创建名为 `betterview.yml` 的文件。 在其中,您可以配置以下选项: - `config-version`: 不要修改此项 - `integrated-server-render-distance`: 仅适用于单人世界,允许替换集成服务器的渲染距离,否则 BetterView 不会生效(默认:`-1`,禁用) - `global`: - `enabled`: 是否启用或禁用整个插件/模组(默认:`true`) - `chunk-generation-limit`: 在一个滴答中全局可以生成多少新的区块(默认:`3`) - `chunk-send-limit`: 在一个滴答中向玩家发送的最大区块数量(默认:`3`) - `dimensions`: - `<维度>` (例如 `minecraft:overworld`): - `enabled`: 是否启用或禁用此维度中的插件/模组(默认:`true`) - `chunk-generation-limit`: 在一个滴答中为该层可以生成多少个新区块(默认:`2`) - `chunk-queue-size`: 玩家一次可以排队多少区块(默认:`16`) - `view-distance`: 此维度中的最大扩展视野距离(默认:`32`) - `cache-duration`: 扩展区块应保留在内存中的缓存持续时间(默认:`PT5M`,5 分钟) - `anti-xray`: - `enabled`: 是否启用或禁用此世界的透视 X 射线防护(默认:`false`) - `engine-mode`: 透视 X 射线的引擎模式,可以是 `HIDE`、`OBFUSCATE` 或 `OBFUSCATE_LAYER` (默认:`HIDE`) - `hidden-blocks`: 要隐藏/模糊化的区块列表(默认:所有矿物和所有维度基区块) 随时调整区块生成和区块发送限制,以获得最佳的服务器设置体验。 在使用透视 X 射线防护时,请注意,此插件实现了透视 X 射线防护的轻量级版本,它不会检查区块是否暴露在空气中。这意味着除了 `HIDE` 以外的所有引擎模式可能看起来不太好。 请根据您使用的服务器用途调整缓存时长;例如,对于静态大厅服务器,可以使用更长的缓存时长,而不是对于动态 SMP 服务器。如果缓存时长过长,在重新加入服务器后,区块将显示过时的内容。 ## 构建 1. 克隆项目 (`git clone https://github.com/MinceraftMC/BetterView.git`) 2. 进入克隆的目录 (`cd BetterView`) 3. 构建 jar 文件 (`./gradlew build` 在 Linux/MacOS 上,Windows 上只是 `gradlew build`) jar 文件可以在 `build` → `libs` 目录中找到。 ### 贡献 如果您想为 BetterView 做出贡献,请随意分叉该仓库并创建拉取请求。 请确保遵循项目中使用的代码风格和约定。 如果您有任何问题或需要帮助,请随时在我们的 [Discord](https://discord.gg/zC8xjtSPKC) 上提问。 您可以通过运行 `./gradlew :paper:runServer` 或 `./gradlew :fabric:prodServer`/`./gradlew :fabric:prodClient` 分别来测试您的更改。 这将启动一个本地服务器,自动安装编译好的插件或模组,以便在 IDE 中进行调试。