BlackboxMC

一个允许您使用任何可以创建共享库的语言来开发Spigot插件的插件,从而可以使用除了Java之外的任何编译型语言。

资源图片
# BlackboxMC BlackboxMC 是一个插件,它允许您使用任何可以创建共享库的语言来开发 Spigot 插件,从而可以使用 Java 以外的任何语言(以及人们为插件制作的其他解释型语言)。它本质上是一个自动化 JNI 设置过程的插件,但也提供了一种通过原生代码扩展 Java 类的系统,以及(单独地)一种创建可以覆盖 JavaPlugin 类中方法的全局函数的方式(注意:此功能不受 Paper 支持,并依赖于开发人员已移除且无意重新引入的功能)。它很快将支持在不使用该系统的情况下创建自定义命令。 **这个插件是在了解之前为什么没有做过以及您可能不想这样做的情况下的。** - 这样分发插件会变得更加困难。 - 从技术上讲,您会失去性能,因为 JNI 调用很慢(...在好的机器上大约需要 15 纳秒,这是一个近 10 年前的指标,但可能在某些场景中很重要) - 除非您想分叉该仓库并添加对相关插件的支持,否则您将失去链接到其他插件并为其创建插件的能力(我正在考虑在帮助库中添加对最流行的插件的支持)。 假设您不在乎。这是为那些厌倦了 Java,永远不想再使用 Gradle 或 IntelliJ,只想使用他们喜欢的语言的人准备的(假设他们不喜欢 Java)。 **使用方法** *目前,仅支持 Windows 和 Linux 操作系统。* 要在 Spigot* 服务器中使用它,只需将 BlackBox 插件放入您的插件文件夹中即可。然后,它将加载您放入同一插件文件夹中的任何 .dll (Windows) 或 .so (Linux) 文件。 编程需要了解如何使用 JNI 的最基本知识。它与一个 Rust 库(以及计划中的一个 C++ 库)一起开发,该库主要抽象了使用 JNI 的复杂过程,让您可以更专注于插件开发,但该库具有接受 JNIEnv 指针作为参数的函数,因此了解 JNI 的工作原理仍然很重要。如果您想使用其他语言,则也需要 JNI 知识。 有一个使用库的入门指南,并且有它的文档。 *由于 paper 开发人员删除的功能,某些功能在 Paper 下不受支持。如果您使用 Paper,您的插件将不会被视为单独的插件,这意味着您无法使用插件的函数覆盖系统,例如 getCustomWorldGenerator 或 onCommand。