# 1.1 - 插件的选择：从经济插件开始

什么，上来就提及插件的选择是不是太快了？是的，所以，我想告诉你一个服务器框架，而任何服务器的框架离不开插件的选择，这是这个框架组成的重要因素。首先，我来告诉你这个框架的第一个名词：**经济**。

## 解释：经济

在本教程中，像 **金币、点券** 这样的货币组成的一系列玩法和机制，我们都叫它经济。

## 插件选择：Vault

大部分服务器和经济插件所使用的经济 **API** 插件。听着有些绕口，说明白点，就是：是个服，它只要用经济插件，基本上离不开这个插件。

我们需要再提及一个新的名词：**API 插件**。

### 解释：**API 插件**

**API** 插件就是很多人喜欢叫的“前置插件”，**API** 插件的功能就是一个超市，其他插件在这个超市中各取所需，完成对应的工作。

**纯 API 插件** 本身往往对服主来说是不提供任何功能的，也就是说它只是超市本体，如果你想要在这个超市买到想要东西，你还需要一个拥有实际功能的插件帮助你，充当打工人的身份。

说明白点，就是：光一个 **Vault** 插件还不行，你还需要一个与其挂钩的经济插件。

我们再提及一个新的名词：**挂钩**。

### 解释：**挂钩**

挂钩在英文原注一般为 **hook**。挂钩正如其名，两个插件中间有一个钩子，使其能够互相交流，融为一体。

在这里，说明白点，我们需要一个与 **Vault** 互相交流、融为一体的经济插件，因为并不是所有经济插件和 **Vault** 挂钩的。

它们很难找吗？不，让我推荐一些吧：

* 首先，诸如 **CMI、EssentialX** 这样的基础插件往往自带经济功能，并且也是和 **Vault** 挂钩的。
* 如果你目前不知道上面所说的基础插件到底是什么，那么前期你还可以用独立的经济插件。国内大家用的比较多的是 ：<https://github.com/YiC200333/XConomy>
* 如果你打算你的服务器不止金币和点券这些传统货币，还要有其他的货币，可以试试这个多货币插件，其中一种货币可以与 Vault 挂钩：<https://github.com/SoKnight/PEconomy>

### 小技巧：GitHub 的介绍和在其上下载插件

我们首先向你介绍整个教程为你带来的第一个网站：**GitHub**。

**GitHub** 是世界上最大的代码共享网站之一，服务端插件正是由代码组成的，因此服务端插件们出现在 **GitHub** 网站是不足为奇的一件事情。

我们以向您推荐的第二个经济插件为例，介绍 **GitHub** 网站对您来说，应该如何使用：

<figure><img src="https://400373137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFlP4xP4pRQ4Bt9AMcMkX%2Fuploads%2F6PWwg0S3fX8jlRQNXykw%2FQQ%E5%9B%BE%E7%89%8720230125131351.png?alt=media&#x26;token=cd0b170a-4977-48d4-a39a-c9cf7759b087" alt=""><figcaption></figcaption></figure>

图标1：Issues，这往往是你向插件作者反馈插件存在的问题时的地方。

图标2：Releases，这往往是插件作者发布插件版本号的地方。

图标3：Actions，一些作者可能会在 **GitHub** 假设自动构建，这样的话作者每次做出更改，你都可以在这里下载最新的测试版本，不过需要登录 **GitHub** 账号。不过这个示例中，我们打开以后是如下图的页面，这代表作者并没有这么做。

<figure><img src="https://400373137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFlP4xP4pRQ4Bt9AMcMkX%2Fuploads%2FrSqBrbK7vdUnDDCXAVlJ%2F%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-01-25%20131715.png?alt=media&#x26;token=3960aafd-9798-43f3-8a29-f637a349f383" alt=""><figcaption></figcaption></figure>

我们稍微偏题一下，在这个项目中，作者提供了自动构建的功能，那么我们就可以下载作者最新做出的修改后的版本，快速体验新功能（bug）了。

<figure><img src="https://400373137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFlP4xP4pRQ4Bt9AMcMkX%2Fuploads%2FLKBNPu4vRJDb35Z20gZM%2FQQ%E5%9B%BE%E7%89%8720230125131843.png?alt=media&#x26;token=330bb3cc-927e-429c-a17e-df1d26a6c1b4" alt=""><figcaption></figcaption></figure>

回到正题，我们再来介绍一下如何下载插件：

<figure><img src="https://400373137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFlP4xP4pRQ4Bt9AMcMkX%2Fuploads%2Fl55duHnYTUqcis8qYyVL%2FQQ%E5%9B%BE%E7%89%8720230125132117.png?alt=media&#x26;token=cf9a1bb9-f99f-4ccd-87c2-34deafcb3c80" alt=""><figcaption></figcaption></figure>

打开上面所说的图标2的页面，然后找到最新的版本后，点击如图箭头所指的文件即可。文件名称带有 **-source、-javadoc** 等的，是插件开发者们使用的，服主们无需理会即可。

而回到我推荐的第一个插件，由于其是多平台插件，所以可以根据后面的插件平台选择，我们是 **Bukkit** 系服务端使用者，选择 **Bukkit** 末尾的文件即可。

<figure><img src="https://400373137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFlP4xP4pRQ4Bt9AMcMkX%2Fuploads%2FaJlgZ2puKIYP6uoMkA1g%2FQQ%E5%9B%BE%E7%89%8720230125132334.png?alt=media&#x26;token=414e8493-8952-4042-99f5-3bb960b02c4c" alt=""><figcaption></figcaption></figure>

### 明白一些：使用 Vault 这个 API 插件的意义

说了这么多，你可能还是不明白，**Vault** 这个 **API** 插件真的有必要装吗？

我们先假设你的服务器货币只能在系统商店使用，玩家可以通过回收物品赚得金币，购买物品消耗金币。要实现这个功能，我们往往需要一个经济插件和一个商店插件。

但是，问题便出现了：市面上的商店插件不止一个，经济插件也不止一个，作为商店插件的开发者，我到底要和哪个经济插件挂钩，我的插件才能有更多的人使用便是一个很大的问题。

如果你学过一点经济方面的知识，此时就明白了：**Vault API** 的功能就是充当现实生活中的货币的作用，商店插件和经济插件由原来的“物物交换”转变为了“货币交换”。

你的服务器货币不止商店一个用途，要想很多功能都用到货币，**API** 插件的功能就不可少了。

## 插件选择：PlayerPoints

上文提了这么多，我们来介绍第二种经济插件：独立类型的经济插件。这种经济插件就是各干各家，不理会 **Vault API**。最具代表就是 **PlayerPoints**，很多服务器的点券插件都是靠它了。

我们还是假设你在商店插件要用到它，那么商店插件到底支不支持它呢。这就需要根据商店插件的介绍来判断了，作者需要在插件介绍页面明确指出该插件支持 **PlayerPoints**，否则该商店插件就不能和 **PlayerPoints** 挂钩，就不能使用点券购买商店里面的物品了。

### 小技巧：Edge 浏览器查找功能

使用键盘，同时按下 **Fn + F3** 两个按键，浏览器右上角将会弹出一个搜索框，在一个商店插件的介绍页面搜索 **PlayerPoints**，我们就可以在 **1** 秒钟之内知道这个商店插件到底支不支持 **PlayerPoints** 了。

<figure><img src="https://400373137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFlP4xP4pRQ4Bt9AMcMkX%2Fuploads%2FONBDdYWXycGwzVqmLdpz%2FQQ%E5%9B%BE%E7%89%8720230125133241.png?alt=media&#x26;token=d7ff6d29-b87a-4da1-94a2-c39724262cde" alt=""><figcaption></figcaption></figure>

很明显，通过该小技巧查找某个商店插件的介绍页面，发现其支持 **PlayerPoints**。

### 小技巧：SpigotMC 的介绍和在其上下载插件

上文已经介绍了 **GitHub**，这是一个代码共享网站，而代码项目可谓千千万万种类型，在这成千上亿的项目中找到一个 **Bukkit** 系服务端插件还真的是不容易，所以我们需要了解一下第二个网站：**SpigotMC**。

**PlayerPoints** 项目的 **GitHub** 地址是：<https://github.com/Rosewood-Development/PlayerPoints>

打开以后，当你下载插件，发现图标2区域竟然是空的！这如何解决呢？

<figure><img src="https://400373137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFlP4xP4pRQ4Bt9AMcMkX%2Fuploads%2FcsWbVGlNqPSLM9uyLwL2%2F%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-01-25%20133553.png?alt=media&#x26;token=6f6126be-6148-4df3-9786-77c7de3a8219" alt=""><figcaption></figcaption></figure>

解决的办法就是 **SpigotMC**，**SpigotMC** 是 **Spigot** 服务端的官方网站，配有一个资源中心，你可以在其中下载各种 **Spigot** 的服务端插件，其中就有 **PlayerPoints** 的身影。

<figure><img src="https://400373137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFlP4xP4pRQ4Bt9AMcMkX%2Fuploads%2FwuNcpgXQne3peXoKXOEo%2F%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-01-25%20133928.png?alt=media&#x26;token=18d83a95-aa4d-4e96-a704-8863a5e70606" alt=""><figcaption></figcaption></figure>

**PlayerPoints** 项目在 SpigotMC 上的地址是：<https://www.spigotmc.org/resources/playerpoints.80745/>

我们可以点击箭头所示按钮下载插件，这里又要介绍新的单词：download（下载）、now（现在），组合起来可以翻译为“立即下载”。

## 本节小结

现在，你的服务器应该有如下 3 个插件了：

* Vault
* 任意一个与 **Vault** 挂钩的插件
* PlayerPoints

现在，你应该知道如何从下面 2 个网站下载插件了：

* GitHub
* SpigotMC

## 小技巧：在 SpigotMC 上搜索插件

**GamePoints** 是一个与 **PlayerPoints** 类似的插件，其也是独立类型的经济插件。如果你想要你的服务器有 **2** 个点券货币，不妨再加上它，不过在此之前，我们先要找到它！

你或许注意到了 **SpigotMC** 右上角有一个搜索框，尝试搜索以后，我可以告诉你，它们都不是 **GamePoints** 插件地址。

<figure><img src="https://400373137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFlP4xP4pRQ4Bt9AMcMkX%2Fuploads%2FTXD2qlcEOtVFZuI2GKLt%2F%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-01-25%20134352.png?alt=media&#x26;token=4c404204-a424-45be-a6b0-d2ff7d5146ea" alt=""><figcaption></figcaption></figure>

解决办法就是搜索引擎，你可以使用必应搜索，在搜索框中输入“插件名称 site:spigotmc.org”，例如 **GamePoints** 就是“GamePoints site:spigotmc.org”，效果如图，第一个就是正确结果。（其实 MCBBS 也是同理）

{% hint style="info" %}
笔者注：由于本文写的前后时间较长，在文章发布的时候，GamePoints已经迭代升级为了CoinsEngine，你可以根据此教程的示例为模板，自己搜一下这个新版插件吧。
{% endhint %}

## 经验：Vault 基础的经济和 PlayerPoints 的简易使用教程

* /money give 玩家名称 数量 —— 给予玩家金币，不支持离线玩家
* /money set 玩家名称 数量 —— 将玩家金币设置到一定值，支持离线玩家

以上两个指令的 `money` 是根据你所选的经济插件而决定的，一般来说就是 `money`。

* /points give —— 同理，点券
* /points set —— 同理，点券
