【QQ機(jī)器人】給純新手的通俗易懂使用教程,長(zhǎng)期接受評(píng)論私信答疑[基于mirai](中)
????????給大家繼續(xù)介紹Mirai機(jī)器人的使用教程。在編寫本文的過(guò)程中,我完全超出了篇幅字?jǐn)?shù)的預(yù)料,為了讓讀者有更好的觀感,我決定把這篇文檔設(shè)置為中篇。本篇的內(nèi)容繼續(xù)于up主投稿的上篇,主要介紹安裝好Mirai后的使用方法。封面與文章無(wú)關(guān),單純隨手找的(。本篇的內(nèi)容比較長(zhǎng),而且對(duì)于使用Mirai都必要的而非選擇性的,希望讀者耐心看完。如果你還沒(méi)有看過(guò)上篇,或者mirai還沒(méi)有安裝部署好,那可以先觀看我寫的(上)篇,鏈接為:

????????

????????首先,Mirai官方的使用教程文檔的頁(yè)面只有一個(gè),鏈接為:https://github.com/mamoe/mirai/blob/dev/docs/ConsoleTerminal.md,我個(gè)人認(rèn)為其中提到的內(nèi)容太少了,而且有些說(shuō)法不好理解,我會(huì)用盡量更加通俗易懂的語(yǔ)言講其中重要的內(nèi)容。
????????請(qǐng)注意,up主是一個(gè)熟悉的使用者而不是插件制作者,up主只是通過(guò)一些插件作為案例,介紹Mirai插件的安裝和配置,案例插件都已經(jīng)過(guò)其作者本人同意,文章介紹到的插件版本為文章編輯時(shí)的版本,不能保證為插件的完整使用體驗(yàn),插件更新后造成的內(nèi)容上差異請(qǐng)以插件最新版作者說(shuō)明為準(zhǔn)!
??????還要注意的是,大部分的插件都發(fā)布于GitHub平臺(tái),這是大多數(shù)程序員包括插件作者的選擇,本文章為了保障插件的版本為最新版,以及為了保障插件作者的成果,本文章將不會(huì)提供插件的額外下載渠道,因此如果你不能正常訪問(wèn)GitHub,那使用起來(lái)會(huì)造成很大的不便因此請(qǐng)讀者盡量克服網(wǎng)絡(luò)造成的困難。如果你對(duì)于這個(gè)問(wèn)題完全沒(méi)有解決辦法,可以私聊我,我會(huì)提供非免費(fèi)的網(wǎng)絡(luò)工具,但是僅作為教程需要,不會(huì)收取任何利益,不會(huì)有任何利益推廣,同時(shí)也不會(huì)承擔(dān)任何使用網(wǎng)絡(luò)工具造成的其他后果。

?????在上篇中,我們成功安裝部署了mcl,即現(xiàn)在已經(jīng)可以使用Mirai框架,但是為了使這個(gè)框架真正有用,我們要根據(jù)自己的需要,來(lái)給mcl安裝并配置插件,使其擁有我們想要的功能。因此本文章主要會(huì)討論一下問(wèn)題:
一、mcl的簡(jiǎn)單使用介紹
二、插件的下載和安裝
三、插件的配置與權(quán)限分配

一、MCL的簡(jiǎn)單用戶使用介紹
????????首先,我們要看看mcl目錄下的各個(gè)文件是干啥用的,以我的機(jī)器人為例,其文件夾目錄如下:

????????官方使用文檔對(duì)于文件夾的解釋如下:

????????其中比較重要的文件夾是 config、data、plugins,對(duì)于一般的用戶來(lái)說(shuō),大部分的使用只需要在這三個(gè)文件夾之間操作。大體上來(lái)說(shuō),plugins是用來(lái)放置插件的文件夾,config是用來(lái)修改插件設(shè)置的文件夾,data是用來(lái)存放預(yù)設(shè)的配置、數(shù)據(jù)和資源的文件夾。具體的使用方法我會(huì)在第二部分用實(shí)際插件作為舉例。
????????在我們剛剛安裝mcl別的啥也沒(méi)裝的情況下,這三個(gè)文件夾大概這樣:
????????plugins里面有兩個(gè)文件:

????? ?data文件夾是空的:

????????config文件夾里面有一個(gè)名為Console的文件夾:

????????其中Console為Mirai的基礎(chǔ)設(shè)置文件夾,包括機(jī)器人的自動(dòng)登錄信息啥的,一般情況下如果你沒(méi)有遇到登錄的問(wèn)題,不需要打開(kāi)文件手動(dòng)修改。
????????在我們安裝了若干個(gè)插件后,plugins文件夾大概是這樣的:

? ? ? ? 在使用起來(lái)后config文件夾的內(nèi)容大概如下:

????????data文件夾大概是這樣:

? ? ? ?根據(jù)plugins文件夾就可以直接看出來(lái),目前mcl安裝了8個(gè)插件,其中一些插件在另外兩個(gè)文件夾分別生成了一個(gè)一長(zhǎng)串名字對(duì)應(yīng)的文件夾,但是并不是所有插件都需要數(shù)據(jù)文件和配置文件。本系列教程將會(huì)通過(guò)幾個(gè)插件的安裝和配置作為案例,給大家介紹不同插件的不同安裝和配置方法。本系列教程中出現(xiàn)的插件都已經(jīng)過(guò)作者本人同意,教程中提到的插件都是根據(jù)自己需要安裝的,本文只是借這些插件的特殊點(diǎn)而向讀者示范安裝過(guò)程,對(duì)于讀者來(lái)說(shuō)需要根據(jù)需要來(lái)安裝。但對(duì)于本篇來(lái)說(shuō),我們只會(huì)介紹最基本的兩個(gè)插件,這兩個(gè)插件是官方欽定的必裝插件。

二、插件的詳細(xì)安裝過(guò)程和配置案例????????
????????本部分會(huì)根據(jù)通過(guò)介紹具體的插件安裝和配置過(guò)程,來(lái)給大家講一下mirai插件的使用。首先我們要知道,插件的發(fā)布平臺(tái)為Mirai Forum:https://mirai.mamoe.net/category/11/%E6%8F%92%E4%BB%B6%E5%8F%91%E5%B8%83,一般來(lái)說(shuō),插件的作者會(huì)將做好的插件項(xiàng)目發(fā)布在這個(gè)平臺(tái)上,使用者會(huì)在這個(gè)平臺(tái)上尋找需要的插件,或者討論和交流使用中的問(wèn)題,其中大部分插件都適用于現(xiàn)在的mcl,但是有部分是不適用的,以后我會(huì)再說(shuō)這個(gè)問(wèn)題。

? ? ??接下來(lái)我要介紹剛剛提到的兩個(gè)官方基礎(chǔ)插件,chat-command和mirai-api-http。單純這兩個(gè)插件對(duì)于使用者來(lái)說(shuō),幾乎沒(méi)有作用,但是這兩個(gè)作為官方插件,是大部分功能性插件的前置插件,也幾乎是必須安裝的,官方文檔解釋如下:

? ? ? ? 先介紹一下這倆插件的作用:? ? ? ??
????????1.chat-command:允許在聊天環(huán)境通過(guò)以 "/" 起始的消息執(zhí)行指令。意味著有些指令你不需要在mcl的命令框中執(zhí)行,在群里或者私聊機(jī)器人也可以。
????????2.mirai-api-http:提供 HTTP 支持,允許使用其他編程語(yǔ)言的插件。原本的mcl主要語(yǔ)言是Kotlin,能讓開(kāi)發(fā)者用其他語(yǔ)言編寫的插件也能運(yùn)行,總之能讓mcl裝更多插件。
????????mcl的插件有兩種辦法安裝,一種是下載jar文件,然后放到plugins里面,另一種是指令安裝,在此我都詳細(xì)說(shuō)一下,先說(shuō)方法,后面是演示:

?????????jar安裝:主要的安裝方法,幾乎所有的插件都能這樣安裝,大部分插件作者都選擇這種下載,需要打開(kāi)Github,給不熟悉的讀者說(shuō)一下Github的下載方法:在一個(gè)項(xiàng)目中點(diǎn)旁邊的Releases:

????????點(diǎn)擊需要下載的文件,等一下就可以下載了。往下翻能翻到之前的版本文件,我們沒(méi)有其他需求只需要下載最新的就行。除不需要下載兩個(gè)Source code(.zip和.tar gz)文件外,選擇下載我們需要的版本文件,有些還需要額外下載一些文件后面會(huì)舉例。

? ? ? ? 然后直接將文件放到到plugins文件夾,再啟動(dòng)mcl,安裝就結(jié)束了,比較簡(jiǎn)單快捷。
????????其中要注意的點(diǎn):
????????1.在遇到有兩個(gè)jar文件的這種,我們選擇下載mirai2版本的,另一個(gè)jar就不需要了,但是比如下圖里還有一個(gè)data.zip,一般來(lái)說(shuō)作者放這個(gè)文件肯定是需要用到的,所以需要下載,用法看作者說(shuō)明。再說(shuō)一次不需要下載兩個(gè)Source code。

????????2.下載如果沒(méi)有加速器可能會(huì)很慢,可能點(diǎn)了之后很久才有反應(yīng),但是文件本身不大,多等就行。
????????3.通過(guò)jar安裝插件時(shí),需要先關(guān)上mcl(記得用stop或者exit指令關(guān)),放到plugins文件夾之后,再啟動(dòng)mcl,此時(shí)才會(huì)加載插件并生成相應(yīng)的配置文件。

????????另一個(gè)是指令安裝,少部分的插件支持這個(gè)方法,所以不必須掌握,兩個(gè)官方插件可以這樣安裝,下面是演示:
?????? ?在你的mcl文件夾目錄下摁住shift右鍵空白處會(huì)出現(xiàn)一個(gè)新的選項(xiàng):

? ? ????點(diǎn)擊 在此處打開(kāi)Powershell窗口會(huì)出現(xiàn)藍(lán)框,左上角會(huì)有當(dāng)前機(jī)器人的目錄:

????????我們之所以用“藍(lán)框”而不是“黑框”,是因?yàn)樗{(lán)框可以通過(guò)這種方法快速打開(kāi)并且切換到mcl的目錄,省去了黑框使用打開(kāi)文件夾指令的時(shí)間以及教程的內(nèi)容。對(duì)于我們來(lái)說(shuō),一般情況下藍(lán)框與黑框用起來(lái)沒(méi)有其它區(qū)別。使用藍(lán)框時(shí)同黑框一樣,注意一下在上篇中提到的注意事項(xiàng),在此不多贅述了。
????????之后輸入安裝指令,一般來(lái)說(shuō)作者會(huì)給你一條寫好的指令,只需要右鍵復(fù)制到藍(lán)框里回車執(zhí)行即可,例如:

????或者:
????????在回車后執(zhí)行時(shí)會(huì)顯示安裝進(jìn)度,開(kāi)始下載并安裝,完成后關(guān)閉藍(lán)框即可。
????????下面是分別用兩種方法的安裝這兩個(gè)必裝插件的詳細(xì)示范:

?????????■chat-command:
項(xiàng)目地址為https://github.com/project-mirai/chat-command???????????????
????????功能為允許在聊天環(huán)境通過(guò)以 "/" 起始的消息執(zhí)行指令。作為眾多插件的前置插件,這個(gè)插件是功能插件中的基礎(chǔ),很多插件的指令是并不能在命令行里執(zhí)行的,而是必須在群里或者私聊機(jī)器人的時(shí)候執(zhí)行的,這類型的插件就必須要chat-command作為前置插件。

????????打開(kāi)上面標(biāo)題里的項(xiàng)目地址,可以看到介紹頁(yè)面中提到了/perm配置指令的權(quán)限,很多使用者只是把這個(gè)插件當(dāng)成一個(gè)前置插件,?
沒(méi)有細(xì)看就去下載安裝了,結(jié)果發(fā)現(xiàn)插件根本不能用,這是因?yàn)檫@個(gè)插件需要先規(guī)定哪些人可以使用,哪些人不能使用,即需要分配使用權(quán)限,所以我們?cè)诎惭b過(guò)后就開(kāi)始講mirai的權(quán)限系統(tǒng)。
????????打開(kāi)后點(diǎn)擊release打開(kāi)下載頁(yè)面

? ? ? ? 可以看到,這插件最后更新已經(jīng)是25 Jan 2021了,然后點(diǎn)我們要下的chat-command-0.5.1.jar

????????下載好后,先關(guān)上mcl,再放到plugins文件夾里

????????然后再啟動(dòng)mcl:

????????從劃?rùn)M線的部分我們就能看到,插件安裝成功,加載的插件數(shù)變?yōu)?。

????????打開(kāi)config文件夾也能看到生成了配置文件夾,不過(guò)里面的文件基本不需要配置。所以至此chat-command的安裝就結(jié)束了,但是前文中提到的權(quán)限還沒(méi)有設(shè)置。那接下來(lái)就開(kāi)始講mirai權(quán)限系統(tǒng),官方的教程文檔為:https://github.com/mamoe/mirai/blob/dev/mirai-console/docs/Permissions.md

? ? ? ? 權(quán)限系統(tǒng)本應(yīng)是為了開(kāi)發(fā)者設(shè)置的,其說(shuō)明文檔也被mirai分類到了開(kāi)發(fā)者的部分,但是很多插件都將權(quán)限直接交給用戶配置和使用,這顯然增加了用戶使用難度,但是同時(shí)也增加了插件使用的自由度。但是也并不是所有的插件都需要通過(guò)權(quán)限配置,只是如果說(shuō)某個(gè)插件需要這樣配置,那么這個(gè)指令就相當(dāng)于功能的開(kāi)關(guān)。通過(guò)分配權(quán)限,我們可以將功能根據(jù)我們的需要開(kāi)放給特定的個(gè)人和場(chǎng)合。

????????因?yàn)槠湓O(shè)計(jì)上是面向插件開(kāi)發(fā)者,所以使用起來(lái)比較復(fù)雜,我們?cè)谶\(yùn)行中的mcl的命令行里輸入/perm就能看到所有權(quán)限相關(guān)的命令

????????其中,/perm 是對(duì)于 /permission的簡(jiǎn)寫,注意是perm而不是prem,所有以/permission開(kāi)頭的質(zhì)量都可以用/perm簡(jiǎn)寫。<? >中括起來(lái)的為必要參數(shù),[? ]中括起來(lái)的為選填參數(shù),我們經(jīng)常要用到的指令功能大致為:
/perm?permit <被許可人ID> <權(quán)限ID>或者/perm add 或/perm grant:授權(quán)對(duì)象以某權(quán)限
/perm cancel <被許可人ID> <權(quán)限ID>或者/perm deny?或/perm remove:取消授權(quán)對(duì)象的某權(quán)限
/perm listPermissions或者/perm lp:列舉出所有的權(quán)限
/perm permitPermissions <被許可人ID>或者/perm pp:顯示對(duì)象的已授權(quán)權(quán)限
????????其中,對(duì)象的表示,也就是連續(xù)的兩個(gè)< >中第一個(gè)<被許可人ID>要填的參數(shù),其表示規(guī)則為:

??????? 第二個(gè)?<權(quán)限ID>要填的參數(shù)是權(quán)限,而權(quán)限的列舉,輸入/perm lp即可查看當(dāng)前mcl所涉及到的權(quán)限及其功能:

????????隨你安裝的插件越來(lái)越多,這個(gè)表也會(huì)越來(lái)越長(zhǎng)。<權(quán)限>部分中,一條權(quán)限的全程是由aa:bb.cc組成,表示的是aa插件的bb權(quán)限組中的cc權(quán)限。如果用星號(hào)*代替cc,則aa:bb.*表示的是aa插件bb權(quán)限組的所有的權(quán)限,如果你用*代替整個(gè)aa:bb.cc,只寫一個(gè)星號(hào)*,則表示是所有的插件的所有權(quán)限。
? ? ? ? 上面兩個(gè)圖的前一個(gè)表列舉了所有可用的被許可人對(duì)象,后一個(gè)表中列舉了當(dāng)前加載的插件所能授予的所有權(quán)限,兩者相結(jié)合就能完全應(yīng)對(duì)于用戶對(duì)于各種插件的各種權(quán)限分配需求。而如果你看到這里對(duì)于理解這個(gè)表里的內(nèi)容十分困惑的話,可以先理解并使用以下幾個(gè)命令(以下文中所有的中括號(hào)[ ]都不需要輸入,只是為了方便表示):
/perm u[qq號(hào)]?*?(是你本人的qq號(hào)而不是機(jī)器人的)這條指令會(huì)授予你這個(gè)qq號(hào)所有的權(quán)限,也就是說(shuō)一旦你授予了這個(gè)權(quán)限,這個(gè)qq號(hào)將可以在qq上執(zhí)行任何mcl控制的指令,類似于設(shè)置管理員。這樣設(shè)置的好處是以后如果有新插件添加了新的需要配置的權(quán)限時(shí),這個(gè)qq號(hào)會(huì)直接獲得其權(quán)限。
/perm g[qq群號(hào)]?*? ?這條會(huì)給這個(gè)群所有的權(quán)限,其中重點(diǎn)說(shuō)了不表示群成員,也就是意味著群有了權(quán)限,但是群里的人沒(méi)有權(quán)限,這可能有點(diǎn)難以理解,這樣區(qū)分的原因是一些插件的功能是針對(duì)群的,而且設(shè)有開(kāi)關(guān),類似于我要不要讓這個(gè)群開(kāi)啟xx插件的xx功能,而這個(gè)對(duì)象為群的插件,就是這個(gè)功能的開(kāi)關(guān)。
/perm m[qq群號(hào)].* *?這條指令相比于上條,是給了這個(gè)群所有的群成員,也就是這個(gè)群里的成員可以在這個(gè)群里使用所有的指令,但是私聊機(jī)器人不行。
????????以上幾條指令都是賦予全部的權(quán)限,如果需要單獨(dú)對(duì)某個(gè)群的某個(gè)人賦予某樣權(quán)限,那還是要按照表中的規(guī)則設(shè)置。
????????要注意的地方:1.不難看出,有些插件的權(quán)限是針對(duì)單獨(dú)跟機(jī)器人聊天有效的,有的是針對(duì)群生效的,在使用上面幾條指令的時(shí)候是無(wú)差別授予權(quán)限的。2.一般來(lái)說(shuō)/perm u[qq號(hào)]?*.*給自己全部權(quán)限的使用不需要額外注意,方便就完事了,但是要謹(jǐn)慎使用/perm g[qq群號(hào)] *.*,之所以這樣說(shuō),是因?yàn)橛行┎寮?huì)通過(guò)權(quán)限系統(tǒng)設(shè)置一些額外的功能,對(duì)于個(gè)人不是很明顯,有時(shí)候這些功能對(duì)于絕大部分群來(lái)說(shuō)并不一定合適,一般可以對(duì)一個(gè)專門管理機(jī)器人的群設(shè)置這個(gè)指令,比如你建一個(gè)只有你和機(jī)器人的群(我建議你確實(shí)這樣做,方便測(cè)試),對(duì)于這個(gè)群使用這個(gè)指令完全沒(méi)問(wèn)題,后面會(huì)有具體的插件能體現(xiàn)出這一點(diǎn)。

????????好,講了這么多,還是要回歸chat-command的配置上來(lái),那么我用配置這個(gè)插件的權(quán)限作為示范來(lái)講一下權(quán)限的發(fā)放。
????????首先,mcl有一條指令的效果是顯示當(dāng)前運(yùn)行狀態(tài),這條指令為/status,在命令行里執(zhí)行是這樣的:

????????而如果說(shuō)我們要想在qq里給機(jī)器人發(fā)消息也能隨時(shí)看到這條消息,那我們就要通過(guò)chat-command插件。但是這個(gè)插件又不能允許所有人都隨隨便便使用,而是規(guī)定只有被允許的人才能使用,繼而需要我們手動(dòng)分配權(quán)限。
????????使用/perm lp查詢所有權(quán)限可以看到下圖紅色部分,chat-command的權(quán)限只有一條,所以我需要直接分配整個(gè)插件的權(quán)限*,而權(quán)限的全稱是net.mamoe.mirai.console.chat-command:*,如果說(shuō)我要給我自己的qq號(hào)這個(gè)權(quán)限,那我就要輸入/perm add u[qq號(hào)] net.mamoe.mirai.console.chat-command:*

????????輸入完成功后會(huì)顯示一行OK。當(dāng)然如果覺(jué)得每次都輸一長(zhǎng)串太麻煩了,我們當(dāng)然也可以直接給我們自己所有插件,成為擁有所有插件的所有權(quán)限的管理員:

????????一個(gè)短短的 “?* ”?即涵蓋了所有。如果你已經(jīng)給了自己所有的權(quán)限,然后再刪除自己的某條權(quán)限就會(huì)報(bào)錯(cuò),但是一般來(lái)說(shuō)我們不會(huì)這樣操作。

????????現(xiàn)在我們有了chat-command的權(quán)限之后,我們私聊機(jī)器人看看效果:

????????可以看到,我們?cè)趒q聊天中成功調(diào)用了命令行中的指令,在命令行中也有所反饋

? ? ? ?當(dāng)然,不只是這條指令,我們現(xiàn)在可以在qq聊天窗口中執(zhí)行所有支持的指令,這也包括mcl的控制指令。比如輸入/help

????????顯示的內(nèi)容和在命令行里輸入/help是相同的。而/help列舉出來(lái)的命令都是可以在qq窗口里執(zhí)行的,比如我輸入了/stop

????? ?你會(huì)發(fā)現(xiàn)mcl真的關(guān)上了(別忘了一會(huì)兒再打開(kāi))?
???????當(dāng)然,既然我們執(zhí)行權(quán)限只給了一個(gè)對(duì)象:u[qq號(hào)],那么效果就是只有我們自己擁有了使用這條指令的權(quán)限,你可以根據(jù)所需再給其他人或者群分配權(quán)限,但是一定要謹(jǐn)慎分配。
????????好了,至此我們完成了chat-command的安裝和配置,邁過(guò)了卡住眾多mcl初次使用者這一權(quán)限分配的坎?,F(xiàn)在我們已經(jīng)可以從qq聊天里執(zhí)行機(jī)器人的指令了。

? ? ? ? ????■mirai-api-http:
項(xiàng)目地址為https://github.com/project-mirai/mirai-api-http?????????? ? ? ?

????? ? 功能為提供 HTTP 支持,允許使用其他編程語(yǔ)言的插件。這個(gè)插件的存在只要是為了讓用其他語(yǔ)言的插件開(kāi)發(fā)者,也能通過(guò)他們熟悉的語(yǔ)言編寫程序。對(duì)于我們使用者來(lái)說(shuō),我們只需要下載安裝和配置一下就好。其中也要我們配置文件setting.yml,我們后面會(huì)演示到。
????????如之前所說(shuō),我會(huì)演示一遍用指令安裝插件,這里如果說(shuō)讀者完全不想這樣安裝可以打開(kāi)項(xiàng)目地址直接下載jar即可。首先打開(kāi)安裝mcl的文件夾,摁住shift右鍵文件夾空白處,不要右鍵到別的文件。

????????這樣我們就有了一個(gè)位置已經(jīng)在mcl里的命令行

????????如果你是win11,右鍵是這樣的????????

????????我選擇了深色主題,所以是黑色的,命令行也是黑色的,總之我們打開(kāi)了標(biāo)題是PowerShell的窗口。
????????輸入以下代碼,注意要用右鍵復(fù)制到命令行,然后回車執(zhí)行
?????????可以看到mcl運(yùn)行并提示了很短幾行就結(jié)束了

? ? ? ? 這個(gè)時(shí)候我們可以直接關(guān)掉這個(gè)藍(lán)框,繼續(xù)通過(guò)打開(kāi)mcl.cmd那個(gè)黑框啟動(dòng)。之后在啟動(dòng)時(shí)我們就能看到下載的過(guò)程,下載結(jié)束后mcl會(huì)正常運(yùn)行

????????我之所以不建議用這個(gè)方法,是因?yàn)?strong>網(wǎng)絡(luò)環(huán)境可能會(huì)導(dǎo)致無(wú)法正常下載,如下圖,這可能是由于網(wǎng)絡(luò)環(huán)境造成的,也可能是指令不對(duì),但是相較于解決在GitHub下載的問(wèn)題,這個(gè)問(wèn)題可能更加不好找原因,所以盡量使用下載jar安裝插件的方法。

??????? 另外值得注意的是,如果一個(gè)插件支持這個(gè)方法安裝,那么在安裝過(guò)后,即使你把下載下來(lái)的jar刪掉,再重啟mcl,啟動(dòng)器會(huì)自動(dòng)檢測(cè),如果不存在jar或者版本不一致,mcl會(huì)自動(dòng)下載,所以通過(guò)這種方式安裝的插件,在卸載時(shí)需要額外的操作,在以后我會(huì)介紹卸載的過(guò)程。
????????好,看到啟動(dòng)之后現(xiàn)在我們有三個(gè)插件了,我們來(lái)進(jìn)行一下配置,這時(shí)候先要關(guān)掉mcl。

????????注意,mirai所有的插件配置都是要在mcl已經(jīng)關(guān)閉的情況下配置的,配置完畢再打開(kāi)才生效。不要邊運(yùn)行mcl邊改配置文件,那樣的修改會(huì)完全無(wú)效!一定要先關(guān)閉mcl,再修改配置文件!
????????下面來(lái)介紹插件的配置和使用,官方文檔里已經(jīng)比較清楚的寫了這個(gè)插件的使用方法

????????打開(kāi)config文件夾里的net.mamoe.mirai-api-http文件夾,里面有一個(gè)setting.yml文件,如果你沒(méi)有這個(gè)文件,你需要手動(dòng)建這個(gè)文件夾并且建一個(gè) 新建文檔.txt ,然后把他改成setting.yml。如果你沒(méi)有文本編輯的軟件,你可以下載任何一個(gè),這里我使用的是notepad3,下載地址為https://www.rizonesoft.com/cutebean/10403/。這個(gè)軟件不是必要的,但是會(huì)減少你在修改這類配置文件時(shí),出現(xiàn)格式錯(cuò)誤的概率,也能幫你更好地修改配置文檔。

????????使用文本編輯軟件打開(kāi)后可以更加條理清晰地閱讀代碼

????????在這里我們要做兩件事:
???????1.把官方文檔模板里的代碼復(fù)制到配置文件里,即以下文字全部替換setting.yml里面原有的內(nèi)容
????????2.記錄下verifyKey的內(nèi)容,文檔中給出的是1234567890,這個(gè)地方相當(dāng)于你在此設(shè)置了一個(gè)密碼,這串字符相當(dāng)于以后通訊連接的秘鑰,你可以改成對(duì)你來(lái)說(shuō)更好記住的,長(zhǎng)度和內(nèi)容都沒(méi)有限制,也不像密碼一樣必須保密,只要記住就好了。當(dāng)然如果你懶得改,就用默認(rèn)的話,那就要記住你的verifyKey是1234567890。

????????3.手動(dòng)保存文檔,千萬(wàn)不要忘記保存。如果你編輯一半的時(shí)候才想起來(lái)mcl還在運(yùn)行著沒(méi)有關(guān),那你要先關(guān)閉mcl,然后在一下彈窗時(shí)之后選擇否。再之后如果你保存了,那你剛剛做的修改都會(huì)生效。

但是如果你先保存并退出了編輯,再關(guān)閉mcl,你會(huì)發(fā)現(xiàn)你改的配置就白改了。所以還是再提醒,修改配置文檔之前要先關(guān)閉mcl。
????????經(jīng)過(guò)這一系列設(shè)置,我們現(xiàn)在開(kāi)啟了http adapter和websocket adapter,端口為8080。我們不大需要明白這個(gè)啥adapter跟這個(gè)端口,還有VerifyKey是干啥,只要做到能在以后如果有別的插件配置的時(shí)候,配置的項(xiàng)目需要我們填這幾個(gè)信息,我們能想起來(lái)我們之前配置過(guò)這里就行。比如下圖就是某個(gè)插件的配置文件用到了這些信息:

????????這時(shí)候就要填對(duì)mirai-api-http里配置好的相應(yīng)信息,我們才能正常用這個(gè)插件。????????

????????好了現(xiàn)在我們完成了兩大基礎(chǔ)插件的配置,為實(shí)裝其他插件打下了堅(jiān)實(shí)的基礎(chǔ)。同時(shí),寫到這里時(shí),本文的篇幅已經(jīng)超過(guò)8千字了,我完全沒(méi)有想到單純講這兩個(gè)插件花了這么多的篇幅。為了讓讀者有更好的觀感,我決定把這篇文檔設(shè)置為(中)篇。之前提到的更多功能性插件,我會(huì)在(下)篇中再慢慢為大家講解。同時(shí),再次向所有參與開(kāi)發(fā)了Mirai的作者以及平臺(tái)上所有插件作者表示感謝!??!
????????總之,非常感謝你堅(jiān)持看到這里,這篇教程編寫時(shí)的時(shí)間跨度比較長(zhǎng),中間可能有些地方?jīng)]有很好的連貫,對(duì)此我表示非常抱歉!如果發(fā)現(xiàn)了文章中有錯(cuò)誤的地方請(qǐng)及時(shí)告訴我,感謝大家的意見(jiàn)和建議!