Plugin problem.

Dieses Thema im Forum "Programmierung" wurde erstellt von =McAnarchy11.DE=, 11. Januar 2013.

  1. =McAnarchy11.DE=
    Offline

    =McAnarchy11.DE= Gesperrt

    Registriert seit:
    6. Januar 2013
    Beiträge:
    54
    Hallo User & Admins ! ( Freunde )

    Ich Arbeite grade an ein Rundruf Plugin! nur das Problem ist das die Spieler's auch benutztemn können!

    Code Hier:

    Code (Text):
    1.   @EventHandler
    2.   public void PlayerChatEvent2(AsyncPlayerChatEvent ev)
    3.   {
    4.     Player pl = ev.getPlayer();
    5.     String message = ev.getMessage();
    6.  
    7.     if (ev.getMessage().toLowerCase().startsWith("!"))
    8.     {
    9.       Bukkit.broadcastMessage("§e§lRundruf: §6" + message.replace("&", "§"));
    10.       ev.setCancelled(true);
    11.       }
    12.       if (!ev.getPlayer().hasPermission("rundruf.machen"))
    13.       {
    14.         ev.setCancelled(true);
    15.         pl.sendMessage(plugin.rechte);
    16.       }
    17.     }
    18.   }
    Das ist nur ein schneller Code, eig. wurde ich es so machen dan gibs noch ein Bugg! und das ist wenn man dann '!' macht kommt dann im Chat "Rundruf: ! Text" aber das will ich nicht :/
     
    #1
  2. Crafter6432
    Offline

    Crafter6432

    Registriert seit:
    22. Dezember 2011
    Beiträge:
    686
    Is doch klar du entfernst das ! ja auch nicht am einfachsten geht das mit replace() oder substring().
     
    #2
  3. =McAnarchy11.DE=
    Offline

    =McAnarchy11.DE= Gesperrt

    Registriert seit:
    6. Januar 2013
    Beiträge:
    54
    Ich habe es so gemacht,

    Code (Text):
    1.   @EventHandler
    2.   public void PlayerChatEvent2(AsyncPlayerChatEvent ev)
    3.   {
    4.     Player pl = ev.getPlayer();
    5.     String message = ev.getMessage();
    6.  
    7.     if (ev.getMessage().toLowerCase().startsWith("!"))
    8.     {
    9.       Bukkit.broadcastMessage("§e§lRundruf: §6" + message.replace("&", "§").replace("!", ""));
    10.       ev.setCancelled(true);
    11.       }
    12.       if (!ev.getPlayer().hasPermission("rundruf.machen"))
    13.       {
    14.         ev.setCancelled(true);
    15.         pl.sendMessage(plugin.rechte);
    16.       }
    17.     }
    18.   }
    So, jetzt wenn man "! text" komm es jetzt so im Chat an "Rundurf: Text" nur die Spieler können dan "! text" auch machen und dan kommt die Nachicht im chat :/
    Und die könen nicht mehr Schreiben :/
     
    #3
  4. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Wieso cancelst du das Event überhaupt, wenn ein Spieler keine Permissions hat?
    Warum die Spieler auch Rundrufe machen können, ist ja klar - du fragst keine Permissions ab.

    Das mit dem Rufzeichen der gesamten Nachricht zu entfernen, halte ich für eine sehr schlechte Lösung.
    Probiere es mit
    Code (Text):
    1. message.replaceFirst("!", "");
     
    #4
  5. Smuil
    Offline

    Smuil

    und entferne das sinnlose .toLowerCase() ....zumindest kenne ich kein UpperCase von !
     
    #5
  6. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Ich stimme Igneel zu, die toLowerCase-Anweisung ist total unnötig.
    Du definierst übrigens den String message, verwendest diesen aber in der darunterliegenden If-Abfrage nicht.

    Versuche es mal mit folgendem Code:
    Code (Text):
    1.  
    2.  
    3.   @EventHandler
    4.    public void PlayerChatEvent2(AsyncPlayerChatEvent ev)
    5.    {    
    6. Player pl = ev.getPlayer();
    7.      String message = ev.getMessage();
    8.       if (message.startsWith("!") && pl.hasPermission("rundruf.use"))  
    9.       {       Bukkit.broadcastMessage("§e§lRundruf: §6" + message.replace("&", "§"));
    10.       ev.setCancelled(true);
    11.      }
    12.   }
     
    #6
  7. =McAnarchy11.DE=
    Offline

    =McAnarchy11.DE= Gesperrt

    Registriert seit:
    6. Januar 2013
    Beiträge:
    54
    Ahh danke, ich habe so was schon gedacht aber habe grade mehr Surf gespielt :D
     
    #7