Saya mengalami kesulitan mengkodekan bot saya untuk orang-orang yang memiliki MANAGE_MESSAGES untuk dapat mengucapkan 'kata buruk'. Ini kode saya:

const Discord = require('discord.js')
const bot = new Discord.Client()
const token = process.env.DISCORD_TOKEN

let set = new Set(['badword'])
bot.on('message', msg => {
  if (msg.author.bot) {
    return
  }
  let wordArray = msg.content.split(' ')
  if (!msg.member.hasPermission('MANAGE_MESSAGES')) {
  for(var i = 0; i < wordArray.length; i++) {
    if(set.has(wordArray[i].toLowerCase())) {
      msg.delete()
      msg.channel.send(`${msg.author.username}, you said a bad word.`)
      break
    }
    console.log('message filtered')
  }   
}

})
bot.login(token)

.permissions.has() tidak berfungsi sesuai dengan situs web ini https://discordjs.guide/additional-info/changes-in-v12.html#permissions-haspermission-s, dikatakan bahwa .hasPermission() / .hasPermissions() sekarang sepenuhnya dihapus dari v11 dan menambahkan permissions.has(). Ya, bot saya ditingkatkan ke v12 jadi tolong bantu.

1
Link Pig Thrower 20 November 2020, 04:04

1 menjawab

Jawaban Terbaik

Cara yang benar untuk menggunakannya adalah .hasPermission('MANAGE_MESSAGES')

if (!msg.member.hasPermission('MANAGE_MESSAGES'))

Anda menggunakan kelas GuildMember yang menggunakan metode hasPermission(). Anda sedang melihat kelas izin.

https://discord.js.org/#/docs/main/stable/class/GuildMember

1
QuazArxx 20 November 2020, 01:20