Как вернуть имя владельца гильдии

1

Это часть моего кода, где у меня проблема:

const guild = client.guilds.get('500170876243935247');
message.channel.send(guild.owner);

Я ожидал, что он вернет имя владельца, вместо этого в консоли говорится, что это пустое сообщение. Я запустил guild.owner с console.log и, по-видимому, он отображает все данные из гильдии, смайлики, идентификаторы членов и, в конце концов, данные пользователя владельца, как мне отобразить их отдельно?

Для справки, это последняя часть, которая, на мой взгляд, является той областью, которая мне нужна:

user:
 User {
  id: '317669302549XXXXXX',
  username: 'Flicker',
  discriminator: 'XXXX',
  avatar: 'a_161cc6f5d0466f7afd9a73dc2eba159d',
  bot: false,
  lastMessageID: null,
  lastMessage: null },
 joinedTimestamp: 1539320429681,
Теги:
discord
discord.js

2 ответа

1
Лучший ответ

Когда вы конвертируете User в строку, User.toString() метод User.toString(): он преобразует объект User в упоминание, например, @username. Но если вы сделаете message.channel.send(User) он не будет вызывать User.toString() и поэтому discord.js останется с объектом, который он не может отправить (пример для действительного объекта: message.channel.send( RichEmbed )) и поэтому сообщение будет пустым.

Чтобы избежать этого, вы можете попытаться заменить упоминание чем-то вроде User.tag: этим вы также избегаете получать уведомления каждый раз, когда кто-то использует эту команду.
Если вы не возражаете против того, чтобы вас уведомили, вы можете использовать первое, когда это возможно, в противном случае второе. Вот пример:

const guild = client.guilds.get('500170876243935247');
message.channel.send(message.guild.member(guild.owner) ? guild.owner.toString() : guild.owner.user.tag);
// if the user is in that guild it will mention him, otherwise it will use .tag
  • 0
    User.toString() почти никогда не будет пустым, он всегда будет пытаться упомянуть пользователя, просто делает message.channel.send(User) не будет вызывать .toString() для него, и поэтому discord.js сбит с толку и будет попытаться преобразовать объект, но это не удается, и поэтому сообщение об ошибке с empty_message
  • 0
    Ой, исправил это, спасибо
Показать ещё 5 комментариев
0
client.on('message', msg => {
const thisguild  = msg.guild;   
const owner      = thisguild.owner.user.username;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню