Как заставить бота писать имя пользователя

Это код, я хочу, чтобы он написал имя пользователя, а затем аукционное слово (p.s. я новичок в этом)

const Discord = require('discord.js')
const client = new Discord.Client()
const { MessageEmbed } = require('discord.js');
const channel = client.channels.cache.get('889459156782833714');


client.on("ready", () => {
    console.info(`Logged in as ${client.user.tag}!`)
})

client.on("message", msg => {
    var message = new Discord.MessageEmbed()
        .setColor('#FF0000')
        .setTitle() // want user's name + "Auction"
        .addField('Golden Poliwag', 'Very Pog', true)
        .setImage('https://graphics.tppcrpg.net/xy/golden/060M.gif')
        .setFooter('Poliwag Auction')
  
    if (msg.content === "d.test") {
        msg.reply(message)
    }
})

Имя пользователя какого пользователя? Тот, кто послал сообщение?

Zsolt Meszaros 16.03.2022 16:09
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
47
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете получить доступ к имени пользователя с помощью msg.author.tag. Так. способ использования пользовательского тега во встраивании будет следующим:

const client = new Discord.Client()
const { MessageEmbed } = require('discord.js');
const channel = client.channels.cache.get('889459156782833714');



client.on("ready", () => {
  console.info(`Logged in as ${client.user.tag}!`)
})

client.on("message", msg => {
  var message = new Discord.MessageEmbed()
    .setColor('#FF0000')
    .setTitle(`${msg.author.tag} Auction`)
    .addField('Golden Poliwag','Very Pog',true)
    .setImage('https://graphics.tppcrpg.net/xy/golden/060M.gif')
    .setFooter('Poliwag Auction')
  if (msg.content === "d.test") {
    msg.reply(message)
  }
})

Неправильно, msg.user не существует

MrMythical stands with Ukraine 16.03.2022 17:33

Извините, случайно набрал. Должно быть msg.author.tag. я отредактировал ответ

Caladan 17.03.2022 06:15

Я предлагаю вам прочитать документация discord.js, почти все, что вам нужно для взаимодействия с Discord API, оттуда.

  1. Вы не можете управлять ботом, если не войдете в него. Получите токен бота от Портал разработчиков и войдите в свой бот, добавив client.login('<Your token goes here>') в свой проект.

  2. Вы не можете получить канал, если он не закэширован в клиенте. Вам нужно получить его с помощью метода fetch() из менеджера каналов клиента:

const channel = await client.channels.fetch('Channel ID goes here');

P/s: await доступно только в асинхронной функции

  1. message событие устарело, если вы используете дискорд.js v13. Вместо этого используйте событие messageCreate.

  2. Вы можете получить доступ к пользователю, который отправил сообщение через msg объект: msg.author. Если вам нужен их тег, вы можете получить свойство tag от пользователя: msg.author.tag, или имя пользователя: msg.author.username, или даже идентификатор пользователя: msg.author.id. Для получения дополнительной информации о классе сообщений о разногласиях читайте здесь.

  3. Варианты ответа для сообщения не являются сообщением. Вы пытаетесь ответить на сообщение автора другим сообщением, которое неверно. Пожалуйста, замените варианты ответа на объект, который включает embeds:

msg.reply({ 
    embeds: [
        // Your array of embeds goes here
    ]
});

Из всего этого у нас теперь есть окончательный код:

const { Client, MessageEmbed } = require('discord.js');
const client = new Client();

client.on("ready", () => {console.info(`Logged in as ${client.user.tag}!`)});

client.on("messageCreate", async (msg) => {
    const channel = await client.channels.fetch('889459156782833714');
    const embed = new Discord.MessageEmbed()
        .setColor('#FF0000')
        .setTitle(`${msg.author.tag} Auction`)
        .addField('Golden Poliwag','Very Pog',true)
        .setImage('https://graphics.tppcrpg.net/xy/golden/060M.gif')
        .setFooter('Poliwag Auction');
    if (msg.content === "d.test") {
        msg.reply({
            embeds: [ embed ],
        });
    }
});

client.login('Your bot token goes here');

Теперь ваш бот может отвечать на команду пользователя с расширенным встраиванием.

ОП определил Discord, но неправильно отформатировал вопрос. Кроме того, вам не нужно извлекать канал, если вы не выполняете сегментирование, поскольку он всегда кэшируется. На самом деле вы могу управляете ботом, не входя в систему, но это необработанные запросы API... Обратите внимание, что OP также может использовать v12, что означает, что синтаксис отправки встраивания правильный

MrMythical stands with Ukraine 16.03.2022 17:36

@MrMythical, да, я просто говорю, что если использует discord.js. И я предлагаю ему обновиться, потому что discord.js v12 перестанет работать 30 апреля.

ACGaming 16.03.2022 17:45

Также он использует discord.js, поэтому мы помогаем ему в discord.js, чтобы он мог легко понять.

ACGaming 16.03.2022 17:49

Спасибо, ребята, я обновил свою версию Discord до V13.

Shivang Goswami 17.03.2022 07:54

@ShivangGoswami хорошо, обязательно прочитайте журналы изменений с v12 на v13 здесь

ACGaming 17.03.2022 08:31

Другие вопросы по теме