如何保持运行状态?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何保持运行状态?相关的知识,希望对你有一定的参考价值。
因此,我正在尝试为Java中的不和谐对象构建一个bot,但是每当命令执行两次,它第二次将无法正常工作。我知道一定有微小的错误,或者我做错了什么。例如:输入!spotify时,仅在第一次加载bot并再次键入任何!spotify,!minecraft,!origin时才执行该操作。没有任何反应,也没有错误。
public class FileEvent extends ListenerAdapter
public void onGuildMessageReceived(GuildMessageReceivedEvent event)
/*All the paths are here*/
String SPOTIFY_PATH = "enter path here";
String MINECRAFT_PATH = "enter path here";
String ORIGIN_PATH = "enter path here";
/*All the file objects are here*/
File Minecraft = new File(MINECRAFT_PATH);
File Spotify = new File(SPOTIFY_PATH);
File Origin = new File(ORIGIN_PATH);
String message = event.getMessage().getContentRaw();
if (message.equalsIgnoreCase("!spotify"))
Scanner ss = null;
try
ss = new Scanner(Spotify);
catch (FileNotFoundException e)
e.printStackTrace();
String data_spotify = ss.nextLine().trim();
event.getAuthor().openPrivateChannel().flatMap(privateChannel -> privateChannel.sendMessage("sup")).queue();
ss.close();
FileDelete.delete(data_spotify.trim(), SPOTIFY_PATH);
if (message.equalsIgnoreCase("!minecraft"))
Scanner sm = null;
try
sm = new Scanner(Minecraft);
catch (FileNotFoundException e)
e.printStackTrace();
String data_minecraft = sm.nextLine().trim();
event.getAuthor().openPrivateChannel().flatMap(privateChannel -> privateChannel.sendMessage("sup")).queue();
sm.close();
FileDelete.delete(data_minecraft.trim(), MINECRAFT_PATH);
if (message.equalsIgnoreCase("!origin"))
Scanner sn = null;
try
sn = new Scanner(Origin);
catch (FileNotFoundException e)
e.printStackTrace();
String data_origin = sn.nextLine().trim();
event.getAuthor().openPrivateChannel().flatMap(privateChannel -> privateChannel.sendMessage("sup")).queue();
sn.close();
FileDelete.delete(data_origin.trim(), ORIGIN_PATH);
答案
老实说,我不知道您的代码哪里出了问题,但是我确定您不应该将很多命令链接在一起。使用JDA-Utilities,可以更轻松地完成整个命令处理。
如果要创建新命令,则应1.创建一个新的Java类2.将新创建的类扩展为Command类的扩展,如下所示:
public class ExampleCommand extends Command /* code here */
- 创建构造函数并为命令设置所需的属性。
- 覆盖执行方法:
@Override
protected void execute(CommandEvent event) /* code for the command here */
- 将命令添加到客户端/ jda。
client.addCommands(new ExampleCommand());
您可以找到易于阅读和修改的不完整的bot示例(JDA + JDA实用程序)here。
以上是关于如何保持运行状态?的主要内容,如果未能解决你的问题,请参考以下文章