How to show roles of user discord.js / userinfo command










0















I'm trying to make a 'userinfo' command, and I'm currently stuck on showing roles of the user.



Here's my code:



const Discord = module.require('discord.js');
const moment = require('moment');

module.exports.run = async (bot, message, args) =>

let user = message.mentions.users.first()

module.exports.help =
name: 'userinfo'



I'm getting error TypeError: Cannot read property 'map' of undefined and I don't know how to fix it.
Thanks for help. <3










share|improve this question




























    0















    I'm trying to make a 'userinfo' command, and I'm currently stuck on showing roles of the user.



    Here's my code:



    const Discord = module.require('discord.js');
    const moment = require('moment');

    module.exports.run = async (bot, message, args) =>

    let user = message.mentions.users.first()

    module.exports.help =
    name: 'userinfo'



    I'm getting error TypeError: Cannot read property 'map' of undefined and I don't know how to fix it.
    Thanks for help. <3










    share|improve this question


























      0












      0








      0








      I'm trying to make a 'userinfo' command, and I'm currently stuck on showing roles of the user.



      Here's my code:



      const Discord = module.require('discord.js');
      const moment = require('moment');

      module.exports.run = async (bot, message, args) =>

      let user = message.mentions.users.first()

      module.exports.help =
      name: 'userinfo'



      I'm getting error TypeError: Cannot read property 'map' of undefined and I don't know how to fix it.
      Thanks for help. <3










      share|improve this question
















      I'm trying to make a 'userinfo' command, and I'm currently stuck on showing roles of the user.



      Here's my code:



      const Discord = module.require('discord.js');
      const moment = require('moment');

      module.exports.run = async (bot, message, args) =>

      let user = message.mentions.users.first()

      module.exports.help =
      name: 'userinfo'



      I'm getting error TypeError: Cannot read property 'map' of undefined and I don't know how to fix it.
      Thanks for help. <3







      javascript bots discord discord.js






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 11 '18 at 21:32









      barbsan

      2,45131223




      2,45131223










      asked Nov 11 '18 at 21:21









      Silent WatcherSilent Watcher

      31




      31






















          3 Answers
          3






          active

          oldest

          votes


















          0














          User.roles is undefined because that property doesn't exist: try using GuildMember.roles instead:



          let member = message.mentions.members.first() || message.member,
          user = member.user;

          let embed = new Discord.RichEmbed()
          // ... all the other stuff ...
          .addField('Roles:', member.roles.map(r => `$r`).join(' | '), true)


          The other properties will still use user, but .roles will be related to the GuildMember.






          share|improve this answer























          • Thank you, your suggestion to use 'GuildMember' worked. <3 :D

            – Silent Watcher
            Nov 12 '18 at 15:40












          • Happy to hear that :)

            – Federico Grandi
            Nov 12 '18 at 17:19


















          0














          TypeError: Cannot read property 'map' of undefined - this means that somewhere in your code happening a situation of execution .map function of undefined variable.



          You have only one map. Here:



           .addField('Roles:', user.roles.map(r => `$r`).join(' | '), true)
          // ^^^


          This line trows this error, so this means that user.roles is undefined.



          Try to:



          let user = message.mentions.users.first() || message.author;
          console.log(user.roles); // it is undefined





          share|improve this answer
































            0














            Propably user.roles is undefined.



            If it's ok that user has no roles, you can replace:



            .addField('Roles:', user.roles.map(r => `$r`).join(' | '), true)


            with:



            .addField('Roles:', user.roles ? user.roles.map(r => `$r`).join(' | ') : "", true)


            This will set empty string in case when there's no roles property in user object.



            Another option is to set user.roles to empty array if it doesn't exist (or do something else in this if, i.e. throw error):



            let user = /* get user*/
            if (!user.roles)
            user.roles = ;






            share|improve this answer






















              Your Answer






              StackExchange.ifUsing("editor", function ()
              StackExchange.using("externalEditor", function ()
              StackExchange.using("snippets", function ()
              StackExchange.snippets.init();
              );
              );
              , "code-snippets");

              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "1"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader:
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              ,
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );













              draft saved

              draft discarded


















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53253350%2fhow-to-show-roles-of-user-discord-js-userinfo-command%23new-answer', 'question_page');

              );

              Post as a guest















              Required, but never shown

























              3 Answers
              3






              active

              oldest

              votes








              3 Answers
              3






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              0














              User.roles is undefined because that property doesn't exist: try using GuildMember.roles instead:



              let member = message.mentions.members.first() || message.member,
              user = member.user;

              let embed = new Discord.RichEmbed()
              // ... all the other stuff ...
              .addField('Roles:', member.roles.map(r => `$r`).join(' | '), true)


              The other properties will still use user, but .roles will be related to the GuildMember.






              share|improve this answer























              • Thank you, your suggestion to use 'GuildMember' worked. <3 :D

                – Silent Watcher
                Nov 12 '18 at 15:40












              • Happy to hear that :)

                – Federico Grandi
                Nov 12 '18 at 17:19















              0














              User.roles is undefined because that property doesn't exist: try using GuildMember.roles instead:



              let member = message.mentions.members.first() || message.member,
              user = member.user;

              let embed = new Discord.RichEmbed()
              // ... all the other stuff ...
              .addField('Roles:', member.roles.map(r => `$r`).join(' | '), true)


              The other properties will still use user, but .roles will be related to the GuildMember.






              share|improve this answer























              • Thank you, your suggestion to use 'GuildMember' worked. <3 :D

                – Silent Watcher
                Nov 12 '18 at 15:40












              • Happy to hear that :)

                – Federico Grandi
                Nov 12 '18 at 17:19













              0












              0








              0







              User.roles is undefined because that property doesn't exist: try using GuildMember.roles instead:



              let member = message.mentions.members.first() || message.member,
              user = member.user;

              let embed = new Discord.RichEmbed()
              // ... all the other stuff ...
              .addField('Roles:', member.roles.map(r => `$r`).join(' | '), true)


              The other properties will still use user, but .roles will be related to the GuildMember.






              share|improve this answer













              User.roles is undefined because that property doesn't exist: try using GuildMember.roles instead:



              let member = message.mentions.members.first() || message.member,
              user = member.user;

              let embed = new Discord.RichEmbed()
              // ... all the other stuff ...
              .addField('Roles:', member.roles.map(r => `$r`).join(' | '), true)


              The other properties will still use user, but .roles will be related to the GuildMember.







              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Nov 12 '18 at 15:04









              Federico GrandiFederico Grandi

              3,16621229




              3,16621229












              • Thank you, your suggestion to use 'GuildMember' worked. <3 :D

                – Silent Watcher
                Nov 12 '18 at 15:40












              • Happy to hear that :)

                – Federico Grandi
                Nov 12 '18 at 17:19

















              • Thank you, your suggestion to use 'GuildMember' worked. <3 :D

                – Silent Watcher
                Nov 12 '18 at 15:40












              • Happy to hear that :)

                – Federico Grandi
                Nov 12 '18 at 17:19
















              Thank you, your suggestion to use 'GuildMember' worked. <3 :D

              – Silent Watcher
              Nov 12 '18 at 15:40






              Thank you, your suggestion to use 'GuildMember' worked. <3 :D

              – Silent Watcher
              Nov 12 '18 at 15:40














              Happy to hear that :)

              – Federico Grandi
              Nov 12 '18 at 17:19





              Happy to hear that :)

              – Federico Grandi
              Nov 12 '18 at 17:19













              0














              TypeError: Cannot read property 'map' of undefined - this means that somewhere in your code happening a situation of execution .map function of undefined variable.



              You have only one map. Here:



               .addField('Roles:', user.roles.map(r => `$r`).join(' | '), true)
              // ^^^


              This line trows this error, so this means that user.roles is undefined.



              Try to:



              let user = message.mentions.users.first() || message.author;
              console.log(user.roles); // it is undefined





              share|improve this answer





























                0














                TypeError: Cannot read property 'map' of undefined - this means that somewhere in your code happening a situation of execution .map function of undefined variable.



                You have only one map. Here:



                 .addField('Roles:', user.roles.map(r => `$r`).join(' | '), true)
                // ^^^


                This line trows this error, so this means that user.roles is undefined.



                Try to:



                let user = message.mentions.users.first() || message.author;
                console.log(user.roles); // it is undefined





                share|improve this answer



























                  0












                  0








                  0







                  TypeError: Cannot read property 'map' of undefined - this means that somewhere in your code happening a situation of execution .map function of undefined variable.



                  You have only one map. Here:



                   .addField('Roles:', user.roles.map(r => `$r`).join(' | '), true)
                  // ^^^


                  This line trows this error, so this means that user.roles is undefined.



                  Try to:



                  let user = message.mentions.users.first() || message.author;
                  console.log(user.roles); // it is undefined





                  share|improve this answer















                  TypeError: Cannot read property 'map' of undefined - this means that somewhere in your code happening a situation of execution .map function of undefined variable.



                  You have only one map. Here:



                   .addField('Roles:', user.roles.map(r => `$r`).join(' | '), true)
                  // ^^^


                  This line trows this error, so this means that user.roles is undefined.



                  Try to:



                  let user = message.mentions.users.first() || message.author;
                  console.log(user.roles); // it is undefined






                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Nov 11 '18 at 21:44

























                  answered Nov 11 '18 at 21:33









                  qiAlexqiAlex

                  2,0261724




                  2,0261724





















                      0














                      Propably user.roles is undefined.



                      If it's ok that user has no roles, you can replace:



                      .addField('Roles:', user.roles.map(r => `$r`).join(' | '), true)


                      with:



                      .addField('Roles:', user.roles ? user.roles.map(r => `$r`).join(' | ') : "", true)


                      This will set empty string in case when there's no roles property in user object.



                      Another option is to set user.roles to empty array if it doesn't exist (or do something else in this if, i.e. throw error):



                      let user = /* get user*/
                      if (!user.roles)
                      user.roles = ;






                      share|improve this answer



























                        0














                        Propably user.roles is undefined.



                        If it's ok that user has no roles, you can replace:



                        .addField('Roles:', user.roles.map(r => `$r`).join(' | '), true)


                        with:



                        .addField('Roles:', user.roles ? user.roles.map(r => `$r`).join(' | ') : "", true)


                        This will set empty string in case when there's no roles property in user object.



                        Another option is to set user.roles to empty array if it doesn't exist (or do something else in this if, i.e. throw error):



                        let user = /* get user*/
                        if (!user.roles)
                        user.roles = ;






                        share|improve this answer

























                          0












                          0








                          0







                          Propably user.roles is undefined.



                          If it's ok that user has no roles, you can replace:



                          .addField('Roles:', user.roles.map(r => `$r`).join(' | '), true)


                          with:



                          .addField('Roles:', user.roles ? user.roles.map(r => `$r`).join(' | ') : "", true)


                          This will set empty string in case when there's no roles property in user object.



                          Another option is to set user.roles to empty array if it doesn't exist (or do something else in this if, i.e. throw error):



                          let user = /* get user*/
                          if (!user.roles)
                          user.roles = ;






                          share|improve this answer













                          Propably user.roles is undefined.



                          If it's ok that user has no roles, you can replace:



                          .addField('Roles:', user.roles.map(r => `$r`).join(' | '), true)


                          with:



                          .addField('Roles:', user.roles ? user.roles.map(r => `$r`).join(' | ') : "", true)


                          This will set empty string in case when there's no roles property in user object.



                          Another option is to set user.roles to empty array if it doesn't exist (or do something else in this if, i.e. throw error):



                          let user = /* get user*/
                          if (!user.roles)
                          user.roles = ;







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Nov 11 '18 at 22:43









                          barbsanbarbsan

                          2,45131223




                          2,45131223



























                              draft saved

                              draft discarded
















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid


                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.

                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53253350%2fhow-to-show-roles-of-user-discord-js-userinfo-command%23new-answer', 'question_page');

                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

                              Edmonton

                              Crossroads (UK TV series)