0

estoy intentando crear un bot de discord con java maven y me gustaria tener el nucleo separado de los comandos, y que el nucleo llame(inicie) a los comandos para que se puedan usar, he intentado llamarlo de la siguiente manera pero no funciona, me da un error de java.lang.NullPoinerException agradeceria que alguien me ayude:

EL NUCLEO

package darkdragon.team.dragonoid;

import net.dv8tion.jda.core.AccountType;
import net.dv8tion.jda.core.JDA;
import net.dv8tion.jda.core.JDABuilder;
import net.dv8tion.jda.core.entities.Game;
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
import net.dv8tion.jda.core.hooks.ListenerAdapter;

public class App extends ListenerAdapter
{
    public static JDA api;
    public static void main( String[] args ) throws Exception
    {
        api = new JDABuilder(AccountType.BOT).setToken(Ref.token).buildBlocking();
        api.addEventListener(new App());
        api.getPresence().setGame(Game.playing("MANTENIMIENTO"));
        MessageReceivedEvent evt = null;
        Commands.processCommand(evt);
    }

}

LOS COMANDOS

package darkdragon.team.dragonoid;

import net.dv8tion.jda.core.entities.Message;
import net.dv8tion.jda.core.entities.MessageChannel;
import net.dv8tion.jda.core.entities.User;
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
import net.dv8tion.jda.core.hooks.ListenerAdapter;

public class Commands extends ListenerAdapter {
    public static void processCommand(MessageReceivedEvent evt) {
        User objUser = evt.getAuthor();
        Message objMsg = evt.getMessage();
        MessageChannel objMsgCh = evt.getChannel();
        String[] command = objMsg.getContentRaw().toLowerCase().replaceFirst(Ref.prefix, "").split(" ");
        if(command[0].equals("ping")) {
            objMsgCh.sendMessage(objUser.getAsMention() + "Pong!");
        }
    }
}

SALTA EL ERROR

Exception in thread "main" java.lang.NullPointerException

Tsetsi
  • 27
  • 9

1 Answers1

0

El nucleo como tal no esta inicializando el evento correctamente, se está enviando en null

MessageReceivedEvent evt = null;
Commands.processCommand(evt);

Por lo tanto en la primera linea que trate se utilizarse la información del evento se producira un NullPointerException

 User objUser = evt.getAuthor();
Jonnathan Q
  • 522
  • 3
  • 7
  • No entiendo, es esto una respuesta de solucion? Aun asi gracias supongo, voy a ver si puedo hacer algo a base de esto – Tsetsi Mar 28 '18 at 22:11
  • @user9451723 estás buscando una causa del nullPointerException, te estoy exponiendo una, esto no quiere decir que sea la solución completa a lo que quieres implementar, no creo que alguien te de tal respuesta, pero si te ayudará a recordar por que se presentan los NullPointerExceptions – Jonnathan Q Mar 28 '18 at 22:21
  • Si, supongo que me esta ayudando ya que estoy buscando la manera de no llamarlo con null, pero de momento no encuentro como llamarlo correctamente – Tsetsi Mar 28 '18 at 22:26