Skip to main content

如何製作自己的不和諧機器人

如何製作自己的不和諧機器人

Geoffrey Carr

Discord有一個很好的API用於編寫自定義機器人,以及一個非常活躍的機器人社區。今天我們來看看如何開始製作自己的產品。

你需要一些編程知識來編寫一個機器人,所以並不適合所有人,但幸運的是有一些流行語言的模塊使它很容易。我們將使用最受歡迎的一個,discord.js。

入門

前往Discord的殭屍網站門戶,並創建一個新的應用程序。

您需要記下客戶端ID和密碼(當然,您應該保密)。但是,這不是機器人,只是“應用程序”。您必須在“Bot”選項卡下添加機器人。

記下這個標記,並保守秘密。在任何情況下,都不要將此密鑰提交給Github。您的機器人幾乎會立即被黑客入侵。

安裝Node.js並獲取編碼

要在網頁外部運行Javascript代碼,您需要Node。下載,安裝它,並確保它在終端(或命令提示符)中工作,因為所有這些都適用於Windows系統。默認命令是“node”。

我們還建議安裝nodemon工具。它是一個命令行應用程序,可監視機器人的代碼並在更改時自動重新啟動。您可以通過運行以下命令來安裝它:

npm i -g nodemon

你需要一個文本編輯器。您可以使用記事本,但我們建議使用Atom或VSC。

這是我們的“Hello World”:

const Discord = require('discord.js'); const client = new Discord.Client(); client.on('ready', () => { console.log(`Logged in as ${client.user.tag}!`); }); client.on('message', msg => { if (msg.content === 'ping') { msg.reply('pong'); } }); client.login('token');

此代碼取自discord.js示例。讓我們分解吧。

  • 前兩行是配置客戶端。第一行將模塊導入名為“Discord”的對象,第二行初始化客戶端對象。
  • client.on('ready') 當機器人啟動時,塊會觸發。在這裡,它只是配置為將其名稱記錄到終端。
  • client.on('message') 每當新消息發佈到任何頻道時,塊都會觸發。當然,你需要檢查郵件內容,這就是 if 塊呢。如果消息只是說“ping”,那麼它將回复“Pong!”
  • 最後一行使用來自bot門戶的令牌登錄。顯然,截圖中的令牌是假的。不要在互聯網上發布您的令牌。

複製此代碼,粘貼底部的令牌,並將其另存為 index.js 在專用文件夾中。

如何運行機器人

轉到終端,然後運行以下命令:

nodemon --inspect index.js

這會啟動腳本,並啟動Chrome調試器,您可以通過鍵入來訪問它 chrome://inspect/ 進入Chrome的Omnibar,然後打開“Node的專用devtools”。

現在,它應該只是說“登錄為 ,“但在這裡我添加了一行,將所有收到的消息對象記錄到控制台:

那麼這個消息對像是什麼組成的?很多東西,實際上:

最值得注意的是,您有作者信息和頻道信息,您可以使用msg.author和msg.channel訪問這些信息。我推薦這種將對象記錄到Chrome節點devtools的方法,只是環顧四周看看是什麼讓它起作用。你可能會發現有趣的東西。例如,在這裡,機器人將其回复記錄到控制台,因此機器人的回复觸發 client.on('message')。所以,我做了一個spambot:

注意:小心這一點,因為你真的不想處理遞歸。

如何將Bot添加到您的服務器

這部分比應該更難。您必須使用此URL:

https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot

並將CLIENTID替換為機器人的客戶端ID,可在應用程序頁面的常規信息選項卡中找到。完成此操作後,您可以將鏈接提供給您的朋友,讓他們將殭屍程序添加到他們的服務器中。

好吧,那我還能做什麼?

除了基本設置之外,其他任何事情都完全取決於您。但是,如果我們停止在hello world,這不會是一個教程,所以讓我們回顧一些文檔,這樣你就可以更好地了解可能的內容。我建議你盡可能多地閱讀,因為它有很好的記錄。

我建議添加 console.log(client) 到代碼的開頭,並在控制台中查看客戶端對象:

從這裡,你可以學到很多東西。由於您可以同時將機器人添加到多個服務器,因此服務器是其中的一部分 Guilds 地圖對象。在該對像中是各個公會(這是“服務器”的API名稱),那些公會對象具有包含所有信息和消息列表的通道列表。 API非常深入,可能需要一段時間才能學習,但至少它很容易設置並開始學習。

Link
Plus
Send
Send
Pin