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!

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. Werbung
    Online

    Werbung

  3. Crafter6432
    Offline

    Crafter6432

    Registriert seit:
    22. Dezember 2011
    Beiträge:
    682
    Is doch klar du entfernst das ! ja auch nicht am einfachsten geht das mit replace() oder substring().
     
    #2
  4. =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
  5. 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
  6. Smuil
    Online

    Smuil

    und entferne das sinnlose .toLowerCase() ....zumindest kenne ich kein UpperCase von !
     
    #5
  7. 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
  8. =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