Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

802
Views
(discord.js) How can I make this command only work for certain roles/users?

I'm still fairly inept when it comes to software development, and need some help with making this command work for only certain roles on my discord server, or only work for certain users

client.on('message', async message => {
    if (message.content === '-fruits') {
        try {
            await message.react('๐ŸŽ');
            await message.react('๐ŸŠ');
            await message.react('๐Ÿ‡');
        } catch (error) {
            console.error('One of the emojis failed to react:', error);
        }
    }
});
over 4 years ago ยท Santiago Trujillo
2 answers
Answer question

0

You can restrict a command to specific users by creating an array of user IDs, and if the message authors ID is in the list check if it matches any commands.

// Create an array of user ids
const adminIDs = [/* List of user IDs */]

client.on('message', async message => {
    // Check if the user who sent the message is in the list 
    if (adminIDs.include(message.author.id)) {
        // If user is in list, then check if message matches a command
        if (message.content === 'foo') {
            // do stuff...
        } else if (message.content === 'bar') {
           // do more stuff..
ย        }
    }
});

As for roles, you can check if a user has a specific role.

client.on('message', async message => {
    // Check if the user has a role with the name "Admin"
    if (message.member.roles.find(r => r.name === 'Admin')){
        if (message.content === 'foo') {
            // do stuff...
        } else if (message.content === 'bar') {
           // do more stuff..
        }
    }
});
over 4 years ago ยท Santiago Trujillo Report

0

Comment on @KyleRifqi's answer (I don't have 50 rep.)

Roles also have IDs, so you can do message.member.roles.find(r => r.id === "Role ID string") instead, if you happen to have multiple roles with the same name

over 4 years ago ยท Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
ยฉ 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!