本帖最后由 名副其实 于 2023-3-27 22:50 编辑
GUI 样式
所有与菜单相关的配置以及选项。
语法
(译者注:此处所做标记在开头已有介绍。)
复制代码
菜单标题
复制代码
菜单标题显示在GUI上方。此处可使用彩色字符以及格式符,以及 PlaceholderAPI 变量。
开启命令
单个命令开启菜单示例:
复制代码
多个命令开启菜单示例:
复制代码
用以打开菜单的命令。仅能包含一个单词。
备注: 该项为选填项,若不需要该选项可直接删除。
Open Requirements
复制代码
设置一个玩家打开菜单必须有的条件。检阅条件页面以获得更多信息。
打开执行命令
很容易和上面的 open_command 搞混。
复制代码
设置玩家在打开菜单后执行的命令。
关闭执行命令 [close_commands]
复制代码
在菜单内以 [close] (关闭菜单动作)退出菜单时执行的指令。
GUI 种类
复制代码
默认值为: CHEST (箱子)
可使用的GUI类型:
- ANVIL (铁砧)
- BARREL (木桶)
- BEACON (信标)
- BLAST_FURNACE (高炉)
- BREWING (炼药台)
- CARTOGRAPHY ( 制图台)
- DISPENSER (发射器)
- DROPPER (投掷器)
- ENCHANTING (附魔台)
- ENDER_CHEST (末影箱)
- FURNACE (熔炉)
- GRINDSTONE (磨石)
- HOPPER (漏斗)
- LOOM (织布机)
- PLAYER (玩家背包)
- SHULKER_BOX (潜影盒)
- SMOKER (烟熏炉)
- WORKBENCH (工作台)
允许你设置 GUI 的类型。
GUI 大小
复制代码
默认值: 54
可用值:
- 9 (一行)
- 18 (两行)
- 27 (普通箱子)
- 36 (四行)
- 45 (五行)
- 54 (大型箱子)
Size 参数仅对 箱子(CHEST) 类型的 GUI 有效,另外该参数为可选参数,不填则默认为 54 格。
注册命令选项
复制代码
将打开菜单的命令注册至服务器(译者注:注册后可按 TAB 键补全命令)
仅能手动地添加至菜单。
参数
复制代码
TEXT 即为参数名称 (不可重复)。
允许你在开启菜单的命令后设置参数,之后再将这些命令以内建变量 {输入文本} 的形式,注入菜单供其使用。
允许你有多个参数,它们在开启菜单命令后的顺序遵循配置文本内的设置,分别将这些输入的参数赋值给对应的内建变量。
复制代码复制代码
于是,{first} 返回值为 FirstArg
{second} 返回值为 SecondArg
{last} 返回值为 And the rest
在上述参数加入时,我们非常推荐加入下述的参数信息功能。
上述参数需要 Register Command 项为 true。
参数用法提示
复制代码
为菜单设置参数用法信息。若玩家没有正确输入参数,那么该信息将会被发送以提醒玩家输入正确的参数。此处可使用彩色字符和格式符。需要设置 Arguments 才可启用该项。
刷新间隔
复制代码
该选项用于任意使用 update: 选项的物品。
数字决定刷新物品 Lore/名称 内变量的时间间隔,单位为秒。
注意: 该选项仅用于刷新/更新物品中的变量。
物品
复制代码
该参数不应当被修改为其他名字。仅用于告诉插件此处往下开始定义菜单内的物品。
检阅 Item 页面以获得更多信息。
GUI 样式
所有与菜单相关的配置以及选项。
语法
(译者注:此处所做标记在开头已有介绍。)
- menu_title: "TEXT"
- open_command: COMMAND
- open_requirement: EXPRESSION
- open_commands:
- - "[操作种类] 操作参数"
- - "[操作种类] 操作参数"
- inventory_type: "TEXT"
- size: #
- update_interval: #
- items:
菜单标题
- menu_title: "TEXT"
The menu title that is shown at the top of the GUI. You can use color and formatting codes here, and PlaceholderAPI placeholders.
菜单标题显示在GUI上方。此处可使用彩色字符以及格式符,以及 PlaceholderAPI 变量。
开启命令
单个命令开启菜单示例:
- open_command: COMMAND
多个命令开启菜单示例:
- open_command:
- - COMMAND
- - COMMAND_2
The command used to open the GUI menu. It can only be a single word.
用以打开菜单的命令。仅能包含一个单词。
To disable the open command, simply delete the line of this option.
备注: 该项为选填项,若不需要该选项可直接删除。
Open Requirements
- open_requirement:
- requirements:
- TEXT:
- type: <种类>
Sets requirements a player should have to open the GUI menu. Check the Requirements page for more info.
设置一个玩家打开菜单必须有的条件。检阅条件页面以获得更多信息。
打开执行命令
很容易和上面的 open_command 搞混。
- open_commands:
- - "[ACTIONTYPE] ACTION"
- - "[ACTIONTYPE] ACTION"
Runs the command(s) you set when the player opens the menu.
设置玩家在打开菜单后执行的命令。
关闭执行命令 [close_commands]
- close_commands:
- - "[ACTIONTYPE] ACTION"
- - "[ACTIONTYPE] ACTION"
Runs the command(s) you set when the player close the menu by clicking an item that have the close action ([close]).
在菜单内以 [close] (关闭菜单动作)退出菜单时执行的指令。
GUI 种类
- inventory_type: "TEXT"
默认值为: CHEST (箱子)
可使用的GUI类型:
- ANVIL (铁砧)
- BARREL (木桶)
- BEACON (信标)
- BLAST_FURNACE (高炉)
- BREWING (炼药台)
- CARTOGRAPHY ( 制图台)
- DISPENSER (发射器)
- DROPPER (投掷器)
- ENCHANTING (附魔台)
- ENDER_CHEST (末影箱)
- FURNACE (熔炉)
- GRINDSTONE (磨石)
- HOPPER (漏斗)
- LOOM (织布机)
- PLAYER (玩家背包)
- SHULKER_BOX (潜影盒)
- SMOKER (烟熏炉)
- WORKBENCH (工作台)
Allows you to define a different type of Inventory.
允许你设置 GUI 的类型。
GUI 大小
- size: #
默认值: 54
可用值:
- 9 (一行)
- 18 (两行)
- 27 (普通箱子)
- 36 (四行)
- 45 (五行)
- 54 (大型箱子)
Size option only works for CHEST inventory types. Even for that it is optional and will default to 54.
Size 参数仅对 箱子(CHEST) 类型的 GUI 有效,另外该参数为可选参数,不填则默认为 54 格。
注册命令选项
- register_command: true
Registers the open command with the server.
将打开菜单的命令注册至服务器(译者注:注册后可按 TAB 键补全命令)
Must be manually added to the menu.
仅能手动地添加至菜单。
参数
- args:
- - "TEXT"
- - "TEXT"
- - "TEXT"
TEXT The argument name (Should be unique).
TEXT 即为参数名称 (不可重复)。
Gives you the ability to set arguments after the open command, and use them inside the menu by adding the argument placeholder (the argument name inside curly braces {TEXT}).
You can have multiple arguments, and they will be set in the same order in the open command.
允许你在开启菜单的命令后设置参数,之后再将这些命令以内建变量 {输入文本} 的形式,注入菜单供其使用。
允许你有多个参数,它们在开启菜单命令后的顺序遵循配置文本内的设置,分别将这些输入的参数赋值给对应的内建变量。
- /COMMAND FirstArg SecondArg And the rest
- args:
- - first
- - second
- - last
{first} returns FirstArg
{second} returns SecondArg
{last} returns And the rest
于是,{first} 返回值为 FirstArg
{second} 返回值为 SecondArg
{last} 返回值为 And the rest
It's highly recommended to add the Args Usage Message option.
Requires Register Command to be true.
在上述参数加入时,我们非常推荐加入下述的参数信息功能。
上述参数需要 Register Command 项为 true。
参数用法提示
- args_usage_message: "TEXT"
Sets the usage message for the menu. If the player didn't set the required arguments. It will be sent to the player if he didn't set the arguments. You can use color and formatting codes here. Requires Arguments to be defined.
为菜单设置参数用法信息。若玩家没有正确输入参数,那么该信息将会被发送以提醒玩家输入正确的参数。此处可使用彩色字符和格式符。需要设置 Arguments 才可启用该项。
刷新间隔
- update_interval: #
This is for any items that use the update: option (Check it here).
The number defines the delay (in seconds) between each refresh of the placeholders in an item's lore/display name.
Note: This refreshes/updates the placeholders only.
该选项用于任意使用 update: 选项的物品。
数字决定刷新物品 Lore/名称 内变量的时间间隔,单位为秒。
注意: 该选项仅用于刷新/更新物品中的变量。
物品
- items:
This line should be left as is. It is merely telling the plugin you are about to begin defining items.
Check the Item page for more information.
该参数不应当被修改为其他名字。仅用于告诉插件此处往下开始定义菜单内的物品。
检阅 Item 页面以获得更多信息。
本帖最后由 名副其实 于 2023-3-27 23:04 编辑
菜单物品
语法
复制代码
注意:
每一个物品都会有一个名称,在这个示例内,它的名字叫做 ItemName,该名称不应当与其他物品名称重复,因此一个菜单内不会出现存在两个名为 ItemName 的物品。
材料
复制代码
支持填入的材料值:
- 普通物品名称 (如: STONE)
- 玩家头颅 (如: head-extended_clip)
- 变量头颅 (head-%player_name%)。
- 参数头颅 (head-{参数})。
- Base64 头颅 (basehead-<头颅base64码 (译者注:可在给予命令内找到)>)。
- Minecraft 纹理 (texture-<id>)
# 该ID尾随在 https://textures.minecraft.net/textures/ 中找到的物品后
- EpicHeads 头颅 (heads-<ID>)。
- HeadDatabase 头颅 (hdb-<ID>)。
- Placeholder 变量纹理 (placeholder-%player_item_in_hand%)。
- 主手物品 (main_hand)。
- 副手物品 (off_hand)。
- 装备栏内物品 (armor_helmet(头),armor_chestplate(胸甲),armor_leggings(护腿)以及 armor_boots(靴子))
- 水瓶材质: water_bottle
复制代码
在 1.12.2 或更低的版本中:
检阅 Data 篇以指定物品的数据值(冒号 “:” 后的数字) 例如,黄绿色羊毛可作下列写法:
复制代码
数据
复制代码
支持填入的值:
- 整数,例如 "1"。
- 任意能返回整数值的变量。例如 “placeholder-%player_item_in_hand_data%”。
在 1.12.2 或更低的版本中:
该选项将会指定物品耐久值 (冒号 ":" 后的数字) 的数据值(取决于材料选项的设定值)。
物品数量
复制代码
设置菜单内该格子的物品数量。
动态数量
复制代码
以变量的形式设置菜单内该格子的物品数量。
NBT 标签 / CustomModelData
复制代码
Custom Model Data 示例: nbt_int: CustomModelData:1
允许在菜单内物品加入诸如模型数据的标签,使你能够通过服务器的自定义材质包,在菜单内显示自定义物品。
现在 nbt tags 项已支持 PlacdeholderAPI 变量!
旗帜数据
复制代码
- 染料颜色列表
- 旗帜样式列表
允许你设置自定义旗帜的颜色/样式 (仅在 Material 项为旗帜时有效。)
物品附加属性
复制代码
- 完整物品附加属性列表。
允许设置物品附加属性。
药水效果
复制代码
- 药水效果列表。
允许你设置物品效果 (若 material 设置为药水,喷溅型药水或药水箭,则该项设置有效)
若你想要该项工作,你仍需要设定药水/药水箭的 RGB 值。
RGB
复制代码
示例:
复制代码
复制代码
设置物品的 RGB (红绿蓝三原色) 值,仅支持染色皮革盔甲,药水,喷溅型药水,药水箭和烟火之星。
若要 RGB 能够在药水/药水箭上正常起作用,你还需要为它设置一个 potion_effect 值。
显示名称
复制代码
设置物品显示名称。变量,彩色字符以及格式符能在此处使用。
Lore [lore]
复制代码
设置物品的 Lore(展示在物品名称下方的描述)。变量,彩色字符以及格式符,还有换行符(“\n”)能在此处使用。
槽位
复制代码
复制代码
设置菜单内哪些物品该在哪些格子中。
格子从 0 开始数起。
多个物品可在同一格子内,但你必须使用 requirement 条件加以限制,使其能够正常显示。
大型箱子内的格子序号一览。
权重/优先级
复制代码
设置物品展示优先度。该情况适用于将多个物品(通过 requirement 参数)展示在同一格内。
拥有最高优先度的物品将会被最先用于检查玩家是否达到了该物品显示的条件。若满足物品它将展示物品,若没有满足条件则检查下一个物品,依此类推直至完成整个遍历列表。
最低优先级为 0
最高优先级为 2147483647 (2^31-1)
显示条件
复制代码
设置玩家若要看见该物品需要满足的条件。(若要设置多个物品在同一个格子内展示,请参考上述 Priority 参数介绍)
自动刷新
复制代码
若设置为 true,它将仅会自动更新菜单中物品的 Lore、物品名称中包含的变量。
设置 interval 项来调整刷新间隔。
附魔
复制代码
- 附魔列表。
Enchantments 选项允许物品菜单内拥有附魔。(可设置 flag 的 hide enhantments 选项以隐藏附魔)
受游戏本身设定影响,部分物品不能获得附魔光效。
隐藏附魔
复制代码
若设置为 true,它将会在工具的提示框内隐藏附魔名称。
若要单纯设置附魔光效,可选择将该项启用,从而隐藏附魔名称。
隐藏属性
复制代码
若设置为 true ,它将会隐藏所选物品/防具的原版属性 (例如: 7 攻击伤害)。
隐藏效果
复制代码
若设置为 true ,它将会隐藏物品下方显示的药水效果。
隐藏“不可破坏”标签
复制代码
若设置为 true ,在 “unbreakable:” 标签启用的情况下,它将会隐藏物品的“不可破坏”标签。
不可破坏
复制代码
若设置为 true ,展示的工具类物品将保持满耐久。
动作命令
复制代码
设置按住不同按键情况下玩家点击执行不同的命令。操作列表内的执行顺序默认为从上往下。
检阅此处(上方 Action 列表)以获得所有可用的操作种类和操作参数。
中键点击的操作方式在 1.18+ 被 Mojang 官方移除。
动作条件
复制代码
设置按住不同按键情况下玩家点击执行不同命令的前提条件。(检阅章节 Requirements 以获得更多关于 EXPRESSION 处写法的帮助)
此处可设置拒绝命令或条件。检阅此处(requirement syntax)以获得更多信息。
检阅此处(译者注:帖内为上方 Action 列表)以获得所有可用的操作种类和操作参数。
菜单物品
语法
- items:
- "ItemName":
- material: TEXT
- slot: #
Note:
Each item will have a name, in this example our item is called ItemName. This name should be unique, so there won't be two or more items with the same name.
注意:
每一个物品都会有一个名称,在这个示例内,它的名字叫做 ItemName,该名称不应当与其他物品名称重复,因此一个菜单内不会出现存在两个名为 ItemName 的物品。
材料
- material: TEXT
支持填入的材料值:
- 普通物品名称 (如: STONE)
- 玩家头颅 (如: head-extended_clip)
- 变量头颅 (head-%player_name%)。
- 参数头颅 (head-{参数})。
- Base64 头颅 (basehead-<头颅base64码 (译者注:可在给予命令内找到)>)。
- Minecraft 纹理 (texture-<id>)
# 该ID尾随在 https://textures.minecraft.net/textures/ 中找到的物品后
- EpicHeads 头颅 (heads-<ID>)。
- HeadDatabase 头颅 (hdb-<ID>)。
- Placeholder 变量纹理 (placeholder-%player_item_in_hand%)。
- 主手物品 (main_hand)。
- 副手物品 (off_hand)。
- 装备栏内物品 (armor_helmet(头),armor_chestplate(胸甲),armor_leggings(护腿)以及 armor_boots(靴子))
- 水瓶材质: water_bottle
Sets the material of the item in the menu.[/code]
为菜单内图标设置显示物品。
[quote]For version 1.12.2 or older:
Check Data option to specify the data of the item (the number after the colon :). e.g. Lime Wool would be
- material: WOOL
- data: 5
在 1.12.2 或更低的版本中:
检阅 Data 篇以指定物品的数据值(冒号 “:” 后的数字) 例如,黄绿色羊毛可作下列写法:
- material: WOOL
- data: 5
数据
- data: #
支持填入的值:
- 整数,例如 "1"。
- 任意能返回整数值的变量。例如 “placeholder-%player_item_in_hand_data%”。
For version 1.12.2 or older:
This option will specify the data value (the number after the colon :) of the item or the item's durability (depends on the Material option).
在 1.12.2 或更低的版本中:
该选项将会指定物品耐久值 (冒号 ":" 后的数字) 的数据值(取决于材料选项的设定值)。
物品数量
- amount: #
Sets the item's amount in the menu.
设置菜单内该格子的物品数量。
动态数量
- dynamic_amount: '%placeholder%'
Sets the item's amount in the menu using a placeholder.
以变量的形式设置菜单内该格子的物品数量。
NBT 标签 / CustomModelData
- nbt_string: '<Key>:<StringValue>'
- nbt_strings:
- - '<Key>:<StringValue>'
- - '<Key>:<StringValue>'
- nbt_int: '<Key>:<IntegerValue>'
- nbt_ints:
- - '<Key>:<IntegerValue>'
- - '<Key>:<IntegerValue>'
Custom Model Data 示例: nbt_int: CustomModelData:1
Allows you to add custom nbt tags to your items like model data so you can display custom models provided by your server resource pack.
允许在菜单内物品加入诸如模型数据的标签,使你能够通过服务器的自定义材质包,在菜单内显示自定义物品。
The nbt tags options support PlaceholderAPI placeholders now!
现在 nbt tags 项已支持 PlacdeholderAPI 变量!
旗帜数据
- banner_meta:
- - <dyecolor>;<patterntype>
- - <dyecolor>;<patterntype>
- 染料颜色列表
- 旗帜样式列表
Allows you to create your custom banner (Used if the material is a banner).
允许你设置自定义旗帜的颜色/样式 (仅在 Material 项为旗帜时有效。)
物品附加属性
- item_flags:
- - <ItemFlag>
- - <ItemFlag>
- 完整物品附加属性列表。
Allows you to set item flags.
允许设置物品附加属性。
药水效果
- potion_effects:
- - <PotionEffectType>;<duration>;<amplifier>
- - <PotionEffectType>;<duration>;<amplifier>
- 药水效果列表。
Allows you to set effects (Used if the material is a potion, splash_potion and tipped arrows).
允许你设置物品效果 (若 material 设置为药水,喷溅型药水或药水箭,则该项设置有效)
For potion_effects to work on potions and tipped arrows you also need to give it an RGB value.
若你想要该项工作,你仍需要设定药水/药水箭的 RGB 值。
RGB
- rgb: #,#,#
示例:
- rgb: 38,192,210
- Sets the RGB (Red, Green, Blue) color for leather armor, potions, splash potions, tipped arrows and firework stars
设置物品的 RGB (红绿蓝三原色) 值,仅支持染色皮革盔甲,药水,喷溅型药水,药水箭和烟火之星。
For RGB option to work on potions and tipped arrows you also need to give it at least one potion_effect.
若要 RGB 能够在药水/药水箭上正常起作用,你还需要为它设置一个 potion_effect 值。
显示名称
- display_name: "TEXT"
Sets the item's display name. You can use placeholders and color/format codes
设置物品显示名称。变量,彩色字符以及格式符能在此处使用。
Lore [lore]
- lore:
- - "TEXT"
- - "TEXT"
Sets the item's lore (the text shown under the item's name). You can use placeholders and color/format codes and the new line character (\n) in this option.
设置物品的 Lore(展示在物品名称下方的描述)。变量,彩色字符以及格式符,还有换行符(“\n”)能在此处使用。
槽位
- slot: #
- slots:
- - #
- - #
- - #
-
- # OR
-
- slots:
- - #-#
- - #-#
Sets in which slot the item should be inside the menu.
设置菜单内哪些物品该在哪些格子中。
Slots start at 0.
Multiple items can be in the same slot, but you'll have to use view requirement and priority options to work properly.
格子从 0 开始数起。
多个物品可在同一格子内,但你必须使用 requirement 条件加以限制,使其能够正常显示。
大型箱子内的格子序号一览。
权重/优先级
- priority: #
Sets the item priority. It's used if you want different items in the same slot (by using the view requirement option).
The item that has the highest priority will be checked first if the player has the required view requirement. It will display the item if they have the requirements and if not, it will check the next item and so on.
设置物品展示优先度。该情况适用于将多个物品(通过 requirement 参数)展示在同一格内。
拥有最高优先度的物品将会被最先用于检查玩家是否达到了该物品显示的条件。若满足物品它将展示物品,若没有满足条件则检查下一个物品,依此类推直至完成整个遍历列表。
The highest priority is 0.
The lowest priority is 2147483647.
最低优先级为 0
最高优先级为 2147483647 (2^31-1)
显示条件
- view_requirement: 'EXPRESSION'
Sets the requirements the player should have to see the item. (Check priority option for setting up multiple items in the same slot).
Check the Requirements page for more info about this option's value and how to use it.
设置玩家若要看见该物品需要满足的条件。(若要设置多个物品在同一个格子内展示,请参考上述 Priority 参数介绍)
自动刷新
- update: BOOLEAN # true or false
If set to true, it will update the placeholders in the item's display name and lore only.
Check the update interval GUI option to set the update speed.
若设置为 true,它将仅会自动更新菜单中物品的 Lore、物品名称中包含的变量。
设置 interval 项来调整刷新间隔。
附魔
- enchantments:
- - enchantmentid;level
- - enchantmentid;level
- 附魔列表。
Enchants the item with the specified enchantments. (Check the hide enchantments option to hide the enchantments)
Enchantments 选项允许物品菜单内拥有附魔。(可设置 flag 的 hide enhantments 选项以隐藏附魔)
Some items cannot have the enchanting glow effect
受游戏本身设定影响,部分物品不能获得附魔光效。
隐藏附魔
- hide_enchantments: BOOLEAN # true or false
If set to true, it will hide the enchantments you set for the item using the enchantments option from the item's tooltip (lore).
Used to add the enchanting glow effect to the item without showing the enchantments text.
若设置为 true,它将会在工具的提示框内隐藏附魔名称。
若要单纯设置附魔光效,可选择将该项启用,从而隐藏附魔名称。
隐藏属性
- hide_attributes: BOOLEAN # true or false
If set to true, it will hide the vanilla attributes of an item/armor (e.g. 7 Attack Damage).
若设置为 true ,它将会隐藏所选物品/防具的原版属性 (例如: 7 攻击伤害)。
隐藏效果
- hide_effects: BOOLEAN # true or false
If set to true, it will hide the potion's effect text beneath the item name.
若设置为 true ,它将会隐藏物品下方显示的药水效果。
隐藏“不可破坏”标签
- hide_unbreakable: BOOLEAN # true or false
If set to true, it will hide the unbreakable tag if the "unbreakable:" option is enabled.
若设置为 true ,在 “unbreakable:” 标签启用的情况下,它将会隐藏物品的“不可破坏”标签。
不可破坏
- unbreakable: BOOLEAN # true or false
If set to true, it will show the item to be at full durability.
若设置为 true ,展示的工具类物品将保持满耐久。
动作命令
- # click_commands: or
- # left_click_commands: or
- # right_click_commands: or
- # middle_click_commands: or
- # shift_left_click_commands: or
- shift_right_click_commands:
- - "[ACTIONTYPE] ACTION"
- - "[ACTIONTYPE] ACTION"
Sets the actions/commands that should be executed once the player clicks the item. they get executed in order from top to bottom.
Check this for all action types and action tags.
设置按住不同按键情况下玩家点击执行不同的命令。操作列表内的执行顺序默认为从上往下。
检阅此处(上方 Action 列表)以获得所有可用的操作种类和操作参数。
Middle clicking was removed by Mojang in 1.18 and newer!
中键点击的操作方式在 1.18+ 被 Mojang 官方移除。
动作条件
- # click_requirement: or
- # left_click_requirement: or
- # right_click_requirement: or
- # middle_click_requirement: or
- # shift_left_click_requirement: or
- shift_right_click_requirement:
- requirements: 'EXPRESSION'
- deny_commands:
- - "[ACTIONTYPE] ACTION"
- - "[ACTIONTYPE] ACTION"
Sets the requirements the player should have to click the item (Check the Requirements page for more info about the EXPRESSION value).
Deny commands (optional) are the actions that are going to be executed if the player doesn't have the required requirements. But if (s)he does, it will execute the actions specified in the click commands option.
设置按住不同按键情况下玩家点击执行不同命令的前提条件。(检阅章节 Requirements 以获得更多关于 EXPRESSION 处写法的帮助)
You can have deny commands per requirement. Check this page for more information.
此处可设置拒绝命令或条件。检阅此处(requirement syntax)以获得更多信息。
Check this for all action types and action tags.
检阅此处(译者注:帖内为上方 Action 列表)以获得所有可用的操作种类和操作参数。
本帖最后由 名副其实 于 2022-1-30 22:39 编辑
| Requirements | 条件判断
重要提示
鼠标左键/Shift+左键/Shift+右键/鼠标中键 的点击触发条件在没有对应键位的命令设置的情况下不会起作用。即使设置了 success_commands 也是如此。
Syntax | 语法
复制代码
Requirements 模块允许你限制特定或整个菜单的执行条件,从而使玩家能够使用和/或访问特定的菜单。
Requirements | 条件适用范围速览
Requirement types | 条件种类
在像原版那样使用 "!" 来表示反向过滤时,请务必保证整个条件式通过引号包括起来。这是因为 "!" 在 YAML 语言中是一个特殊的符号,因此它的存在会影响插件对条件判断式的检测。
Has permission | 权限检测
复制代码
检查玩家是否拥有特定权限。
若要反转条件(检查玩家是否没有特定权限) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!has permission")
Has money | 经济单位检测
复制代码
检查玩家是否有足够数量的钱 (需要安装 Vault)
若要反转条件(检查玩家是否没有达到特定数量的钱) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!has money")
若要使用返回整数值的变量为此处的金币数量,请将 amount: 改为 placeholder:
Has item | 物品检测
复制代码
必须填入的参数:
- material
检查玩家背包是否有特定的物品。
若要反转条件(检查玩家是否没有特定的物品) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!has item")
Has Meta | Meta 值检测
Meta 项使用 Persistent Data Containers ,这意味着该机制仅将在 1.14+ 工作。
复制代码
必须填入的参数:
- key
- meta_type
- value
检查玩家是否有特定的 meta 值。
若 meta_type 为数字格式 (DOUBLE, LONG, INTEGER),那么它将会默认比较玩家的 meta 值是否大于等于该条件中给定的值。
若要反转条件(检查玩家 meta 值是否小于给定值) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!has meta")
Has exp | 经验值检测
复制代码
必须填入的参数:
- amount
检查玩家是否达到了特定的经验值或等级。
若 level 参数不存在,默认将会检查玩家的经验值而不是经验值等级。
若要反转条件(检查玩家经验值是否小于给定值) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!has exp")
Is Near | 坐标距离检测
复制代码
必须填入的参数:
- loaction
- distance
检查玩家是否在某个世界特定坐标的半径内。
若要反转条件(检查玩家所处位置是否不处于给定坐标的半径范围内) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!is near")
JavaScript | JavaScript 表达式
复制代码
示例:
复制代码
计算必须返回 true 和 false 的 JS 表达式的结果。
String Equals | 字符串比较
复制代码
示例:
复制代码
比较变量(input:)和给定字符串(output:)是否相等 (大小写敏感)
若要反转条件(检查变量是否不等于给定字符串) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!string equals")
String Equals Ignore Case | 无视大小写的字符串比较
复制代码
示例:
复制代码
比较变量(input:)和给定字符串(output:)是否相等 (无视大小写)
若要反转条件(检查变量是否不等于给定字符串) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!string equals ignorecase")
String Contains | 字符串比较 (包含)
复制代码
示例:
复制代码
比较变量(input:)和给定字符串(output:)是否相等 (大小写敏感)
若要反转条件(检查变量是否不包含于给定字符串中) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!string contains")
Regex matches | 正则表达式比较
复制代码
比较变量(input:)和给定正则表达式(regex:)是否符合。
访问该网站以更快速地制作正则表达式。
若要反转条件(检查变量是否不符合给定给定表达式) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!regex matches")
Comparators | 数值比较
复制代码
比较 input: 和 regex: 的值。
可用比较符一览:
Examples | 示例
Open Requirement | 开启条件
复制代码
View Requirement | 查看条件
复制代码
Left/Right Click Requirement | 左/右键条件
复制代码
Minimum Requirements | 最小值条件
复制代码
|
| Requirements | 条件判断
IMPORTANT!
left/right/shift_left/shift_right/middle click requirements won't work unless you also have their respective click commands. This is true even if you have set the success_commands option
重要提示
鼠标左键/Shift+左键/Shift+右键/鼠标中键 的点击触发条件在没有对应键位的命令设置的情况下不会起作用。即使设置了 success_commands 也是如此。
Syntax | 语法
- # Other available requirement types:
- # open_requirement:
- # view_requirement:
- # left_click_requirement:
- # right_click_requirement:
- # shift_left_click_requirement:
- # shift_right_click_requirement:
- click_requirement:
- # Minimum requirements are optional.
- # If they are not set, then all
- # requirements will be needed for the
- # click commands to be executed.
- # In this example, only one of the
- # requirements will be needed.
- minimum_requirements: 1
- # This option is good for when you use minimum_requirements.
- # Instead of the plugin checking all the requirements,
- # it will stop when it has enough.
- stop_at_success: true
- requirements:
- # You can define multiple requirements.
- # Each requiremnt should have a unique name.
- requirement_name:
- type: TYPE
- # These commands will be exeucted if
- # the requirement they're set for is
- # met even if the others are not.
- # You should be careful and not confuse
- # these with click_commands: !!!
- success_commands:
- - "[ACTIONTYPE] ACTION"
- - "[ACTIONTYPE] ACTION"
- # These commands will be executed if
- # the requirement they're set for is
- # not met even if the others are.
- deny_commands:
- - "[ACTIONTYPE] ACTION"
- - "[ACTIONTYPE] ACTION"
- # This option is only required if you
- # want ot use minimum_requirements:
- # Minimum requirements will only work
- # for the optional requirements
- optional: true
- # This can only be defined for open and
- # left/right click requirement
- deny_commands:
- - "[ACTIONTYPE] ACTION"
- - "[ACTIONTYPE] ACTION"
Requirements allow you to restrict certain actions or even an entire menu and only allow certain players to see and/or use the menu.
Requirements 模块允许你限制特定或整个菜单的执行条件,从而使玩家能够使用和/或访问特定的菜单。
Requirements | 条件适用范围速览
| 条件种类 | 描述 |
| Open Requirement | 决定打开菜单的条件 |
| View Requirement | 决定菜单内特定物品是否可见。 |
| (Shift) Left/Right Click Requirements | 决定是否能够使用 Shift+左/右键 点击执行命令 |
Requirement types | 条件种类
When inverting requirements, make sure you put the type in quotation marks. This is because "!" is a special symbol in YAML so it will break the syntax.
ex: type: "!has permission"
在像原版那样使用 "!" 来表示反向过滤时,请务必保证整个条件式通过引号包括起来。这是因为 "!" 在 YAML 语言中是一个特殊的符号,因此它的存在会影响插件对条件判断式的检测。
Has permission | 权限检测
- type: has permission
- permission: TEXT
Checks if the player has the specified permission.
检查玩家是否拥有特定权限。
To invert the requirement (Check if the player doesn't have the permission) you can simply add the exclamation mark before the type name (like this type: "!has permission").
若要反转条件(检查玩家是否没有特定权限) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!has permission")
Has money | 经济单位检测
- type: has money
- amount: #
Checks if the player has the specified amount of money (Vault is required).
检查玩家是否有足够数量的钱 (需要安装 Vault)
To invert the requirement (Check if the player doesn't have the amount of money) you can simply add the exclamation mark before the type name (like this type: "!has money").
若要反转条件(检查玩家是否没有达到特定数量的钱) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!has money")
To use a placeholder as a value for the amount, replace the amount: field with placeholder:.
若要使用返回整数值的变量为此处的金币数量,请将 amount: 改为 placeholder:
Has item | 物品检测
- type: has item
- # material option supports material names, placeholders and arguments.
- material: "TEXT"
- data: #
- # represents the CustomModelData the item should have.
- modeldata: #
- amount: #
- name: "TEXT"
- # lore can also be one single string: lore: "TEXT"
- lore:
- - "TEXT"
- # if this is enabled then the plugin will look for items that contain the value
- # set at the option "name" in their name and not for the exact value
- name_contains: boolean
- # if this option is enabled then the plugin will check for the item name,
- # without caring about the case.
- name_ignorecase: boolean
- # if this is enabled then the plugin will look for items that contain the value
- # set at the option "lore" in their lore and not for the exact value
- lore_contains: boolean
- # if this option is enabled then the plugin will check for the item lore,
- # without caring about the case.
- name_ignorecase: boolean
- # if this option is enabled, the plugin will consider only the items that
- # have no custom model data, no display name and no lore.
- strict: boolean
- # decides if the plugin should also check the armor slots of the player when
- # looking for items
- armor: boolean
- # decides if the plugin should also check the off hand of the player when
- # looking for items
- offhand: boolean
必须填入的参数:
- material
Checks if the player has the specified item in the inventory.
检查玩家背包是否有特定的物品。
To invert the requirement (Check if the player doesn't have the item) you can simply add the exclamation mark before the type name (like this type: "!has item").
若要反转条件(检查玩家是否没有特定的物品) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!has item")
Has Meta | Meta 值检测
Meta uses Persistent Data Containers which means this feature will only work on servers that are 1.14 or newer!
Meta 项使用 Persistent Data Containers ,这意味着该机制仅将在 1.14+ 工作。
- type: has meta
- key: "TEXT"
- meta_type: <STRING, BOOLEAN, DOUBLE, LONG, INTEGER>
- value: EXPECTED VALUE
必须填入的参数:
- key
- meta_type
- value
Checks if the player has the specified meta.
检查玩家是否有特定的 meta 值。
If the meta_type is a number format (DOUBLE, LONG, INTEGER) it will check if the player's meta value is greater than or equal to the value
To invert the requirement (Check if the input doesn't match the output) you can simply add the exclamation mark before the type name (like this type: "!has meta").
若 meta_type 为数字格式 (DOUBLE, LONG, INTEGER),那么它将会默认比较玩家的 meta 值是否大于等于该条件中给定的值。
若要反转条件(检查玩家 meta 值是否小于给定值) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!has meta")
Has exp | 经验值检测
- type: has exp
- amount: #
- level: boolean # true if you want to check for exp levels, false for exp points
必须填入的参数:
- amount
Checks if the player has the exp level or points.
检查玩家是否达到了特定的经验值或等级。
If the level option does not exist, it will check for exp points by default
To invert the requirement (Check if the input doesn't match the output) you can simply add the exclamation mark before the type name (like this type: "!has exp").
若 level 参数不存在,默认将会检查玩家的经验值而不是经验值等级。
若要反转条件(检查玩家经验值是否小于给定值) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!has exp")
Is Near | 坐标距离检测
- type: is near
- location: "WORLDNAME,X,Y,Z"
- distance: #
必须填入的参数:
- loaction
- distance
Checks if the player is within distance of location.
检查玩家是否在某个世界特定坐标的半径内。
To invert the requirement (Check if the input doesn't match the output) you can simply add the exclamation mark before the type name (like this type: "!is near").
若要反转条件(检查玩家所处位置是否不处于给定坐标的半径范围内) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!is near")
JavaScript | JavaScript 表达式
- type: javascript
- expression: 'EXPRESSION'
示例:
- type: javascript
- expression: '%vault_eco_balance% >= 100'
Evaluates a JavaScript expression that must return true or false.
计算必须返回 true 和 false 的 JS 表达式的结果。
String Equals | 字符串比较
- type: string equals
- input: "TEXT"
- output: "TEXT"
示例:
- type: string equals
- input: "%server_name%"
- output: "HelpChat"
Checks if input: matches output: (Case sensitive).
比较变量(input:)和给定字符串(output:)是否相等 (大小写敏感)
To invert the requirement (Check if the input doesn't match the output) you can simply add the exclamation mark before the type name (like this type: "!string equals").
若要反转条件(检查变量是否不等于给定字符串) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!string equals")
String Equals Ignore Case | 无视大小写的字符串比较
- type: string equals ignorecase
- input: "TEXT"
- output: "TEXT"
示例:
- type: string equals ignorecase
- input: "%server_name%"
- output: "helpchat"
Checks if input: matches output: (Case insensitive).
比较变量(input:)和给定字符串(output:)是否相等 (无视大小写)
To invert the requirement (Check if the input doesn't match the output) you can simply add the exclamation mark before the type name (like this type: "!string equals ignorecase").
若要反转条件(检查变量是否不等于给定字符串) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!string equals ignorecase")
String Contains | 字符串比较 (包含)
- type: string contains
- input: "TEXT"
- output: "TEXT"
示例:
- type: string contains
- input: "%server_name%"
- output: "chat"
Checks if input: contains output: (Case sensitive).
比较变量(input:)和给定字符串(output:)是否相等 (大小写敏感)
To invert the requirement (Check if the input doesn't contain the output) you can simply add the exclamation mark before the type name (like this type: "!string contains").
若要反转条件(检查变量是否不包含于给定字符串中) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!string contains")
Regex matches | 正则表达式比较
- type: regex matches
- input: "TEXT"
- regex: "EXPRESSION"
Checks if input: contains the regular expression in regex:.
Visit this site to create regular expressions easily.
比较变量(input:)和给定正则表达式(regex:)是否符合。
访问该网站以更快速地制作正则表达式。
To invert the requirement (Check if the input doesn't contain the regular expression) you can simply add the exclamation mark before the type name (like this type: "!regex matches").
若要反转条件(检查变量是否不符合给定给定表达式) 你只需要简单地在条件种类名称前加上感叹号。
(例如: "!regex matches")
Comparators | 数值比较
- type: (==, >=, <=, !=, >, <)
- input: #
- output: #
比较 input: 和 regex: 的值。
可用比较符一览:
| 比较符 | 描述 |
| == | input: 等于 output: |
| >= | input: 大等于 output: |
| <= | input: 小等于 output: |
| != | input: 不等于 output: |
| > | input: 大于 output: |
| < | input: 小于 output: |
Examples | 示例
Open Requirement | 开启条件
- open_requirement:
- requirements:
- example_1:
- type: has permission
- permission: open.menu.one
- deny_commands:
- - "[message] &cYou don't have the permission."
View Requirement | 查看条件
- view_requirement:
- requirements:
- example_2:
- type: string equals
- input: "%player_is_op%"
- output: "yes"
Left/Right Click Requirement | 左/右键条件
- # left_click_requirement: or
- right_click_requirement:
- requirements:
- example_3:
- type: has money
- amount: 100
- deny_commands:
- - "[message] &7You don't have enough money."
Minimum Requirements | 最小值条件
- click_requirement:
- minimum_requirements: 1
- stop_at_success: true
- deny_commands:
- - "[message] &7You don't have 1 of the 2 permissions required."
- requirements:
- perm1:
- type: has permission
- permission: perm.1
- perm2:
- type: has permission
- permission: perm.2
- click_commands:
- - "[message] &7You have 1 of the 2 permissions required."
本帖最后由 名副其实 于 2022-4-4 00:23 编辑
| External menus | 导入菜单
Creating a new menu | 创建一个新菜单
1. 打开位于该位置的配置文件 plugins/DeluxeMenus/config.yml.
2. 在 gui_menus: 项下填入下列文本以注册新菜单:
复制代码
- <MenuName> 为菜单名称 (不可重复) .
- <FileName> 为菜单的文件名, 用以防止因菜单名称重复而引起的文件读取错误 (不可重复).
注意! 你也可以使用诸如: <文件夹>/<文件名>.yml ,这样可以做到将菜单放入子目录(文件夹)中分别管理.
所以配置好的菜单选项应当像下面这样:
复制代码
3. 重载本插件 (也可输入 /dm reload).
4. 生成的菜单文件将会被保存在 gui_menus 文件夹中 (路径为 plugins/DeluxeMenus/gui_menus).
5. 完成! 接下来就可以随意编辑菜单了.
Moving a menu from config to its own file | 从配置中分离出独立的菜单文件
1. 打开配置文件,位于 plugins/DeluxeMenus/config.yml.
2. 转到菜单一栏,并将参数编辑为下列选项:
复制代码
- <FileName> 为菜单的文件名, 用以防止因菜单名称重复而引起的文件读取错误 (不可重复).
完成以后的菜单配置文件应当像这样:
复制代码
3. 重载本插件 (也可输入 /dm reload).
4. 生成的菜单文件将会被保存在 gui_menus 文件夹中 (路径为 plugins/DeluxeMenus/gui_menus). 找到并打开该文件.
5. 在配置文件中剪切菜单的片段 (从第一行直到你为菜单设置的 file: 参数的最后一行).
6. 找到一个已经载入的菜单,将片段复制进去 (在上一步复制所得).
7. 在每一行前删去四个空格. 你也可以通过全选文本内容 (按下 CTRL + A 键) 然后按下左移键 (按下 CTRL + [/} 键) 两次 (该操作可能不在所有的文本编辑器里支持, 例如 Notepad++).
8. 重载本插件 (也可输入 /dm reload).
9. 完成!经过操作的的菜单配置文件应当像这样:
复制代码
|
| External menus | 导入菜单
Creating a new menu | 创建一个新菜单
1. 打开位于该位置的配置文件 plugins/DeluxeMenus/config.yml.
2. 在 gui_menus: 项下填入下列文本以注册新菜单:
- <MenuName>:
- file: <FileName>.yml
- <MenuName> 为菜单名称 (不可重复) .
- <FileName> 为菜单的文件名, 用以防止因菜单名称重复而引起的文件读取错误 (不可重复).
注意! 你也可以使用诸如: <文件夹>/<文件名>.yml ,这样可以做到将菜单放入子目录(文件夹)中分别管理.
所以配置好的菜单选项应当像下面这样:
- gui_menus:
- <MenuName>:
- file: <FileName>.yml
3. 重载本插件 (也可输入 /dm reload).
4. 生成的菜单文件将会被保存在 gui_menus 文件夹中 (路径为 plugins/DeluxeMenus/gui_menus).
5. 完成! 接下来就可以随意编辑菜单了.
Moving a menu from config to its own file | 从配置中分离出独立的菜单文件
1. 打开配置文件,位于 plugins/DeluxeMenus/config.yml.
2. 转到菜单一栏,并将参数编辑为下列选项:
- file: <FileName>.yml
- <FileName> 为菜单的文件名, 用以防止因菜单名称重复而引起的文件读取错误 (不可重复).
完成以后的菜单配置文件应当像这样:
- YourMenuName:
- file: <FileName>.yml
- menu_title: "Your Title"
- size: #
- # etc
3. 重载本插件 (也可输入 /dm reload).
4. 生成的菜单文件将会被保存在 gui_menus 文件夹中 (路径为 plugins/DeluxeMenus/gui_menus). 找到并打开该文件.
5. 在配置文件中剪切菜单的片段 (从第一行直到你为菜单设置的 file: 参数的最后一行).
6. 找到一个已经载入的菜单,将片段复制进去 (在上一步复制所得).
7. 在每一行前删去四个空格. 你也可以通过全选文本内容 (按下 CTRL + A 键) 然后按下左移键 (按下 CTRL + [/} 键) 两次 (该操作可能不在所有的文本编辑器里支持, 例如 Notepad++).
8. 重载本插件 (也可输入 /dm reload).
9. 完成!经过操作的的菜单配置文件应当像这样:
- menu_title: "Your Title"
- size: #
- # etc
本帖最后由 名副其实 于 2022-2-2 01:00 编辑
| Example GUI menus | 示例菜单
Kits | 示例菜单 礼包
以简单的示例来展示你需要用什么来制作一个礼包领取菜单。在该菜单内将会展示三个不同的菜单礼包,并且还有不同的状态展示,例如准备领取、正在冷却以及不可用(锁定)状态。
若要使该菜单正常运作,你需要安装 Essentials(EssentialsX) 并且下载 Essentials 基础变量拓展。可用下列指令来下载变量拓展:
/papi ecloud download Essentials
/papi reload
Mines | 示例菜单 矿场
以简单的示例来展示你需要用什么来制作一个矿场传送菜单。在该菜单内将会展示代表着三个不同矿场的物品,并且还有不同的状态展示,例如已经解锁、当前位置以及锁定状态。
若要使该菜单正常运作,你需要安装 EzRanksPro 并且下载 EzRanksPro 和 Player 变量拓展。可用下列指令来下载变量拓展:
/papi ecloud download Player
/papi ecloud download EzRanksPro
/papi reload
Ranks | 示例菜单 等级称号
以简单的示例来展示你需要用什么来制作一个等级称号菜单。在该菜单内将会展示代表着两个不同等级的物品,并且还有不同的状态展示,例如未购买和下一/当前等级是否需要购买。
若要使该菜单正常运作,你需要安装 LuckPerms 并且下载 LuckPerms 和 Player 变量拓展。可用下列指令来下载变量拓展:
/papi ecloud download Player
/papi ecloud download LuckPerms
/papi reload
Server Selector | 示例菜单 跨服选择
以简单的示例来展示你需要用什么来制作一个子服选择菜单。在该菜单内将会展示代表着两个不同等级的物品,并且还有不同的状态展示,例如当前服务器是否在线。
若要使该菜单正常运作,你需要安装 Pinger 以及 (可选) Server 变量拓展。可用下列指令来下载变量拓展:
/papi ecloud download Pinger
/papi ecloud download Server
/papi reload
在这个示例菜单内,我们有两个搭建在 BungeeCord 上的子服: 原版和小游戏。我们在这个示例菜单中处于小游戏子服。
如果我们想要玩家连接至原版子服,我们需要在 left_click_commands: 项下设置正确的指令 **section
在我们的示例菜单内,我们首先使用 [close] 参数关闭菜单,使用 [message] 参数向玩家发送消息,最后才使用参数 [connect] 将玩家连接至对应的服务器。
为了显示,有多少玩家在原版子服上,我们需要用到变量 %pinger_players_<ip>:<端口>%
请记住,Pinger 变量有它们自己的更新间隔,若要修改它,请去 PlaceholderAPI 的配置文件下修改 check_interval: 参数(默认为 30秒)。
但是如果服务器当前不在线呢?
在这种情况下,我们就可以使用一个优先度稍低的物品,该物品将会在 view_requirement: 参数返回值为非 true 时替换先前的物品展示在菜单中的该格子内。
所以现在我们可以展示一个不一样的物品,如果服务器不在线的话。但请记住这个物品不会自动刷新,如果服务器在菜单打开期间启动(从 Offline 变为 Online)。我们就可以通过玩家在点击菜单按钮时执行的 [refresh] 参数来刷新物品。
第二个物品相对更简单。因为我们已经连接到了该服务器,所以我们只需要向玩家发送一条信息。并且我们还可以使用 %server_online% 变量来显示当前服务器内的玩家数量。
Store | 示例菜单 商店
以简单的示例来展示你需要用什么来制作一个可以使用多种不同的经济单位来收购/出售物品的商店菜单。
若要使该菜单正常运作,你需要安装 Player 以及 CheckItem 变量拓展,以及你将会用到的经济系统的变量拓展(这里是 Vault, PlayerPoints 以及 TokenEnchant)。可用下列指令来下载变量拓展:
/papi ecloud download Player
/papi ecloud download CheckItem
/papi ecloud download Vault
/papi ecloud download TokenEnchant
/papi ecloud download PlayerPoints
/papi reload
下列标注的是使用到对应经济系统的菜单行数(快速跳转)。
****Vault****
****Token Enchant****
****Player Points****
****Player XP****
Meta | 示例菜单 元数据
一个简单的示例菜单,向你展示 Meta(见上述 meta 介绍部分) 如何工作。
|
| Example GUI menus | 示例菜单
Kits | 示例菜单 礼包
A simple example to show you how you can make a Kits menu that displays 3 different items for each kit, when the kit is available to claim, when it's on cooldown and when it's unavailable (Locked).
以简单的示例来展示你需要用什么来制作一个礼包领取菜单。在该菜单内将会展示三个不同的菜单礼包,并且还有不同的状态展示,例如准备领取、正在冷却以及不可用(锁定)状态。
To make this work fine you have to download Essentials and download the Essentials expansion using:
/papi ecloud download Essentials
/papi reload
若要使该菜单正常运作,你需要安装 Essentials(EssentialsX) 并且下载 Essentials 基础变量拓展。可用下列指令来下载变量拓展:
/papi ecloud download Essentials
/papi reload
Mines | 示例菜单 矿场
A simple example to show you how you can make a Mines menu that displays 3 items for each mine, when the mine is unlocked, when it's the current mine and when it's locked.
以简单的示例来展示你需要用什么来制作一个矿场传送菜单。在该菜单内将会展示代表着三个不同矿场的物品,并且还有不同的状态展示,例如已经解锁、当前位置以及锁定状态。
To make this work fine you have to download EzRanksPro and download Player and EzRanksPro expansions using:
/papi ecloud download Player
/papi ecloud download EzRanksPro
/papi reload
若要使该菜单正常运作,你需要安装 EzRanksPro 并且下载 EzRanksPro 和 Player 变量拓展。可用下列指令来下载变量拓展:
/papi ecloud download Player
/papi ecloud download EzRanksPro
/papi reload
Ranks | 示例菜单 等级称号
A simple example to show you how you can make a Ranks menu that displays 2 items for each rank, when the rank is not purchased and when the rank or a higher rank is purchased.
以简单的示例来展示你需要用什么来制作一个等级称号菜单。在该菜单内将会展示代表着两个不同等级的物品,并且还有不同的状态展示,例如未购买和下一/当前等级是否需要购买。
To make this work fine you have to download LuckPerms and download Player and LuckPerms expansions using:
/papi ecloud download Player
/papi ecloud download LuckPerms
/papi reload
若要使该菜单正常运作,你需要安装 LuckPerms 并且下载 LuckPerms 和 Player 变量拓展。可用下列指令来下载变量拓展:
/papi ecloud download Player
/papi ecloud download LuckPerms
/papi reload
Server Selector | 示例菜单 跨服选择
A simple example to show you how you can make a Server Selector menu that displays 2 different items for each server, when the server is online and when it's offline.
以简单的示例来展示你需要用什么来制作一个子服选择菜单。在该菜单内将会展示代表着两个不同等级的物品,并且还有不同的状态展示,例如当前服务器是否在线。
To make this work fine you have to download Pinger and (optional) Server expansions using:
/papi ecloud download Pinger
/papi ecloud download Server
/papi reload
若要使该菜单正常运作,你需要安装 Pinger 以及 (可选) Server 变量拓展。可用下列指令来下载变量拓展:
/papi ecloud download Pinger
/papi ecloud download Server
/papi reload
In this example, we have 2 different servers on one BungeeCord: vanilla and games. We are on the server games in this example.
在这个示例菜单内,我们有两个搭建在 BungeeCord 上的子服: 原版和小游戏。我们在这个示例菜单中处于小游戏子服。
If we want the player to connect to the vanilla server, we need to setup the right functions in the left_click_commands: **section
In our example, we will first close the menu with [close], send a message to the player with [message] and finally connect him to the server with [connect].
如果我们想要玩家连接至原版子服,我们需要在 left_click_commands: 项下设置正确的指令 **section
在我们的示例菜单内,我们首先使用 [close] 参数关闭菜单,使用 [message] 参数向玩家发送消息,最后才使用参数 [connect] 将玩家连接至对应的服务器。
To show, how many players are on the server vanilla, we will use the placeholder %pinger_players_<ip>:<port>%
Please keep in mind, that Pinger placeholders have their own update interval, to change it, go to the PlaceholderAPI config file and change the check_interval: (default is 30 seconds).
But what if the server is currently offline?
In this case, we can use a second item with a lower priority, that will be displayed, if the view_requirement: of the first item isn't true.
So now we can show a different item, if the server is offline. But keep in mind that the items don't update automatically, if the view requirement has changed (from Offline to Online). We can update the menu, by letting the player execute [refresh] if he clicks on the item.
为了显示,有多少玩家在原版子服上,我们需要用到变量 %pinger_players_<ip>:<端口>%
请记住,Pinger 变量有它们自己的更新间隔,若要修改它,请去 PlaceholderAPI 的配置文件下修改 check_interval: 参数(默认为 30秒)。
但是如果服务器当前不在线呢?
在这种情况下,我们就可以使用一个优先度稍低的物品,该物品将会在 view_requirement: 参数返回值为非 true 时替换先前的物品展示在菜单中的该格子内。
所以现在我们可以展示一个不一样的物品,如果服务器不在线的话。但请记住这个物品不会自动刷新,如果服务器在菜单打开期间启动(从 Offline 变为 Online)。我们就可以通过玩家在点击菜单按钮时执行的 [refresh] 参数来刷新物品。
The second item is easier. Because we are already connected, so we just need to send a message. And we can show the amount of players on the server with the %server_online% placeholder.
第二个物品相对更简单。因为我们已经连接到了该服务器,所以我们只需要向玩家发送一条信息。并且我们还可以使用 %server_online% 变量来显示当前服务器内的玩家数量。
Store | 示例菜单 商店
A simple example to show you how you can make a Store/Shop menu that you can buy/sell items from using various economic systems.
以简单的示例来展示你需要用什么来制作一个可以使用多种不同的经济单位来收购/出售物品的商店菜单。
To make this work fine you have to download the Player and CheckItem expansions and the expansion of the economic system that you'll use using:
/papi ecloud download Player
/papi ecloud download CheckItem
/papi ecloud download Vault
/papi ecloud download TokenEnchant
/papi ecloud download PlayerPoints
/papi reload
****Vault****
****Token Enchant****
****Player Points****
****Player XP****
若要使该菜单正常运作,你需要安装 Player 以及 CheckItem 变量拓展,以及你将会用到的经济系统的变量拓展(这里是 Vault, PlayerPoints 以及 TokenEnchant)。可用下列指令来下载变量拓展:
/papi ecloud download Player
/papi ecloud download CheckItem
/papi ecloud download Vault
/papi ecloud download TokenEnchant
/papi ecloud download PlayerPoints
/papi reload
下列标注的是使用到对应经济系统的菜单行数(快速跳转)。
****Vault****
****Token Enchant****
****Player Points****
****Player XP****
Meta | 示例菜单 元数据
A simple example to show you how meta works.
一个简单的示例菜单,向你展示 Meta(见上述 meta 介绍部分) 如何工作。
本帖最后由 名副其实 于 2022-2-2 01:02 编辑
| Plugin's files | 示例配置
config.yml
复制代码
basics_menu.yml
复制代码
advanced_menu.yml
复制代码
requirements_menu.yml
复制代码
|
| Plugin's files | 示例配置
config.yml
- # DeluxeMenus 1.13.1-Release main configuration file
- #
- # A full wiki on how to use this plugin can be found at:
- # https://github.com/help-chat/DeluxeMenus/wiki
- debug: false
- check_updates: true
- gui_menus:
- basics_menu:
- file: basics_menu.yml
- advanced_menu:
- file: advanced_menu.yml
- requirements_menu:
- file: requirements_menu.yml
basics_menu.yml
- # A DeluxeMenus basic configuration guide for beginners
- #=========================================================
- #
- # This note will help you understand the basic functions and configuring of DeluxeMenus: commands, requirements, items and others, and from then on you can start to work with more advanced stuff. You can delete this note or any note below at any time. But if you are still here anyway, then let's move down below
- #
- # Open Command
- #
- # This setting is the command that will be used to open this menu. Supports normal String or a String List
- # NOTE: Use "open_command: []" to create a menu with no commands needed
- #
- # open_command: <command>
- # open_command:
- # - <command1>
- # - <command2>
- #
- open_command: basicsmenu
- # Size
- #
- # This allows you to set the size of the menu inventory. Range from 9-54.
- # If this option is not present in the menu configuration, it will default to 54.
- #
- size: 9
- # Menu title
- #
- # This is the title of the menu. You can change it with your custom name
- # Color codes and placeholders are supported
- #
- menu_title: 'Basics Menu'
- # Open requirement
- #
- # This setting section allows you to define requirements the menu viewer must meet
- # to be allowed to open this menu in game.
- #
- # Any menu you want to restrict access to based on permission
- # should have a basic "has permission" requirement
- #
- # This setting and requirements can be explained more in depth by checking out
- # the requirements_menu.yml file in your menus folder.
- # For full reference, check https://github.com/help-chat/DeluxeMenus/wiki/Requirements
- #
- open_requirement:
- requirements:
- permission:
- type: has permission
- permission: deluxemenus.admin
- deny_commands:
- - '[message] &cYou don''t have permission to do that!'
- # Item section. This is where you can start add items into menu, and add functions into each items that you did.
- # For depth explanation on the functions, you can check on the note given from config.yml
- # For full reference, check https://github.com/help-chat/DeluxeMenus/wiki/Item
- #
- items:
- # Here you need to set the name ID of the item. This name however, does not display on the menu. Every item must have a unique name ID.
- # In this example, we will call this item name ID: "teststone"
- 'teststone':
- #We will start to create a STONE item,
- material: STONE
- # with a Block data set to 1, so that you can change stone type from STONE to GRANITE. More informations about the block data can be checked through each items from Minecraft Wikipedia
- data: 1
- # Slots that you want to put the item. Starts from 0
- slot: 0
- # Here we will name this item. You can change this at anytime. PlaceholderAPI & Color codes supported
- display_name: "&aThis is a special stone"
- # This is the lore setting. Referrence of this same with display_name.
- # You can create multiple lines of lores like this
- lore:
- - "&aTest1"
- - "&cTest2"
- - "&eTest3"
- # ==============================================================
- #
- # Random tips, tricks, and useful info below
- #
- # ==============================================================
- #
- # PER ITEM PERMISSION AND PRIORITY INFO:
- #
- # Per item permissions and priorities are optional.
- # High priority = 1, Lowest priority = 2147483647.
- # This allows you to show different items for a specific menu slot depending on the highest priority
- # item permission a player has. This makes your menus very dynamic :)
- #
- # You CAN NOT specify a permission without a priority!
- # You CAN specify a priority without a permission.
- # You should always create a low priority item without a permission which will act as the no permission
- # item if a player does not have permission for any of the items that require permission, otherwise
- # no item will be set in the slot if a player does not have permission for any of the permission items.
- #
- # ==============================================================
- #
- # You specify the command which opens the menu. Make sure this command
- # does not conflict with any existing commands on your server!
- # A GUI menu without an open command specified will not be loaded!
- #
- # Menus configuration layout:
- # menu_title: '<title of menu goes here>'
- # command: <command to open this menu goes here>
- # inventory_type: '<add this option if you want to create a menu of a different InventoryType aside from chest>'
- # open_requirement:
- # requirements:
- # <unique name for this requirement>:
- # type: <type for this requirement>
- # <unique options per requirement type would go here>
- # deny_commands:
- # - '[message] you do not meet requirements to open this menu'
- # size: <size of this menu, increments of 9, max size is 54>
- # update_interval: <time in seconds this gui should update for a player if an item is set to uodate placeholders>
- # items:
- # <item identifier>:
- # material: <name or id>
- # material: head-<name of player>
- # material: hdb-<HeadDatabase id> (requires plugin HeadDatabase)
- # data: <integer, used for data values for wool etc>
- # amount: <amount of this item to show>
- # slot: <slot number to put this item, slots start at 0 and end at 53 for a size 54 inventory>
- # priority: <this is used if you have multiple items set for the same slot>
- # view_requirement: <see view requirement info below. The lowest priority item a player meets all view requirements for will be shown>
- # update: <true/false if this item should update placeholders on the interval set for the gui menu this item is in>
- # hide_attributes: <true/false if this item should display item attributes>
- # hide_enchantments: <true/false if this item should display item enchantment / level> (useful for 'enchantment glow' items)
- # hide_effects: <true/false if this item should display item effect attributes>
- # hide_unbreakable: <true/false if this item should display item unbreakable attributes>
- # banner_meta: (this is used if you want to display a custom banner with specific patterns)
- # - <dyecolor>;<PatternType> (more information on where to find DyeColor and PatternType names below)
- # - 'RED;BASE'
- # - 'WHITE;CREEPER'
- # display_name: <display name to show for this item>
- # lore:
- # - 'This is the lore of the itemm'
- # - 'placeholders can be used in the display_name or lore.'
- # enchantments: valid enchantment names can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html
- # - '<ENCHANTMENT>;<LEVEL>'
- # - 'SILK_TOUCH;1'
- # left_click_commands:
- # right_click_commands:
- # shift_left_click_commands:
- # shift_right_click_commands:
- # middle_click_commands:
- # left_click_requirement: <Learn how to use this option in the requirements_menu.yml>
- # right_click_requirement: <Learn how to use this option in the requirements_menu.yml>
- # shift_left_click_requirement: <Learn how to use this option in the requirements_menu.yml>
- # shift_right_click_requirement: <Learn how to use this option in the requirements_menu.yml>
- # middle_click_requirement: <Learn how to use this option in the requirements_menu.yml>
- #
- #
- # You can specify if a GUI menu should be loaded from another file:
- #
- # gui_menus:
- # <menuName>:
- # file: 'menuName.yml'
- #
- # This allows you to keep your config clean and not have tons of GUI menus cluttering it.
- # The file format the GUI menu is loaded from must end in .yml
- # GUI menus loaded from other configuration files must follow a specific format as well...
- # To get started loading GUI menus from different files, simply create a GUI menu in this config and specify the file it will load from.
- # After that is done, use /dm reload and DeluxeMenus will create a folder and file specific to the GUI menu you specified.
- # If the file specified is created by DeluxeMenus (because it did not exist), a default GUI menu layout will be saved to that file.
- # From here you can edit it to your liking and use /dm reload to update your GUI menu!
- #
- # This loading from external config files is only available for gui menus and will not work for click menus yet....
- #
- # banner_meta must be listed with a specific format:
- # banner_meta:
- # - <DyeColor>;<PatternType>
- #
- # Valid DyeColor names can be found here: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/DyeColor.html
- # Valid PatternTypes can be found here: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/banner/PatternType.html
- # ==============================================================
- #
- # Requirement information
- #
- # Requirements can be set as the following:
- #
- # open_requirement: This requirement is checked when a menu is opened
- # view_requirement: This requirement determines if an item should be set in a menu slot
- # left_click_requirement: This requirement is checked when an item is left clicked
- # right_click_requirement: This requirement is checked when an item is right clicked
- #
- # Requirement types:
- # javascript - Evaluates a javascript expression that must return true or false
- # configuration options:
- # expression
- #
- # has item - Checks if a player has a specific item
- # configuration options:
- # material
- # amount
- # data
- # name
- # lore
- #
- # has money - Checks if a player has enough money (Vault required)
- # configuration options:
- # amount
- #
- # has permission - Checks if a player has a specific permission
- # configuration options:
- # permission
- #
- # string contains - Checks if a string contains another string
- # configuration options:
- # input
- # output
- #
- # string equals - Checks if a string equals another string
- # configuration options:
- # input
- # output
- #
- # string equals ignorecase - Checks if a string equals another string ignoring case
- # configuration options:
- # input
- # output
- #
- # > - Checks if a number is greater than another number
- # configuration options:
- # input
- # output
- #
- # >= - Checks if a number is greater than or equal to another number
- # configuration options:
- # input
- # output
- #
- # == - Checks if a number is equal to another number
- # configuration options:
- # input
- # output
- #
- # <= - Checks if a number is less than or equal to another number
- # configuration options:
- # input
- # output
- #
- # < - Checks if a number is less than another number
- # configuration options:
- # input
- # output
- #
- # regex matches - Checks if a placeholder parsed string matches a regex pattern
- # configuration options:
- # input
- # regex
- #
- #
- #
- # So why would we want to use requirements?
- # By default, DeluxeMenus does not require a player meet any conditions to open your menu.
- # If you want to require a menu need a certain permission node for it to be accessed, or a certain amount of money
- # for a menu to be opened, You do that with an 'open_requirement'.
- # Below is an example of how you would deny opening a menu if the viewer does not have permission:
- #
- # menu_title: 'Menu that requires permission to open'
- # open_command: testmenu
- # size: 9
- # open_requirement:
- # requirements:
- # this_requirement_name:
- # type: has permission
- # permission: 'testmenu.open'
- # deny_commands:
- # - '[message] you do not have permission to open testmenu'
- #
- # ==============================================================
- #
- # Every item in the items list must have a unique <item identifier>
- #
- # If you choose to update placeholders for a specific item, you must specify update_interval: <time>
- # in the menu options for the specific menu.
- #
- # Every click_command must start with a specific identifier to know what to do for the execution.
- # Valid click_command identifiers:
- #
- # [console] - Execute a command from the console
- # Usage: - '[console] <command with no slash>'
- #
- # [player] - Execute a command for the menu viewer
- # Usage: - '[player] <command with no slash>'
- #
- # [commandevent] - Fire a PlayerCommandPreprocessEvent for commands that do not use the bukkit command system
- # Usage: - '[commandevent] <command with no slash>'
- #
- # [message] - Send a message to the menu viewer
- # Usage: - [message] <message to send to the player
- #
- # [openguimenu] - Open a GUI menu (can only be used in GUI menu click_commands)
- # Usage: - '[openguimenu] <guiMenuName>'
- #
- # [connect] - Connect to the specified bungee server
- # Usage: - '[connect] <serverName>'
- #
- # [close] - Close the viewers open menu
- # Usage: - '[close]
- #
- # [refresh] - Refresh items in the current menu view
- # Usage: - '[refresh]
- #
- # [broadcastsound] - Broadcast a sound to the server
- # Usage: - '[broadcastsound]
- #
- # [sound] - Play a sound for a the specific player
- # Usage: - '[sound]
- #
- # [json] - Send a json message to the menu viewer
- # Usage: - '[json] {"text":"message"}'
- #
- #
- #
- # You can delay any of the click command being performed by ending the command with
- # <delay=(time in TICKS)>
- # example:
- # - '[close]'
- # - '[message] it has been 5 seconds since the menu closed!<delay=100>'
- # - '[message] it has been 10 seconds since the menu closed!<delay=200>'
- #
advanced_menu.yml
- # A DeluxeMenus advanced configuration guide
- #=========================================================
- menu_title: '&8> &6&lD&eM &bAdvanced Example'
- open_command:
- - advancedmenu
- - advancedexamplemenu
- - themostadvancedmenuintheworld
- open_commands:
- - '[sound] BLOCK_BEACON_ACTIVATE'
- - '[message] &7Opening Advanced example menu, Plugin created by &bextended_clip&7!'
- size: 27
- # as always, only cool people can open this menu :)
- open_requirement:
- requirements:
- permission:
- type: has permission
- permission: deluxemenus.admin
- deny_commands:
- - "[message] &8[&bDeluxe&eMenus&8] &cYou don't have perms for this!"
- items:
- 'example':
- material: LIME_DYE
- slot: 11
- priority: 1
- update: true
- hide_attributes: true
- display_name: '&bExample Kit'
- lore:
- - ''
- - '&7Cooldown : &f3 Days'
- - '&7Left Click to Redeem'
- view_requirement:
- requirements:
- kit_requirement:
- type: string equals
- input: '%essentials_kit_is_available_example%'
- output: 'yes'
- kit_perm:
- type: has permission
- permission: essentials.kits.example
- left_click_commands:
- - '[player] kit example'
- - '[close]'
- 'examplecd':
- material: GRAY_DYE
- slot: 11
- priority: 2
- update: true
- hide_attributes: true
- display_name: '&cExample Kit Unavailable'
- lore:
- - '&7This kit is on cooldown!'
- - '&7You must wait : &f%essentials_kit_time_until_available_example%'
- - '&7Before using this kit again.'
- view_requirement:
- requirements:
- kit_perm:
- type: has permission
- permission: essentials.kits.example
- 'examplenoperm':
- material: GRAY_DYE
- slot: 11
- priority: 3
- update: true
- hide_attributes: true
- display_name: '&7Example Kit'
- lore:
- - '&7You do not have permission for this kit!'
- 'shopexample':
- material: head-extended_clip
- slot: 12
- display_name: '&r'
- lore:
- - '&7Shop example using'
- - '&7view requirements!'
- - '&fLeft click to purchase.'
- priority: 1
- view_requirement:
- requirements:
- shop_perm:
- type: has permission
- permission: deluxemenus.shopexample
- left_click_commands:
- - '[sound] ENTITY_FIREWORK_ROCKET_BLAST'
- - '[console] give %player_name% skull 1 player:extended_clip name:&bExtended_Clip lore:&8<lore>|&7Example_Shop_Item|&8<lore>'
- - '[message] &8[&6&lDeluxeShop&8] &fYou have succesfully purchased &7extended_clips &fhead!'
- - '[console] eco take %player_name% 666'
- - '[close]'
- left_click_requirement:
- requirements:
- balance_check:
- type: has money
- amount: 666
- 'shopnoperm':
- material: head-extended_clip
- slot: 12
- display_name: '&7No permission'
- lore:
- - '&8You are missing the &bdeluxemenus.shopexample'
- - '&8permission which is required to view the item!'
- - '&fLeft click to close the menu.'
- left_click_commands:
- - '[sound] ENTITY_SNOW_GOLEM_DEATH'
- - '[close]'
- - '[message] &8[&6&lDeluxeShop&8] &fYou have closed the menu! &7(1 Second message delay!) <delay=20>'
- 'filler_item':
- material: GRAY_STAINED_GLASS_PANE
- slots:
- - 0
- - 1
- - 2
- - 3
- - 4
- - 5
- - 6
- - 7
- - 8
- display_name: ' '
requirements_menu.yml
- #
- # Requirements tutorial menu v1.0
- # authors: clip
- #
- # contributor: Andre_601
- #
- # In this tutorial you will learn all about menu requirements
- # Requirements allow you to restrict actions or even an entire menu to specific players.
- #
- # You can read more about requirements here:
- # https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/requirements
- #
- menu_title: 'Requirements Menu'
- open_command: requirementsmenu
- size: 9
- #
- # as always, only cool people can open this menu :)
- #
- open_requirement:
- requirements:
- permission:
- #
- # "has permission" checks if a player has the required permission
- #
- # Read more:
- # https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/requirements#has-permission
- #
- type: has permission
- permission: deluxemenus.shop
- deny_commands:
- - '[message] &cYou don''t have permission to do that!'
- items:
- #
- # Example 1: Shop Item
- #
- # This is a gold block, which allows you to buy or sell gold blocks for money.
- #
- 'gold_block':
- material: GOLD_BLOCK
- slot: 0
- lore:
- - '&7Buy/Sell GOLD_BLOCK'
- - ''
- - '&7- Left-click: &bBuy 1 &7for &a$100'
- - '&7- Right-click: &bSell 1 &7for &a$50'
- - '&7- Shift-left-click: &bBuy 64 &7for &a6,400'
- - '&7- Shift-right-click: &bSell 64 &7for &a$3,200'
- #
- # Requirement(s) when left-clicking an item.
- #
- left_click_requirement:
- requirements:
- #
- # "has money" checks if the player has enough money. Requires Vault.
- # "amount" defines how much the player needs to at least have.
- #
- # Read more:
- # https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/requirements#has-money
- #
- has_money:
- type: has money
- amount: 100
- deny_commands:
- - '[message] &cYou don''t have enough money for this!'
- #
- # Command(s) to execute when left-clicking the item.
- # Those commands won't be executed when the above requirements aren't met.
- #
- # Read more:
- # https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/item#shift-left-middle-right-click-commands
- #
- left_click_commands:
- - '[console] give %player_name% GOLD_BLOCK 1'
- - '[takemoney] 100'
- - '[message] &aYou bought 1 &6GOLD_BLOCK &afor $100'
- #
- # Requirement(s) for right-clicking an item.
- #
- right_click_requirement:
- requirements:
- #
- # "has item" checks if the player has the specified item in their inventory.
- # Except for "material" and "amount" are all other values optional and will default to a specific value.
- # We check for if the player has 1 gold block.
- #
- # Read more:
- # https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/requirements#has-item
- #
- has_item:
- type: has item
- material: 'GOLD_BLOCK'
- amount: 1
- deny_commands:
- - '[message] &cYou don''t have enough &6GOLD_BLOCK &cto sell! Required: 1'
- #
- # Command(s) to execute when right-clicking the item.
- # Those commands won't be executed when the above requirements aren't met.
- #
- # Read more:
- # https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/item#shift-left-middle-right-click-commands
- #
- right_click_commands:
- - '[console] clear %player_name% GOLD_BLOCK 1'
- - '[console] eco give %player_name% 50'
- - '[message] &aYou sold 1 &6GOLD_BLOCK &afor $50'
- #
- # Requirement(s) when left-clicking an item while holding shift on the keyboard.
- #
- shift_left_click_requirement:
- requirements:
- #
- # "has money" checks if the player has enough money. Requires Vault.
- # "amount" defines how much the player needs to at least have.
- #
- # Read more:
- # https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/requirements#has-money
- #
- has_money:
- type: has money
- amount: 6400
- deny_commands:
- - '[message] &cYou don''t have enough money for this!'
- #
- # Command(s) to execute when left-clicking the item while holding shift.
- # Those commands won't be executed when the above requirements aren't met.
- #
- # Read more:
- # https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/item#shift-left-middle-right-click-commands
- #
- shift_left_click_commands:
- - '[console] give %player_name% GOLD_BLOCK 64'
- - '[takemoney] 6400'
- - '[message] &aYou bought 64 &6GOLD_BLOCK &afor $6400'
- #
- # Requirement(s) when right-clicking an item while holding shift on the keyboard.
- #
- shift_right_click_requirement:
- requirements:
- #
- # "has item" checks if the player has the specified item in their inventory.
- # Except for "material" are all other values optional and will default to a specific value
- # which is either nothing (name) or 1 (amount).
- # We check for if the player has 64 gold blocks.
- #
- # Read more:
- # https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/requirements#has-item
- #
- has_item:
- type: has item
- material: GOLD_BLOCK
- amount: 64
- deny_commands:
- - '[message] &cYou don''t have enough &6GOLD_BLOCK &cto sell! Required: 64'
- #
- # Command(s) to execute when right-clicking the item while holding shift.
- # Those commands won't be executed when the above requirements aren't met.
- #
- # Read more:
- # https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/item#shift-left-middle-right-click-commands
- #
- shift_right_click_commands:
- - '[console] clear %player_name% GOLD_BLOCK 64'
- - '[console] eco give %player_name% 3200'
- - '[message] &aYou sold 64 &6GOLD_BLOCK &afor $3200'
- #
- # Example 2: Free diamonds!
- #
- # This is a diamond, which will only be visible for people, that don't have the permission deluxemenus.free_diamonds.cooldown
- # When you click the item will you get a diamond and a permission is set (using LuckPerms) temporary (acts as cooldown) before
- # refreshing the GUI to update the displayed item.
- #
- 'free_diamonds':
- material: DIAMOND
- slot: 1
- lore:
- - '&aFREE DIAMOND! [1/day]'
- - ''
- - '&7Click to get 1 free &bdiamond&7!'
- #
- # "priority" is used in case you have multiple items on the same slot.
- # A lower number equals a higher priority.
- #
- priority: 0
- #
- # view_requirement makes it possible to only display the item when the requirements are met.
- # When the requirements aren't met and a item with lower priority occupies the same slot, will it be displayed instead.
- #
- # Read more:
- # https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/item#view-requirement
- #
- view_requirement:
- requirements:
- has_not_perm:
- #
- # "!has permission" checks if the player does NOT have the specified permission.
- #
- type: "!has permission"
- permission: deluxemenus.free_diamonds.cooldown
- #
- # We give the item, set the permission with it expiring in 1 day and refresh the GUI to update the item.
- #
- left_click_commands:
- - '[console] give %player_name% DIAMOND 1'
- - '[console] lp user %player_name% permission settemp deluxemenus.free_diamonds.cooldown true 1d'
- - '[refresh]'
- #
- # We give the item, set the permission with it expiring in 1 day and refresh the GUI to update the item.
- #
- right_click_commands:
- - '[console] give %player_name% DIAMOND 1'
- - '[console] lp user %player_name% permission settemp deluxemenus.free_diamonds.cooldown true 1d'
- - '[refresh]'
- #
- # Example 3: Placeholder item
- #
- # This is a stone, that will be displayed as long as the player has the permission deluxemenus.free_diamonds.cooldown
- #
- 'free_diamonds_cooldown':
- material: STONE
- slot: 1
- lore:
- - '&aFREE DIAMOND! [1/day]'
- - ''
- - '&cYou''re currently on cooldown. Click to refresh.'
- #
- # Higher number equals lower priority, meaning this item will only be displayed once the view_requirement of the
- # above isn't met anymore.
- #
- priority: 1
- #
- # We refresh the GUI to update the item, if the view_requirement no longer matches.
- #
- left_click_commands:
- - '[refresh]'
- #
- # We refresh the GUI to update the item, if the view_requirement no longer matches.
- #
- right_click_commands:
- - '[refresh]'
本帖最后由 名副其实 于 2022-4-4 00:18 编辑
| Commands | 命令列表
| Commands Aliases | 命令别名
- /deluxemenus
- /deluxemenu
- /dmenu
| Permissions | 权限列表
|
| Commands | 命令列表
| 命令 | 权限 | 描述 |
| /dm | - | 显示本插件的信息。 |
| /dm open <菜单名称> | deluxemenus.open | 打开选定菜单。 |
| /dm open <菜单名称> <玩家名称> | deluxemenus.open.others | 对指定玩家打开选定菜单。 |
| /dm open <菜单名称> -p:<操作对象> | deluxemenus.placeholdersfor | 为自己打开菜单,但其中变量的判断对象会变成其他玩家(取决于你设置的操作对象)。 |
| /dm open <菜单名称> <玩家名称> -p:<操作对象> | deluxemenus.placeholdersfor | 对指定玩家打开菜单,但其中变量的判断对象会变成其他玩家(取决于你设置的操作对象)。 |
| /dm list | deluxemenus.list | 列出载入的菜单。 |
| /dm execute <玩家名称> <执行动作> | 玩家需为管理员 | 为玩家执行操作. 检阅页面 Action Type 获得更多信息。 |
| /dm reload | deluxemenus.reload | 重载插件文档。 |
| /dm reload <菜单名称> | deluxemenus.reload | 重载选定菜单。 |
| Commands Aliases | 命令别名
- /deluxemenus
- /deluxemenu
- /dmenu
| Permissions | 权限列表
| 权限 | 描述 |
| deluxemenus.openrequirement.bypass.* | 忽视所有菜单的开启条件。 |
| deluxemenus.openrequirement.bypass.<菜单名称> | 忽视当前菜单的开启条件。 |
| deluxemenus.placeholdersfor.exempt | 阻止你成为他人打开菜单时的变量判断对象,如该权限将阻止 /DM Open <菜单名称> -p:<你的名字>. |
本帖最后由 名副其实 于 2022-4-4 00:58 编辑
| Description | 插件介绍
本插件允许用户以简单的方式提升等级, 同时也有一个为服务器管理员制准备, 易于管理且高度自定义的等级系统。配置文件最多只需要简单快速的安装即可应用于服务器。
| Setup | 安装
若要使玩家或权限组获得提升等级的许可,它(们)需要获得相对应的权限! 如果没有权限, 插件将不能让玩家能够进行升级. 如果你创建了一个从等级A到等级B的升级, 你将会需要给予等级A的玩家(或权限组) ezranks.rank.A, 这就是告诉了插件: A 等级中的玩家或权限组是可以进行与之相关的升级操作的。玩家在拥有多个 ezranks.rank 权限节点的情况下, 默认进行最高等级的升级。
对于一个处在最终等级的玩家来说, 他们需要拥有权限 ezranks.lastrank, 这就是在告诉插件: 这个玩家是最高等级的玩家, 不需要更多的等级提升了。
在你的 rankups.yml 文件中, 你将会找到一个存储着被命名为 rankup_action 的各等级升级操作。在这个区域内你可以列出插件在玩家升级后需要执行的操作。操作的格式应当是这样的:
- '<操作> <参数>'
有时候你也必须带着必要的参数:
(译者注: 在上一行所属文本的末尾加上)
<必选参数>, (可选参数)
你也许需要在升级完毕后延迟一些操作的执行, 那你就需要在字符串末尾添加一个空格, 就像这样:
(译者注: 请注意字符串末尾的空格)
- '[consolecommand] eco give %player% 100 '
Rankup action list | 升级操作一览
[consolecommand] - 执行控制台命令
[playercommand] - 以玩家身份执行命令
[message] - 向玩家发送消息
[broadcast] - 向全服发送公告
[jsonmessage] - 向玩家发送 json 格式的消息
[jsonbroadcast] - 向全服发送 json 格式的公告
[actionbarmessage] - 向玩家发送 ActionBar 消息
[actionbarbroadcast] - 向全服发送 ActionBar 消息
[addgroup] (指定生效世界名称) - 将玩家添加至权限组
[removegroup] (指定生效世界名称) - 将玩家从权限组移出
[addpermission] (指定生效世界名称) - 给予玩家权限
[removepermission] (指定生效世界名称) - 移除玩家权限
[setprefix] - 设置玩家前缀
[setsuffix] - 设置玩家后缀
[effect] - 在玩家的位置播放粒子效果
[sound] - 在玩家的位置播放一段音效
Placeholder list | 内置变量列表
这些是你可以用在消息或执行操作中的变量(译者注: 当然也支持 PlaceholderAPI 注册的的变量).
%player% - 玩家名
%displayname% - 玩家展示名(含前后缀)
%world% - 玩家当前世界
%rank% - 玩家当前等级
%rankup% - 玩家下一等级 (如果有)
%cost% - 升级消耗
%cost_formatted% - 带格式的升级消耗
%balance% - 玩家金钱数
%balance_formatted% - 带格式的玩家金钱数
%difference% - 距下一级的剩余要求
%difference_formatted% - 带格式的距下一级的剩余要求
%progress% - 精确到 % 的结合后耗费
%progressexact% - 实际 % 的结合后耗费
%rankprefix% - 玩家等级的文档内定义名
%rankupprefix% - 玩家下一等级的文档内定义名
%lastrank% - 可用的最高等级
%lastrankprefix% - 可用最高等级的前缀
%rankup_cost_% - 显示特定等级的耗费
%rankup_cost_formatted_% - 带格式显示特定等级的耗费
%rankup_is_completed_% - 显示玩家是否已经升级到(过)指定等级
|
| Description | 插件介绍
EzRanksPro allows users to rank-up the easy way, with a very flexible and extremely customizable rank-up system built for server owners by server owners. The config requires minimal effort an is a quick and simple setup.
本插件允许用户以简单的方式提升等级, 同时也有一个为服务器管理员制准备, 易于管理且高度自定义的等级系统。配置文件最多只需要简单快速的安装即可应用于服务器。
| Setup | 安装
To give a player or group access to a rankup, they need access to the permission node associated with it! Without it EZRanksPro does not know what rankup they have access to. If you create a rankup for rank A to B, you will need to give the A rank the permission node: ezranks.rank.A. This will tell EZRanksPro that players in A should have the rankup associated with A. Players can have access to multiple ezranks.rank. permission nodes, the highest order rankup will always be applied for the player.
For a player to be considered the last rank, they need to have the permission node: ezranks.lastrank This tells EZRanksPro that the player is at the last rank and has no more rankups available.
Inside of your rankups.yml you will see a section with each rankup named rankup_actions. In this section you may list many actions that the plugin will perform when a player ranks up. The format for actions are:
-'<action> <arguments>'
You must include required arguments :
<required>, (optional)
You may delay any rankup action by ending the action String with example:
-'[consolecommand] eco give %player% 100 '
若要使玩家或权限组获得提升等级的许可,它(们)需要获得相对应的权限! 如果没有权限, 插件将不能让玩家能够进行升级. 如果你创建了一个从等级A到等级B的升级, 你将会需要给予等级A的玩家(或权限组) ezranks.rank.A, 这就是告诉了插件: A 等级中的玩家或权限组是可以进行与之相关的升级操作的。玩家在拥有多个 ezranks.rank 权限节点的情况下, 默认进行最高等级的升级。
对于一个处在最终等级的玩家来说, 他们需要拥有权限 ezranks.lastrank, 这就是在告诉插件: 这个玩家是最高等级的玩家, 不需要更多的等级提升了。
在你的 rankups.yml 文件中, 你将会找到一个存储着被命名为 rankup_action 的各等级升级操作。在这个区域内你可以列出插件在玩家升级后需要执行的操作。操作的格式应当是这样的:
- '<操作> <参数>'
有时候你也必须带着必要的参数:
(译者注: 在上一行所属文本的末尾加上)
<必选参数>, (可选参数)
你也许需要在升级完毕后延迟一些操作的执行, 那你就需要在字符串末尾添加一个空格, 就像这样:
(译者注: 请注意字符串末尾的空格)
- '[consolecommand] eco give %player% 100 '
Rankup action list | 升级操作一览
[consolecommand] - perform a console command
[playercommand] - make the player perform a command
[message] - send the player a message
[broadcast] - send the server a message
[jsonmessage] - send the player a json message
[jsonbroadcast] - send the server a json message
[actionbarmessage] - send the player an actionbar message
[actionbarbroadcast] - send the server an actionbar message
[addgroup] (world) - add the player to a permissions group
[removegroup] (world) - remove the player from a permissions group
[addpermission] (world) - add a permission node to the player
[removepermission] (world) - remove a permission node from a player
[setprefix] - set the players prefix
[setsuffix] - set the players suffix
[effect] - play an effect at the players location
[sound] - play a sound at the players location
[consolecommand] - 执行控制台命令
[playercommand] - 以玩家身份执行命令
[message] - 向玩家发送消息
[broadcast] - 向全服发送公告
[jsonmessage] - 向玩家发送 json 格式的消息
[jsonbroadcast] - 向全服发送 json 格式的公告
[actionbarmessage] - 向玩家发送 ActionBar 消息
[actionbarbroadcast] - 向全服发送 ActionBar 消息
[addgroup] (指定生效世界名称) - 将玩家添加至权限组
[removegroup] (指定生效世界名称) - 将玩家从权限组移出
[addpermission] (指定生效世界名称) - 给予玩家权限
[removepermission] (指定生效世界名称) - 移除玩家权限
[setprefix] - 设置玩家前缀
[setsuffix] - 设置玩家后缀
[effect] - 在玩家的位置播放粒子效果
[sound] - 在玩家的位置播放一段音效
Placeholder list | 内置变量列表
Placeholders can be used in your rankup actions and messages. Placeholders list:
%player% - players name
%displayname% - players displayname
%world% - players current world
%rank% - players current rank
%rankup% - players next rank (if they have one)
%cost% - cost to rankup
%cost_formatted% - formatted cost to rankup
%balance% - players balance
%balance_formatted% - players formatted balance
%difference% - amount still needed
%difference_formatted% - formatted amount still needed
%progress% - rounded % of rankup cost obtained
%progressexact% - exact % of rankup cost obtained
%rankprefix% - players current rank prefix defined in this file
%rankupprefix% - players next rank prefix defined in this file
%lastrank% - last rank available
%lastrankprefix% - last rank available prefix
%rankup_cost_% - show the cost for a specific rank
%rankup_cost_formatted_% - show the formatted cost for a specific rank
%rankup_is_completed_% - show if a player has completed the specified rank
这些是你可以用在消息或执行操作中的变量(译者注: 当然也支持 PlaceholderAPI 注册的的变量).
%player% - 玩家名
%displayname% - 玩家展示名(含前后缀)
%world% - 玩家当前世界
%rank% - 玩家当前等级
%rankup% - 玩家下一等级 (如果有)
%cost% - 升级消耗
%cost_formatted% - 带格式的升级消耗
%balance% - 玩家金钱数
%balance_formatted% - 带格式的玩家金钱数
%difference% - 距下一级的剩余要求
%difference_formatted% - 带格式的距下一级的剩余要求
%progress% - 精确到 % 的结合后耗费
%progressexact% - 实际 % 的结合后耗费
%rankprefix% - 玩家等级的文档内定义名
%rankupprefix% - 玩家下一等级的文档内定义名
%lastrank% - 可用的最高等级
%lastrankprefix% - 可用最高等级的前缀
%rankup_cost_% - 显示特定等级的耗费
%rankup_cost_formatted_% - 带格式显示特定等级的耗费
%rankup_is_completed_% - 显示玩家是否已经升级到(过)指定等级
本帖最后由 名副其实 于 2022-4-4 01:13 编辑
| Player Commands | 玩家命令
| Admin Commands | 管理员命令
Commands aliases | 命令别名
/rankup: /ezru, /ru, /ezr, /promote
/ranks: /rankslist
/autorankup: /arankup
| Permissions | 权限列表
|
| Player Commands | 玩家命令
| 命令 | 权限 | 描述 |
| /rankup | ezranks.rankup | 输入后将会尝试升到下一等级 |
| /ranks | ezranks.listranks | 列出当前服务器内可用等级列表, 包含升级所需条件 |
| /autorankup | ezranks.autorankup | 切换自动升级 |
| Admin Commands | 管理员命令
| 命令 | 权限 | 描述 |
| /ezadmin | ezranks.admin | 显示插件版本。 |
| /ezadmin help | 打开管理员帮助菜单。 | |
| /ezadmin createrankup <始等级> <至等级> <耗费> | 在升级中创建并加载命令中指定的升级 rankups.yml 中的等级。 | |
| /ezadmin deleterankup <rankFrom> | 同时从内存和 rankups.yml 中删除一个正在使用的等级升级。 | |
| /ezadmin list | 列出所有/当前等级可用的等级升级。 | |
| /ezadmin info <rankFrom> <rankTo> | 显示特定等级升级的详细信息。 | |
| /ezadmin forcerankup <player> | 强制玩家升级。 | |
| /ezadmin reload | 重载 config(配置文件)/rankups(等级升级存储文件).yml |
Commands aliases | 命令别名
/rankup: /ezru, /ru, /ezr, /promote
/ranks: /rankslist
/autorankup: /arankup
| Permissions | 权限列表
| 权限 | 描述 |
| ezranks.rank.<等级名称> | 告诉插件该玩家处于什么等级 |
| ezranks.lastrank | 告诉插件这个玩家是最高等级的玩家, 不需要更多的等级提升了。 |
| ezranks.cooldown.bypass | 若启用绕过冷却, 则该权限可用于绕过冷却。 |
| ezranks.admin | 管理员权限。 |
本帖最后由 名副其实 于 2022-6-6 09:16 编辑
| Configuration | 配置文档
config.yml
复制代码
multipers.yml
复制代码
rankups.yml
复制代码
messages.yml
复制代码
|
| Configuration | 配置文档
config.yml
- # EZRanksPro 1.9.0 main configuration file
- # Created by extended_clip
- check_updates: true
- debug: false
- check_primary_group_for_available_rankup: false
- chat_prefix_enabled: false
- log_rankups_to_file: false
- confirm_to_rankup:
- enabled: true
- time: 10
- rankup_cooldown:
- enabled: true
- time: 30
- ranks_command_enabled: true
- ranks:
- use_custom_message: true
- custom_message:
- - '&8&m----------'
- - '&aA&f: &a[ DISCUZ_CODE_0 ]f100'
- - '&bB&f: &a[ DISCUZ_CODE_0 ]f200'
- - '&cC&f: &a[ DISCUZ_CODE_0 ]f300'
- - '&8&m----------'
- header:
- - '&8&m----------'
- format_previous_ranks: '&8%rank% to %rankto%: Completed'
- format_current_rank: '&f%rank% to %rankto%: &a[ DISCUZ_CODE_0 ]f%cost%'
- format_incomplete_ranks: '&7%rank% to %rankto%: &a[ DISCUZ_CODE_0 ]f%cost%'
- format_last_rank: '&f%lastrank%: &cLast rank!'
- format_is_last_rank: '&f%lastrank%: &aYou are the last rank!'
- footer:
- - '&8&m----------'
- money:
- use_custom_format: false
- custom_format: '#,###.00'
- thousands_format: k
- millions_format: M
- billions_format: B
- trillions_format: T
- quadrillions_format: Q
- progress_bar:
- has_color: '&a'
- needs_color: '&8'
- end_color: '&e'
- left_character: '['
- bar_character: ':'
- right_character: ']'
- is_full: '&a/rankup'
- placeholders:
- rank_completed: completed
- rank_not_completed: incompleted
- autorankup:
- enabled: true
- check_interval: 60
multipers.yml
- # EZRanksPro multiplier.yml file
- # This file allows you to create custom cost multipliers and discounts
- # Discounts need to be listed in the rankup_cost_discounts: section
- # Multipliers need to be listed in the rankup_cost_multipliers section
- #
- # The format for a multiplier and discount is the same:
- # <unique identifier>:
- # priority: <unique number>
- # permission: <your custom permission for this multiplier/discount>
- # percentage: <your percentage to add on/take off of the cost>
- #
- # You can list as many multipliers/discounts you like for each section.
- # Each multiplier/discount must have a unique priority set!!!
- # The priority determines what multiplier comes first in your list
- # If a player happens to have multiple discount or multiplier
- # permissions, the lowest priority will always be applied
- #
- # The percentage system works just like a discount at a store...
- # If you set a discount percentage to 99.0 for a rank that cost 100 dollarsanyone with that discount permission will only pay 1 dollar
- # The format for percentage can include a decimal ex: 1.25, 99.9, 1, 1.05
- # DO NOT INCLUDE A % SYMBOL!!!
- # Discounts can not exceed a 100% percentage,
- # if your discount makes the rankup cost negative
- # the price will default to 1
- # You can set multipliers to any percentage: 400.0, 200.0 etc
- # If a player has permission for a cost multiplier and discount, the multiplier will always be applied before the discount
- # is applied. Meaning: player has a multiplier to make ranking up cost twice as much and has perm for discount
- # The discount will be applied to the new cost AFTER the multiplier is applied.
- rankup_cost_discounts:
- example:
- priority: 1
- permission: some.discount.permission
- percentage: 0.0
- rankup_cost_multipliers:
- example:
- priority: 1
- permission: some.multiplier.permission
- percentage: 0.0
rankups.yml
- # EZRanksPro rankups.yml file
- # Create your rankups in this file.
- # If you need a default template, delete the rankups: section and
- # let it regenerate an example rankup.
- #
- # rankup_actions are a list of
- # actions which will be executed
- # when a player successfully ranks up
- #
- # You must include required arguments
- # <required>, (optional)
- # rankup_action list:
- # [consolecommand] <command> - perform a console command
- # [playercommand] <command> - make the player perform a command
- # [message] <message> - send the player a message
- # [broadcast] <message> - send the server a message
- # [jsonmessage] <json>- send the player a json message
- # [jsonbroadcast] <json> - send the server a json message
- # [actionbarmessage] <message> - send the player an actionbar message
- # [actionbarbroadcast] <message> - send the server an actionbar message
- # [addgroup] <group> (world) - add the player to a permissions group
- # [removegroup] <group> (world) - remove the player from a permissions group
- # [addpermission] <permission> (world) - add a permission node to the player
- # [removepermission] <permission> (world) - remove a permission node from a player
- # [setprefix] <prefix> - set the players prefix
- # [setsuffix] <suffix> - set the players suffix
- # [effect] <effect> - play an effect at the players location
- # [sound] <sound> <volume> <pitch> - play a sound at the players location
- #
- # You can delay any of the rankup actions being performed by ending the action with
- # <delay=(time in seconds)>
- # example:
- # [consolecommand] eco give %player% 100 <delay=10>
- #
- # Placeholders can be used in your rankup actions and messages:
- #
- # %player% - players name
- # %displayname% - players displayname
- # %world% - players current world
- # %rank% - players current rank
- # %rankup% - players next rank (if they have one)
- # %cost% - cost to rankup
- # %cost_formatted% - formatted cost to rankup
- # %balance% - players balance
- # %balance_formatted% - players formatted balance
- # %difference% - amount still needed
- # %difference_formatted% - formatted amount still needede
- # %progress% - rounded progress % based on cost - balance
- # %progressexact% - exact progress % based on cost - balance
- # %progressbar% - custom progressbar based on cost - balance
- # %rankprefix% - players current rank prefix defined in this file
- # %rankupprefix% - players next rank prefix defined in this file
- # %lastrank% - last rank available
- # %lastrankprefix% - last rank available prefix
- # %rankup_cost_<rankname>% - show the cost for a specific rank
- # %rankup_cost_formatted_<rankname>% - show the formatted cost for a specific rank
- # %rankup_is_completed_<rankname>% - show if a player has completed the specified rank
- last_rank:
- rank: Z
- prefix: '&8[&bZ&8]'
- requirement_message:
- - '&8&m------------'
- - '&cYou need &a[ DISCUZ_CODE_2 ]f%cost% &cto rankup to %rankupprefix%'
- - '&8&m------------'
- rankups:
- A:
- order: 1
- prefix: '[A]'
- rankup_to: B
- cost: 1000.0
- rankup_actions:
- - '[broadcast] &6&l>&b&l> &6%player% &eranked up to &7[&e&l%rankup%&7]'
- - '[addgroup] %rankup%'
- - '[removegroup] %rank%'
messages.yml
- # EZRanksPro messages file
- no_permission: '&cYou don''t have the permission node &f{0} &cto do that!'
- rankup_last_rank: '&7You are at the last rank and have no more rankups.'
- rankup_no_rankups: '&cYou don''t have any rankups available at your current rank.'
- rankup_confirm_message: |-
- &aAre you sure you want to rankup to &f%rankup% for &a[ DISCUZ_CODE_3 ]f%cost%?
- &aType &7/rankup &ato confirm.
- rankup_on_cooldown: '&cYou need to wait %time% more seconds until you can rankup again!'
- ranks_no_ranks_loaded: '&cThere are no ranks loaded!'
- target_not_online: '&f{0} &cis not online!'
- force_rankup_no_rankup: '&f{0} &cdoes not have any rankups available at rank &f{1}&c!'
- force_rankup_success: '&f{0} &awas successfully ranked up from &f{1} &ato &f{2}&a!'
- autorankup_toggle_on: '&aAutoRankup toggled on.'
- autorankup_toggle_off: '&7AutoRankup toggled off.'
- autorankup_last_rank: '&cYou are at the last rank and have no need to autorankup!'
- autorankup_no_rankups: '&cYou do not have a rankup at your current rank and will not
- be able to autorankup!'
本帖最后由 名副其实 于 2022-6-6 10:00 编辑
| Description | 插件介绍
加油! 本插件为你服务器的玩家等级提供了一个额外的声望系统。在这里,当玩家的等级到达一定程度时,他们便可以选择获得声望并从其他的等级重新开始升级。
(译者注: 类似于某些RPG服务器的转职)
本插件为玩家添加了一个 /prestige 命令。插件的大部分内容均可配置,包括升声望所需要求,以及显示信息的前缀内容,还有下一声望等级,等等等等。
| Features | 插件特色
可无限创建的声望等级!
高度自定义
可显示所有声望等级的内置GUI
升级前确认操作功能(可选开启)
支持任何显示声望等级的聊天插件!
支持任何玩家等级系统/插件
允许玩家提升声望
(译者注: 原文此处重复故不作翻译)
显示声望等级详细信息的变量符
与升级插件兼容(例如上述的 EzRanksPro 等)
基于权限
| Dependencies | 插件依赖
(译者注: 原文此处为空,可能是没有编辑好的缘故)
下列插件是译者根据插件功能判断的可能需要的前置。
Vault 搭配任意一款经济插件 (升级声望等级需要消耗硬币)
任意一款聊天插件
PlaceholderAPI
本插件需要任意一款升级插件或系统才可使用。
DeluxeChat
(译者注: 这里不仅仅只支持 DeluxeChat。)
| Setup | 安装
为了在你的 DeluxeChat 插件内能够显示声望等级的变量,你需要用 exprestige 变量拓展来启用这些变量
使用命令 /papi ecloud download ezprestige 来下载变量拓展 (下载完后记得重载插件)
将变量 %ezprestige_prestige% 插入你的聊天格式中
其他变量在此处可供浏览 https://api.extendedclip.com/expansions/ezprestige/
将本插件放置在你服务器的 plugins 目录下
下载并安装一个等级插件(或由你自己制作一个等级系统)
重启服务器
修改 config.yml (位于 .../plugins/EZPrestige/config.yml)使之适合你服务器的风格
在 prestiges.yml 创建并修改你自己的声望等级。不要忘记在 prestige_commands 区设置玩家必需的权限 (ezprestige.prestige.<声望数字>)!
输入命令 /prestige reload 来重载本插件以应用修改。
查阅 命令与权限 页面,来设置你想让玩家使用的命令。
好,大功告成!
Essentials Chat | Ess 聊天插件
对于正在使用 Essentials(X)Chat 的用户,你需要这么做:
打开 Essentials 的 config.yml (译者注: 位于 .../plugins/Essentials/config.yml) 并找到 EssentialsChat 区域
修改变量为 {prestige} 并插入你的格式中,即可正常使用。
(译者注: 安装 EChatPapi 插件可无视上述操作)
| Useful Guides | 实用教程
[YouTube] koz4christ - Minecraft 服务器管理员指导手册
|
| Description | 插件介绍
Keep it going! EZPrestige gives you the ability to add prestige levels to your server's rank up system, where players can start over as a prestige player when they reach a certain rank.
EzPrestige gives players the ability to prestige using /prestige. Features plenty of configurable requirements for prestiging, as well as placeholders to display the prestige info such as prefix, next prestige and much more.
加油! 本插件为你服务器的玩家等级提供了一个额外的声望系统。在这里,当玩家的等级到达一定程度时,他们便可以选择获得声望并从其他的等级重新开始升级。
(译者注: 类似于某些RPG服务器的转职)
本插件为玩家添加了一个 /prestige 命令。插件的大部分内容均可配置,包括升声望所需要求,以及显示信息的前缀内容,还有下一声望等级,等等等等。
| Features | 插件特色
Ability to create unlimited prestige levels!
Highly customizable.
Built-in GUI to display all prestige levels.
An option to confirm before upgrading to the next prestige level.
Supports any chat plugin to display the prestige level!
Supports any rank up system/plugin.
Ability for players to prestige
Highly customizable.
Placeholders to display prestige info
Compatible with rankup plugins (EzRanksPro, etc)
Permission based
可无限创建的声望等级!
高度自定义
可显示所有声望等级的内置GUI
升级前确认操作功能(可选开启)
支持任何显示声望等级的聊天插件!
支持任何玩家等级系统/插件
允许玩家提升声望
(译者注: 原文此处重复故不作翻译)
显示声望等级详细信息的变量符
与升级插件兼容(例如上述的 EzRanksPro 等)
基于权限
| Dependencies | 插件依赖
下列插件是译者根据插件功能判断的可能需要的前置。
Vault 搭配任意一款经济插件 (升级声望等级需要消耗硬币)
任意一款聊天插件
PlaceholderAPI
EZPrestige requires any rank up system/plugin to work properly and fulfill its purpose.
本插件需要任意一款升级插件或系统才可使用。
DeluxeChat
(译者注: 这里不仅仅只支持 DeluxeChat。)
| Setup | 安装
To display the prestige tag within your deluxechat chat format, use the placeholder provided by the ezprestige expansion
download the expansion using /papi ecloud download ezprestige (make sure to reload PlaceholderAPI afterwards)
set the prestige placeholder %ezprestige_prestige% within your format
Other placeholders (https://api.extendedclip.com/expansions/ezprestige/)
Put the EZPrestige jar file you downloaded in your plugins folder.
Download a rank up plugin (such as EZRanksPro) or set up your own.
Restart the server.
Modify the config.yml file that was generated to fit your server's layout (File path: /plugins/EZPrestige/).
Create your prestige levels in prestiges.yml file. Don't forget to give the players the prestige permission (ezprestige.prestige.<Prestige Number>) in the prestige_commands section!
Reload EZPrestige /prestige reload.
Check the Commands & Permissions page, to give players access to the commands you want them to use.
And you're done!
为了在你的 DeluxeChat 插件内能够显示声望等级的变量,你需要用 exprestige 变量拓展来启用这些变量
使用命令 /papi ecloud download ezprestige 来下载变量拓展 (下载完后记得重载插件)
将变量 %ezprestige_prestige% 插入你的聊天格式中
其他变量在此处可供浏览 https://api.extendedclip.com/expansions/ezprestige/
将本插件放置在你服务器的 plugins 目录下
下载并安装一个等级插件(或由你自己制作一个等级系统)
重启服务器
修改 config.yml (位于 .../plugins/EZPrestige/config.yml)使之适合你服务器的风格
在 prestiges.yml 创建并修改你自己的声望等级。不要忘记在 prestige_commands 区设置玩家必需的权限 (ezprestige.prestige.<声望数字>)!
输入命令 /prestige reload 来重载本插件以应用修改。
查阅 命令与权限 页面,来设置你想让玩家使用的命令。
好,大功告成!
Essentials Chat | Ess 聊天插件
If you are using Essentials Chat you will need to do the following
Open the Essentials config and find the EssentialsChat section
Place the prestige placeholder for essentials chat {prestige} inside the format
对于正在使用 Essentials(X)Chat 的用户,你需要这么做:
打开 Essentials 的 config.yml (译者注: 位于 .../plugins/Essentials/config.yml) 并找到 EssentialsChat 区域
修改变量为 {prestige} 并插入你的格式中,即可正常使用。
(译者注: 安装 EChatPapi 插件可无视上述操作)
| Useful Guides | 实用教程
[YouTube] koz4christ - Minecraft 服务器管理员指导手册
本帖最后由 名副其实 于 2022-7-9 23:03 编辑
| Commands & Permissions | 命令与权限
Player Commands | 玩家命令
Admin Commands | 管理员命令
等效命令:
/prestige: /ezprestige
/prestiges: /ezprestiges
Permissions | 权限列表
|
| Commands & Permissions | 命令与权限
Player Commands | 玩家命令
| 命令 | 所需权限 | 命令描述 |
| /Prestige | - | 如果可以,则将玩家升级到下一威望等级 |
| /Prestiges | - | 如果启用GUI 选项将会显示所有可用威望等级或显示升级界面 |
Admin Commands | 管理员命令
| 命令 | 所需权限 | 命令描述 |
| /Prestige Reload | EZPrestige.Admin | 重载插件文档 |
| /Prestige Version | EZPrestige.Admin | 显示插件版本 |
等效命令:
/prestige: /ezprestige
/prestiges: /ezprestiges
Permissions | 权限列表
| 权限名称 | 权限描述 |
| EZPrestige.CanPrestige | 允许玩家无视所处等级,强制升级 |
本帖最后由 名副其实 于 2022-7-9 22:23 编辑
| Configuration | 配置文件
config.yml
复制代码
prestiges.yml
复制代码
|
| Configuration | 配置文件
config.yml
- # EZPrestige version: 1.2.2 Main Configuration
- #
- # prestige_rank: <rank players are able to /prestige>
- # confirm_to_prestige: <true/false>
- # chat_integration: <true/false>
- # messages: <-customize your messages
- # valid placeholders:
- # %cost% - cost to prestige
- # %balance% - players balance
- # %prestige% - next prestige number
- # %displaytag% - next prestige displaytag
- # %prestigerank% - rank player needs to be to use /prestige
- # %rank% - players permission group
- prestige_rank: Free
- confirm_to_prestige: true
- chat_integration: true
- op_prestige_display_tag: '&8[&c999&8]'
- no_prestige_display_tag: '&8[&c0&8]'
- gui:
- use_prestiges_gui: true
- display_name: '&cPrestiges'
- size: 18
- completed_prestige:
- material: STAINED_GLASS_PANE
- data: 13
- amount: 1
- display_name: '%displaytag%'
- lore:
- - '&acompleted'
- current_prestige:
- material: STAINED_GLASS_PANE
- data: 5
- amount: 1
- display_name: '%displaytag%'
- lore:
- - '&aYour current prestige'
- next_prestige:
- material: STAINED_GLASS_PANE
- data: 7
- amount: 1
- display_name: '%displaytag%'
- lore:
- - '&7Next prestige'
- - '&a[ DISCUZ_CODE_0 ]f%cost%'
- unavailable_prestige:
- material: STAINED_GLASS_PANE
- data: 14
- amount: 1
- display_name: '%displaytag%'
- lore:
- - '&cPrestige to unlock'
- - '%displaytag%'
- messages:
- not_at_prestige_rank:
- - '&cYou need to be &f%prestigerank% &cto prestige!'
- not_enough_money:
- - '&cYou need &a[ DISCUZ_CODE_0 ]f%cost% &cto prestige to &f%displaytag%&c!'
- confirm_prestige:
- - '&bAre you sure you want to prestige?'
- - '&bYour rank will reset and you will need to'
- - '&bstart over. Type &f/prestige &bto confirm!'
- last_prestige:
- - '&bYou are at the last prestige!'
- prestiges_command:
- completed_prestige: '&7%displaytag% &f- &aCompleted'
- current_prestige: '&7%displaytag% &f- &aCurrent prestige!'
- next_prestige: '&7%displaytag% &f- &a[ DISCUZ_CODE_0 ]f%cost%'
- unavailable_prestige: '&7%displaytag% &f- &cPrestige to unlock!'
- header:
- - '&8&m-----------------------------------------------------'
- - '&cPrestige list:'
- footer:
- - '&8&m-----------------------------------------------------'
prestiges.yml
- # EZPrestige prestiges file
- #
- # YOU MUST INCLUDE A COMMAND TO ADD THE PERMISSION
- # ezprestige.prestige.<prestige> TO THE PLAYER IN ORDER FOR
- # EZPrestige TO KNOW WHAT PRESTIGE A PLAYER IS
- # IN EVERY prestige_commands LIST
- #
- # Prestige format:
- #
- # prestiges:
- # <prestigeName>:
- # prestige: <number> MUST START AT 1, NO DUPLICATE NUMBERS OR SKIPPING
- # cost: <amount>
- # display_tag: <prefix>
- # prestige_commands:
- # - <commands here>
- #
- # Use {prestige} in your chat formatting plugin to show the
- # display_tag if a player has a Prestige!
- #
- # valid placeholders for prestige_commands:
- # %cost% - cost to prestige
- # %balance% - players balance
- # %prestige% - next prestige number
- # %displaytag% - next prestige displaytag
- # %prestigerank% - rank player needs to be to use /prestige
- # %rank% - players permission group
- prestiges:
- prestige1:
- prestige: 1
- cost: 100000
- display_tag: '&8[&c1&8]'
- prestige_commands:
- - pex user %player% group remove %rank%
- - pex user %player% group add A
- - pex user %player% add ezprestige.prestige.1
- - ezmsg &bYou are now &f%prestige%&b!
- - ezbroadcast &f%player% &bhas just prestiged to &f%displaytag%&b!
本帖最后由 名副其实 于 2022-7-9 23:00 编辑
| Description | 插件描述
本插件是一个非常轻量的插件,可以在玩家背包满时提醒玩家!
可以在配置中设置通过下列的多种方式提醒玩家,并使用命令 /invfull reload 来重载插件文档。当对应方式的提醒被启用后,每次玩家背包满时都会收到这些消息。
| Features | 插件特色
5 种不同的提醒方式。
高度自定义。
背包满时还可发送音效。
| Alerts | 背包提醒
提醒种类:
ChatMessage (聊天栏) - 将消息发送至玩家的聊天栏!
Actionbar (需要插件 ActionAnnouncer) - 在 Actionbar 发送提醒!
Title 与 Subtitle (标题,小标题,需要插件 TitleManager) - 在准心上方发送标题提醒!
Holograms (悬浮字,需要 HolographicDisplays) - 在玩家附近生成悬浮字提醒玩家!
Sound - 在玩家背包满时用音效提醒玩家!
| API | 插件调用
这里有一个 API ,允许你监听一个特殊事件,即当玩家背包满时仍在挖掘背包中没有或已有但无法拾起的方块时执行事件
这里是一个示例:
复制代码
|
| Description | 插件描述
InventoryFull is a very small plugin that alerts players when they don't have inventory space!
Simply enable any of the following ways to alert players in the config file and use /invfull reload. After the alert type is enabled, when players get a full inventiry they will be alerted!
本插件是一个非常轻量的插件,可以在玩家背包满时提醒玩家!
可以在配置中设置通过下列的多种方式提醒玩家,并使用命令 /invfull reload 来重载插件文档。当对应方式的提醒被启用后,每次玩家背包满时都会收到这些消息。
| Features | 插件特色
5 Ways to send the full inventory alert.
Highly customizable.
Play a sound when the alert is sent.
5 种不同的提醒方式。
高度自定义。
背包满时还可发送音效。
| Alerts | 背包提醒
Types of alerts:
ChatMessage - send an inventory full message through chat!
Actionbar (Requires ActionAnnouncer) - send an inventory full message through the actionbar!
Title and subtitle (Requires TitleManager) - send an inventory full message through the Title and subtitle!
Holograms (Requires HolographicDisplays) - send an inventory full message with a hologram!
Sound - play a sound to a player when they have a full inventory!
提醒种类:
ChatMessage (聊天栏) - 将消息发送至玩家的聊天栏!
Actionbar (需要插件 ActionAnnouncer) - 在 Actionbar 发送提醒!
Title 与 Subtitle (标题,小标题,需要插件 TitleManager) - 在准心上方发送标题提醒!
Holograms (悬浮字,需要 HolographicDisplays) - 在玩家附近生成悬浮字提醒玩家!
Sound - 在玩家背包满时用音效提醒玩家!
| API | 插件调用
There is an API that will allow you to listen to a special event that is fired when a player has a full inventory and breaks a block that won't fit!
Here is an example:
这里有一个 API ,允许你监听一个特殊事件,即当玩家背包满时仍在挖掘背包中没有或已有但无法拾起的方块时执行事件
这里是一个示例:
- @EventHandler
- public void onFull(InventoryFullEvent e) {
- //player with full inventory
- Player p = e.getPlayer();
- //item that does not fit in players inventory
- ItemStack i = e.getItem();
- }
本帖最后由 名副其实 于 2022-7-9 22:50 编辑
| Commands & Permissions | 命令与权限
Admin Commands | 管理员命令
等效用法: /invfull 或 /infull
Permissions | 权限一览
|
| Commands & Permissions | 命令与权限
Admin Commands | 管理员命令
| 命令 | 描述 | 权限 |
| /inventoryfull | 显示本插件的有关信息。 | inventoryfull.admin |
| /inventoryfull reload | 重载本插件的配置文件。 | inventoryfull.admin |
等效用法: /invfull 或 /infull
Permissions | 权限一览
| 权限 | 描述 | 默认拥有的用户组 |
| inventoryfull.alert | 当玩家背包满仍在挖掘自己背包放不下的物品时发出提醒。 | default |
| inventoryfull.admin | 允许使用命令 /inventoryfull 和 /inventoryfull reload。 | op |
|
| Configuration | 示例配置
config.yml
- # InventoryFull version 1.8
- # Created by: extended_clip
- # Valid placeholders:
- # %block% - display the dropped item type
- # %player% - display the players name
- #
- # For valid sounds, visit http://jd.bukkit.org/rb/apidocs/org/bukkit/Sound.html
- cooldown_time: 5
- max_alerts_until_cooldown: 5
- sound_when_full:
- enabled: true
- sound: NOTE_PLING
- volume: 10
- pitch: 1
- chat_message:
- use_chat_message: true
- message:
- - '&cYour inventory is full!'
- actionannouncer:
- use_actionbar: false
- display_time: 5
- message:
- - '&cYour inventory is full!'
- - '&4Your inventory is full!'
- titlemanager:
- use_title: false
- title: '&cYou don''t have room in your inventory'
- subtitle: to collect that &f%block%&c!
- fade_in: 12
- fade_out: 12
- duration: 20
- use_actionbar: false
- actionbar_message: '&cYou don''t have room in your inventory'
- holographicdisplays:
- use_hologram: false
- message:
- - '&cYour inventory'
- - '&cis full!'
- display_time: 3
|
| Description | 插件介绍
MessageAnnouncer allow server owners to create custom message using JSON which can be sent at a set interval.
本插件允许服主使用 JSON 创建定时发送的自定义消息。
| Features | 插件特色
Ability to use JSON
Ability to use regular text using the [text] tag
Ability to send the messages in a random order
Ability to set a custom interval
Ability to play a sound when a message is sent
You can create unlimited announcements
Highly customizable.
PlaceholderAPI support
允许使用 JSON
允许通过标签 [text] 引用相似文本
允许随机发送信息
允许设置自定义间隔
允许发送公告时使用自定义音效
可创建无限多的公告
高度自定义
支持 PlaceholderAPI
本帖最后由 名副其实 于 2022-7-9 23:10 编辑
| Commands & Permissions | 命令与权限
Admin Commands | 管理员命令
等效命令:
/messageannouncer: /msgannouncer 或 /msadmin
Permissions | 权限列表
|
| Commands & Permissions | 命令与权限
Admin Commands | 管理员命令
| 命令 | 权限 | 描述 |
| /messageannouncer start | messageannouncer.admin | 开始定时公告 |
| /messageannouncer stop | messageannouncer.admin | 停止定时公告 |
| /messageannouncer list <active(正在推送)/all(全部公告)> | messageannouncer.admin | 列出正在推送或全部的公告 |
| /messageannouncer send | messageannouncer.admin | 向玩家发送一条公告 |
| /messageannouncer announce (判断变量的玩家) | messageannouncer.admin | 向所有玩家发送公告 |
| /messageannouncer reload | messageannouncer.admin | 重载配置文件 |
等效命令:
/messageannouncer: /msgannouncer 或 /msadmin
Permissions | 权限列表
| 权限 | 描述 |
| messageannouncer.admin | 允许使用本插件的所有命令 |
本帖最后由 名副其实 于 2022-7-10 18:37 编辑
| Configuration | 示例配置
config.yml
复制代码
|
| Configuration | 示例配置
config.yml
- # MessageAnnouncer v1.11.0 Main configuration
- announcer_enabled: true
- announcer_random: true
- announce_interval: 60
- sound:
- enabled: true
- sound_name: NOTE_PLING
- volume: 10
- pitch: 1
- interval_announcement_list:
- - default
- - vote
- announcements:
- default:
- - '{"text": "--------"}'
- - '{"text": "This is a JSON auto announcement!"}'
- - '{"text": "--------"}'
- vote:
- - '{"text": "--------"}'
- - '{"text": "Be sure to vote for the server!"}'
- - '{"text": "--------"}'
本帖最后由 名副其实 于 2022-7-10 18:51 编辑
| Description | 插件介绍
本插件允许服主们决定哪些区域会随机生成宝箱。同时,在该区域内挖掘的方块会被计入奖励计数器,一旦挖掘数量足够,下次玩家挖掘特定种类的方块时就会将该方块转换为宝箱。区域,奖励和(宝箱的)等级可以在 config 编辑。
| Features | 插件特色
允许设置"宝箱(刷新)区域"
可以设置无限多的"宝箱(刷新)区域"和"(宝箱)战利品等级"
支持 WorldGuard, WorldEdit, PrisonMines 和 MineResetLite
高度自定义。
奖励可以是物品,也可以是执行特定的命令。
支持 PlaceholderAPI
基于权限
|
| Description | 插件介绍
MineCrates allows server owners to define areas where crates will spawn. Blocks that are mined in the area contribute to the reward counters, once reached the last block the player broke will switch into a reward crate. Areas, rewards and tiers can all be edited within the config.
本插件允许服主们决定哪些区域会随机生成宝箱。同时,在该区域内挖掘的方块会被计入奖励计数器,一旦挖掘数量足够,下次玩家挖掘特定种类的方块时就会将该方块转换为宝箱。区域,奖励和(宝箱的)等级可以在 config 编辑。
| Features | 插件特色
Ability to define "crate areas"
You can define unlimited "areas" and even "reward tiers"
MineCrates supports: WorldGuard, WorldEdit, PrisonMines & MineResetLite
Highly customizable.
Rewards can be items or commands
Highly customizable.
PlaceholderAPI support
Permission based
允许设置"宝箱(刷新)区域"
可以设置无限多的"宝箱(刷新)区域"和"(宝箱)战利品等级"
支持 WorldGuard, WorldEdit, PrisonMines 和 MineResetLite
高度自定义。
奖励可以是物品,也可以是执行特定的命令。
支持 PlaceholderAPI
基于权限
本帖最后由 名副其实 于 2022-7-10 18:59 编辑
| Commands & Permissions | 命令与权限
Player Commands | 玩家命令
Admin Commands | 管理员命令
等价用法: /Minecrates: /Mcrates
Permissions | 权限列表
|
| Commands & Permissions | 命令与权限
Player Commands | 玩家命令
| 命令 | 权限 | 描述 |
| /minecrates help | minecrates.help | 帮助信息 |
| /minecrates info | minecrates.info | 返回你所在的宝箱区域 |
Admin Commands | 管理员命令
| 命令 | 权限 | 描述 |
| /minecrates ingore | minecrates.ignore | 切换奖励消息 |
| /minecrates reload | minecrates.admin | 重载配置文件 |
等价用法: /Minecrates: /Mcrates
Permissions | 权限列表
| 权限 | 描述 |
| minecrates.get | 允许通过挖掘方块获取宝箱 |
| minecrates.cooldown.exempt | 绕过获取宝箱的冷却时间 |
本帖最后由 名副其实 于 2022-7-10 19:05 编辑
| Configuration | 示例配置
config.yml
复制代码
|
| Configuration | 示例配置
config.yml
- # MineCrates 2.10.0 configuration file
- # Created by: extended_clip
- #
- #
- # area_handler: World / WorldGuard / MRL / PrisonMines
- # area_handler is the name of the hook you want to define crate areas for
- # Crate areas are tied to the name of the world / mine / region you choose
- # depending on the hook you use.
- #
- # crate_despawn_time: <time in seconds that crates will despawn after spawning>
- #
- # crate_material: <Material or ID of the crate block that is spawned>
- #
- # crate_inventory_name: <name of the inventory shown when the crate is opened>
- #
- # ==================================================
- #
- # Crate area configuration:
- #
- # Almost all entries in areas are optional
- # although you must have a drop_counter and drop_chance entry.
- # You must also have a rewards section with at least 1 valid reward list for the area to be loaded.
- #
- # areas:
- # (region, mine, or world name):
- # permission: (if you want players to have a certain permission to obtain crates in this area, add the permission node here)
- # drop_counter: (how many blocks need to be broken before a crate has a chance to spawn)
- # drop_chance: (what is the chance out of 100.0 that a crate will spawn when the counter reaches 0)
- # alternate_areas:
- # - (if you would like to allow this area options to be used for other areas)
- # - (that way all rewards and options are shared, you can list the alternate area names here)
- # - world_nether
- # - world_the_end
- # counted_materials:
- # - (if you only want to have certain materials count towards the counter)
- # - (you can list them here, otherwise don't add this option)
- # - DIAMOND_ORE
- # - EMERALD_ORE
- # reward_on_break: <true/false> should rewards be given on break of the block instead of spawning a crate
- # rewards: (this section holds all reward related options specific to this area)
- # (name of this reward list):
- # priority: (if you have multiple lists, the lowest priority list will be applied if player has multiple list permissions)
- # permission: (optional if you require players have certain permission to obtain rewards in this list)
- # max_rewards_per_crate: (max amount of rewards a player can get in a crate from this list)
- # only_owner_can_open: (should only the person this crate spawned for be allowed to open it)
- # crate_spawn_actions: (these actions are performed when a crate holding this reward list is spawned)
- # - [msg] You found a crate
- # - [broadcast] @p found a crate
- # - [command] eco give @p 100
- # - [playersound] ANVIL_LAND 10 1
- # - [worldsound] ANVIL_BREAK 10 1
- # - [effect] helix
- # crate_open_actions: (these actions are performed when a crate holding this reward list is opened)
- # - [msg] You opened a MineCrate!
- # - [broadcast] @p opened a crate
- # - [playersound] CHEST_OPEN 10 1
- # - [effect] atom
- # crate_despawn_actions: (these actions are performed when a crate holding this reward list is despawned if it was not opened)
- # - [msg] You missed your crate
- # - [worldsound] ANVIL_BREAK 10 1
- # - [effect] heart
- # items: (this section holds all of the actual commands / items given as rewards)
- # (unique name for this item reward):
- # chance: (chance this reward will be selected) the chance system is explained below...
- # item: (if this reward is an itemstack, you must specify 'item:' here, otherwise you will specify 'commands:')
- # material: (if this is an item, these are the item options you can use)
- # data: (data value if needed)
- # amount: (amount of this item to give)
- # name: (display name to set on this item)
- # lore:
- # - (add your lore here if you want)
- # - (supports multiple lines)
- # enchantments:
- # - <ENCHANTMENT NAME>,<LEVEL>
- # (unique name for this command reward):
- # chance: 50.0
- # commands:
- # - (list all your commands here, they must start with a valid action identifier)
- # - [command] eco give @p 100
- # - [msg] you got 100 bucks!
- # ==================================================
- #
- # CRATE SPAWN CHANCE INFORMATION
- #
- # This chance can be any double value from 0.01 to 100.0
- # it is percentage based, so if you set the chance to 10.0
- # there will be a 10% chance a crate will spawn when the break
- # counter reaches 0. If you set it to 99.0, there will be a 99% chance
- # that a crate will spawn when the counter rewaches 0.
- #
- # ==================================================
- #
- # REWARD CHANCE INFORMATION
- #
- # All rewards in a specific reward list have a chance associated with the item/commands that are executed for that reward.
- # All reward chances in a list must add up to or be less than 100.0
- # Example:
- #
- # rewards:
- # VIP_REWARDS:
- # priority: 1
- # permission: vip.rewards
- # max_rewards_per_crate: 1
- # only_owner_can_open: true
- # items:
- # item_1:
- # chance: 10.0
- # item:
- # material: DIAMOND
- # amount: 128
- # item_2:
- # chance: 15.0
- # item:
- # material: IRON_INGOT
- # amount: 64
- # item_3:
- # chance: 25.0
- # item:
- # material: DIRT
- # amount: 64
- # command_1:
- # chance: 25.0
- # commands:
- # - [command] eco give @p 25
- # - [msg] You got 25 bucks
- #
- # With this example, all of our chances add up to 75.0,
- # This means that there is a 25% chance that we get nothing each time a reward is
- # being selected. If we want to make sure players always get a reward, we could
- # simply add one more reward item or command with the remainder percentage for all of our
- # chances to equal 100.0, which would be 25.0.
- # This system allows you to set what items are rare, and which items are going to be
- # more commonly selected when the plugin chooses rewards.
- # Always keep in mind that all reward chances must be less than, or add up to 100.0
- # If your combined chance exceeds 100.0, the rewards that are being checked after 100.0 has
- # been reached will not be loaded. Also remember, to make it where a player has a chance to get
- # no reward, always leave the total chance less than 100.0 as all chance remaining will
- # be the chance amount that no reward is chosen.
- #
- # ==================================================
- #
- # CRATE SPAWN/DESPAWN/OPEN/COMMANDS ACTION IDENTIFIERS
- #
- # Any action added to these lists must contain a specific identifier
- # as there are more actions than just commands to be executed.
- # These actions are as follows:
- #
- # [msg] <message>
- # This will send a raw message to the target player
- #
- # [broadcast] <message>
- # This will broadcast a message to the entire server
- #
- # [command] <command here>
- # This will execute a command in the console
- #
- # [worldsound] <sound> <volume> <pitch>
- # This will play a sound to the entire world at the crate location
- #
- # [playersound] <sound> <volume> <pitch>
- # This will play a sound to the target player
- #
- # [effect] <effectName>
- # This will play a preset effect at the crate location
- #
- # effect names:
- # animatedball
- # arc
- # atom
- # bleed
- # circle
- # cloud
- # cone
- # cube
- # cylinder
- # disco
- # dna
- # donut
- # dragon
- # earth
- # explode
- # flame
- # fountain
- # grid
- # heart
- # helix
- # hill
- # icon
- # love
- # music
- # shield
- # smoke
- # sphere
- # star
- # tornado
- # vortex
- # warp
- # wave
- #
- # ==================================================
- #
- # Optional: display a temporary hologram above the MineCrate when it is spawned.
- #
- # To enable this feature, add the following entry to the top of your config file:
- #
- # You can either use HolographicDisplays API to display the hologram, or the internal
- # hologram mechanics. Set handler: none to disable holograms
- #
- # Note: the internal hologram handler is only available for 1.8.8
- # More hologram handlers will be coming soon.
- #
- # crate_hologram:
- # handler: none/internal/holographicdisplays
- # message:
- # - '%player%s MineCrate'
- # - '(Right click to open)
- # height: 2'
- #
- # Inside of the message, you can use the following placeholders:
- # %player% - shows players name who MineCrate is for
- # %area% - name of the area the crate spawned in
- # %rewardlist% - name of the list the rewards were chosen from
- # %rewards% - amount of rewards inside of the MineCrate
- #
- # ==================================================
- crate_hologram:
- handler: none
- message:
- - '&f%player%''s &aMineCrate'
- - '&e(&7Right click to open&e)'
- height: 2.2
- check_updates: true
- area_handler: World
- ignore_silk_touch: true
- crate_despawn_time: 30
- crate_material: ENDER_CHEST
- crate_inventory_name: '%reward_list_name% &aMineCrate'
- messages:
- help:
- - '&aMineCrates &fhelp'
- - '&a/minecrates reload &7- &freload the plugin'
- - '&a/minecrates info &7- &fView minecrates information for the area you are standing'
- - '&a/minecrates ignore &7- &ftoggle on/off ignoring minecrates for yourself'
- ignore_toggle_on: '&aYou are now ignoring MineCrates!'
- ignore_toggle_off: '&fYou are no longer ignoring MineCrates!'
- only_owner_can_open_crate: '&cOnly &f@p &ccan open this &aMineCrate!'
- no_permission: '&cYou don''t have permission to do that!'
- areas:
- world:
- permission: minecrates.getcrates.world
- drop_counter: 100
- drop_chance: 50.0
- cooldown: 30
- counted_materials:
- - COAL_ORE
- - IRON_ORE
- - GOLD_ORE
- - DIAMOND_ORE
- rewards:
- vip:
- priority: 1
- permission: minecrates.rewards.world.vip
- max_rewards_per_crate: 1
- only_owner_can_open: true
- crate_spawn_actions:
- - '[message] &aYou found a VIP MineCrate!'
- - '[command] eco give @p 100'
- - '[broadcast] &f@p &afound a MineCrate!'
- - '[effect] helix'
- crate_despawn_actions:
- - '[message] &7Your crate has despawned!'
- - '[effect] helix'
- items:
- example_item:
- chance: 20.0
- item:
- material: DIAMOND
- data: 0
- amount: 64
- name: '&bVIP &3Diamonds'
- lore:
- - This item is only available to players who
- - have permission for this vip reward list!
- enchantments:
- - LUCK,1
- example_command_1:
- chance: 1.0
- commands:
- - '[command] eco give @p 1000000'
- - '[msg] You got 1000000 dollars!'
- example_command_2:
- chance: 30.0
- commands:
- - '[command] eco give @p 500'
- - '[msg] You got 500 dollars!'
- example_command_3:
- chance: 49.0
- commands:
- - '[command] eco give @p 1000'
- - '[msg] You got 1000 dollars!'
- default:
- priority: 2
- max_rewards_per_crate: 1
- only_owner_can_open: false
- crate_spawn_actions:
- - '[message] &aYou found a regular MineCrate!'
- - '[command] eco give @p 100'
- - '[broadcast] &f@p &afound a MineCrate!'
- - '[effect] helix'
- items:
- example_item_1:
- chance: 5.0
- item:
- material: DIAMOND
- amount: 16
- example_item_2:
- chance: 10.0
- item:
- material: IRON_INGOT
- amount: 32
- example_command:
- chance: 85.0
- commands:
- - '[command] eco give @p 250'
- - '[msg] You got 250 dollars!'
本帖最后由 名副其实 于 2022-7-10 18:57 编辑
| Description | 插件介绍
本插件能够在WG设置了 flags 的区域内,对没有权限的玩家禁止飞行。
| Installation | 插件安装
你需要做的只有一件事,那就是将你需要限制飞行的区域手动或使用命令添加至本插件的配置文本中并输入命令 /nfz reload。任何只要没有权限 noflyzone.bypass 的玩家,进入该区域的瞬间就会被阻止飞行。
你需要 WorldGuard 6.x 或更高版本 以及 WorldEdit 以使插件正常运行!
| Source | 插件源码
本插件开源。你可以在这里找到它的源代码。
https://github.com/extendedclip/NoFlyZone
|
| Description | 插件介绍
NoFlyZone is a plugin that prevents players from flying in specific WorldGuard regions if they do not have permission.
本插件能够在WG设置了 flags 的区域内,对没有权限的玩家禁止飞行。
| Installation | 插件安装
All you need to do is add the region name to the NoFlyZone config list either by command or by editing the config manually and using /nfz reload. Anyone without the permission noflyzone.bypass will be stopped from flying as soon as they enter the region.
You NEED WorldGuard 6.x + WorldEdit for this plugin to work!
你需要做的只有一件事,那就是将你需要限制飞行的区域手动或使用命令添加至本插件的配置文本中并输入命令 /nfz reload。任何只要没有权限 noflyzone.bypass 的玩家,进入该区域的瞬间就会被阻止飞行。
你需要 WorldGuard 6.x 或更高版本 以及 WorldEdit 以使插件正常运行!
| Source | 插件源码
This plugin is open source. You can get the source code from here:
https://github.com/extendedclip/NoFlyZone
本插件开源。你可以在这里找到它的源代码。
https://github.com/extendedclip/NoFlyZone
本帖最后由 名副其实 于 2022-7-10 19:04 编辑
| Commands & Permissions | 命令与权限
Player Commands | 玩家命令
Admin Commands | 管理员命令
等价用法: /noflyzone: /nfz
Permissions | 权限列表
|
| Commands & Permissions | 命令与权限
Player Commands | 玩家命令
| 命令 | 权限 | 描述 |
| /noflyzone | - | 显示本插件的信息 |
Admin Commands | 管理员命令
| 命令 | 权限 | 描述 |
| /noflyzone list (世界名称) | noflyzone.admin | 列出所有(加参数则是当前世界)的禁止飞行区 |
| /noflyzone add | noflyzone.admin | 添加禁止飞行区 |
| /noflyzone remove | noflyzone.admin | 删除禁止飞行区 |
| /noflyzone reload | noflyzone.admin | 重载配置文件 |
等价用法: /noflyzone: /nfz
Permissions | 权限列表
| 权限 | 描述 |
| noflyzone.bypass | 允许无视飞行限制 |
| noflyzone.autofly.all | 允许在可自动飞行的区域内自动开启飞行 |
本帖最后由 名副其实 于 2022-7-14 21:08 编辑
| Configuration | 示例配置
config.yml
复制代码
|
| Configuration | 示例配置
config.yml
- # NoFlyZone version: 2.0.0 Main Configuration
- #
- # List regions below that will disable players from flying when they enter them
- no_fly_worlds:
- - world_nether
- - world_the_end
- no_fly_regions:
- world:
- - testflyregion
- no_fly_message: '&cNo flying here!'
- auto_fly_message: '&aYour flight has been toggled on!'
|
| Description | 插件描述

Ever have that urge to punch a cow, but everytime you do its just so unsatisfying? Well I've got the plugin for you, this plugin allows cows to float up in into the sky after being punched by a player... and then come crashing down to the ground ultimately coming their end.
所有人都想攻击牛,但是有时候你不会觉得这让人太不爽了吗?好吧,我为你准备了一份插件,这个插件允许牛在被玩家击打一次后悬浮在空中,等到它们摔到地上的时候就能获得现成的
本帖最后由 名副其实 于 2022-7-14 21:16 编辑
| Commands & Permissions | 命令与权限
|
| Commands & Permissions | 命令与权限
| 命令 | 权限 | 描述 |
| 无 | cowpunch.use | 允许使用本插件的功能。 |
|
| Description | 插件介绍

This is a fun little plugin that allows fireworks to come shooting out of any configured block clicked by a player. It also includes a configurable cooldown per block to stop pesky spammers.
这是一个小小的娱乐向插件,允许在一个玩家在触碰配置文本中设置好的方块之后让这个方块发送许多的烟花,配置文本中海油一个选项可以决定每个方块发射烟花的持续时间。

插件的展示图片。
|
| Commands & Permissions | 命令与权限
| 命令 | 权限 | 描述 |
| 无 | fireworkchests.use | 允许使用本插件的功能。 |
本帖最后由 名副其实 于 2023-1-22 13:52 编辑
| Configuration | 示例配置
复制代码
请确保 LauncherBlock 项设置的方块是有效的方块种类!
|
| Configuration | 示例配置
- LaunchMessage: '&6Fireworks Launched!'
- CooldownMessagePlural: '&cRestocking fireworks, please wait %time% seconds!'
- CooldownMessage: '&cRestocking fireworks, please wait %time% second!'
- CooldownTime: 5
- NumberOfFireworks: 3
- LauncherBlock: TRAPPED_CHEST
请确保 LauncherBlock 项设置的方块是有效的方块种类!
本帖最后由 名副其实 于 2022-7-14 21:23 编辑
| Description | 插件介绍

本插件允许让有合适权限的玩家使用生鱼作为武器,以一种混乱的方式拍飞周围的玩家。这是一个很简单的事情,这些有权限能使用该功能的任意玩家,能够击飞另一些有权限被击飞的玩家(是的,听起来很搞笑)。也就是说,他们只要碰到你手里的鱼,就会瞬间被干飞!(河豚是在这之中击退效果最强的)
由于新的鱼被加入了游戏,在 1.11.0 或更高的版本你需要使用河豚才能让一些效果正常工作!
|
| Description | 插件介绍

FishSlapper allows any player with the correct permission to use raw fish as an tool to slap people around the server in a chaotic fashion. It's quite a simple concept, those with the permission allowing them have the permission to slap can slap anyone with the permission that allows them to be slapped. Once contact has been made between the fish and the player they are then sent flying away! (Pufferfish will allow for maximum slapping)
本插件允许让有合适权限的玩家使用生鱼作为武器,以一种混乱的方式拍飞周围的玩家。这是一个很简单的事情,这些有权限能使用该功能的任意玩家,能够击飞另一些有权限被击飞的玩家(是的,听起来很搞笑)。也就是说,他们只要碰到你手里的鱼,就会瞬间被干飞!(河豚是在这之中击退效果最强的)
Due to new fish added to the game, v1.11.0+ You need to use a Pufferfish for the effect to work!
由于新的鱼被加入了游戏,在 1.11.0 或更高的版本你需要使用河豚才能让一些效果正常工作!
本帖最后由 名副其实 于 2022-7-14 21:31 编辑
| Commands & Permissions | 命令与权限
|
| Commands & Permissions | 命令与权限
| 命令 | 权限 | 描述 |
| /slap 玩家名称 | FishSlapper.SlapCommand | |
| /slapall | FishSlapper.SlapAll | |
| 无 | FishSlapper.ICanSlapYou | 允许玩家使用生鱼击飞其他玩家 |
| 无 | FishSlapper.ICanBeSlapped | 允许玩家被生鱼击飞 |
|
| Configuration | 示例配置
config.yml
- SlapMessage: '&6You slapped &e%player%&6!'
- SlappedMessage: '&6You got slapped by &e%player%!'
- ServerSlap: '&4%player% &cslapped everyone on the server!'
- SlapCommand: '&f%player% &aslapped you!'
- SlapCommandWorked: '&f%player% &awas slapped!'
- SlapCommandConsole: '&aYou have been slapped!'
- NoPerms: '&cYou don''t have permission to use this command!'
|
| Description | 插件介绍

Just a simple plugin to send a raw message (No Prefix) from in game or console with PlaceholderApi placeholders to either a single player or broadcast it to the whole server.
只是一个允许向玩家发送纯文本消息(无前缀)的插件。支持 PlaceholderAPI ,以及支持在游戏内或后台中发送。当然也支持向单个或者多个玩家甚至是全服发送。

插件的演示图片。
本帖最后由 名副其实 于 2022-7-14 21:52 编辑
| Commands & Permissions | 命令与权限
<centered> - 如果设置为 true ,那么本插件会在输出这些信息的时候尝试使这条消息看起来居中。
你也可以使用 <n> 用作换行符。若要添加一个空行,那么只需要输入两个这样的符号!
致 1.16+ 的用户:
#<??????> 使用彩色字体
将 ? 替换成 HEX 的十六进制值,例如 #<ffffff>
|
| Commands & Permissions | 命令与权限
| 命令 | 权限 | 描述 |
| /RawMsg <玩家名称/all(所有玩家)> <centered(是否居中)> <纯文本消息> | rawmsg.use | 允许使用本插件的功能。 |
<centered> - If set to true RawMsg will attempt to center the message when sending it to the player.
You can use <n> in the message to add a new line. To add a blank line just use two!
For 1.16+ Users:
#<??????> for custom hex colours
Replace ?'s with hex value eg #<ffffff>
<centered> - 如果设置为 true ,那么本插件会在输出这些信息的时候尝试使这条消息看起来居中。
你也可以使用 <n> 用作换行符。若要添加一个空行,那么只需要输入两个这样的符号!
致 1.16+ 的用户:
#<??????> 使用彩色字体
将 ? 替换成 HEX 的十六进制值,例如 #<ffffff>
|
| Description | 插件介绍

Let your players spit like Llamas using the /spit command, this will fire spit from the player in the direction they are looking in.
使用 /spit 命令来像羊驼一样吐口水。这会让他们向视角所在方向吐出一坨

插件的演示图片。
| Spit | Send Raw Messages to a player or the server with PlaceholderApi Support |
| Commands & Permissions | 命令与权限
| 命令 | 权限 | 描述 |
| /spit | spit.use | 允许吐口水。 |
| Temp MOTD | Set a timed temporary message all from one command! |
| Description | 插件介绍

Set a timed message to show up in your server list MOTD, broadcast events in your message, Thank voters in your message, Congratulate rankups in your message and much more.
为服务器的 MOTD 设置一个临时的显示样式,可以在这些内容里推送你服务器的最新活动,感谢为你服务器点赞的游戏用户,以及庆祝服务器里成功升级的玩家,还有更多。
插件示例用法
Using ChatReaction you can launch commands on correct guesses, use this to show off who won the reaction win and tell others to join in on the fun.
使用插件 ChatReaction 你可以在玩家猜对答案时发送临时 MOTD,用于庆祝答题者的胜利以及吸引其他玩家进服游玩。

Using EzRanksPro on a rankup you can run the TempMotd command in the console and show off who ranked up and what they ranked up to!
使用插件 EzRanksPro 你可以在这里使用本插件的命令,可以用来显示升级成功的玩家,同样可以吸引其他玩家进入服务器。

More examples include:
- Thank players for donating to the server.
- Thank players for voting for the server.
- Broadcast Drop Parties or other events.
- Congratulate on level ups.
And many more.
还有这些情况也可使用:
- 感谢玩家捐赠资助服务器
- 感谢玩家投票支持服务器
- 公布送礼或其他活动
- 祝贺某玩家升级成功
以及更多...
本帖最后由 名副其实 于 2022-7-14 22:15 编辑
| Commands & Permissions | 命令与权限
|
| Commands & Permissions | 命令与权限
| 命令 | 权限 | 描述 |
| /TempMotd <持续时间> <消息> | tempmotd.use | 允许发送命令来使用此功能,时间单位为秒。 |
| /TempMotd Stop | tempmotd.use | 允许强制停止当前正在推送的 MOTD |
| /TempMotd Reload | tempmotd.use | 允许重载配置文件。 |
|
| Configuration | 示例配置
config.yml
- # TempMOTD Config File
- # By Funnycube
- #
- #DefaultMOTD: What is shown when no temp MOTD are active (Use \n for new line)
- #TempMOTD: What is shown when there is a temp MOTD is active (Use \n for new line & use %message% for where the temp section will go)
- #
- DefaultMOTD: "&b&lMy Server&r &7|&r &dSomeRandomIp.com&r\n&7Come join my server!"
- TempMOTD: "&b&lMy Server&r &7|&r &dSomeRandomIp.com&r\n%message%"
本帖最后由 名副其实 于 2023-2-22 22:27 编辑
| Description | 插件介绍
本插件为服务器带来了一个 RPG 风格的公会系统。本插件启发自一些服务器环境中那些玩家自发组成的和谐友爱和激动人心的团体的做法。本插件允许你加入其他玩家所组成的公会,同时允许玩家咋子服务器建立自己的团体,最终提升游戏趣味性!
| Features | 插件特点
- 公会阶级(角色)
- 成员等级(包括各等级的自定义公会内权限)
- 公会领地(需要 WorldGuard)
- 公会银库
- 公会仓库(可任意创建)
- 公会效果
- 自定义公会聊天格式
- 公会战(可通过 Arenas 插件自定义战斗场地)
- 多语言支持
- 完全GUI包装!
- JSON / MySQL / SQLite 支持!
| Dependencies (soft) | 插件软依赖
Vault
WorldGuard
PlaceholderAPI
Essentials(X)
点击这里或翻到下一页来获得更多相关信息。
| Supported Platforms | 支持的服务端核心
- Spigot
- Paper
- CatServer?(很多人通过多种方式告诉我,本插件可以在这样的服务端上运行。不论如何还是把它贴在这里好了。)
(译者注:这个服务端核心为 模组-插件混合端,使用插件时兼容性不如原生插件端)
(该插件可以在离线服务器上运行但未经测试,同样,在这种环境下的问题将不会得到技术支持。)
| Languages | 语言支持
本插件中,我们通常尝试用尽可能多种类的语言来使得更多玩家的使用体验变得更好!本插件目前支持二十多种语言,但不是所有语言都保持着完全翻译。若你对这其中的一种语言非常熟悉并愿意翻译,请加入我们的 Discord 群组来了解更多相关信息!
|
| Description | 插件介绍
Guilds were created to offer an RPG-type system to servers. It was inspired by players like you who enjoy creating a fun, exciting, and adventurous environment for your server. Guilds allow players to join interactive groups of other players, make their own communities on your server, and have a general fun time!
本插件为服务器带来了一个 RPG 风格的公会系统。本插件启发自一些服务器环境中那些玩家自发组成的和谐友爱和激动人心的团体的做法。本插件允许你加入其他玩家所组成的公会,同时允许玩家咋子服务器建立自己的团体,最终提升游戏趣味性!
| Features | 插件特点
Per-Guild Hierarchy (Roles)
Tiers (Includes perks of your choosing)
Claims (via WorldGuard)
Banks
Vaults (As many as your choose!)
Buffs
Per-Guild Chat
Wars (via Arenas that you make)
Multilingual
Tons of GUIs!
JSON + MySQL + SQLite support!
- 公会阶级(角色)
- 成员等级(包括各等级的自定义公会内权限)
- 公会领地(需要 WorldGuard)
- 公会银库
- 公会仓库(可任意创建)
- 公会效果
- 自定义公会聊天格式
- 公会战(可通过 Arenas 插件自定义战斗场地)
- 多语言支持
- 完全GUI包装!
- JSON / MySQL / SQLite 支持!
| Dependencies (soft) | 插件软依赖
Vault
WorldGuard
PlaceholderAPI
Essentials(X)
点击这里或翻到下一页来获得更多相关信息。
| Supported Platforms | 支持的服务端核心
- Spigot
- Paper
- CatServer?(很多人通过多种方式告诉我,本插件可以在这样的服务端上运行。不论如何还是把它贴在这里好了。)
(译者注:这个服务端核心为 模组-插件混合端,使用插件时兼容性不如原生插件端)
(该插件可以在离线服务器上运行但未经测试,同样,在这种环境下的问题将不会得到技术支持。)
| Languages | 语言支持
In Guilds, we always try to support as many languages as we can in order to support more people! The plugin currently supports 20 languages, but not all of them are always up-to-date on the translations. If you speak a language fluently other than English and are interested in translating, please join our discord and let us know so that we can give you information on how to do that!
本插件中,我们通常尝试用尽可能多种类的语言来使得更多玩家的使用体验变得更好!本插件目前支持二十多种语言,但不是所有语言都保持着完全翻译。若你对这其中的一种语言非常熟悉并愿意翻译,请加入我们的 Discord 群组来了解更多相关信息!
本帖最后由 名副其实 于 2023-2-23 22:32 编辑
| Configuration | 配置文本
当本插件第一次在服务器运行时,它将会生成下列的文件:
buffs.yml
config.yml
roles.yml
tiers.yml
基于本插件的灵活性以及你可添加的内容数量,本插件的配置被分在了四个独立的文件中。
buffs.yml复制代码
config.yml复制代码
roles.yml复制代码
tiers.yml复制代码
|
| Configuration | 配置文本
When the plugin starts up for the first time, the following files will be generated:
buff.yml
config.yml
roles.yml
tiers.yml
The configuration for the plugin is split up into multiple files due to how flexible the plugin is and how much custom data you can add to it.
当本插件第一次在服务器运行时,它将会生成下列的文件:
buffs.yml
config.yml
roles.yml
tiers.yml
基于本插件的灵活性以及你可添加的内容数量,本插件的配置被分在了四个独立的文件中。
buffs.yml
- guild-buffs:
- # What should the name of the inventory be?
- gui-name: Guild Buffs
- # How often (in seconds) can a guild buy a buff?
- cooldown: 60
- # Do we want to allow users to have more than one buff at a time?
- buff-stacking: false
- # Set the name and material for the navigation buttons
- nav:
- next:
- material: EMPTY_MAP
- name: Next
- previous:
- material: EMPTY_MAP
- name: Previous
- # This is where the buffs themselves are to be created. You can create an unlimited number of buffs as long as the IDENTIFIERS are different.
- # Ths identifiers can be anything you want, they just tell the plugin that they aren't the same as the buff before.
- # The buffs are loaded into the menu in the order they are listed in the config. So, to change the order, simply change their location in their list of the config.
- # Example Buff:
- # # The identifier of the buff, can be anything you want.
- # - identifier: '1'
- # This is what the buff will look like to the player when they DON'T have the permission listed below.
- # locked:
- # name: '&a&lSubstance of the Redmod Graff'
- # material: FEATHER
- # lore:
- # - '&aType » &7Haste'
- # - '&aLength » &760 Seconds'
- # - '&aCost » &7$60'
- # This is what the buff will look like to the player when they DO have the permission listed below.
- # unlocked:
- # name: '&a&lSubstance of the Redmod Graff'
- # material: FEATHER
- # lore:
- # - '&aType » &7Haste'
- # - '&aLength » &760 Seconds'
- # - '&aCost » &7$60'
- # The price of the buff, pulled from Guild Bank.
- # price: 60.0
- # The effects that the guild will get for buying the buff. You should be able to list as many as you want.
- # The way you do it is: EFFECT_TYPE;AMPLIFICATION;LENGTH OF BUFF
- # So, this effect here will give Haste I for 60 seconds.
- # effects:
- # - FAST_DIGGING;0;60
- # The permission required to purchase the buff.
- # permission: example.perm.here
- # Would you like to execute commands on the player that bought the buff for the guild? Supports {player}, {buyer}, {buff_name}.
- # clicker:
- # enabled: false
- # commands:
- # - ''
- # Would you like to execute commands on the guild that bough the buff? Supports {player}, {buyer}, {buff_name}.
- # guild:
- # enabled: false
- # commands:
- # - ''
- buffs:
- - identifier: '1'
- locked:
- name: '&a&lSubstance of the Redmod Graff'
- material: FEATHER
- lore:
- - '&aType » &7Haste'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- unlocked:
- name: '&a&lSubstance of the Redmod Graff'
- material: FEATHER
- lore:
- - '&aType » &7Haste'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- price: 60.0
- effects:
- - FAST_DIGGING;0;60
- permission: example.perm.here
- clicker:
- enabled: false
- commands:
- - ''
- guild:
- enabled: false
- commands:
- - ''
- - identifier: '2'
- locked:
- name: '&a&lBlessing of the Cheetah'
- material: SUGAR
- lore:
- - '&aType » &7Speed'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- unlocked:
- name: '&a&lBlessing of the Cheetah'
- material: SUGAR
- lore:
- - '&aType » &7Speed'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- price: 60.0
- effects:
- - SPEED;0;60
- permission: example.perm.here
- clicker:
- enabled: false
- commands:
- - ''
- guild:
- enabled: false
- commands:
- - ''
- - identifier: '3'
- locked:
- name: '&a&lScales of the Dragon'
- material: BLAZE_POWDER
- lore:
- - '&aType » &7Fire-Resistance'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- unlocked:
- name: '&a&lScales of the Dragon'
- material: BLAZE_POWDER
- lore:
- - '&aType » &7Fire-Resistance'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- price: 60.0
- effects:
- - FIRE_RESISTANCE;0;60
- permission: example.perm.here
- clicker:
- enabled: false
- commands:
- - ''
- guild:
- enabled: false
- commands:
- - ''
- - identifier: '4'
- locked:
- name: '&a&lEyes of the Lurking Demon'
- material: EYE_OF_ENDER
- lore:
- - '&aType » &7Night-Vision'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- unlocked:
- name: '&a&lEyes of the Lurking Demon'
- material: EYE_OF_ENDER
- lore:
- - '&aType » &7Night-Vision'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- price: 60.0
- effects:
- - NIGHT_VISION;0;60
- permission: example.perm.here
- clicker:
- enabled: false
- commands:
- - ''
- guild:
- enabled: false
- commands:
- - ''
- - identifier: '5'
- locked:
- name: '&a&lFeet of the Ghostly Walker'
- material: DIAMOND_BOOTS
- lore:
- - '&aType » &7Invisibility'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- unlocked:
- name: '&a&lFeet of the Ghostly Walker'
- material: DIAMOND_BOOTS
- lore:
- - '&aType » &7Invisibility'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- price: 60.0
- effects:
- - INVISIBILITY;0;60
- permission: example.perm.here
- clicker:
- enabled: false
- commands:
- - ''
- guild:
- enabled: false
- commands:
- - ''
- - identifier: '6'
- locked:
- name: '&a&lMighty Strength of the Pouncing Lion'
- material: DIAMOND_SWORD
- lore:
- - '&aType » &7Strength'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- unlocked:
- name: '&a&lMighty Strength of the Pouncing Lion'
- material: DIAMOND_SWORD
- lore:
- - '&aType » &7Strength'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- price: 60.0
- effects:
- - INCREASE_DAMAGE;0;60
- permission: example.perm.here
- clicker:
- enabled: false
- commands:
- - ''
- guild:
- enabled: false
- commands:
- - ''
- - identifier: '7'
- locked:
- name: '&a&lBounce of the Quick Witted Rabbit'
- material: DIAMOND_BOOTS
- lore:
- - '&aType » &7Jump'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- unlocked:
- name: '&a&lBounce of the Quick Witted Rabbit'
- material: DIAMOND_BOOTS
- lore:
- - '&aType » &7Jump'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- price: 60.0
- effects:
- - JUMP;0;60
- permission: example.perm.here
- clicker:
- enabled: false
- commands:
- - ''
- guild:
- enabled: false
- commands:
- - ''
- - identifier: '8'
- locked:
- name: '&a&lLungs of the Albino Shark'
- material: BUCKET
- lore:
- - '&aType » &7Water-Breathing'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- unlocked:
- name: '&a&lLungs of the Albino Shark'
- material: BUCKET
- lore:
- - '&aType » &7Water-Breathing'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- price: 60.0
- effects:
- - WATER_BREATHING;0;60
- permission: example.perm.here
- clicker:
- enabled: false
- commands:
- - ''
- guild:
- enabled: false
- commands:
- - ''
- - identifier: '9'
- locked:
- name: '&a&lIntegrity of the Mystic Witch'
- material: EMERALD
- lore:
- - '&aType » &7Regeneration'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- unlocked:
- name: '&a&lIntegrity of the Mystic Witch'
- material: EMERALD
- lore:
- - '&aType » &7Regeneration'
- - '&aLength » &760 Seconds'
- - '&aCost » &7$60'
- price: 60.0
- effects:
- - REGENERATION;0;60
- permission: example.perm.here
- clicker:
- enabled: false
- commands:
- - ''
- guild:
- enabled: false
- commands:
- - ''
config.yml
- # Guilds
- # Creator: Glare
- # Contributors: https://github.com/guilds-plugin/Guilds/graphs/contributors
- # Issues: https://github.com/guilds-plugin/Guilds/issues
- # Spigot: https://www.spigotmc.org/resources/66176/
- # Wiki: https://wiki.glaremasters.me/
- # Discord: https://glaremasters.me/discord
- settings:
- announcements:
- # This is used for the Guild's Announcement System, which allow me (The Author) to communicate to you guys without updating.
- # The way this works is very simple. If you have "console" set to "true", you will see the announcement when the server starts.
- # If you have "in-game" set to "true", your OPed players will see it the first time they login to the server.
- console: true
- in-game: true
- # Choosing your language for the plugin couldn't be easier! The default language is english.
- # If you speak another language but don't see it here, feel free to submit it via one of the links above to have it added to the plugin.
- # If you try and use a different language than any in the list above, the plugin will not function in a normal manner.
- # As you can see this is currently en-US, and there is a en-US.yml file in the language folder.
- # If I wanted to switch to french, I would use fr-FR as the language instead.
- messagesLanguage: en-US
- # Would you like to check for plugin updates on startup? It's highly suggested you keep this enabled!
- update-check: true
- # What would you like the command aliases for the plugin to be?
- # You can have as many as your want, just separate each with | and NO SPACES.
- plugin-aliases: guild|guilds|g
- # Change this to whatever you change it to above, this will handle the changes within <>
- # Keep in mind you should only set it to ONE thing. Such as guild, town, etc.
- syntax-name: guild
- # Would you like to run vault permission changes async? (Will be less stress on the main thread and prevent lag)
- # Async is used by LuckPerms.
- # Set this to false if you are using PEx.
- # I do suggest you switch to LuckPerms so that you can keep it async, but ultimately the choice is yours.
- run-vault-async: true
- storage:
- # What storage method should be used? (MySQL, MariaDB, JSON, SQLite)
- storage-type: json
- # How often (in minutes) do you want all Guild Data to save?
- save-interval: 1
- sql:
- # Define the address for the database. (Doesn't apply to SQLite)
- host: localhost
- # Define the port for the database. (Doesn't apply to SQLite)
- port: '3306'
- # The name of the database to store data in.
- # This must be already created! (Doesn't apply to SQLite)
- database: guilds
- # The prefix for all Guilds tables.
- table-prefix: guilds_
- # Define the credentials for the database. (Doesn't apply to SQLite)
- username: root
- password: ''
- # Sets whether or not to use SSL for the remote SQL database connection (Doesn't apply to SQLite)
- enable-ssl: false
- # These settings change the SQL connection pool.
- # The default settings are optimized for the majority of users.
- # Do NOT change these settings unless you know what you are doing!
- # For those looking to migrate data:
- # IF YOU ARE MIGRATING FROM JSON OR SQLITE TO MYSQL THE SETTINGS MUST BE CONFIGURED EVEN IF THE DATA TYPE IS SET TO JSON OR MYSQL.
- # When migrating to MySQL, it will attempt to use the MySQL backend (grab the login information here) in order to connect to the database.
- # We are not responsible for data loss if you are too lazy to read the warnings.
- # ALWAYS REMEMBER TO BACKUP DATA BEFORE MIGRATING.
- # Lastly, remember to change your storage-type to the type you're migrating to before you reboot.
- pool:
- # Sets the maximum size of the SQL connection pool.
- # This value will determine the maximum number of connections maintained. (Doesn't apply to SQLite)
- maximum-pool-size: 10
- # Sets the minimum number of idle connections that the pool will maintain.
- # For maximum performance keep this value the same as 'maximum-pool-size' (Doesn't apply to SQLite)
- minimum-idle: 10
- # Sets the maximum lifetime of a connection in the pool in milliseconds. (Doesn't apply to SQLite)
- maximum-lifetime: 1800000
- # Sets the maximum number of milliseconds for a connection in the pool before timing out. (Doesn't apply to SQLite)
- connection-timeout: 5000
- hooks:
- # Do we want to hook into Essentials-Chat format to handle guild placeholders?
- essentials-chat: false
- # Do we want to hook into WorldGuard to allow claiming land?
- worldguard-claims: false
- # Use the following website to get available materials: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
- # This can work across all MC versions and will attempt to use the proper material based on what version of MC you are using.
- guis:
- # What time format should we use in the GUIs?
- # You can use this site to build it https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
- time-format: MMM, d, yy hh:mm aaa
- guild-list:
- # What should the name of the inventory be?
- gui-name: Guild List
- # What should the name of the all the items be in the inventory?
- # Currently supports {player} and {guild}.
- item-name: '&f{player}''s Guild'
- # How should the menu be sorted?
- # LOADED: In the order that the Guilds were loaded on startup
- # TIER: In order from highest tier to lowest tier
- # MEMBERS: In order from most members to least members
- # BALANCE: In order from most in bank to least
- # WINS: In order from most arena wins to least
- # NAME: In order by name
- # AGE: In order from first created to last
- sort: LOADED
- # What item should players click to go to the next page?
- next-page-item: EMPTY_MAP
- # What should the name of this item be?
- next-page-item-name: '&fNext Page'
- # What item should players click to go to the previous page?
- previous-page-item: EMPTY_MAP
- # What should the name of this item be?
- previous-page-item-name: '&fPrevious Page'
- # What should be the default texture url for textures that fail to load in? Refer to the Guild Manage settings to see how to change the texture!
- head-default-url: 7a2df315b43583b1896231b77bae1a507dbd7e43ad86c1cfbe3b2b8ef3430e9e
- # Do we want to try to use skull textures or just ignore them and use ** provided?
- use-default-texture: false
- # You are free to design this to your liking
- # This is just an example of all the available placeholders that you can use for the lore!
- # Note: With v3.6.7 and on, you can now use {guild-tier-name} for the name of the tier.
- # Also, from v3.6.7 and on, {guild-status} will now apply from what you set for the guild-info GUI for the status being public or private.
- # In version 3.5.2.2, {guild-challenge-wins} and {guild-challenge-loses} have been added.
- # In version 3.5.3.3, {creation} was added to display the creation date of the guild
- head-lore:
- - '&cName&8: &a{guild-name}'
- - '&cPrefix&8: &a{guild-prefix}'
- - '&cMaster&8: &a{guild-master}'
- - '&cStatus&8: &a{guild-status}'
- - '&cTier&8: &a{guild-tier}'
- - '&cBalance&8: &a{guild-balance}'
- - '&cMember Count&8: &a{guild-member-count}'
- - '&cCreation Date&8: &a{creation}'
- # Here you can control what the GUI looks like that allows players to choose which vault to open
- # You can do things like set the name of the gui, the material to use, material name, and lore!
- vault-picker:
- # What do you want the name of the gui to be?
- # Currently supports {name} for the name of the guild.
- name: '&8» &r{name}''s Vaults'
- # How many rows would you like to display?
- rows: 1
- # What do you want the material of the vaults to be?
- item-material: CHEST
- # WHat do you want the name of the vault to be?
- # I recommend keeping this blank so that we can put the vault number in the lore.
- item-name: ' '
- item-lore:
- - '&8• &7Vault &9#{number}'
- - '&8• &7Status: {status}'
- - ''
- # What do you want to show when a vault is unlocked?
- unlocked: '&9Unlocked'
- # What do you want to show when a vault is locked?
- locked: '&c&mLocked&r'
- vault:
- # What do you want the name of the Vault to be?
- # Note: This requires a restart to change the inventory names.
- name: '&8» &rGuild Vault'
- blacklist:
- # What materials would you like to blacklist from being put into the vaults?
- materials:
- - ''
- # What custom names of items would you like to blacklist from being put into the vaults?
- names:
- - ''
- # What custom lore do you want to blacklist from being put into the vaults?
- # Please keep in mind this can be prove to false-positives so please let me know if you have issues.
- # This will currently loop through your lore to check for any strings you have in the list to check.
- # Improvements will be made over time. Thanks for your patience and suppport in advanced.
- lores:
- - ''
- # Welcome to the Guild Info GUI section of the config.
- # Here you can modify the configuration of what the Guild Info GUI looks like.
- # This can be used by any member of a Guild and shows key information of the Guild.
- # You can see things like the members, the balance, tier, etc.
- guild-info:
- # What would you like the name of the GUI to be?
- # Currently supports {name} for the name of the guild and {prefix} for the prefix of the guild
- name: '&8» &r{name}''s Info'
- # What material do you want the tier button to be?
- tier-material: DIAMOND
- # What do you want the name of the tier button to be?
- tier-name: '&3Guild Tier'
- # What do you want the lore of the tier button to be?
- tier-lore:
- - '&8• &7Level: &b{tier}'
- # Would you like to display this button?
- tier-display: true
- # What material do you want the bank button to be?
- bank-material: GOLD_INGOT
- # What do you want the name of the bank button to be?
- bank-name: '&6Guild Bank'
- # What do you want the lore of the bank button to be?
- bank-lore:
- - '&8• &7Balance: &e{current} &7/ &e{max}'
- # Would you like to display this button?
- bank-display: true
- # What material do you want the members button to be?
- members-material: IRON_HELMET
- # What do you want the name of the members button to be?
- members-name: '&5Guild Members'
- # What do you want the lore of the members button to be?
- members-lore:
- - '&8• &7Members: &d{current} &7/ &d{max}'
- - '&8• &7Online: &d{online} &7/ &d{current}'
- - ''
- - '&7Click to view members!'
- # Would you like to display this button?
- members-display: true
- status-material:
- # What material do you want the status button to be when a guild is public?
- public: EMERALD
- # What material do you want the status button to be when a guild is private?
- private: REDSTONE
- # What do you want the name of the status button to be?
- status-name-item: '&2Guild Status'
- status-name:
- # What do you want the status to say if it's public?
- public: '&aPublic'
- # What do you want the status to say if it's private?
- private: '&cPrivate'
- # What do you want the lore of the status button to be?
- status-lore:
- - '&8• &7Status: &r{status}'
- # Would you like to display this button?
- status-display: true
- # What material do you want the home button to be?
- home-material: BED
- # What do you want the name of the home button to be?
- home-name: '&cGuild Home'
- # What do you want the lore of the home button to be?
- home-lore:
- - '&8• &7Home: &f{coords}'
- # Would you like to display this button?
- home-display: true
- # What do you want it to say when a guild doesn't have a home set?
- home-empty: '&fNot Set'
- # Do you want players to be teleported to their guild home when they click this?
- home-teleport: false
- # What material do you want the vault button to be?
- vault-material: CHEST
- # What do you want the name of the home button to be?
- vault-name: '&9Guild Vaults'
- # What do you want the lore of the vault button to be?
- vault-lore:
- - '&7Click here to open your guild vaults!'
- # Would you like to display this button?
- vault-display: true
- # What material do you want the motd button to be?
- motd-material: SIGN
- # What do you want the name of the motd button to be?
- motd-name: '&6Guild MOTD'
- # What do you want the lore of the motd button to be?
- motd-lore:
- - '{motd}'
- # Would you like to display this button?
- motd-display: true
- # This part of the config controls what the members gui looks like.
- # You can get to this in game by clicking on the members icon via the guild info gui.
- guild-info-members:
- # How should the menu be sorted?
- # ROLE: In order from highest role to lowest
- # NAME: In order by their username
- # AGE: In order of length in guild
- sort: ROLE
- # What would you like the name of the GUI to be?
- name: '&8» &rMembers of {name}'
- item:
- # What material do you want to use to represent members?
- material: EMPTY_MAP
- # What do you want the name of the item to be?
- name: ' '
- # What do you want the lore of the item to be?
- lore:
- - '&8• &7Name: &a{name}'
- - '&8• &7Role: &a{role}'
- - '&8• &7Status: {status}'
- - '&8• &7Join Date: &a{join}'
- - '&8• &7Last Login: &a{login}'
- # What do you want to be what shows when a member is online?
- online: '&aOnline'
- # What do you want to be what shows when a member is offline?
- offline: '&cOffline'
- guild:
- requirements:
- # With the default RegEx currently set, the minimum length of the prefix is 1 and the maximum is 64.
- # To change this, adjust the number and you can refer to the link below on how to modify RegEx.
- # RegEx (https://en.wikipedia.org/wiki/Regular_expression) used to only allow certain characters (default only allows alphanumeric characters).
- # To turn off the ability to use colors, remove the & from the RegEx.
- # Trying to use symbols such as Chinese ones? Try this Regex: [\u4E00-\u9FA5_a-zA-Z0-9&_\一-龥]{1,6}
- name: '[a-zA-Z0-9&]{1,64}'
- # Similar to the name, just refer above.
- prefix: '[a-zA-Z0-9&]{1,20}'
- # Would you like to include color codes signs (&b &l, etc) in the length check?
- include-color-codes: true
- # Would you like to allow players to make a guild without a prefix?
- disable-prefix: false
- # Would you like player to respawn at their guild home (if they have one) when they die?
- respawn-at-home: false
- blacklist:
- # Do we want to enable the blacklist?
- enabled: true
- # Do we want the blacklist to be case sensitive?
- case-sensitive: true
- # What words would you like to blacklist from being used?
- words:
- - crap
- - ass
- - stupid
- format:
- # This is the style used when a message sent in guild chat.
- # As of 3.4.7, this now supports {display-name} to show the display name of a player.
- chat: '&7&l[Guild Chat]&r &b[{role}&b]&r &b {player}: {message}'
- # This is the style used when a message is sent to ally chat
- ally-chat: '&7&l[Ally Chat]&r &b[{guild}&b]&r &b {player}: {message}'
- # Similar to ** above, just for the admins spying.
- spy: '&7&l[Guild Spy]&r &b[{guild}&b]&r &b[{role}&b]&r &b {player}: {message}'
- # Would you like to log the guild chat to console?
- log-guild-chat: false
- # Would you like to log the ally chat to console?
- log-ally-chat: false
- # Used for {GUILD_FORMATTED} and %guilds_formatted%
- placeholder-design:
- # The left bracket in the placeholder
- left-bracket: '['
- # The content of the placeholder. Either will be {name} or {prefix}
- content: '{name}'
- # What to show instead of the placeholder if there's no guild
- no-guild: ''
- # The right bracket in the placeholder
- right-bracket: ']'
- damage:
- # Do we want people in the same guild to be able to damage each other?
- guild: false
- # Do we want allies to be able to damage each other?
- ally: false
- # Would you like to send players their guild's motd on login?
- motd-on-login: true
- war:
- # How often (in minutes) can a guild be the defender in a war?
- # This is to help prevent abuse from guilds fighting each other to farm rewards.
- # This is defaulted to 1 day.
- defend-cooldown: 1440
- # Would you like to block commands while a player is in the war?
- disable-commands: false
- # How long does a defending guild have to accept a war challenge? (In seconds)
- accept-time: 120
- # What is the min number of players needed on each side for a war to start?
- min-players: 3
- # What is the max number of players allowed on each side for a war?
- max-players: 8
- # How long do players of both sides have to join the war? (In seconds)
- join-time: 60
- # How long should we wait to teleport the players and start the war after everyone joined?
- ready-time: 60
- # How would you like to notify the player about joining the war and the countdowns?
- # Options: [actionbar, title, subtitle, none]
- notify-type: actionbar
- post-challenge-commands:
- # Would you like to enable running commands after a challenge ends? (such as broadcasting)
- enabled: false
- # What commands would you like to run after a challenge ends??
- # Supports the following placeholder:
- # {challenger} - The name of the challenging Guild
- # {defender} - The name of the defending Guild
- # {winner} - The winner of the challenge
- # {loser} - The loser of the challenge
- commands:
- - ''
- rewards:
- # Would you like to give rewards to the winning guild?
- enabled: false
- # What rewards (commands) would you like to run for the winning Guild?
- # Current supports {player}.
- rewards:
- - ''
- timers:
- cooldowns:
- # How often (in seconds) can a player set their guild home?
- sethome: 60
- # How often (in seconds) can a player go to their guild home?
- home: 60
- # How often (in seconds) can a player request to join a guild?
- request: 60
- # How long should a user have to wait before joining a new guild after leaving one?
- join: 120
- warmups:
- home:
- # Do you want to enable making players stand still before teleporting?
- enabled: false
- # How long should a user have to stand still before teleporting?
- time: 3
- cost:
- # How much should it cost to create a guild?
- creation: 0.0
- # How much should it cost to rename a guild? (Leave at 0.0 to disable)
- rename: 0.0
- # How much should it cost to set the cost of the guild home?
- sethome: 0.0
- # This section of the config will allow you to handle guild land claiming.
- # Remember that the enable / disable for this is the WorldGuard Hook at the TOP of the config.
- # There are multiple options when it comes to guild claims. For the time being, all guilds will only get one claim.
- claims:
- # This is the number of blocks around the player it will try to create the region.
- # Keep in mind this is the RADIUS, it will go this many blocks in both directions.
- # For example, if you take the default 15, it'll do 30 total as it will go 15 blocks in both directions.
- # This is a CUBOID region, not SPHERE.
- radius: 15
- # Customize the entrance and exit message of joining claims.
- # Supports {prefix} for guild prefix and {guild} for guild name.
- # Also supports color codes!
- enter-message: '&aNow entering &d{guild}''s &aclaim!'
- exit-message: '&aNow leaving &d{guild}''s &aclaim!'
- # Would you like to disable guild claiming in specific worlds?
- disabled-worlds:
- - ''
- # Would you like to enable claim signs?
- # Format -
- # First Line: [Guild Claim]
- # Second Line: WorldGuard Region Name
- # Third Line: Price
- claim-signs: false
- # The text to look for on a sign for the guild claims
- claim-sign-text: '[Guild Claim]'
- # Would you like to make it so that claims can only be aquired through the purchasing with signs?
- # This will disable the regular claim commands.
- force-claim-signs: false
- tickets:
- # What do you want the name of the upgrade ticket to be?
- name: '&bGuild Upgrade Ticket'
- # What do you want the lore of the ticket to be?
- lore:
- - '&dRight click this ticket to upgrade your guild tier!'
- # What do you want the material of the ticket to be?
- material: PAPER
- codes:
- # How long do you want the default length of guild codes to be?
- length: 7
- # Do you want inactive codes (no uses left) to display on the /guild code list?
- list-inactive-codes: true
- # What is the max amount of active codes you would like to allow per guild?
- amount: 10
roles.yml
- roles:
- 0:
- name: GuildMaster
- permission-node: guilds.roles.master
- permissions:
- activate-buff: true
- add-ally: true
- ally-chat: true
- change-home: true
- change-prefix: true
- rename: true
- chat: true
- demote: true
- deposit-money: true
- invite: true
- kick: true
- open-vault: true
- promote: true
- remove-ally: true
- remove-guild: true
- toggle-guild: true
- transfer-guild: true
- upgrade-guild: true
- withdraw-money: true
- claim-land: true
- unclaim-land: true
- destroy: true
- place: true
- interact: true
- create-code: true
- delete-code: true
- see-code-redeemers: true
- modify-motd: true
- initiate-war: true
- 1:
- name: Officer
- permission-node: guilds.roles.officer
- permissions:
- activate-buff: false
- add-ally: true
- ally-chat: true
- change-home: true
- change-prefix: false
- rename: false
- chat: true
- demote: true
- deposit-money: true
- invite: true
- kick: true
- open-vault: true
- promote: true
- remove-ally: true
- remove-guild: false
- toggle-guild: false
- transfer-guild: false
- upgrade-guild: false
- withdraw-money: true
- claim-land: false
- unclaim-land: false
- destroy: true
- place: true
- interact: true
- create-code: true
- delete-code: true
- see-code-redeemers: true
- modify-motd: false
- initiate-war: true
- 2:
- name: Veteran
- permission-node: guilds.roles.veteran
- permissions:
- activate-buff: false
- add-ally: false
- ally-chat: true
- change-home: false
- change-prefix: false
- rename: false
- chat: true
- demote: false
- deposit-money: true
- invite: true
- kick: false
- open-vault: true
- promote: false
- remove-ally: false
- remove-guild: false
- toggle-guild: false
- transfer-guild: false
- upgrade-guild: false
- withdraw-money: false
- claim-land: false
- unclaim-land: false
- destroy: true
- place: true
- interact: true
- create-code: false
- delete-code: false
- see-code-redeemers: false
- modify-motd: false
- initiate-war: false
- 3:
- name: Member
- permission-node: guilds.roles.member
- permissions:
- activate-buff: false
- add-ally: false
- ally-chat: true
- change-home: false
- change-prefix: false
- rename: false
- chat: true
- demote: false
- deposit-money: true
- invite: false
- kick: false
- open-vault: true
- promote: false
- remove-ally: false
- remove-guild: false
- toggle-guild: false
- transfer-guild: false
- upgrade-guild: false
- withdraw-money: false
- claim-land: false
- unclaim-land: false
- destroy: true
- place: true
- interact: true
- create-code: false
- delete-code: false
- see-code-redeemers: false
- modify-motd: false
- initiate-war: false
tiers.yml
- # This section of the config will talk about various parts of upgrading a guild and allow you to choose how it works.
- # For "mob-xp-multiplier" the default is 1, meaning that it will drop the normal amount of XP for non-upgraded guilds.
- # DO NOT set it to 0, that will either throw errors or cause mobs to not drop XP.
- # Keep in mind for the damage-multiplier, it applies to players also, so by default it's set to normal for every tier.
- tiers:
- # Should permissions carry over between tiers?
- carry-over: true
- list:
- 1:
- # Which level tier is this? 1 is the default.
- level: 1
- # What is the name of this tier?
- name: Bronze
- # How much is this tier? (If first tier, keep as same price as cost creation)
- cost: 0.0
- # How many members can be in a guild of this tier?
- max-members: 15
- # How many Vaults would you like the Guild to be able to use?
- vault-amount: 1
- # How much extra XP should drop from mobs?
- mob-xp-multiplier: 1.0
- # How much extra damage should be done?
- damage-multiplier: 1.0
- # How much can this tier hold in the bank?
- max-bank-balance: 10000.0
- # How many members should be in a guild for it to be able to rankup?
- members-to-rankup: 0
- # What is the max amount of allies a guild with this tier can have?
- max-allies: 5
- # Would you like this tier to be able to open the buff GUI?
- use-buffs: true
- # If you wish to give this tier extra permissions, put them here.
- permissions:
- - example.perm.here
- 2:
- # Which level tier is this? 1 is the default.
- level: 2
- # What is the name of this tier?
- name: Silver
- # How much is this tier? (If first tier, keep as same price as cost creation)
- cost: 200.0
- # How many members can be in a guild of this tier?
- max-members: 30
- # How many Vaults would you like the Guild to be able to use?
- vault-amount: 2
- # How much extra XP should drop from mobs?
- mob-xp-multiplier: 2.0
- # How much extra damage should be done?
- damage-multiplier: 1.0
- # How much can this tier hold in the bank?
- max-bank-balance: 20000.0
- # How many members should be in a guild for it to be able to rankup?
- members-to-rankup: 0
- # What is the max amount of allies a guild with this tier can have?
- max-allies: 10
- # Would you like this tier to be able to open the buff GUI?
- use-buffs: true
- # If you wish to give this tier extra permissions, put them here.
- permissions:
- - example.perm.here
- 3:
- # Which level tier is this? 1 is the default.
- level: 3
- # What is the name of this tier?
- name: Gold
- # How much is this tier? (If first tier, keep as same price as cost creation)
- cost: 300.0
- # How many members can be in a guild of this tier?
- max-members: 50
- # How many Vaults would you like the Guild to be able to use?
- vault-amount: 3
- # How much extra XP should drop from mobs?
- mob-xp-multiplier: 3.0
- # How much extra damage should be done?
- damage-multiplier: 1.0
- # How much can this tier hold in the bank?
- max-bank-balance: 30000.0
- # How many members should be in a guild for it to be able to rankup?
- members-to-rankup: 0
- # What is the max amount of allies a guild with this tier can have?
- max-allies: 15
- # Would you like this tier to be able to open the buff GUI?
- use-buffs: true
- # If you wish to give this tier extra permissions, put them here.
- permissions:
- - example.perm.here
本帖最后由 名副其实 于 2023-2-25 22:48 编辑
| Commands & Permissions | 命令与权限
理解命令如何在本插件内运行是非常简单的。你要做的一切就是输入命令 /guilds ,然后你就会打开一个实用且美观的帮助界面!

用户组权限
为了使玩家/用户组能够使用本插件特定的命令,你可以给予这些权限:
成员:guilds.group.member
管理员:guilds.group.admin
等价命令
本插件的工程量非常巨大,记住命令对任何人来多都不是一件容易事。所以我们为玩家设计了等价命令用法,这样就可以省去玩家记住繁杂命令的事件了!任何地方都可以随你设置!当然也可以在配置文本里设置!
操作命令
操作命令允许用户在必要时做出选择。我们知道有些人就是喜欢乱试命令,所以我们增加了一个确认功能,来防止那些好奇心旺盛的用户造成不可挽回的后果。
/guild cancel
权限:guilds.command.cancel
如果用户有,那么使用该命令后可取消当前待执行的操作
/guild confirm
如果用户有,那么使用该命令后可确认当前待执行的操作
权限:guilds.command.confirm
管理员命令
就连管理员命令也简单易懂。它们能够设置本插件的一些内容,也能展示插件的一些详细数据和信息。
/guild admin addplayer <玩家名称> <公会名称>
权限: guilds.command.admin
强制将玩家加入公会.
/guild admin bank balance <公会名称>
权限: guilds.command.admin
查阅该公会的银行存款.
/guild admin bank deposit <公会名称> <数量>
权限: guilds.command.admin
将特定数量的钱存入银行.
/guild admin bank withdraw <公会名称> <数量>
权限: guilds.command.admin
将特定数量的钱取出银行.[注1]
/guild admin delhome <公会名称>
权限: guilds.command.admin
删除公会设置的家传送点.
/guild admin give <玩家名称> <数量>
权限: guilds.command.admin
给予玩家升级券.
/guild admin home <公会名称>
权限: guilds.command.admin
传送至公会设置的家传送点.
/guild admin motd <公会名称>
权限: guilds.command.admin
浏览公会欢迎标语.
/guild admin motd remove <公会名称>
权限: guilds.command.admin
删除公会欢迎标语.
/guild admin motd set <公会名称> <标题内容>
权限: guilds.command.admin
设置公会欢迎标语
/guild admin prefix <公会名称> <前缀>
权限: guilds.command.admin
强制更换公会前缀.
/guild admin remove <公会名称>
权限: guilds.command.admin
完全删除公会.
/guild admin removeplayer <玩家名称>
权限: guilds.command.admin
将玩家从公会中移出.
/guild admin rename <公会名称> <新公会名称>
权限: guilds.command.admin
强制修改公会名称.
/guild admin score resetall
权限: guilds.command.admin
强制重设公会所有战绩.
/guild admin score setwins <公会名称> <数量>
权限: guilds.command.admin
设置公会战斗胜利场数
/guild admin score setloses <公会名称> <数量>
权限: guilds.command.admin
设置公会战斗失败场数
/guild admin sethome
权限: guilds.command.admin
强制设置公会家传送点.
/guild admin spy
权限: guilds.chat.spy
切换所有公会聊天是否对自己可见.
/guild admin status <公会名称>
权限: guilds.command.admin
强制切换公会状态.
/guild admin transfer <公会名称> <新领袖名称>
权限: guilds.command.admin
强制转移公会领袖.
/guild admin upgrade <公会名称>
权限: guilds.command.admin
强制升级成员的公会等级.
/guild admin vault <公会名称>
权限: guilds.command.admin
打开公会的金库菜单
/guild reload
权限: guilds.command.admin
重载配置文件.
友军命令
友军命令能够展示本公会的盟友相关信息,例如盟友的名称等。你也可以通过这些命令来调整盟友关系!
/guild ally accept <公会名称>
权限: guilds.command.ally.accept
若当前有待处理的加盟请求,该命令将会通过申请公会成为盟友的请求!
/guild ally add <公会名称>
权限: guilds.command.ally.add
该命令允许你向其他公会发送结盟请求!
/guild ally decline <公会名称>
权限: guilds.command.ally.decline
该命令允许你婉拒其他公会发送的结盟邀请!
/guild ally list
权限: guilds.command.ally.list
该命令可列出你的公会的所有盟友!
/guild ally remove <公会名称>
权限: guilds.command.ally.remove
该命令可解除与特定公会的盟友关系!
竞技场命令
/guild arena set challenger <竞技场名称>
权限: guilds.command.admin
设置一个竞技场挑战方的传送点
/guild arena create <名称>
权限: guilds.command.admin
创建一个竞技场
/guild arena set defender <竞技场名称>
权限: guilds.command.admin
设置一个竞技场防守方的传送点
/guild arena delete <竞技场名称>
权限: guilds.command.admin
删除一个竞技场
/guild arena list
权限: guilds.command.admin
列出服务器上的所有竞技场
/guild arena tp <竞技场名称> <位置>
权限: guilds.command.admin
传送到竞技场地的指定一侧。(译者注:位置表示战争关系的位置,例如defend参数会将公会玩家传送到防守方的位置)
银行命令
本插件的特色之一即是允许各个公会,通过玩家之间的合作和努力屯起属于自己的小金库!
/guild bank balance
权限: guilds.command.bank.balance
浏览你的公会当前金库存款!
/guild bank deposit <数量>
权限: guilds.command.bank.deposit
从自己的账户中向银行存入游戏币!
/guild bank withdraw <数量>
权限: guilds.command.bank.withdraw
从公会金库中取出存款并将其转入自己的账户中!
属地命令
本插件的另一个特色就是允许公会拥有自己的属地!该部分内容联动了 WorldGuard 并允许玩家“认领”属地,供他们的成员使用。
/guild claim
权限: guilds.command.claim
在你身边创建公会属地!
/guild unclaim
权限: guilds.command.unclaim
取消占领当前的公会属地!
邀请码命令
编写维基时这部分内容还很新。我制作这个部分的原因是,我的一些朋友想要加入我的公会,而我却不知道他们的用户名。该部分命令允许你向好友发送请柬,同时有一/多次性选项可供设置。你可以将它发送给任何玩家,任何玩家也可以随时用这串邀请码加入你的公会!
/guild code create [使用次数]
权限: guilds.command.code.create
创建一个可被任何人使用的,邀请至你的公会的邀请码!
/guild code delete <邀请码>
权限: guilds.command.code.delete
删除一个已有的邀请码
/guild code info <邀请码>
权限: guilds.command.code.info
查询邀请码相关信息!
/guild code list
权限: guilds.command.code.list
列出所有已创建的邀请码!
/guild re d eem <邀请码>
权限: guilds.command.code.redeem
允许你使用邀请码!
控制台命令
这些是只有控制台才可以用的命令,通常这些重要的操作不应由玩家执行。
/guild console update-languages
权限: guilds.command.admin
更新本插件的语言文档
/guild console backup
权限: guilds.command.admin
备份本插件所有数据
/guild console migrate <源种类>
权限: guilds.command.admin
从一个数据库中迁移数据至另一个数据库
/guild console unclaim-all
权限: guilds.command.admin
删除本插件所有的属地数据
GUI 命令
/guild buff
权限: guilds.command.buff
打开公会效果 GUI.
/guild list
权限: guilds.command.list
打开公会列表 GUI.
/guild members
权限: guilds.command.members
打开成员列表 GUI.
/guild vault
权限: guilds.command.vault
打开公会金库 GUI.
/guild info
权限: guilds.command.info
打开公会信息 GUI.
家命令
权限: guilds.command.delhome
删除你的公会传送点.
/guild home
权限: guilds.command.home
传送至公会传送点.
/guild sethome
权限: guilds.command.sethome
将公会传送点设置在当前位置.
管理命令
/guild create <公会名称> [公会前缀]
权限: guilds.command.create
创建一个新公会!
/guild delete
权限: guilds.command.delete
删除你的公会.
/guild kick <玩家名称>
权限: guilds.command.boot
将玩家移出你的公会.
/guild prefix <公会前缀>
权限: guilds.command.prefix
为公会设置新前缀.
/guild rename <公会名称>
权限: guilds.command.rename
为公会设置新名称.
/guild status
权限: guilds.command.status
切换公会状态.
/guild transfer <玩家名称>
权限: guilds.command.transfer
将公会领袖的位置转交给他人.
/guild upgrade
权限: guilds.command.upgrade
升级公会等级.
成员命令
服务器 / 公会成员需要用到的命令
/guild accept <玩家名称>
权限: guilds.command.accept
接受一个当前加入公会的请求.
/guild check
权限: guilds.command.check
检查公会是否有待处理的请求.
/guild decline <玩家名称>
权限: guilds.command.decline
拒绝一个当前加入公会的请求.
/guild demote <玩家名称>
权限: guilds.command.demote
降级公会内的玩家.
/guild invite <玩家名称>
权限: guilds.command.invite
邀请玩家至你的公会.
/guild language <语言>
权限: guilds.command.language
修改当前语言!
/guild leave
权限: guilds.command.leave
离开你的公会.
/guild promote <玩家名称>
权限: guilds.command.promote
升级公会内的玩家.
标语命令
管理公会欢迎标语的命令。
/guild motd
权限: guilds.command.motd
显示当前公会的欢迎标语.
/guild motd set <标语名称>
权限: guilds.command.motd.modify
设置当前公会的欢迎标语.
/guild motd remove
权限: guilds.command.motd.modify
删除当前公会的欢迎标语.
杂项命令
一些杂碎且尚未分类的命令。
/guild chat
权限: guilds.command.chat
切换公会聊天.
/guild request <guild>
权限: guilds.command.request
向公会发送加入请求.
公会战命令
/guild war accept
权限: guilds.command.war.accept
接受战争邀请
/guild war challenge <guild>
权限: guilds.command.war.challenge
向其他公会发出挑战请求
/guild war deny
权限: guilds.command.war.deny
拒绝战争邀请
/guild war join
权限: guilds.command.war.join
加入战争
|
| Commands & Permissions | 命令与权限
Understanding how the commands work in the project is super simple. All you have to do is type /guilds and you will be presented with a very nice-looking help menu!
理解命令如何在本插件内运行是非常简单的。你要做的一切就是输入命令 /guilds ,然后你就会打开一个实用且美观的帮助界面!

用户组权限
To easily give a player / group access to all the correct commands, you can give the following permissions:
为了使玩家/用户组能够使用本插件特定的命令,你可以给予这些权限:
成员:guilds.group.member
管理员:guilds.group.admin
等价命令
Since Guilds is such a big project, we knew that it can get repetitive typing out full commands each time so we have made the follow aliases work so you don't have to type everything out each time. Use whichever you want! You can configure this in the config!
本插件的工程量非常巨大,记住命令对任何人来多都不是一件容易事。所以我们为玩家设计了等价命令用法,这样就可以省去玩家记住繁杂命令的事件了!任何地方都可以随你设置!当然也可以在配置文本里设置!
操作命令
Action commands control the user's choice to proceed with some of the commands in the plugin. We know that some people get curious when playing with commands and we've designed the commands that cause bigger changes to ask for a confirmation.
操作命令允许用户在必要时做出选择。我们知道有些人就是喜欢乱试命令,所以我们增加了一个确认功能,来防止那些好奇心旺盛的用户造成不可挽回的后果。
/guild cancel
Permission: guilds.command.cancel
If a user has an active action, it will cancel it and not proceed further with what they were trying to do.
/guild confirm
Permission: guilds.command.confirm
If a user has an active action, it will confirm the action and continue with what they were attempting to do.
/guild cancel
权限:guilds.command.cancel
如果用户有,那么使用该命令后可取消当前待执行的操作
/guild confirm
如果用户有,那么使用该命令后可确认当前待执行的操作
权限:guilds.command.confirm
管理员命令
Admin commands are basically self-understandable. They give you the power over how the plugin is used and can do many things to modify how the plugin works.
就连管理员命令也简单易懂。它们能够设置本插件的一些内容,也能展示插件的一些详细数据和信息。
/guild admin addplayer <player> <guild>
Permission: guilds.command.admin
Allows you to put a player into a guild by force.
/guild admin bank balance <guild>
Permission: guilds.command.admin
Admin command to view a guild's bank balance.
/guild admin bank deposit <guild> <amount>
Permission: guilds.command.admin
Admin command to put money into a guild's ban.
/guild admin bank withdraw <guild> <amount>
Permission: guilds.command.admin
Admin command to put money into a guild's ban.
/guild admin delhome <guild>
Permission: guilds.command.admin
Admin command to delete the home of a guild.
/guild admin give <player> <amount>
Permission: guilds.command.admin
Allows you to give upgrade tickets to players.
/guild admin home <guild>
Permission: guilds.command.admin
Admin command to teleport to the home of a guild.
/guild admin motd <guild>
Permission: guilds.command.admin
Allows you to view the MOTD of a guild.
/guild admin motd remove <guild>
Permission: guilds.command.admin
Allows you to remove the MOTD of a guild.
/guild admin motd set <guild> <motd>
Permission: guilds.command.admin
Allows you to set the MOTD of a guild
/guild admin prefix <guild> <prefix>
Permission: guilds.command.admin
Allows you to change the prefix of a guild by force.
/guild admin remove <guild>
Permission: guilds.command.admin
Allows you to remove a guild as a whole by force.
/guild admin removeplayer <player>
Permission: guilds.command.admin
Allows you to remove a player from their guild by force.
/guild admin rename <guild> <new name>
Permission: guilds.command.admin
Allows you change the current name of a guild by force.
/guild admin score resetall
Permission: guilds.command.admin
Allows you to reset the score of all guilds
/guild admin score setwins <guild> <amount>
Permission: guilds.command.admin
Allows you to set the wins of a guild
/guild admin score setloses <guild> <amount>
Permission: guilds.command.admin
Allows you to set the loses of a guild
/guild admin sethome
Permission: guilds.command.admin
Admin command to set the home of a guild.
/guild admin spy
Permission: guilds.chat.spy
Toggles the ability to see all guild chat.
/guild admin status <guild>
Permission: guilds.command.admin
Toggle the status of a guild by force.
/guild admin transfer <guild> <new master>
Permission: guilds.command.admin
Transfer a guild to another member by force
/guild admin upgrade <guild>
Permission: guilds.command.admin
Force upgrade a guild's tier.
/guild admin vault <guild>
Permission: guilds.command.admin
Open any guild's vault GUI
/guild reload
Permission: guilds.command.admin
Reloads the configuration files.
/guild admin addplayer <玩家名称> <公会名称>
权限: guilds.command.admin
强制将玩家加入公会.
/guild admin bank balance <公会名称>
权限: guilds.command.admin
查阅该公会的银行存款.
/guild admin bank deposit <公会名称> <数量>
权限: guilds.command.admin
将特定数量的钱存入银行.
/guild admin bank withdraw <公会名称> <数量>
权限: guilds.command.admin
将特定数量的钱取出银行.[注1]
/guild admin delhome <公会名称>
权限: guilds.command.admin
删除公会设置的家传送点.
/guild admin give <玩家名称> <数量>
权限: guilds.command.admin
给予玩家升级券.
/guild admin home <公会名称>
权限: guilds.command.admin
传送至公会设置的家传送点.
/guild admin motd <公会名称>
权限: guilds.command.admin
浏览公会欢迎标语.
/guild admin motd remove <公会名称>
权限: guilds.command.admin
删除公会欢迎标语.
/guild admin motd set <公会名称> <标题内容>
权限: guilds.command.admin
设置公会欢迎标语
/guild admin prefix <公会名称> <前缀>
权限: guilds.command.admin
强制更换公会前缀.
/guild admin remove <公会名称>
权限: guilds.command.admin
完全删除公会.
/guild admin removeplayer <玩家名称>
权限: guilds.command.admin
将玩家从公会中移出.
/guild admin rename <公会名称> <新公会名称>
权限: guilds.command.admin
强制修改公会名称.
/guild admin score resetall
权限: guilds.command.admin
强制重设公会所有战绩.
/guild admin score setwins <公会名称> <数量>
权限: guilds.command.admin
设置公会战斗胜利场数
/guild admin score setloses <公会名称> <数量>
权限: guilds.command.admin
设置公会战斗失败场数
/guild admin sethome
权限: guilds.command.admin
强制设置公会家传送点.
/guild admin spy
权限: guilds.chat.spy
切换所有公会聊天是否对自己可见.
/guild admin status <公会名称>
权限: guilds.command.admin
强制切换公会状态.
/guild admin transfer <公会名称> <新领袖名称>
权限: guilds.command.admin
强制转移公会领袖.
/guild admin upgrade <公会名称>
权限: guilds.command.admin
强制升级成员的公会等级.
/guild admin vault <公会名称>
权限: guilds.command.admin
打开公会的金库菜单
/guild reload
权限: guilds.command.admin
重载配置文件.
友军命令
The ally commands are a set of commands that let guild members control different actions such as listing their current allies or adding and removing them!
友军命令能够展示本公会的盟友相关信息,例如盟友的名称等。你也可以通过这些命令来调整盟友关系!
/guild ally accept <guild>
Permission: guilds.command.ally.accept
This command allows you to accept an ally invite from another guild if there is one currently pending!
/guild ally add <guild>
Permission: guilds.command.ally.add
This command allows you to send an ally request to another guild!
/guild ally decline <guild>
Permission: guilds.command.ally.decline
This command allows you to decline and incoming ally invite from another guild!
/guild ally list
Permission: guilds.command.ally.list
This command allows you to list all the allies of your guild!
/guild ally remove <guild>
Permission: guilds.command.ally.remove
This command allows you to remove any of your current allies!
/guild ally accept <公会名称>
权限: guilds.command.ally.accept
若当前有待处理的加盟请求,该命令将会通过申请公会成为盟友的请求!
/guild ally add <公会名称>
权限: guilds.command.ally.add
该命令允许你向其他公会发送结盟请求!
/guild ally decline <公会名称>
权限: guilds.command.ally.decline
该命令允许你婉拒其他公会发送的结盟邀请!
/guild ally list
权限: guilds.command.ally.list
该命令可列出你的公会的所有盟友!
/guild ally remove <公会名称>
权限: guilds.command.ally.remove
该命令可解除与特定公会的盟友关系!
竞技场命令
/guild arena set challenger <arena>
Permission: guilds.command.admin
Sets challenger side for an arena
/guild arena create <name>
Permission: guilds.command.admin
Create an arena
/guild arena set defender <arena>
Permission: guilds.command.admin
Sets defender side for an arena
/guild arena delete <arena>
Permission: guilds.command.admin
Delete an arena
/guild arena list
Permission: guilds.command.admin
Lists all arenas on the server
/guild arena tp <arena> <side>
Permission: guilds.command.admin
Teleport to specific side of an arena
/guild arena set challenger <竞技场名称>
权限: guilds.command.admin
设置一个竞技场挑战方的传送点
/guild arena create <名称>
权限: guilds.command.admin
创建一个竞技场
/guild arena set defender <竞技场名称>
权限: guilds.command.admin
设置一个竞技场防守方的传送点
/guild arena delete <竞技场名称>
权限: guilds.command.admin
删除一个竞技场
/guild arena list
权限: guilds.command.admin
列出服务器上的所有竞技场
/guild arena tp <竞技场名称> <位置>
权限: guilds.command.admin
传送到竞技场地的指定一侧。(译者注:位置表示战争关系的位置,例如defend参数会将公会玩家传送到防守方的位置)
银行命令
One of the cool features about this plugin is that it allows each guild to have a centralized bank that all players in a guild can work together to grow!
本插件的特色之一即是允许各个公会,通过玩家之间的合作和努力屯起属于自己的小金库!
/guild bank balance
Permission: guilds.command.bank.balance
Allows you to check the current balance of your guild bank!
/guild bank deposit <amount>
Permission: guilds.command.bank.deposit
Allows you to put money from your balance into your guild bank!
/guild bank withdraw <amount>
Permission: guilds.command.bank.withdraw
Allows you to take money from your guild bank and put it back into your personal balance!
/guild bank balance
权限: guilds.command.bank.balance
浏览你的公会当前金库存款!
/guild bank deposit <数量>
权限: guilds.command.bank.deposit
从自己的账户中向银行存入游戏币!
/guild bank withdraw <数量>
权限: guilds.command.bank.withdraw
从公会金库中取出存款并将其转入自己的账户中!
属地命令
Another cool feature of this plugin is the ability to make claims! This is ultilized through the WorldGuard Hook and allows players to "claim" land for their guild members to use.
本插件的另一个特色就是允许公会拥有自己的属地!该部分内容联动了 WorldGuard 并允许玩家“认领”属地,供他们的成员使用。
Another cool feature of this plugin is the ability to make claims! This is ultilized through the WorldGuard Hook and allows players to "claim" land for their guild members to use.
/guild claim
Permission: guilds.command.claim
Create a guild claim surrounding you!
/guild unclaim
Permission: guilds.command.unclaim
Get rid of your current guild claim!
/guild claim
权限: guilds.command.claim
在你身边创建公会属地!
/guild unclaim
权限: guilds.command.unclaim
取消占领当前的公会属地!
邀请码命令
This feature is actually a new one at the time of writing this wiki. The idea came to me when I realized I wanted to allow a group of my friends to join my guild but at the time I didn't know all their usernames. This feature allows you to create an invite code with the option of one-time-usage or multiple-uses and you can give it to anyone, then they can use that code to join the guild at any time!
编写维基时这部分内容还很新。我制作这个部分的原因是,我的一些朋友想要加入我的公会,而我却不知道他们的用户名。该部分命令允许你向好友发送请柬,同时有一/多次性选项可供设置。你可以将它发送给任何玩家,任何玩家也可以随时用这串邀请码加入你的公会!
/guild code create [uses]
Permission: guilds.command.code.create
Create an invite code for your guild that can be used by anyone!
/guild code delete <code>
Permission: guilds.command.code.delete
Remove an invite code from your guild
/guild code info <code>
Permission: guilds.command.code.info
Allows you to retrieve specific information about a guild code!
/guild code list
Permission: guilds.command.code.list
Allows you to list all your current guild codes!
/guild re d eem <code>
Permission: guilds.command.code.redeem
Allows you to redeem an invite code!
/guild code create [使用次数]
权限: guilds.command.code.create
创建一个可被任何人使用的,邀请至你的公会的邀请码!
/guild code delete <邀请码>
权限: guilds.command.code.delete
删除一个已有的邀请码
/guild code info <邀请码>
权限: guilds.command.code.info
查询邀请码相关信息!
/guild code list
权限: guilds.command.code.list
列出所有已创建的邀请码!
/guild re d eem <邀请码>
权限: guilds.command.code.redeem
允许你使用邀请码!
控制台命令
These are commands that are only to be ran from console because they do important operations that typical players shouldn't be doing.
这些是只有控制台才可以用的命令,通常这些重要的操作不应由玩家执行。
/guild console update-languages
Permission: guilds.command.admin
Update language files for the plugin
/guild console backup
Permission: guilds.command.admin
Create a backup of all plugin data
/guild console migrate <type>
Permission: guilds.command.admin
Migrate all the plugin data from one type of storage to another
/guild console unclaim-all
Permission: guilds.command.admin
Remove all claim data from the plugin
/guild console update-languages
权限: guilds.command.admin
更新本插件的语言文档
/guild console backup
权限: guilds.command.admin
备份本插件所有数据
/guild console migrate <源种类>
权限: guilds.command.admin
从一个数据库中迁移数据至另一个数据库
/guild console unclaim-all
权限: guilds.command.admin
删除本插件所有的属地数据
GUI 命令
/guild buff
Permission: guilds.command.buff
Opens the guild buff GUI.
/guild list
Permission: guilds.command.list
Opens the guild list GUI.
/guild members
Permission: guilds.command.members
Opens the member list GUI.
/guild vault
Permission: guilds.command.vault
Opens a guild vault GUI.
/guild info
Permission: guilds.command.info
Opens up the guild info GUI.
/guild buff
权限: guilds.command.buff
打开公会效果 GUI.
/guild list
权限: guilds.command.list
打开公会列表 GUI.
/guild members
权限: guilds.command.members
打开成员列表 GUI.
/guild vault
权限: guilds.command.vault
打开公会金库 GUI.
/guild info
权限: guilds.command.info
打开公会信息 GUI.
家命令
/guild delhome
Permission: guilds.command.delhome
Delete your guild home.
/guild home
Permission: guilds.command.home
Teleport to your guild home.
/guild sethome
Permission: guilds.command.sethome
Set your guild home to your current location.
权限: guilds.command.delhome
删除你的公会传送点.
/guild home
权限: guilds.command.home
传送至公会传送点.
/guild sethome
权限: guilds.command.sethome
将公会传送点设置在当前位置.
管理命令
/guild create <name> [prefix]
Permission: guilds.command.create
Create a new guild!
/guild delete
Permission: guilds.command.delete
Deletes your current guild.
/guild kick <player>
Permission: guilds.command.boot
Kicks a player from your guild.
/guild prefix <prefix>
Permission: guilds.command.prefix
Set a new prefix for your guild.
/guild rename <name>
Permission: guilds.command.rename
Set a new name for your guild.
/guild status
Permission: guilds.command.status
Toggles the status of your guild.
/guild transfer <player>
Permission: guilds.command.transfer
Transfer your guild to another person.
/guild upgrade
Permission: guilds.command.upgrade
Upgrade your guild's tier.
/guild create <公会名称> [公会前缀]
权限: guilds.command.create
创建一个新公会!
/guild delete
权限: guilds.command.delete
删除你的公会.
/guild kick <玩家名称>
权限: guilds.command.boot
将玩家移出你的公会.
/guild prefix <公会前缀>
权限: guilds.command.prefix
为公会设置新前缀.
/guild rename <公会名称>
权限: guilds.command.rename
为公会设置新名称.
/guild status
权限: guilds.command.status
切换公会状态.
/guild transfer <玩家名称>
权限: guilds.command.transfer
将公会领袖的位置转交给他人.
/guild upgrade
权限: guilds.command.upgrade
升级公会等级.
成员命令
Commands handled by members of the server / guild.
服务器 / 公会成员需要用到的命令
/guild accept <name>
Permission: guilds.command.accept
Accepted a guild invite from a guild.
/guild check
Permission: guilds.command.check
Checks to see if a user has any pending guild invites.
/guild decline <name>
Permission: guilds.command.decline
Declines a pending guild invite from a guild.
/guild demote <player>
Permission: guilds.command.demote
Demote a player in your guild.
/guild invite <player>
Permission: guilds.command.invite
Invite a player to your guild.
/guild language <language>
Permission: guilds.command.language
Set the plugin language to your choosing!
/guild leave
Permission: guilds.command.leave
Leave your current guild.
/guild promote <player>
Permission: guilds.command.promote
Promote a player in your guild.
/guild accept <玩家名称>
权限: guilds.command.accept
接受一个当前加入公会的请求.
/guild check
权限: guilds.command.check
检查公会是否有待处理的请求.
/guild decline <玩家名称>
权限: guilds.command.decline
拒绝一个当前加入公会的请求.
/guild demote <玩家名称>
权限: guilds.command.demote
降级公会内的玩家.
/guild invite <玩家名称>
权限: guilds.command.invite
邀请玩家至你的公会.
/guild language <语言>
权限: guilds.command.language
修改当前语言!
/guild leave
权限: guilds.command.leave
离开你的公会.
/guild promote <玩家名称>
权限: guilds.command.promote
升级公会内的玩家.
标语命令
Commands that manage a guild's MOTD.
管理公会欢迎标语的命令。
/guild motd
Permission: guilds.command.motd
View your guild's MOTD.
/guild motd set <motd>
Permission: guilds.command.motd.modify
Set the MOTD of your guild.
/guild motd remove
Permission: guilds.command.motd.modify
Remove the MOTD of your guild.
/guild motd
权限: guilds.command.motd
显示当前公会的欢迎标语.
/guild motd set <标语名称>
权限: guilds.command.motd.modify
设置当前公会的欢迎标语.
/guild motd remove
权限: guilds.command.motd.modify
删除当前公会的欢迎标语.
杂项命令
Random commands that haven't been categorized yet.
一些杂碎且尚未分类的命令。
/guild chat
Permission: guilds.command.chat
Toggles the guild chat.
/guild request <guild>
Permission: guilds.command.request
Send a request to join a guild.
/guild chat
权限: guilds.command.chat
切换公会聊天.
/guild request <guild>
权限: guilds.command.request
向公会发送加入请求.
公会战命令
/guild war accept
Permission: guilds.command.war.accept
Accept a war request
/guild war challenge <guild>
Permission: guilds.command.war.challenge
Challenge another guild to a war
/guild war deny
Permission: guilds.command.war.deny
Deny a war request
/guild war join
Permission: guilds.command.war.join
Join a guild war
/guild war accept
权限: guilds.command.war.accept
接受战争邀请
/guild war challenge <guild>
权限: guilds.command.war.challenge
向其他公会发出挑战请求
/guild war deny
权限: guilds.command.war.deny
拒绝战争邀请
/guild war join
权限: guilds.command.war.join
加入战争
本帖最后由 名副其实 于 2023-2-25 23:22 编辑
| Placeholders | 变量集群
本插件提供了多种形式的变量以支持不同的聊天插件。
例如 PlaceholderAPI, MVdWPlaceholderAPI, EssentialsXChat
注意:对于 MVdWPlaceholderAPI:请确保使用了插件的最新版本,我们只是从 PlaceholderAPI 一侧做了该插件的兼容。这意味着你安装该插件后仍需安装 PlaceholderAPI 才可继续使用。
EssentialsXChat 示例:复制代码
排行榜变量
普通变量
|
| Placeholders | 变量集群
Guilds provides placeholders in various forms to support different APIs.
PlaceholderAPI, MVdWPlaceholderAPI, and EssentialsXChat
Note: For MVdWPlaceholderAPI, in order to ensure they all stay up-to-date with each other, we just hook into regular PlaceholderAPI. This means that PlaceholderAPI is also required.
EssentialsX Example:
(Make sure you enabled the hook in the config and reboot for this to work)
本插件提供了多种形式的变量以支持不同的聊天插件。
例如 PlaceholderAPI, MVdWPlaceholderAPI, EssentialsXChat
注意:对于 MVdWPlaceholderAPI:请确保使用了插件的最新版本,我们只是从 PlaceholderAPI 一侧做了该插件的兼容。这意味着你安装该插件后仍需安装 PlaceholderAPI 才可继续使用。
EssentialsXChat 示例:
- format: '<{GUILD} {DISPLAYNAME}> {MESSAGE}'
排行榜变量
| 变量 | 描述 |
| %guilds_top_wins_name_#% | 胜利场数排在第 # 位的公会名称 |
| %guilds_top_wins_amount_#% | 胜利场数排在第 # 位的公会对应胜场数量 |
| %guilds_top_losses_name_#% | 失败场数排在第 # 位的公会名称 |
| %guilds_top_losses_amount_#% | 落败场数排在第 # 位的公会对应败场数量 |
| %guilds_top_wlr_name_#% | 胜率排在第 # 位的公会名称 |
| %guilds_top_wlr_amount_#% | 胜率排在第 # 位的公会对应胜率 |
普通变量
| PAPI 变量 | MVdWPAPI 变量 | EssXChat 变量 |
| %guilds_name% | {placeholderapi_guilds_name} | {GUILD} |
| %guilds_master% | {placeholderapi_guilds_master} | {GUILD_MASTER} |
| %guilds_member_count% | {placeholderapi_guilds_member_count} | {GUILD_MEMBER_COUNT} |
| %guilds_prefix% | {placeholderapi_guilds_prefix} | {GUILD_PREFIX} |
| %guilds_members_online% | {placeholderapi_guilds_member_online} | {GUILD_MEMBERS_ONLINE} |
| %guilds_status% | {placeholderapi_guilds_stats} | {GUILD_STATUS} |
| %guilds_role% | {placeholderapi_guilds_role} | {GUILD_ROLE} |
| %guilds_tier% | {placeholderapi_guilds_tier} | / |
| %guilds_balance% | {placeholderapi_guilds_balance} | / |
| %guilds_balance_raw% | / | / |
| %guilds_tier_name% | {placeholderapi_guilds_tier_name} | / |
| %guilds_role_node% | {placeholderapi_guilds_role_node} | / |
| %guilds_id% | {placeholderapi_guilds_id} | / |
| %guilds_code_amount% | {placeholderapi_guilds_code_amount} | / |
| %guilds_max_members% | {placeholderapi_guilds_max_members} | / |
| %guilds_max_balance% | {placeholderapi_guilds_max_balance} | / |
| %guilds_formatted% | {placeholderapi_guilds_formatted} | / |
| %guilds_challenge_wins% | {placeholderapi_guilds_challenge_wins} | / |
| %guilds_challenge_loses% | {placeholderapi_guilds_challenge_loses} | / |
| %guilds_motd% | {placeholderapi_guilds_motd} | / |
|
| Developer API | 开发者 API
构建工具相关
Maven
<repository>
<id>glares-repo</id>
<url>https://repo.glaremasters.me/repository/public/</url>
</repository>
<dependency>
<groupId>me.glaremasters</groupId>
<artifactId>guilds</artifactId>
<version>VERSION</version>
</dependency>
Gradle
repositories {
maven {
url = 'https://repo.glaremasters.me/repository/public/'
}
}
dependencies {
compileOnly 'me.glaremasters:guilds:VERSION'
}
Kotlin
repositories {
maven("https://repo.glaremasters.me/repository/public/")
}
dependencies {
compileOnly("me.glaremasters:guilds:versions")
}
API 对接
Obtaining the instance of the API is pretty simple by using the singleton that provides static access to the class. You can obtain the instance of the API through the main Guilds class.
获取API的实例非常简单,只需要使用提供对类的静态访问的实例即可。开发者在这之后就可以通过主 Guilds 类获取该 API 的实例。
- GuildsAPI api = Guilds.getApi();
API 调用
The API can be used for obtaining a bunch of information from the plugin. You can browse over the following section to see what all is provided.
API 可以用来收集本插件许多有用的信息。你可以在下面的事件里查阅你所需要的事件内容。
获取公会有关内容
We provide a few ways to obtain a Guild object, so feel free to use what is easiest for you.
我们提供了多种获取相关信息的方法,你可根据喜好随意使用。
OfflinePlayer
/**
*
* Get the guild of a player
* @param player the players you're getting the guild of
* @Return the guild that the player is in
*/
fun getGuild(player: OfflinePlayer): Guild? {
return guildHandler.getGuild(player)
}
Guild UUID
/**
* Get a guild by it's uuid
* @param uuid uuid of the guild
* @return the guild the uuid belong to
*/
fun getGuild(uuid: UUID): Guild? {
return guildHandler.getGuild(uuid)
}
Guild Name
/**
* Get a guild by it's name
* @param name the name of the guild
* @return the guild object
*/
fun getGuild(name: String): Guild? {
return guildHandler.getGuild(name)
}
Player UUID
/**
* Get a guild by a player's uuid
*
* @param uuid the uuid of the player
* @return the guild of the player or null
*/
fun getGuildByPlayerId(uuid: UUID): Guild? {
return guildHandler.getGuildByPlayerId(uuid)
}
Getting a GuildMember object
/**
* Get a guild member by their uuid
*
* @param uuid the uuid of the player
* @return the guild member instance or null
*/
fun getGuildMember(uuid: UUID): GuildMember? {
return guildHandler.getGuildMember(uuid)
}
Getting a Guild Vault
/**
* Get a copy of one of a guild's vaults
* @param guild the guild to get the vault of
* @param vaultNumber which vault to get
* @return guild vault
*/
fun getGuildVault(guild: Guild, vaultNumber: Int): Inventory {
return guildHandler.getGuildVault(guild, vaultNumber)
}
Getting a GuildRole
/**
* Get the role of a player
* @param player role
* @return the role of a player
*/
fun getGuildRole(player: Player): GuildRole? {
return getGuild(player)?.getMember(player.uniqueId)?.role
}
Getting the GuildHandler
/**
* Get a copy of the guild handler
* @return guild handler
*/
public GuildHandler getGuildHandler() {
return guildHandler;
}
自定义事件
In the plugin we offer a bunch of custom events that you can listen to and modify as you see fit.
本插件提供了一些可供你监听与修改的事件
Base GuildEvent
/**
* Base guild event
* @param player player in event
* @param guild guild in the event
*/
public GuildEvent(Player player, Guild guild) {
super(player);
this.guild = guild;
}
GuildAddAllyEvent
/**
* This event takes place when two guilds ally each other
* @param player player who accepted
* @param guild guild one
* @param ally guild two
*/
public GuildAddAllyEvent(Player player, Guild guild, Guild ally) {
super(player, guild);
this.ally = ally;
}
GuildBuffEvent
/**
* Called when a guild purchases a buff
* @param player the player purchasing the buff
* @param guild the guild the player is in
* @param buff the buff being purchased
*/
public GuildBuffEvent(Player player, Guild guild, GuildBuff buff) {
super(player, guild);
this.buff = buff;
}
GuildCreateEvent
/**
* Called when people create a guild
* @param player player creating the guild
* @param guild the guild being created
*/
public GuildCreateEvent(Player player, Guild guild) {
super(player, guild);
}
GuildDepositMoneyEvent
/**
* Base guild event
* @param player player in event
* @param guild guild in the event
* @param amount the amount to deposit
*/
public GuildDepositMoneyEvent(Player player, Guild guild, double amount) {
super(player, guild);
this.amount = amount;
}
GuildInviteEvent
/**
* Called when a player gets invited to a guild
* @param player the player inviting other to guild
* @param guild the guild player will be joining
* @param invitedPlayer the player being invited
*/
public GuildInviteEvent(Player player, Guild guild, Player invitedPlayer) {
super(player, guild);
this.invitedPlayer = invitedPlayer;
}
GuildJoinEvent
/**
* Called when a player joins a guild
* @param player the player joining a guild
* @param guild the guild the player will be joining
*/
public GuildJoinEvent(Player player, Guild guild) {
super(player, guild);
}
GuildLeaveEvent
/**
* Called a when a player leaves the guild
* @param player the player leaving the guild
* @param guild the guild the player was leaving
*/
public GuildLeaveEvent(Player player, Guild guild) {
super(player, guild);
}
GuildKickEvent
/**
* Called when a player is kicked from the guild
* @param player the player executing the event
* @param kicked the player being kicked from the guild
* @param cause the cause for being kicked
*/
class GuildKickEvent(player: Player, guild: Guild, val kicked: OfflinePlayer, val cause: Cause) : GuildEvent(player, guild) {
enum class Cause {
PLAYER_KICKED, ADMIN_KICKED
}
}
GuildPrefixEvent
private String prefix;
/**
* Base guild event
* @param player player in event
* @param guild guild in the event
* @param prefix
*/
public GuildPrefixEvent(Player player, Guild guild, String prefix) {
super(player, guild);
this.prefix = prefix;
}
public String getPrefix() {
return prefix;
}
GuildRemoveAllyEvent
/**
* Called when a guild removes an ally
* @param player the player calling the removal
* @param guild the guild calling the removal
* @param ally the guild being removed
*/
public GuildRemoveAllyEvent(Player player, Guild guild, Guild ally) {
super(player, guild);
this.ally = ally;
}
GuildRemoveEvent
private String name;
/**
* Called when a guild is removed
* @param player the player removing the guild
* @param guild the guild getting removed
* @param cause the reason for the guild being removed
*/
public GuildRemoveEvent(Player player, Guild guild, Cause cause) {
super(player, guild);
this.cause = cause;
}
public enum Cause {
MASTER_LEFT,
PLAYER_DELETED,
ADMIN_DELETED
}
GuildRenameEvent
/**
* @param player player in event
* @param guild guild in the event
*/
public GuildRenameEvent(Player player, Guild guild, String newName) {
super(player, guild);
this.name = newName;
}
public String getName() {
return name;
}
GuildSetHomeEvent
/**
* Called when a guild sets their home
* @param player the player setting the home
* @param guild the guild the player is in
* @param location the location the home is being set at
*/
public GuildSetHomeEvent(Player player, Guild guild, Location location) {
super(player, guild);
this.location = location;
}
GuildTransferEvent
private Player newMaster;
/**
* Base guild event
* @param player player in event
* @param guild guild in the event
* @param newMaster
*/
public GuildTransferEvent(Player player, Guild guild, Player newMaster) {
super(player, guild);
this.newMaster = newMaster;
}
public Player getNewMaster() {
return newMaster;
}
GuildWithdrawEvent
/**
* @param player player in event
* @param guild guild in the event
* @param amount the amount to withdraw
*/
public GuildWithdrawMoneyEvent(Player player, Guild guild, double amount) {
super(player, guild);
this.amount = amount;
}
GuildUpgradeEvent
/**
* Called when a guild upgrades their tier
* @param player the player upgrading the tier
* @param guild the guild the player is in
* @param tier the new guild tier for the guild
*/
public GuildUpgradeEvent(Player player, Guild guild, GuildTier tier) {
super(player, guild);
this.tier = tier;
}
GuildWarAcceptEvent
/**
* Called when a guild war has been accepted
* @param player the player that accepted the war challenge
* @param challenger the challenging guild for the war
* @param defender the defending guild for the war
*/
class GuildWarAcceptEvent(player: Player, val challenger: Guild, val defender: Guild) : GuildEvent(player, defender)
GuildWarChallengeEvent
/**
* Called when a guild war challenge has been sent from one guild to another
* @param player the player that sent the war challenge
* @param challenger the challenging guild for the war
* @param defender the defending guild for the war
*/
class GuildWarChallengeEvent(player: Player, val challenger: Guild, val defender: Guild) : GuildEvent(player, challenger)
GuildWarDeclineEvent
/**
* Called when a guild war has been declined
* @param player the player that declined the challenge
* @param challenger the challenging guild for the war
* @param defender the defending guild for the war
*/
class GuildWarDeclineEvent(player: Player, val challenger: Guild, val defender: Guild) : GuildEvent(player, defender)
GuildWarEndEvent
/**
* Called when a guild war has ended
* @param challenger the challenging guild for the war
* @param defender the defending guild for the war
* @param winner the winner of the guild war
*/
class GuildWarEndEvent(val challenger: Guild, val defender: Guild, val winner: Guild) : Event() {
override fun getHandlers(): HandlerList {
return handlerList
}
companion object {
val handlerList = HandlerList()
}
}
GuildWarStartEvent
/**
* Called when a guild war has started
* @param challenger the challenging guild for the war
* @param defender the defending guild for the war
*/
class GuildWarStartEvent(val challenger: Guild, val defender: Guild) : Event() {
override fun getHandlers(): HandlerList {
return handlerList
}
companion object {
val handlerList = HandlerList()
}
}
本帖最后由 名副其实 于 2023-2-28 22:50 编辑

| Description | 插件介绍
本插件被设计为允许玩家通过投票使服务器总票数达到一定数量后,领取到一份自定义物品的礼包,以此鼓励那些玩家更多地游玩你的服务器。本插件同时也包含了一个简单但有效的、包含概率机制的奖励系统。
插件特色
- 给投票的玩家回馈奖励
- 安装即用
- 促进玩家投入服务器活动
- 高度自定义
- 支持 PlaceholderAPI
- 支持 NuVotifier
依赖插件
- PlaceholderAPI
- (非必需)NuVotifier
翻译
在本插件中,我们会尽可能多地支持更多种类的语言,以此便利大部分玩家!我们现在只支持荷兰语、英语和法语。(译者注:不久支持简体中文。)如果你对一门语言熟悉且有意愿为本插件翻译的话,请加入我们的 Discord 群组服并让我们知道,我们会为你提供翻译工作的相关信息!
安装步骤
1. 关闭服务器;
2. 将本插件放入你服务器中的 plugins 文件夹中;
3. 下载 PlaceholderAPI;
4. 下载 NuVotifier(译者注:非必需插件);
5. 启动你的服务器;
6. 在 /plugins/VoteParty 文件夹下找到 config.yml 和 语言文件 并按照自己的喜好将它们修改;
7. 使用命令 /papi ecloud download Player 下载变量拓展 Player;
8. 检查命令与权限页面来更好地配置本插件;
9. 设置完成!享受它吧!
|

| Description | 插件介绍
VoteParty was designed to allow you to reward all online players with customizable rewards when your servers gets to a certain number of votes using VoteParty, encouraging your community to get involved. VoteParty contains a simple but very effective way to generate a random, but very customizable reward system based on chance.
本插件被设计为允许玩家通过投票使服务器总票数达到一定数量后,领取到一份自定义物品的礼包,以此鼓励那些玩家更多地游玩你的服务器。本插件同时也包含了一个简单但有效的、包含概率机制的奖励系统。
插件特色
Give players rewards for voting
Quick and easy to setup
Encourages community involvement
Highly customizable
PlaceholderAPI support
NuVotifier support
- 给投票的玩家回馈奖励
- 安装即用
- 促进玩家投入服务器活动
- 高度自定义
- 支持 PlaceholderAPI
- 支持 NuVotifier
依赖插件
- PlaceholderAPI
- (非必需)NuVotifier
翻译
In VoteParty, we strive to support as many languages we can in order to support more people! Currently we only support Dutch, English, and French. If you speak a language besides this fluently and are interested in translating, please join our discord and let us know and we can give you information on how to do that!
在本插件中,我们会尽可能多地支持更多种类的语言,以此便利大部分玩家!我们现在只支持荷兰语、英语和法语。(译者注:不久支持简体中文。)如果你对一门语言熟悉且有意愿为本插件翻译的话,请加入我们的 Discord 群组服并让我们知道,我们会为你提供翻译工作的相关信息!
安装步骤
Stop your server.
Put the VoteParty jar file that you downloaded into your plugins folder.
Download the PlaceholderAPI dependency.
Download the NuVotifier dependency.
Start your server.
Modify the config.yml and language files that were generated to fit your server's layout (Both found in /plugins/VoteParty/).
Download the PlaceholderAPI Player Expansion (/papi ecloud download Player)
Check the Commands & Permissions page to familiarize yourself with the plugin.
That's it! You're good to go!
1. 关闭服务器;
2. 将本插件放入你服务器中的 plugins 文件夹中;
3. 下载 PlaceholderAPI;
4. 下载 NuVotifier(译者注:非必需插件);
5. 启动你的服务器;
6. 在 /plugins/VoteParty 文件夹下找到 config.yml 和 语言文件 并按照自己的喜好将它们修改;
7. 使用命令 /papi ecloud download Player 下载变量拓展 Player;
8. 检查命令与权限页面来更好地配置本插件;
9. 设置完成!享受它吧!
本帖最后由 名副其实 于 2023-2-28 23:04 编辑
| Commands & Permissions | 命令与权限
玩家命令
管理员命令
权限列表
|
| Commands & Permissions | 命令与权限
玩家命令
| 命令 | 权限 | 描述 |
| /vp | / | 显示触发本插件活动的剩余投票数。 |
| /vp help | / | 显示本插件的帮助命令。 |
| /vp claim | voteparty.command.claim | 领取下线时获得的奖励。 |
管理员命令
| 命令 | 权限 | 描述 |
| /vp addvote <数量> | voteparty.command.admin | 向当前活动投入投票。 |
| /vp addvote <玩家> <是否静默> <数量> | voteparty.command.admin | 同上,但增加了一些额外选项。 |
| /vp givecrate <玩家> <数量> | voteparty.command.admin | 将投票回馈抽奖礼包给予玩家。 |
| /vp checkvotes <玩家> <数量> <时间段> | voteparty.command.admin | 查询玩家当前时间段内的投票数。 |
| /vp totalvotes <玩家> | voteparty.command.admin | 查询玩家当前总投票数。 |
| /vp resetvotes <玩家> | voteparty.command.admin | 重置玩家当前投入的投票。 |
| /vp setcounter <数量> | voteparty.command.admin | 设置投票计数器。 |
| /vp startparty | voteparty.command.admin | 强制触发本插件的活动事件。 |
| /vp giveparty <玩家> | voteparty.command.admin | 为特定玩家触发本插件的活动事件。 |
| /vp reload | voteparty.command.admin | 重载本插件。 |
权限列表
| 权限节点 | 描述 |
| voteparty.command.admin | 允许使用本插件的所有命令。 |
本帖最后由 名副其实 于 2023-3-1 22:47 编辑
| Placeholders | 变量集群
本插件提供了 PlaceholderAPI 的支持,所以你可以在任何支持该插件的地方引用这些变量。
反之亦然,你也可以在本插件内使用外部变量。(全变量集群链接)
若要给诸如 FeatherBoard 这样的插件使用,你需要把外面的百分号 %% 换成 花括号 {}。
(译者注:支持 MVdWPlaceholder 的插件才需要如此变动,否则不需要做任何改动。
作者曾在上一章中提起过,若要使用该类型的变量,仍然需要安装 PlaceholderAPI,否则无效。)
例如: {placeholerapi_voteparty_votes_recorded}
参数解释
种类 (Type):
在上文中指大写单词 TYPE 处应当填入的内容。通常有下列选项可供使用: daily(每日),weekly(每周),monthly(每月),annually(每年)以及 alltime(全时)。
信息(Info):
指上文中以大写英文 INFO 处需要填入的内容。此处填入的内容可以是 name(名称)或 votes(投票)。
排行:
对应变量中大写英文 PLACEMENT 填写的内容。填入整数。例如填入 1 则返回该值中排名第一的玩家,2 则返回排名第二的玩家。
示例变量:
%voteparty_top_alltime_name_1% - 返回全时投票排名第一的玩家名称。
%voteparty_top_monthly_name_1% - 返回当月投票排名第一的玩家名称。
变量下载
插件本身不需要下载任何变量拓展。插件会自行注册这些变量。
|
| Placeholders | 变量集群
VoteParty provides PlaceholderAPI placeholders that you can utilize inside any plugin that supports PlaceholderAPI.
You can also use any PlaceholderAPI placeholder inside of VoteParty. (PlaceholderAPI placeholders list)
本插件提供了 PlaceholderAPI 的支持,所以你可以在任何支持该插件的地方引用这些变量。
反之亦然,你也可以在本插件内使用外部变量。(全变量集群链接)
To utilize with plugins such as FeatherBoard, change the below placeholders from %% to {placeholderapi_<placeholder>}.
Example: {placeholderapi_voteparty_votes_recorded}
若要给诸如 FeatherBoard 这样的插件使用,你需要把外面的百分号 %% 换成 花括号 {}。
(译者注:支持 MVdWPlaceholder 的插件才需要如此变动,否则不需要做任何改动。
作者曾在上一章中提起过,若要使用该类型的变量,仍然需要安装 PlaceholderAPI,否则无效。)
例如: {placeholerapi_voteparty_votes_recorded}
| 变量 | 返回值 | 描述 |
| %voteparty_votes_recorded% | 文本 | 返回记录的总投票数。 |
| %voteparty_votes_required_party% | 文本 | 返回触发本插件事件所需的剩余投票数。 |
| %voteparty_votes_required_total% | 文本 | 返回触发本插件事件需要的总投票数。 |
| %voteparty_player_votes% | 文本 | 已弃用。 返回玩家的总投票数。 |
| %voteparty_votes_total% | 文本 | 返回所有玩家的投票数。 |
| %voteparty_top_TYPE_INFO_PLACEMENT% | 文本 | 根据输入内容返回排行榜中的结果。参见下文参数解释。 |
| %voteparty_placement_TYPE% | 文本 | 返回玩家在特定排行榜中的排名。 |
| %voteparty_totalvotes_TYPE% | 文本 | 返回玩家在特定时间段内的总投票数。 |
| %voteparty_totalparties_TYPE% | 文本 | 返回服务器在特定时间段内触发活动的总次数。 |
参数解释
Type
The type placeholder refers to the list of placeholders above that contain TYPE in them. The options for these are daily, weekly, monthly, annually and alltime.
种类 (Type):
在上文中指大写单词 TYPE 处应当填入的内容。通常有下列选项可供使用: daily(每日),weekly(每周),monthly(每月),annually(每年)以及 alltime(全时)。
Info
The info placeholder refers to the list of placeholders above that contain INFO in them. The options for these can be name or votes.
信息(Info):
指上文中以大写英文 INFO 处需要填入的内容。此处填入的内容可以是 name(名称)或 votes(投票)。
The placement is just the placement of the player in the leaderboard, so like 1 would return the top voter, 2 would return the 2nd top voter, etc.
排行:
对应变量中大写英文 PLACEMENT 填写的内容。填入整数。例如填入 1 则返回该值中排名第一的玩家,2 则返回排名第二的玩家。
Example Placeholders:
%voteparty_top_alltime_name_1% - Returns the name of the top voter of all time
%voteparty_top_monthly_name_1% - Returns the name of the top voter in the past month
示例变量:
%voteparty_top_alltime_name_1% - 返回全时投票排名第一的玩家名称。
%voteparty_top_monthly_name_1% - 返回当月投票排名第一的玩家名称。
变量下载
There is no download required anymore to utilize the VoteParty placeholders. It is all built into the plugin.
插件本身不需要下载任何变量拓展。插件会自行注册这些变量。
本帖最后由 名副其实 于 2023-3-1 22:49 编辑
| Configruations | 配置文本
config.yml复制代码
|
| Configruations | 配置文本
config.yml
- # VoteParty
- # Creator: Clip & Glare
- # Contributors: https://github.com/VoteParty/VoteParty/graphs/contributors
- # Issues: https://github.com/VoteParty/VoteParty/issues
- # Spigot: https://www.spigotmc.org/resources/987/
- # Wiki: https://wiki.helpch.at/glares-plugins/voteparty
- # Discord: https://helpch.at/discord
- settings:
- # The default language of the plugin
- language: en-US
- # The prefix of all the messages in the plugin
- prefix: '&d&lVote&5&lParty &7&l» '
- counter:
- # How often to save the current amount of votes (in seconds)
- save-interval: 300
- data:
- # How often do we want to save the player data (in seconds)
- save-interval: 300
- # Do you want to save a player's data instantly on vote? This will happen along with the interval saving above.
- # Some servers just prefer to save instantly to ensure all the data is there.
- save-on-vote: false
- # Would you like to enable Brigadier command support? (I think it does more than just pretty colors) 1.13+
- brigadier: false
- # The hook part of the config allows you to configure which plugins you would like to hook into for votes.
- # By default, the plugin will utilize NuVotifier and listen for it's vote events.
- # If you would like to use the plugin without NuVotifier, just disable the hook!
- # NOTE: Keep in mind that without being hooked into a vote plugin, the plugin will not automatically handle votes.
- # You will be required to do everything manually.
- # Over time, more plugins may become supported!
- hooks:
- # Would you like to listen to NuVotifier for incoming votes?
- nuvotifier: true
- crate:
- enabled: true
- lore:
- - ''
- - '&7Place the chest in order to'
- - '&7to receive rewards!'
- - ''
- material: CHEST
- name: '&d&lVote&5&lParty &f&lCrate'
- # Configuration for particle effects you can play
- # throughout different parts of the plugin
- effects:
- # Configuration for particles when party commands are being executed
- party_commands_execute:
- enable: true
- effects:
- - SMOKE_NORMAL
- - HEART
- offsetX: 0.0
- offsetY: 0.0
- offsetZ: 0.0
- speed: 0.1
- count: 2
- # Configuration for particles when a party starts
- party_start:
- enable: true
- effects:
- - SMOKE_NORMAL
- - HEART
- offsetX: 0.0
- offsetY: 0.0
- offsetZ: 0.0
- speed: 0.1
- count: 2
- # Configuration for particles when a player votes
- vote:
- enable: true
- effects:
- - SMOKE_NORMAL
- - HEART
- offsetX: 0.0
- offsetY: 0.0
- offsetZ: 0.0
- speed: 0.1
- count: 2
- party:
- # The amount of votes needed for a party to occur
- votes_needed: 50
- # Would you like to use a crate for the rewards?
- use_crate: false
- # The list of worlds where party rewards won't be given
- disabled_worlds:
- - ''
- # Choose to allow offline votes count towards the party
- offline_votes: true
- # There are 3 different ways that a party can work.
- # 1) "everyone" - everyone can join the party whether they voted or not
- # 2) "daily" - everyone who voted in the past 24 hours can join the party
- # 3) "party" - everyone who voted in this specific party can join the party
- # Set the mode below to one of the options above to specify how the party should function
- party_mode: everyone
- # The amount of time (in seconds) the server will wait to start the party after the amount needed has been achieved
- start_delay: 15
- # The amount of time (in seconds) the server will wait between executing reward commands
- command_delay: 1
- # Configuration for chance rewards to be given during a party.
- # Add as many commands as you want, set their chance, and choose the max amount a player can earn!
- reward_commands:
- enabled: true
- max_possible: 1
- commands:
- - chance: 50.0
- command:
- - eco give %player_name% 100
- - chance: 50.0
- command:
- - give %player_name% DIAMOND 6
- - chance: 50.0
- command:
- - give %player_name% IRON_INGOT 12
- # Configuration for extra commands to be executed on players who have specific permission nodes when a party happens
- permission-rewards:
- enabled: true
- permCommands:
- - permission: my.special.permission
- commands:
- - eco give %player_name% 500
- # A list of rewards that will ALWAYS be given to a player during a party
- guaranteed_rewards:
- enabled: true
- commands:
- - eco give %player_name% 10
- - give %player_name% STEAK 8
- # Commands to be executed before a party is started
- pre_party_commands:
- enabled: true
- commands:
- - broadcast Party will start soon!
- # Commands to be executed when a party has started
- party_commands:
- enabled: true
- commands:
- - broadcast A Vote Party has started!
- voting:
- # If a player's inventory is full when voting, do you want to send the vote to a /vote claim?
- claim_if_full: true
- # Configuration for chance rewards to be given for voting.
- # Add as many commands as you want, set their chance, and choose the max amount a player can earn!
- per_vote_rewards:
- enabled: true
- max_possible: 1
- commands:
- - chance: 50.0
- command:
- - eco give %player_name% 100
- - chance: 70.0
- command:
- - give %player_name% STEAK 10
- # Configuration for extra commands to be executed on players who have specific permission nodes
- permission-rewards:
- enabled: true
- permCommands:
- - permission: my.special.permission
- commands:
- - eco give %player_name% 500
- # A list of rewards that will ALWAYS be given to a player for voting
- guaranteed_rewards:
- enabled: true
- commands:
- - eco give %player_name% 10
- - give %player_name% STEAK 8
- # A list of commands to run when it's the first time a player has voted (only works for online players)
- first_time_rewards:
- enabled: false
- commands:
- - eco give %player_name% 100
- - give %player_name% STEAK 10
- # Configuration for extra commands to be executed on players who voted on a specific website (only works for online players)
- # Known Service Names:
- # TopG.com
- # PlanetMinecraft.com
- # Minecraft-MP.com
- # MinecraftServers.org
- # Minecraft-Server.net
- votesite-rewards:
- enabled: false
- votesiteCommands:
- - serviceName: TestVote
- commands:
- - eco give %player_name% 500
- # Global commands (such as a broadcast message) to be executed when a player votes
- global_commands:
- enabled: true
- commands:
- - broadcast %player_name% just voted! Only %voteparty_votes_required_party% more votes
- until a VoteParty!
- offline_vote_claiming:
- # Would you like players to be able to claim rewards for offline votes?
- # Note: They will only be able to get credit for rewards if you have `offline_votes` enabled
- enabled: false
- # Would you like to notify the player when they login that they have votes to claim?
- notify: false
- # Configuration for extra commands to be executed on players who have voted a specific amount of times in the past day, week, month, year, and all time.
- cumulative-rewards:
- daily:
- enabled: false
- entries:
- - votes: 5
- commands:
- - give %player_name% STEAK 10
- weekly:
- enabled: false
- entries:
- - votes: 5
- commands:
- - give %player_name% STEAK 10
- monthly:
- enabled: false
- entries:
- - votes: 5
- commands:
- - give %player_name% STEAK 10
- yearly:
- enabled: false
- entries:
- - votes: 5
- commands:
- - give %player_name% STEAK 10
- total:
- enabled: false
- entries:
- - votes: 5
- commands:
- - give %player_name% STEAK 10
|
| API | 开发者 API
自定义事件
Inside of VoteParty, we offer a custom event that is listened to inside the plugin to give out rewards. This allows plugins to hook into it and also give extra rewards or modify to what they see fit.
在本插件内,我们提供了一些监听插件的自定义事件以让开发者给予玩家奖励。这允许别的插件和它联动,并且我们也有了一些额外的思路来给予玩家奖励。
VoteReceivedEvent
/**
* This event takes place when a hooked plugin receives a vote
* @param player The player that voted
*/
public VoteReceivedEvent(OfflinePlayer player Vote vote) {
this.player = player;
this.vote = vote;
}
PrePartyEvent
/**
* This event takes place when a party is preparing to start
*/
public PrePartyEvent() {
}
PartyStartEvent
/**
* This event takes place when a party is starting
*/
public PartyStartEvent() {
}
PartyEndEvent
/**
* This event takes place when a party is finished
*/
public PartyEndEvent() {
}