小屋創作

日誌2021-08-15 21:00

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

作者:游隼

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



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



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



  • 範例所需依賴項
    用 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 這類雲端伺服器。
  • 5

    3

    LINE 分享

    相關創作

    [達人專欄] 魔法起源錄(第六十九章:與斯特莉亞的會談(上))

    【情報】Discord動畫瘋新番爬蟲通知機器人v1.1(含教學片)

    【動畫瘋/招募】Discord : ACG'news巴哈姆特動畫瘋分部

    留言

    開啟 APP

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

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