簡體   English   中英

discord.js 試圖 DM 隨機人 gif

[英]discord.js trying to DM random person gif

我最近開始制作自己的 discord 機器人,我正在嘗試從服務器 gif 中隨機發送一個人。 問題是當我寫命令時它只選擇我或機器人。 對我的朋友也一樣。 我嘗試了很多東西,但我嘗試的一切都沒有奏效,所以這就是我在這里問的原因。 這是我的代碼:

module.exports = {
    name:'gif',
    description: 'sending random person gif in DM',
    execute(message, args){
        const list = message.guild.members.cache.array();
        const users = Math.floor(Math.random() * list.length);
        const dm = list[users];
        if(dm.user.id === '820258978390474773') return;
        dm.send('https://tenor.com/view/funny-animals-dog-dance-cute-smile-gif-12759384');
        console.log(`${dm}`);
        message.channel.send(`${dm} got the gif`);
    }
} 

這是我的主要 javascript 文件中的代碼

if(message.channel.id === '820260807010156574' && command === 'gif'){
        client.commands.get('gif').execute(message, args);
}

提前致謝

我認為這可能是因為您的朋友不在公會的成員緩存中。 您可以在執行message.guild.members.cache.array()之前使用message.guild.members.fetch()獲取公會中的成員。

module.exports = {
    name:'gif',
    description: 'sending random person gif in DM',
    async execute(message, args){
        await message.guild.members.fetch();
        const list = message.guild.members.cache.array();
        const users = Math.floor(Math.random() * list.length);
        const dm = list[users];
        if(dm.user.id === '820258978390474773') return;
        dm.send('https://tenor.com/view/funny-animals-dog-dance-cute-smile-gif-12759384');
        console.log(`${dm}`);
        message.channel.send(`${dm} got the gif`);
    }
}

我添加了 async & await,所以代碼在 discord.js 獲取新的公會成員之后執行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM