在 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);
});
Discord4J Bot 异步发送消息并获取消息ID

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

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