IOException

EinsteigerxD

Mitglied
Ich habe folgendes Problem:
Ich habe eine Klasse:
Code:
public class YClip extends Command {

   
   private Minecraft mc;
   public static int y;
   
   public YClip() {
       super("YClip", "YClips you");
           }

   @Override
   public void execute(String[] args) {
       if(args.length == 1){
           int y = Integer.valueOf(args[0]);
           
           mc.thePlayer.setPosition(mc.thePlayer.getPosition().getX(), mc.thePlayer.getPosition().getY() + y, mc.thePlayer.getPosition().getZ());
       } else {
           messageWithPrefix("Use: yclip <value>");
       }
       
   }

}
(imports & package mal ausgelassen).
Wenn ich nun eingebe:
.yclip 1
oder generell eine Zahl hinter .yclip kommt immer
Caused by: java.lang.NullPointerException

Ich verstehe nicht, woran es liegt?
 
Das Attribut mc ist null. Du solltest dir die Minecraft-Instanz irgendwo herholen, nicht einfach eine leere Referenz benutzen ^^ ... oder es gibt irgendwo eine statische Methode, um solchen ein Objekt zu erhalten ... Googeln liefert bei mir: Minecraft.getMinecraft().thePlayer (allerdings keine Ahnung ob das die gleiche API ist, ....)
Wie wär's zunächst die Grundlagen zu lernen... ?

Nebenbei: Der Titel lautet IOException. Deine Fehlermedung NullPointerException. Dir ist bewusst, dass der Name der Exception genau verrät, woran es liegt?
 
Zuletzt bearbeitet:
Das Attribut mc ist null. Du solltest dir die Minecraft-Instanz irgendwo herholen, nicht einfach eine leere Referenz benutzen ^^ ... oder es gibt irgendwo eine statische Methode, um solchen ein Objekt zu erhalten ... Googeln liefert bei mir: Minecraft.getMinecraft().thePlayer (allerdings keine Ahnung ob das die gleiche API ist, ....)
Wie wär's zunächst die Grundlagen zu lernen... ?

Nebenbei: Der Titel lautet IOException. Deine Fehlermedung NullPointerException. Dir ist bewusst, dass der Name der Exception genau verrät, woran es liegt?
mc ist die Abkürzung für Minecraft.getMinecraft().blablabla aber mal sehen, ob es anders klappt.
 
mc ist die Abkürzung für Minecraft.getMinecraft().blablabla aber mal sehen, ob es anders klappt.
"Abkürzung". Okay ... Ich verweise nochmal darauf die Grundlagen zu lernen...
Jedenfalls stimmt das nicht wenn du ein privates Attribut mit dem Namen mc erstellst. "private Minecraft mc;"
Vielleicht gibt es ja ein mc Attribut in der Command-Klasse (von der du erbst), welche du eigentlich benutzen wolltest?
 
"Abkürzung". Okay ... Ich verweise nochmal darauf die Grundlagen zu lernen...
Jedenfalls stimmt das nicht wenn du ein privates Attribut mit dem Namen mc erstellst. "private Minecraft mc;"
Vielleicht gibt es ja ein mc Attribut in der Command-Klasse (von der du erbst), welche du eigentlich benutzen wolltest?
Habs jetzt gelöst mit:
Code:
 private Minecraft mc = Minecraft.getMinecraft();
 

Zurück
Oben