Javascript Discord.JS TypeError:无法读取属性';角色';尝试添加角色时未定义的

Javascript Discord.JS TypeError:无法读取属性';角色';尝试添加角色时未定义的,javascript,discord,discord.js,Javascript,Discord,Discord.js,我创建这个作为一个测试,这就是为什么我有一个角色和用户的恒定id 错误:TypeError:无法读取未定义错误的属性“角色” 用于“muteUser.roles.remove(mainRole.catch(console.error);” 在研究了这些文档之后,我不知道如何使其与最新版本一起工作 const Discord = require('discord.js'); const client = new Discord.Client(); const config = r

我创建这个作为一个测试,这就是为什么我有一个角色和用户的恒定id

错误:TypeError:无法读取未定义错误的属性“角色” 用于“muteUser.roles.remove(mainRole.catch(console.error);”

在研究了这些文档之后,我不知道如何使其与最新版本一起工作

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


   client.once('ready', () => {
       console.log('Ready!');
   });

   client.on('message', message => {
       if (message.content.includes('jail')) {
               let muteUser = message.guild.members.cache.get('832168644230381609');
               let mainRole = message.guild.roles.cache.get('845217593970786314');
               let muteRole = message.guild.roles.cache.get('845217665906638868');

               muteUser.roles.remove(mainRole).catch(console.error);
               muteUser.roles.add(muteRole).catch(console.error);
               console.log('User muted');
      }
   })

   client.login('');

我应该使用fetch而不是cache来处理muteUser一号,我还必须用async解决我的承诺,这意味着消息不属于任何公会,因此message.guild是未定义的,这不是你提供的代码的问题,而是rest的设置问题。那么我应该使用什么来获得角色呢?
let muteUser = await message.guild.members.fetch('832168644230381609');
let mainRole = await message.guild.roles.cache.get('845217593970786314');
let muteRole = await message.guild.roles.cache.get('845217665906638868');

//Muting the user
await muteUser.roles.remove(mainRole).catch(console.error);
await muteUser.roles.add(muteRole).catch(console.error);