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

Mehrere Wörter bei AdBlock Plugin hinzufügen.

RedShure

Minecrafter
Registriert
4 Januar 2016
Beiträge
3
Alter
35
Diamanten
250
Huhu,

bin komplett neu in der Bukkit programmierung. Wollte euch mal
fragen wie man mehrere Wörter zur Blacklist eines AdBlock
Plugins hinzufügt.

Momentaner Code:
Code:
if(e.getMessage().contains("http")) {
          if(!e.getPlayer().hasPermission("adblock.bypass")) {
            e.getPlayer().sendMessage("§8[§4AdBlock§8] §cDon't advertise or you get banned!");
            e.setCancelled(true);

Ich möchte nun aber nicht nur "http" blocken, sondern auch andere. Wie füge ich
dort mehr hinzu?

Vielen dank :)
 

adagi

Kuhfänger
Registriert
3 Oktober 2015
Beiträge
65
Diamanten
301
Hallo
Javascript:
ArrayList<String> adblock = new ArrayList<String>();
// Werte laden. z.B. aus der Config!

@EventHandler
public void onChat(PlayerChatEvent event) {
   Player player = event.getPlayer();
   String msg = event.getMessage();
 
   for (int idx = 0; idx < adblock.size(); idx++) {
      if (msg.contains(adblock.get(idx){
         player.sendMessage(ChatColor.RED + "Du darfst das nicht schreiben.");
         return;
      }
   }
}
Hier ein Bespielcode. Wenn du ihn nicht verstehst, kannst du mir eine PN schreiben.
LG adagi
 
Zuletzt bearbeitet:
X

|| xX [DEV][LP] Ms. DivaCraft Xx ||

Guest
Und schon kommen schon wieder die "Profis".

Naja bleiben wir beim Thema:
1. Schön, dass du es erst einmal selbst geschafft hast. [Datenstrukturen und darüber zu Iterieren gehört schließlich zum Grundbestandteil einer Sprache. RegEx solltest du dir dennoch angucken, dass ist weitaus flexibler, als eine contains Methode.
2. Es macht keinen Sinn zu überprüfen ob ein Wort bereits vorhanden ist oder nicht, wenn der Spieler keine Berechtigungen hat. (Es sei denn natürlich, du möchtest auch im Falle der Berechtigung agieren, dann ist die Negation aber unnötig kompliziert).

3.
Code:
@EventHandler
// PlayerChatEvent ist deprecated
public void onChat(final AsyncPlayerChatEvent event) {
   final Player player = event.getPlayer(); // Obsolete
   final String msg = event.getMessage();
 
   for (int idx = 0; idx < adblock.size(); idx++) { // Erweiterte for / lambda ausdruck
      if (msg.contains(adblock.get(idx){
         player.sendMessage(); // Fehler Parameter fehlt.
         return; // Unnötiger Sprung
      }
   }
}

Bevor man einen "Beispielcode" veröffentlicht sollte man selbst erst mit der Materie vertraut sein.

4. Derartige Plugins sind einfach nur dämlich. Wenn man etwas Ingame veröffentlichen will, kommt es auch rein. Ein derartiges System ist einfach nur Kundenunfreundlich, aber das sei mal dahin gestellt.
 

adagi

Kuhfänger
Registriert
3 Oktober 2015
Beiträge
65
Diamanten
301
2. Es macht keinen Sinn zu überprüfen ob ein Wort bereits vorhanden ist oder nicht, wenn der Spieler keine Berechtigungen hat. (Es sei denn natürlich, du möchtest auch im Falle der Berechtigung agieren, dann ist die Negation aber unnötig kompliziert).
Denkst du, dass ich will, dass Admins etc. einfach beleidigen können? :D :D

LG adagi
 
Oben