Neox
Neox

Reputation: 9

Discord slash commands mute

Im doing discord bot with slash commands and i have that code:

        let channel = client.channels.cache.get('channel id')
        var member = guild.members.cache.get(Object.values(interaction.data.options[0])[0])
        var role = client.guilds.cache.get("guild id").roles.cache.get("role id")
        let reason = Object.values(interaction.data.options[1])[0]
        let time = '1h'
        try {
            let time = Object.values(interaction.data.options[2])[0]
        } catch(err){
            console.log("some text")
        }
        member.roles.add("role id");
        let time2 = times(time)
        const muteEmbed = new Discord.MessageEmbed()
        .setTitle("Mute")
        .setDescription("<@" + member.id + "> Otrzymał mute za "+reason+", na "+parseInt(time).toString()+' '+typeoftime(time)+".")
        .setTimestamp()
        .setColor("#ff0000")
    client.channels.cache.get('channel').send(muteEmbed)
    member.timeout = client.setTimeout(async () => {
      try {
        member.roles.remove("role id");
        const unmuteEmbed = new Discord.MessageEmbed()
          .setTitle('Unmute')
          .setDescription("<@"+member.id+"> Już nie ma mute.")
          .setTimestamp()
          .setColor("#00ff00");
        client.channels.cache.get('channel id').send(unmuteEmbed);
      } catch (err) {
        console.log(err)
      }
    }, time2);

But nothing that finds user by id not working... Can someone help? (Some code is custom functions (times and typeoftime))

Upvotes: 0

Views: 663

Answers (1)

Max
Max

Reputation: 107

Actually You Have Not Correctly Finded The User, Role and Channel

You Can Find the member by

  let member = guild.members.cache.find(mem => mem.id === "member_id_here")

for Roles

  let role = guild.roles.cache.find(r => r.id === "role_id_here")

for channels

  let channel = guild.channel.cache.find(ch => ch.id === "channel_id_here")

Upvotes: 2

Related Questions