Plots Plugin

Plots Plugin

一个基于动态预制件的土地管理系统。定义网格,加载复杂结构,并通过智能遮罩保护您的世界。

世界生成

地块

一个基于预制件的动态土地管理系统。定义网格,加载复杂结构,并通过智能遮罩保护您的世界。

一种简单而强大的管理创意空间的方式,让您专注于真正重要的事情:建造。

💬 加入社区! 有问题、想法或只是想聊聊?加入 Stoshe Labs Discord 服务器: discord.gg/rC9eSzH3tf


目录

  1. 简介
  2. 安装
  3. 动态生成
  4. 展示
  5. 配置
  6. 快速开始
  7. 命令
  8. 遮罩系统
  9. 权限
  10. 本地化
  11. 公共 API
  12. 数据架构

安装

  1. .jar 文件放入您的 mods 文件夹。
  2. (可选)将您的 .prefab.json 文件添加到 mods/Hytale_Plots/prefabs/
  3. 启动服务器以生成默认配置。

动态生成

地块不仅仅是一个静态网格。它能适应您的特定设计。

  • 自适应大小:网格会自动调整以适应任何道路或地块宽度(无论是 4 格还是 150 格宽)。
  • 岛屿模式(遮罩):非常适合浮空岛屿世界。系统会理解您建筑的形状,并阻止偏离原始设计的扩展。
  • 虚空保护:防止玩家连接分离的岛屿或在“虚空”中建造,保持您地图的美观性。
  • 非正方形支持:完全支持独立的宽度和深度(例如,32x64 的地块)。

展示

以下是一个示例,展示了在我们的动态系统中利用自定义地块预制件所能实现的效果。这些浮空岛屿是使用网格系统自动生成,并通过我们精细的遮罩逻辑进行保护的。

岛屿地块 一个从预制件生成并完美集成到网格中的自定义岛屿地块结构。

岛屿地块地图 俯视图,展示了地块预制件如何分布在世界中。

配置

config.json 允许您完全控制世界。以下是主要设置的说明:

常规与世界

  • Language:消息使用的语言环境(默认:en_us)。
  • PlotWorldName:专用地块世界的文件夹名称。
  • DefaultWorldTime:世界的起始时间(例如 middaynight)。

地块(网格设置)

  • PlotSize:每个地块的内部建造区域。
  • RoadSize:地块之间道路的宽度。设置为 0 可实现无间隙网格。
  • MaxPlotsDefault:玩家默认可以认领的地块数量。

方块(基础逻辑)

  • Bedrock/Surface/Filling:定义世界生成的基础材料。
  • 专业提示:将这些设置为 EmptyAir 以创建一个技术性的“虚空世界”,非常适合浮空岛屿。

预制件(核心)

  • Road/Plot/Intersection:将特定的预制件设计链接到网格。
  • 重要提示:使用文件名时不要包含 .prefab.json 扩展名(例如,对于 my_island.prefab.json,应使用 my_island)。

快速开始

  • /plot claim - 获取您所站地块的所有权。
  • /plot home - 将您传送回您的建筑。
  • /plot trust <player> - 给予朋友与您一起建造的权限。
  • /plot rename <name> - 为您的项目赋予一个独特的名称。

命令

玩家

命令 描述
/plot claim 认领当前地块
/plot delete 删除当前地块
/plot auto 查找并认领最近的空闲地块
/plot home 传送到您的主地块
/plot trust <player> 授予其他玩家建造权限
/plot untrust <player> 撤销玩家的建造权限
/plot info 显示您所在地块的详细信息
/plot list 列出您拥有的所有地块
/plot spawn 传送到地块世界出生点

管理

命令 描述
/plot delete <gridX> <gridY> 移除一个地块记录(仅管理员)

遮罩系统

我们为创造模式服务器创建了高级的保护逻辑:

  • 虚空尊重:如果岛屿之间的空间不属于您原始预制件的一部分,则任何人都无法在那里建造。这维持了“孤立岛屿”的外观。
  • 垂直自由:如果某一列已经包含来自您预制件的地面,玩家可以自由地向上或向下建造,允许建造地下室或塔楼。
  • 下限:自动阻止在 0 层以下建造,以防止地图底部产生视觉混乱。

权限

地块使用精细的权限系统。您可以将这些节点分配给玩家或组:

常规权限

权限 描述
plots.* 完全管理权限(无限地块,绕过保护)
plots.claim 允许使用 /plot claim/plot auto 认领地块
plots.delete 允许使用 /plot delete 删除拥有的地块
plots.delete.* 允许删除任何地块(管理员)
plots.spawn 允许使用 /plot spawn 访问专用地块世界
plots.list 允许使用 /plot list 列出拥有的地块
plots.info 允许使用 /plot info 查看地块信息
plots.rename 允许使用 /plot rename 重命名地块
plots.trust 允许使用 /plot trust 管理受信任成员

限制权限

权限 描述
plots.limit.X 设置玩家可以拥有的最大地块数量(例如 plots.limit.5

本地化

我们致力于支持尽可能多的语言。

  • 帮助我们翻译:访问我们的 Crowdin 项目 以做出贡献。
  • 完整消息自定义可在插件文件夹内的 lang/ 目录中进行。

公共 API

地块为外部插件提供了全面的公共 API,以便以编程方式与地块系统进行交互。

开始使用

import com.overworldlabs.plots.api.PlotsAPI;

// 获取 API 实例
PlotsAPI api = PlotsAPI.getInstance();

可用的 API

PlotAPI

查询和管理地块:

// 获取位置处的地块
Optional<Plot> plot = api.plot().getPlotAt(world, x, z);

// 检查所有权
boolean isOwner = api.plot().isOwner(plot, playerUuid);

// 获取受信任玩家
List<UUID> trusted = api.plot().getTrustedPlayers(plot);

PlotEventAPI

监听地块事件:

api.events().onClaim(event -> {
    Plot plot = event.getPlot();
    UUID owner = event.getOwner();
    // 处理认领事件
});

api.events().onRename(event -> {
    String oldName = event.getOldName();
    String newName = event.getNewName();
    // 处理重命名事件
});

事件

可用事件:

  • ClaimEvent - 认领地块时触发
  • UnclaimEvent - 取消认领地块时触发
  • TrustEvent - 添加信任玩家时触发
  • UntrustEvent - 取消信任玩家时触发
  • RenameEvent - 重命名地块时触发

未来文档

一个更全面、更有组织的文档网站正在开发中。敬请期待高级教程、API 参考和设计技巧!

数据架构

所有内容都以简单、轻量的格式保存:

---

Hylograms 集成

使用动态的 Hylograms 增强您的服务器,它会在每个认领地块的角落自动显示地块信息。

  • 动态信息:自动显示地块名称和所有者名称。
  • 本地化文本:对所有全息图标签使用您选择的语言。
  • 完全可配置:在 config.json 中切换全息图的开启/关闭或调整其高度偏移。
  • 即时更新:当地块被重命名或转让时,全息图会立即更新。

要启用此功能,只需将 hylograms.jar 库文件放入您服务器的 libsmods 文件夹中。