創作內容

5 GP

【discord.js (v13) BOT 製作筆記一】官方範例程式碼

作者:游隼│2021-08-15 21:00:08│巴幣:10│人氣:3879
要做 DISCORD BOT 這兩個網站的文件詳細觀看理論上就可以完成
discord.js Documentation discord.js Guide
最近在折疼 JavaScript
印象中 Discord 的 BOT 可以用 JavaScript 寫 想說玩玩看當練習
不過剛好遇到 discord.js 大改版 (兩天前更新到 v13.1.0) 網路上的中文教學大部分都失效了
這裡只記錄採到的坑 其他舊版教學差不多的就不重複講了 (我就爛)



Discord Developers Portal
  • 這裡建立 Discord 的 BOT APP,還有最重要的獲取 token (可以看做是登入 bot 帳密)



  • Node.js Downloads
  • 下載 Node.js 的安裝包並安裝 要下載最新版本!
    LTS 版 discord.js v13 不支援 我卡這裡卡好久... (不仔細看官方文件的下場)
  • 如果有寫過程式,可以用習慣的 Code 編輯器,我用官方推薦的 Visual Studio Code。安裝 ESLint (針對 JavaScript 優化的擴充元件) 不是必須的,不過安裝會方便許多。總之,discord.js 文檔中的這篇文章,有詳細的說明及步驟。



  • discord.js Documentation
  • 範例所需依賴項
    用 CMD 切到專案資料夾 執行下面指令安裝依賴項。
    npm install discord.js @discordjs/rest discord-api-types
    完成後會多資料夾 "node_modules", 檔案 "package-lock.json"。
  • 建立一個 註冊斜線指令.js 檔 (檔名可自訂) 下面程式碼是為了註冊斜線指令 /ping
    const { REST } = require('@discordjs/rest');
    const { Routes } = require('discord-api-types/v9');

    const commands = [{
      name: 'ping',
      description: 'Replies with Pong!'
    }];

    const rest = new REST({ version: '9' }).setToken('BOT的TOKEN放這邊');

    (async () => {
      try {
        console.log('Started refreshing application (/) commands.');

        await rest.put(
          Routes.applicationGuildCommands('BOT的ID放這邊', '公會(伺服器)的ID放這邊'),
          { body: commands },
        );

        console.log('Successfully reloaded application (/) commands.');
      } catch (error) {
        console.error(error);
      }
    })();
    之後用 CMD 執行上面程式碼
    node 註冊斜線指令.js
    完成後在 Discord 輸入 / 就可以看到 /ping (該 BOT 的斜線指令) 了,但此時該斜線指令沒有任何功能。
  • 再建立一個 index.js 檔 這邊是 BOT 伺服器的主要程式 所有想實現功能都放這邊
    const { Client, Intents } = require('discord.js');
    const client = new Client({ intents: [Intents.FLAGS.GUILDS] });

    client.on('ready', () => {
      console.log(`Logged in as ${client.user.tag}!`);
    });

    client.on('interactionCreate', async interaction => {
      if (!interaction.isCommand()) return;

      if (interaction.commandName === 'ping') {
        await interaction.reply('Pong!');
      }
    });

    client.login('BOT的TOKEN放這邊');
    之後用 CMD 執行上面程式碼
    node index.js
    這時 BOT 伺服器已經開始運作了,再到 Discord 輸入 /ping 您建立的 BOT 就會回應 Pong!。
    要關閉 BOT 伺服器可以按 Ctrl+C 關閉伺服器,之後 Discord 的 BOT 將會離線。
    如果想要 BOT 持續運作就必須一直開著電腦,或是用 Azure, GCP, AWS, OC 這類雲端伺服器。
  • 引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5239074
    All rights reserved. 版權所有,保留一切權利

    相關創作

    同標籤作品搜尋:Discord|discord.js|JavaScript|BOT|Node.js

    留言共 3 篇留言

    M mango

    08-15 21:02

    游隼
    其實我只想表達不要載到 LTS 的 Node.js 會不能用 Orz
    (其他都是直接官方文檔 COPY 過來+簡易翻譯而已 算是為了不要讓文章看起來內容太少吧www)08-15 21:10
    瞇眼喵太郎
    偶⋯偶的頭⋯⋯

    08-16 06:56

    燕子
    更新到v13之後, 變得好麻煩@@ 想當初升到v12也掙扎了很久www

    08-24 17:13

    游隼
    我是剛入坑 然後看到滿山滿谷的v12教學
    被誤導了好久XD08-24 17:28
    我要留言提醒:您尚未登入,請先登入再留言

    5喜歡★ding890326 可決定是否刪除您的留言,請勿發表違反站規文字。

    前一篇:Windows 上 Mi... 後一篇:【discord.js ...

    追蹤私訊切換新版閱覽

    作品資料夾

    ShuLongQinHu大家
    小屋有新增肌肉練習喔 歡迎來看看看更多我要大聲說昨天04:01


    face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
    屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
    。Google Chrome(推薦)
    。Mozilla Firefox
    。Microsoft Edge(Windows10以上的作業系統版本才可使用)

    face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】