【问题标题】:Java: get and return invite url from Discord JDAJava:从 Discord JDA 获取并返回邀请 url
【发布时间】:2020-10-17 19:48:06
【问题描述】:

我的 java spring boot 应用程序具有在 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";
    }
}

【问题讨论】:

    标签: java spring-boot asynchronous discord-jda


    【解决方案1】:

    你应该使用回调:

    public void createTextChannel(String categoryName, String channelName, Consumer<Invite> callback) {
        jda.getGuildById(mainGuildId)
           .createCategory(categoryName)
           .flatMap(category -> category.createTextChannel(channelName))
           .flatMap(textChannel -> textChannel.createInvite())
           .queue(callback);
    }
    
    public void myFunction(String category, String channelName) {
        discordService.createTextChannel(category, channelName, (invite) -> {
            MyData data = new MyData();
            data.setCategory(category);
            data.setChannelName(channelName);
            data.setInviteUrl(invite.getUrl());
            myRepo.save(data);
        });
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-02
      • 2021-02-06
      • 2020-10-05
      • 1970-01-01
      • 2022-01-05
      • 2021-05-15
      • 2019-10-13
      • 2019-05-06
      • 2021-05-25
      相关资源
      最近更新 更多