跳转至主要内容

入门

你好呀~ 欢迎来到QuickShop-Hikari的开发者社区!

本系列文章将帮助您构建 QuickShop-Hikari 的插件或将其与您的服务器深度整合。

使用条款

QuickShop-Hikari is open source using the GPLv3 license and you can always find our source code on Github.
You are free to modify and use any part of QuickShop-Hikari's source code as long as you adhere to the GPLv3 agreement.

🚧不要太相信 Javadoc

QuickShop 已经有 10 多年的历史了(自 2012 年 7 月 18 日起由 netherfoam 发起),而 Javadoc 可能非常陈旧且不准确。 尽管我们经常修改 Javadoc,但其中绝大部分仍然很陈旧。 当文章与 Javadoc 中的内容发生冲突时,请参考此文章。

添加 Maven 存储库

<repositories>
<repository>
<id>codemc</id>
<url>https://repo.codemc.io/repository/maven-public/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>com.ghostchu</groupId>
<artifactId>quickshop-bukkit</artifactId>
<version>VERSION HERE</version>
<scope>provided</scope>
</dependency>
<!--You need also bring in quickshop-common module to your project so it will help you resolve our used 3rd-party libraries-->
<dependency>
<groupId>com.ghostchu</groupId>
<artifactId>quickshop-common</artifactId>
<version>VERSION HERE</version>
<scope>provided</scope>
</dependency>
</dependencies>

线程控制

QuickShop-Hikari 将操作源分为三种类型:

  • 服务器主线程
  • 异步线程(任何其他线程,但不包括服务器主线程)
  • Hybird

如果通过错误的线程访问 API,QuickShop-Hikari 将强制性显示运行错误。

尽管 QuickShop-Hikari 的许多部分在内部设计为线程安全,但使用 Bukkit API 操作的 API 仍然要求您使用主服务器线程进行调用。

对于可能触发网络 IO 或长时间磁盘 IO 的 API,您不需要在服务器主线程上执行它们。

You can see Util.ensureThread() and find out the requirements of the different APIs by looking up their use. 默认情况下,允许从任何线程调用不使用 Util.ensureThread() 的 API。

您不应绕过此限制,我们只是在必要时添加此检查,它是插件性能和服务器稳定性的最基本保证。 如果您触发了线程检查,请使用调度器来完成您的任务。