ServerPlugin Chat Format Changer

Dieses Thema im Forum "Selbstgeschriebene Plugins | Mods | Programme" wurde erstellt von TASSIA710, 3. Dezember 2015.

  1. TASSIA710
    Offline

    TASSIA710

    Registriert seit:
    24. Januar 2014
    Beiträge:
    12
    Minecraft:
    TASSIA710
    Chat Format Changer
    - Das Plugin das den Chat ändert -
    Zu aller erst, das ist mein erstes Plugin und es ist noch in der BETA Phase. Es hat also noch seine
    Macken und Bugs. Sollte ihr welche finden, bitte postet diese hier oder auf der Plugin Seit von
    Bukkit.org (http://dev.bukkit.org/bukkit-plugins/chat-format-changer/) oder erstellt dort ein Ticket.

    [!] ACHTUNG [!]
    Dieses Plugin sollte nicht benutzt werden, wenn euer Server den /op Befehl benutzt.
    Dadurch werden Fehler beim Senden der Narchicht auftreten.
    Diese Fehler werden in den kommenden Versionen behoben.

    PERMISSIONS
    cfc.name.darkblue
    cfc.name.darkgreen
    cfc.name.darkcyan
    cfc.name.darkred
    cfc.name.darkpurple
    cfc.name.orange
    cfc.name.grey
    cfc.name.darkgrey
    cfc.name.blue
    cfc.name.green
    cfc.name.cyan
    cfc.name.red
    cfc.name.purple
    cfc.name.yellow
    cfc.name.white
    cfc.name.black

    Teile einer Gruppe jeweils nur EINE Permission zu, sonst treten Fehler auf!
    Bei Fragen PN, Kommentar oder Ticket erstellen.

    Bukkit Seite:
    http://dev.bukkit.org/bukkit-plugins/chat-format-changer/

    MFG
    Tassilo
     
    #1
  2. Freddy31623
    Offline

    Freddy31623

    Registriert seit:
    11. September 2015
    Beiträge:
    43
    Ort:
    Deutschland
    Minecraft:
    Freddy31623
    Wofür genau ist dass jetzt gut....
     
    #2
    JTK222 gefällt das.
  3. jensIO
    Offline

    jensIO

    Registriert seit:
    28. Juli 2015
    Beiträge:
    602
    Ort:
    Internet, im Neuland
    Minecraft:
    jens1o
    Hey,

    ich hab mir mal dein Plugin angeschaut und möchte dir ein paar Tipps geben...
    Dein Code ...
    Code (Text):
    1. if(x.hasPermission("cfc.name.grey")){
    2.    // x ist der Player
    3.    e.setCancelled(true);Bukkit.broadcastMessage((String)("\u00a77 "+ x.getName()+"\u00a7b -> \u00a7e"+ e.getMessage()+" "));}
    4. }
    ... ist relativ unsauber. Aber wenn das dein erstes Plugin ist möchte ich dir helfen:

    1. benutze nicht für jede Farbe eine Abfrage, sondern mache ein switch/case statement if/else statement. Somit hast du keine Probleme mehr das alles mehrmals gesendet wird wenn man alle Rechte hat.
    2. Benutze die richtigen Events. In diesem Falle wäre das AsyncPlayerChatEvent. Dieses hat nämlich auch die Funktion setFormat(). (Also das was du brauchst.)

    Hier mal ein Beispielcode(ohne Switch/Case) damit du verstehst was ich mit dem Event meine:
    Code (Text):
    1. @EventHandler
    2. public void onChat(AsyncPlayerChatEvent e) {
    3.         Player p = e.getPlayer();
    4.         if (p.isOp()) {
    5.             e.setFormat(ChatColor.GRAY + "[" + ChatColor.RED + "Owner" + ChatColor.GRAY + "] " + "%s"
    6.                     + ChatColor.DARK_GRAY + " >> " + ChatColor.RESET + "%s");
    7.         } else {
    8.             e.setFormat(ChatColor.GRAY + "[" + ChatColor.BLUE + "Member" + ChatColor.GRAY + "] " + "%s"
    9.                     + ChatColor.DARK_GRAY + " >> " + ChatColor.RESET + "%s");
    10.         }
    11.         // Falls du Sound haben willst:
    12.         // Nicht wundern, ich mache mit dem p nichts, benutze das Event hier nur als Trigger
    13.         for(Player player : Bukkit.getOnlinePlayers()){
    14.             player.playSound(player.getLocation(), Sound.FIREWORK_BLAST, 10, 1);
    15.         }
    16. }
    3. wie du villeicht gesehen hast gibt es die Klasse ChatColor. Damit kannst du \u00a77 vermeiden und dein Code ist lesbarer.

    Danke fürs lesen :)

    jens1o

    Schön das du mal deine ersten Ergebnisse offen stellst, so kann man dir helfen.

    Edit:
    Switch -> if/else
     
    #3
    ManiaMelons gefällt das.
  4. JTK222
    Online

    JTK222

    Registriert seit:
    5. September 2013
    Beiträge:
    665
    Ort:
    Planet Erde
    Minecraft:
    JTK222
    Wenn du schon so gut programieren kannst dass du leuten helfen willst sollte dir clar sein das ein switch statement nur mit Enums,integern, und chars funktioniert. Von daher ist dies relativ umständlich und würde den Code unsauberer machen.
    Mit hilfe von Else if kann man jedoch das gleiche Ergebnis erzielen.
     
    #4
  5. jensIO
    Offline

    jensIO

    Registriert seit:
    28. Juli 2015
    Beiträge:
    602
    Ort:
    Internet, im Neuland
    Minecraft:
    jens1o
    Okey... im Nachhinhein hätte mir einleuchten können das es für einen Einsteiger relativ umständlich ist. Else geht natürlich auch. Ich persönlich mag aber die Switch Statements und Enums und nutze sie wo ich nur kann.
     
    #5
  6. TASSIA710
    Offline

    TASSIA710

    Registriert seit:
    24. Januar 2014
    Beiträge:
    12
    Minecraft:
    TASSIA710
    Ich werde äh bald ein Update vom Plugin rausbringen, und da werde die Perms dann gefixt. :p

    Stadt
    <TASSIA710> Hallo
    wird mit der Permission cfc.name.red
    TASSIA710 -> Hallo
     
    #6
  7. Freddy31623
    Offline

    Freddy31623

    Registriert seit:
    11. September 2015
    Beiträge:
    43
    Ort:
    Deutschland
    Minecraft:
    Freddy31623
    Ah, vielen Dank....
    Gefällt mir auch sehr gut :)
     
    #7