Skip to content

iTXTech/mirai-js

Repository files navigation

Mirai Js

运行于 JVM 的强大的 Mirai JavaScript 插件运行时

使用 JavaScript 编写 Mirai 插件,支持与所有 Mirai 面向 Java 的API 和部分 Kotlin DSL,暂不支持 Android 环境。

使用须知

所有基于Mirai JsJavaScript插件必须遵循AGPL-v3协议开放源代码,详见 协议文本

API可能随时变动,请保持更新!

特性

  • 完整的 Mirai 面向 Java 的支持。
  • 支持大部分 Kotlin Coroutine。
  • 不完整的 ES6 支持
  • 灵活地加载外部库。

Mirai Js 插件管理器 jpm(JavaScript Plugin Manager)

  1. mirai-console 中键入 /jpm 获得帮助
  2. /jpm 可 列出、加载、重载和卸载 插件。

/jpm [list|load|reload|unload] <插件ID/文件名>

使用

  • Releases 中下载最新的版本,放入 mirai console 的插件文件夹,启动 mirai console。
  • data/org.itxtech.miraijs.MiraiJs/plugins 下放入 zip 格式的 Mirai Js 插件。
  • 在 mirai console 输入 /jpm load <文件名> (不需要加 .zip) 来加载这个插件。

开发

查看开发文档:docs/general.md

查看 API 文档:<未完成>

Android 兼容性

插件的 ExternalLibraryLib 中提供了加载外部 jar 功能,使用了 Android 不支持的 URLClassLoader

后续将会兼容 Android : 使用 D8 将 Java 字节码编译为 Dex 字节码后使用 DexClassLoader 加载。

使用 mirai-console-loader 启动 mirai 时,脚本环境无法找到 net.mamoe.mirai 包,请使用原始方式启动:

java -cp "./libs/*" net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader

详见:#10

开源协议

Copyright (C) 2020-2021 iTX Technologies

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.