Java:从 Discord JDA 获取并返回邀请 url
Posted
技术标签:
【中文标题】Java:从 Discord JDA 获取并返回邀请 url【英文标题】:Java: get and return invite url from Discord JDA 【发布时间】: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";
【问题讨论】:
【参考方案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);
);
【讨论】:
以上是关于Java:从 Discord JDA 获取并返回邀请 url的主要内容,如果未能解决你的问题,请参考以下文章
获取 Embed-Discord API (JDA) 的提及用户
如何使用 JDA 在 Discord 中创建文本通道:Java Discord Api
如何使用 JDA 在 Discord 服务器(不是用户/机器人 DM)中创建私人频道:Java Discord API