Java:从Discord JDA获取并返回邀请url
我的java spring启动应用程序具有在discord上创建文本频道并将创建的频道数据保存在数据库中的功能。Java:从Discord JDA获取并返回邀请url,java,spring-boot,asynchronous,discord-jda,Java,Spring Boot,Asynchronous,Discord Jda,我的java spring启动应用程序具有在discord上创建文本频道并将创建的频道数据保存在数据库中的功能。 虽然我无法确定如何从函数返回创建的邀请url public void myFunction(String category, String channelName) { String inviteUrl = discordService.createTextChannel(); MyData data = new MyData(); data.setCateg
虽然我无法确定如何从函数返回创建的邀请url
public void myFunction(String category, String channelName) {
String inviteUrl = discordService.createTextChannel();
MyData data = new MyData();
data.setCategory(category);
data.setChannelName(channelName);
data.setInviteUrl(inviteUrl);
myRepo.save(data);
}
@Service
@RequiredArgsConstructor
public class DiscordService {
private final JDA jda;
@Value("${discord.main.guild.id}")
private String mainGuildId;
public String createTextChannel(String categoryName, String channelName) {
jda.getGuildById(mainGuildId).createCategory(categoryName).queue(
category -> { category.createTextChannel(channelName).queue(
textChannel -> textChannel.createInvite().queue(
invite -> System.out.println("The url is " + invite.getUrl()));
});
return "return the url";
}
}
您应该使用回调:
public void createTextChannel(字符串categoryName、字符串channelName、使用者回调){
jda.getGuildById(mainGuildId)
.createCategory(categoryName)
.flatMap(类别->类别.createTextChannel(频道名称))
.flatMap(textChannel->textChannel.createInvite())
.队列(回调);
}
公共void myFunction(字符串类别、字符串通道名称){
discordService.createTextChannel(类别、频道名称、(邀请)->{
MyData数据=新的MyData();
数据集类别(类别);
data.setChannelName(channelName);
data.setInviteUrl(invite.getUrl());
myRepo.save(数据);
});
}