Kyv Claims

Kyv Claims

一款适用于Hytale服务器的完整领地保护插件。玩家可使用坐标声明并保护区域,具备图形用户界面、每区域权限设置、附带5格缓冲区的防破坏保护、多语言支持(英文/葡萄牙文),以及用于插件集成的公共API。

实用

kyv-claims-banner

Ko-fi Twitter Discord


KyvClaims - 领地保护系统

一个用于 Hytale 服务器的完整领地保护插件,允许玩家通过图形界面和每个区域的精细权限来声明(Claim)并保护自己的领地。每个领地独立控制建造、方块移除和桶的使用权限。

功能特性

核心保护

  • 声明系统:使用坐标(GUI 或命令)定义矩形区域
  • 双界面:使用图形界面或传统命令
  • 信任玩家:添加朋友在你的领地内共同建造
  • 缓冲区:领地周围自动保护,防止恶意破坏
  • 三重桶保护:防止水/岩浆破坏的高级系统

权限与控制

  • 精细权限:14 个独立权限,支持通配符
  • 领地级控制:每个区域有独立的访问设置
  • 管理员工具:对所有领地的完全管理控制

视觉反馈

  • 客户端可视化:仅对客户端显示边界
    • 黄色:新声明的有效区域
    • 蓝色:查看已有的已声明区域
    • 粉色:与已有声明区域冲突

边界颜色对比

额外功能

  • 全域制作:工作台可访问领地内的所有箱子(需要权限)
  • 多语言:支持英语和葡萄牙语(巴西)
  • 持久存储:领地自动以 JSON 格式保存
  • 公开 API:与商店、VIP 系统和经济插件集成

工作原理

主界面

两种使用方法

1. 图形界面

  • 使用 /claim 命令打开
  • 点击 POS1POS2 按钮选择区域角落
  • 彩色边界的视觉反馈显示选择状态
  • 再次使用 /claim 打开确认界面
  • 点击 创建领地 完成

2. 传统命令

  • 使用 /claim pos1/claim pos2 选择区域
  • 执行 /claim create 声明领地
  • 使用 /claim trust/claim list 等命令管理

视觉反馈系统

插件显示彩色边界,帮助你了解领地状态:

黄色边界 - 有效区域

  • 黄色边界:有效区域 - 你可以声明这片空间

蓝色边界 - 已有领地

  • 蓝色边界:已有领地 - 查看你已声明的区域

粉色边界 - 冲突

  • 粉色边界:冲突 - 区域与其他领地重叠

保护流程

  1. 选择区域:使用 GUI 按钮或命令(/claim pos1/claim pos2
  2. 视觉反馈:查看表示状态的彩色边界
  3. 创建领地:在 GUI 中确认或使用 /claim create
  4. 管理:添加信任玩家、重命名或删除领地
  5. 保护生效:只有所有者和信任玩家可以建造/破坏/使用桶

领地管理

缓冲区

每个领地周围有 5 格缓冲区,防止建造过于靠近他人领地。只有领地所有者和信任玩家可以在自己的缓冲区内建造。

全域制作

启用后,拥有权限的玩家可以使用工作台,从领地内所有箱子中提取材料,而不仅仅是附近的箱子。非常适合有组织储物系统的大型基地。需要 kyvclaims.use.claimwidecrafting 权限。

命令

用户命令

  • /claim - 打开领地界面
  • /claim pos1 - 定义第一个角落位置
  • /claim pos2 - 定义第二个角落位置
  • /claim create - 用选定区域创建领地
  • /claim cancel - 取消当前选择
  • /claim list - 列出你的领地
  • /claim info - 查看当前位置的领地信息
  • /claim trust <玩家> - 添加信任玩家到当前领地
  • /claim untrust <玩家> - 从当前领地移除信任玩家
  • /claim abandon <名称> - 按名称删除领地

管理员命令

  • /claim admin list - 列出服务器所有领地
  • /claim admin remove <名称> - 移除任意领地
  • /claim admin remove <玩家> <名称> - 移除特定玩家的领地
  • /claim admin setlimit <玩家> <方块数> - 设置玩家的方块限制
  • /claim admin addblocks <玩家> <方块数> - 增加玩家的方块限制
  • /claim admin info <玩家> - 查看玩家的领地信息
  • /claim admin reload - 重新加载插件配置
  • /claim admin bypass - 切换绕过模式(忽略所有保护)

配置

插件在 mods/kyvclaims/ 目录下创建两个文件:

config.json

配置默认设置:

  • defaultBlockLimit:每个玩家默认可声明的方块数量
  • claimBufferDistance:领地之间的最小距离(以方块为单位)
  • enableClaimWideCrafting:启用全域制作功能
  • language:界面语言 - en_US(英语)或 pt_BR(葡萄牙语)

配置示例:

{
  "defaultBlockLimit": 10000,
  "claimBufferDistance": 5,
  "enableClaimWideCrafting": true,
  "language": "en_US"
}

缓冲区距离说明: 缓冲区距离防止领地创建得过于靠近。例如,设置 claimBufferDistance: 5,玩家不能在已有领地 5 格内创建新领地(除非他们拥有该领地)。这有助于防止恶意破坏并保持玩家领地之间的间距。

claims.json

所有领地自动以 JSON 格式保存在此处。此文件由插件管理,不应手动编辑。

权限

管理权限

你可以通过两种方式管理权限:

  1. 使用权限插件(推荐用于复杂设置)
  2. 直接在服务器的 permissions.json 中(简单设置)

将权限添加到服务器根目录下的 permissions.json 文件中的组。

示例 permissions.json:

{
  "users": {
    "player-uuid-here": {
      "groups": ["Default"]
    }
  },
  "groups": {
    "Default": [
      "kyvclaims.use.create",
      "kyvclaims.use.remove",
      "kyvclaims.use.trust",
      "kyvclaims.use.untrust",
      "kyvclaims.use.info",
      "kyvclaims.use.list",
      "kyvclaims.use.rename",
      "kyvclaims.use.claimwidecrafting"
    ],
    "OP": ["*"]
  }
}

通配符

  • kyvclaims.* - 所有权限
  • kyvclaims.use.* - 所有用户权限
  • kyvclaims.admin.* - 所有管理员权限

用户权限

  • kyvclaims.use.create - 创建领地
  • kyvclaims.use.remove - 移除自己的领地
  • kyvclaims.use.trust - 添加信任玩家
  • kyvclaims.use.untrust - 移除信任玩家
  • kyvclaims.use.info - 查看领地信息
  • kyvclaims.use.list - 列出自己的领地
  • kyvclaims.use.rename - 重命名领地
  • kyvclaims.use.claimwidecrafting - 使用全域制作(默认:拒绝)

管理员权限

  • kyvclaims.admin - 无限领地方块
  • kyvclaims.admin.create - 为他人创建领地
  • kyvclaims.admin.remove - 移除任意领地
  • kyvclaims.admin.bypass - 忽略所有保护
  • kyvclaims.admin.setlimit - 设置玩家方块限制
  • kyvclaims.admin.reload - 重新加载配置

注意:拥有 OP 权限或 kyvclaims.admin 权限的玩家自动拥有无限领地方块和完全访问权限。

安装

  1. 下载最新版本
  2. 将 kyv-claims-x.x.x.jar 放入服务器的 mods 文件夹
  3. 重启服务器
  4. 在服务器的 permissions.json 中配置权限
  5. 如果需要,编辑 mods/kyvclaims/config.json

多语言支持

插件根据你的配置自动加载消息:

  • 英语:在 config.json 中设置 "language": "en_US"
  • 葡萄牙语:在 config.json 中设置 "language": "pt_BR"

所有 UI 元素、命令和消息均已完全翻译。

开发者 API

KyvClaims 提供公开 API,用于与商店、VIP 系统和经济插件集成。详情请参阅下方 API 部分。

支持

如有问题、建议或贡献:

  • 在问题追踪器上报告错误
  • 加入我们的 Discord 社区

由 ItaloSixx 开发 — KYV Verdant Realm |


API 文档

KyvClaims 提供公开 API,用于与商店、VIP 系统和经济插件集成。

设置

在 manifest.json 中将 "kyvclaims" 添加到插件的依赖项中,然后在代码中导入 com.claims.ClaimAPI。

主要方法

方块管理:

  • addClaimBlocks(UUID, int) - 增加玩家限制的方块数
  • removeClaimBlocks(UUID, int) - 减少玩家限制的方块数
  • setClaimBlocks(UUID, int) - 设置总方块限制
  • resetToDefault(UUID) - 重置为默认限制

查询方法:

  • getAvailableBlocks(UUID) - 获取可用方块数(总数 - 已使用)
  • getUsedBlocks(UUID) - 获取领地已使用的方块数
  • getTotalBlocks(UUID) - 获取总方块限制
  • canClaim(UUID, int) - 检查玩家是否能声明区域

领地信息:

  • getPlayerClaims(UUID) - 获取玩家的领地列表
  • canBuild(UUID, Location) - 检查玩家是否能在指定位置建造

常见用例

  • 商店插件:使用 addClaimBlocks() 出售领地方块
  • VIP 系统:使用 setClaimBlocks() 授予额外方块
  • 经济集成:在购买前检查可用方块
  • 等级系统:每个等级有不同的方块限制
  • 活动奖励:将领地方块作为奖励发放

注意:拥有 OP 权限或 kyvclaims.admin 权限的玩家自动拥有无限方块。


查询方法

getAvailableBlocks(UUID playerUUID)

返回玩家还能使用的方块数量。

  • 返回int - 可用方块数(总数 - 已使用)

getUsedBlocks(UUID playerUUID)

返回玩家在领地中已使用的方块数量。

  • 返回int - 已使用方块数

getTotalBlocks(UUID playerUUID)

返回玩家的总方块限制。

  • 返回int - 总限制

canClaim(UUID playerUUID, int blockCount)

检查玩家是否有足够的方块声明一片区域。

  • 返回boolean - 如果可以声明则为 true

领地信息

getPlayerClaims(UUID playerUUID)

返回玩家拥有的所有领地列表。

  • 返回List<Claim> - 玩家的领地

canBuild(UUID playerUUID, Location location)

检查玩家是否能在特定位置建造。

  • 返回boolean - 如果允许则为 true,如果受保护则为 false

使用示例

商店插件 - 出售领地方块:

  • 调用:ClaimAPI.addClaimBlocks(playerUUID, 1000)
  • 返回:成功则为 true

VIP 系统 - 设置自定义限制:

  • 调用:ClaimAPI.setClaimBlocks(playerUUID, 50000)

显示玩家信息:

  • 调用:ClaimAPI.getAvailableBlocks(playerUUID)
  • 返回:玩家还能使用的方块数

声明前检查:

  • 调用:ClaimAPI.canClaim(playerUUID, blockCount)
  • 返回:如果玩家有足够方块则为 true

重要说明

  • OP/管理员:拥有 OP 权限或 kyvclaims.admin 权限的玩家自动拥有无限方块
  • 持久性:所有限制自动保存在 mods/kyvclaims/claims.json
  • 线程安全:所有 API 方法均为线程安全
  • 默认限制:在 config.json 中通过 defaultBlockLimit 配置

常见用例

  • 商店插件:使用 addClaimBlocks() 出售领地方块
  • VIP 系统:使用 setClaimBlocks() 授予额外方块
  • 经济集成:在购买前检查可用方块
  • 等级系统:每个等级有不同的方块限制
  • 活动奖励:将领地方块作为奖励发放