本帖最后由 Smokey_Days 于 2017-4-2 16:02 编辑

总览

BossShop 能帮助你创建服务器菜单/商店GUI界面。是一个十分强大的GUI菜单插件。
这是一个有史以来最强大的GUI插件,告别所有烦人的指令和告示牌商店吧。



什么是 BossShop?
BossShop 是一个插件,能够创建一个简单或是复杂的GUI界面(取决于你!)。它允许创建一个拥有无限库存,特殊物品,单独的价格,单独的奖励等等等等的商店。总而言之,它可以做很多事情。 你能链接各个背包,让部分玩家(比如VIP?)能够享受折扣,也可以给玩家提供传送服务,亦或是可以点击投票,或者其他你可以想象出来的!他有无穷的可能性。

听起来不错,但是懒癌晚期? 我也不喜欢大量的配置文件,所以我写了个软件来帮助你制作菜单~
(译者注:该软件有部分bug尚未修复)


特性

*注:下列特性带有链接的代表需要指定插件支持
玩家能通过告示牌、指令甚至是特定物品来打开指定菜单



我能设置什么奖励?
物品
金钱
权限
控制台命令
玩家命令
点卷 (PlayerPoints / CommandPoints / Enjin Points)
延时命令
"商店" (这个奖励的意思是打开另一个商店GUI)
服务器跳转 (将玩家送往指定服务器,需要: BungeeCord)



我能设置什么花费?
物品
经验
金钱
点卷 (PlayerPoints / CommandPoints / Enjin Points)
免费



我能给物品添加什么属性?
自定义名字
介绍
附魔
附加值 (比如装备的耐久和羊毛的颜色)
药水效果
符号 (详情参阅“符号”一章)
染色皮质盔甲


你可以向单个物品添加权限(例如只有VIP才能购买)
你可以为玩家定义单独的折扣(VIP打折?可以!低信誉加价?可以!)
所有的消息都可以自定义
漏洞追踪器: 所有插件/配置的错误都会记录在“BugFinder.yml”文件中
可选: 在 TransactionLog.yml 文件中记录全部的购买记录


命令

/bs - 打开主菜单
/bs <商店名> - 打开指定名称的菜单
/bs close <玩家名> - 让指定玩家退出商店(也就是关闭指定玩家的商店GUI)
/bs reload - 重载插件、商店以及其他配置文件
/bs check - 显示已加载的商店/物品的详细信息
别称:
/shop
/BossShop
你可以用上述命令来替代“/bs”(通常在指令冲突时使用)


权限


BossShop.open - 可以打开全部菜单
BossShop.open.sign - 可以通过告示牌打开菜单
BossShop.open.command - 可以通过命令打开全部菜单
BossShop.open.command.<商店名> - 用命令只能打开指定菜单
BossShop.createSign - 能够创建商店告示牌
BossShop.reload - 能够重载插件
BossShop.check - 能够使用/bs check命令


例子




BossShop ,真正的无极限!


Config文件配置

# BossShop



默认商店




FAQ-常见问题


我不知道某些物品的名称!!!

不知道物品名称?没问题,你有两个方式
你可以直接使用物品的ID (比如说,钻石铲的id是278,而你只需要输入 "id:278")
或者你可以尝试着找找它的正确名字,你可以到MC的Wiki里找。比如说钻石铲的名称是"DIAMOND_PICKAXE",那么在配置文件中你只需输入 "type:DIAMOND_PICKAXE" 即可.



彩色的羊毛、黑森林木,指定怪物的生成蛋,这些要怎么搞呢?
那很简单 :)
首先,你要输入材质的名称(例如"type:LOG", "type:WOOL", "id:383")
接着设置“子材质”——在durability项中修改。你能在这儿 http://minecraft.gamepedia.com/Data_values 找到全部的子ID(管他叫什么)
例子:

  1. Red wool
  2. "type:WOOL"
  3. "durability:14"
  4. Dark Log
  5. "type:LOG"
  6. "durability:1"
  7. Creeper Spawn Egg
  8. "id:383"
  9. "durability:50"
复制代码


如何添加新商店?
复制一个有效的商店文件 (.yml)
重名名字
打开
编辑 "ShopName" 项(这很重要)


BossShop 不启动了!我的配置文件不工作了!

你的配置文件应当是出错了

如果你的配置文件出错, 请使用这个网站 http://yaml-online-parser.appspot.com/ 它可以检测你的文件错误,并且支持在线编辑


如何创建多行介绍?
只需要使用 '#' 来换行
例子:

  1. - 'lore:&cDeveloper.#&b&lName: &r&bFelix N.#&b&lWebsite: &r&bfelix.neuby.de##&8Click
  2.       to get his head! &c[<3]'
复制代码



高级物品

什么是 "ItemData"?
嗯...我想让用户能创建各种具有附魔/药水效果/耐久值的物品
为此我想出了: ItemData.


使用ItemData非常容易


你需要列出物品的属性列表,顺序无所谓
如果配置出错,BossShop将会将其记录在 "BugFinder.yml" 文件中

物品属性至少要有两个最基本的东西: type/id(物品种类)和 amount(堆叠数量)

  1.       - 'type:STONE'
  2.       - amount:10
复制代码

或者

  1.       - 'id:1'
  2.       - amount:10
复制代码


你可以添加很多种属性:
id:<数字>
指定物品的材料:例如 1 = 石头, 49 = 黑曜石, 278 = 钻石镐
你可以在这儿找到物品ID的列表: 链接

type:<种类>
依然是指定物品的材料,你可以从type和id二者中任选一种来指定物品的ID
你可以在这儿找到物品种类的列表: 链接 l

amount:<数字>
不言自明,物品的堆叠数量

durability:<数字>
这儿名义上是耐久度,实际上是物品的附加值,也就是按下F3+H后物品ID右侧冒号后方的那个数字
对于武器、工具、盔甲而言它是耐久值,对于羊毛、染色粘土等而言它是颜色

name:<name>
这是物品的显示名
该项支持符号,请至符号一章查阅

lore:<第一行#第二行#第三行>
这是物品的介绍
你能使用颜色代码,例如 &4 (=暗红色) 或者 &l (=金色).
你能使用 "#" 来换行
该项支持符号,请至符号一章查阅

创建物品介绍有两种方式:

A) (传统的)
  1. item:
  2. - 'name:物品名'
  3. - 'lore:第一行#第二行#第三行'
复制代码

B) (新式的)
item:
  1. - 'name:物品名'
  2. - 'lore:第一行'
  3. - 'lore:第二行'
  4. - 'lore:第三行'
复制代码


enchantment:<附魔名称>#<等级>
使用这个属性为指定的物品附魔
例子:
  1. enchantment:DAMAGE_ALL#5
复制代码

上述例子将给物品附上 锋利V 的附魔
附魔列表: 链接

enchantmentid:<附魔ID>#<等级>
使用这个也可以为指定的物品附魔,只不过使用数字ID来代替名称
例子:
  1. enchantmentid:16#5
复制代码
上述例子也将给物品附上 锋利V 的附魔
附魔ID列表: 链接

color:<R数字>#<G数字>#<B数字>
使用这个给皮质物品染色
例子:
  1. color:110#10#140
复制代码
染色的代码不知道如何设置? 嗯, 只需要指定这个物品有多红/多绿/多蓝 你能在这儿找到 RGB颜色列表:
当然你也可以直接用一些软件调色,比如说 Paint.NET

potioneffect:<药水名>#<等级>#<以秒为单位的时间>
这将给物品添加药水效果
注意: 你只能给药水添加药水效果!
例子:
  1. potioneffect:STRENGTH#1#600
复制代码
上方的代码产生的药水将是 力量II 并持续10分钟
这儿能找到全部可用的药水效果列表:链接

playerhead:<name>
这将指定头颅来自哪名玩家
注意: 这个选项是给头颅准备的! ("SKULL_ITEM")
另: 为了弄成玩家头,你首先要将物品材料设为头颅 ("type:SKULL_ITEM") 并且附加值要设为 3 ("durability:3").
例子:
  1. playerhead:Herobrine
复制代码

这将让头颅使用Him的头

hideflags:<标签一#标签二#标签三>
一个隐藏标签的快速方式
例子:

  1. hideflags:all
  2. hideflags:HIDE_ATTRIBUTES
  3. hideflags:HIDE_ATTRIBUTES#HIDE_ENCHANTS
复制代码


这儿你能找到全部可用的标签列表: 链接 https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/inventory/ItemFlag.html

Unbreakable
让物品无法被破坏,在高级地图中经常用到

banner:<>
功能已经实行,指南即将到来


重要:
有一个东西会比较混乱:物品列表 (或者物品附加值).

一个物品 (或者物品附加值) 看起来像这样:

  1.       - type:POTION
  2.       - amount:1
  3.       - durability:0
  4.       - name:&1NinjaPotion
  5.       - 'lore:&e1 NinjaPotion #&cPrice: 400 Money #&cOnly for VIPs!'
  6.       - potioneffect:SPEED#4#600
  7.       - potioneffect:JUMP#0#600
  8.       - potioneffect:NIGHT_VISION#0#600
复制代码

一堆物品 (或者物品附加值) 就看起来像这样:

  1.     - - type:WOOL
  2.       - amount:10
  3.       - durability:14
  4.     - - type:WOOL
  5.       - amount:10
  6.       - durability:11
  7.     - - type:WOOL
  8.       - amount:10
  9.       - durability:4
  10.     - - type:WOOL
  11.       - amount:10
  12.       - durability:5
复制代码

这只不过是一个列表,列出所有物品附加值,但是致人混乱的地方在于——物品附加值它本身,也是一个列表。

一个菜单物品肯定只有一个物品(毕竟是按钮),那么它就只能有一组物品附加值(= 属性列表). 但是如果你需要用物品作为花费/报酬,那将总是一串的、一个列表的附加值(= 一个列表的属性列表).

如果你需要让玩家花费一个钻石来购买,那么要写成这样:

  1.     Price:
  2.     - - type:DIAMOND
  3.       - amount:1
复制代码

         
结构:

  1. Price:
  2. - - 物品列表
  3.   - 物品附加值 1
  4.   - 物品附加值 2
  5.   - 物品附加值 3
  6.   - 物品附加值 4
复制代码




Price:

  1. - - 物品列表
  2.   - 物品附加值 1
复制代码



指标监控器


这个插件使用Hidendra的插件指标监控器系统, 那就意味着以下信息将被收集并发送到 mcstats.org:

UUID
服务器的JAVA版本
服务器是否开启
插件版本
服务器版本
操作系统版本/名称
CPU的核心的数量
在线玩家数量
指标监控器版本
如果有需要,你可以在 /plugins/PluginMetrics/config.yml 中关闭指标监控器



物品堆叠机制

多个物品可以储存在GUI的同一个格子里。列表中的所有物品都会被读取,但是只会显示第一个。如果你想使用物品堆叠机制,那么你可以使用附属插件 BS-SingleUse https://dev.bukkit.org/projects/bs-singleuse 或者在BossShop的配置文件中开启 "HideItemsPlayersDoNotHavePermissionsFor" 选项

BS-SingleUse 将在使得物品在被购买n次后隐藏,然后显示下一个(可配置),而当"HideItemsPlayersDoNotHavePermissionsFor" 选项开启时,指定物品将对没有相关权限的玩家隐藏,而玩家将直接看到下一个

当堆叠列表上的一个物品被隐藏,就将显示列表上的下一个物品(如果有的话)

例子:

Items:

Upgrade 1
InventoryLocation 5
SingleUse: 1
PriceType: Money
[...]
Upgrade 1
InventoryLocation 5
SingleUse: 1
PriceType: Money
[...]
Upgrade 2
InventoryLocation 5
SingleUse: 1
PriceType: Money
[...]
Upgrade 3
InventoryLocation 5
SingleUse: 1
PriceType: Money
[...]
在这个例子中,第一个物品"Upgrade 1" 将首先显示。在被购买后,它将被隐藏 (通过附属插件 SingleUse). 现在 "Upgrade 2" 出现了。在 "Upgrade 2" 被购买后,它又会被隐藏,并且 "Upgrade 3" 将出现。我想你知道它是如何工作的了。想你知道它是如何工作的了。


变量

符号(详情查阅 符号 一章)
%player% - 玩家名
%name% - 玩家名
%balance% - 玩家金钱数量
%balancepoints% - 玩家点劵数量
你能随心所欲地使用这些变量符号, 它们将显示在特定位置上 (菜单物品, 购买后的信息, 作为奖励的物品, ...):

%itemname% - 物品名
%price% - 显示价格 (能够列出全部物品及它们的属性)
%pricetype% - 价格类型
%reward% - 显示奖励 (能够列出全部物品及它们的属性)
%rewardtype% - 奖励类型
Serverpinging: 显示玩家数量/实时显示其他服务器的MOTD(详情查阅 ServerPinging 一章)
因为支持PlaceholderAPI 所以支持极其多的变量符(将自动替换)

注意: 当使用 PlaceholderAPI 变量符时必须确保 PlaceholderAPI 的设置是正确的!

如果你想使用变量,你需要下载 PlaceholderAPI 这一插件(将自动使用).

如果你想要使用 'Player' 变量符,你需要下载 'Player' 扩展。下载方式是输入指令"/papi ecloud download Player"


Server Pinging

是的,想在物品上显示服务器MOTD?想在物品上显示当前在线玩家数量?这都是有可能的!

教程.1

我们需要设置一个“通道”,让BossShop可以顺着这个通道找到我们指定的服务器

例:

  1. shop:
  2.   ServerHub:
  3.     RewardType: playercommand
  4.     PriceType: free
  5.     Reward: server hub
  6.     MenuItem:
  7.     - type:GOLDEN_APPLE
  8.     - amount:1
  9.     - name:&c&l&n点击来进入服务器大厅!
  10.     - lore:&7点击来连接!#&e%players% &3在线
  11.     - durability:1
  12.     InventoryLocation: 1
  13.     ExtraPermission: ''
  14.     ServerPinging: mc.server.net:25565 #我们铺设的 “通道”
复制代码


教程.2

我们可以在Lore或者显示的名字里使用变量!
但是只能在ShopItem里奏效,其他都是不奏效的!

变量:

%players% | 显示铺设的“通道” 连接向的服务器的玩家数量。
%motd% | 显示铺设的“通道” 连接向的服务器的MOTD信息

例:
  1. Example:

  2.     MenuItem:
  3.     - type:REDSTONE
  4.     - amount:1
  5.     - name:&4最酷的服务器
  6.     - lore:&c%players% 在线
复制代码


标题

BossShop 配置 其实并不难 !
首先,你要保证你已经安装了你需要的插件。

前置 (Bukkit Plugin隶属于Curse,但由于其功能要求,需要连接至Google,所以访问速度很慢!)
  如果你想进行金钱交易,你需要:
    Vault (http://dev.bukkit.org/bukkit-plugins/vault/)
    或者其他支持 Vault 的经济插件。
  如果你需要玩家的权限才能操作BossShop,你需要:
    Vault (http://dev.bukkit.org/bukkit-plugins/vault/)
    或者其他支持 Vault 的权限插件
  如果你需要进行点券交易,你需要:
    PlayerPoints (http://dev.bukkit.org/server-mods/playerpoints/)
    Enjin Minecraft Plugin Points (https://www.curseforge.com/knowledge-base)
  如果你需要定时指令之类的,你需要:
    ScheduledCommands (http://dev.bukkit.org/bukkit-plugins/scheduledcommands/)
  如果你需要BossShop来打开一些特定的东西,你需要:
    GuiShopManager (http://dev.bukkit.org/bukkit-plugins/guishopmanager/)
配置
现在你已经安装好了你的所需插件?开始配置你的BossShop吧!
推荐网站 : http://yaml-online-parser.appspot.com/
它可以检查你配置文件是否有错误以及在线YAML配置!(为嘛我打不开..)

主要的设置:
  1. #
  2. signs:
  3.   enabled: true #如果您启用(true)了,您可以通过牌子来打开商店。禁用即 false
  4.   MainShop: menu #主菜单的名字(在菜单文件内进行配置),用来/bs 指令,模糊方式打开主菜单,主要打开的菜单。
  5. #
复制代码


当插件加载后,您打开它自动生成的“BossShop”文件夹,会发现有一个config.yml(插件配置文件)以及shops文件夹
在这个文件夹内,是用来放菜单的。BossShop 插件是将每个菜单都是独立起来的,这些菜单的配置方式都是一样的。
1.它包含的设置项
  1. ShopName: BossShop #菜单的名字
  2. signs:
  3.   text: '[BossShop]' #这是创建牌子时的第一行需要写的内容,这里就默认为[bossshop]
  4.   NeedPermissionToCreateSign: true #需要权限才能创建牌子,如果设置为 false ,那么每个人都可以创建打开BossShop商店的牌子。
复制代码

2.BossShop插件可以设置很多商店物品,以及各种出售、收购方式。
每一个商店物品,都是同样配置格式,请大家不要搞错。
  1.   <商店的名字>:
  2.     RewardType: <出售的物品>
  3.     PriceType: <价格类型>
  4.     Price: <价格数>
  5.     Reward: <出售的物品、属性>
  6.     MenuItem: <物品的类型>
  7.     Message: <出售/收购后显示的信息>
  8.     InventoryLocation: <物品了位置>
  9.     ExtraPermission: <购买该物品所需要的权限> #你可以留出这一栏,来让所有玩家都能购买
复制代码


具体的解释:

<商店的名字>
这里是设置你所出售物品的名字,例如你要出售一个泥土,但是它只会显示 “泥土”
而配置该项目,您可以让他变成 <辣条>  然后,它的名字就是 <辣条>
假如你想出售给玩家满血治愈的效果,那么你只需要设置为 <治愈> 之后通过指令执行 heal 就行了。

<RewardType>
这里用来设置玩家通过购买一个物品后,支付了所需的物品,获得的物品设置,现有的给予玩家物品类型:
指令 Command
权限 Permission
定时指令 (<等待的时间>:<指令>. 那指令就会在等待的时间到达后执行指令。) TimeCommand
钱数(数字) Money
点券(数字) Points
商店 (商店的名称,打开由BossShop为主的其他菜单) Shop
以玩家的权限来执行指令 PlayerCommand
蹦极服传送到其他的服务器(一个服务器的名称,将玩家传送到其他服)

若您想执行指令,那么就是
RewardType: 'command:heal'
以此类推

<PriceType>
价格的类型,玩家如果要购买那个物品,那么就需要价格,现有的价格类型:
Money (数字)
Points (数字)
Exp (数字)
item (需要的物品)
Free (免费获得)

如果您想免费出售泥土,那么您可以:
  1. PriceType: 'free'
复制代码


<Price>
用来设置你已经通过 PriceType 的类型,那么你就需要设置需要多少个东西
如果我们设置了PriceType: 'Money' 就是花钱来购买这个物品
那么我们设置 Price: '1' 就是花1块钱来购买这一个物品。

<Reward>
当玩家成功购买了此物品,执行的东西
它可以为一个数字、多个权限、多个指令

若当人购买了该物品,您想让玩家被治愈
那么您可以在此行设置:
  1. Reward: 'heal %name%'
复制代码

%name% 就是购买的玩家的名字

<Menuitem>
这是在菜单内经常见到的,就是你需要出售的一个选项,您可以自定义它的名字、Lore、耐久、附魔等,详情请参阅“高级物品”一章
如果我们要出售1个泥土,那么就是:
  1.     MenuItem:
  2.     - 'type: DIRT' #物品类型
  3.     - amount:1 #数量
复制代码

也可以编辑它的名字或者是Lore
  1.     MenuItem:
  2.     - 'type: DIRT'
  3.     - amount:1
  4.     - name: '泥土'
  5.     - lore: '&d&l泥土 &c&l价格:&6&l1块钱'
复制代码

注意:物品的类型必须是像 DIRT 、 DIAMOND_BLOCK 、 IRON_BLOCK 这样的英文名

<Message>
就是玩家购买后给玩家发送的信息,如果你不想给玩家发送信息,那么就设置为''

变量:
%player% 触发者的名字
%itemname% 物品名
%rewardtype% 显示奖励
%reward% 奖励类型
%pricetype% 价格类型
%price% 显示价格

例如:
"&1您购买了泥土! &c您还需要 %left% 才能升到下一级"
治愈玩家 需要Ess 插件或者其他插件的支持
这些信息通常会被Ess发送,所以你留空即可。

<InventoryLocation>
将你出售的物品放在菜单的一个指定的地方,第一行有1 2 3 4 5 6 7 8 9 第二行就是10 11 12 13 14 15 16 17 18 以此类推
泥土很重要!让我们把它放在第一个,来,填上1
至于治疗?谁没事到处去打架?把它放到最后,填上27

<ExtraPermission>
无权限,不购买。这个功能可以帮助你让玩家们氪金
泥土对于普通玩家而言太重要了!我们必须让氪金过的VIP才能购买。所以让我们在这儿填写 VIP.BuyDirt ,然后把这个权限分给VIP
每个人都有医治的权利!把它留空。

<ServerPinging>
想要了解此项,请访问ServerPinging一章

完事~
如果您能遵循这个格式
全部配置完毕后,安装上这一个菜单配置文件 然后输入 bs reload (重载插件) 之后输入 bs 即可打开啦~


符号

你能在所有BossShop文档里面使用符号 (物品名,物品介绍,信息,等等).



例子:

name:&6PointShop &a[v]


鸣谢

主要翻译者贡献度折算比
@Smokey_Days 123 45%
@407 77 28%
@Auange_M夜幕 61 22%

次要翻译者贡献度折算比
@迷の十六 12 0.4%

分工
BS Main Smokey_Days
Symbols Smokey_Days
ItemData Smokey_Days
PlaceHolders 迷の十六
Setup Guide 407
Metrics Smokey_Days
Overlapping Item System Smokey_Days
Sever Pinging 407
Configuration Auange_M夜幕
Default Shop Auange_M夜幕
FAQ Smokey_Days

同时感谢PCD各成员在翻译过程中提出的宝贵意见!

[groupid=1330]PluginsCDTribe[/groupid]