Jump to content

Interner Fehler


Biber
 Share

Recommended Posts

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

Edited by Biber
Link to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

  • 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 :)

Edited by _CrazyLuke_
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...
B
B