615Power Posted September 1, 2014 Posted September 1, 2014 (edited) 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 September 6, 2014 by 615Power
Arcalio Posted September 1, 2014 Posted September 1, 2014 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
Baustein Posted September 1, 2014 Posted September 1, 2014 Hach, und wenn er gerade nicht da ist, dann schreib mich an Du wärst nicht der erste, dem Arcalio und ich auf Skype helfen konnten. (Skype-Account: Minecraftforum.de) Liebe Grüße, Baustein
Arcalio Posted September 1, 2014 Posted September 1, 2014 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
615Power Posted September 3, 2014 Author Posted September 3, 2014 (edited) 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 September 4, 2014 by 615Power
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now