創作內容

26 GP

【教學】製作 Discord Bot - DISCORD機器人

作者:慕容雙│2019-06-20 11:42:42│巴幣:1,148│人氣:61621
●安裝必要的程式
 (1)Node.js - 官方網站 - 左邊穩定版,右邊最新版,建議下載穩定版
 (2)notepad++ - 阿榮福利味 - 比記事本好用的記事本,最簡易的寫程式工具

●開啟discord帳號開發者模式
 (1)找到discord的「使用者設定」
 (2)找到左邊的「外觀」
 (3)找到進階選項裡面的「開發者模式」,打開


●建立Discord Bot
 (1)至 Discord應用程式開發網頁
 (2)點擊右邊的「New Application」,輸入應用程式名稱

 (3)給你的機器人大頭貼,記得按下面的「Save Changes」才會儲存
 (4)點左邊的「Bot」,按右邊的「Add Bot」

 (5)輸入機器人的名稱,這個名稱是機器人在伺服器裡顯示的名稱


●將機器人加入到Discord伺服器裡
 (1)點左邊的「General Information」,複製「CLIENT ID」那一行數字
 (2)將Client ID放進下方網址中,取代xxxxxxx那個部分
https://discordapp.com/oauth2/authorize?&client_id=xxxxxxxxxxxxx&scope=bot&permissions=8

 (3)將該網址輸入網址列,選擇要加入的伺服器,授權

 (4)該機器人就會被加入到你的伺服器囉!這時候機器人是離線狀態的~

●撰寫機器人程式碼
 (1)在電腦裡新增一個資料夾,我個人是直接新增在node.js的資料夾裡面
 (2)增加「auth.json」、「package.json」、「bot.js」這三個檔案
  ※兩個json的檔名固定的,js的檔名可以看你自由調整,我是使用dice.js
 (3)這三個檔案用notepad++開啟


●「auth.json」程式碼
 (1)回到Discord應用程式開發網頁,左邊「Bot」,複製TOKEN值

 (2)將TOKEN值放進下方程式碼裡,取代xxxxxxx那個部分
{
"token": "xxxxxxxxxxxx"
}


●「package.json」程式碼
{
"name": "DiceBot",
"version": "1.0.0",
"description": "DiceBot",
"main": "dice.js",
"author": "Double",
"dependencies": {
"discord.io": "github:woor/discord.io#gateway_v6",
"winston": "^3.2.1"
}
}

 name、description、author可以自由修改
 main裡面放的是你的js檔的檔名
 其他地方不要動

※覺得奇怪,我的怎麼長得跟你的不一樣?是因為我上面語言選擇「JSON」

●「bot.js」程式碼
 建議notepad++上面的「語言」選擇「JavaScript」
var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, {
    colorize: true
});
logger.level = "debug";
// Initialize Discord Bot
var bot = new Discord.Client({
   token: auth.token,
   autorun: true
});
bot.on("ready", function (evt) {
    logger.info("Connected");
    logger.info("Logged in as: ");
    logger.info(bot.username + " - (" + bot.id + ")");
});
bot.on("message", function (user, userID, channelID, message, evt) {
if (message.substring(0, 1) == '!') {
        var args = message.substring(1).split(' ');
        var cmd = args[0];

//主要修改的部分
var ran = Math.floor(Math.random()*100)+1;//亂數產生1~100
        switch(cmd) {
            case 'dice'://若輸入!dice時執行
                bot.sendMessage({
                    to: channelID,
                    message: user + ' 骰出了 ' + ran + ' 點!'//機器人回覆這一行字
                });
            break;
         }

     }
});

 裡面你會需要動到的部分,只有備註為「主要修改的部分」那一區
 可以先不要修改,做到最後一步確定執行沒問題再回來修改

●執行機器人
 (1)執行Node.js Command prompt

 (2)輸入指令到你放上述檔案的位置
  像我是放在H碟,Node.js的資料夾內部,DiscordBot資料夾
  就依序輸入以下指令
H:
cd DiscordBot
  它的位置就會找到H:\Program Files\nodejs\DiscordBot的資料夾

 (3)依序輸入指令安裝discord.js
npm install --save discord.js
npm install discord.io winston -–save
npm install https://github.com/woor/discord.io/tarball/gateway_v6
  裝完之後回到資料夾一看,會發現又多了一個資料夾跟一個json檔,就是安裝成功

 (4)輸入指令執行機器人
node bot.js
  ※因為我的js檔,檔名是dice.js,所以我輸入的是node dice.js
  出現以下的訊息,就代表機器人正常執行成功

  回到伺服器看,機器人是否已經上線了
  若你沒有更動我的程式直接執行,可以在文字頻道輸入「!dice」看機器人是否有回應

※停止機器人的方法:在Node.js Command prompt按下鍵盤Ctrl+C
※若要修改bot.js的程式碼,修改程式後儲存,
 按Ctrl+C停止機器人,再直接 node bot.js 啟動即可

●下次執行機器人
 
 discord.js不用再重新安裝囉!

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4433179
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 16 篇留言

指音
請問如果我把資料夾放在 D:\DiscordBot ,那我該打什麼?

01-23 17:11

慕容雙
D:
cd DiscordBot
沒有D槽,用G槽當範例w
https://i.imgur.com/sAY4aKH.jpg01-23 22:55
鬼狼
大大 我輸入Ctrl+C 他沒有關閉ㄟ 還是有其他關閉的方法0.0

02-13 11:55

鬼狼
另外問一下 如果要新增撥音樂那些功能 要修改哪個檔案阿 感謝大大

02-13 11:58

慕容雙
音樂機器人有蠻多其他人寫好的,直接用那個吧,google「DC 音樂機器人」就有了02-13 22:58
瀧本 - Louis
照著步驟做10分鐘就搞定><
感謝大大~

順帶一提,執行機器人的第(3)步驟
npm install discord.io winston -–save
這邊會執行失敗
我把save去掉改成
npm install discord.io winston
就成功了!

03-03 20:00

慕容雙
好喔,感謝你~~
可能各版本寫法有一點差異,我還是先留著^^03-05 19:42
凌浠
Error: Cannot find module 'D:\node_modules\DiscordBot\bot.js'

03-06 03:06

慕容雙
找不到這個資料夾裡面的這個檔案。
確定路徑跟檔案名稱都對嗎?03-07 17:02
凌浠
想請教一下是發生什麼事
我前面都正常就這個沒辦法跑成功
麻煩大大了~

03-06 03:07

凌浠
[90m at Function.Module._resolveFilename

03-06 03:07

凌浠
(internal/modules/cjs/loader.js:982:15)[39m

03-06 03:07

凌浠
下面還有很多類似的[90m ...

03-06 03:08


出現這個該怎麼辦


D:\DiscordBot>node dice.js
D:\DiscordBot\dice.js.js:2
"name": "DiceBot",
^

SyntaxError: Unexpected token ':'
[90m at wrapSafe (internal/modules/cjs/loader.js:1072:16)[39m
[90m at Module._compile (internal/modules/cjs/loader.js:1122:27)[39m
[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)[39m
[90m at Module.load (internal/modules/cjs/loader.js:1002:32)[39m
[90m at Function.Module._load (internal/modules/cjs/loader.js:901:14)[39m
[90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)[39m
[90m at internal/main/run_main_module.js:18:47[39m

D:\DiscordBot>

03-29 19:20

慕容雙
看起來是「"name": "DiceBot",」這一句的冒號有問題,可是我這樣看看不出來什麼問題……你是直接複製我的程式碼嗎?03-31 08:43

對的

04-01 18:44

沒有名字
我打了
D:\DiscordBot>node bot.js之後
他只跑出來
D:\DiscordBot>
請問要如何解決???

04-02 21:19

Schnsauzer
D:\discordbot>npm install discord.io winston --save
npm ERR! code ENOENT
npm ERR! syscall spawn git
npm ERR! path git
npm ERR! errno ENOENT
npm ERR! enoent Error while executing:
npm ERR! enoent undefined ls-remote -h -t ssh://git@github.com/woor/discord.io.git
npm ERR! enoent
npm ERR! enoent
npm ERR! enoent spawn git ENOENT
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\User\AppData\Roaming\npm-cache\_logs\2020-04-13T05_05_07_231Z-debug.log


請問我執行npm install discord.io winston -–save這個步驟,
跳出以上的訊息
該如何排除

04-13 13:08

AzusaKawa.
想請問說,他會自動關閉,應該怎麼處理比較好

04-15 10:52

神神
請問 ●撰寫機器人程式碼 這裡那三個檔案是怎麼用出來的?

04-25 14:44

慕容雙
資料夾內點右鍵→新增→文字文件04-25 18:53
簡簡
E:\Nodejs\discord Bot:npm install --save discord.js
"npm"不是內部或外部指令.可執行的程式或批次檔
....這什麼問題@@???

05-02 20:27

此作品限屋主留言!

前一篇:辦理護照懶人包...

追蹤私訊切換新版閱覽

作品資料夾

chaosolivier巴友們
小屋繪圖更新~~這次也是帶來Q版的人物,不過在角色創作上嘗試了新變化,歡迎入內觀賞看更多我要大聲說50分前


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

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