- 欢迎来到Minecraft插件百科!
- 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
- 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289
GuillaumeVDN的插件文档/配置:修订间差异
Qsefthuopq(留言 | 贡献) (创建页面,内容为“{{模板:VDNBox}} =Gcore= =YAML解析器= =变体(材料/粒子/音效)= ==materials.yml == ==particles.yml == ==sounds.yml== =一些通用配置= =粒子脚本=…”) |
Qsefthuopq(留言 | 贡献) (→位置) |
||
(未显示同一用户的11个中间版本) | |||
第1行: | 第1行: | ||
{{模板:VDNBox}} | {{模板:VDNBox}} | ||
=Gcore= | =Gcore= | ||
==Gcore通用配置== | |||
因为我的全部插件的通用功能都位于/plugins/GCore,比如MySQL标识符、插件语言、变体或粒子脚本,所以你需要了解一些配置设置或文件。一些通用文本也位于GCore的文本文件中。 | |||
=YAML解析器= | =YAML解析器= | ||
我制作了一个可读取和编写.yml文件的YAML解析器。该解析器较Spigot的解析器有所优化和区别。 | |||
其优点之一就是它可以在被重写时保留文件注释和配置顺序。它的加载也更加宽松,且拥有更多功能。 | |||
下面是一些有效的配置格式示例。 | |||
<source lang="yaml"># 简单值 | |||
simple_value: 1534 | |||
simple_value: true | |||
simple_value: false | |||
simple_value: | |||
simple_value: '这是一个值' | |||
simple_value: "&a这是一个值" | |||
# 进阶值 | |||
simple_value: > | |||
&b这个值居然有效! | |||
&a虽然在配置里看起来是两行,但在游戏里会显示为一行。 | |||
simple_value: '这样也行 | |||
不过不推荐这么用。 | |||
最好使用上面 > 的格式' | |||
# 列表值 | |||
list_value: | |||
- '&7真不错' | |||
- 第二行 | |||
list_value: [这个列表真不错,这是第二行] | |||
list_value: | | |||
这个列表真不错 | |||
这是第二行 | |||
! 注意,YAML的初始行为是将所有内容合并到一行中。 | |||
你可以用它轻松地编写列表。 ! | |||
# 部分 | |||
section_value: | |||
subvalue: 这里没有变化。 | |||
subsection: | |||
list: [value1,value2] | |||
# 如果插件需要重写文件,注释会被保留下来。 | |||
# 因此#开头的注释文字不会消失。</source> | |||
'''在这份文档中,如果只有一行值,我就会使用<code>key: ></code>格式,因为这个格式更好用(不需要在有颜色代码时加上<code>''</code>。有列表值时我会使用<code>key: |</code>格式,原因同上。但你也可以使用常规的<code>key: ''</code>和<code>key: - '' - '' ...</code>格式。''' | |||
=变体(材料/粒子/音效)= | =变体(材料/粒子/音效)= | ||
==materials.yml == | 我的插件支持Minecraft1.7至最新版本,纵观Minecraft的版本历史,材料、音效或粒子都有所变化。出于内部兼容性,同时也为了方便我维护插件,我决定让这些变体可进行配置。 | ||
==particles.yml == | |||
==sounds.yml== | 材料、音效和粒子的映射可在<code>/plugins/GCore</code>内的.yml文件内进行配置。 | ||
= | |||
你应该不需要修改这些文件。GCore的<code>config.yml</code>中还包含了一些防止重新生成变体的设置。 | |||
== materials.yml == | |||
<source lang="yaml"># GCore的材料配置 | |||
DIAMOND_AXE: | | |||
>=1.13 DIAMOND_AXE --DAMAGEABLE | |||
? DIAMOND_AXE --DAMAGEABLE | |||
GOLDEN_AXE: | | |||
>=1.13 GOLDEN_AXE --DAMAGEABLE | |||
? GOLD_AXE --DAMAGEABLE | |||
WOODEN_HOE: | | |||
>=1.13 WOODEN_HOE --DAMAGEABLE | |||
? WOOD_HOE --DAMAGEABLE | |||
...</source> | |||
文件内的每个键都是你在其它地方会用到的名称(对大小写敏感,全部为大写)。下面的数据代表了对该键的实际映射。每个逻辑行必须遵循该格式:<code><比较表达式/版本> <内部名称>[:optional 数据值][:optional 耐久度] [额外可选值]</code>. | |||
在上面的例子中,你可以在配置内使用<code>WOODEN_HOE</code>这个名称,它会在1.13+版本映射为<code>WOODEN_HOE</code>或在低版本中映射为<code>WOOD_HOE</code>。 | |||
=== 可选数据 === | |||
在旧版中,你可以设定数据值。比如<code>GREEN_WOOL</code>在1.13及之前的旧版本中映射为数据13,配置如下: | |||
<source lang="yaml">GREEN_WOOL: | | |||
>=1.13 GREEN_WOOL | |||
? WOOL:13</source> | |||
这里的<code>?</code>在未匹配上一行版本时使用(每行内容按顺序处理) | |||
=== 可选耐久度 === | |||
你可能想要匹配特定耐久度的物品。你可以这样配置: | |||
<source lang="yaml">CUSTOM_MATERIAL: | | |||
? DIAMOND_PICKAXE::15</source> | |||
你也可以像这样设置数据值和耐久度:<code>DIAMOND_PICKAXE:1:15</code>,这代表数据值为1耐久度为15的钻石镐。 | |||
=== 额外材料 === | |||
* <code>--DOOR</code> 标记为门类型(比如在插件放置门时使用) | |||
* <code>--TRAVERSABLE</code> 标记为实体可通过的类型 | |||
* <code>--DAMAGEABLE</code> 标记为可破坏的物品类型(工具或盔甲) | |||
== particles.yml == | |||
<source lang="yaml"># GCore的粒子配置文件 | |||
EXPLOSION_NORMAL: | | |||
>=1.8 EXPLOSION_NORMAL | |||
? explode | |||
EXPLOSION_LARGE: | | |||
>=1.8 EXPLOSION_LARGE | |||
? largeexplode | |||
EXPLOSION_HUGE: | | |||
>=1.8 EXPLOSION_HUGE | |||
? hugeexplosion | |||
...</source> | |||
文件内的每个键都是你在其它地方会用到的名称(对大小写敏感,全部为大写)。下面的数据代表了对该键的实际映射。每个逻辑行必须遵循该格式:<code><比较表达式/版本> <内部名称> [额外可选值]</code>. | |||
在上面的例子中,你可以在配置内使用<code>EXPLOSION_HUGE</code>这个名称,它会在1.8+版本映射为<code>EXPLOSION_HUGE</code>或在1.7版本映射为<code>hugeexplosion</code>。 | |||
=== 额外粒子 === | |||
* <code>--COLORABLE</code> 标记为可染色粒子 | |||
* <code>--MUSIC_NOTE</code> 标记为音符 | |||
== sounds.yml == | |||
<source lang="yaml"># GCore的音效配置文件 | |||
ENCHANT_THORNS_HIT: | | |||
? ENCHANT_THORNS_HIT | |||
EVENT_RAID_HORN: | | |||
? EVENT_RAID_HORN | |||
GHAST_FIREBALL: | | |||
>=1.9 ENTITY_ENDERDRAGON_FIREBALL_EXPLODE | |||
? GHAST_FIREBALL | |||
...</source> | |||
文件内的每个键都是你在其它地方会用到的名称(对大小写敏感,全部为大写)。下面的数据代表了对该键的实际映射。每个逻辑行必须遵循该格式:<code><比较表达式/版本> <内部名称></code>. | |||
在上面的例子中,你可以在配置内使用<code>GHAST_FIREBALL</code>这个名称,它会在1.9+版本映射为<code>ENTITY_ENDERDRAGON_FIREBALL_EXPLODE</code>或在1.7和1.8版本映射为<code>GHAST_FIREBALL</code>。 | |||
=通用配置= | |||
这些配置适用于我的所有插件内的全部配置。 | |||
== 物品 == | |||
以下是可用于物品的全部设置。 | |||
基础设置: | |||
<source lang="yaml">type: DIAMOND_SWORD # 物品材料名。这是唯一需要手动调整的设置。 | |||
# 这不需要精准匹配材料名 | |||
# 如果不是精确的材料名,插件会搜索匹配内部名称的材料。 | |||
# 你也可以在1.12及以下旧版本使用数字id | |||
durability: 0 # 默认耐久度为0 | |||
amount: 16 # 默认值为1 | |||
# 你也可以设置非原版的NBT标签 | |||
nbt: | |||
SomeNbtTag: value | |||
AnotherTag: | |||
SubValue: 10 | |||
NbtList: [value1,value2] | |||
unbreakable: false | |||
custom_model_data: 0 # 1.14+ | |||
enchantments: | |||
DAMAGE_ALL: 1 | |||
# 附魔:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html | |||
flags: [] # 值:HIDE_ATTRIBUTES、HIDE_DESTROYS、HIDE_ENCHANTS、HIDE_PLACED_ON、HIDE_POTION_EFFECTS、HIDE_UNBREAKABLE | |||
name: > | |||
&6自定义物品名 | |||
lore: | | |||
&7自定义 | |||
&7lore</source> | |||
具体元设置: | |||
<source lang="yaml"># 书的元数据 | |||
author: GuillaumeVDN | |||
title: 奇书 | |||
generation: ORIGINAL # 1.9+;值:ORIGINAL、COPY_OF_ORIGINAL、COPY_OF_COPY、TATTERED | |||
pages: | | |||
这行显示第一页内容 | |||
这行显示第二页内容 | |||
# 附魔存储元(比如附魔书) | |||
stored_enchantments: | |||
DAMAGE_ALL: 1 | |||
# 附魔:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html | |||
# 烟花效果元(比如烟火之星) | |||
effect: | |||
# …… 详见下方的烟花效果 | |||
# 烟花火箭元 | |||
effects: | |||
1: | |||
# …… 详见下方的烟花效果 | |||
2: | |||
# …… 详见下方的烟花效果 | |||
# 皮革衣服元 | |||
color: red,green,blue | |||
# 药水元 | |||
potion_type: NIGHT_VISION # 1.9+;值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionType.html | |||
extra: EXTENDED # 1.9+;值:EXTENDED、UPGRADED、NONE | |||
color: red,green,blue # 1.12+ | |||
custom_effects: | |||
1: | |||
# …… 详见下方的“药水效果” | |||
2: | |||
# …… 详见下方的“药水效果” | |||
# 玩家头颅元 | |||
owner_id: 6833a1c9-95a5-4c79-bc1f-45341ec0ff40 | |||
owner_name: GuillaumeVDN | |||
skin_data: ... # 编码皮肤数据(可通过mineskins获得,或通过游戏内的头颅导入) | |||
skin_signature: ... # 编码皮肤签名(可通过mineskins获得,或通过游戏内的头颅导入) | |||
# 旗帜元(1.8+) | |||
base_color: YELLOW # 1.13+;值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/DyeColor.html | |||
patterns: | |||
CROSS: BLACK | |||
TRIANGLES_BOTTOM: BLUE | |||
# 图案类型:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/banner/PatternType.html | |||
# 刷怪蛋元(1.11或1.12) | |||
spawned_type: CREEPER # 值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html | |||
# 知识之书元(1.12+) | |||
recipes: | | |||
minecraft:diamond_pickaxe | |||
minecraft:diamond_helmet | |||
# 热带鱼桶元(1.13+) | |||
color: BLUE # 值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/DyeColor.html | |||
pattern_color: RED # 值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/DyeColor.html | |||
pattern: FLOPPER # 值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/TropicalFish.Pattern.html | |||
# 弩元(1.14+) | |||
charged_projectiles: | |||
1: | |||
# 物品配置 | |||
2: | |||
# 物品配置 | |||
# 迷之炖菜元(1.15+) | |||
custom_effects: | |||
1: | |||
# …… 详见下方的“药水效果” | |||
2: | |||
# …… 详见下方的“药水效果”</source> | |||
== 烟花效果 == | |||
<source lang="yaml">type: CREEPER # 值:BALL、BALL_LARGE、STAR、BURST、CREEPER | |||
colors: | | |||
red,green,blue | |||
red,green,blue | |||
fade_colors: | | |||
red,green,blue | |||
red,green,blue | |||
flicker: true | |||
trail: true</source> | |||
== 药水效果 == | |||
<source lang="yaml">type: INVISIBILITY # 值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html | |||
duration: 1 MINUTE | |||
amplifier: 0 | |||
ambient: false | |||
particles: false # 1.8+ | |||
icon: false # 1.13+</source> | |||
== 物品匹配 == | |||
以下是可用于物品匹配的全部设置: | |||
<source lang="yaml">item: | |||
# …… 物品配置(见下方内容) | |||
goal: 100 # 必须拥有的物品数量 | |||
check: ExactSame # 检测方式</source> | |||
可用检测方式: | |||
* <code>ExactSame</code>:物品必须完全匹配 | |||
* <code>SameBase</code>:物品必须至少ID相同(但可以有更多附魔、名称或额外的NBT标签) | |||
<code>SameBase</code>的变体有: | |||
* <code>SameDurability</code>:物品耐久度必须相同 | |||
* <code>NotMoreDamaged</code>:物品耐久度不能低于一定值 | |||
* <code>NameContains</code>:物品名必须包含特定字符 | |||
* <code>LoreContains</code>:物品lore必须包含特定字符 | |||
你可以混合使用。全部可用设置: | |||
* <code>ExactSame</code> | |||
* <code>SameBase</code>(不检测耐久度) | |||
* <code>SameBase_SameDurability</code> | |||
* <code>SameBase_NotMoreDamaged</code> | |||
* <code>SameBase_NameContains</code> | |||
* <code>SameBase_NameContains_SameDurability</code> | |||
* <code>SameBase_NameContains_NotMoreDamaged</code> | |||
* <code>SameBase_LoreContains</code> | |||
* <code>SameBase_LoreContains_SameDurability</code> | |||
* <code>SameBase_LoreContains_NotMoreDamaged</code> | |||
* <code>SameBase_NameContains_LoreContains</code> | |||
* <code>SameBase_NameContains_LoreContains_SameDurability</code> | |||
* <code>SameBase_NameContains_LoreContains_NotMoreDamaged</code> | |||
== 需要物品 == | |||
以下是可用于“需要物品”的全部设置。 | |||
<source lang="yaml">items: # 匹配的物品列表 | |||
a: | |||
# …… 物品匹配(见上方内容) | |||
b: | |||
# …… 物品匹配(见上方内容) | |||
count: 1 # 玩家必须持有列表内的物品数 | |||
# 如果设置为0,则玩家无需持有列表内的物品 | |||
in_hand: false # 是否需要玩家手持物品 | |||
# 如果设置为true,则无视物品数 | |||
in_hand_slot: 4 # 如果开启了in_hand,则玩家需要将物品放在快捷栏第几格 | |||
take: true # 稍后拿走物品 | |||
error_message: > # 如果玩家没有所需物品则显示该消息 | |||
&c你需要物品!</source> | |||
== 提醒 == | |||
以下是可用于提醒的全部设置: | |||
<source lang="yaml"># 消息 | |||
message: | | |||
&a发送给玩家 | |||
&b的多行 | |||
&d消息 | |||
# Actionbar | |||
actionbar: > | |||
&b发送持续10秒的actionbar消息 | |||
actionbar_duration: 10 SECOND | |||
# Bossbar | |||
bossbar: > | |||
&b发送持续10秒的bossbar消息 | |||
bossbar_color: BLUE # 值:BLUE、GREEN、PINK、PURPLE、RED、WHITE、YELLOW | |||
bossbar_style: SOLID # 值:SOLID、SEGMENTED_6、SEGMENTED_10、SEGMENTED_12、SEGMENTED_20 | |||
bossbar_flags: [] # 值:CREATE_FOG、DARKEN_SKY、PLAY_BOSS_MUSIC | |||
bossbar_duration: 10 SECOND | |||
# 标题 | |||
title: > | |||
&b发送标题 | |||
title_subtitle: > | |||
&b持续10秒 | |||
title_fade_in: 1 SECOND | |||
title_duration: 8 SECOND | |||
title_fade_out: 1 SECOND | |||
# 音效 | |||
sound: AMBIENT_CAVE # 值:sounds.yml | |||
sound_volume: 1 | |||
sound_pitch: 1</source> | |||
== 相对位置 == | |||
以下是可用于相对位置的全部设置: | |||
<source lang="yaml">horizontal_angle: 0.0 # 水平角;0.0为正向、180.0为反向 | |||
distance: 1.0 # 离基础位置的距离;这个值用于'horizontal_angle'所对方向 | |||
vertical_offset: 3.0 # Y轴偏移量</source> | |||
== 方块状态 == | |||
这些元素可以让你自定义方块状态: | |||
* <code>AGE [数字]</code> | |||
* <code>ATTACHED [布尔值]</code> | |||
* <code>AXIS [轴]</code>:[https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Axis.html 可在这里查看全部值] | |||
* <code>BISECTED_HALF [half]</code>:[https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/data/Bisected.Half.html 可在这里查看全部值] | |||
* <code>FACING [朝向]</code>:[[https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/BlockFace.html 可在这里查看全部值]] | |||
* <code>FACING_MULTIPLE [朝向]</code>:[https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/BlockFace.html 可在这里查看全部值] | |||
* <code>HONEY_LEVEL [数字]</code> | |||
* <code>LIT [布尔值]</code> | |||
* <code>OPENED [布尔值]</code> | |||
* <code>POWER [数字]</code> | |||
* <code>POWERED [布尔值]</code> | |||
* <code>RAIL_SHAPE [铁轨朝向]</code>:[https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/data/Rail.Shape.html 可在这里查看全部值] | |||
* <code>ROTATION [朝向]</code>:[https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/BlockFace.html 可在这里查看全部值] | |||
* <code>SNOWY [布尔值]</code> | |||
* <code>WATER_LEVEL [数字]</code> | |||
* <code>WATERLOGGED [布尔值]</code> | |||
== GUI类型 == | |||
在你需要自定义GUI类型时会用到这些值: | |||
* <code>CHEST_1_ROW</code> | |||
* <code>CHEST_2_ROW</code> | |||
* <code>CHEST_3_ROW</code> | |||
* <code>CHEST_4_ROW</code> | |||
* <code>CHEST_5_ROW</code> | |||
* <code>CHEST_6_ROW</code> | |||
* <code>DISPENSER</code> | |||
* <code>ANVIL</code> | |||
* <code>BEACON</code> | |||
* <code>BLAST_FURNACE</code> | |||
* <code>BREWING_STAND</code> | |||
* <code>CRAFTING</code> | |||
* <code>ENCHANTMENT</code> | |||
* <code>FURNACE</code> | |||
* <code>GRINDSTONE</code> | |||
* <code>HOPPER</code> | |||
== 持续时间 == | |||
持续时间需遵循该格式:<code><amount of time> <time unit></code>。 | |||
可用的时间单位有: | |||
* <code>MILLISECOND|毫秒</code> | |||
* <code>TICK|刻</code> | |||
* <code>SECOND|秒</code> | |||
* <code>MINUTE|分</code> | |||
* <code>HOUR|时</code> | |||
* <code>DAY|天</code> | |||
* <code>WEEK|周</code> | |||
* <code>MONTH|月</code> | |||
=粒子脚本= | =粒子脚本= | ||
GCore包含“粒子脚本语言”功能,可以让你定义在一些插件中使用的粒子图案。 | |||
你可以在<code>/plugins/GCore/particle_scripts/</code>下对其进行配置,每个.txt文件就是一个脚本。 | |||
下面是一个脚本的实例: | |||
<source lang="yaml"># 增加Y值的同时每刻显示“emeralds” | |||
set(cx, baseX + 0.5) | |||
set(cz, baseZ + 0.5) | |||
set(radius, 0.75) | |||
set(y, baseY) | |||
loop(angle, 0, 720, 15) # 使用可变角度从0到720进行15步循环, | |||
set(x, cx + radius * cos(angle)) # 计算x | |||
set(y, y + 0.015) # 计算y | |||
set(z, cz + radius * sin(angle)) # 计算z | |||
display(VILLAGER_HAPPY, x, y, z, 1) # 显示 | |||
wait_ticks(1) # 等待1刻 | |||
# 等待2秒后重启 | |||
wait_ticks(40)</source> | |||
如你所见,你可以使用注释:以 <code>#</code>开头的文字会被忽略,空行也会被忽略。 | |||
这是一个基于函数的脚本系统,像YAML一样缩进。你可以使用空格或表格(这里更推荐使用表格)。 | |||
== 变量 == | |||
你可以使用在每一个脚本的每一行内使用变量。你可以使用函数定义自定义变量(见下文),你也可以使用默认变量: | |||
* <code>baseX</code>:基础位置的X轴 | |||
* <code>baseY</code>:基础位置的Y轴 | |||
* <code>baseZ</code>:基础位置的Z轴 | |||
== 函数列表 == | |||
这里只有一些简单函数。 | |||
=== set(variable, value) === | |||
用于定义变量。第一个参数是变量名,第二个参数是变量值。值可以包含数学表达式和其它变量。 | |||
=== wait(ticks) === | |||
等待一定时间刻。 | |||
=== display(particle, x, y, z, count) === | |||
在特定位置显示粒子。 | |||
=== display(particle, x, y, z, count, note_color) === | |||
在特定位置显示粒子。这里的粒子是音符,note_color是0-24的数字。 | |||
=== display(particle, x, y, z, count, red, green, blue) === | |||
在特定位置显示粒子。这里的粒子是可染色粒子,可设置三种颜色:红绿蓝。 | |||
=== loop(temporary_variable, begin_value, end_value, step_value) === | |||
循环指令。系统将创建一个含初始值的临时变量,然后在每次执行下面的指令后,将步长值加到该变量值上。当变量达到(或高于/低于)步值,循环就会停止。步值可以是负值,初始值可以高于结束值,这样会反向循环。 | |||
比如: | |||
<pre class="">loop(count, 1, 10, 1) | |||
# 重复该代码10次 | |||
# “count”变量将从1升到10 | |||
# 只要有制表符/缩进,系统就会 | |||
# 认为其在循环内 | |||
loop(count, 10, 1, -1) | |||
# 重复该代码10次 | |||
# “count”变量将从10降到1</pre> | |||
你也可以合并循环来实现更复杂的逻辑: | |||
<pre class="">loop(a, 1, 10, 1) | |||
# 在这里执行操作 | |||
# 更多代码 | |||
loop(b, 1, 5, 1) | |||
# 在这里执行操作 | |||
# 对'a'的每个值执行5次</pre> | |||
== 脚本循环 == | |||
我在页面顶部的第一个实例脚本中编写的最后一个指令——告诉系统等待40次“直到重启”,将取决于脚本在插件中的使用情况:有时,脚本只执行一次,有时会连续重启。最好在最后加上一个冷却重启的<code>wait_ticks(x)</code>函数。 | |||
=位置= | =位置= | ||
以下是可用于配置内的全部位置类型。 | |||
如果位置可以“find random”,则可计算出随机位置(在一些插件内很有用)。 | |||
如果位置可以“find closest”,则计算出离玩家最近的位置(在一些插件内很有用)。 | |||
如果位置可以“fill”,则计算出可填充方块的位置(在一些插件内很有用)。 | |||
== 普通位置类型 == | |||
=== NONE === | |||
无类型位置(用于内部)。 | |||
=== WORLD === | |||
在特定世界内 /<code>can find closest</code> | |||
<source lang='yaml'>world: the_world</source> | |||
=== BIOMES === | |||
在特定群系内 | |||
<source lang='yaml'>biomes: [JUNGLE,JUNGLE_EDGE,JUNGLE_HILLS] # 值:<nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/Biome.html</nowiki></source> | |||
=== SINGLE === | |||
特定位置 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> | |||
<source lang='yaml'>type: SINGLE | |||
location: world,x,y,z | |||
point_tolerance: COORDS # 检查一个位置是否与该位置匹配时应用的点容差。 | |||
# 值: COORDS (匹配坐标), STRICT (distance <= 0.75), REGULAR (distance <= 1.5), LENIENT (distance <= 2.25)</source> | |||
=== AREA_INSIDE === | |||
在区域内 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> | |||
<source lang='yaml'>type: AREA_INSIDE | |||
bound1: world,x,y,z | |||
bound2: world,x,y,z</source> | |||
=== AREA_OUTSIDE === | |||
在区域外 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> (区域轮廓) | |||
<source lang='yaml'>type: AREA_OUTSIDE | |||
bound1: world,x,y,z | |||
bound2: world,x,y,z</source> | |||
=== SPHERE_INSIDE === | |||
在球体内 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> | |||
<source lang='yaml'>type: SPHERE_INSIDE | |||
center: world,x,y,z | |||
radius: 5.0</source> | |||
=== SPHERE_OUTSIDE === | |||
在球体外 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> (球体轮廓) | |||
<source lang='yaml'>type: SPHERE_OUTSIDE | |||
center: world,x,y,z | |||
radius: 5.0</source> | |||
=== CYLINDER_INSIDE === | |||
在圆柱内 /<code>can find random</code> /<code>can find closest</code> | |||
<source lang='yaml'>type: SPHERE_OUTSIDE | |||
center: world,x,y,z # 圆柱中心 (忽略Y轴 ) | |||
radius: 5.0</source> | |||
=== CYLINDER_OUTSIDE === | |||
在圆柱外 /<code>can find random</code> /<code>can find closest</code> | |||
<source lang='yaml'>type: CYLINDER_OUTSIDE | |||
center: world,x,y,z # 圆柱中心 (忽略Y轴 ) | |||
radius: 5.0</source> | |||
== 玩家相关位置类型 == | |||
可以相对于玩家计算的变体。这利用了非常有用的相对位置。 | |||
=== PLAYER_RELATIVE_SINGLE === | |||
相对于玩家的特定位置 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> | |||
<source lang='yaml'>type: PLAYER_RELATIVE_SINGLE | |||
location: | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
point_tolerance: COORDS # 检测位置是否匹配时的点容差 | |||
# 值: COORDS (匹配坐标), STRICT (distance <= 0.75), REGULAR (distance <= 1.5), LENIENT (distance <= 2.25)</source> | |||
=== PLAYER_RELATIVE_AREA_INSIDE === | |||
相对于玩家在区域内 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> | |||
<source lang='yaml'>type: PLAYER_RELATIVE_AREA_INSIDE | |||
bound1: | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
bound2: | |||
# …… 相对位置(详见“通用配置/相对位置”)</source> | |||
=== PLAYER_RELATIVE_AREA_OUTSIDE === | |||
相对于玩家在区域外 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> (区域轮廓) | |||
<source lang='yaml'>type: PLAYER_RELATIVE_AREA_OUTSIDE | |||
bound1: | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
bound2: | |||
# …… 相对位置(详见“通用配置/相对位置”)</source> | |||
=== PLAYER_RELATIVE_SPHERE_INSIDE === | |||
相对于玩家在球体内 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> | |||
<source lang='yaml'>type: PLAYER_RELATIVE_SPHERE_INSIDE | |||
center: | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
radius: 5.0</source> | |||
=== PLAYER_RELATIVE_SPHERE_OUTSIDE === | |||
相对于玩家在球体外 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> (球体轮廓) | |||
<source lang='yaml'>type: PLAYER_RELATIVE_SPHERE_OUTSIDE | |||
center: | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
radius: 5.0</source> | |||
=== PLAYER_RELATIVE_CYLINDER_INSIDE === | |||
相对于玩家在圆柱内 /<code>can find random</code> /<code>can find closest</code> | |||
<source lang='yaml'>type: PLAYER_RELATIVE_SPHERE_OUTSIDE | |||
center: # 圆柱中心 (忽略Y轴 ) | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
radius: 5.0</source> | |||
=== PLAYER_RELATIVE_CYLINDER_OUTSIDE === | |||
相对于玩家在圆柱外 /<code>can find random</code> /<code>can find closest</code> | |||
<source lang='yaml'>type: PLAYER_RELATIVE_CYLINDER_OUTSIDE | |||
center: # 圆柱中心 (忽略Y轴 ) | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
radius: 5.0</source> | |||
== 实体最近相对位置类型 == | |||
可计算匹配的最近匹配的变体。这会在目标位置附近搜索最近匹配的实体,并使用相对位置调整实体位置。 | |||
=== CLOSEST_ENTITY_RELATIVE_SINGLE === | |||
相对于实体的特定位置 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> | |||
<source lang='yaml'>type: CLOSEST_ENTITY_RELATIVE_SINGLE | |||
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki> | |||
entity_names: [] # 允许的实体自定义名称(留空则允许全部) | |||
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色) | |||
location: | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
point_tolerance: COORDS # the point tolerance to apply when checking if a location matches this position | |||
# 值: COORDS (匹配坐标), STRICT (distance <= 0.75), REGULAR (distance <= 1.5), LENIENT (distance <= 2.25)</source> | |||
=== CLOSEST_ENTITY_RELATIVE_AREA_INSIDE === | |||
相对于实体在区域内 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> | |||
<source lang='yaml'>type: CLOSEST_ENTITY_AREA_INSIDE | |||
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki> | |||
entity_names: [] # 允许的实体自定义名称(留空则允许全部) | |||
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色) | |||
bound1: | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
bound2: | |||
# …… 相对位置(详见“通用配置/相对位置”)</source> | |||
=== CLOSEST_ENTITY_RELATIVE_AREA_OUTSIDE === | |||
相对于实体在区域外 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> (区域轮廓) | |||
<source lang='yaml'>type: CLOSEST_ENTITY_AREA_OUTSIDE | |||
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki> | |||
entity_names: [] # 允许的实体自定义名称(留空则允许全部) | |||
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色) | |||
bound1: | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
bound2: | |||
# …… 相对位置(详见“通用配置/相对位置”)</source> | |||
=== CLOSEST_ENTITY_RELATIVE_SPHERE_INSIDE === | |||
相对于实体在球体内 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> | |||
<source lang='yaml'>type: CLOSEST_ENTITY_SPHERE_INSIDE | |||
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki> | |||
entity_names: [] # 允许的实体自定义名称(留空则允许全部) | |||
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色) | |||
center: | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
radius: 5.0</source> | |||
=== CLOSEST_ENTITY_RELATIVE_SPHERE_OUTSIDE === | |||
相对于实体在球体外 /<code>can find random</code> /<code>can find closest</code> /<code>can fill</code> (球体轮廓) | |||
<source lang='yaml'>type: CLOSEST_ENTITY_SPHERE_OUTSIDE | |||
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki> | |||
entity_names: [] # 允许的实体自定义名称(留空则允许全部) | |||
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色) | |||
center: | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
radius: 5.0</source> | |||
=== CLOSEST_ENTITY_RELATIVE_CYLINDER_INSIDE === | |||
相对于实体在圆柱内 /<code>can find random</code> /<code>can find closest</code> | |||
<source lang='yaml'>type: CLOSEST_ENTITY_SPHERE_OUTSIDE | |||
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki> | |||
entity_names: [] # 允许的实体自定义名称(留空则允许全部) | |||
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色) | |||
center: # 圆柱中心 (忽略Y轴 ) | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
radius: 5.0</source> | |||
=== CLOSEST_ENTITY_RELATIVE_CYLINDER_OUTSIDE === | |||
相对于实体在圆柱外 /<code>can find random</code> /<code>can find closest</code> | |||
<source lang='yaml'>type: CLOSEST_ENTITY_CYLINDER_OUTSIDE | |||
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki> | |||
entity_names: [] # 允许的实体自定义名称(留空则允许全部) | |||
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色) | |||
center: # 圆柱中心 (忽略Y轴 ) | |||
# …… 相对位置(详见“通用配置/相对位置”) | |||
radius: 5.0</source> | |||
=时间范围= | =时间范围= | ||
以下是可以用在配置内的全部时间范围类型。 | |||
== 时间范围类型 == | |||
=== NONE|无 === | |||
无时间范围类型(用于内部)。 | |||
<code>type: NONE</code> | |||
=== DAILY|每日 === | |||
<code>type: DAILY | |||
start: # 默认为 00:00 | |||
hour: 15 | |||
minute: 30 | |||
end: # 默认为 23:59 | |||
hour: 16 | |||
minute: 30</code> | |||
=== WEEKLY|每周 === | |||
<code>type: WEEKLY | |||
start: # 默认为 MONDAY|星期一,00:00 | |||
day_of_week: THURSDAY | |||
hour: 15 | |||
minute: 30 | |||
end: # 默认为 SUNDAY|星期日,23:59 | |||
day_of_week: SATURDAY | |||
hour: 15 | |||
minute: 30</code> | |||
=== MONTHLY|每月 === | |||
<code>type: MONTHLY | |||
start: # 默认为 1,00:00 | |||
day_of_month: 15 | |||
hour: 15 | |||
minute: 30 | |||
end: # 默认为 31,23:59 | |||
day_of_month: 31 | |||
hour: 15 | |||
minute: 30</code> | |||
=== YEARLY|每年 === | |||
<code>type: YEARLY | |||
start: # 默认为 JANUARY 1|1月1日,00:00 | |||
month: FEBRUARY | |||
day_of_month: 15 | |||
hour: 15 | |||
minute: 30 | |||
end: # 默认为 DECEMBER 31|12月31日,23:59 | |||
month: APRIL | |||
day_of_month: 31 | |||
hour: 15 | |||
minute: 30</code> | |||
=== LIMITED|限时 === | |||
这和YEARLY相似,但它不会重复至下一年且没有默认值。 | |||
<code>type: LIMITED | |||
start: | |||
month: FEBRUARY | |||
day_of_month: 15 | |||
hour: 15 | |||
minute: 30 | |||
end: | |||
month: APRIL | |||
day_of_month: 31 | |||
hour: 15 | |||
minute: 30</code> |
2020年12月14日 (一) 09:11的最新版本
GuillaumeVDN的插件文档 | |
---|---|
页面 | |
所有插件都有的常见内容 | |
QuestCreator |
Gcore
Gcore通用配置
因为我的全部插件的通用功能都位于/plugins/GCore,比如MySQL标识符、插件语言、变体或粒子脚本,所以你需要了解一些配置设置或文件。一些通用文本也位于GCore的文本文件中。
YAML解析器
我制作了一个可读取和编写.yml文件的YAML解析器。该解析器较Spigot的解析器有所优化和区别。
其优点之一就是它可以在被重写时保留文件注释和配置顺序。它的加载也更加宽松,且拥有更多功能。
下面是一些有效的配置格式示例。
# 简单值
simple_value: 1534
simple_value: true
simple_value: false
simple_value:
simple_value: '这是一个值'
simple_value: "&a这是一个值"
# 进阶值
simple_value: >
&b这个值居然有效!
&a虽然在配置里看起来是两行,但在游戏里会显示为一行。
simple_value: '这样也行
不过不推荐这么用。
最好使用上面 > 的格式'
# 列表值
list_value:
- '&7真不错'
- 第二行
list_value: [这个列表真不错,这是第二行]
list_value: |
这个列表真不错
这是第二行
! 注意,YAML的初始行为是将所有内容合并到一行中。
你可以用它轻松地编写列表。 !
# 部分
section_value:
subvalue: 这里没有变化。
subsection:
list: [value1,value2]
# 如果插件需要重写文件,注释会被保留下来。
# 因此#开头的注释文字不会消失。
在这份文档中,如果只有一行值,我就会使用key: >
格式,因为这个格式更好用(不需要在有颜色代码时加上。有列表值时我会使用
key: |
格式,原因同上。但你也可以使用常规的key:
和key: - - ...
格式。
变体(材料/粒子/音效)
我的插件支持Minecraft1.7至最新版本,纵观Minecraft的版本历史,材料、音效或粒子都有所变化。出于内部兼容性,同时也为了方便我维护插件,我决定让这些变体可进行配置。
材料、音效和粒子的映射可在/plugins/GCore
内的.yml文件内进行配置。
你应该不需要修改这些文件。GCore的config.yml
中还包含了一些防止重新生成变体的设置。
materials.yml
# GCore的材料配置
DIAMOND_AXE: |
>=1.13 DIAMOND_AXE --DAMAGEABLE
? DIAMOND_AXE --DAMAGEABLE
GOLDEN_AXE: |
>=1.13 GOLDEN_AXE --DAMAGEABLE
? GOLD_AXE --DAMAGEABLE
WOODEN_HOE: |
>=1.13 WOODEN_HOE --DAMAGEABLE
? WOOD_HOE --DAMAGEABLE
...
文件内的每个键都是你在其它地方会用到的名称(对大小写敏感,全部为大写)。下面的数据代表了对该键的实际映射。每个逻辑行必须遵循该格式:<比较表达式/版本> <内部名称>[:optional 数据值][:optional 耐久度] [额外可选值]
.
在上面的例子中,你可以在配置内使用WOODEN_HOE
这个名称,它会在1.13+版本映射为WOODEN_HOE
或在低版本中映射为WOOD_HOE
。
可选数据
在旧版中,你可以设定数据值。比如GREEN_WOOL
在1.13及之前的旧版本中映射为数据13,配置如下:
GREEN_WOOL: |
>=1.13 GREEN_WOOL
? WOOL:13
这里的?
在未匹配上一行版本时使用(每行内容按顺序处理)
可选耐久度
你可能想要匹配特定耐久度的物品。你可以这样配置:
CUSTOM_MATERIAL: |
? DIAMOND_PICKAXE::15
你也可以像这样设置数据值和耐久度:DIAMOND_PICKAXE:1:15
,这代表数据值为1耐久度为15的钻石镐。
额外材料
--DOOR
标记为门类型(比如在插件放置门时使用)--TRAVERSABLE
标记为实体可通过的类型--DAMAGEABLE
标记为可破坏的物品类型(工具或盔甲)
particles.yml
# GCore的粒子配置文件
EXPLOSION_NORMAL: |
>=1.8 EXPLOSION_NORMAL
? explode
EXPLOSION_LARGE: |
>=1.8 EXPLOSION_LARGE
? largeexplode
EXPLOSION_HUGE: |
>=1.8 EXPLOSION_HUGE
? hugeexplosion
...
文件内的每个键都是你在其它地方会用到的名称(对大小写敏感,全部为大写)。下面的数据代表了对该键的实际映射。每个逻辑行必须遵循该格式:<比较表达式/版本> <内部名称> [额外可选值]
.
在上面的例子中,你可以在配置内使用EXPLOSION_HUGE
这个名称,它会在1.8+版本映射为EXPLOSION_HUGE
或在1.7版本映射为hugeexplosion
。
额外粒子
--COLORABLE
标记为可染色粒子--MUSIC_NOTE
标记为音符
sounds.yml
# GCore的音效配置文件
ENCHANT_THORNS_HIT: |
? ENCHANT_THORNS_HIT
EVENT_RAID_HORN: |
? EVENT_RAID_HORN
GHAST_FIREBALL: |
>=1.9 ENTITY_ENDERDRAGON_FIREBALL_EXPLODE
? GHAST_FIREBALL
...
文件内的每个键都是你在其它地方会用到的名称(对大小写敏感,全部为大写)。下面的数据代表了对该键的实际映射。每个逻辑行必须遵循该格式:<比较表达式/版本> <内部名称>
.
在上面的例子中,你可以在配置内使用GHAST_FIREBALL
这个名称,它会在1.9+版本映射为ENTITY_ENDERDRAGON_FIREBALL_EXPLODE
或在1.7和1.8版本映射为GHAST_FIREBALL
。
通用配置
这些配置适用于我的所有插件内的全部配置。
物品
以下是可用于物品的全部设置。
基础设置:
type: DIAMOND_SWORD # 物品材料名。这是唯一需要手动调整的设置。
# 这不需要精准匹配材料名
# 如果不是精确的材料名,插件会搜索匹配内部名称的材料。
# 你也可以在1.12及以下旧版本使用数字id
durability: 0 # 默认耐久度为0
amount: 16 # 默认值为1
# 你也可以设置非原版的NBT标签
nbt:
SomeNbtTag: value
AnotherTag:
SubValue: 10
NbtList: [value1,value2]
unbreakable: false
custom_model_data: 0 # 1.14+
enchantments:
DAMAGE_ALL: 1
# 附魔:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html
flags: [] # 值:HIDE_ATTRIBUTES、HIDE_DESTROYS、HIDE_ENCHANTS、HIDE_PLACED_ON、HIDE_POTION_EFFECTS、HIDE_UNBREAKABLE
name: >
&6自定义物品名
lore: |
&7自定义
&7lore
具体元设置:
# 书的元数据
author: GuillaumeVDN
title: 奇书
generation: ORIGINAL # 1.9+;值:ORIGINAL、COPY_OF_ORIGINAL、COPY_OF_COPY、TATTERED
pages: |
这行显示第一页内容
这行显示第二页内容
# 附魔存储元(比如附魔书)
stored_enchantments:
DAMAGE_ALL: 1
# 附魔:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html
# 烟花效果元(比如烟火之星)
effect:
# …… 详见下方的烟花效果
# 烟花火箭元
effects:
1:
# …… 详见下方的烟花效果
2:
# …… 详见下方的烟花效果
# 皮革衣服元
color: red,green,blue
# 药水元
potion_type: NIGHT_VISION # 1.9+;值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionType.html
extra: EXTENDED # 1.9+;值:EXTENDED、UPGRADED、NONE
color: red,green,blue # 1.12+
custom_effects:
1:
# …… 详见下方的“药水效果”
2:
# …… 详见下方的“药水效果”
# 玩家头颅元
owner_id: 6833a1c9-95a5-4c79-bc1f-45341ec0ff40
owner_name: GuillaumeVDN
skin_data: ... # 编码皮肤数据(可通过mineskins获得,或通过游戏内的头颅导入)
skin_signature: ... # 编码皮肤签名(可通过mineskins获得,或通过游戏内的头颅导入)
# 旗帜元(1.8+)
base_color: YELLOW # 1.13+;值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/DyeColor.html
patterns:
CROSS: BLACK
TRIANGLES_BOTTOM: BLUE
# 图案类型:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/banner/PatternType.html
# 刷怪蛋元(1.11或1.12)
spawned_type: CREEPER # 值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html
# 知识之书元(1.12+)
recipes: |
minecraft:diamond_pickaxe
minecraft:diamond_helmet
# 热带鱼桶元(1.13+)
color: BLUE # 值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/DyeColor.html
pattern_color: RED # 值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/DyeColor.html
pattern: FLOPPER # 值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/TropicalFish.Pattern.html
# 弩元(1.14+)
charged_projectiles:
1:
# 物品配置
2:
# 物品配置
# 迷之炖菜元(1.15+)
custom_effects:
1:
# …… 详见下方的“药水效果”
2:
# …… 详见下方的“药水效果”
烟花效果
type: CREEPER # 值:BALL、BALL_LARGE、STAR、BURST、CREEPER
colors: |
red,green,blue
red,green,blue
fade_colors: |
red,green,blue
red,green,blue
flicker: true
trail: true
药水效果
type: INVISIBILITY # 值:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
duration: 1 MINUTE
amplifier: 0
ambient: false
particles: false # 1.8+
icon: false # 1.13+
物品匹配
以下是可用于物品匹配的全部设置:
item:
# …… 物品配置(见下方内容)
goal: 100 # 必须拥有的物品数量
check: ExactSame # 检测方式
可用检测方式:
ExactSame
:物品必须完全匹配SameBase
:物品必须至少ID相同(但可以有更多附魔、名称或额外的NBT标签)
SameBase
的变体有:
SameDurability
:物品耐久度必须相同NotMoreDamaged
:物品耐久度不能低于一定值NameContains
:物品名必须包含特定字符LoreContains
:物品lore必须包含特定字符
你可以混合使用。全部可用设置:
ExactSame
SameBase
(不检测耐久度)SameBase_SameDurability
SameBase_NotMoreDamaged
SameBase_NameContains
SameBase_NameContains_SameDurability
SameBase_NameContains_NotMoreDamaged
SameBase_LoreContains
SameBase_LoreContains_SameDurability
SameBase_LoreContains_NotMoreDamaged
SameBase_NameContains_LoreContains
SameBase_NameContains_LoreContains_SameDurability
SameBase_NameContains_LoreContains_NotMoreDamaged
需要物品
以下是可用于“需要物品”的全部设置。
items: # 匹配的物品列表
a:
# …… 物品匹配(见上方内容)
b:
# …… 物品匹配(见上方内容)
count: 1 # 玩家必须持有列表内的物品数
# 如果设置为0,则玩家无需持有列表内的物品
in_hand: false # 是否需要玩家手持物品
# 如果设置为true,则无视物品数
in_hand_slot: 4 # 如果开启了in_hand,则玩家需要将物品放在快捷栏第几格
take: true # 稍后拿走物品
error_message: > # 如果玩家没有所需物品则显示该消息
&c你需要物品!
提醒
以下是可用于提醒的全部设置:
# 消息
message: |
&a发送给玩家
&b的多行
&d消息
# Actionbar
actionbar: >
&b发送持续10秒的actionbar消息
actionbar_duration: 10 SECOND
# Bossbar
bossbar: >
&b发送持续10秒的bossbar消息
bossbar_color: BLUE # 值:BLUE、GREEN、PINK、PURPLE、RED、WHITE、YELLOW
bossbar_style: SOLID # 值:SOLID、SEGMENTED_6、SEGMENTED_10、SEGMENTED_12、SEGMENTED_20
bossbar_flags: [] # 值:CREATE_FOG、DARKEN_SKY、PLAY_BOSS_MUSIC
bossbar_duration: 10 SECOND
# 标题
title: >
&b发送标题
title_subtitle: >
&b持续10秒
title_fade_in: 1 SECOND
title_duration: 8 SECOND
title_fade_out: 1 SECOND
# 音效
sound: AMBIENT_CAVE # 值:sounds.yml
sound_volume: 1
sound_pitch: 1
相对位置
以下是可用于相对位置的全部设置:
horizontal_angle: 0.0 # 水平角;0.0为正向、180.0为反向
distance: 1.0 # 离基础位置的距离;这个值用于'horizontal_angle'所对方向
vertical_offset: 3.0 # Y轴偏移量
方块状态
这些元素可以让你自定义方块状态:
AGE [数字]
ATTACHED [布尔值]
AXIS [轴]
:可在这里查看全部值BISECTED_HALF [half]
:可在这里查看全部值FACING [朝向]
:[可在这里查看全部值]FACING_MULTIPLE [朝向]
:可在这里查看全部值HONEY_LEVEL [数字]
LIT [布尔值]
OPENED [布尔值]
POWER [数字]
POWERED [布尔值]
RAIL_SHAPE [铁轨朝向]
:可在这里查看全部值ROTATION [朝向]
:可在这里查看全部值SNOWY [布尔值]
WATER_LEVEL [数字]
WATERLOGGED [布尔值]
GUI类型
在你需要自定义GUI类型时会用到这些值:
CHEST_1_ROW
CHEST_2_ROW
CHEST_3_ROW
CHEST_4_ROW
CHEST_5_ROW
CHEST_6_ROW
DISPENSER
ANVIL
BEACON
BLAST_FURNACE
BREWING_STAND
CRAFTING
ENCHANTMENT
FURNACE
GRINDSTONE
HOPPER
持续时间
持续时间需遵循该格式:<amount of time> <time unit>
。
可用的时间单位有:
MILLISECOND|毫秒
TICK|刻
SECOND|秒
MINUTE|分
HOUR|时
DAY|天
WEEK|周
MONTH|月
粒子脚本
GCore包含“粒子脚本语言”功能,可以让你定义在一些插件中使用的粒子图案。
你可以在/plugins/GCore/particle_scripts/
下对其进行配置,每个.txt文件就是一个脚本。
下面是一个脚本的实例:
# 增加Y值的同时每刻显示“emeralds”
set(cx, baseX + 0.5)
set(cz, baseZ + 0.5)
set(radius, 0.75)
set(y, baseY)
loop(angle, 0, 720, 15) # 使用可变角度从0到720进行15步循环,
set(x, cx + radius * cos(angle)) # 计算x
set(y, y + 0.015) # 计算y
set(z, cz + radius * sin(angle)) # 计算z
display(VILLAGER_HAPPY, x, y, z, 1) # 显示
wait_ticks(1) # 等待1刻
# 等待2秒后重启
wait_ticks(40)
如你所见,你可以使用注释:以 #
开头的文字会被忽略,空行也会被忽略。
这是一个基于函数的脚本系统,像YAML一样缩进。你可以使用空格或表格(这里更推荐使用表格)。
变量
你可以使用在每一个脚本的每一行内使用变量。你可以使用函数定义自定义变量(见下文),你也可以使用默认变量:
baseX
:基础位置的X轴baseY
:基础位置的Y轴baseZ
:基础位置的Z轴
函数列表
这里只有一些简单函数。
set(variable, value)
用于定义变量。第一个参数是变量名,第二个参数是变量值。值可以包含数学表达式和其它变量。
wait(ticks)
等待一定时间刻。
display(particle, x, y, z, count)
在特定位置显示粒子。
display(particle, x, y, z, count, note_color)
在特定位置显示粒子。这里的粒子是音符,note_color是0-24的数字。
display(particle, x, y, z, count, red, green, blue)
在特定位置显示粒子。这里的粒子是可染色粒子,可设置三种颜色:红绿蓝。
loop(temporary_variable, begin_value, end_value, step_value)
循环指令。系统将创建一个含初始值的临时变量,然后在每次执行下面的指令后,将步长值加到该变量值上。当变量达到(或高于/低于)步值,循环就会停止。步值可以是负值,初始值可以高于结束值,这样会反向循环。
比如:
loop(count, 1, 10, 1) # 重复该代码10次 # “count”变量将从1升到10 # 只要有制表符/缩进,系统就会 # 认为其在循环内 loop(count, 10, 1, -1) # 重复该代码10次 # “count”变量将从10降到1
你也可以合并循环来实现更复杂的逻辑:
loop(a, 1, 10, 1) # 在这里执行操作 # 更多代码 loop(b, 1, 5, 1) # 在这里执行操作 # 对'a'的每个值执行5次
脚本循环
我在页面顶部的第一个实例脚本中编写的最后一个指令——告诉系统等待40次“直到重启”,将取决于脚本在插件中的使用情况:有时,脚本只执行一次,有时会连续重启。最好在最后加上一个冷却重启的wait_ticks(x)
函数。
位置
以下是可用于配置内的全部位置类型。
如果位置可以“find random”,则可计算出随机位置(在一些插件内很有用)。
如果位置可以“find closest”,则计算出离玩家最近的位置(在一些插件内很有用)。
如果位置可以“fill”,则计算出可填充方块的位置(在一些插件内很有用)。
普通位置类型
NONE
无类型位置(用于内部)。
WORLD
在特定世界内 /can find closest
world: the_world
BIOMES
在特定群系内
biomes: [JUNGLE,JUNGLE_EDGE,JUNGLE_HILLS] # 值:<nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/Biome.html</nowiki>
SINGLE
特定位置 /can find random
/can find closest
/can fill
type: SINGLE
location: world,x,y,z
point_tolerance: COORDS # 检查一个位置是否与该位置匹配时应用的点容差。
# 值: COORDS (匹配坐标), STRICT (distance <= 0.75), REGULAR (distance <= 1.5), LENIENT (distance <= 2.25)
AREA_INSIDE
在区域内 /can find random
/can find closest
/can fill
type: AREA_INSIDE
bound1: world,x,y,z
bound2: world,x,y,z
AREA_OUTSIDE
在区域外 /can find random
/can find closest
/can fill
(区域轮廓)
type: AREA_OUTSIDE
bound1: world,x,y,z
bound2: world,x,y,z
SPHERE_INSIDE
在球体内 /can find random
/can find closest
/can fill
type: SPHERE_INSIDE
center: world,x,y,z
radius: 5.0
SPHERE_OUTSIDE
在球体外 /can find random
/can find closest
/can fill
(球体轮廓)
type: SPHERE_OUTSIDE
center: world,x,y,z
radius: 5.0
CYLINDER_INSIDE
在圆柱内 /can find random
/can find closest
type: SPHERE_OUTSIDE
center: world,x,y,z # 圆柱中心 (忽略Y轴 )
radius: 5.0
CYLINDER_OUTSIDE
在圆柱外 /can find random
/can find closest
type: CYLINDER_OUTSIDE
center: world,x,y,z # 圆柱中心 (忽略Y轴 )
radius: 5.0
玩家相关位置类型
可以相对于玩家计算的变体。这利用了非常有用的相对位置。
PLAYER_RELATIVE_SINGLE
相对于玩家的特定位置 /can find random
/can find closest
/can fill
type: PLAYER_RELATIVE_SINGLE
location:
# …… 相对位置(详见“通用配置/相对位置”)
point_tolerance: COORDS # 检测位置是否匹配时的点容差
# 值: COORDS (匹配坐标), STRICT (distance <= 0.75), REGULAR (distance <= 1.5), LENIENT (distance <= 2.25)
PLAYER_RELATIVE_AREA_INSIDE
相对于玩家在区域内 /can find random
/can find closest
/can fill
type: PLAYER_RELATIVE_AREA_INSIDE
bound1:
# …… 相对位置(详见“通用配置/相对位置”)
bound2:
# …… 相对位置(详见“通用配置/相对位置”)
PLAYER_RELATIVE_AREA_OUTSIDE
相对于玩家在区域外 /can find random
/can find closest
/can fill
(区域轮廓)
type: PLAYER_RELATIVE_AREA_OUTSIDE
bound1:
# …… 相对位置(详见“通用配置/相对位置”)
bound2:
# …… 相对位置(详见“通用配置/相对位置”)
PLAYER_RELATIVE_SPHERE_INSIDE
相对于玩家在球体内 /can find random
/can find closest
/can fill
type: PLAYER_RELATIVE_SPHERE_INSIDE
center:
# …… 相对位置(详见“通用配置/相对位置”)
radius: 5.0
PLAYER_RELATIVE_SPHERE_OUTSIDE
相对于玩家在球体外 /can find random
/can find closest
/can fill
(球体轮廓)
type: PLAYER_RELATIVE_SPHERE_OUTSIDE
center:
# …… 相对位置(详见“通用配置/相对位置”)
radius: 5.0
PLAYER_RELATIVE_CYLINDER_INSIDE
相对于玩家在圆柱内 /can find random
/can find closest
type: PLAYER_RELATIVE_SPHERE_OUTSIDE
center: # 圆柱中心 (忽略Y轴 )
# …… 相对位置(详见“通用配置/相对位置”)
radius: 5.0
PLAYER_RELATIVE_CYLINDER_OUTSIDE
相对于玩家在圆柱外 /can find random
/can find closest
type: PLAYER_RELATIVE_CYLINDER_OUTSIDE
center: # 圆柱中心 (忽略Y轴 )
# …… 相对位置(详见“通用配置/相对位置”)
radius: 5.0
实体最近相对位置类型
可计算匹配的最近匹配的变体。这会在目标位置附近搜索最近匹配的实体,并使用相对位置调整实体位置。
CLOSEST_ENTITY_RELATIVE_SINGLE
相对于实体的特定位置 /can find random
/can find closest
/can fill
type: CLOSEST_ENTITY_RELATIVE_SINGLE
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki>
entity_names: [] # 允许的实体自定义名称(留空则允许全部)
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色)
location:
# …… 相对位置(详见“通用配置/相对位置”)
point_tolerance: COORDS # the point tolerance to apply when checking if a location matches this position
# 值: COORDS (匹配坐标), STRICT (distance <= 0.75), REGULAR (distance <= 1.5), LENIENT (distance <= 2.25)
CLOSEST_ENTITY_RELATIVE_AREA_INSIDE
相对于实体在区域内 /can find random
/can find closest
/can fill
type: CLOSEST_ENTITY_AREA_INSIDE
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki>
entity_names: [] # 允许的实体自定义名称(留空则允许全部)
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色)
bound1:
# …… 相对位置(详见“通用配置/相对位置”)
bound2:
# …… 相对位置(详见“通用配置/相对位置”)
CLOSEST_ENTITY_RELATIVE_AREA_OUTSIDE
相对于实体在区域外 /can find random
/can find closest
/can fill
(区域轮廓)
type: CLOSEST_ENTITY_AREA_OUTSIDE
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki>
entity_names: [] # 允许的实体自定义名称(留空则允许全部)
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色)
bound1:
# …… 相对位置(详见“通用配置/相对位置”)
bound2:
# …… 相对位置(详见“通用配置/相对位置”)
CLOSEST_ENTITY_RELATIVE_SPHERE_INSIDE
相对于实体在球体内 /can find random
/can find closest
/can fill
type: CLOSEST_ENTITY_SPHERE_INSIDE
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki>
entity_names: [] # 允许的实体自定义名称(留空则允许全部)
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色)
center:
# …… 相对位置(详见“通用配置/相对位置”)
radius: 5.0
CLOSEST_ENTITY_RELATIVE_SPHERE_OUTSIDE
相对于实体在球体外 /can find random
/can find closest
/can fill
(球体轮廓)
type: CLOSEST_ENTITY_SPHERE_OUTSIDE
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki>
entity_names: [] # 允许的实体自定义名称(留空则允许全部)
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色)
center:
# …… 相对位置(详见“通用配置/相对位置”)
radius: 5.0
CLOSEST_ENTITY_RELATIVE_CYLINDER_INSIDE
相对于实体在圆柱内 /can find random
/can find closest
type: CLOSEST_ENTITY_SPHERE_OUTSIDE
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki>
entity_names: [] # 允许的实体自定义名称(留空则允许全部)
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色)
center: # 圆柱中心 (忽略Y轴 )
# …… 相对位置(详见“通用配置/相对位置”)
radius: 5.0
CLOSEST_ENTITY_RELATIVE_CYLINDER_OUTSIDE
相对于实体在圆柱外 /can find random
/can find closest
type: CLOSEST_ENTITY_CYLINDER_OUTSIDE
entity_types: [CREEPER] # 允许的实体类型(留空则为全部实体类型) 值: <nowiki>https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html</nowiki>
entity_names: [] # 允许的实体自定义名称(留空则允许全部)
entity_colors: [] # 允许的实体颜色(留空则允许全部颜色)
center: # 圆柱中心 (忽略Y轴 )
# …… 相对位置(详见“通用配置/相对位置”)
radius: 5.0
时间范围
以下是可以用在配置内的全部时间范围类型。
时间范围类型
NONE|无
无时间范围类型(用于内部)。
type: NONE
DAILY|每日
type: DAILY
start: # 默认为 00:00
hour: 15
minute: 30
end: # 默认为 23:59
hour: 16
minute: 30
WEEKLY|每周
type: WEEKLY
start: # 默认为 MONDAY|星期一,00:00
day_of_week: THURSDAY
hour: 15
minute: 30
end: # 默认为 SUNDAY|星期日,23:59
day_of_week: SATURDAY
hour: 15
minute: 30
MONTHLY|每月
type: MONTHLY
start: # 默认为 1,00:00
day_of_month: 15
hour: 15
minute: 30
end: # 默认为 31,23:59
day_of_month: 31
hour: 15
minute: 30
YEARLY|每年
type: YEARLY
start: # 默认为 JANUARY 1|1月1日,00:00
month: FEBRUARY
day_of_month: 15
hour: 15
minute: 30
end: # 默认为 DECEMBER 31|12月31日,23:59
month: APRIL
day_of_month: 31
hour: 15
minute: 30
LIMITED|限时
这和YEARLY相似,但它不会重复至下一年且没有默认值。
type: LIMITED
start:
month: FEBRUARY
day_of_month: 15
hour: 15
minute: 30
end:
month: APRIL
day_of_month: 31
hour: 15
minute: 30