2017-01-12 1 views
0

Mon journal d'erreur dit sur la ligne 13 (Dans ma MainClass) il y a un NPE.NullPointerException dans OnEnable() (Bukkit plugin)

Mes MainClass:

package me.p250; 

import org.bukkit.configuration.file.FileConfiguration; 
import org.bukkit.plugin.java.JavaPlugin; 

import me.p250.command.BuyCommand; 

public class MainClass extends JavaPlugin { 

public FileConfiguration config; 

public void onEnable() { 
    getCommand("a").setExecutor(new BuyCommand(this)); 
} 

public void onDisable() { 

    } 

} 

Et mon autre autre classe: http://pastebin.com/bYpCnPN2

+0

probablement getCommand retourne null: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/plugin/java/JavaPlugin.html#getCommand(java.lang.String) – gawi

+0

pourquoi les gens posent-ils toujours des questions NPE? Est-ce ** difficile à tester? – Moira

Répondre

3

Comme d'autres l'ont déjà dit, vous obtenez un NPE car la commande "a" n'existe pas. Si vous ne l'avez pas déjà fait, ajoutez-le à votre fichier .yml également.

commands: 
    a: 
    description: does something 
    usage: /a 

Éditer: Apparemment, vous ne l'avez pas ajouté à votre onCommand. Vérifiez la commande à l'aide

if(cmd.getName().equalsIgnoreCase("a")) { 
    //do stuff when /a is executed 
} 

Le chèque de args peut être fait là-bas. Exemple:

if(cmd.getName().equalsIgnoreCase("a")) { 
    if(args[0].equalsIgnoreCase("test1")){ 
     //execute code for /a test1 
    } else if(args[0].equalsIgnoreCase("test2")){ 
     //execute code for /a test2 
    } 
} 
+1

Tout ce que je devais faire était enregistrer ma commande dans mon plugin.yml Depuis que j'ai utilisé CommandExecutor, je n'ai pas eu à faire est (label.equalsIgnoreCase ("a") – GoldShovel

+0

Oh, je vois ... Désolé pour mon montage, je viens de réaliser que j'écris des bêtises – AscendedKitten

+0

Ne vous inquiétez pas, j'étais aussi absurde car j'aurais dû vérifier si ma commande était enregistrée en premier !! passe, je vais poster le journal des erreurs: O – GoldShovel

0

getCommand return null si la commande n'existe pas. Assurez-vous que la commande "a" est créée.

+0

J'ai oublié comment faire la commande "a". Comment pourrais-je mettre cela dans mon autre classe ?? (Je n'ai pas fait bukkit depuis un moment!) – GoldShovel