【发布时间】:2019-09-25 07:20:34
【问题描述】:
我刚刚开始使用 IntelliJ IDEA 在 Java 中使用一些简单的功能编写 Discord Bot。现在我确实有一个问题,我必须将语言级别 8 用于特定功能,但是当我这样做时,它给了我一个错误,以前的任何工作现在都不会工作。
代码:
package main;
import net.dv8tion.jda.core.AccountType;
import net.dv8tion.jda.core.JDABuilder;
import net.dv8tion.jda.core.entities.Member;
import net.dv8tion.jda.core.events.guild.voice.GuildVoiceJoinEvent;
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
import net.dv8tion.jda.core.hooks.ListenerAdapter;
import net.dv8tion.jda.core.entities.Role;
import net.dv8tion.jda.core.entities.User;
import java.util.List;
import javax.security.auth.login.LoginException;
public class Main extends ListenerAdapter {
public static void main(String[] args) throws LoginException {
JDABuilder builder = new JDABuilder(AccountType.BOT);
String token = "Token of bot which i dont want to show here";
builder.setToken(token);
builder.addEventListener(new main.Main());
builder.buildAsync();
}
@Override
public void onMessageReceived(MessageReceivedEvent event) {
System.out.println("We received a message from " +
event.getAuthor().getName()+": "+ event.getMessage().getContentDisplay());
if(event.getMessage().getContentRaw().equals("!ping"))
{
event.getChannel().sendMessage("Pong!").queue();
}
}
@Override
public void onGuildVoiceJoin(GuildVoiceJoinEvent event) {
Role role = event.getGuild().getRoleById("575318189467107328");
List<Member> list = event.getGuild().getMembersWithRoles(role);
for (int i = 0; i < list.size(); i++) {
User supporter = list.get(i).getUser();
supporter.openPrivateChannel().queue((channel)->{channel.sendMessage("Jemand braucht Hilfe").queue();});
}
}
}
这是我迄今为止尝试做的。我的问题出现在“supporter.openPrivate .....”这一行中。
我希望当我将项目和模块语言级别更改为 8 时它会起作用,但它给了我这个错误: 错误:java:错误:不支持发布版本 5
当我不更改语言级别时,它会这样说: 语言级别“5”不支持 Lambda 表达式
【问题讨论】:
-
你使用maven还是gradle?
-
您是否可以使用不支持 Lambda 表达式的旧版 Java 进行构建?
标签: java discord-jda