Jump to content

[Class] Datei wird abgebrochen


615Power
 Share

Recommended Posts

Ich habe eine Klasse erstellt in der nun einige Commands sind:

- /kit setspawn

- /kit setleave

- /kit help

- /kit

- /kit perm

/ kit admin

/kit und /kit help funktioniert, aber das andere nicht. Obwohl die 1zu1 das selbe Command sind:

/kit perm nicht

Beim eingeben des Befehls kommt keine Fehlermeldung in der Konsole


	public boolean onCommand(CommandSender cs, Command cmd, String strg,String[] args) {


		//Grundbefehl 

		if (args.length == 0) {

			if (cs.hasPermission("kit.pvp")) {

				cs.sendMessage(PvP.prefix + "Author ?6615Power");

				cs.sendMessage(PvP.prefix + "Version ?6" + PvP.version);

				cs.sendMessage(PvP.prefix + "Benutze ?6/kit help ?rfür einer Liste der Befehler");

			} else {

				Player p = (Player) cs;

				p.sendMessage(PvP.noperm);

			}

			return true;

		}

		//HelpBefehl 

		if (args.length == 1) {

			if (args[0].equalsIgnoreCase("help")) {

				if (cs.hasPermission("kit.pvp")) {

					cs.sendMessage("?e[]======= ?aKitPvP ?e=====[]");

					cs.sendMessage("?e/kit        Zeigt Infos über das Plugin");

					cs.sendMessage("?e/kit help?r Zeigt diese Hilfe an :D");

					cs.sendMessage("?e/kit join?r Trete einer Arena bei");

					cs.sendMessage("?e/kit leave?r Verlasse einer Arena");

					cs.sendMessage("?e/kit admin?r Admin-Hilfe");

					cs.sendMessage("?e[]===================[]");

				} else {

					Player p = (Player) cs;

					p.sendMessage(PvP.noperm);

				}

			}

			return true;

		}

		//Perm

		if (args.length == 1) {

			if (args[0].equalsIgnoreCase("perm")) {

				if (cs.hasPermission("kit.admin")) {

					cs.sendMessage("?e[]======= ?aKitPvP ?e=====[]");

					cs.sendMessage("?ekit.pvp   ?rStandart Berechtigung");

					cs.sendMessage("?ekit.admin ?rAdmin Berechtigung");

					cs.sendMessage("?e[]===================[]");

				} else {

					Player p = (Player) cs;

					p.sendMessage(PvP.noperm);

				}

			}

			return true;

		}
Edited by 615Power
Link to comment
Share on other sites

Ganz einfacher Fehler: Für die nachfolgenden Befehle gilt trotzdem, dass an deine onCommand()-Methode nur ein weiteres Argument übergeben wird.

Somit trifft if (args.length == 1) in Zeile 47 zu. Da die 2. Bedingung aber nicht zutrifft, wird einfach nur return true ausgeführt.

Du kannst das Problem beheben, indem du Zeile 47 und 48 in eine if-Abfrage packst und die beidem mit einem logischen UND (sinnvollerweise &&) verknüpfst.

Falls du noch Probleme haben solltest, dann sag bescheid oder schreib mich einfach auf Skype an :)

Liebe Grüße

Arcalio

Link to comment
Share on other sites

Du musst dir das so vorstellen: Spieler fragt Baustein --> Baustein fragt Arcalio --> Arcalio weiß alles und sagt ihm die Antwort --> Baustein gibt Arcalios schlaue Antwort als seine aus und sagt das dem Spieler.

Du kannst also wählen, wen du fragst: Arcalio oder Arcalio.

@Baustein: <3

Link to comment
Share on other sites

So, Nun funktioniert das wieder habe einfach die if Abfrage vom ersten Befehl /kit help übernommen.

==============================================================================

Ich habe da noch eine Frage. Wenn ich die in einem anderen Thread stellen solll das schreibt es mit.

Ich habe ein Scoreboard


public class ScoreboardUtil {


	static HashMap<Player, Scoreboard> list = new HashMap<>();

	static Scoreboard board;

	static Objective obj;


	@SuppressWarnings("deprecation")

	public static void addScoreboard(Player p) {

		board = (Scoreboard) Bukkit.getScoreboardManager().getNewScoreboard();

		obj = board.getObjective("GameStats");

		obj = board.registerNewObjective("GameStats", "dummy");


		obj.setDisplayName("?e?lGameStats");

		obj.setDisplaySlot(DisplaySlot.SIDEBAR);

		obj.getScore(Bukkit.getOfflinePlayer("?eKills")).setScore(MainCmd.cfg.getInt("Kit.Stats." + p.getName() + ".kills"));

		obj.getScore(Bukkit.getOfflinePlayer("?eDeaths")).setScore(MainCmd.cfg.getInt("Kit.Stats." + p.getName() + ".deaths"));

		obj.getScore(Bukkit.getOfflinePlayer("?eCoins")).setScore(MainCmd.cfg.getInt("Kit.Stats." + p.getName() + ".points"));

		list.put(p, board);

		p.setScoreboard(board);

	}

	@SuppressWarnings("deprecation")

	public static void UpdateScoreboard(Player p) {

		if (!list.containsKey(p)) {

			addScoreboard(p);


		}


		board = list.get(p);

		obj = board.getObjective("GameStats");

		obj.getScore(Bukkit.getOfflinePlayer("?eKills")).setScore(MainCmd.cfg.getInt("Kit.Stats." + p.getName() + ".kills"));

		obj.getScore(Bukkit.getOfflinePlayer("?eDeaths")).setScore(MainCmd.cfg.getInt("Kit.Stats." + p.getName() + ".deaths"));

		obj.getScore(Bukkit.getOfflinePlayer("?eCoins")).setScore(MainCmd.cfg.getInt("Kit.Stats." + p.getName() + ".points"));

		//http://youtu.be/dZkx_1PEmII?t=5m16s

	}

}

Nun möchte ich das ich a diese Stats in der Config speicher. b beim Tot jeweils was hinzufügen über einen int und c beim /kit join anzeigen und bei /kit leave verstecken. Wie mache ich das?

Edited by 615Power
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