Jump to content

Interner Fehler


Empfohlene Beiträge

Hey, bei folgendem Code bekomme ich immer einen internen Fehler. Was passt ihm nicht?


package testplugin;


import org.bukkit.command.Command;

import org.bukkit.command.CommandSender;

import org.bukkit.entity.Player;

import org.bukkit.plugin.java.JavaPlugin;


public class testpluginprogrammierung extends JavaPlugin{

	public void onEnable () {

		System.out.println("[Heilung] Das Heilungs-Plugin wurde gestartet!");

	}


		public void onDisable () {

			System.out.println("[Heilung] Das Heilungs-Plugin wurde gestoppt!");

		}

		@SuppressWarnings("deprecation")

		public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) {


			Player p = (Player)sender;

		if (cmd.getName.equalsIgnoreCase("heilen")) {

				if (args.length == 0) {

					p.sendMessage("?aDu wurdest geheilt!");

					p.setHealth(20.0);

			}

			return true;

		}

		else {

			return false;

		}

		}

}

Immer ein interner Fehler, beim Fett gemachten und unterstrichenen zeigt Eclipse einen Fehler dann, lässt mich aber nix importeren. Der Code ist aus nem Video, das ich gerade nicht finde :D(Edit: Dashier, alles gleich gemacht.;http://www.youtube.com/watch?v=q0feJI6oQFM)

Edit2: Beim getName ist ne Glühbirne mit X, der Videoersteller sagte aber in den Kommentaren, dass das kein Problem sei.

Bitte, ist mein erster Versuch, nicht auslachen XD

MfG

bearbeitet von Biber
Link zu diesem Kommentar
Auf anderen Seiten teilen

1. Wo ist da ein getName() ?

1+.Wo ist da was fett? :)

1++.Wann tritt der Fehler auf? Wenn erst zur Laufzeit, dann schick mal den Fehler ;)

2. Füg mal direkt über der onComman ein @Override ein :)

3. Deine plugin.yml korrrekt?

4. Wenn du den Befehl in der Konsole eingibst, wird es nen Fehler geben, weil es sich nicht um ein Player-Objekt handelt.

Füg mich einfach in Skype hinzu. Ist vllt einfacher ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also das cmd.getName().equalsIgnoreCase("") dürfte schon klappen.

Ich frage mich aber auch, warum du deprecation-Probleme hast. setHealth() ist glaube ich noch voll im Trend!?

Ich denke es liegt an der plugin.yml, liegt meistens dran ;D

Den Error aus der Konsole bitte mal herkopieren.

Für die Zukunft: Mach nen Check, ob der sender die Konsole ist, sonst gibt's große böse Fehler.


	public boolean isConsole (CommandSender sender) {		

		if (sender instanceof ConsoleCommandSender) return true;

		else return false;

	}

Wäre eine schöne Methode, die genau das checkt und dir bei einer Konsole true und bei allem anderen false zurückgibt. Danach kannst du getrost einen Player casten, beim Nachdenken bin ich mir aber doch nicht so ganz sicher, wie das Ganze dann mit CMD-Blöcken aussieht.

Liebe Grüße,

Baustein

EDIT: Die Methode dürfte sogar Arcalio gefallen, kleiner Insider. ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

EDIT: Die Methode dürfte sogar Arcalio gefallen, kleiner Insider. ;)

Endlich mal Zeichen sparen :D

Allerdings ist es meiner Ansicht nach Quatsch, zu testen, ob der sender Konsole ist, wenn man eh zu Player casten will. Warum dann nicht auf instance of Player überprüfen? Da gäbe es auch die Überlegung mit den Cmd-Blöcken nicht.

@Baustein:

1.Warum sollte sich das nicht compilen lassen?

2. Wieso habe ich das Gefühl, dass du quasi meinen Beitrag genommen hast und daraus Sätze gemacht hast? :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 weeks later...

	public boolean isConsole (CommandSender sender) {				if (sender instanceof ConsoleCommandSender) return true;		else return false;	}

Danke Baustein für diese Methode ^^

Probiere ich mal aus.. Ich schreibe es eigentlich

immer anders! :D Danke :)

bearbeitet von _CrazyLuke_
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B