p.sendMessage

Dieses Thema im Forum "Server Plugins" wurde erstellt von Anonymo, 21. August 2015.

  1. Anonymo
    Offline

    Anonymo

    Registriert seit:
    8. Februar 2015
    Beiträge:
    66
    Hallihallo,
    da ich mich nun am Plugins programmieren versuche, jedoch nicht gerade sehr gut darin bin habe ich eine Frage:
    Wir kann man p.sendMessage("") so umändern das die Message nicht zum Befehlsausführer sondern zu einem eingestellten spieler geht.
    Außerdem interessiert mich auch sehr wie man z.b bei /gm1 es so ändern kann das wenn man /gm1 [Player] der angegebene Spieler in den Creativ Modus gebracht wird. [Z.b auch bei /clear [spieler]
    u.s.w

    ich freue mich über jede Antwort.


    Lg Anonymo
     
    #1
  2. MysticRunes
    Offline

    MysticRunes

    Registriert seit:
    19. November 2013
    Beiträge:
    40
    Code (Text):
    1.         // /msg <player> <message>
    2.         if(cmd.getName().equalsIgnoreCase("msg")){
    3.             if (args.length == 0){ //falls nur /msg eingegeben wurde
    4.                 p.sendMessage("Please specify a player!");
    5.                 return true;
    6.             }
    7.             if (args.length == 1){ //falls nur /msg <name> eingegeben wurde
    8.                 p.sendMessage("Please specify a message!");
    9.                 return true;
    10.             }
    11.             Player target = Bukkit.getServer().getPlayer(args[0]);
    12.             if (target == null){ //falls Spieler unbekannt ist
    13.                 p.sendMessage(ChatColor.RED + args[0] + ChatColor.GRAY + " is not online.");
    14.                 return true;
    15.             }
    16.             if (Bukkit.getPlayerExact(args[0]) != null){
    17.                 String message = " ";
    18.                 for (int i = 1; i < args.length; i++){ //Jedes durch ein Leerzeichen getrenntes Wort wird an String message angehangen
    19.                     message += args[i] + " ";
    20.                 }
    21.                 p.sendMessage("To " + ChatColor.GREEN + args[0] + ChatColor.GRAY + message);
    22.                 target.sendMessage("From " + ChatColor.GREEN + p.getName() + ChatColor.GRAY + message);
    23.                 return true;
    24.             }
    25.             p.sendMessage(ChatColor.RED + args[0] + ChatColor.GRAY + " is not online.");
    26.             return true;
    27.         }
    Hier schon mal die Sache mit der Nachricht.
    (Bin auch noch Anfänger, aber müsste stimmen)
     
    #2
  3. Lapura
    Offline

    Lapura

    Registriert seit:
    28. Dezember 2014
    Beiträge:
    59

    Hätte ich auch so gemacht, außer das mit dem ChatColor da benutze ich immer §
     
    #3
  4. Anonymo
    Offline

    Anonymo

    Registriert seit:
    8. Februar 2015
    Beiträge:
    66
    Und wie kann man das machen das man ingame nen Spieler auswählen kann? Also nen arg?
     
    #4
  5. MysticRunes
    Offline

    MysticRunes

    Registriert seit:
    19. November 2013
    Beiträge:
    40
    Ich meine mal gehört zu haben ChatColor sei sicherer, weis da jemand mehr drüber?

    @Anonymo Was genau meinst du? mit /msg <player> <message>
    Code (Text):
    1. Player target = Bukkit.getServer().getPlayer(args[0]);
    In dieser Zeile wird ein Objekt vom Typ Player instanziiert, mit dem Namen args[0] also dem ersten Argument des commands jetzt kannst du immer auf target zugreifen und zB. target.sendMessage("Hallo"); schreiben.
     
    #5
  6. Inkemann
    Offline

    Inkemann

    Registriert seit:
    3. Mai 2015
    Beiträge:
    341
    Ort:
    Aachen
    Minecraft:
    Inkemann
    ChatColor ist der Weg den man nehmen sollte, § ist unsauberer Hardcode.
     
    #6
    Payno4 gefällt das.
  7. Payno4
    Offline

    Payno4

    Registriert seit:
    12. Februar 2015
    Beiträge:
    117
    Ich find ChatColor viel besser , da muss man sich nicht immer merken welche Farbe bei welcher Zahl rauskommt xD
     
    #7
  8. Anonymo
    Offline

    Anonymo

    Registriert seit:
    8. Februar 2015
    Beiträge:
    66
    Ich habe gehört das das gleich ist so wie nen Aliase.
     
    #8
  9. Inkemann
    Offline

    Inkemann

    Registriert seit:
    3. Mai 2015
    Beiträge:
    341
    Ort:
    Aachen
    Minecraft:
    Inkemann
    Aktuell ist es das gleiche, aber man nimmt grundsätzlich nie Hardcode für solche Sachen. Wenn sich das nämlich mal ändert, dann muss man in gesamten Quellcode dieses Zeichen austauschen. Benutzt man ChatColor, muss man gar nichts machen.
     
    #9
    Anonymo gefällt das.