我刚刚开始使用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表达式
答案 0 :(得分:1)
Maven使用的默认Java版本是Java 5(1.5),所以我认为这是您的问题。
确保您要使用的语言级别Java 8 JDK具有正确的JDK。设置环境变量并按照指南进行安装。
然后,在您的Maven或Gradle设置文件(pom.xml或build.gradle)中,如下更改Java发布版本。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
检查编译器设置:设置/首选项>生成,执行,部署>编译器> Java编译器>将该特定模块的目标字节码版本更改为1.8