【问题标题】:Displaying all connected users Discord.js显示所有连接的用户 Discord.js
【发布时间】:2020-05-21 23:43:56
【问题描述】:

我正在尝试创建一个计时器,用 discord.js 轮询所有连接的用户。

我当前的代码是...

Bot.on('ready', () => {
    setInterval (function (){
        var u = Bot.users();
        console.log(u);
    }, 10000);
});

但是,它不适用于错误“TypeError: Bot.users is not a function”。

我只是不确定这是如何工作的。我也试过...

Bot.server.users();
Bot.guilds.users();

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    https://discord.js.org/#/docs/main/master/class/Client?scrollTo=users,users 是一个关联数组,而不是一个函数。试试:

    Bot.on('ready', () => {
        setInterval (function (){
            var u, user;
            for(u in Bot.users){
               user = Bot.users[u];
               if(user instanceof Discord.User) console.log("["+u+"] "+user.username);
            }
        }, 10000);
    });
    

    编辑:现在应该打印出用户名和用户 ID。

    【讨论】:

    • 它正在踢回“_array:null _keyArray:null”。我不确定这意味着什么
    • 奇怪:试试console.log(Bot.users); 看看它说了什么?文档说 所有在任何时候都被缓存的用户对象,由它们的 ID 映射 Type: Collection 所以我认为它会是一个关联数组,但也许不是。您还应该确保有一些用户登录。
    • 显示... bot: false, lastMessageID: null }, '229092771175202817' => User { id: '229092771175202817', username: 'Czel', discriminator: '1053', avatar: null,机器人:假,lastMessageID:空},_array:空,_keyArray:空}
    • 是的,我是对的,它是一个关联数组。调整答案以打印出 id 和用户名。
    • 这回退了.... /index.js:18 if (user instanceof User) { ^ ReferenceError: User is not defined
    【解决方案2】:
    Bot.on("ready", function(){
        var Count;
        for(Count in Bot.users.array()){
           var User = Bot.users.array()[Count];
           console.log(User.username);
        }
    
    })
    

    我还是 javascript 的新手,我也遇到了同样的问题,所以我尝试解决它,我花了很长时间才弄明白,但我还是做到了,希望这会有所帮助!

    我没有添加 setInterval 的东西,但你可以根据需要添加它。基本上我只是添加了一个 .array 并且它起作用了。

    【讨论】:

      【解决方案3】:

      它将显示连接到您服务器的所有用户的用户名,无论是否在线:

      Bot.on('ready', () => {
         setInterval (function (){
            for (user of Bot.users){
              console.log(user[1].username);
            }       
         }, 10000);});
      

      【讨论】:

        【解决方案4】:

        你应该试试这个:

        var guilds = client.guilds;
        console.log(guilds);
        

        这将返回一个集合,其中包含机器人连接的所有公会,并且公会包含其所有成员,它提供了很多信息,请参阅 cmd 日志

        更多信息如下:

        什么是公会,参考这个链接: https://discord.js.org/#/docs/main/stable/class/Guild

        什么是集合,参考这个其他链接: https://discord.js.org/#/docs/main/stable/class/Collection

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-09-22
          • 2017-04-21
          • 2021-01-05
          • 2023-03-05
          • 1970-01-01
          • 2013-04-26
          • 2020-11-19
          相关资源
          最近更新 更多