模板与生成点
GTGather 的配置分两层:
| 文件 | 负责内容 |
|---|---|
templates.yml | 采集点长什么样、怎么采、给什么奖励、需要什么条件 |
spawns.yml | 采集点刷在哪个世界、哪个坐标、刷几个、多久刷新 |
一句话理解:模板是“规则”,生成点是“位置”。
最小模板
放入 plugins/GTGather/templates.yml:
templates:
diamond_test:
display: "§b§l测试钻石"
entity-type: TEXT_DISPLAY
description:
- "§7右键采集"
- "§7奖励:钻石 ×1"
cast:
enabled: true
duration: "0"
cooldown: "10s"
rewards:
r1:
id: DIAMOND
amount: "1"
mode: INVENTORY效果:
- 玩家看到一个文字采集点。
- 右键立即完成采集。
- 奖励 1 个钻石。
- 采集后冷却 10 秒。
最小生成点
放入 plugins/GTGather/spawns.yml:
spawns:
hub_diamond:
template: diamond_test
type: POINT
point:
world: world
x: 100.5
y: 64.0
z: 200.5
yaw: 0.0
pitch: 0.0效果:
- 在
world的100.5,64,200.5生成一个采集点。 - 使用
diamond_test模板。
模板字段
display
采集点显示名:
display: "§f§l铁矿"支持颜色代码和 PAPI:
display: "§a%player_name% 的专属草药"entity-type
展示实体类型:
entity-type: ARMOR_STAND常用:
| 类型 | 适合场景 |
|---|---|
ARMOR_STAND | 兼容性好,适合方块、物品展示 |
TEXT_DISPLAY | 高版本文字展示,适合提示点、纯文字资源 |
PIG、PLAYER | 特殊展示玩法 |
display-item
采集点戴在头上的物品:
display-item: IRON_ORE支持物品库:
display-item: "ni:ruby"
display-item: "mm:LEGEND_SWORD"不写 display-item 时,盔甲架不会戴展示物品。
description
采集点下面的多行说明:
description:
- "§7需要铁镐采集"
- "§71 小时最多 5 次"描述适合写条件、奖励、冷却和玩法提示。
左右键自定义动作
left-click-actions 和 right-click-actions 可以分别配置动作。特殊动作 [gather] 表示进入正常采集流程,写在哪一侧,就可以用哪一侧采集。
未配置 right-click-actions 时,右键仍默认采集,旧模板无需修改。一旦配置了 right-click-actions,GTGather 就只执行配置中的动作;没有 [gather] 时,右键不会开始采集。未配置 left-click-actions 时,左键不执行任何动作。
左键采集、右键查看:
left-click-actions:
- "[gather]"
right-click-actions:
- "console:tell %player% 这是铁矿点"
- "player:me 正在检查矿点"动作支持 console:、player: 和 op:,命令内容支持 %player% 与其他 PAPI 变量。同一次点击重复写多个 [gather] 也只会启动一次采集。
需要按玩家状态决定动作时,可以使用命名动作组:
left-click-actions:
gather:
condition: "%player_level% >= 10 && !%player_is_sneaking%"
actions:
- "[gather]"
denied:
condition: "%player_level% < 10"
actions:
- "console:tell %player% 等级达到 10 级后才能采集"
right-click-actions:
view:
actions:
- "console:tell %player% 查看铁矿点信息"condition 支持 PAPI、算术、&&、||、! 和括号。条件不满足时只跳过当前动作组;即使右键的所有动作组都被跳过,也不会退回默认采集。
[gather] 进入采集流程后,仍会检查模板触发条件、次数上限、工具耐久、读条、冷却和奖励。只执行命令动作时,不会消耗耐久、次数或生成点。
需要完整模板、条件动作组、验证步骤和排错方法时,继续阅读左右键动作与采集键。
采集状态文字
在实体名称或描述中写 {state},可以显示可采集、采集中和恢复中三种状态:
entity-name: "§e§l矿点 §8[{state}]"
state-text:
available: "&a可采集"
gathering: "&e采集中"
recovering: "&c恢复中"| 变量 | 内容 |
|---|---|
{state} | 当前状态对应的自定义文字 |
{state_key} | available、gathering 或 recovering |
{state_available} | 仅在可采集时显示配置文字 |
{state_gathering} | 仅在采集中显示配置文字 |
{state_recovering} | 仅在恢复中显示配置文字 |
采集取消、完成或冷却结束后,显示会自动切换到对应状态。
采集读条
3 秒采集,BossBar 显示进度:
cast:
enabled: true
duration: "3.0"
progress-bar: BOSS_BAR
cooldown: "30s"可用进度条:
| 类型 | 显示位置 |
|---|---|
ACTION_BAR | 动作栏 |
BOSS_BAR | Boss 血条 |
TITLE | 屏幕标题 |
等级越高采集越快:
cast:
enabled: true
duration: "5 - %player_level% / 20"
progress-bar: ACTION_BAR
cooldown: "30s"duration 支持 PAPI 和算术表达式。
冷却显示
采集点冷却时更换显示:
cast:
enabled: true
duration: "3.0"
cooldown: "30s"
cooldown-display:
name: "§7§l冷却中 {cooldown}"
display-item: GRAY_STAINED_GLASS_PANE
display-scale: 0.8
y-offset: -0.5
cooldown-lines:
- "§7距刷新还剩 §f{cooldown}"
- "§8纯数字:{cooldown_seconds} 秒"
cooldown-format: "mm:ss"可用变量:
| 变量 | 内容 |
|---|---|
{cooldown} | 格式化后的剩余时间 |
{cooldown_seconds} | 剩余秒数 |
cooldown-format 常用值:
compact
mm:ss
hh:mm:ss
full触发条件
手持原版物品
手持铁镐才能采:
triggers:
t1:
pattern: "*iron_pickaxe*"pattern 会匹配物品名、Material 和通配符。
手持 NI 物品
triggers:
t1:
id: "ni:warrior_pickaxe"手持 MM 物品
triggers:
t1:
id: "mm:GOLD_PICKAXE_TIER_5"PAPI 条件
30 级以上才能采:
triggers:
t1:
expression: "%player_level% >= 30"职业限制:
triggers:
t1:
expression: "%player_class% == WARRIOR"多个 trigger 是 AND 关系:
triggers:
t1:
id: "ni:warrior_pickaxe"
t2:
expression: "%player_level% >= 30"工具耐久
模板写入 tool-durability 后,GTGather 才会检查并扣除本次采集使用的工具耐久;没有该配置的旧模板不受影响。
tool-durability:
enabled: true
required: true
cost: 3
break-item: false| 字段 | 作用 |
|---|---|
enabled | 是否启用工具耐久结算 |
required | 无法识别 NI、Lore、NBT 或原版耐久时,是否拒绝采集 |
cost | 本模板每次采集固定消耗;不写时继续读取工具 Lore、NBT 和全局默认值 |
break-item | 非 NI 工具归零时是否移除一个物品 |
消耗量优先级是:模板 cost、工具 Lore、工具 NBT、config.yml 的 tool-durability.default-cost。
可识别的 Lore 示例:
耐久: 100/100
§f耐久: §a60§f|§c100
采集消耗: 3采集读条期间切换快捷栏、交换副手、修改背包、丢出工具或由其他插件替换工具,都会立即中断本次采集,不扣耐久、不发奖励,也不消耗采集点。
POINT 固定点
固定点永远在同一个坐标生成:
spawns:
hub_iron_singleton:
template: iron_ore_block
type: POINT
point:
world: world
x: 100.5
y: 64.0
z: 200.5
yaw: 0.0
pitch: 0.0适合:
- 主城固定 NPC 采集点。
- 副本门口兑换/采集点。
- 任务专用资源。
AREA 区域随机点
在中心点半径内随机刷多个采集点:
spawns:
mine_diamond_cluster:
template: level_scaled
type: AREA
point:
world: world
x: 50.0
y: 12.0
z: 50.0
yaw: 0.0
pitch: 0.0
range: 8.0
max-amount: 5
per-respawn: 2
cooldown: "30s"含义:
- 以
50,12,50为中心。 - 半径 8 格内随机生成。
- 同时最多存在 5 个。
- 每次补充最多 2 个。
- 从最近一次成功采集开始计时,30 秒后执行一次补充。
AREA 的 cooldown 是区域补充间隔,不是玩家冷却。模板中的 cast.cooldown 才是 POINT 采集后的恢复时间。
适合矿区、树林、药田、副本资源区。
完整示例:铁矿点
templates.yml:
templates:
iron_ore_block:
display: "§f§l铁矿"
entity-type: ARMOR_STAND
display-item: IRON_ORE
display-scale: 1.0
glowing: true
description:
- "§7需要铁镐采集"
- "§71 小时最多 5 个"
triggers:
t1:
pattern: "*iron_pickaxe*"
cast:
enabled: true
duration: "2.5"
progress-bar: BOSS_BAR
cooldown: "20s"
rewards:
r1:
id: RAW_IRON
amount: "1"
mode: INVENTORY
r2:
command:
- "console:xp give %player% 5"
limit:
player:
enabled: true
count: 5
period: "1h"spawns.yml:
spawns:
surface_iron_area:
template: iron_ore_block
type: AREA
point:
world: world
x: 0.0
y: 80.0
z: 0.0
yaw: 0.0
pitch: 0.0
range: 15.0
max-amount: 10
per-respawn: 2
cooldown: "5s"创建和测试
- 修改
templates.yml和spawns.yml。 - 执行
/gtgather reload。 - 进入生成点所在世界。
- 检查采集点是否出现。
- 右键采集点测试条件、读条、奖励和冷却。
如果使用工具创建:
/gtgather wand然后左键空气选择模板,右键地面创建生成点。
常见问题
采集点没有出现
检查:
spawns.yml的template是否存在。world是否写对。- 坐标是否在已加载区块。
/gtgather reload是否报错。
采集点能看到但不能采
检查:
- 玩家距离是否超过
config.yml的trigger.range。 triggers是否满足。- PAPI 变量是否能正常解析。
- 手持物品 ID 是否真实存在。
冷却显示不变
检查:
cast.cooldown是否大于 0。cooldown-display是否写在cast下。cooldown-lines是否为列表。- 重载后是否仍使用旧模板。
