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:世界的起始时间(例如 midday、night)。

地块(网格设置)

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

方块(基础逻辑)

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

预制件(核心)

  • 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 库文件放入您服务器的 libs 或 mods 文件夹中。