NodeJS 如何检查从getUser选项中选择的成员是否在discordjs中具有特定角色

cigdeys3  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(94)

我用我的机器人发出一个命令,首先检查目标玩家是否有特定的角色。问题是,它无法弄清楚这个人是否有这个角色,它总是默认为没有。

// Points remove command
            if (interaction.commandName === 'points-remove') {
                const player = interaction.options.getUser('target');
                const playerid = player.roles.cache.has('1136220928666251325');
                const pToRemove = interaction.options.getInteger('points');
                const sqlQ = `UPDATE playerdata SET points = points - ${mysql.escape(pToRemove)} WHERE playerid = ${mysql.escape(player.id)}`;
                if (playerid) {
                    con.query(sqlQ, (error, result) => {
                        if (error) throw error;
                        interaction.reply({ content: `${player} has lost ${pToRemove} succesfully!`, ephemeral: true });
                    });
                } else {
                    interaction.reply('Cannot remove from unregistered player!');
                }
            }

字符串
基本上,如果用户没有“registered”角色,该命令将不会执行任何操作。但是它总是转到else语句。(我为代码的格式道歉,它复制粘贴得很糟糕)

k4ymrczo

k4ymrczo1#

用户没有角色!你的代码是完全正确的,除了下面这行:

// ❌
const player = interaction.options.getUser('target');

字符串
将上面的代码更改为以下代码应该可以解决您的问题!

const player = interaction.options.getMember('target');

相关问题