iT邦幫忙

0

關於創建discord bot遇到困難 需邦友幫忙解決

  • 分享至 

  • xImage

想請問在創建discord bot時 使用node.js 要安裝discord.js時會出現err 後面我就看不懂!https://ithelp.ithome.com.tw/upload/images/20211223/20145088lrbio0CnMu.png
是參考這位大大的教學來製作的
https://ithelp.ithome.com.tw/articles/10233784

以解決上面的問題
但是又有問題出現了https://ithelp.ithome.com.tw/upload/images/20211223/20145088zlkaQ87kMl.png
再輸入node bot之後 他跑出上圖的問題 希望各位邦友能幫忙解決一下
原本的:現在變成}了 附上auth.json的照片https://ithelp.ithome.com.tw/upload/images/20211223/20145088RET72ytqcp.png
bot.js

const Discord = require('discord.js');
const client = new Discord.Client();
const auth = require('./auth.json');

client.login(auth.key);

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

client.on('message', msg => {
    if (msg.content === 'ping') {
        msg.reply('pong!'),
    }

});

package.json

{
    "name": "kjyang",
    "version": "1.0.0",
    "description": "kjyang",
    "main": "bot.js",
    "scripts": {"test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "",
    "license": "ISC"
    }
看更多先前的討論...收起先前的討論...
fillano iT邦超人 1 級 ‧ 2021-12-24 06:21:56 檢舉
看起來錯誤訊息是你的程式有誤,你先確認一下你的Javascript語法是否正確。
fillano iT邦超人 1 級 ‧ 2021-12-24 06:39:58 檢舉
另外,最好把你寫的bot.js貼出來,因為錯在這裡...
好 我把我的檔案都po出來
已po
fillano iT邦超人 1 級 ‧ 2021-12-24 21:38:02 檢舉
msg.reply('pong!'),
,改成;
但是這樣也不會動,因為discord.js改版,api變動以後,這樣寫是不會動的。
fillano iT邦超人 1 級 ‧ 2021-12-24 21:38:38 檢舉
你先熟悉一下Javascript怎麼寫吧。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
fillano
iT邦超人 1 級 ‧ 2021-12-25 12:00:21

要跟上版本的話,可以參考discord.js上的指引文件

跟discord申請好,然後跟你的guild取得權限後,就可以在你的guild上跑你的機器人。一個目前版本(13)可以跑的例子:

const auth = require('./auth');
const { Client, Intents } = require('discord.js');

const client = new Client({ 
  intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_MESSAGE_REACTIONS],
  partials: ['MESSAGE', 'CHANNEL', 'REACTION'] 
});

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

client.on('messageCreate', async message => {
  try {
    if(message.partial) await message.fetch();
  } catch(e) {
    console.log(e);
  }
  if(message.content.indexOf('google') > -1) {
    await message.reply('try yahoo!!');
  }
});

client.on('interactionCreate', async interaction => {
  if (interaction.isCommand() && interaction.commandName === 'google') {
    await interaction.reply('yahoo!');
  }
});

client.login(auth.key);

這個例子註冊了一個/google命令,輸入命令他會回覆yahoo!。另外,他會監看訊息,發現有人輸入google,就會回覆try yahoo!!。(只是好玩,我跟yahoo沒關係的)

運行畫面:
https://ithelp.ithome.com.tw/upload/images/20211225/200001082eseq0LLgd.png

我要發表回答

立即登入回答