Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mendapatkan pengguna mengikut id pengguna dalam arahan slash?

Saya telah menulis bot Discord, merujuk kepada tutorial seperti yang diperlukan kerana saya baru menggunakannya, tetapi saya telah menghadapi masalah yang, walaupun kedengarannya mudah, saya nampaknya tidak dapat menyelesaikannya. Saya cuba melukis papan pendahulu, dan untuk setiap kedudukan pada papan pendahulu, saya ingin mendapatkan avatar pengguna untuk dilukis pada papan pendahulu. Untuk melakukan ini, saya mahu mendapatkan pengguna dengan hanya ID pengguna mereka. Walau bagaimanapun, saya melakukan semua ini dalam satu arahan slash. Berikut ialah contoh yang sangat ringkas untuk memberikan beberapa konteks dan/atau penjelasan yang lebih baik:

const { SlashCommandBuilder, AttachmentBuilder } = require('discord.js');
// ... some functions and what not go here
module.exports = {
   //... lines for setting up the command go here

   async execute(interaction){
       const data = fetchData();  //A function that gets the whole list of data; did not put it in the codeblock to save on space since it's not necessary
       // ... a bunch of stuff, ordering my data, etc.
       data.forEach(async (userData, index) => {
          // And here begins my issue. The line below is just what I have attempted to do
          const target = interaction.guild.members.cache.get(userData.UserId); 
       });
   };
}

Saya telah melakukan sedikit penyelidikan dan satu-satunya penyelesaian yang berkesan yang saya temui (yang anda boleh lihat dalam kod sampel di atas) ialah menggunakan const target = interaction.guild.members.cache.get("User_ID") ; Walau bagaimanapun, walaupun saya boleh log nilai pulangan dalam konsol, jika saya cuba melakukan sesuatu seperti "target.user" ia mengatakan sasaran tidak ditentukan. Jika ia membantu, ya saya menyertakan Ahli Persatuan dalam niat saya.

P粉368878176P粉368878176460 hari yang lalu475

membalas semua(2)saya akan balas

  • P粉029327711

    P粉0293277112023-07-19 15:38:14

    Jika anda hanya ingin mendapatkan ID pengguna yang menjalankan arahan slash, anda boleh menggunakan interaction.user.id.

    Untuk mendapatkan pengguna melalui ID, anda boleh menjalankan kod berikut:

    //Inside the execute function of the slash command
    
    interaction.guild.members.cache.get("user_id").then(function(user){
        //Do something with user
    } 

    balas
    0
  • P粉006977956

    P粉0069779562023-07-19 12:06:11

    Anda perlu menggunakan ahli.fetch kerana ia tidak segerak, jadi anda perlu menukar forEach anda kepada for...of kerana forEach adalah segerak.

    const { SlashCommandBuilder, AttachmentBuilder } = require('discord.js');
    // ... some functions and what not go here
    module.exports = {
       //... lines for setting up the command go here
    
       async execute(interaction) {
           const data = fetchData();  //A function that gets the whole list of data; did not put it in the codeblock to save on space since it's not necessary
           // ... a bunch of stuff, ordering my data, etc.
           for (const userData of data) {
             const target = await interaction.guild.members.fetch(userData.UserId)
           }
       };
    } 

    balas
    0
  • Batalbalas