入门
你好呀~ 欢迎来到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。
您不应绕过此限制,我们只是在必要时添加此检查,它是插件性能和服务器稳定性的最基本保证。 如果您触发了线程检查,请使用调度器来完成您的任务。