Как использовать fetchMessages () для получения определенного количества сообщений, а затем отправлять их определенным образом? - PullRequest
0 голосов
/ 26 апреля 2018

То, что я хотел бы сделать, - это взять информацию из разрешения обещания из fetchMessages(), а затем получить возможность просмотреть полученную коллекцию и , затем , чтобы иметь возможность отправить некоторые штуки.

Например, бот выдаст список 10 сообщений, похожих на GalaxyDJx#2462: hi, если, по возможности, найдет информацию (например, имя пользователя, дискриминатор, содержимое сообщения), а затем установит для каждой части информации свою собственную переменную, такую ​​как var uname, var discrm и var msgcnt.

Информация, которую я получил из одного сообщения, приведена ниже, и все, что мне действительно нужно, это имя пользователя участника, дискриминатор и получение содержимого сообщения, которое они отправили.

'439129579567972353' => Message {
  channel: TextChannel {
    type: 'text',
    id: '411925734970490880',
    name: 'galaxys-bot-testing',
    position: 3,
    parentID: '394174705655087104',
    permissionOverwrites: [Object],
    topic: '',
    nsfw: false,
    lastMessageID: '439131920736059402',
    guild: [Object],
    messages: [Object],
    _typing: Map {},
    lastMessage: [Object]
  },
  id: '439129579567972353',
  type: 'DEFAULT',
  content: '<@436985225546039337> fetch',
  author: User {
    id: '311283024312532993',
    username: 'GalaxyDJx',
    discriminator: '2462',
    avatar: 'IgnoreThis',
    bot: false,
    lastMessageID: '439131920736059402',
    lastMessage: [Object]
  },
  member: GuildMember {
    guild: [Object],
    user: [Object],
    _roles: [Array],
    serverDeaf: false,
    serverMute: false,
    selfMute: undefined,
    selfDeaf: undefined,
    voiceSessionID: undefined,
    voiceChannelID: undefined,
    speaking: false,
    nickname: null,
    joinedTimestamp: 1518280794719,
    lastMessageID: '439131920736059402',
    lastMessage: [Object]
  },
  pinned: false,
  tts: false,
  nonce: undefined,
  system: false,
  embeds: [],
  attachments: Collection {},
  createdTimestamp: 1524767050402,
  editedTimestamp: null,
  reactions: Collection {},
  mentions: MessageMentions {
    everyone: false,
    users: [Object],
    roles: Collection {},
    _content: '<@436985225546039337> fetch',
    _client: [Object],
    _guild: [Object],
    _members: null,
    _channels: null
  },
  webhookID: null,
  hit: null,
  _edits: []
}

Я получил эту информацию от использования этого кода.

var promise1 = Promise.resolve(message.channel.fetchMessages({limit: 1}));

promise1.then(function(value) {
  console.log(value);
});

1 Ответ

0 голосов
/ 23 августа 2018

Поскольку TextChannel.fetchMessages() возвращает Обещание, вам не нужно использовать Promise.resolve(), сохранять возвращаемое значение и все такое: вы можете просто сделать это:

message.channel.fetchMessages({limit: 1}).then(console.log);
//       this returns a Promise          |     Here you're using Promise.then()
...