在discord4j中,可以通过使用MonoFlux来实现异步发送消息和获取消息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);
});
discord4j bot 异步发送消息 并且获取消息ID

原文地址: https://www.cveoy.top/t/topic/bXPC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录