615Power Posted September 1, 2014 Share 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 Link to comment Share on other sites More sharing options...
Arcalio Posted September 1, 2014 Share 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 Link to comment Share on other sites More sharing options...
Baustein Posted September 1, 2014 Share 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 Link to comment Share on other sites More sharing options...
Arcalio Posted September 1, 2014 Share 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 Link to comment Share on other sites More sharing options...
Baustein Posted September 1, 2014 Share Posted September 1, 2014 @Arcalio: <3 ... Liebe Grüße, Baustein Link to comment Share on other sites More sharing options...
615Power Posted September 3, 2014 Author Share 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 Link to comment Share on other sites More sharing options...
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