• 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.

=McAnarchy11.DE=

Kuhfänger
Gesperrt
Registriert
6 Januar 2013
Beiträge
54
Diamanten
0
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:
  @EventHandler
  public void PlayerChatEvent2(AsyncPlayerChatEvent ev)
  {
    Player pl = ev.getPlayer();
    String message = ev.getMessage();

    if (ev.getMessage().toLowerCase().startsWith("!"))
    {
      Bukkit.broadcastMessage("§e§lRundruf: §6" + message.replace("&", "§"));
      ev.setCancelled(true);
      }
      if (!ev.getPlayer().hasPermission("rundruf.machen"))
      {
        ev.setCancelled(true);
        pl.sendMessage(plugin.rechte);
      }
    }
  }

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 :/
 

=McAnarchy11.DE=

Kuhfänger
Gesperrt
Registriert
6 Januar 2013
Beiträge
54
Diamanten
0
Ich habe es so gemacht,

Code:
  @EventHandler
  public void PlayerChatEvent2(AsyncPlayerChatEvent ev)
  {
    Player pl = ev.getPlayer();
    String message = ev.getMessage();

    if (ev.getMessage().toLowerCase().startsWith("!"))
    {
      Bukkit.broadcastMessage("§e§lRundruf: §6" + message.replace("&", "§").replace("!", ""));
      ev.setCancelled(true);
      }
      if (!ev.getPlayer().hasPermission("rundruf.machen"))
      {
        ev.setCancelled(true);
        pl.sendMessage(plugin.rechte);
      }
    }
  }

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 :/
 

MrFlieder

Braumeister
Registriert
30 Dezember 2011
Beiträge
332
Diamanten
0
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:
message.replaceFirst("!", "");
 

MrFlieder

Braumeister
Registriert
30 Dezember 2011
Beiträge
332
Diamanten
0
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:
  @EventHandler
   public void PlayerChatEvent2(AsyncPlayerChatEvent ev)
   {    
Player pl = ev.getPlayer();
     String message = ev.getMessage();
      if (message.startsWith("!") && pl.hasPermission("rundruf.use"))  
      {       Bukkit.broadcastMessage("§e§lRundruf: §6" + message.replace("&", "§")); 
      ev.setCancelled(true); 
     } 
  }
 
Zuletzt bearbeitet:
Oben