Jump to content

[Class] Datei wird abgebrochen


615Power

Empfohlene Beiträge

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;

		}
bearbeitet von 615Power
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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?

bearbeitet von 615Power
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