# 关于

**Superior™ v5** 分为本体和 **Expansion Pass**。

本体以原版的原汁原味生存玩法为主，后者则是以资源包拓展的自定义物品、方块、家具、生物等在原版实现 Mod 化生存玩法为主。

服务端以学习为主要目的，实际运营为辅。您若进行实际运营前，可通过本 Wiki 快速上手服务端，做出自己想要的效果。

祝最后一路顺心。

服务端作者QQ: 1686965528。


# 首次运行

## 要首次运行 Superior™ v5，您需要做出如下准备：

* Windows 10 或者 Windows Server 2012 更高的版本。
* Java 17。
* Notepad++ 软件。

{% file src="/files/ujFXEDUgvKPMcnQKEbzy" %}
点击上方下载 Notepad++ 软件
{% endfile %}

## Java 17 的安装

{% embed url="<https://docs.microsoft.com/en-us/java/openjdk/download>" %}
点击上方下载 Java 17
{% endembed %}

如果你对 **Java** 安装一无所知，那么，点击图中所圈的链接，下载好跟正常软件安装几乎一样，傻瓜式操作。

![](/files/1SaNxYWElYdujbylCpox)

## 启动脚本的编写

服务端根目录下有 `启动.bat` 文件，使用 **Notepad++** 软件编辑它。

自带的启动脚本中的启动参数是最基本的，仅仅是开服的命令，要想优化、稳定的运营，你必须结合自己实际情况编写自己的启动参数。

**Superior™ v5** 售后服务不包括此项目，请自行学习。

{% embed url="<https://www.mcbbs.net/thread-867786-1-1.html>" %}

此后可以点击 **启动.bat** 文件开启服务端。

## 精英怪物副本

服务端自带精英怪物玩法，但默认情况下没有启用。如果您喜欢这个玩法，请：

* [点击这里](https://www.spigotmc.org/resources/%E2%9A%94elitemobs%E2%9A%94.40090/) 下载最新版本的精英怪物插件。
* 将 **Superior™ v5 (本体)** 售后QQ群内的 **群文件** 的 **前置包** 文件夹的 **Superior EliteMobs Map.zip** 文件下载下来并放入服务端的根目录。
* 在服务器内输入指令 /mv import <世界（文件夹）名称> normal 以导入世界。其中 em\_dark\_spire 为下界，需要将 normal 改为 nether，em\_binder\_of\_worlds 为末地，需要将 normal 改为 end。
* 输入 /em reload 重启服务器。

## 创建世界

为减少服务端大小，也避免所有服主开的服务器的地图种子都是同一个，所以服务端不自带锁存地图。在开服后依次输入以下指令以创建世界：

* /mv create survival normal
* 在 survival 世界输入 /rs set spring 设置季节（/mv tp survival 以传送）
* /mv create nether nether
* /mv create end end

## 大功告成！

你的首次启动服务端应该已经完成，若有问题，请联系我们的服务支持人员。不过我们还建议您进行如下操作：

* [预加载服务器地图](/gai-lan/you-hua-gai-lan#yu-jia-zai-nin-de-fu-wu-qi-di-tu)。

## 关于 Expansion Pass

请 [点击这里](https://setup.superiormc.cn/v/expansion-pass/kai-shi/shou-ci-yun-hangewai-de-bu-zhou) 查看您额外需要执行的操作。

## Geyser

Superior™ Team 为您准备了 Geyser 具体详细的使用教程：[点击查看](https://docs.superiormc.cn/geyser-wiki/)。


# 替换信息

## 常见信息替换位置

* 计分板：`plugins/TAB/config.yml`
* TAB：`plugins/TAB/config.yml`
* 浮空字（全息字）：`plugins/DecentHologram/holograms 文件夹`&#x20;

## 替换方法

使用 **Notepad++** 软件打开服务端内任意一个 .**yml** 文件，点击该软件上方的搜索按钮，再点击 **查找**。按图所示填写信息并完成操作：

![](/files/GM1vjJfIjCak13kNF1j2)

特别注意文件类型、目录两栏我怎么改的，你怎么写，目录应该是你服务端实际所在的目录，到plugins文件夹。（别有憨逼这个还抄我）


# 更新

## **主要更新与次要更新**

**Superior v5** 的更新分为 **主要更新和次要更新**。如果发生了一次 **主要更新**，那么 **Superior v5** 版本号的第二位将会发生变化（例如：v.5.1 -> v.5.2）；如果发生了一次 **次要更新**，那么 **Superior v4** 版本号的第三位将会发生变化（例如：v.5.0.1 -> v.5.0.2）。每个主要更新的第一个版本的第三个数字默认为 0，且一般会被省略（例如 **v.5.5** 的第一个版本号实际为 **v.5.5.0**，但我们会把最后面的 0 省去）。

## 了解 Superior Update™

**Superior Update** 旨在方便您更快的更新 **Superior v5** 服务端。每次更新我们会通过 **Superior Update™** 形式推送给已购买的用户。

## 如何使用 Superior Update™？

### 停止运行您的 Superior v5 服务端

请先在服务器控制台输入指令 **stop** 以停止您的服务端，请勿直接叉掉服务端或者使用 **kill** 指令强制关闭服务端，这会造成一些数据保存问题。

### 下载 Superior Update™ 压缩包并检查其应该替换服务端哪里的文件

在没有特别说明的情况下，**Superior Update**™ 压缩包都是基于服务端的 `plugins` 文件夹进行替换，您只需将压缩包放置到 **任意** 文件夹并解压缩，将解压缩的文件夹内的文件全部复制并替换到服务端的 `plugins` 文件夹内。如有特殊情况，**Superior Update**™ 会有相应的提示文件。

如果 **Superior Update**™ 包含多个文件夹，且不是 `plugins` 文件夹或者又包含 `plugins` 文件夹，又包含其他名称的文件夹，则直接将 **Superior Update**™ 复制并替换到服务端的 **根目录**（即服务端核心所在的目录）。替换时要注意是替换除 **.db** 格式外的其他所有文件，**如果出现该格式文件的替换提示，请务必选择否！**

### **小心，别把自己服务端的数据给替换了！**

如果你自己修改了某个插件的配置，那么在更新时务必留意此次更新是否包含此插件的配置，**如果是的话，请一一对照，手动修改插件配置文件，不要替换，否则你自己修改的内容将会丢失**！

一般情况下，你只需要看每个文件最后修改日期，离服务端更新日期最近的文件一定是被修改的，你只需检查这些文件即可。


# 插件概览

## 概览说明

* 付费插件通过 `*` 标注，推荐您自行额外购买。
* 概览排序通过字母进行。
* 概览基于 `v.5.2.4` 版本制作，若存在过时可联系服务人员进行更新。

## 概览列表

### Adapt\*

技能玩法。

### AdvancedEnchantments\*

高级附魔玩法。

### ajLeaderboards

排行功能。

### AngelChest\*

天使之箱玩法。

### BetterRTP

随机传送功能。

### BetterStructures

更多遗迹生成功能。

### Boombox

音乐盒玩法。

### ChatBubbles

聊天气泡功能。

### ChestSort

箱子整理功能。

### Citizens\*

NPC。

### CMI\*

基础插件。经济、传送、电梯、聊天等全套它。

### CMIEInjector

CMI 与 Vault 挂钩。

### CMILib

前置插件。

### ConditionalEvents

购买音乐盒、陷阱盒使用。

### DeadlyDisastersPRO\*

天灾玩法。

### DecentHolograms

浮空字。

### EliteMobs

精英怪物玩法。

Superior™ Team 为您准备了该插件的具体详细使用教程：[点击查看](https://docs.superiormc.cn/elitemobs-wiki/)。

### EnderContainers

存储功能。

### ExcellentCrates

抽奖箱玩法。

### FastAsyncWorldEdit

创世神。

### Interactions\*

NPC 对话功能。

### Iris\*

主世界地形生成器。

### Jobs

职业玩法。

### JoinCommands

加入执行指令。限制玩家未前往对应世界无法随机传送也是通过该插件实现。

### Jumpscares\*

恐惧玩法。

### LuckPerms

权限组插件。

### Markets\*

市场插件。

### Multiverse-Core

多世界插件。

### Multiverse-NetherPortals

下界传送门绑定插件。

### NekoTraps\*

陷阱箱。

### NexEngine

前置插件。

### NoteBlockAPI

前置插件。

### PlaceholderAPI

变量符。前置插件。

### PlayerPoints

点券插件。

### PlayerTitle

称号插件。

### PlotSquared

地皮插件。

Superior™ Team 为您准备了该插件具体详细的使用教程：[点击查看](https://docs.superiormc.cn/plotsquared-wiki/)。

### ProtocolLib

前置插件。

### Quests

任务插件。

### RealisticSeasons\*

季节插件。

### RealisticVillagers\*

自定义村民插件。

### ServerTours\*

新手教程插件。

### TAB

计分板、Boss血量条、玩家头顶显示等插件。

Superior™ Team 为您准备了该插件具体详细的使用教程：[点击查看](https://docs.superiormc.cn/tab-wiki/)。

### TheSearch\*

五福收集活动插件。

### TrMenu

菜单插件。

### Vault

前置插件。

### Vegas

游戏机插件。

### VoidGen

虚空世界生成器。

### WorldGuard

世界及区域保护插件。


# 优化概览

## 预加载您的服务器地图

服务端给各个世界增加了大量可探索的生成内容，这些内容生成时需要较于原版更多的 **CPU** 性能。我们非常建议您在实际运营前给服务器的 `survival、nether、end` 地图进行预加载。

预加载的范围不应该低于 **1万 x 1万**，但也不建议大于 **2万 x 2万**。

预加载地图需要您的服务器安装 **Chunky** 插件。[点击这里](https://www.spigotmc.org/resources/chunky.81534/) 以下载。关于它的用法可以在 [这里](https://www.mcbbs.net/thread-1108961-1-1.html) 查看。

**Superior™ v5** 售后服务不包括此项目，请自行学习。

## 减少实体生成

打开服务端的 bukkit.yml 文件，找到并配置如下内容：

```
spawn-limits:
  monsters: 70
  animals: 10
  water-animals: 5
  water-ambient: 20
  water-underground-creature: 5
  axolotls: 5
  ambient: 15
```

适当减少各个数字可以减少实体生成。

## 摒弃部分消耗较大的软件

* [BetterStructures](/gai-lan/cha-jian-gai-lan#betterstructures)。
* [DeadlyDisastersPRO](/gai-lan/cha-jian-gai-lan#deadlydisasterspro)。
* [EliteMobs](/gai-lan/cha-jian-gai-lan#elitemobs)。


# 世界概览

世界全部储存在服务端根目录中，其中：

* `world` 为大厅世界（即玩家进服所在的世界）。
* `survival` 为主世界。
* `nether` 为地狱。
* `end` 为末地。
* 替换地图时应该按照以上命名规则替换，如果世界名称发生变化将会导致服务端大部分与世界有关的玩法、机制失效。例如 VIP 玩家将可以非法飞行、世界保护将会失效等等。
* 以 `em_` 开头的均为精英怪物副本地图，删除 EliteMobs 插件时应当将此类世界一并删除。


# 指令概览

我们建议您通过 **/?** 指令来一步步、一个个学习所有指令是干什么的、怎么用的，这样才对你对 Superior 使用更有帮助。（?是英文的问号）

## 多世界

### /mv import 世界名称 维度类型 —— 加载一个世界

将你需要导入到服务器的世界，解压并放置在服务端的根目录&#x4E0B;**（也就是和 启动.bat 所在的同一个地方）**。世界名称即是文件夹名称，请不要使用 **中文、空格和其他奇奇怪怪符号**，全英文和数字，否则会导致很多意想不到的问题！

维度类型有 3 种：**normal（主世界）、nether（下界）和 end（末地）。**

### /mv tp 世界名称 —— 传送到一个世界

这个传送指令是给服主用的，如果想给玩家设置定点传送，那么请使用 **/setwarp 传送点名称** 指令，这样玩家就可以使用 **/warp 传送点名称** 指令传送到那里。

### /mv create 世界名称 维度类型 -g 生成器名称 —— 创建一个世界

-g后面（包括 -g）的可以删除，这样就直接使用原版生成器。

## 经济

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

## 权限组

### /lp editor —— 打开权限组网页编辑器

使用该指令后插件会发给你一个链接，你可以在网页内可视化管理你的权限组和权限节点，非常方便。

### /lp user 玩家名称 parent add 组英文ID —— 给予玩家一个权限组

这个指令代表给玩家新的一个权限组，旧的权限组同时也在。同样是上面这个指令，将 add 改为 set 则代表将这个玩家设置到新的权限组，玩家旧的权限组不复存在。

由于本端设置了 parentGroup 功能，并且很好发挥了 weight 规则：weight 越高，也就是上面那个表越往下的组，它一定会携带上面所有权限组的权限，因此本端 add 和 set 给予玩家权限组没有什么区别，但是在其他制作不严谨的服务端或者专门利用这个特性制作一些规则的服务端，如果你权限组指令没打对，会出大问题。

### /lp user 玩家名称 parent addtemp 组英文ID 时间数 —— **给予一个玩家临时的权限组**

时间数如何表示？1d = 1天，30d = 30天，1mo = 1月，1h = 1小时... 还不懂建议看一下脑科。如果你一不小心给错了玩家权限组，怎么撤回？千万不能说直接把玩家权限组删了，否则玩家权限组没了啥也干不了。用上面的 set 指令，引导玩家到他原来的组里面。

### /lp group 组英文ID permission set 权限节点 true —— **给一个组添加一个权限节点**

将 **true** 替换为 **false**，则代表这个权限组一定没有这个权限，尽管插件设置了所有玩家默认都有这个权限节点的权限，如果这里是 **false**，也会被强制替换为 没有权限。


# TAB (计分板/TAB等)

[tab.superiormc.cn](https://tab.superiormc.cn)


# EliteMobs (精英怪物)

[elitemobs.superiormc.cn](https://elitemobs.superiormc.cn)


# PlotSquared (地皮)

[plotsquared.superiormc.cn](https://plotsquared.superiormc.cn)


# ItemsAdder (E.P.主)

[itemsadder.superiormc.cn](https://itemsadder.superiormc.cn)


# 关于

Expansion Pass 在 Superior™ v5 本体基础上添加若干玩法。添加的玩法以资源包拓展的自定义物品、方块、家具、生物等在原版实现 Mod 化生存玩法为主。


# 转换数据

此篇仅需此前使用 Superior™ v5 本体，后续添加使用 Expansion Pass 服主查看。

在购买 Expansion Pass 后会重新再次发送一次主服务端，如果需要以前主包服务端的数据，需要进行如下操作:

* 在两个服务端根目录下同时搜索.db，将原服务端搜索出的所有结果剪贴并替换到新服务端结果处。请注意是剪贴(也就是移动)，需要保证在此操作后新端内再次搜索.db无任何搜索结果。&#x20;
* 将新端不带.db搜索结果的plugins文件夹替换到旧端中。有重复文件全部替换。&#x20;
* 将旧端world/playerdata文件夹复制到新端对应位置，然后将旧端world文件夹删除，将新端world文件夹复制过去。&#x20;
* 完成操作，再次开服。


# 首次运行额外的步骤

修改 ItemsAdder 资源包端口

如果您的 **VPS或者面板** 不是 **全端口开放**，那么您需要打开 **plugins/ItemsAdder/config.yml** 并找到如下内容：

```
resource-pack:
  hosting:
    no-host:
      enabled: false
    auto-external-host:
      enabled: false
    self-host:
      enabled: true
      server-ip: 127.0.0.1
      pack-port: 8164
    external-host:
      enabled: false
      url: ''
      skip-url-file-type-check___DONT_ASK_HELP_IF_SET_TRUE: false
```

将 `server-ip` 的 `127.0.0.1` 修改为你的外网 IP（即进入你的服务器输入的IP）。将 `pack-port` 的 `8164` 修改为外网可以访问到的端口值。

## 将服务器的 "服务器资源包" 选项改为启用

点击服务器，点击下方编辑按钮，将此选项打开。

![](/files/Sh2u1LBwh7MFUwV4hunp)

## 将客户端的 "强制使用 Unicode 字体" 关闭

进入主菜单，点击选项，再点击语言，关闭此选项即可。

![](/files/JzjLtxQo1drnss0IY8Op)


# 欢迎

感谢您选择 **Superior™ v4**。


# 开服准备

## Java 17 安装

要使用 **Superior v4**，您应该在您的设备上安装 **Java17**。

{% embed url="<https://docs.microsoft.com/en-us/java/openjdk/download>" %}
微软提供的 JDK17 下载地址
{% endembed %}

如果你对 **Java** 安装一无所知，那么，点击图中所圈的链接，下载好跟正常软件安装几乎一样，傻瓜式操作。

![Windows 萌新可以直接点这个安装](/files/ThyDfga6kK9feadcUKoR)

## 修改服务端内的敏感信息

服务端有关我个人服务器的敏感信息位置分布如下：**plugins/Tab/config.yml** 内修改计分板信息；**plugins/Tab/config.yml** 内修改 **Tab** 信息；**plugins/DecentHologram/holograms 文件夹**  内修改浮空字信息。

## 将 Superior 字样替换成你的服务器名称

我们建议您使用 **Notepad++** 软件进行该操作，用 **Notepad++** 软件打开服务端内任意一个 **yml** 文件，点击该软件上方的搜索按钮，再点击 **查找**。按图所示填写信息并完成操作：

![特别注意文件类型、目录两栏我怎么改的，你怎么写，目录应该是你服务端实际所在的目录，到plugins文件夹。（别有憨逼这个还抄我）](/files/LdkR8qoHQMCUIXrqOiyB)

## 开始运行服务端

点击 **启动.bat** 即可开始运行。

## 在部分世界开启死亡不掉落

输入指令 **/mv tp survival** 前往主世界，在当前世界输入指令 **/gamerule keepInventory true**。

类似地，输入指令 **/mv tp Plot** 以在地皮世界开启死亡不掉落。本端死亡不掉落并不是真的不掉落，而是扣除物品耐久值和玩家经验值。

## Geyser

你可以通过 **Geyser** 使得基岩版玩家加入你的服务器。请注意我们不对 **Geyser** 提供任何售后指导服务。

{% embed url="<https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master>" %}
Geyser 下载地址
{% endembed %}

[点击这里](https://docs.superiormc.cn/geyser-wiki/) 以前往由 **SuperiorMC** 团队翻译的 **Geyser Wiki**。

同时，为了更好服务各位。我们向各位提供 **基岩版免密码登录和基岩版反作弊检测** 支持。但您需要额外安装 **Floodgate**，本服务端已自带 **Floodgate** 插件。

* 如果您是在 **BungeeCord** 等群组服使用 **Superior**，且使用 **Geyser** 插件版则您需要在群组服端额外安装 **Floodgate**，且将此 **Floodgate** 生成的 key.pem 复制到子服 plugins/Floodgate 目录下。
* 如果您使用 **独立版Geyser**，请将 **Floodgate** 生成的 **key.pem** 复制到 **Geyser端** 所在的根目录下。


# 插件概览

我们这里为您提供服务端各个插件的概览。如果你删除了其中插件，那么你可以通过这里的提示，修改其他位置与该插件有关的内容，以避免你的服务器出现过时的提示内容。

带有 **^** 符号的是付费开源插件，您可以自由构建这些插件或者付费购买。带有 **\*** 符号的是付费插件，您需要付费购买。本端虽然也提供这些插件，但如果一旦被作者发现，所有付费插件都不可用，风险很大。**所以建议各位在有能力情况下，自行购买。**

~~**ActionWords：**&#x52A8;作语言，在玩家进行各个操作时周围出现一个瞬时浮空动画。~~（已删除）

**ajLeaderboards：**&#x6392;行榜，用于统计菜单内的各个数值的排行展示，也可用于浮空字等排行榜显示。

**ajParkour：**&#x65E0;限跑酷，用于游戏菜单内的跑酷游戏。

**\*AlonsoTagsPro：**&#x79F0;号。用于称号菜单和聊天内的称号展示，在计分板亦有显示。

**AngelChest：**&#x5929;使之箱。

**AnvilRepair：**&#x94C1;砧修复，用于机制菜单内的铁砧机制。

**AureliumSkills：**&#x751F;存技能，用于技能菜单。

**AutoComposter\*：**&#x81EA;动堆肥桶，用于合成菜单中的自动堆肥桶合成。

**AutoPickup：**&#x81EA;动拾取，用于功能菜单中的自动拾取和自动熔炼功能。如果你修改了这种功能插件，还需要修改等级菜单中对于各个会员等级的描述，在此不再累述。

~~**AxePumpkin：**&#x65A7;子南瓜，用于机制菜单中的南瓜机制。~~（已删除）

**BalancedVillagerTrades：**&#x5E73;衡化的村民交易，如需删除，必须在第一次开服之前进行。**一旦开服，就不能再进行删除。**

**BestTools：**&#x81EA;动切换工具，用于功能菜单中的自动切换工具功能。

**BetterKeepInventory：**&#x66F4;好的死亡不掉落。

**BetterLogStrip：**&#x65B0;增树木系列装饰方块的合成。

**BetterProfiles：**&#x53F3;键打开玩家个人页面。

**BetterRTP：**&#x968F;机传送，用于传送菜单中的各个生存世界的传送。

**BetterTridents：**&#x66F4;好的三叉戟，用于机制菜单中的三叉戟机制。

**ChestProtect：**&#x9501;箱子，用于保护菜单。

**ChestSort：**&#x7BB1;子整理，用于功能菜单中的箱子整理功能。

**Citizens：**&#x4E;P&#x43;**。**

**CMI\*：**&#x57FA;础。服务器很多方面都用了该插件，请勿随意删除和修改其中的配置文件。

**CMIEInjector：**&#x524D;置插件。

**CMILib：**&#x524D;置插件。

**CopperOxidizer：**&#x94DC;加速氧化。用于机制菜单中的铜块机制。

**CoralStay：**&#x5728;地皮世界珊瑚不会脱水死亡。

**CustomCrafting\*：**&#x81EA;定义合成。用于合成菜单内部分物品的合成。

**CustomWings：**&#x81EA;定义翅膀，用于装饰菜单中的翅膀特效。

**DeluxeMenu：**&#x83DC;单插件。

**DoorReloaded：**&#x66F4;好的门。用于机制菜单中对于门的机制。

**eco：**&#x524D;置插件。

~~**EcoItems^：**&#x81EA;定义物品。用于护身符物品的合成，是它们合成材料。~~

**ElevatorsFree：**&#x7535;梯。用于合成菜单中的电梯合成。

**EliteMobs：**&#x7CBE;英怪物。

**elytradrop：**&#x51FB;杀末影龙获得鞘翅。

**EpicBackPacks：**&#x53F2;诗背包。用于合成菜单中各个背包的合成和功能菜单中的更真实的随身背包。

~~**EpicFurnaces^：**&#x53F2;诗熔炉。用于机制菜单中的熔炉升级机制。~~

~~**EpicHoppers^：**&#x53F2;诗漏斗。用于机制菜单中熔炉升级机制。~~

**EZColors：**&#x804A;天颜色。用于装饰菜单的聊天颜色和聊天中的聊天颜色。

**floodgate-spigot**

**FluffyMachines：**&#x7C98;液科技附属。

**GrindstoneDisabler：**&#x7981;用砂轮。由于精英装备使用砂轮获得的经验值过多，因此使用了该插件禁止。

**HiveChecker：**&#x8702;箱查看。

**HolographicDisplays：**&#x6D6E;空字。

**HolographicExtension：**&#x6D6E;空字附属。可以在浮空字内显示 **Placeholders**。

**InfinityExpansion：**&#x7C98;液科技附属。

**InvUnload：**&#x81EA;动卸载。用于功能菜单中的自动卸载功能。

**item-nbt-api-plugin：**&#x524D;置。

**ItemsAdder\*：**&#x81EA;定义物品、方块。

**Jobs：**&#x804C;业。用于职业菜单。

**JukeBoxPlus\*：**&#x5531;片机菜单。

**Lava\_Annihilator：**&#x8BA9;玩家放置的岩浆没有伤害，用于机制菜单中的熔岩桶机制。

**LibsDisguises：**&#x4F2A;装。用于精英怪物中部分怪物皮肤的显示。

**LightAPI：**&#x524D;置。

**LoneLibs：**&#x524D;置。

**Lootin：**&#x5956;励箱子。

**LuckPerms：**&#x6743;限组。

**MenuMate：**&#x8FDB;服给予菜单钟。

**Multiverse-Core：**&#x591A;世界。

**NoOneFishing：**&#x72EC;家钓鱼。用于钓鱼菜单。

**NoOneRods：**&#x72EC;家钓鱼附属，新增了新的鱼竿。用于合成菜单中各个鱼竿的合成。

**ntdLuckyBlock\*：**&#x5E78;运方块。用于合成菜单中幸运方块合成。

**OhTheDungeon：**&#x5730;牢生成。也是 **地牢** 世界生成的插件，我们隐藏了该功能，并且不建议您透露该功能。

**OSZOAntiWDL：**&#x7981;止 WDL Mod进服。

**OverleveledEnchanter：**&#x7A81;破等级限制的附魔，用于功能菜单中的高级铁砧、附魔书等级叠加功能。

**PlaceholderAPI：**&#x53D8;量前置。

**PlayerPoints：**&#x70B9;券。用于菜单内各个需要消耗点券的地方，在计分板亦有显示。

**PlayerShopGUIPlus\*：**&#x73A9;家商店GUI。用于功能菜单中的玩家商店功能和交易菜单中的玩家商店。

**PlotSquared^：**&#x5730;皮。

**ProtocolLib：**&#x524D;置。

**RealisicReason\*：**&#x5B63;节。

**Reforges^：**&#x91CD;铸。用于拓展玩法菜单中的重铸玩法。

**RePlanet\*：**&#x81EA;动补种。用于功能菜单中的自动补种功能。

**ShopGUIPlus\*：**&#x5546;店GUI。用于交易菜单内的系统商店。

**ShopGUIPlus-SellGUI：**&#x5546;店GUI附属。提供一键回收功能，用于交易菜单中的一键回收。

**shulkerrespawn：**&#x5355;独为潜影贝额外制作新的重生规则，用于机制菜单中的潜影贝机制。

**SleepFixer：**&#x7761;觉加快夜晚速度。

**Slimefun：**&#x7C98;液科技

**Tab：**&#x54;ab和计分板。

**Talismans^：**&#x62A4;身符。用于合成菜单中各个护身符的合成。

**TalismansGUI：**&#x62A4;身符附属，提供GUI功能，用于显示护身符菜单。

~~**Terra：**&#x6CF0;拉世界生成器。（已删除）~~

**Themis：**&#x53CD;作弊，需要floodgate支持。

**TorchGone：**&#x706B;把熄灭机制。

**TradePlus\*：**&#x73A9;家交易。

**trash：**&#x5783;圾箱，用于垃圾箱菜单。

**Tweakin：**&#x751F;存小机制。用于功能菜单、机制菜单内大量的功能、机制。

**U**l**itimateCatacher：**&#x7EC8;极捕捉。用于合成菜单中的捕捉蛋合成。

**UlimateTimber：**&#x91CD;力树。用于功能菜单中的一键砍树功能和等级菜单中VIP特权。

~~**Unstripper：**&#x7ED9;树返上皮。用于机制菜单中上皮机制。（已删除）~~

**UpgradeableSpanwer\*：**&#x53EF;升级刷怪笼。用于刷怪笼升级。

**Vault：**&#x7ECF;济前置。

**VentureChat：**&#x804A;天。

**ViaVersion：**&#x8DE8;版本，允许1.18客户端加入你的服务器。

**VoidGen：**&#x865A;空生成器。

**WaterEx：**&#x6C34;瓶灭火，用于机制菜单中的水瓶机制。

**Wind：**&#x98CE;灾机制。

**wolfyultilities：**&#x524D;置。

**worldedit：**&#x521B;世神。

**worldguard：**&#x4E16;界和区域保护。


# 世界概览

**em\_adventurers\_guild：**&#x5192;险主城，是 精英怪物 进行各种操作的地方，例如提升冒险者公会等级、购买精英装备、出售精英装备、使用各种卷轴、修复精英装备等。

**em\_xxx：**&#x5176;他以 **em** 开头的世界，均是精英副本地图。我们在此不再详细讲述，因为在 副本传送菜单 中，这些世界根据 难度 已经清楚的划分好，且标注了名称。如果您需要了解，则可以 **一个一个传送，通过计分板获得所在世界的副本地图名称**。

**end：**&#x672B;地，也是我们设计的末影龙 BOSS 挑战地，其末地主岛也被我们修改为一个 BOSS 挑战区域，其他各个机制与原版 **末地主岛** 机制相同（例如黑曜石石柱生成、折跃传送门生成）。其 **region** 文件夹内的 **r.0.0.mca、r.0.-1.mca、r.-1.0.mca、r.-1.-1.mca** 是BOSS挑战区域（即末地主岛）的区块保存，在重置末地地图时，不要删除这几个文件。

**nether：**&#x5730;狱。

**otd\_dungeon：**&#x5730;牢世界，隐藏功能，无法关闭。

**Plot：**&#x5730;皮。

**survival：**&#x4E3B;世界。

**terra：**&#x6CF0;拉世界。

**world：**&#x4E3B;城。


# 服务端概览

**cache 文件夹\***：包含官方服务端的文件，是服务端核心启动的根本。

~~**data-storage 文件夹\***：包含粘液科技等插件的数据。~~（该插件在服务端已被删除）

**libraries 文件夹\***：包含部分插件的运行库。

**logs 文件夹**：包含服务端的日志文件。

**plugins 文件夹**：包含服务端插件。

**其他各个文件夹**：是服务端内的各个世界。

**其他文件**：是服务端核心的配置文件等。


# 基础指令

我们建议您通过 **/?** 指令来一步步、一个个学习所有指令是干什么的、怎么用的，这样才对你对 Superior 使用更有帮助。（?是英文的问号）

## 多世界

### /mv import 世界名称 维度类型 —— 加载一个世界

将你需要导入到服务器的世界，解压并放置在服务端的根目录&#x4E0B;**（也就是和 启动.bat 所在的同一个地方）**。世界名称即是文件夹名称，请不要使用 **中文、空格和其他奇奇怪怪符号**，全英文和数字，否则会导致很多意想不到的问题！

维度类型有 3 种：**normal（主世界）、nether（下界）和 end（末地）。**

### /mv tp 世界名称 —— 传送到一个世界

这个传送指令是给服主用的，如果想给玩家设置定点传送，那么请使用 **/setwarp 传送点名称** 指令，这样玩家就可以使用 **/warp 传送点名称** 指令传送到那里。

### /mv create 世界名称 维度类型 -g 生成器名称 —— 创建一个世界

-g后面（包括 -g）的可以删除，这样就直接使用原版生成器。

## 经济

* /money give 玩家名称 数量 —— 给予玩家金币，不支持离线玩家
* /money set 玩家名称 数量 —— 将玩家金币设置到一定值，支持离线玩家
* /em money add —— 同理，精英币
* /em money set —— 同理，精英币
* /points give —— 同理，点券
* /points set —— 同理，点券

## 权限组

### /lp editor —— 打开权限组网页编辑器

使用该指令后插件会发给你一个链接，你可以在网页内可视化管理你的权限组和权限节点，非常方便。

### /lp user 玩家名称 parent add 组英文ID —— 给予玩家一个权限组

这个指令代表给玩家新的一个权限组，旧的权限组同时也在。同样是上面这个指令，将 add 改为 set 则代表将这个玩家设置到新的权限组，玩家旧的权限组不复存在。

由于本端设置了 parentGroup 功能，并且很好发挥了 weight 规则：weight 越高，也就是上面那个表越往下的组，它一定会携带上面所有权限组的权限，因此本端 add 和 set 给予玩家权限组没有什么区别，但是在其他制作不严谨的服务端或者专门利用这个特性制作一些规则的服务端，如果你权限组指令没打对，会出大问题。

### /lp user 玩家名称 parent addtemp 组英文ID 时间数 —— **给予一个玩家临时的权限组**

时间数如何表示？1d = 1天，30d = 30天，1mo = 1月，1h = 1小时... 还不懂建议看一下脑科。如果你一不小心给错了玩家权限组，怎么撤回？千万不能说直接把玩家权限组删了，否则玩家权限组没了啥也干不了。用上面的 set 指令，引导玩家到他原来的组里面。

### /lp group 组英文ID permission set 权限节点 true —— **给一个组添加一个权限节点**

将 **true** 替换为 **false**，则代表这个权限组一定没有这个权限，尽管插件设置了所有玩家默认都有这个权限节点的权限，如果这里是 **false**，也会被强制替换为 没有权限。


# 常见问题

### Q：如何修改世界边界大小？

A：在 server.properties 中找到如下内容：

```
# 世界边界位置
max-world-size=20000
```

将 **20000** 改成您想要的值。我们不建议过大，并且一般情况下玩家在一个月都到不了这里。如果有玩家到达，请考察 TA 是否开挂。


# 出现卡顿解决

如果你在使用 **Superior v4** 时出现 **TPS过低、内存占用过高、客户端卡顿** 等情况，请按照以下方案解决：

## 0. 检查你的服务器配置是否达到最低标准

此内容已在服务端介绍页面公开发布，您如果因此导致的问题，**Superior** 服务团队不对此负责。

| 最低要求        | 推荐要求      |
| ----------- | --------- |
| Intel 10代i7 | AMD 5900x |
| 4GB 内存      | 8GB 内存    |
| 10GB 硬盘     | 20GB 硬盘   |
| 10M 带宽      | 30M 带宽    |

## 1. 删除资源占用较多的插件

以下插件在本端为拓展元素且资源占用较多，您可以选择性删除：

* TorchGone：火把熄灭机制
* Wind：风灾机制。

## 2. 尝试预加载你的地图

玩家在跑图时会占用服务器大量的资源，请尝试预加载地图。预加载即通过插件等方法，将地图提前生成出来，这样玩家在跑图时只是加载已生成好的区块，资源占用大大降低。

## 3. 尝试使用优化配置。

你可以尝试使用由国外作者制作的一份服务端优化配置，请注意 spigot.yml 里面的：

```
stats:
  disable-saving: false
```

如果是 **false** 必须改为 **true**。使用此优化配置的产生一切问题 **Superior** 服务团队不负责。

## 4. 使用 Timings 帮助你分析

在服务器里发送指令 **/timings start** 开始记录，大约 5 分钟后发送指令 **/timings report** 获得分析地址。


# Superior Update

## **主要更新与次要更新**

**Superior v4** 的更新分为 **主要更新和次要更新**。如果发生了一次 **主要更新**，那么 **Superior v4** 版本号的第二位将会发生变化（例如：v.4.1 -> v.4.2）；如果发生了一次 **次要更新**，那么 **Superior v4** 版本号的第三位将会发生变化（例如：v.4.0.1 -> v.4.0.2）。每个主要更新的第一个版本的第三个数字默认为 0，且一般会被省略（例如 **v.4.5** 的第一个版本号实际为 **v.4.5.0**，但我们会把最后面的 0 省去）。

每次主要更新，我们发给客户 一个主包（完整的服务端）和一个 **Superior Update**（更新包）。每次次要更新，我们只会发给客户 一个 **Superior Update**（更新包）。

## 了解 Superior Update

**Superior Update** 旨在方便您更快的更新 **Superior v4** 服务端。我们会将本次服务端更新的变化内容放置于内，一般情况下，您只需每次将该更新包替换到服务端对应位置即可。

## 如何使用 Superior Update？

### 停止运行您的 Superior v4 服务端

请先在服务器控制台输入指令 **stop** 以停止您的服务端，请勿直接叉掉服务端或者使用 kill 指令强制关闭服务端，这会造成一些数据保存问题。

### 下载 Superior Update 压缩包并检查其应该替换服务端哪里的文件

在没有特别说明的情况下，**Superior Update** 压缩包都是基于服务端的 plugins 文件夹进行替换，您只需将压缩包放置到 **任意** 文件夹并解压缩，将解压缩的文件夹内的文件全部复制并替换到服务端的 **plugins** 文件夹内。如有特殊情况，Superior Update 会有相应的提示文件。

如果 **Superior Update** 包含多个文件夹，且不是 **plugins** 文件夹或者又包含 **plugins** 文件夹，又包含其他名称的文件夹，则直接将 **Superior Update** 复制并替换到服务端的 **根目录**（即服务端核心所在的目录）。包含 bukkit.yml、spigot.yml、paper.yml 等位于服务端根目录下的文件也是同理。

总之一句话：**放到服务端对应位置的地方即可，有经验的服主一眼就看出来应该放哪里。**

### **小心，别把自己服务端的数据给替换了！**

如果你自己修改了某个插件的配置，那么在更新时务必留意此次更新是否包含此插件的配置，**如果是的话，请一一对照，手动修改插件配置文件，不要替换，否则你自己修改的内容将会丢失**！

一般情况下，你只需要看每个文件最后修改日期，离服务端更新日期最近的文件一定是被修改的，你只需检查这些文件即可。


# 权限 & 权限组

**会员等级** 是 Superior 是一个重要的内容。该内容通过 **LuckPerms** 插件提供支持，它是一个 **权限组** 管理插件。服务端本身关于 **权限 & 权限组** 的配置已经相当完善，此部分内容是给服主参考使用的。

## 权限组

一个权限组就是一批拥有指定权限节点的玩家组。Superior 拥有以下权限组：

| 组英文ID    | 组中文Prefix | 获得方法 |   |   |   |
| -------- | --------- | ---- | - | - | - |
| default  | 普通玩家      | 进服   |   |   |   |
| gold     | 黄金玩家      | 等级菜单 |   |   |   |
| diamond  | 钻石玩家      | 等级菜单 |   |   |   |
| emerged  | 绿宝石玩家     | 等级菜单 |   |   |   |
| nether   | 下界合金玩家    | 等级菜单 |   |   |   |
| amethyst | 水晶玩家      | 等级菜单 |   |   |   |
| vip      | VIP       | 等级菜单 |   |   |   |
| svip     | SVIP      | 等级菜单 |   |   |   |
| owner    | 服主        | 手动给予 |   |   |   |

权限组的 **ID** 只会在你输入权限组指令时使用到。Prefix 在计分板显示、聊天显示等位置都会用到。

每个权限组都有一个 **weight** 值，越往下的权限组，其值越高。weight 值越高，代表当你同时拥有2个及以上权限组时，在计分板显示等位置时，将会优先显示 **weight** 值高的权限组的 **Prefix**。不设置该值的后果就是，当玩家拥有 2 个及以上权限组后，计分板等位置会显示玩家所有的组，例如 **\[普通玩家]\[VIP]**。

## 权限节点

一个类似于 **superior.v4** 的字符就是一个权限节点。如果玩家拥有一个权限节点之后，才能使用该权限节点所代表的操作。

## **怎么知道一个插件的权限节点？**

以 **CMI** 为例子，请先到 MCBBS 服务端插件板块搜索这个插件是否被人搬运过，请使用英文搜索，中文的你得找到猴年马月。然后再前往原帖地址，也就是 **SpigotMC** 地址查找这个插件的权限节点列表。

如果你没有找到，请查看帖内是否有 **Wiki** 或者 **Doc** 等字样文字，进入后一般会进入这个插件的文档中心。

**​CMI** 文档的地址：<https://www.zrips.net/cmi​>

找到 **permission** 字眼，一般这个页面的就是这个插件的权限组列表。

如果实在查找不到，你可以善用 **LuckPerms** 的网页编辑器功能，在你编辑一个权限组的权限页面里，当尝试新增权限节点时，它会有一个自动补充功能，这时即可查看到一个插件基本完整的权限节点列表了。通常来说，一个插件的一个指令的权限节点一般是 **插件英文名称.command.指令** 或者 **插件英文名称.指令**，例如 **cmi.command.spawn** 代表可以使用 **CMI** 的 **/spawn** 指令。


# 菜单

服务器的菜单使用 **DeluxeMenu** 插件实现。服务端本身关于 **权限 & 权限组** 的配置已经相当完善，此部分内容是给服主参考使用的。

## 创建菜单

打开 plugins/DeluxeMenu/config.yml 新增新的菜单：

```
debug: false
check_updates: false
gui_menus:
  bedrock:
    file: bedrock.yml
  新的菜单名称:
    file: 新的菜单文件的名称.yml
```

重启服务器，新的菜单文件应当被生成。

## 编辑菜单

由于 Superior 菜单相当完善，您完全可以通过已有菜单自学，下面针对一个实例进行小教程。

### 手动修改菜单实例

以传送菜单的主世界传送为例子，我们想要区分左右键分别执行不同功能修改为左右键执行相同功能，我们在 **plugins/DeluxeMenu/menus/teleport.yml** 文件中找到以下内容：

```
  # 代表这个菜单物品的ID，在服务器内无感，没什么用处
  # 但要保证整个菜单页面就这一个ID，不能有重复
  'overworld':
    # 该菜单物品的对应物品ID，这里是一个玩家头颅
    # 如果你想改成其他物品，请使用它的英文 ID
    # 例如石头是STONE
    material: basehead-eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjEyYTAzYTRjMTFiNGQ0NzI0NzJlN2U0NTkzZDJlMTI2YTYyNTllMzNjYzgxZjQ0ZWIwNWNmMDQyZDA3Njk2NyJ9fX0=
    # 该菜单物品在整个菜单所在的槽位
    # 这里代表在第 11 格，最低是 0，务必注意
    slot: 10
    # 优先值，这里没什么用，跟权限组那边的 weight 效果是一样的
    # 当一个槽位被多个菜单物品占用时，优先值越高的物品，越先被展示
    # 如果最高优先值物品不能被展示给玩家，则递归到下一个优先值的物品
    priority: 2
    # 该菜单物品展示的名称
    display_name: '&a&l主世界 &7(随机传送)'
    lore:
    - ''
    - '&e&l● 信息'
    - '     &f目前 &c&lSuperior &f的世界提供 &d2 &f个主世界'
    - '     &f维度. 建议萌新前往普通主世界，大佬' 
    - '     &f前往泰拉主世界.'
    - ''
    - '&f&l● 传送价格'
    - '     &f普通主世界:&6 免费 ⛃'
    - '     &f泰拉主世界:&6 300 金币 ⛃'
    - ''
    - '&8 » &e右键以传送到普通主世界'
    - '&8 » &e左键以传送到泰拉主世界'
    # 左键后执行的动作
    left_click_commands:
    - '[close]'
    - '[player] rtp world terra'
    - '[sound] ENTITY_EXPERIENCE_ORB_PICKUP'
    # 右键
    right_click_commands:
    - '[close]'
    - '[player] rtp world survival'
    - '[sound] ENTITY_EXPERIENCE_ORB_PICKUP'
```

解决这里的左右键的一个办法，就是新增专门给基岩版玩家右键的新物品，你可以重新复制上面的格式，新增一个菜单物品。注意菜单物品ID要改一下，例如 overworld1。slot 也要修改，例如 11。

### **执行的动作的意思**

\[close] 代表玩家使用这个菜单物品后，菜单自动关闭掉

\[player] xx 代表以玩家本人身份自动执行xx命令

\[sound] xx 代表播放xx音效


# NPC

**NPC** 是 Superior 中不重要的一环，但考虑到部分服主需要，特此编写一节。冒险主城的各个 **NPC** 是通过 **EliteMobs** 插件控制的，请通过 `plugins/EliteMobs/customnpcs` 内的各个文件进行编辑。这里介绍的是 **Citizens** 的 **NPC**。

## 创建 NPC

请先站在你需要创建 **NPC** 的大概的地方，然后使用指令 `/npc create NPC名称`。其中 **NPC** 名称是会显示在 **NPC** 头顶上方的，如果你要显示的内容 **超过一行**，请先填写 **&7，后面使用浮空字代替**。这时，一个 **NPC** 应该在你所在的位置生成了。

我们再使用以下指令对 NPC 进行进一步操作：

* /npc skin 正版玩家名称 —— 将 NPC 的皮肤设置成某位正版玩家的样子。
* /npc look —— NPC 将会看离它最近的玩家。
* /npc command add -p 指令 —— 给 NPC 绑定一个左键以玩家身份执行的指令

然后，使用指令 `/citizens save` 来保存当前的修改。这时打开 `plugins/Citizens/saves.yml` 文件，找到你刚刚创建的 NPC 的配置：

```
  '6':
    metadata:
      cached-skin-uuid-name: trades
      cached-skin-uuid: bc2d2519-c5e4-48f3-99c5-bfe9d396e73e
    name: §7
    uuid: f69095aa-6356-4974-9d0b-ed2a85d69bd4
    traits:
      skintrait:
        fetchDefaultSkin: true
        signature: uE/P8Xdcixfdns663hwABVwaBc3AOvL3LsuOCGJ0I7QSAm+OdfcnF3Cv2KQM1mwCAorHtOpmWGnd3LA7SfXEhYJdVuCuMZwMWTW/mexDRVD0qxAvj5NsHrKLX+hB80nWHshl0n6dMKyF0BzKqmyX0jLhYoYjXRDn4PxbcC4e0X11oHSo8EEanUTTk9Tu0VXAilEApibp+U3VvxnKnx1zm3aH97pxvS1gB0eYskUcv3fPwJ9aM4i5cjjxaXAg0jslm9sTDQzU+ZztjbNad7969TheUxCf5rDm/t3sjnasywEkcj3su7M+CpdwtDHHRBI47Nq6N8qAbR30cSz7RVRbmdnglyUssxYlFdVtNJ9GLAI5dBTBajbs7CM0gUcD4p6ya2upg9lmWnLBm0fLrkWNHeeSK0IzSPJRTyzO1LssKEFDso3l0IVhJrUxBIl14HaXgo9TuzI/weKo3HRv0t8DFnoReq0ugeAQ34frACEtpOATpsz7fpQf0cm/krpHh2ajF+CLamClU0j/9nH9UvKYkFicfYiYEPVoQfZ33KZHwefbtjt6B3g8c9QlkySTBHd0wNw9/TuylG9YPryr9gq29RxOSyxtELvwYXIi82qNjmZfqMgRu9iLLtZEdFN+pSJqPGBIjrEMEwYEayTrYs5DyzknqdEwvMbddgOPTBjIjps=
        skinName: trades
        textureRaw: ewogICJ0aW1lc3RhbXAiIDogMTYyODI0NDkwMzM2MSwKICAicHJvZmlsZUlkIiA6ICJiYzJkMjUxOWM1ZTQ0OGYzOTljNWJmZTlkMzk2ZTczZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJUcmFkZXMiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWJlZGI5NDJjMTU2ZDc0Mzc5MWE1NWY5ZDJjODg3MDBkZWZiOWY5YzEyYzQ0MGM3YjNiODc3ZDhmZGZiNWU3YyIKICAgIH0KICB9Cn0=
        updateSkins: false
      lookclose:
        range: '5.0'
        disablewhilenavigating: true
        enabled: true
        enableRandomLook: false
        randomLookDelay: 60
        realisticlooking: false
        randomPitchRange:
          '0': -10.0
          '1': 0.0
        randomYawRange:
          '0': 0.0
          '1': 360.0
      spawned: true
      location:
        bodyYaw: -85.93808
        world: world
        x: '-50.5'
        y: '38.0'
        z: '-253.5'
        yaw: '-47.4141'
        pitch: '0.0'
      type: PLAYER
      commandtrait:
        cost: -1.0
        executionMode: LINEAR
        experienceCost: -1.0
        hideErrorMessages: false
        commands:
          '0':
            command: trademenu
            hand: RIGHT
            player: true
            op: false
            cooldown: 0
            globalcooldown: 0
            n: -1
            delay: 0
      owner:
        uuid: ceb29779-392b-30ee-a212-6ad059f9046b
      sneak:
        sneaking: false
    traitnames: lookclose,skintrait,scoreboardtrait,type,spawned,inventory,equipment,owner,sneak,commandtrait,mounttrait,location
    navigator:
      speedmodifier: '1.0'
      avoidwater: false
      usedefaultstuckaction: true
```

找到 **location** 配置位置，将里面的 **x，y，z** 三个值小数点后面数字全部删除，改成 **5**，这样 **NPC** 就站在方块的正中央，更加美观了。（需要使用 `/citizens reload` 指令重新加载配置，该指令需要你执行两次）

## 编辑 NPC

* /npc sel —— 选中一个 NPC，你必须先对准一个 NPC 看然后使用该指令，才能继续使用 Citizens 的其他指令，否则插件不知道你要对哪个 NPC 进行编辑。
* /npc id —— 查看一个 NPC 的id，如果你忘记一个 NPC 的id，可以通过该指令查看。
* /npc movehere —— 将一个 NPC 搬到你所在的位置。
* /npc remove —— 删除一个 NPC。


# 浮空字

浮空字和 **NPC** 大致相同，通过 **HolographicDisplays** 插件提供支持，在此简略给各位服主参考一下。

## 创建浮空字

在你想要创建浮空字的大概位置输入指令 `/hd create 浮空字id 浮空字的第一行话`。浮空字的第一行话可以先不写。由于通过指令编辑浮空字的内容是需要一行一行的改，非常麻烦，因此我们直接介绍如何通过配置文件编辑浮空字。

## 编辑浮空字

打开 **plugins/HolographicDisplays/database.yml** 文件，找到你刚刚创建的浮空字。跟 **NPC** 一样，将 **location** 的 **小数点后删掉取5** 是非常建议的。下面的 **text** 则可以编辑浮空字的内容。

如果需要删除浮空字，直接按照删除对于浮空字的配置即可。一个完整的浮空字配置示例如下：

```
welcome:
  location: world, -10.5, 38.9, -344.5
  lines:
  - 欢迎您来到 &c&lSuperior &f的世界
  - ''
  - 您现在在 &b&l祥和主城 &f，到处看看有什么值得探索的吧！
  - ''
  - '&e&l服务器 99% 的功能都是通过菜单实现: &c/helps'
  - ''
  - '&e需要帮助？想和其他玩家交流？请加入我们的QQ群：915270372!'
```


# 称号

Superior 的称号通过 **AlonsoTags** 插件实现，并且搭载了付费版，支持更多的功能。在此简略给各位服主参考一下。

## 新增称号

打开 `plugins/AlonsoTags/tags.yml` 文件，按照一个完整的称号配置添加：

```
  //称号 id
  new-tag:
    //该称号在称号菜单中显示的物品
    Material: CUSTOM_HEAD
    //上面意思是一个玩家头颅，那么这里填上头颅材质，可以在PlayerHeads网站寻找并查看，如果是其他物品可以直接删除本行
    Texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzMwZmVhNDQzNDlmMDczZjNmOTNjZTg2ZWM5ZWVlODJmODRhMWM1ZTI5NjdlYjFjMTliN2MzNWY5YTVlNWY5OSJ9fX0=
    //称号，支持HEX色
    Tag: '&7萌新'
    //称号菜单中显示的称号，支持HEX色
    Displayname: '&7&l{COLOR}初始者'
    //使用该称号所需的权限
    Permission: none
    //称号菜单中显示的物品的Lore
    Lore:
      Locked:
      - '&7给每位新来的玩家赠送的称号.'
      - '&7聊天预览: &f{TAG}'
      - ''
      - '&8 » &c你尚未解锁该称号'
      Unlocked:
      - '&7给每位新来的玩家赠送的称号.'
      - '&7聊天预览: &f{TAG}'
      - ''
      - '&8 » &e右键以选择'
      Selected:
      - '&7给每位新来的玩家赠送的称号.'
      - '&7聊天预览: &f{TAG}'
      - ''
      - '&8 » &a你已选择该称号'
    No-permission-message: '&f &8► &c你没有权限来使用该称号!'
    Not-enough-money-message: '&f &8► &c你没有足够的金币!'
    Custom-model-data: 0
    Dyeable: false
    //价格
    Price: 0
    //默认颜色
    Default-color: ''
    //隐藏称号显示的物品的flags
    Hide-flags: true
    //称号显示的物品不可破坏
    Unbreakable: false
```


# 排行榜

排行榜是 Superior 中不重要的一环，服务端通过 **ajLeaderboards** 插件实现。很多服主想要创建自己的排行榜，或者需要浮空字排行榜，在此简略给各位服主参考一下。

## 创建新的排行榜

你要排行榜的数据必须是通过 **Placeholders** 显示出来的 **数字**。例如 **金币数量** 等。跟前面的 **权限 & 权限组** 寻找 **权限** 步骤一样，找到对应插件的 **Placeholders**。

使用指令 `/ajleaderboards add Placeholders` 来创建新的排行榜。看到绿色的提示即为创建成功。

## 使用 Placeholders 显示排行榜

排行榜插件本身不提供显示排行榜功能，你需要通过其他插件，通过 **Placeholders** 显示。

* %ajlb\_position\_xxx% —— 显示玩家在 xxx 排行榜的排名
* %ajlb\_lb\_xxx\_1\_name% —— 显示 xxx 排行榜第1名的玩家名称，1改为其他数字即是第几
* %ajlb\_lb\_xxx\_1\_value% —— 显示 xxx 排行榜第1名的数据值，1改为其他数字即是第几

如果你需要在浮空字等位置显示排行榜，下面就是一个配置例子：

```
leaderboard-kill:
  location: world, -9.5, 75.8, -28.5
  lines:
  - '&c&l起床战争 &7排行榜 &d&l击杀数'
  - ''
  - '&e1. {medium}%ajlb_lb_bw1058_stats_total_kills_1_name% &7- &e %ajlb_lb_bw1058_stats_total_kills_1_value%'
  - '&e2. {medium}%ajlb_lb_bw1058_stats_total_kills_2_name% &7- &e %ajlb_lb_bw1058_stats_total_kills_2_value%'
  - '&e3. {medium}%ajlb_lb_bw1058_stats_total_kills_3_name% &7- &e %ajlb_lb_bw1058_stats_total_kills_3_value%'
  - '&e4. {medium}%ajlb_lb_bw1058_stats_total_kills_4_name% &7- &e %ajlb_lb_bw1058_stats_total_kills_4_value%'
  - '&e5. {medium}%ajlb_lb_bw1058_stats_total_kills_5_name% &7- &e %ajlb_lb_bw1058_stats_total_kills_5_value%'
  - '&e6. {medium}%ajlb_lb_bw1058_stats_total_kills_6_name% &7- &e %ajlb_lb_bw1058_stats_total_kills_6_value%'
  - '&e7. {medium}%ajlb_lb_bw1058_stats_total_kills_7_name% &7- &e %ajlb_lb_bw1058_stats_total_kills_7_value%'
  - '&e8. {medium}%ajlb_lb_bw1058_stats_total_kills_8_name% &7- &e %ajlb_lb_bw1058_stats_total_kills_8_value%'
  - '&e9. {medium}%ajlb_lb_bw1058_stats_total_kills_9_name% &7- &e %ajlb_lb_bw1058_stats_total_kills_9_value%'
  - '&e10. {medium}%ajlb_lb_bw1058_stats_total_kills_10_name% &7- &e %ajlb_lb_bw1058_stats_total_kills_10_value%'
  - '&e11. {medium}%ajlb_lb_bw1058_stats_total_kills_11_name% &7- &e %ajlb_lb_bw1058_stats_total_kills_11_value%'
  - '&e12. {medium}%ajlb_lb_bw1058_stats_total_kills_12_name% &7- &e %ajlb_lb_bw1058_stats_total_kills_12_value%'
  - ''
  - '&e你当前击杀了 &c%bw1058_stats_total_kills% &e次玩家'
  - '&e位列第&c&l %ajlb_position_bw1058_stats_total_kills%'
```


# 传送

如果你创建了新的世界，那么你需要通过以下操作，以便于你的玩家进行传送。

## /warp 传送点 指令

通过 /warp 传送点指令进行定点传送是最优化解决方案，您可以在任意位置使用 /setwarp 传送点名称 即可创建新的传送点。

## /rtp world 世界名称 指令

通过该指令进行随机传送是最优化解决方案，但您还需要给予玩家 `betterrtp.world.世界名称` 权限。如果您需要付费随机传送，请打开 **plugins/BetterRTP/economy.yml** 文件，新增新的世界：

```
CustomWorlds:
  Enabled: true
  Prices:
  - nether: 50
  - terra: 300
  - 新的世界名称: 价格
```


# 概论

Superior v4 在制作时并没有按照 **科技树** 这种思路制作，玩家可以通过很多种方法发展。一般来说，玩家在您假设的 Superior v4 服务器在 **购买VIP/SVIP** 特权会员情况下需要长时间肝到 **1个月以上** 才能发展到后期。如果快于这个速度，请检查服务器是否存在一些刷物品漏洞等。


# 经济

Superior v4 就经济方面是非常合适的，我们 **不建议您随意修改有关经济方面的内容**。

### 金币

玩家可以通过以下三个方面赚得金币：

* 从系统商店回收物品、从玩家商店出售自己的物品。
* 职业。
* 跑酷游戏。

金币在服务器中用途很多，以至于我无法详细阐述。大体是：

* 从系统商店购买物品、从玩家商店购买他人的物品。
* 各种特殊物品的升级。
* 随机传送、天使之箱还原、锁箱子等很多细微的收取费用，这些会阻碍玩家前期过快的发展速度，我们不建议您取消。
* 会员等级的提升。
* 功能菜单中购买功能。

### 精英币

玩家可以通过以下两个方面赚得精英币：

* 击杀精英怪物。
* 出售精英装备。

精英币在服务器中只能在 **冒险主城** 购买精英装备、提升冒险者公会等级等处使用。

### 点券

玩家只能通过 **管理员** 给予获得点券。点券用于购买 **特权等级** 和购买一些只能通过 **点券** 购买的特权、物品。


# 等级

Superior v4 分配了 **6** 个会员等级和 **2** 个特权等级。所有的等级其实都是 **权限组**。玩家的升级只是让他们解锁新的权限组，从而获得一批新的权限节点。

## 会员等级

玩家可以通过 **等级菜单** 提升他们的会员等级。相较于 **Superior v3**，**v4** 版本不仅需要玩家攒到一定数额的金币，还需要达到一定的任务条件，以增加玩家的粘度。玩家只有解锁上一级的会员等级，才能尝试解锁下一级的会员等级，需要循序渐进，不能跳过。并且，随着会员等级的提升，其需要达到的条件和需要消耗的金币数额也在不断提高，以增加后期升级的挑战性。

如果你想创建自己的会员等级，只需要通过 **LuckPerms** 创建新的权限组即可。你可以通过指令 `/lp creategroup 组名称` 即可创建。组名称是使用 LuckPerms 指令时用到的变量，并不是玩家实际看到的名称，并且只能设置为小写英文、数字组合。这时，参考 **权限 & 权限组** 基础参考，给这个权限组赋予权限节点，或者通过网页编辑器编辑，即可实现创建新的会员等级。通过参考 **菜单**，编辑等级菜单以给新的会员等级赋予升级页面。我们的会员等级条件是通过 `plugins/CMI/rankup.yml` 文件实现的，这里不再叙述。

## 特权等级

玩家只能通过 **点券购买** 获得特权等级。我们对特权等级定义是：一切基于最高级的玩家等级之上。这也是方便玩家快速过渡前期的捷径之一。特权等级拥有的权限高于会员等级的最高级别，因此请勿随意给没有充值的玩家特权等级。


# 发展

Superior v4 是一个 **生存** 服务端，因此它万变不离其宗。玩家在发展过程中，我们设计的是：

* 前期：阻碍，设置一些阻碍玩家过快发展的机制。
* 中期：拓展，让玩家想把我们设置的每一个拓展内容都想尝试。
* 后期：养老，通过粘液科技，玩家在后期将会进入养老阶段。


# 集齐五福活动

## 需要额外准备的插件

* HeadDatabase（<https://www.spigotmc.org/resources/head-database.14280/>）
* TheSearch（<https://www.spigotmc.org/resources/the-search-hidden-blocks-entities-in-your-lobbies-1-8-1-18.97334/>）

## 使用 HeadDatabase 获取头颅物品

我们使用玩家头颅作为“福”的集齐要素，在安装此插件后，在服务器内输入命令 **/hdb** 以打开头颅选择菜单。你可以使用 **/hdb search <关键词>** 来搜索相关头颅。由于是英文插件，所以请使用英语搜索。例如烟花，请使用 **/hdb search firework**。（我个人也推荐这个，目前没看到专门为新年做的头颅皮肤）

点击头颅菜单中的头颅即可获取到你的背包中。然后，将头颅放置到你的服务器的任意位置，使用 **TheSearch** 作为收集五福的活动插件。

## 使用 TheSearch 作为活动插件

首先输入 **/thesearch create <集齐要素名称>**，例如 /thesearch create 敬业福。

在你的服务端目录下的 plugins/TheSearch/searchs 中找到该集齐要素的配置文件。打开后，它应该像下面这样：

（略）

将屏幕正中心对准你的头颅，输入 /thesearch addblock <集齐要素名称> 即可添加碎片方块。


# 粘液科技

在没有必要的情况下，我不建议您在您的服务器安装粘液科技：

* 卡服神器。
* 超平衡神器。
* 刷物品神器。
* 极其容易和其他插件冲突造成各种 BUG。
* 机器经常出现储存问题，变成普通玩家头颅。
* 等等...

如果您执意安装，请做好以下准备：

* 禁用粘液科技中已知的和其他插件冲突的物品。

{% file src="/files/zKsY7aeUOJUdaitGei1a" %}

* 对冲突插件的配置进行修改。

打开 plugins/EpicFurnace/config.yml，找到以下内容：

Allow Normal Furnaces: false

将其修改为 true。


# 更新记录

## Superior v4 版本更新

### 见 MineBBS。

## 历代版本介绍

**Superior v1** 初始版本是 v.1.0.0，最后版本是 v.1.9.5。

**Superior v2** 初始版本是 v.2.0.0，最后版本是 v.2.8.8。

**Superior v3** 初始版本是 v.3.0，最后版本是 v.3.22。

**Superior v3（免费版）** 初始版本是 v.3.0，最后版本是 v.3.25。（免费版和付费版版本号规则不同，此处的 v.3.25 指的是 v.3.2.5）

**Superior v4** 初始版本是 v.4.0。


# 将 4.0 服务端升级到 4.1 版本

**4.1** 版本以后的 **Superior Update** 基于 **4.1** 版本。如果您没有将自己的服务端升级到 **4.1** 版本，则不能使用 **Superior 4.1** 之后的更新版本。

## 下载 Superior v.4.1 版本

请先下载 **Superior v.4.1** 版本。

## 删除并替换插件

将你已有服务端内的插&#x4EF6;**（位于服务端 plugins 文件夹下的 .jar 文件）**&#x5168;部删除，注意保留自己后增加的插件。然后，将 **4.1** 版本内的所有插件复制于此。

由于 **Tab** 插件发生了重大改动，旧版本配置文件无法在最新版本使用，因此，你还需要将 **4.1** 版本下的 **plugins/Tab** 文件夹也复制到你的服务端内，并重新修改 **Tab** 内的配置文件。

## 替换新的服务端核心

将你的服务端的 **nether** 和 **terra** 文件夹删除（也就是删除这两个世界）。

将 **4.1** 版本的 **cache** 文件夹、**world/datapacks（是world文件夹里面的datapacks，替换到你服务端对应的这个位置）** 文件夹和 **server.jar** 复制到你的服务端，并替换。然后第一次运行 **1.18** 的服务端。

## 创建新的世界

在服务器内使用以下指令以重新创建被删除的两个世界：

* /mv create nether nether
* /mv create terra normal -g TerraformGenerator


# 欢迎

## 关于 Superior Adventure

* Superior Adventure 是 Superior 系列服务端的拓展作品。
* 此代作品的风格是 冒险生存，而不是以前的经典生存。
* 除了 MagicTravel，Superior Adventure 是我们首次真正意义上使用大量原版特性制作大量新的游戏内容。

## 心血付出

* Superior Adventure 自 3月15日 立项以来，我们的绘图软件小时数在 3月25日 达到了 40 多小时。平均下来我们每天花费 4 个多小时制作、修改各种绘图。

![](/files/LHpcnjIjZKzkKadD9nPi)


# 开服准备

## Java 17 安装

要使用 **Superior Adventure**，您应该在您的设备上安装 **Java17**。

{% embed url="<https://docs.microsoft.com/en-us/java/openjdk/download>" %}
微软提供的 JDK17 下载地址
{% endembed %}

如果你对 **Java** 安装一无所知，那么，点击图中所圈的链接，下载好跟正常软件安装几乎一样，傻瓜式操作。

![](https://4115651646-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3sO2TESWYxbpY7M0Cj1D%2Fuploads%2FR5hbvXhCLUAMKMBQ9kV6%2F%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202021-12-16%20183346.png?alt=media\&token=bc694b81-9dcc-4e45-818f-63d65f3a1242)

## 修改 ItemsAdder 资源包端口

如果您的 **VPS或者面板** 不是 **全端口开放**，那么您需要打开 **plugins/ItemsAdder/config.yml** 并找到如下内容：

```
resource-pack:
  hosting:
    no-host:
      enabled: false
    auto-external-host:
      enabled: false
    self-host:
      enabled: true
      server-ip: 127.0.0.1
      pack-port: 8164
    external-host:
      enabled: false
      url: ''
      skip-url-file-type-check___DONT_ASK_HELP_IF_SET_TRUE: false
```

将 `server-ip` 的 `127.0.0.1` 修改为你的外网 IP（即进入你的服务器输入的IP）。将 `pack-port` 的 `8164` 修改为外网可以访问到的端口值。

## 将 Superior 字样替换成你的服务器名称

我们建议您使用 **Notepad++** 软件进行该操作，用 **Notepad++** 软件打开服务端内任意一个 **yml** 文件，点击该软件上方的搜索按钮，再点击 **查找**。按图所示填写信息并完成操作：

![](https://4115651646-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3sO2TESWYxbpY7M0Cj1D%2Fuploads%2FSrEXYtNCCPcErMJISuip%2F%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202021-12-16%20185951.png?alt=media\&token=8a80f354-06bf-49c2-8d26-d2dafd2a7c01)

## 开始运行服务端

点击 **启动.bat** 即可开始运行。


# 进服准备

## 将服务器的 "服务器资源包" 选项改为启用

点击服务器，点击下方编辑按钮，将此选项打开。

![](/files/CpGa8ChjSyVJvcbb2bxo)

## 将客户端的 "强制使用 Unicode 字体" 关闭

进入主菜单，点击选项，再点击语言，关闭此选项即可。

![](/files/uFUwZm8LoH4HRfZd9eQx)


# 插件概览

## 主服务端

**带有 \* 的为付费插件，请尽量购买正版，支持作者。**

AdvancedChests：超级箱子。在更多物品中有使用。

AlonsoTagsPro\*：称号。在聊天框点击其他玩家称号时即可打开称号菜单。

AngelChest\*：天使之箱。

AireliumSkills：技能。

Aurora\*：环境粒子。

AnotherDailyBonus：签到。

AutoComposter\*：自动堆肥桶。在更多物品中有使用。

BeaconPlus\*：超级信标。在更多物品中有使用。

BetterRTP：随机传送。

Cartographer2\*：旅行地图。在更多物品中有使用。

Citizen\*：NPC。

ClueScrolls\*：任务卷轴。在工作方块中有使用。

CMILib：前置。（暂时无用）

CustomCrafting\*：自定义合成。服务器中的 /recipes 指令来源于此插件。

DeluxeMenus：菜单。

eco：前置。

EcoEnchants\*：更多附魔。

ElevatorsFree：电梯。在更多物品中有使用。

EnchantGui：高级附魔台。在工作方块中有使用。

EntityTraveller：提供拴绳拴住实体的机制。

EpicBackPacks\*：背包。在更多物品中有使用。

FancyWaystones\*：传送石碑。在更多物品中有使用。

FastAsyncWorldEdit：创世神。

GenCubes\*：产矿机。在更多物品中有使用。

HolographicDisplays：浮空字。

HuskHomes：基础传送。

HuskHomesGUI：基础传送GUI。

Interactions\*：NPC 对话。

ItemNBTAPI：前置。

ItemRecycler\*：分解台。在工作方块中有使用。

ItemsAdder\*：服务端的核心插件，提供各种新增内容。

JoinCommands：进服执行命令。

KaBoom：爆炸管理。

Lands\*：领地。

LibsDisguises：伪装。MythicMobs 部分怪物需要。

LightAPI：前置。

LoneLibs：前置。

LuckPerms：权限组。

MCPets：宠物。

MIReplacer：自动将原版物品替换为指定 MMOItems 物品。

MMOItems\*：MMO 物品。

ModelEngine\*：模型。

MoneyHuntersPro\*：职业。

MultitoolPlusPro\*：多工具。在更多工作方块中有使用。

MultiverseCore：多世界。

MythicLib：前置。

MythicMobs\*：神话怪物。服务端的等级怪物、精英怪物、阴间怪物均使用此插件。

NexEngine：前置。

ntdLuckyBlock\*：幸运方块。

otd：地牢。

PlaceholderAPI：变量符。

PlayerAuctions：拍卖行。

PlayerCosmetics\*：时装。

PlayerPoints：点券。

ProtocolLib：前置。

ProtolcolStringReplacer：自动替换指定文本。某些插件翻译需要此插件。

PublicCrafters\*：公共合成台。同时提供 3D 合成效果机制。

Quests：任务。本端仅用作新手教程。

Rankup\*：升级。

RealisticSeasons\*：季节。

ShopGUIPlus\*：商店。

SupremeBanks\*：金币石。在工作方块中有用到。

TAB：TAB、计分板、Boss 条等都有用到。

UltimateTimber：自动砍树。

UpgradeableHopper\*：超级漏斗。在更多物品中有使用。

UpgradeableSpawners\*：可升级刷怪笼。在更多物品中有使用。

Vault：前置。

VentureChat：聊天。

ViaBackwards：跨版本。

ViaVersion：跨版本。

VoidGen：虚空世界生成器。

WolyfUtilities：前置。

WorldEdit：创世神。

WorldGuard：世界保护。

Xconomy：经济。


# 世界概览

## 主服务端

* 生存世界：overworld1、nether、end。（分别为主世界、下界、末地）
* 阴间（副本）：pve1。
* 主城：world。


# 基础指令

我们建议您通过 **/?** 指令来一步步、一个个学习所有指令是干什么的、怎么用的，这样才对你对 Superior 使用更有帮助。（?是英文的问号）

## 多世界

### /mv import 世界名称 维度类型 —— 加载一个世界

将你需要导入到服务器的世界，解压并放置在服务端的根目录&#x4E0B;**（也就是和 启动.bat 所在的同一个地方）**。世界名称即是文件夹名称，请不要使用 **中文、空格和其他奇奇怪怪符号**，全英文和数字，否则会导致很多意想不到的问题！

维度类型有 3 种：**normal（主世界）、nether（下界）和 end（末地）。**

### /mv tp 世界名称 —— 传送到一个世界

这个传送指令是给服主用的，如果想给玩家设置定点传送，那么请使用 **/setwarp 传送点名称** 指令，这样玩家就可以使用 **/warp 传送点名称** 指令传送到那里。

### /mv create 世界名称 维度类型 -g 生成器名称 —— 创建一个世界

-g后面（包括 -g）的可以删除，这样就直接使用原版生成器。

## 经济

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

## 权限组

### /lp editor —— 打开权限组网页编辑器

使用该指令后插件会发给你一个链接，你可以在网页内可视化管理你的权限组和权限节点，非常方便。

### /lp user 玩家名称 parent add 组英文ID —— 给予玩家一个权限组

这个指令代表给玩家新的一个权限组，旧的权限组同时也在。同样是上面这个指令，将 add 改为 set 则代表将这个玩家设置到新的权限组，玩家旧的权限组不复存在。

由于本端设置了 parentGroup 功能，并且很好发挥了 weight 规则：weight 越高，也就是上面那个表越往下的组，它一定会携带上面所有权限组的权限，因此本端 add 和 set 给予玩家权限组没有什么区别，但是在其他制作不严谨的服务端或者专门利用这个特性制作一些规则的服务端，如果你权限组指令没打对，会出大问题。

### /lp user 玩家名称 parent addtemp 组英文ID 时间数 —— **给予一个玩家临时的权限组**

时间数如何表示？1d = 1天，30d = 30天，1mo = 1月，1h = 1小时... 还不懂建议看一下脑科。如果你一不小心给错了玩家权限组，怎么撤回？千万不能说直接把玩家权限组删了，否则玩家权限组没了啥也干不了。用上面的 set 指令，引导玩家到他原来的组里面。

### /lp group 组英文ID permission set 权限节点 true —— **给一个组添加一个权限节点**

将 **true** 替换为 **false**，则代表这个权限组一定没有这个权限，尽管插件设置了所有玩家默认都有这个权限节点的权限，如果这里是 **false**，也会被强制替换为 没有权限。


# 常见问题

### Q：进入服务器加载资源包出现无法应用此资源包。

A：请依次进行以下分析：

* 你是否百分之百按照 **Wiki** 所述的开服准备与进服准备进行了操作。如果不是请重新操作后再尝试。
* 你是否使用原版 **1.18.2** 客户端进入服务端。如果不是请重新更换版本后再试。
* 你是否再使用过 **/iareload** 和 **/iazip** 指令重新加载资源包。如果是并且还是没有用请继续分析。
* 你在使用 **/iatexture** 指令后是否会正常收到资源包。如果是则代表你根本没按照 **Wiki** 所述进行准备操作。
* 你在输入 **/iareload** 后会得到一个链接，将其复制到浏览器中，你是否能够正常打开这个链接。如果是，则可能是神秘原因导致你无法正常下载资源包，请在此网站下载资源包，导入到原版查看是否能够正常使用。如果不能则还代表此资源包是存在问题的，导致无法正常使用。

![这是一个示例](/files/fLoFlFmY0YtF6h6Az5DO)

### Q：玩家进服后一直卡加载资源包的 Mojang 页面。

A：尽量使用 **1.18.2** 原版客户端。若仍存在该问题，尝试删除 **plugins/ItemsAdder/data/resource\_pack/minecraft/sharder** 文件夹后重新 **/iazip** 指令后再试。这会导致服务端的资源包缺失部分不关键的内容。

### Q：在进入某个世界后/进服后遇到这种报错导致服务端崩溃。

```
[13:14:32] [Watchdog Thread/ERROR]: ------------------------------
[13:14:32] [Watchdog Thread/ERROR]: Current Thread: Server thread
[13:14:32] [Watchdog Thread/ERROR]: 	PID: 219 | Suspended: false | Native: false | State: TIMED_WAITING
[13:14:32] [Watchdog Thread/ERROR]: 	Stack:
[13:14:32] [Watchdog Thread/ERROR]: 		java.base@17.0.2/jdk.internal.misc.Unsafe.park(Native Method)
[13:14:32] [Watchdog Thread/ERROR]: 		java.base@17.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
[13:14:32] [Watchdog Thread/ERROR]: 		java.base@17.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672)
[13:14:32] [Watchdog Thread/ERROR]: 		java.base@17.0.2/java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:515)
[13:14:32] [Watchdog Thread/ERROR]: 		java.base@17.0.2/java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:677)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.util.thread.BlockableEventLoop.waitForTasks(BlockableEventLoop.java:157)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:142)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.server.level.ServerChunkCache.getChunk(ServerChunkCache.java:663)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.server.level.ServerChunkCache.lambda$getChunk$11(ServerChunkCache.java:624)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.server.level.ChunkProviderServer$$Lambda$11673/0x0000000802fb4000.get(Unknown Source)
[13:14:32] [Watchdog Thread/ERROR]: 		java.base@17.0.2/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:168)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.server.level.ServerChunkCache$MainThreadExecutor.doRunTask(ServerChunkCache.java:1280)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:130)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.server.level.ServerChunkCache$MainThreadExecutor.pollTask(ServerChunkCache.java:1293)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.server.level.ServerChunkCache.pollTask(ServerChunkCache.java:823)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1421)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1403)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1540)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1250)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:320)
[13:14:32] [Watchdog Thread/ERROR]: 		net.minecraft.server.MinecraftServer$$Lambda$4370/0x00000008014ffa90.run(Unknown Source)
[13:14:32] [Watchdog Thread/ERROR]: 		java.base@17.0.2/java.lang.Thread.run(Thread.java:833)
[13:14:32] [Watchdog Thread/ERROR]: ------------------------------
[13:14:32] [Watchdog Thread/ERROR]: --- DO NOT REPORT THIS TO PURPUR - THIS IS NOT A BUG OR A CRASH ---
[13:14:32] [Watchdog Thread/ERROR]: ------------------------------
[13:14:37] [Watchdog Thread/ERROR]: --- DO NOT REPORT THIS TO PURPUR - THIS IS NOT A BUG OR A CRASH  - git-Mirai-7838cca (MC: 1.18.2) ---
[13:14:37] [Watchdog Thread/ERROR]: The server has not responded for 215 seconds! Creating thread dump
[13:14:37] [Watchdog Thread/ERROR]: ------------------------------
[13:14:37] [Watchdog Thread/ERROR]: Server thread dump (Look for plugins here before reporting to Purpur!):
[13:14:37] [Watchdog Thread/ERROR]: [com.destroystokyo.paper.io.PaperFileIOThread] Chunk wait task info below: 
[13:14:37] [Watchdog Thread/ERROR]: [com.destroystokyo.paper.io.PaperFileIOThread] -159,280 in 'world:
[13:14:37] [Watchdog Thread/ERROR]: [com.destroystokyo.paper.io.PaperFileIOThread] Load Task - none
[13:14:37] [Watchdog Thread/ERROR]: [com.destroystokyo.paper.io.PaperFileIOThread] Save Task - none
[13:14:37] [Watchdog Thread/ERROR]: [com.destroystokyo.paper.io.PaperFileIOThread] Chunk Holder - non-null
[13:14:37] [Watchdog Thread/ERROR]: [com.destroystokyo.paper.io.PaperFileIOThread] Chunk Status - minecraft:light
[13:14:37] [Watchdog Thread/ERROR]: [com.destroystokyo.paper.io.PaperFileIOThread] Chunk Ticket Status - minecraft:full
[13:14:37] [Watchdog Thread/ERROR]: [com.destroystokyo.paper.io.PaperFileIOThread] Chunk Holder Status - minecraft:features
[13:14:37] [Watchdog Thread/ERROR]: [com.destroystokyo.paper.io.PaperFileIOThread] Chunk Holder Priority - 2
[13:14:37] [Watchdog Thread/ERROR]: ------------------------------
```

A：依次尝试进行以下操作：

* 更换你的 **JDK17** 为 Wiki 推荐的微软 **JDK**。
* 更换你的服务端核心为 Paper。
* 删除所有世界的除 **region、DIM1、DIM-1、level.dat、datapacks** 文件外所有文件并重试。（记得先备份）
* 删除 **world/datapacks** 文件夹下的所有数据包，一个一个删，直到找到最终祸首或者直接删除所有数据包。
* 删除这个世界，重新使用 **/mv create** 指令再次生成。

### Q：开服时遇到此报错。

![](/files/K8VQeMQZBcasOEBHE7S9)

A：内存不足导致，尝试重启 VPS 大部分即可解决。


# Superior Update

## **主要更新与次要更新**

**Superior v5** 的更新分为 **主要更新和次要更新**。如果发生了一次 **主要更新**，那么 **Superior v4** 版本号的第二位将会发生变化（例如：v.5.1 -> v.5.2）；如果发生了一次 **次要更新**，那么 **Superior v4** 版本号的第三位将会发生变化（例如：v.5.0.1 -> v.5.0.2）。每个主要更新的第一个版本的第三个数字默认为 0，且一般会被省略（例如 **v.5.5** 的第一个版本号实际为 **v.5.5.0**，但我们会把最后面的 0 省去）。

每次主要更新，我们发给客户 一个主包（完整的服务端）和一个 **Superior Update**（更新包）。每次次要更新，我们只会发给客户 一个 **Superior Update**（更新包）。

## 了解 Superior Update

**Superior Update** 旨在方便您更快的更新 **Superior v5** 服务端。我们会将本次服务端更新的变化内容放置于内，一般情况下，您只需每次将该更新包替换到服务端对应位置即可。

## 如何使用 Superior Update？

### 停止运行您的 Superior v5 服务端

请先在服务器控制台输入指令 **stop** 以停止您的服务端，请勿直接叉掉服务端或者使用 kill 指令强制关闭服务端，这会造成一些数据保存问题。

### 下载 Superior Update 压缩包并检查其应该替换服务端哪里的文件

在没有特别说明的情况下，**Superior Update** 压缩包都是基于服务端的 plugins 文件夹进行替换，您只需将压缩包放置到 **任意** 文件夹并解压缩，将解压缩的文件夹内的文件全部复制并替换到服务端的 **plugins** 文件夹内。如有特殊情况，Superior Update 会有相应的提示文件。

如果 **Superior Update** 包含多个文件夹，且不是 **plugins** 文件夹或者又包含 **plugins** 文件夹，又包含其他名称的文件夹，则直接将 **Superior Update** 复制并替换到服务端的 **根目录**（即服务端核心所在的目录）。包含 bukkit.yml、spigot.yml、paper.yml 等位于服务端根目录下的文件也是同理。

总之一句话：**放到服务端对应位置的地方即可，有经验的服主一眼就看出来应该放哪里。**

### **小心，别把自己服务端的数据给替换了！**

如果你自己修改了某个插件的配置，那么在更新时务必留意此次更新是否包含此插件的配置，**如果是的话，请一一对照，手动修改插件配置文件，不要替换，否则你自己修改的内容将会丢失**！

一般情况下，你只需要看每个文件最后修改日期，离服务端更新日期最近的文件一定是被修改的，你只需检查这些文件即可。


# 主世界

## 完全修改世界生成规则

Superior Adventure 没有使用原版地形生成器，而是通过数据包制作了自己的地形生成器。在使世界更加宏伟、真实的情况下，还进行：

* 新增 100+ 遗迹、地牢、村庄等。大部分都有战利品表，更突出冒险元素。
* 天空颜色随着生物群系改变而做出特有变化。

![](/files/kXU0uKSXp4jvD6ScpnMn)

* 一年四季，影响生物生成、农作物生长、昼夜时长等。


# 职业

**Superior v5** 共有 6 个职业。不同于 **Superior v4**，**v5** 的职业系统具有以下特点：

* 简洁：从原来的十几个职业筛检到 **6** 个，并且都是玩家在日常生存中经常完成的事务，不需要玩家刻意像做任务那样获得职业报酬。
* 养成：**v5** 的职业的职业等级变得有用起来，最开始的职业报酬仅支持小部分任务，随着职业等级提升，其他的职业任务也会被解锁。例如一级挖掘工只能通过挖泥土赚钱，二级则可以通过挖沙子赚钱。
* 平衡：平衡一直是 **Superior** 系列服务端的特点，**v5** 同样保持平衡。为了防止玩家早期过快发展，所有职业都需要在达到一定的技能等级才能解锁。例如矿工只能在玩家 挖掘达到 **6级** 后才能解锁。

## 用法

此玩法使用到的是 **MoneyHuntersPro** 插件。

* /moneyhunters jobs - 打开职业菜单。


# 技能

**Superior v5** 共有 **15** 个技能带来的 **70** 个能力，与 **Superior v4** 保持一致。v5 的技能系统带有以下特点：

* 不可替代性，因为技能插件强大的可兼容性，我们将它的很多内容融入到了其他玩法内，因此请勿随意将其删除或者替换为 **mcmmo** 插件。（我们选用插件都是有考量的）
* 肝度，技能内的内容是非常多的，玩家需要肝肝肝才能不断解锁新的内容。

## 用法

此玩法用到的是 AureliumSkills 插件。

* /skills - 打开技能菜单。
* /skills xp add 玩家名称 技能名称（见 skills 文件夹） 数量 - 给予指定玩家指定的技能经验值。

## 配置

### 如何设置各个技能等级所需的经验值：

打开 **plugins/AureliumSkills/xp\_requirements.yml** 文件。

```
default: # 这个方案的名称
  expression: 'multiplier * (level - 2) ^ 2 + base' # 方案的公式
  multiplier: 200.0 # 方案内的变量
  base: 100.0 # 方案内的变量
```

我们来解析这个公式，`multiplier` 在这里是一个固定值，一直是 **200**，`level` 在这里代表技能等级，`base` 同样也是一个固定值。

再来看看数学符号，`*` 代表乘号，`^` 代表开方，`+` 和 `-` 是什么意思就不用我多说了吧。

真正翻译过来这个公式就是：`200 x （等级-2）的2次方+100`。

### 如何设置技能熟练度来源和各个来源的值:

打开 **plugins/AureliumSkills/sources\_config.yml** 文件。由于幅度有限，我只摘取农业部分的来源做示例：

```
sources: # 文件开头，下面的就不需要这个了
  farming: # 农业
    wheat: 2.0 # 按照 物品ID: 熟练度值 的格式依次填写，注意空格
    potato: 2.5
    carrot: 2.7
    beetroot: 3.0
    nether_wart: 3.0
    pumpkin: 3.4
    melon: 3.4
    sugar_cane: 1.7
    bamboo: 0.25
    cocoa: 4.0
    cactus: 6.0
    brown_mushroom: 7.0
    red_mushroom: 7.0
    kelp: 0.5
    sea_pickle: 4.0
    sweet_berry_bush: 2.5
    glow_berries: 4.5
```

### 如何设置升级后的奖励值（包括提升的属性值）:

打开 **plugins/AureliumSkills/rewards** 文件夹，里面的所有文件名称都是一个技能的 ID，我们以 farming.yml 文件为例子（同样是农业）：

```
patterns: # 路径式的解锁，也就是每升多少级给一次这个奖励
  - type: stat # 奖励类型，这里填写 stat 代表给予属性
    stat: health # 给予什么属性，这里是生命
    value: 1 # 给予属性值
    pattern: # 什么情况下给这个奖励
      start: 2 # 最开始给的奖励值
      interval: 1 # 以后依次递增的值
  - type: stat
    stat: strength
    value: 1
    pattern:
      start: 2
      interval: 2
levels: # 达到固定多少级以后给予奖励
  6:
    - type: permission # 奖励类型，这里填写 permission 代表给予权限      
      permission: moneyhunters.job.farming # 给予什么权限
      value: true # 权限的值，true 代表给予正权限（即玩家拥有这个权限），false 代表给予负权限（什么意思不用我再说了吧）
      chat_message: \n              &a职业解锁! &6&l草药师 &7已被解锁! # 给予这个奖励聊天框的提示
      menu_message: \n\n&6草药师 &a&l职业解锁\n&7  通过职业获得金币报酬! # 给予这个距离菜单的提示
```

关于各个不同的奖励类型，我推荐你去该插件的 **Wiki**，有更详细的介绍。[点击这里以前往。](https://wiki.aurelium.dev/skills/config/rewards)


# 搭建教程

## 关闭你的服务器

在开始之前，你需要将你的服务器关闭。

## 前期准备

* 下载 **Superior™ v5 DLC：数据库搭建**，并安装到你的服务器内。
* 下载 **MySQL** 数据库并安装到你的 **VPS**。
* 点击 [这里](https://cloud.tencent.com/developer/article/1804255) 下载 **Navicat** 数据库管理软件。
* 搭建好一个 **BungeeCord** 服务端。
* 推荐登录插件：<https://polymart.org/resource/librepremium-bungee-velocity.2179>

## 将你的插件连接到 MySQL

有以下插件需要你连接到 **MySQL**。在此之前，如果你已经运营过一段时间，那么你可以 [点击 ](https://cloud.tencent.com/developer/article/1888637)这里查看将 **.db** 文件数据转到 **MySQL** 数据库的教程。

* AdvancedChests

打开其 config.yml 并找到如下内容：

![](/files/wizISfwqFIf2AquiX9um)

* AlonsoTags

![](/files/BXlN7P6o9e9myHywY8nu)

* AnotherDailyBonus

![](/files/zXXyOc1dYWdwN5lDMxrt)

* AureliumSkills

![](/files/tlodr6WRtzBC42caVQJV)

* BeaconPlus3

![](/files/WQqOucL9DUeIQFhDhd0w)

* ClueScrolls

![](/files/jUyCDydqITKpIoEWWkjT)

* FancyWaystones

![](/files/8rgSuVekgGoBMPrO9pSA)

此插件还需要额外配置，见下，将该选项改为 **true**：

![](/files/YWgMIHYxRP4XtKUX1NoG)

* HuskHomes

![](/files/4eq8SEAhRtbrLOHAqpdn)

**此插件还需要额外配置，见下：**

```
bungee_options:
  enable_bungee_mode: false # 改为 true
  server_id: server # 改为 BC 或者 VE 群组服务器的子服 id
  # 其他的不管
  cluster_id: 0
  messenger_type: pluginmessage
  redis_credentials:
    host: localhost
    port: 6379
    password: ''
    use_ssl: false
  tab_complete_cross_server:
    enabled: true
    delay: 60
```

![](/files/0xIkQljsRBWfaVcOwUjs)

* MCPets

![](/files/aynCuueYY2YSL5lG58TF)

* LuckPerms

![](/files/xXzEvfQ8pNTQAfrWyTZz)

**LuckPerms** 提供了非常简便的数据转换方法，详见 [这里](https://luckperms.net/wiki/Switching-storage-types)。

此插件还需要额外的操作，详见 [这里](https://luckperms.net/wiki/Syncing-data-between-servers)。

* Lands

![](/files/iIpUmtkhuxGi5FC83kWN)

* PlayerAuction

![](/files/I3tsQ6mfbawbytLDuBmi)

**server-name** 选项还需填写子服 id。

* PlayerCosmetics

![](/files/4kJotz7mLrHNyPE2FNOr)

* PlayerPoints

![](/files/UUESdFBrpon7AlDOpMjL)

* Quests

![](/files/OKbuVFT0ypQOeIk9Jyaf)

* SupremeBanks

在 config.yml 中找到。

```
settings:
  #Player Chat Event listener
  #Options: async, regular
  #With async, you can't open back up inventories so you will need
  #to switch to regular if you wish to do so however async is much faster
  #than regular so beware.
  #SERVER RESTART REQUIRED TO SWITCH
  listener: 'async'
  #Start balance
  start-balance: 0.00
  #Format of the numbers
  format: "###,###,###,###,###.##"
  #Storage Type (h2 or yml or mysql)
  #MySQL is very unstable rn and i dont suggest using it.
  storage: 'h2' # <----- 改成 MySQL
  #Auto Save? if false data will only be saved when server stops
  autosave: 'true'
mysql:
  enabled: false # 改成 true
  user: User
  port: 3306
  password: Password
  host: localhost
  database: Database
```

* Upgradeable两兄弟

在 config.yml 中找到。见 Lands 插件的截图。

* VentureChat

在 config.yml 中找到。

```
mysql:
  enabled: false # <----- 改成 true
  user: User
  port: 3306
  password: Password
  host: localhost
  database: Database
# Enables or disabled BungeeCord messaging
bungeecordmessaging: false # <----- 改成 true
channels: 
  Global:
#    color: dark_green
    chatcolor: 'NONE'
    mutable: true
    filter: true
    autojoin: true
    default: true
    distance: 0
    cooldown: 0
    bungeecord: false # <----- 改成 true
    alias: g
    permissions: None
    speak_permissions: None
    channel_prefix: ''
    format: '&f{alonsotags_tag_chat}&r{vault_prefix}{player_displayname}:{vault_suffix}'
```

* XConomy

在 config.yml 中找到。

```
Settings:
  #SQLite MySQL
  storage-type: SQLite # <----- 改成 MySQL
  #Use connection pool or not
  #Require 'slf4j' dependencies
  usepool: false
  #Whether to disable saving data asynchronously(SQLite no such setting)
  disable-async: false

#MySQL settings
MySQL:
  host: localhost
  port: 3306
  user: root
  pass: root
  database: data
  #auto add "_", can use %sign% to indicate Server ID (BungeeCord settings)
  table-suffix: ''
  property:
    usessl: false
    encoding: utf8
    timezone: ''
    allowPublicKeyRetrieval: false
```

### 特别提醒

所有插件在开启 MySQL 同时还要填写 host（ip）、port、user、pass（word）等信息，其他的不需要修改。

HuskSync 同样需要配置，不再累述。


# 欢迎

感谢您选择 **MagicTravel™**。


# 开服准备

## Java 17 安装

要使用 **MagicTravel**，您应该在您的设备上安装 **Java17**。

{% embed url="<https://docs.microsoft.com/en-us/java/openjdk/download>" %}
微软提供的 JDK17 下载地址
{% endembed %}

如果你对 **Java** 安装一无所知，那么，点击图中所圈的链接，下载好跟正常软件安装几乎一样，傻瓜式操作。

![Windows 萌新可以直接点这个安装](https://4115651646-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3sO2TESWYxbpY7M0Cj1D%2Fuploads%2FR5hbvXhCLUAMKMBQ9kV6%2F%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202021-12-16%20183346.png?alt=media\&token=bc694b81-9dcc-4e45-818f-63d65f3a1242)

## 修改服务端内的敏感信息

服务端有关我个人服务器的敏感信息位置分布如下：**plugins/Tab/config.yml** 内修改计分板信息；**plugins/Tab/config.yml** 内修改 **Tab** 信息；**plugins/HolographicDisplays/database.yml** 内修改浮空字信息。

## 将 MagicTravel 字样替换成你的服务器名称

我们建议您使用 **Notepad++** 软件进行该操作，用 **Notepad++** 软件打开服务端内任意一个 **yml** 文件，点击该软件上方的搜索按钮，再点击 **查找**。按图所示填写信息并完成操作：

![特别注意文件类型、目录两栏我怎么改的，你怎么写，目录应该是你服务端实际所在的目录，到plugins文件夹。（别有憨逼这个还抄我）](/files/EU41647mLU1dsdI7z2FY)

## 开始运行服务端

点击 **启动.bat** 即可开始运行。

## 给予自己所有权限

由于 **MagicTravel** 使用大量的 权限节点、任务节点 等判断玩家是否满足条件，同时各个 **NPC** 针对这些也有不同的 **剧情、对话、任务** 等。所以，如果你需要管理服务器，请先在服务器输入以下命令，以避免出现某个模块因尚未解锁导致无法正常使用的问题：

**/lp user <玩家> permission set \* true**

## **配套资源包**

**MagicTravel** 使用配套资源包以带给玩家更好的游戏体验，但这是可选的，如果你不需要，可以不搭载该资源包。

* 没有使用资源包的玩家的 **HUD** 处会出现一行乱码，您可以使用 **/mmobar toggle** 关闭。
* 没有使用资源包的玩家在打开装饰品页面时出现乱码、杂乱无章的UI，这不影响玩家实际游戏。
* 没有使用资源包的玩家在打开饰品栏页面时会出现UI不美观，这也不影响玩家实际游戏和在该页面的操作。

如果你的服务器并不想要这些增强，您可以进行以下操作：

* 删除插件 **PlayerCosmetic**
* 删除插件 **MMOBars**

**基岩版玩家已对此资源包优化调整，您无需过度担心。**

## Geyser

你可以通过 **Geyser** 使得基岩版玩家加入你的服务器。请注意我们不对 **Geyser** 提供任何售后指导服务。

{% embed url="<https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master>" %}
Geyser 下载地址
{% endembed %}

[点击这里](https://docs.superiormc.cn/geyser-wiki/) 以前往由 **SuperiorMC** 团队翻译的 **Geyser Wiki**。

同时，为了更好服务各位。我们向各位提供 **基岩版免密码登录和基岩版反作弊检测** 支持。但您需要额外安装 **Floodgate**，本服务端已自带 **Floodgate** 插件。

* 如果您是在 **BungeeCord** 等群组服使用 **Superior**，且使用 **Geyser** 插件版则您需要在群组服端额外安装 **Floodgate**，且将此 **Floodgate** 生成的 key.pem 复制到子服 plugins/Floodgate 目录下。
* 如果您使用 **独立版Geyser**，请将 **Floodgate** 生成的 **key.pem** 复制到 **Geyser端** 所在的根目录下。


# 配套资源包

## 用途与使用

**MagicTravel** 额外提供了一个配套资源包，它用于：

* 宠物模型的显示。
* 时装菜单的显示和所有时装的显示。
* 饰品栏的显示。（没有安装资源包情况下也可正常使用）
* 底部血条、法力条等显示。（基岩版玩家在没有安装资源包情况下也可正常使用）
* 抽奖箱模型、抽奖箱钥匙的显示。（没有安装资源包情况下也可正常使用）

其分别对应的插件是：

* mcpets
* PlayerCosmetics
* MMOInventory
* MMOBars
* AdvancedCrates

如果您决定服务器不需要资源包，那么您同时也需要删除所列插件或者修改所列插件的配置，这取决于在没有资源包情况下对应插件是否也能发挥作用。

资源包可以在 **QQ频道** 下载，您可以手动安装到客户端上，此资源包与正常单机的资源包不会产生冲突。服务端内不提供自动下载资源包的功能。

* 按下键盘上的 **Esc** 键。
* 在暂停游戏的页面中选择选项按钮。
* 在选项页面中选择资源包按钮。
* 在资源包页面中点击打开压缩包文件夹按钮。
* 将资源包复制到打开的文件夹中。

## 基岩版

基岩版目前不提供配套资源包。


# 插件概览

<mark style="color:red;">**如果像下面的菜单、前置这种开服的定义词你不知道是什么意思，那么请立即先去MCBBS看开服教程，以免祸害你的玩家，我说真的！**</mark>

**\*AdvancedCrates**：抽奖箱。

**Advanced-Portals**：传送门，在多处传送时用到。

**\*AngelChest**：天使之箱。

**BlockRegen：**&#x65B9;块再生，部分场景下挖矿时用到。

**ChatCommandArg：**&#x5B9A;制插件，聊天框输入指令变量，菜单中用到。

**\*Citizens：**&#x4E;PC。

**\*CMI：**&#x57FA;础。

**CMILib：**&#x43;MI的前置。

**ConditionalEvents：**&#x6761;件判别事件，在多处用到，在副本地图内触发剧情、合成等用到。

**CosmicVaults：**&#x4ED3;库。

**DeluxeMenus：**&#x83DC;单。

**\*Drop2InventoryPlus：**&#x6389;落物自动拾取，VIP特权用到。

**EZColors：**&#x804A;天颜色。

**FastAsyncWorldEdit：**&#x5F02;步创世神，也是部分插件的前置。

**floodgate-spigot：**&#x47;eyser 检测基岩版玩家用到。

**\*GPS：**&#x5BFC;航，剧情用到。

**HolographicDisplays：**&#x6D6E;空字。

**HolographicExtension：**&#x6D6E;空字显示PAPI变量。

**InfiniteJump：**&#x4E8C;段跳。在魔法世界中用到。

**\*Interactions：**&#x5267;情对话。

**\*ItemSkins：**&#x7269;品皮肤。

**JoinCommands：**&#x8FDB;服执行命令。

**LibsDisguises：**&#x4F2A;装，部分怪物需要。

**LuckPerms：**&#x6743;限组。

**mcpets：**&#x5BA0;物。

**\*MMOBars：**&#x66F4;好的HUD显示。

**\*MMOCore：**&#x52;PG核心。等级、职业、属性等都用到。

**\*MMOItems：**&#x52;PG物品。武器、装备、升级、合成等都用到。

**\*MMOInventory：**&#x52;PG背包。饰品栏用到。

**\*ModelEngine：**&#x6A21;型管理。3D （基岩版）模型显示需要它。

**MPoints**：自定义点数。剧情用到。

**Multiverse-Core：**&#x591A;世界。

**\*MythicMobs：**&#x795E;话怪物。

**PlaceholderAPI：**&#x50;API变量。

**PlayerAuctions：**&#x62CD;卖行。

**\*PlayerCosmetics：**&#x65F6;装。

**PlayerMGod：**&#x5B9A;制插件。保护新手在教程期间不会死亡但正常扣血。

**PlayerNightVision：**&#x5B9A;制插件。给予玩家永久夜视效果。

**PlayerPoints：**&#x70B9;券。

**ProtocolLib：**&#x524D;置。

**ProtocolStringReplacer：**&#x5B57;符替换，在部分不提供语言文件的插件中强制汉化用到。

**Quests：**&#x4EFB;务。

**Shopkeepers：**&#x6751;民交易。

**\*ShowItem：**&#x7269;品展示。

**Skript：**&#x811A;本。本端提供1个定制脚本，功能是让玩家进服获得菜单物品。

**TAB：**&#x8BA1;分板、TAB等多合一。

**trash：**&#x5783;圾桶。

**VentureChat：**&#x804A;天。

**ViaVersion：**&#x8DE8;版本。

**VoidGen：**&#x865A;空生成器。

**worldguard：**&#x533A;域保护。

**带\*的是付费插件，请在尽可能情况下支持正版，支持原作者的付出！**


# 世界概览

**b+数字：**&#x7B2C;四路口 BOSS 挑战世界。

**f+数字：**&#x7B2C;一路口和第二路口的剧情副本世界。

**graveyard：**&#x5893;园世界。玩家死亡后的天使箱子在此生成。

**world：**&#x5192;险者之镇世界。


# 服务端概览

**cache 文件夹\***：包含官方服务端的文件，是服务端核心启动的根本。

**data-storage 文件夹\***：包含粘液科技等插件的数据。

**libraries 文件夹\***：包含部分插件的运行库。

**logs 文件夹**：包含服务端的日志文件。

**plugins 文件夹**：包含服务端插件。

**其他各个文件夹**：是服务端内的各个世界。

**其他文件**：是服务端核心的配置文件等。


# 基础指令

基础指令我们建议您通过 **/?** 指令来一步步、一个个学习所有指令是干什么的、怎么用的，这样才对你对 Superior 使用更有帮助。（?是英文的问号）

## 多世界

### /mv import 世界名称 维度类型 —— 加载一个世界

将你需要导入到服务器的世界，解压并放置在服务端的根目录&#x4E0B;**（也就是和 启动.bat 所在的同一个地方）**。世界名称即是文件夹名称，请不要使用 **中文、空格和其他奇奇怪怪符号**，全英文和数字，否则会导致很多意想不到的问题！

维度类型有 3 种：**normal（主世界）、nether（下界）和 end（末地）。**

### /mv tp 世界名称 —— 传送到一个世界

这个传送指令是给服主用的，如果想给玩家设置定点传送，那么请使用 **/setwarp 传送点名称** 指令，这样玩家就可以使用 **/warp 传送点名称** 指令传送到那里。

### /mv create 世界名称 维度类型 -g 生成器名称 —— 创建一个世界

-g后面（包括 -g）的可以删除，这样就直接使用原版生成器。

## 经济

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

## 权限组 <a href="#quan-xian-zu" id="quan-xian-zu"></a>

### /lp editor —— 打开权限组网页编辑器 <a href="#lp-editor-da-kai-quan-xian-zu-wang-ye-bian-ji-qi" id="lp-editor-da-kai-quan-xian-zu-wang-ye-bian-ji-qi"></a>

使用该指令后插件会发给你一个链接，你可以在网页内可视化管理你的权限组和权限节点，非常方便。

### /lp user 玩家名称 parent add 组英文ID —— 给予玩家一个权限组 <a href="#lp-user-wan-jia-ming-cheng-parent-add-zu-ying-wen-id-gei-yu-wan-jia-yi-ge-quan-xian-zu" id="lp-user-wan-jia-ming-cheng-parent-add-zu-ying-wen-id-gei-yu-wan-jia-yi-ge-quan-xian-zu"></a>

这个指令代表给玩家新的一个权限组，旧的权限组同时也在。同样是上面这个指令，将 add 改为 set 则代表将这个玩家设置到新的权限组，玩家旧的权限组不复存在。由于本端设置了 parentGroup 功能，并且很好发挥了 weight 规则：weight 越高，也就是上面那个表越往下的组，它一定会携带上面所有权限组的权限，因此本端 add 和 set 给予玩家权限组没有什么区别，但是在其他制作不严谨的服务端或者专门利用这个特性制作一些规则的服务端，如果你权限组指令没打对，会出大问题。

### /lp user 玩家名称 parent addtemp 组英文ID 时间数 —— **给予一个玩家临时的权限组** <a href="#lp-user-wan-jia-ming-cheng-parent-addtemp-zu-ying-wen-id-shi-jian-shu-gei-yu-yi-ge-wan-jia-lin-shi-d" id="lp-user-wan-jia-ming-cheng-parent-addtemp-zu-ying-wen-id-shi-jian-shu-gei-yu-yi-ge-wan-jia-lin-shi-d"></a>

时间数如何表示？1d = 1天，30d = 30天，1mo = 1月，1h = 1小时... 还不懂建议看一下脑科。如果你一不小心给错了玩家权限组，怎么撤回？千万不能说直接把玩家权限组删了，否则玩家权限组没了啥也干不了。用上面的 set 指令，引导玩家到他原来的组里面。

### /lp group 组英文ID permission set 权限节点 true —— **给一个组添加一个权限节点** <a href="#lp-group-zu-ying-wen-id-permission-set-quan-xian-jie-dian-true-gei-yi-ge-zu-tian-jia-yi-ge-quan-xian" id="lp-group-zu-ying-wen-id-permission-set-quan-xian-jie-dian-true-gei-yi-ge-zu-tian-jia-yi-ge-quan-xian"></a>

将 **true** 替换为 **false**，则代表这个权限组一定没有这个权限，尽管插件设置了所有玩家默认都有这个权限节点的权限，如果这里是 **false**，也会被强制替换为 没有权限。

## 任务

### /q

打开任务面板。（玩家不可用，因为玩家如果可用他们将可以取消任务和随意开启其他任务）

### /q a moddata start <玩家名称> <任务ID>

给玩家开始一个任务，任务ID可在 **plugins/Quests/quests** 中查看。

### /q a moddata cancel ...

同理，取消一个任务。

### /q a moddata complete ...

同理，给玩家结束一个任务。（会获得奖励，上面的不会获得奖励）


# 常见问题

### Q：玩家已经有时装情况下如何穿戴头盔、胸甲？

A：时装的头盔、胸甲和RPG的头盔、胸甲并不冲突。您在已有时装的情况下可以正常穿戴RPG的头盔、胸甲，只是穿戴后它们不会显示出来。如果您要取消穿戴RPG的头盔、盔甲，只需尝试将时装的头盔、胸甲取出即可。请在生存模式下完成这一操作。时装的头盔、胸甲需要在时装菜单取消穿戴。


# MagicTravel Update

## **主要更新与次要更新**

**MagicTravel** 的更新分为 **主要更新和次要更新**。如果发生了一次 **主要更新**，那么 **MagicTravel** 版本号的第二位将会发生变化（例如：v.1.1 -> v.1.2）；如果发生了一次 **次要更新**，那么 **MagicTravel** 版本号的第三位将会发生变化（例如：v.4.0.1 -> v.4.0.2）。每个主要更新的第一个版本的第三个数字默认为 0，且一般会被省略（例如 **v.4.5** 的第一个版本号实际为 **v.4.5.0**，但我们会把最后面的 0 省去）。

每次主要更新，我们发给客户 一个主包（完整的服务端）和一个 **MagicTravel Update**（更新包）。每次次要更新，我们只会发给客户 一个 **MagicTravel Update**（更新包）。

## 了解 **MagicTravel** Update

**MagicTravel Update** 旨在方便您更快的更新 **MagicTravel** 服务端。我们会将本次服务端更新的变化内容放置于内，一般情况下，您只需每次将该更新包替换到服务端对应位置即可。

## 如何使用 **MagicTravel** Update？

### 停止运行您的 **MagicTravel** 服务端

请先在服务器控制台输入指令 **stop** 以停止您的服务端，请勿直接叉掉服务端或者使用 kill 指令强制关闭服务端，这会造成一些数据保存问题。

### 下载 **MagicTravel** Update 压缩包并检查其应该替换服务端哪里的文件

在没有特别说明的情况下，**MagicTravel Update** 压缩包都是基于服务端的 plugins 文件夹进行替换，您只需将压缩包放置到 **任意** 文件夹并解压缩，将解压缩的文件夹内的文件全部复制并替换到服务端的 **plugins** 文件夹内。如有特殊情况，Superior Update 会有相应的提示文件。

如果 **MagicTravel Update** 包含多个文件夹，且不是 **plugins** 文件夹或者又包含 **plugins** 文件夹，又包含其他名称的文件夹，则直接将 **MagicTravel Update** 复制并替换到服务端的 **根目录**（即服务端核心所在的目录）。包含 bukkit.yml、spigot.yml、paper.yml 等位于服务端根目录下的文件也是同理。

总之一句话：**放到服务端对应位置的地方即可，有经验的服主一眼就看出来应该放哪里。**

### **小心，别把自己服务端的数据给替换了！**

如果你自己修改了某个插件的配置，那么在更新时务必留意此次更新是否包含此插件的配置，**如果是的话，请一一对照，手动修改插件配置文件，不要替换，否则你自己修改的内容将会丢失**！

一般情况下，你只需要看每个文件最后修改日期，离服务端更新日期最近的文件一定是被修改的，你只需检查这些文件即可。


# 权限 & 权限组

**会员等级** 是 MagicTravel 是一个重要的内容。该内容通过 **LuckPerms** 插件提供支持，它是一个 **权限组** 管理插件。服务端本身关于 **权限 & 权限组** 的配置已经相当完善，此部分内容是给服主参考使用的。

## 权限组

一个权限组就是一批拥有指定权限节点的玩家组。Superior 拥有以下权限组：

| 组英文ID   | 组中文Prefix | 获得方法   |   |   |   |
| ------- | --------- | ------ | - | - | - |
| default | 普通玩家      | 进服     |   |   |   |
| vip     | VIP       | 冒险家NPC |   |   |   |
| mvp     | MVP       | 冒险家NPC |   |   |   |

权限组的 **ID** 只会在你输入权限组指令时使用到。Prefix 在计分板显示、聊天显示等位置都会用到。

每个权限组都有一个 **weight** 值，越往下的权限组，其值越高。weight 值越高，代表当你同时拥有2个及以上权限组时，在计分板显示等位置时，将会优先显示 **weight** 值高的权限组的 **Prefix**。不设置该值的后果就是，当玩家拥有 2 个及以上权限组后，计分板等位置会显示玩家所有的组，例如 **\[普通玩家]\[VIP]**。

## 权限节点

一个类似于 **superior.v4** 的字符就是一个权限节点。如果玩家拥有一个权限节点之后，才能使用该权限节点所代表的操作。

## **怎么知道一个插件的权限节点？**

以 **CMI** 为例子，请先到 MCBBS 服务端插件板块搜索这个插件是否被人搬运过，请使用英文搜索，中文的你得找到猴年马月。然后再前往原帖地址，也就是 **SpigotMC** 地址查找这个插件的权限节点列表。

如果你没有找到，请查看帖内是否有 **Wiki** 或者 **Doc** 等字样文字，进入后一般会进入这个插件的文档中心。

**​CMI** 文档的地址：<https://www.zrips.net/cmi​>

找到 **permission** 字眼，一般这个页面的就是这个插件的权限组列表。

如果实在查找不到，你可以善用 **LuckPerms** 的网页编辑器功能，在你编辑一个权限组的权限页面里，当尝试新增权限节点时，它会有一个自动补充功能，这时即可查看到一个插件基本完整的权限节点列表了。通常来说，一个插件的一个指令的权限节点一般是 **插件英文名称.command.指令** 或者 **插件英文名称.指令**，例如 **cmi.command.spawn** 代表可以使用 **CMI** 的 **/spawn** 指令。


# 菜单

服务器的菜单使用 **DeluxeMenu** 插件实现。服务端本身关于 **权限 & 权限组** 的配置已经相当完善，此部分内容是给服主参考使用的。

## 创建菜单

打开 plugins/DeluxeMenu/config.yml 新增新的菜单：

```
debug: false
check_updates: false
gui_menus:
  bedrock:
    file: bedrock.yml
  新的菜单名称:
    file: 新的菜单文件的名称.yml
```

重启服务器，新的菜单文件应当被生成。

## 编辑菜单

由于 Superior 菜单相当完善，您完全可以通过已有菜单自学，下面针对一个实例进行小教程。

### 手动修改菜单实例

以传送菜单的主世界传送为例子，我们想要区分左右键分别执行不同功能修改为左右键执行相同功能，我们在 **plugins/DeluxeMenu/menus/teleport.yml** 文件中找到以下内容：

```
  # 代表这个菜单物品的ID，在服务器内无感，没什么用处
  # 但要保证整个菜单页面就这一个ID，不能有重复
  'overworld':
    # 该菜单物品的对应物品ID，这里是一个玩家头颅
    # 如果你想改成其他物品，请使用它的英文 ID
    # 例如石头是STONE
    material: basehead-eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjEyYTAzYTRjMTFiNGQ0NzI0NzJlN2U0NTkzZDJlMTI2YTYyNTllMzNjYzgxZjQ0ZWIwNWNmMDQyZDA3Njk2NyJ9fX0=
    # 该菜单物品在整个菜单所在的槽位
    # 这里代表在第 11 格，最低是 0，务必注意
    slot: 10
    # 优先值，这里没什么用，跟权限组那边的 weight 效果是一样的
    # 当一个槽位被多个菜单物品占用时，优先值越高的物品，越先被展示
    # 如果最高优先值物品不能被展示给玩家，则递归到下一个优先值的物品
    priority: 2
    # 该菜单物品展示的名称
    display_name: '&a&l主世界 &7(随机传送)'
    lore:
    - ''
    - '&e&l● 信息'
    - '     &f目前 &c&lSuperior &f的世界提供 &d2 &f个主世界'
    - '     &f维度. 建议萌新前往普通主世界，大佬' 
    - '     &f前往泰拉主世界.'
    - ''
    - '&f&l● 传送价格'
    - '     &f普通主世界:&6 免费 ⛃'
    - '     &f泰拉主世界:&6 300 金币 ⛃'
    - ''
    - '&8 » &e右键以传送到普通主世界'
    - '&8 » &e左键以传送到泰拉主世界'
    # 左键后执行的动作
    left_click_commands:
    - '[close]'
    - '[player] rtp world terra'
    - '[sound] ENTITY_EXPERIENCE_ORB_PICKUP'
    # 右键
    right_click_commands:
    - '[close]'
    - '[player] rtp world survival'
    - '[sound] ENTITY_EXPERIENCE_ORB_PICKUP'
```

解决这里的左右键的一个办法，就是新增专门给基岩版玩家右键的新物品，你可以重新复制上面的格式，新增一个菜单物品。注意菜单物品ID要改一下，例如 overworld1。slot 也要修改，例如 11。

### **执行的动作的意思**

\[close] 代表玩家使用这个菜单物品后，菜单自动关闭掉

\[player] xx 代表以玩家本人身份自动执行xx命令

\[sound] xx 代表播放xx音效


# NPC

这里介绍的是 **Citizens** 的 **NPC**。

## 创建 NPC

请先站在你需要创建 **NPC** 的大概的地方，然后使用指令 `/npc create NPC名称`。其中 **NPC** 名称是会显示在 **NPC** 头顶上方的，如果你要显示的内容 **超过一行**，请先填写 **&7，后面使用浮空字代替**。这时，一个 **NPC** 应该在你所在的位置生成了。

我们再使用以下指令对 NPC 进行进一步操作：

* /npc skin 正版玩家名称 —— 将 NPC 的皮肤设置成某位正版玩家的样子。
* /npc look —— NPC 将会看离它最近的玩家。
* /npc command add -p 指令 —— 给 NPC 绑定一个左键以玩家身份执行的指令

然后，使用指令 `/citizens save` 来保存当前的修改。这时打开 `plugins/Citizens/saves.yml` 文件，找到你刚刚创建的 NPC 的配置：

```
  '6':
    metadata:
      cached-skin-uuid-name: trades
      cached-skin-uuid: bc2d2519-c5e4-48f3-99c5-bfe9d396e73e
    name: §7
    uuid: f69095aa-6356-4974-9d0b-ed2a85d69bd4
    traits:
      skintrait:
        fetchDefaultSkin: true
        signature: uE/P8Xdcixfdns663hwABVwaBc3AOvL3LsuOCGJ0I7QSAm+OdfcnF3Cv2KQM1mwCAorHtOpmWGnd3LA7SfXEhYJdVuCuMZwMWTW/mexDRVD0qxAvj5NsHrKLX+hB80nWHshl0n6dMKyF0BzKqmyX0jLhYoYjXRDn4PxbcC4e0X11oHSo8EEanUTTk9Tu0VXAilEApibp+U3VvxnKnx1zm3aH97pxvS1gB0eYskUcv3fPwJ9aM4i5cjjxaXAg0jslm9sTDQzU+ZztjbNad7969TheUxCf5rDm/t3sjnasywEkcj3su7M+CpdwtDHHRBI47Nq6N8qAbR30cSz7RVRbmdnglyUssxYlFdVtNJ9GLAI5dBTBajbs7CM0gUcD4p6ya2upg9lmWnLBm0fLrkWNHeeSK0IzSPJRTyzO1LssKEFDso3l0IVhJrUxBIl14HaXgo9TuzI/weKo3HRv0t8DFnoReq0ugeAQ34frACEtpOATpsz7fpQf0cm/krpHh2ajF+CLamClU0j/9nH9UvKYkFicfYiYEPVoQfZ33KZHwefbtjt6B3g8c9QlkySTBHd0wNw9/TuylG9YPryr9gq29RxOSyxtELvwYXIi82qNjmZfqMgRu9iLLtZEdFN+pSJqPGBIjrEMEwYEayTrYs5DyzknqdEwvMbddgOPTBjIjps=
        skinName: trades
        textureRaw: ewogICJ0aW1lc3RhbXAiIDogMTYyODI0NDkwMzM2MSwKICAicHJvZmlsZUlkIiA6ICJiYzJkMjUxOWM1ZTQ0OGYzOTljNWJmZTlkMzk2ZTczZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJUcmFkZXMiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWJlZGI5NDJjMTU2ZDc0Mzc5MWE1NWY5ZDJjODg3MDBkZWZiOWY5YzEyYzQ0MGM3YjNiODc3ZDhmZGZiNWU3YyIKICAgIH0KICB9Cn0=
        updateSkins: false
      lookclose:
        range: '5.0'
        disablewhilenavigating: true
        enabled: true
        enableRandomLook: false
        randomLookDelay: 60
        realisticlooking: false
        randomPitchRange:
          '0': -10.0
          '1': 0.0
        randomYawRange:
          '0': 0.0
          '1': 360.0
      spawned: true
      location:
        bodyYaw: -85.93808
        world: world
        x: '-50.5'
        y: '38.0'
        z: '-253.5'
        yaw: '-47.4141'
        pitch: '0.0'
      type: PLAYER
      commandtrait:
        cost: -1.0
        executionMode: LINEAR
        experienceCost: -1.0
        hideErrorMessages: false
        commands:
          '0':
            command: trademenu
            hand: RIGHT
            player: true
            op: false
            cooldown: 0
            globalcooldown: 0
            n: -1
            delay: 0
      owner:
        uuid: ceb29779-392b-30ee-a212-6ad059f9046b
      sneak:
        sneaking: false
    traitnames: lookclose,skintrait,scoreboardtrait,type,spawned,inventory,equipment,owner,sneak,commandtrait,mounttrait,location
    navigator:
      speedmodifier: '1.0'
      avoidwater: false
      usedefaultstuckaction: true
```

找到 **location** 配置位置，将里面的 **x，y，z** 三个值小数点后面数字全部删除，改成 **5**，这样 **NPC** 就站在方块的正中央，更加美观了。（需要使用 `/citizens reload` 指令重新加载配置，该指令需要你执行两次）

## 编辑 NPC

* /npc sel —— 选中一个 NPC，你必须先对准一个 NPC 看然后使用该指令，才能继续使用 Citizens 的其他指令，否则插件不知道你要对哪个 NPC 进行编辑。
* /npc id —— 查看一个 NPC 的id，如果你忘记一个 NPC 的id，可以通过该指令查看。
* /npc movehere —— 将一个 NPC 搬到你所在的位置。
* /npc remove —— 删除一个 NPC。


# 浮空字

浮空字和 **NPC** 大致相同，通过 **HolographicDisplays** 插件提供支持，在此简略给各位服主参考一下。

## 创建浮空字

在你想要创建浮空字的大概位置输入指令 `/hd create 浮空字id 浮空字的第一行话`。浮空字的第一行话可以先不写。由于通过指令编辑浮空字的内容是需要一行一行的改，非常麻烦，因此我们直接介绍如何通过配置文件编辑浮空字。

## 编辑浮空字

打开 **plugins/HolographicDisplays/database.yml** 文件，找到你刚刚创建的浮空字。跟 **NPC** 一样，将 **location** 的 **小数点后删掉取5** 是非常建议的。下面的 **text** 则可以编辑浮空字的内容。

如果需要删除浮空字，直接按照删除对于浮空字的配置即可。一个完整的浮空字配置示例如下：

```
welcome:
  location: world, -10.5, 38.9, -344.5
  lines:
  - 欢迎您来到 &c&lSuperior &f的世界
  - ''
  - 您现在在 &b&l祥和主城 &f，到处看看有什么值得探索的吧！
  - ''
  - '&e&l服务器 99% 的功能都是通过菜单实现: &c/helps'
  - ''
  - '&e需要帮助？想和其他玩家交流？请加入我们的QQ群：915270372!'
```


