Discord4J Bot 异步发送消息并获取消息ID
在 Discord4J 中,可以使用 'Mono' 和 'Flux' 来实现异步发送消息和获取消息ID。
首先,我们需要创建一个 'DiscordClient' 对象并登录到 Discord:
DiscordClient client = DiscordClient.create('YOUR_BOT_TOKEN');
client.login().block();
接下来,我们可以使用 'client.getChannelById(channelId)' 方法获取要发送消息的频道对象。然后,我们可以使用 'channel.createMessage(messageContent)' 方法发送一条消息并返回一个 'Mono' 对象。
Channel channel = client.getChannelById(channelId).block();
Mono<Message> messageMono = channel.createMessage('Hello, world!');
为了获取消息ID,我们可以对 'messageMono' 对象使用 'map' 操作符,并将其转换为 'String' 类型。
Mono<String> messageIdMono = messageMono.map(Message::getId);
现在,我们可以通过订阅 'messageIdMono' 来获取消息ID:
messageIdMono.subscribe(messageId -> {
System.out.println('Message sent with ID: ' + messageId);
});
完整代码示例:
DiscordClient client = DiscordClient.create('YOUR_BOT_TOKEN');
client.login().block();
Channel channel = client.getChannelById(channelId).block();
Mono<Message> messageMono = channel.createMessage('Hello, world!');
Mono<String> messageIdMono = messageMono.map(Message::getId);
messageIdMono.subscribe(messageId -> {
System.out.println('Message sent with ID: ' + messageId);
});
原文地址: https://www.cveoy.top/t/topic/nj09 著作权归作者所有。请勿转载和采集!