zhenxun_bot/docs/development_doc/plugins.html
2021-10-27 16:45:01 +08:00

283 lines
56 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>绪山真寻Bot</title>
<meta name="generator" content="VuePress 1.8.2">
<link rel="icon" href="/zhenxun_bot/favicon.ico">
<meta name="description" content="这是个绪山真寻Bot的部署教程">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="preload" href="/zhenxun_bot/assets/css/0.styles.452633db.css" as="style"><link rel="preload" href="/zhenxun_bot/assets/js/app.c4197360.js" as="script"><link rel="preload" href="/zhenxun_bot/assets/js/3.b5d42824.js" as="script"><link rel="preload" href="/zhenxun_bot/assets/js/1.d0645364.js" as="script"><link rel="preload" href="/zhenxun_bot/assets/js/14.f8f049d7.js" as="script"><link rel="preload" href="/zhenxun_bot/assets/js/8.c61ef070.js" as="script"><link rel="prefetch" href="/zhenxun_bot/assets/js/10.771c744c.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/11.72ea5dfe.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/12.11aefa22.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/13.8451af0e.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/15.2c8ebdde.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/16.7fedffce.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/17.ed04f4e6.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/18.be819115.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/19.3eba5c5f.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/20.7abba640.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/21.4c21c7cf.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/22.468429e5.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/23.923ef864.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/24.b8813712.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/25.9facf73d.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/26.d9ec743e.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/4.1f0d7c87.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/5.4dff48d2.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/6.f6c4b5d2.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/7.e663b9e0.js"><link rel="prefetch" href="/zhenxun_bot/assets/js/9.881973a9.js">
<link rel="stylesheet" href="/zhenxun_bot/assets/css/0.styles.452633db.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container" data-v-1156296a><div data-v-1156296a><div id="loader-wrapper" class="loading-wrapper" data-v-d48f4d20 data-v-1156296a data-v-1156296a><div class="loader-main" data-v-d48f4d20><div data-v-d48f4d20></div><div data-v-d48f4d20></div><div data-v-d48f4d20></div><div data-v-d48f4d20></div></div> <!----> <!----></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-4e82dffc data-v-1156296a data-v-1156296a><h3 class="title" data-v-4e82dffc data-v-4e82dffc>绪山真寻Bot</h3> <p class="description" data-v-4e82dffc data-v-4e82dffc>这是个绪山真寻Bot的部署教程</p> <label id="box" class="inputBox" data-v-4e82dffc data-v-4e82dffc><input type="password" value="" data-v-4e82dffc> <span data-v-4e82dffc>Konck! Knock!</span> <button data-v-4e82dffc>OK</button></label> <div class="footer" data-v-4e82dffc data-v-4e82dffc><span data-v-4e82dffc><i class="iconfont reco-theme" data-v-4e82dffc></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-4e82dffc>vuePress-theme-reco</a></span> <span data-v-4e82dffc><i class="iconfont reco-copyright" data-v-4e82dffc></i> <a data-v-4e82dffc><span data-v-4e82dffc>hibikier</span>
  
<!---->
2021
</a></span></div></div> <div class="hide" data-v-1156296a><header class="navbar" data-v-1156296a><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/zhenxun_bot/" class="home-link router-link-active"><img src="/zhenxun_bot/logo.png" alt="绪山真寻Bot" class="logo"> <span class="site-name">绪山真寻Bot</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/zhenxun_bot/" class="nav-link"><i class="iconfont reco-home"></i>
首页
</a></div><div class="nav-item"><a href="/zhenxun_bot/docs/installation_doc/" class="nav-link"><i class="iconfont reco-document"></i>
安装文档
</a></div><div class="nav-item"><a href="/zhenxun_bot/docs/help_doc/" class="nav-link"><i class="iconfont reco-document"></i>
使用文档
</a></div><div class="nav-item"><a href="/zhenxun_bot/docs/development_doc/plugins.html" aria-current="page" class="nav-link router-link-exact-active router-link-active"><i class="iconfont reco-document"></i>
开发文档
</a></div><div class="nav-item"><a href="/zhenxun_bot/docs/faq/" class="nav-link"><i class="iconfont reco-faq"></i>
FAQ
</a></div><div class="nav-item"><a href="/zhenxun_bot/blogs/about.html" class="nav-link"><i class="iconfont reco-faq"></i>
关于
</a></div><div class="nav-item"><a href="https://github.com/HibiKier/zhenxun_bot" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="iconfont reco-github"></i>
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav></div></header> <div class="sidebar-mask" data-v-1156296a></div> <aside class="sidebar" data-v-1156296a><div class="personal-info-wrapper" data-v-828910c6 data-v-1156296a><img src="https://s.gravatar.com/avatar/27d0f38d5b14cf1ae60da1522a9a246e?s=80" alt="author-avatar" class="personal-img" data-v-828910c6> <h3 class="name" data-v-828910c6>
hibikier
</h3> <div class="num" data-v-828910c6><div data-v-828910c6><h3 data-v-828910c6>10</h3> <h6 data-v-828910c6>Articles</h6></div> <div data-v-828910c6><h3 data-v-828910c6>0</h3> <h6 data-v-828910c6>Tags</h6></div></div> <ul class="social-links" data-v-828910c6></ul> <hr data-v-828910c6></div> <nav class="nav-links"><div class="nav-item"><a href="/zhenxun_bot/" class="nav-link"><i class="iconfont reco-home"></i>
首页
</a></div><div class="nav-item"><a href="/zhenxun_bot/docs/installation_doc/" class="nav-link"><i class="iconfont reco-document"></i>
安装文档
</a></div><div class="nav-item"><a href="/zhenxun_bot/docs/help_doc/" class="nav-link"><i class="iconfont reco-document"></i>
使用文档
</a></div><div class="nav-item"><a href="/zhenxun_bot/docs/development_doc/plugins.html" aria-current="page" class="nav-link router-link-exact-active router-link-active"><i class="iconfont reco-document"></i>
开发文档
</a></div><div class="nav-item"><a href="/zhenxun_bot/docs/faq/" class="nav-link"><i class="iconfont reco-faq"></i>
FAQ
</a></div><div class="nav-item"><a href="/zhenxun_bot/blogs/about.html" class="nav-link"><i class="iconfont reco-faq"></i>
关于
</a></div><div class="nav-item"><a href="https://github.com/HibiKier/zhenxun_bot" target="_blank" rel="noopener noreferrer" class="nav-link external"><i class="iconfont reco-github"></i>
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/zhenxun_bot/docs/development_doc/plugins.html" aria-current="page" class="active sidebar-link">插件标准</a></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-4e82dffc data-v-1156296a><h3 class="title" data-v-4e82dffc data-v-4e82dffc></h3> <!----> <label id="box" class="inputBox" data-v-4e82dffc data-v-4e82dffc><input type="password" value="" data-v-4e82dffc> <span data-v-4e82dffc>Konck! Knock!</span> <button data-v-4e82dffc>OK</button></label> <div class="footer" data-v-4e82dffc data-v-4e82dffc><span data-v-4e82dffc><i class="iconfont reco-theme" data-v-4e82dffc></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-4e82dffc>vuePress-theme-reco</a></span> <span data-v-4e82dffc><i class="iconfont reco-copyright" data-v-4e82dffc></i> <a data-v-4e82dffc><span data-v-4e82dffc>hibikier</span>
  
<!---->
2021
</a></span></div></div> <div data-v-1156296a><main class="page"><section><div class="page-title"><h1 class="title"></h1> <div data-v-1ff7123e><i class="iconfont reco-account" data-v-1ff7123e><span data-v-1ff7123e>hibikier</span></i> <!----> <!----> <!----></div></div> <div class="theme-reco-content content__default"><h1 id="真寻bot插件基本标准"><a href="#真寻bot插件基本标准" class="header-anchor">#</a> 真寻Bot插件基本标准</h1> <blockquote><p>更新于2021/10/13</p></blockquote> <h2 id="简介"><a href="#简介" class="header-anchor">#</a> 简介</h2> <ul><li><p>统一插件标准的好处:</p> <ul><li>自动生成帮助</li> <li>自动生成配置项</li> <li>自动生成插件开关</li> <li>避免了修改插件单独配置文件的麻烦</li></ul></li> <li><p>普通插件 应该包含:</p> <ul><li><code>__zx_plugin_name__</code>:插件名</li> <li><code>__plugin_usage</code>:用法</li> <li><code>__plugin_des__</code>:简介</li> <li><code>__plugin_cmd__</code>:命令</li> <li><code>__plugin_settings__</code> :插件通用设置</li></ul></li> <li><p>有主动发送消息的被动插件不需要命令调用的插件如定时任务hook等 应该包含:</p> <ul><li><code>__plugin_task__</code>:为你提供一个或多个开关</li></ul></li> <li><p>以下作为额外添加选项:</p> <ul><li><code>__plugin_type__</code>:插件帮助分类(被动类插件不需要)</li> <li><code>__plugin_version__</code>:插件版本</li> <li><code>__plugin_author__</code>:插件作者</li> <li><code>__plugin_cd_limit__</code>插件cd限制</li> <li><code>__plugin_block_limit__</code>:插件阻塞限制</li> <li><code>__plugin_count_limit__</code>: 插件每日调用次数限制</li> <li><code>__plugin_configs__</code>: 插件配置</li></ul></li></ul> <h2 id="zx-plugin-name"><a href="#zx-plugin-name" class="header-anchor">#</a> __zx_plugin_name__</h2> <ul><li><strong>类型</strong><code>str</code></li> <li><strong>说明</strong><br>
插件名称,为插件普通帮助的展示内容,基本所有模块都必须有 <code>__zx_plugin_name__</code><br>
通过在__zx_plugin_name__中添加 [Admin] [Superuser] [Hidden] 控制初始化帮助时插件的分类<br>
基本为以下四类:
<ul><li><code></code>:默认,即没有以下三种分类,作为普通插件</li> <li><code>[Admin]</code> 纯管理员插件</li> <li><code>[Superuser]</code> 纯超级用户插件</li> <li><code>[Hidden]</code> 隐藏的插件,一般是不需要命令调用的插件</li></ul></li></ul> <div class="language-python line-numbers-mode"><pre class="language-python"><code>__zx_plugin_name__ <span class="token operator">=</span> <span class="token string">&quot;色图&quot;</span>
__zx_plugin_name__ <span class="token operator">=</span> <span class="token string">&quot;管理员操作 [Admin]&quot;</span>
__zx_plugin_name__ <span class="token operator">=</span> <span class="token string">&quot;超级用户操作 [Superuser]&quot;</span>
__zx_plugin_name__ <span class="token operator">=</span> <span class="token string">&quot;自动检测群员数量 [Hidden]&quot;</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div><h2 id="plugin-usage"><a href="#plugin-usage" class="header-anchor">#</a> __plugin_usage__</h2> <ul><li><strong>类型</strong><code>str</code></li> <li><strong>说明</strong><br>
插件帮助说明
示例:</li></ul> <div class="language-python line-numbers-mode"><pre class="language-python"><code><span class="token triple-quoted-string string">&quot;&quot;&quot;
usage:
有什么用处?
指令:
...
示例:...
&quot;&quot;&quot;</span><span class="token punctuation">.</span>strip<span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br></div></div><h2 id="plugin-super-usage"><a href="#plugin-super-usage" class="header-anchor">#</a> __plugin_super_usage__</h2> <ul><li><strong>类型</strong><code>str</code></li> <li><strong>说明</strong><br>
当非 <code>[Superuser]</code> 插件含有超级用户的功能时,在该属性中编写超级用户的额外帮助<br>
帮助写法与 <code>__plugin_usage__</code> 一致</li></ul> <h2 id="plugin-des"><a href="#plugin-des" class="header-anchor">#</a> __plugin_des__</h2> <ul><li><strong>类型</strong><code>str</code></li> <li><strong>说明</strong><br>
插件简介不建议太长详细介绍可以写在usage中主要在<code>详细帮助</code>中显示</li></ul> <h2 id="plugin-cmd"><a href="#plugin-cmd" class="header-anchor">#</a> __plugin_cmd__</h2> <ul><li><strong>类型</strong><code>List[str]</code></li> <li><strong>说明</strong><br>
插件指令,相同功能的插件指令请使用<code>/</code>分离,如果是超级用户的功能,请在命令后添加<code>[_superuser]</code><br>
示例:</li></ul> <div class="language-python line-numbers-mode"><pre class="language-python"><code><span class="token comment"># 发送 ‘我的签到’ 和 ‘好感度’ 效果相同</span>
__plugin_cmd__ <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">&quot;我的签到/好感度&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;好感度排行&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;清空好感度 [_superuser]&quot;</span><span class="token punctuation">]</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><h2 id="plugin-settings"><a href="#plugin-settings" class="header-anchor">#</a> __plugin_settings__</h2> <ul><li><strong>类型</strong><code>Dict[str, Union[str, int]]</code></li> <li><strong>说明</strong><br>
插件的通用设置,普通插件与纯管理员插件会有所不同<br>
示例:</li></ul> <div class="language-python line-numbers-mode"><pre class="language-python"><code><span class="token comment"># 普通插件</span>
__plugin_settings__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;level&quot;</span><span class="token punctuation">:</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token comment"># 群权限等级请不要设置为1或9若无特殊情况请设置为5</span>
<span class="token string">&quot;default_status&quot;</span><span class="token punctuation">:</span> <span class="token boolean">True</span><span class="token punctuation">,</span> <span class="token comment"># 进群时的默认开关状态</span>
<span class="token string">&quot;limit_superuser&quot;</span><span class="token punctuation">:</span> <span class="token boolean">False</span><span class="token punctuation">,</span> <span class="token comment"># 开关插件的限制是否限制超级用户</span>
<span class="token string">&quot;cmd&quot;</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token string">&quot;b封面&quot;</span><span class="token punctuation">,</span> <span class="token string">'B封面'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token comment"># 命令别名,主要用于帮助和开关</span>
<span class="token punctuation">}</span>
<span class="token comment">#&quot;cmd&quot;第一个值会被作为功能调用统计的显示选项开关方面开启b封面=开启B封面=开启cover</span>
<span class="token comment">#&quot;__zx_plugin_name__&quot;不需要额外写入在bot启动时会自动将&quot;__zx_plugin_name__&quot;导入对应的&quot;cmd&quot;</span>
<span class="token comment"># 管理员插件</span>
__plugin_settings__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;admin_level&quot;</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token comment"># 管理员等级建议设置在5及以下敏感操作设置在5以上</span>
<span class="token punctuation">}</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br></div></div><h2 id="plugin-task"><a href="#plugin-task" class="header-anchor">#</a> __plugin_task__</h2> <ul><li><strong>类型</strong><code>Dict[str, Union[str, str]]</code></li> <li><strong>说明</strong><br>
为你提供一个或多个开关,主要用于被动类插件的开关<br>
示例:</li></ul> <div class="language-python line-numbers-mode"><pre class="language-python"><code><span class="token comment"># 定义开关</span>
__plugin_task__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;名称&quot;</span><span class="token punctuation">:</span> <span class="token string">&quot;开关中文名&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot;abcd&quot;</span><span class="token punctuation">:</span> <span class="token string">&quot;统计开关&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot;...&quot;</span><span class="token punctuation">:</span> <span class="token string">&quot;...&quot;</span>
<span class="token punctuation">}</span>
<span class="token comment"># 导入管理器</span>
<span class="token keyword">from</span> utils<span class="token punctuation">.</span>manager <span class="token keyword">import</span> group_manager
<span class="token comment"># 在插件中设置</span>
<span class="token keyword">async</span> <span class="token keyword">def</span> <span class="token function">_</span><span class="token punctuation">(</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">if</span> <span class="token keyword">await</span> group_manager<span class="token punctuation">.</span>check_group_task_status<span class="token punctuation">(</span>event<span class="token punctuation">.</span>group_id<span class="token punctuation">,</span> <span class="token string">&quot;名称&quot;</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token keyword">if</span> <span class="token keyword">await</span> group_manager<span class="token punctuation">.</span>check_group_task_status<span class="token punctuation">(</span>event<span class="token punctuation">.</span>group_id<span class="token punctuation">,</span> <span class="token string">&quot;abcd&quot;</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br></div></div><h2 id="plugin-type"><a href="#plugin-type" class="header-anchor">#</a> __plugin_type__</h2> <ul><li><strong>类型</strong><code>Tuple[Union[str, int]]</code></li> <li><strong>说明</strong><br>
为普通插件分类,当没有<code>__plugin_type__</code>时,将统一放置普通功能分类中<br>
相同分类的插件在帮助图片中将会统合在一起<br>
示例:</li></ul> <div class="language-python line-numbers-mode"><pre class="language-python"><code><span class="token comment"># 定义格式:</span>
<span class="token comment"># 排列无或0时横向排列1列项排序(当你的__plugin_cmd__指令很多建议使用 1)</span>
__plugin_type__ <span class="token operator">=</span> <span class="token punctuation">(</span>分类名称<span class="token punctuation">,</span> 详细帮助中的排列<span class="token punctuation">)</span>
<span class="token comment"># 创建一个`工具`的分类</span>
__plugin_type__ <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token string">'工具'</span><span class="token punctuation">,</span><span class="token punctuation">)</span>
<span class="token comment"># 创建一个`原神相关`的分类,并在详细功能中命令以列向排列显示</span>
__plugin_type__ <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token string">'原神相关'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br></div></div><h2 id="plugin-version"><a href="#plugin-version" class="header-anchor">#</a> __plugin_version__</h2> <ul><li><strong>类型</strong><code>Union[float, int]</code></li> <li><strong>说明</strong><br>
插件版本,将作为插件自动更新的依照</li></ul> <h2 id="plugin-author"><a href="#plugin-author" class="header-anchor">#</a> __plugin_author__</h2> <ul><li><strong>类型</strong><code>str</code></li> <li><strong>说明</strong><br>
插件作者</li></ul> <h2 id="plugin-cd-limit"><a href="#plugin-cd-limit" class="header-anchor">#</a> __plugin_cd_limit__</h2> <ul><li><strong>类型</strong><code>Dict[str, Optional[Union[int, str]]]</code></li> <li><strong>说明</strong><br>
插件cd限制</li></ul> <div class="language-python line-numbers-mode"><pre class="language-python"><code><span class="token comment"># 以下为默认值</span>
__plugin_cd_limit__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;cd&quot;</span><span class="token punctuation">:</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token comment"># 限制 cd 时长</span>
<span class="token string">&quot;check_type&quot;</span><span class="token punctuation">:</span> <span class="token string">&quot;all&quot;</span><span class="token punctuation">,</span> <span class="token comment"># 'private'/'group'/'all',限制私聊/群聊/全部</span>
<span class="token string">&quot;limit_type&quot;</span><span class="token punctuation">:</span> <span class="token string">&quot;user&quot;</span><span class="token punctuation">,</span> <span class="token comment"># 监听对象以user_id或group_id作为键来限制'user'用户id'group'群id</span>
<span class="token string">&quot;rst&quot;</span><span class="token punctuation">:</span> <span class="token boolean">None</span><span class="token punctuation">,</span> <span class="token comment"># 回复的话为None时不回复可以添加[at][uname][nickname]来对应艾特,用户群名称,昵称系统昵称</span>
<span class="token string">&quot;status&quot;</span><span class="token punctuation">:</span> true <span class="token comment"># 此限制的开关状态</span>
<span class="token punctuation">}</span>
<span class="token comment"># 可以只添加需要的内容,其他选用默认值</span>
__plugin_cd_limit__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;cd&quot;</span><span class="token punctuation">:</span> <span class="token number">10</span><span class="token punctuation">,</span>
<span class="token string">&quot;rst&quot;</span><span class="token punctuation">:</span> <span class="token string">&quot;冷静点,别冲了!&quot;</span>
<span class="token punctuation">}</span>
<span class="token comment"># 甚至全部使用默认值</span>
__plugin_cd_limit__ <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br></div></div><h2 id="plugin-block-limit"><a href="#plugin-block-limit" class="header-anchor">#</a> __plugin_block_limit__</h2> <ul><li><strong>类型</strong><code>Dict[str, Optional[str]]</code></li> <li><strong>说明</strong><br>
插件阻塞限制</li></ul> <div class="language-python line-numbers-mode"><pre class="language-python"><code><span class="token comment"># 以下为默认值</span>
__plugin_block_limit__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;check_type&quot;</span><span class="token punctuation">:</span> <span class="token string">&quot;all&quot;</span><span class="token punctuation">,</span> <span class="token comment"># 'private'/'group'/'all',限制私聊/群聊/全部</span>
<span class="token string">&quot;limit_type&quot;</span><span class="token punctuation">:</span> <span class="token string">&quot;user&quot;</span><span class="token punctuation">,</span> <span class="token comment"># 监听对象以user_id或group_id作为键来限制'user'用户id'group'群id</span>
<span class="token string">&quot;rst&quot;</span><span class="token punctuation">:</span> <span class="token boolean">None</span><span class="token punctuation">,</span> <span class="token comment"># 回复的话为None时不回复可以添加[at][uname][nickname]来对应艾特,用户群名称,昵称系统昵称</span>
<span class="token string">&quot;status&quot;</span><span class="token punctuation">:</span> true <span class="token comment"># 此限制的开关状态</span>
<span class="token punctuation">}</span>
<span class="token comment"># 可以只添加需要的内容,其他选用默认值</span>
__plugin_block_limit__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;rst&quot;</span><span class="token punctuation">:</span> <span class="token string">&quot;你正在冲!&quot;</span>
<span class="token punctuation">}</span>
<span class="token comment"># 甚至全部使用默认值</span>
__plugin_block_limit__ <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br></div></div><h2 id="plugin-count-limit"><a href="#plugin-count-limit" class="header-anchor">#</a> __plugin_count_limit__</h2> <ul><li><strong>类型</strong><code>Dict[str, Optional[Union[int, str]]]</code></li> <li><strong>说明</strong><br>
插件每日调用次数限制</li></ul> <div class="language-python line-numbers-mode"><pre class="language-python"><code><span class="token comment"># 以下为默认值</span>
__plugin_count_limit__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;max_count&quot;</span><span class="token punctuation">:</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token comment"># 每日次数限制数量</span>
<span class="token string">&quot;limit_type&quot;</span><span class="token punctuation">:</span> <span class="token string">&quot;user&quot;</span><span class="token punctuation">,</span> <span class="token comment"># 监听对象以user_id或group_id作为键来限制'user'用户id'group'群id</span>
<span class="token string">&quot;rst&quot;</span><span class="token punctuation">:</span> <span class="token boolean">None</span><span class="token punctuation">,</span> <span class="token comment"># 回复的话为None时不回复可以添加[at][uname][nickname]来对应艾特,用户群名称,昵称系统昵称</span>
<span class="token string">&quot;status&quot;</span><span class="token punctuation">:</span> true <span class="token comment"># 此限制的开关状态</span>
<span class="token punctuation">}</span>
<span class="token comment"># 可以只添加需要的内容,其他选用默认值</span>
__plugin_count_limit__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;max_count&quot;</span><span class="token punctuation">:</span> <span class="token number">10</span><span class="token punctuation">,</span>
<span class="token string">&quot;rst&quot;</span><span class="token punctuation">:</span> <span class="token string">&quot;你今天没得冲了!&quot;</span>
<span class="token punctuation">}</span>
<span class="token comment"># 甚至全部使用默认值</span>
__plugin_count_limit__ <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br></div></div><h2 id="plugin-configs"><a href="#plugin-configs" class="header-anchor">#</a> __plugin_configs__</h2> <ul><li><strong>类型</strong><code>Dict[str, Union[int, str, float, Dict[str, Union[int, str, float]]]]</code></li> <li><strong>说明</strong><br>
插件配置项用于生成统一的config.yaml文件供用户统一修改<br>
其中 key 大小写不敏感,生成与返回会统一使用大写</li></ul> <div class="language-python line-numbers-mode"><pre class="language-python"><code><span class="token comment"># 配置项(默认值)</span>
__plugin_configs__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;key1&quot;</span><span class="token punctuation">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;value&quot;</span><span class="token punctuation">:</span> value<span class="token punctuation">,</span> <span class="token comment"># 配置值</span>
&quot;<span class="token builtin">help</span><span class="token punctuation">:</span> <span class="token boolean">None</span><span class="token punctuation">,</span> <span class="token comment"># 配置项说明,为空时则不添加配置项说明注释</span>
<span class="token string">&quot;name&quot;</span><span class="token punctuation">:</span> <span class="token boolean">None</span><span class="token punctuation">,</span> <span class="token comment"># 插件名称说明如果含有__zx_plugin_name__一般不需要设置</span>
<span class="token string">&quot;default_value&quot;</span><span class="token punctuation">:</span> <span class="token boolean">None</span> <span class="token comment"># 当value值为空时返回的默认值 </span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token string">&quot;key2&quot;</span><span class="token punctuation">:</span> <span class="token punctuation">{</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token string">&quot;key3&quot;</span><span class="token punctuation">:</span> value<span class="token punctuation">,</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token punctuation">}</span>
<span class="token comment"># 增加一个配置项</span>
<span class="token comment">############ 方式一 ############</span>
<span class="token comment"># 不添加 help, name, default_value 等设置,仅仅设置 value </span>
__plugin_configs__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;key1&quot;</span><span class="token punctuation">:</span> value<span class="token punctuation">,</span>
<span class="token string">&quot;key2&quot;</span><span class="token punctuation">:</span> <span class="token number">9</span><span class="token punctuation">,</span>
<span class="token string">&quot;key3&quot;</span><span class="token punctuation">:</span> <span class="token string">&quot;Hello 真寻&quot;</span><span class="token punctuation">,</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token punctuation">}</span>
<span class="token comment"># 添加 help, name, default_value 等</span>
__plugin_configs__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;key1&quot;</span><span class="token punctuation">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;value&quot;</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
<span class="token string">&quot;help: &quot;</span>这是一个示例&quot;<span class="token punctuation">,</span>
<span class="token string">&quot;default_value&quot;</span><span class="token punctuation">:</span> <span class="token number">10</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token punctuation">}</span>
<span class="token comment"># 是一个需要设置权限等级的插件需要在key末尾添加 [LEVEL]</span>
<span class="token comment"># 且 value 或 default_value 必须有值</span>
__plugin_configs__ <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string">&quot;key1 [LEVEL]&quot;</span><span class="token punctuation">:</span> <span class="token punctuation">{</span>
<span class="token string">&quot;value&quot;</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
<span class="token string">&quot;help: &quot;</span>这是一个示例&quot;<span class="token punctuation">,</span>
<span class="token string">&quot;default_value&quot;</span><span class="token punctuation">:</span> <span class="token number">10</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token punctuation">}</span>
<span class="token comment">########################</span>
<span class="token comment">############ 方式二 ############</span>
<span class="token comment"># 常用于一个包下有多个插件,需要使用 nonebot.load_plugins加载时统一配置组和权限</span>
<span class="token comment"># 从 configs.config 中 导入 Config</span>
<span class="token keyword">from</span> configs<span class="token punctuation">.</span>config <span class="token keyword">import</span> Config
<span class="token comment"># 添加配置方法</span>
Config<span class="token punctuation">.</span>add_plugin_config<span class="token punctuation">(</span>
module<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span> <span class="token comment"># 模块名称(相当于自定义创建一个配置组),一般为插件模块名称</span>
key<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span> <span class="token comment"># 配置key</span>
value<span class="token punctuation">:</span> Optional<span class="token punctuation">[</span>Any<span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token comment"># 值</span>
<span class="token operator">*</span><span class="token punctuation">,</span>
name<span class="token punctuation">:</span> Optional<span class="token punctuation">[</span><span class="token builtin">str</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token boolean">None</span><span class="token punctuation">,</span> <span class="token comment"># 插件名称,相同 module 的 name 将会覆盖</span>
help_<span class="token punctuation">:</span> Optional<span class="token punctuation">[</span><span class="token builtin">str</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token boolean">None</span><span class="token punctuation">,</span> <span class="token comment"># 配置项说明</span>
default_value<span class="token punctuation">:</span> Optional<span class="token punctuation">[</span><span class="token builtin">str</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token boolean">None</span><span class="token punctuation">,</span> <span class="token comment"># 默认值</span>
_override<span class="token punctuation">:</span> <span class="token builtin">bool</span> <span class="token operator">=</span> <span class="token boolean">False</span> <span class="token comment"># 是否覆盖一般开发不使用主要用于init_config时的读取问题</span>
<span class="token punctuation">)</span>
<span class="token comment"># 添加一个配置项, name, help_, default</span>
Config<span class="token punctuation">.</span>add_plugin_config<span class="token punctuation">(</span>
<span class="token string">&quot;module&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot;key1&quot;</span><span class="token punctuation">,</span>
<span class="token number">1</span><span class="token punctuation">,</span>
name<span class="token operator">=</span><span class="token string">&quot;这是一个示例&quot;</span><span class="token punctuation">,</span>
help_<span class="token operator">=</span><span class="token string">&quot;没错,还是示例&quot;</span><span class="token punctuation">,</span>
default_value<span class="token operator">=</span><span class="token number">10</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
<span class="token comment"># 添加一个管理员插件等级配置项</span>
<span class="token comment"># 使用 : 分割开,前是配置组名称,后是管理插件模块</span>
<span class="token comment"># 且 key 末尾需要添加 [LEVEL],且 value 或 default_value 必须有值</span>
Config<span class="token punctuation">.</span>add_plugin_config<span class="token punctuation">(</span>
<span class="token string">&quot;module:admin_module&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot;key1 [LEVEL]&quot;</span><span class="token punctuation">,</span>
<span class="token number">1</span><span class="token punctuation">,</span>
name<span class="token operator">=</span><span class="token string">&quot;这是一个示例&quot;</span><span class="token punctuation">,</span>
help_<span class="token operator">=</span><span class="token string">&quot;默认是1级&quot;</span><span class="token punctuation">,</span>
default_value<span class="token operator">=</span><span class="token number">10</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
<span class="token comment">########################</span>
<span class="token comment"># 获取配置</span>
<span class="token comment"># 从 configs.config 中 导入 Config</span>
<span class="token keyword">from</span> configs<span class="token punctuation">.</span>config <span class="token keyword">import</span> Config
data <span class="token operator">=</span> Config<span class="token punctuation">.</span>get_config<span class="token punctuation">(</span><span class="token string">&quot;module&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;key&quot;</span><span class="token punctuation">)</span>
<span class="token comment">############ 完成示例 ############</span>
<span class="token comment"># 添加一个配置组,名称为 pix 并为其添加一个配置项名称为image_num</span>
Config<span class="token punctuation">.</span>add_plugin_config<span class="token punctuation">(</span>
<span class="token string">&quot;pix&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot;image_num&quot;</span><span class="token punctuation">,</span>
<span class="token number">5</span><span class="token punctuation">,</span>
name<span class="token operator">=</span><span class="token string">&quot;PIX图库操作&quot;</span><span class="token punctuation">,</span>
help_<span class="token operator">=</span><span class="token string">&quot;每次访问图片返回的数量&quot;</span><span class="token punctuation">,</span>
default_value<span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
<span class="token comment"># 获取数据key 的大小写不敏感</span>
image_num <span class="token operator">=</span> Config<span class="token punctuation">.</span>get_config<span class="token punctuation">(</span><span class="token string">&quot;pix&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;IMAGE_NUM&quot;</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&quot;图片数量: </span><span class="token interpolation"><span class="token punctuation">{</span>image_num<span class="token punctuation">}</span></span><span class="token string">&quot;</span></span><span class="token punctuation">)</span>
<span class="token comment">### out ###</span>
图片数量<span class="token punctuation">:</span> <span class="token number">5</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br><span class="line-number">30</span><br><span class="line-number">31</span><br><span class="line-number">32</span><br><span class="line-number">33</span><br><span class="line-number">34</span><br><span class="line-number">35</span><br><span class="line-number">36</span><br><span class="line-number">37</span><br><span class="line-number">38</span><br><span class="line-number">39</span><br><span class="line-number">40</span><br><span class="line-number">41</span><br><span class="line-number">42</span><br><span class="line-number">43</span><br><span class="line-number">44</span><br><span class="line-number">45</span><br><span class="line-number">46</span><br><span class="line-number">47</span><br><span class="line-number">48</span><br><span class="line-number">49</span><br><span class="line-number">50</span><br><span class="line-number">51</span><br><span class="line-number">52</span><br><span class="line-number">53</span><br><span class="line-number">54</span><br><span class="line-number">55</span><br><span class="line-number">56</span><br><span class="line-number">57</span><br><span class="line-number">58</span><br><span class="line-number">59</span><br><span class="line-number">60</span><br><span class="line-number">61</span><br><span class="line-number">62</span><br><span class="line-number">63</span><br><span class="line-number">64</span><br><span class="line-number">65</span><br><span class="line-number">66</span><br><span class="line-number">67</span><br><span class="line-number">68</span><br><span class="line-number">69</span><br><span class="line-number">70</span><br><span class="line-number">71</span><br><span class="line-number">72</span><br><span class="line-number">73</span><br><span class="line-number">74</span><br><span class="line-number">75</span><br><span class="line-number">76</span><br><span class="line-number">77</span><br><span class="line-number">78</span><br><span class="line-number">79</span><br><span class="line-number">80</span><br><span class="line-number">81</span><br><span class="line-number">82</span><br><span class="line-number">83</span><br><span class="line-number">84</span><br><span class="line-number">85</span><br><span class="line-number">86</span><br><span class="line-number">87</span><br><span class="line-number">88</span><br><span class="line-number">89</span><br><span class="line-number">90</span><br><span class="line-number">91</span><br><span class="line-number">92</span><br><span class="line-number">93</span><br><span class="line-number">94</span><br><span class="line-number">95</span><br><span class="line-number">96</span><br><span class="line-number">97</span><br><span class="line-number">98</span><br><span class="line-number">99</span><br><span class="line-number">100</span><br><span class="line-number">101</span><br><span class="line-number">102</span><br><span class="line-number">103</span><br><span class="line-number">104</span><br><span class="line-number">105</span><br><span class="line-number">106</span><br><span class="line-number">107</span><br><span class="line-number">108</span><br></div></div></div></section> <footer class="page-edit"><!----> <!----></footer> <!----> <div class="comments-wrapper"><!----></div> <ul class="side-bar sub-sidebar-wrapper" style="width:12rem;" data-v-70334359><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#简介" class="sidebar-link reco-side-简介" data-v-70334359>简介</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#zx-plugin-name" class="sidebar-link reco-side-zx-plugin-name" data-v-70334359>__zx_plugin_name__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-usage" class="sidebar-link reco-side-plugin-usage" data-v-70334359>__plugin_usage__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-super-usage" class="sidebar-link reco-side-plugin-super-usage" data-v-70334359>__plugin_super_usage__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-des" class="sidebar-link reco-side-plugin-des" data-v-70334359>__plugin_des__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-cmd" class="sidebar-link reco-side-plugin-cmd" data-v-70334359>__plugin_cmd__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-settings" class="sidebar-link reco-side-plugin-settings" data-v-70334359>__plugin_settings__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-task" class="sidebar-link reco-side-plugin-task" data-v-70334359>__plugin_task__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-type" class="sidebar-link reco-side-plugin-type" data-v-70334359>__plugin_type__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-version" class="sidebar-link reco-side-plugin-version" data-v-70334359>__plugin_version__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-author" class="sidebar-link reco-side-plugin-author" data-v-70334359>__plugin_author__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-cd-limit" class="sidebar-link reco-side-plugin-cd-limit" data-v-70334359>__plugin_cd_limit__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-block-limit" class="sidebar-link reco-side-plugin-block-limit" data-v-70334359>__plugin_block_limit__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-count-limit" class="sidebar-link reco-side-plugin-count-limit" data-v-70334359>__plugin_count_limit__</a></li><li class="level-2" data-v-70334359><a href="/zhenxun_bot/docs/development_doc/plugins.html#plugin-configs" class="sidebar-link reco-side-plugin-configs" data-v-70334359>__plugin_configs__</a></li></ul></main> <!----></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-c6073ba8 data-v-c6073ba8><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-c6073ba8><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-c6073ba8></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-c6073ba8></path></svg></div><!----></div></div>
<script src="/zhenxun_bot/assets/js/app.c4197360.js" defer></script><script src="/zhenxun_bot/assets/js/3.b5d42824.js" defer></script><script src="/zhenxun_bot/assets/js/1.d0645364.js" defer></script><script src="/zhenxun_bot/assets/js/14.f8f049d7.js" defer></script><script src="/zhenxun_bot/assets/js/8.c61ef070.js" defer></script>
</body>
</html>