morny-book/command/info.md

122 lines
5.0 KiB
Markdown
Raw Normal View History

# /info
> > [subcommands...]
>
> 输出当前 Morny 的各种信息
`/info` 命令允许你可以查看当前的 Morny 的 Coeur 信息等等。这些信息包括但不限于 Morny Coeur 的版本,运行状态,或是一些内置资源的信息。
下面的表格列出了在 `/info` 命令中可以使用的子命令。向下翻阅还可以找到每个单独子命令的详细说明。
使用不带参数的 `/info` 将会默认使用子命令 <code>/info [runtime](#runtime)</code>
{.overview}
| <small>/..</small>subcommand | "Description." |
|--------------------------------|----------------|
| [**`version`**](#version) | 检查当前 Morny Coeur 版本信息。 |
| [**`runtime`**](#runtime) | 检查 Morny Coeur 的运行状态信息(包括了运行的版本资讯)。 |
| [**`stickers`**...](#stickers) | 列出或通过内部id检查在 Coeur 中内置使用的贴纸。 |
<style>
table.overview thead tr th {
text-decoration: underline;
}
</style>
---
## version
> also known as `v`
>
> 作为对旧版本的兼容,这个功能也可以直接通过 Morny 命令 `/version` 使用。
子命令 `version` 将会输出显示 Morny 的 Coeur 版本信息。
```text
version:
- Morny BEIPING
- 1.0.0-RC3
- git 8e28bbbc
core md5_hash:
- 211efe58924137e86ca4f9f83c6dce9e
coding timestamp:
- 1668764979000
- 2022-11-18 09:49:39:000 [UTC]
```
---
## runtime
> 作为对旧版本的兼容,这个功能也可以直接通过 Morny 命令 `/runtime` 使用。
>
> 使用不带参数的 `/info` 也会重定向到这个功能上来。
子命令 `runtime` 将会输出显示这个 Morny 实例的运行状态信息。
这些信息包含了运行 Morny 的宿主机环境相关的信息,可以利用它来监控 Morny 的运行状态。它也包含了<small>以一种压缩方式显示的[^1]</small>当前 Morny 的版本。
> 对于想要自己搭建 Morny Coeur 实例的读者,需要注意的是:**在默认的 Morny 版本中,这个命令没有鉴权!**。
>
> 这意味着所有可以访问 Morny bot 的用户都可以获得这些信息。它可能会包含你不希望向普通用户透露的关于宿主机环境的信息——它们或许会对你的机器造成安全问题的话。尽管可惜的是 official Morny Coeur 版本并未为这个命令添加鉴权,你可能需要自己更改代码并编译自己的 Coeur。
```text
system:
- 5a783b01b18e
- Linux (aarch64) 5.10.0-19-arm64
java runtime:
- BellSoft.OpenJDK 64-Bit Server VM
- 18.0.1.1+2
vm memory:
- 40 / 6004 MB
- 4 cores
coeur version:
- 1.0.0-RC3+git.8e28bbbc*BEIPING
- 211efe58924137e86ca4f9f83c6dce9e
- 2022-11-18 09:49:39:000 [UTC]
- [1668764979000]
continuous:
- 12d 15h 37min 23s 393ms
- [1093043393]
- 2023-02-11 16:46:51:263 [UTC]
- [1676134011263]
```
[^1]: 以压缩方式显示的版本信息即为像是 `1.0.0-RC3+git.8e28bbbc*BEIPING` 这样,将 *基础版本`1.0.0-RC3`**版本的 git commit 信息`git.8e28bbbc`**版本代号`beiping`* 使用符号连接融合为一行的显示方式。作为对比,在 [`version`](#version) 当中,这些每一个都会作为单独的一行信息列出。
---
## stickers...
这个功能可以让 Morny 列出在 Morny Coeur 当中被定义使用的贴纸[^2],或是通过 Morny 内部贴纸 ID[^3] 检查 Morny Coeur 当中的某个贴纸。
### 列出所有贴纸
> **⚠ 刷屏警告!**
> 使用此功能在一般情况下都会造成 Morny 的消息刷屏。在使用前请事先确定自己的操作,以避免意外刷屏给群组管理员~~以及你自己~~带来麻烦。
只需要简单的使用 `/info stickers` 即可以列出 Morny Coeur 内部已定义且已加载的所有的贴纸。
Morny 将会以 *一条贴纸 ID 信息* - *一个此 ID 对应的贴纸* 的格式按照内部定义顺序列出所有内部定义的贴纸。
因此,列出所有贴纸将会产生相当多的信息量,这会导致这个命令使得 Morny 的消息刷屏。
### 检查特定贴纸
通过 `/info stickers.<sticker-id>` 的格式使用命令Morny 即会检查 `<sticker-id>` 所对应的贴纸,并输出这个贴纸。
如果成功Morny 将会通过和列出贴纸一样的方式,按照 *一条贴纸 ID 信息* - *一个此 ID 对应的贴纸* 的格式回应你所检查的贴纸:
![get an sticker with morny sticker id success](./info-stickers-id-success.png)
如果在 Morny Coeur 中并没有这个 ID 所对应的贴纸,那么命令将会失败:
![get an sticker with morny sticker id 404 failed](./info-stickers-id-fail.png)
[TelegramStickers.java]: https://github.com/Eyre-S/Coeur-Morny-Cono/blob/master/src/main/java/cc/sukazyo/cono/morny/data/TelegramStickers.java
[^2]: 具体来说这表示集中定义在 [`cc.sukazyo.cono.morny.data.TelegramStickers`][TelegramStickers.java] 类中的贴纸。
[^3]: Morny 内部贴纸 ID 即为在 [TelegramStickers.java] 中的字段名称。需要注意的是这个 id 是**大小写敏感**的,也就是 `ID_HELLO``id_hello` 是两个完全不同的 id 而且不能混用。这些 Morny 内部贴纸 ID 一般以 `ID_` 开通并使用全大写下划线写法。