Bagaimana untuk mendapatkan pengguna mengikut id pengguna dalam arahan slash?
P粉368878176
P粉368878176 2023-07-18 15:47:02
0
2
472

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粉368878176
P粉368878176

membalas semua(2)
P粉029327711

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
} 
P粉006977956

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)
       }
   };
} 
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!