AlexAyoub545
AlexAyoub545

Reputation: 27

Command that doesnt exist

const Discord = require("discord.js");
module.exports.run = async (bot, message, args) => {
    if(!message.member.hasPermission("MANAGE_ROLES")) return message.channel.send('**🔒️You don\'t have permission to use this command.**');
    const user = message.mentions.members.first();
    if(!user) return message.channel.send('**❓️Please specify a member you would like to give a role to.**')
    const role = message.guild.roles.cache.find(r => r.name === args.slice(1).join(" "));
    if(!role) return message.channel.send('**❔️Please specify a role to give to the member.**')
    await user.addRole(role.id), message.channel.send('**${user} now has the ${role} role ✅️**')
}
module.exports.help = {
    name: 'addrole'
}

Thats my code for my addrole on nodejs for discord. It keeps erroring and i dont know why Please help

(node:4) UnhandledPromiseRejectionWarning: TypeError: user.addRole is not a function

2020-08-01T03:27:32.084669+00:00 app[worker.1]: at Object.module.exports.run (/app/commands/addrole.js:8:13)

2020-08-01T03:27:32.084670+00:00 app[worker.1]: at Client. (/app/bot.js:39:21)

2020-08-01T03:27:32.084670+00:00 app[worker.1]: at Client.emit (events.js:327:22)

2020-08-01T03:27:32.084671+00:00 app[worker.1]: at MessageCreateAction.handle (/app/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)

2020-08-01T03:27:32.084671+00:00 app[worker.1]: at Object.module.exports [as MESSAGE_CREATE] (/app/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)

2020-08-01T03:27:32.084672+00:00 app[worker.1]: at WebSocketManager.handlePacket (/app/node_modules/discord.js/src/client/websocket/WebSocketManager.js:386:31)

2020-08-01T03:27:32.084672+00:00 app[worker.1]: at WebSocketShard.onPacket (/app/node_modules/discord.js/src/client/websocket/WebSocketShard.js:436:22)

2020-08-01T03:27:32.084672+00:00 app[worker.1]: at WebSocketShard.onMessage (/app/node_modules/discord.js/src/client/websocket/WebSocketShard.js:293:10)

2020-08-01T03:27:32.084673+00:00 app[worker.1]: at WebSocket.onMessage (/app/node_modules/ws/lib/event-target.js:125:16)

2020-08-01T03:27:32.084673+00:00 app[worker.1]: at WebSocket.emit (events.js:315:20)

2020-08-01T03:27:32.084735+00:00 app[worker.1]: (node:4) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)

2020-08-01T03:27:32.084773+00:00 app[worker.1]: (node:4) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

2020-08-01T03:35:17.000000+00:00 app[api]: Build started by user [email protected]

2020-08-01T03:35:47.802805+00:00 heroku[worker.1]: Restarting

2020-08-01T03:35:47.805060+00:00 heroku[worker.1]: State changed from up to starting

2020-08-01T03:35:47.596003+00:00 app[api]: Deploy 1d6a75e6 by user [email protected]

2020-08-01T03:35:47.596003+00:00 app[api]: Release v86 created by user [email protected]

2020-08-01T03:35:48.552338+00:00 heroku[worker.1]: Stopping all processes with SIGTERM

2020-08-01T03:35:48.644800+00:00 heroku[worker.1]: Process exited with status 143

2020-08-01T03:35:50.000000+00:00 app[api]: Build succeeded

2020-08-01T03:35:53.488826+00:00 heroku[worker.1]: Starting process with command node bot.js

2020-08-01T03:35:54.141973+00:00 heroku[worker.1]: State changed from starting to up

2020-08-01T03:36:00.317362+00:00 app[worker.1]: PandaBot online. :P

2020-08-01T03:36:00.321641+00:00 app[worker.1]: Connected as + PandaBot#6486, yay!

2020-08-01T03:36:24.227439+00:00 app[worker.1]: (node:4) UnhandledPromiseRejectionWarning: ReferenceError: member is not defined

2020-08-01T03:36:24.227478+00:00 app[worker.1]: at Object.module.exports.run (/app/commands/addrole.js:8:2)

2020-08-01T03:36:24.227479+00:00 app[worker.1]: at Client. (/app/bot.js:39:21)

2020-08-01T03:36:24.227480+00:00 app[worker.1]: at Client.emit (events.js:327:22)

2020-08-01T03:36:24.227481+00:00 app[worker.1]: at MessageCreateAction.handle (/app/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)

2020-08-01T03:36:24.227482+00:00 app[worker.1]: at Object.module.exports [as MESSAGE_CREATE] (/app/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)

2020-08-01T03:36:24.227483+00:00 app[worker.1]: at WebSocketManager.handlePacket (/app/node_modules/discord.js/src/client/websocket/WebSocketManager.js:386:31)

2020-08-01T03:36:24.227483+00:00 app[worker.1]: at WebSocketShard.onPacket (/app/node_modules/discord.js/src/client/websocket/WebSocketShard.js:436:22)

2020-08-01T03:36:24.227483+00:00 app[worker.1]: at WebSocketShard.onMessage (/app/node_modules/discord.js/src/client/websocket/WebSocketShard.js:293:10)

2020-08-01T03:36:24.227485+00:00 app[worker.1]: at WebSocket.onMessage (/app/node_modules/ws/lib/event-target.js:125:16)

2020-08-01T03:36:24.227485+00:00 app[worker.1]: at WebSocket.emit (events.js:315:20)

2020-08-01T03:36:24.227534+00:00 app[worker.1]: (node:4) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)

2020-08-01T03:36:24.227636+00:00 app[worker.1]: (node:4) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Upvotes: 1

Views: 90

Answers (1)

Daemon Beast
Daemon Beast

Reputation: 2909

You need to change member to members:

const user = message.mentions.member.first();
// to
const user = message.mentions.members.first();

You also need to swap find and cache:

const role = message.guild.roles.find.cache(r => r.name === args.slice(1).join(' '));
// to
const role = message.guild.roles.cache.find(r => r.name === args.slice(1).join(' '));

Finally, you need to change .addRole() to .roles.add():

await user.addRole(role.id), message.channel.send('**${user} now has the ${role} role ✅️**')
// to
await user.roles.add(role.id);
message.channel.send('**${user} now has the ${role} role ✅**');

Upvotes: 1

Related Questions