- 10 Ara 2015
- 1,195
- 3
Herkese iyi günler. Java bilmediğimden yapamıyorum muhtemelen, bu yüzden bunu burada sorma gereği duydum. Elimde şöyle bir kod var. Ben bu kodda şunu istiyorum fakat yapamıyorum. Eğer "?komut" yazısından sonra bir kelime yazılırsa 1. kodu gerçekleştirecek, 2 kelime yazılırsa 2. kod gerçekleşecek, 3. kelimede 3. komut. Yazdığım kodlar sorunsuz çalışmakta, fakat bu kodları nasıl sadece "?komut" kullanarak çalıştırabilirim, bunu nasıl yapabilirim, şimdiden yardımlarınız için teşekkürler.
Bu da hepsini ilk prefix'e bağladığımda ve herhangi bir komudu çalıştırmaya çalıştığımda verdiği hata.
Kod:
String prefix = "?komut3";
String komut = event.getMessage().getContent().toString();
String komuts[] = komut.split(" ");
if(event.getMessage().getContent().toString().startsWith(prefix) == true && komuts[1] != null && komuts[2] != null && komuts[3] != null)
{
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), komuts[1]+" "+komuts[2]+" "+komuts[3]);
return;
}
////////////////////////////////2 kelimeli komut
String prefix2 = "?komut2";
if(event.getMessage().getContent().toString().startsWith(prefix2) == true && komuts[1] != null && komuts[2] != null)
{
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), komuts[1]+" "+komuts[2]);
return;
}
////////////////////////////////1 kelimeli komut
String prefix3 = "?komut1";
if(event.getMessage().getContent().toString().startsWith(prefix3) == true && komuts[1] != null)
{
System.out.println(komuts[0]+","+komuts[1]);
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), komuts[1]);
return;
}
this.main.sendMessageToMinecraft(event.getMessage());
super.onMessageReceived(event);
}
}
Bu da hepsini ilk prefix'e bağladığımda ve herhangi bir komudu çalıştırmaya çalıştığımda verdiği hata.
Kod:
[22:31:06 WARN]: [22:31:06] [Fatal] [JDA]: One of the EventListeners had an uncaught exception
[22:31:06 WARN]: [22:31:06] [Fatal] [JDA]: Encountered an exception:
[22:31:06 WARN]: [22:31:06] [Fatal] [JDA]: java.lang.ArrayIndexOutOfBoundsException: 2
at listener.DiscordListener.onMessageReceived(DiscordListener.java:42)
at net.dv8tion.jda.core.hooks.ListenerAdapter.onEvent(ListenerAdapter.java:402)
at net.dv8tion.jda.core.hooks.InterfacedEventManager.handle(InterfacedEventManager.java:84)
at net.dv8tion.jda.core.handle.MessageCreateHandler.handleDefaultMessage(MessageCreateHandler.java:128)
at net.dv8tion.jda.core.handle.MessageCreateHandler.handleInternally(MessageCreateHandler.java:49)
at net.dv8tion.jda.core.handle.SocketHandler.handle(SocketHandler.java:37)
at net.dv8tion.jda.core.requests.WebSocketClient.handleEvent(WebSocketClient.java:968)
at net.dv8tion.jda.core.requests.WebSocketClient.onTextMessage(WebSocketClient.java:661)
at com.neovisionaries.ws.client.ListenerManager.callOnTextMessage(ListenerManager.java:352)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:260)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:238)
at com.neovisionaries.ws.client.ReadingThread.handleTextFrame(ReadingThread.java:963)
at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:746)
at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:108)
at com.neovisionaries.ws.client.ReadingThread.runMain(ReadingThread.java:64)
at com.neovisionaries.ws.client.WebSocketThread.run(WebSocketThread.java:45)
Son düzenleme: