1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Was habe ich falsch gemacht... :/

Dieses Thema im Forum "Spigot" wurde erstellt von TommyboyTV, 16. Oktober 2017.


  1. TommyboyTV
    Offline

    TommyboyTV

    Registriert seit:
    19. September 2017
    Beiträge:
    24
    Geschlecht:
    männlich
    Hey Leute!
    Ich würde gerne wissen, was ich hier falsch gemacht habe:

    Player p = (Player)sender;

    StringBuilder text = new StringBuilder();
    for(int i = 0 ; i < args.length ; i++) {
    text.append(args).append("");

    if(p.hasPermission("Admin")) {
    if(p.getName().equalsIgnoreCase("Adminchat")) {
    for (Player target : Bukkit.getServer().getOnlinePlayers()) {
    if (target.hasPermission("Admin")) {
    target.sendMessage("§4[ADMINCHAT] " + sender.getName() + args);
     
  2. Werbung
    Online

    Werbung

  3. moinless
    Offline

    moinless

    Registriert seit:
    4. Oktober 2013
    Beiträge:
    75
    Geschlecht:
    männlich
    Es wäre von Vorteil, wenn du die ganze Klasse schicken könntest und sagen könntest, was sie machen soll.

    Trotzdem würde ich raten, dass du in dieser Zeile etwas verwechselt hast:
    Ich denke mal, du möchtest den eingegeben Command erhalten, nicht den Namen des Spielers?
     
    • Gefällt mir Gefällt mir x 1
  4. TommyboyTV
    Offline

    TommyboyTV

    Registriert seit:
    19. September 2017
    Beiträge:
    24
    Geschlecht:
    männlich
    Jo, das habe ich mitlerweile auch schon gemerkt und korrigiert.
    Hier @moinless :
    package chats;

    import org.bukkit.Bukkit;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;

    public class Chats implements CommandExecutor {

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String string, String[] args) {

    Player p = (Player)sender;

    StringBuilder text = new StringBuilder();
    for(int i = 0 ; i < args.length ; i++) {
    text.append(args).append("");

    if(p.hasPermission("Admin")) {
    if(cmd.getName().equalsIgnoreCase("Adminchat")) {
    for (Player target : Bukkit.getServer().getOnlinePlayers()) {
    if (target.hasPermission("Admin")) {
    target.sendMessage("§4[ADMINCHAT] " + sender.getName() + args);
    }
    }
    }
    }

    }



    return false;
    }

    }
     
    Zuletzt bearbeitet: 16. Oktober 2017
  5. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    129
    Geschlecht:
    männlich
    1. Bitte benutze Code-Tags
    2. Hast du immernoch nicht gesagt, was eigentlich dein Problem ist


    3....:

    Code (Text):
    1.  
    2. if(cmd.getName().equalsIgnoreCase("Adminchat"))
    3. {
    4.   if(sender instanceof Player)
    5.   {
    6.     Player p = (Player)sender;
    7.     if(p.hasPermission("Admin")
    8.     {
    9.       for(Player player : Bukkit.getOnlinePlayers())
    10.       {
    11.         if(player.hasPermission("Admin") { player.sendMessage("§4[ADMINCHAT] " + p.getName() + args); }
    12.       }
    13.     }
    14.   }
    15. }
    16.  
    17.  
     
  6. TommyboyTV
    Offline

    TommyboyTV

    Registriert seit:
    19. September 2017
    Beiträge:
    24
    Geschlecht:
    männlich
     
  7. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    129
    Geschlecht:
    männlich
    Was funktioniert nicht??!! Fehlermeldung?? Was erwartest du aber was passiert??
     
  8. BlackHole
    Offline

    BlackHole

    Registriert seit:
    1. Juli 2012
    Beiträge:
    372
    Geschlecht:
    männlich
    Minecraft:
    BlackHole
    Ich sehe spontan zwei Fehler. "Richtig" wären die Zeilen so:
    Code (Text):
    1. text.append(args[i]).append(" ");
    Code (Text):
    1. target.sendMessage("§4[ADMINCHAT] " + sender.getName() + " " + text);
     
  9. TommyboyTV
    Offline

    TommyboyTV

    Registriert seit:
    19. September 2017
    Beiträge:
    24
    Geschlecht:
    männlich
    Ich will machen dass es so zu sagen einen extra "chat" für Admins gibt, in den nur Admins was schreiben können und nur Admins es lesen können
     
  10. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    129
    Geschlecht:
    männlich
    Das habe ich bereits verstanden, aber was funktioniert nicht? Bekommen die Spieler keine Nachricht? ist die Nachricht falsch aufgebaut? Bekommen falsche Spieler die Nachricht?
    Eher Nebensache, was die Funktionalität angeht.
     
  11. TommyboyTV
    Offline

    TommyboyTV

    Registriert seit:
    19. September 2017
    Beiträge:
    24
    Geschlecht:
    männlich
    Kein Spieler erhält die Nachricht...
     
  12. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    129
    Geschlecht:
    männlich
    Dann hat womöglich kein Spieler die Permission..?

    Der Code passt auf jeden Fall. Vielleicht ist der Command nicht registriert?
     
  13. BlackHole
    Offline

    BlackHole

    Registriert seit:
    1. Juli 2012
    Beiträge:
    372
    Geschlecht:
    männlich
    Minecraft:
    BlackHole
    Ich glaube dass es ganz entscheidend ist, ob ein Spieler den richtigen Text ausgegeben bekommt oder .toString() eines Arrays.
     
  14. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    129
    Geschlecht:
    männlich
    Entschuldige, da hast du recht. Habe mich verlesen und nicht gesehen, dass du args zu text geändert hast. Trotz allem hat es nix damit zu tun, ob der Spieler die Nachricht erhält oder nicht ^^
     
    • Gefällt mir Gefällt mir x 1
  15. Max98LP
    Offline

    Max98LP

    Registriert seit:
    13. Januar 2013
    Beiträge:
    23
    Geschlecht:
    männlich
    Minecraft:
    Max98LP
    Moin, ich denke mal das es daran liegt, das du unter deiner for Schleife (Da, wenn es in der for Schleife steht, die for Schleife nach dem ersten Durchlauf "abricht".) , ein "return true;" vergessen hast.
     
  16. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    129
    Geschlecht:
    männlich
    Das bewirkt nur, dass der Spieler eine Meldung bekommt "/Adminchat". Der Code der dort ist sollte trotzdem ausgeführt werden.

    An den TE, poste mal deine plugin.yml ...
     
  17. TommyboyTV
    Offline

    TommyboyTV

    Registriert seit:
    19. September 2017
    Beiträge:
    24
    Geschlecht:
    männlich
    Hier: (Hab das von der Frage dick gemacht)
    name: BC
    authors: [Tommyboy004]
    version: 1.1
    main: at.Tom.main.main
    commands:
    vote:
    antrag:
    antragannehmen:
    money:
    pay:
    Adminchat:
    aliases: [AC]
    Rundruf:
    aliases: [say]
    Call:
    permissions:
    Admin:
     
    Zuletzt bearbeitet: 18. Oktober 2017
  18. Baba43
    Offline

    Baba43 Ehem. Teammitglied

    Registriert seit:
    5. November 2012
    Beiträge:
    682
    Kommen die Nachrichten denn an, wenn du die Prüfung der Berechtigung raus nimmst (wahlweise an jeweils einer Stelle und an beiden Stellen)?
     
  19. TommyboyTV
    Offline

    TommyboyTV

    Registriert seit:
    19. September 2017
    Beiträge:
    24
    Geschlecht:
    männlich
    Nein, leider nicht...
     
  20. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    129
    Geschlecht:
    männlich
    das Problem ist folgendes: Deine Plugin.yml ist falsch aufgebaut..
    Du kannst nicht jeden Command hintereinander schreiben, du musst mindestrens eine Beschreibung dahinter haben oder eine usage..

    In dem Link findest du den korrekten part der commands (leerzeichen sind wichtig)

    https://pastebin.com/varGvzZp

    aliases kannst du natürlich auch mit reinschreiben, habe ich jetzt nicht getan.
     
  21. BlackHole
    Offline

    BlackHole

    Registriert seit:
    1. Juli 2012
    Beiträge:
    372
    Geschlecht:
    männlich
    Minecraft:
    BlackHole
    Die Eigenschaften von Befehlen dürften in der plugin.yml durchaus leer sein. Die Zeilen mit "usage" sind also unötig.

    @TommyboyTV Bitte verwende für deinen Quellcode und YAML-Dateien immer Codeblöcke. Dazu schreibst du ohne Leerzeichen davor [ code ] und dahinter [ /code ]. Wie dir vielleicht im ersten Beitrag auffällt wurde ein [ i ] als Beginn von kursiven Text interpretiert. Bei YAML kommt es auf jedes Leerzeichen an.

    Ich vermute mal, dass du Spielern die Gruppe "Admin" zugewiesen hast, diese aber nicht über eine gesetzte Permission "Admin" verfügen. Belese dich doch mal bei dem von dir verwendeten Permissionsplugin, wie du einer Gruppe eine Permission zuweist. Ich würde dir aber auch empfhelen, einen besseren Namen für diese Permission zu verwenden. Also z.B. "tom.adminchat".