Java:从Discord JDA获取并返回邀请url

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

我的java spring启动应用程序具有在discord上创建文本频道并将创建的频道数据保存在数据库中的功能。
虽然我无法确定如何从函数返回创建的邀请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(数据);
});
}