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

Eigenes Zenusr Plugin zensiert Wörter nicht

Kodahos

Minecrafter
Registriert
20 November 2012
Beiträge
22
Diamanten
0
Minecraft
Kodahos
Hey ich habe mir nach einer Video anleitung im Internet ein Zensur Plugin erstellt. Doch es Zensiert die Wörter in der Blacklist einfach nicht hier der Code:

Code:
package me.Kodahos.KakaoZensur;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class KakaoZensur extends JavaPlugin {
	
	public ArrayList<String> blacklist = new ArrayList<String>(); 

	@Override
	public void onDisable() {
		System.out.println("[KakaoZensur] KakaoZensur 1.0 disabled!");
		
	}

	@Override
	public void onEnable() {
		
		registerEvent(); 
		
		//blacklist laden
		File file = new File(this.getDataFolder(), "blacklist.txt");
		try {
			Scanner s = new Scanner(file);
			
			while(s.hasNextLine())
				blacklist.add(s.nextLine());
			
			s.close();
			System.out.println("Loaded Blacklist " + blacklist.size() + " words.");
		} catch (FileNotFoundException e) {
			System.err.println("Fehler: " + e.getMessage());
		}
		
		

		
		System.out.println("[KakaoZensur] Loading KakaoZensur by Kodahos!");
		System.out.println("[KakaoZensur] KakaoZensur 1.0 enabled!");
		
	}  //Event Laden
	private void registerEvent() {
	}
		

		
	}


Hier der Code vom Listener:

Code:
package me.Kodahos.KakaoZensur;

import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;

public class KakaoZensurPlayerJoinListener implements Listener {
	




	public KakaoZensurPlayerJoinListener(KakaoZensur plugin){
		this.plugin = plugin;
		plugin.getServer().getPluginManager().registerEvents(this, plugin);
	
	}
	
	@EventHandler
	public void onPlayerChat(AsyncPlayerChatEvent event){
		String msg = event.getMessage();
		
		for(int i = 0; i < plugin.blacklist.size(); i++) 

		msg = msg.replaceAll(plugin.blacklist.get(i), "KakaoCraft");
		   
		   event.setMessage(msg);
	}
	
	
	private KakaoZensur plugin;

}





Ich hoffe ihr könnt mir helfen
 

Nexus15

Kuhfänger
Registriert
30 September 2012
Beiträge
89
Diamanten
0
Du solltest das Event auch unter registerEvent() {} registrieren. Die Methode alleine bringt dir nichts.

KakaoZensurPlayerJoinListener kakao = new KakaoZensurPlayerJoinListener();



registerEvents() {
getServer().getPluginManager.registerEvents(this, kakao);

}
Dafür streichst du die Zeile

plugin.getServer().getPluginManager.registerEvents(this, this);

in deinem Listener.
 
Zuletzt bearbeitet:

Kodahos

Minecrafter
Registriert
20 November 2012
Beiträge
22
Diamanten
0
Minecraft
Kodahos
Es wäre auch sinnvoll selber Java zu lernen und nicht einfach von DeBukkit zu kopieren. Sieht mir alles ziemlich ähnlich aus.

Hast du denn auch Groß- und Kleinschreibung beachtet?

Ja habe ich beachtet und wie oben gesagt habe ich das aus einem Videotutorial und das war von DEBukkIt
 
Zuletzt bearbeitet:
X

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

Guest
Nunja dieser besagte Youtuber hat bringt kein Programmieren bei, sein Code ist größtenteils total minderwertig bzw. sorgt für schlechten Programmierer-Stil. Dies aber nur am Rand und sei mal meine Meinung.

Trotzdem beantworte mal diese Frage:

Groß- Kleinschreibung beachtet?
Kommt denn noch was im Log?
Plugin aktiv?
 

Kodahos

Minecrafter
Registriert
20 November 2012
Beiträge
22
Diamanten
0
Minecraft
Kodahos
Nunja dieser besagte Youtuber hat bringt kein Programmieren bei, sein Code ist größtenteils total minderwertig bzw. sorgt für schlechten Programmierer-Stil. Dies aber nur am Rand und sei mal meine Meinung.

Trotzdem beantworte mal diese Frage:

Groß- Kleinschreibung beachtet?
Kommt denn noch was im Log?
Plugin aktiv?

Also das plugin wir geladen und wird bei /pl auch Grün angezeigt. Ich habe z.B. das Wort Test Zensiert und wenn ich test in den Chat schreibe steht in der Konsole: 13:00:59 [INFO] <Kodahos> test
Und ich habe Groß und Klein schreibung beachtet.



Bei den Antworten oben habe noch nicht das reingeschrieben was Nexus15 oben geschrieben hat.
 
Zuletzt bearbeitet:
X

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

Guest
Genau das ist aber vom Plugin gewollt. Es beachtet die Groß und Kleinschreibung.

Alternativ kannst du (?i) vor plugin.blacklist.get(i) setzen, dann sollte es eigentlich CaseInsensitive sein.
 

MrFlieder

Braumeister
Registriert
30 Dezember 2011
Beiträge
332
Diamanten
0
Minecraft
MrFlieder
Du rufst in der onEnable-Methode die registerEvents-Methode auf, welche aber leer ist.
Den Konstruktor in deiner Klasse für den JoinListener kannst du weglassen, in die registerEvents-Methode dann folgenden Code einfügen:
Code:
Bukkit.getServer().getPluginManager().registerEvents(new KakaoZensurPlayerJoinListener(), this);
 

Kodahos

Minecrafter
Registriert
20 November 2012
Beiträge
22
Diamanten
0
Minecraft
Kodahos
Immer wenn ich test in den Chat schreibe kommt im Log diese Fehler Meldung:


13:33:33 [SEVERE] Could not pass event AsyncPlayerChatEvent to KakaoZensur v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459)
at net.minecraft.server.v1_4_R1.PlayerConnection.chat(PlayerConnection.java:902)
at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:852)
at net.minecraft.server.v1_4_R1.Packet3Chat.handle(Packet3Chat.java:44)
at net.minecraft.server.v1_4_R1.NetworkManager.i(NetworkManager.java:208)
at net.minecraft.server.v1_4_R1.NetworkManager.c(NetworkManager.java:344)
at net.minecraft.server.v1_4_R1.NetworkReaderThread.run(SourceFile:93)
Caused by: java.lang.NullPointerException
at me.Kodahos.KakaoZensur.KakaoZensurPlayerJoinListener.onPlayerChat(KakaoZensurPlayerJoinListener.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
... 9 more
13:33:33 [INFO] <Kodahos> test
 

MrFlieder

Braumeister
Registriert
30 Dezember 2011
Beiträge
332
Diamanten
0
Minecraft
MrFlieder
Wie wäre es, Java zu lernen und anhand des eigenen Wissens ein WordBlacklist-Plugin zu schreiben? ^^
Improvisierter Code von mir für den Listener:
Code:
BufferedReader br = new BufferedReader(new FileReader(new File("plugins/Ordner/blacklist.txt")));
String line = "";
while((line = br.readLine() != null)
{
    if(ev.getMessage().contains(line))
    {
        ev.getMessage().replace(line, "ZENSIERT");
    }
}
br.close();

onEnable-Methode:
Code:
File file = new File("plugins/Ordner/blacklist.txt");
if(!file.exists())
{
    file.createNewFile();
}

Bukkit.getServer().getPluginManager().registerEvents(new EventListener(), this);
 

Calenria

Braumeister
Registriert
28 Juli 2012
Beiträge
386
Alter
45
Diamanten
300
Minecraft
Calenria
Code:
public class KakaoZensur extends JavaPlugin {
    public ArrayList<String> blacklist = new ArrayList<String>();


    @Override
    public void onDisable() {
        System.out.println("[KakaoZensur] KakaoZensur 1.0 disabled!");


    }


    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(new ZensurListener(this), this);


        // blacklist laden
        File file = new File(this.getDataFolder(), "blacklist.txt");


        if (!file.exists()) {
            try {
                getDataFolder().mkdir();
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


        try {
            Scanner s;
            s = new Scanner(file);
            while (s.hasNextLine())
                blacklist.add(s.nextLine());


            System.out.println("Loaded Blacklist " + blacklist.size() + " words.");
            s.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }


        System.out.println("[KakaoZensur] Loading KakaoZensur by Kodahos!");
        System.out.println("[KakaoZensur] KakaoZensur 1.0 enabled!");


    }


    private class ZensurListener implements Listener {


        private KakaoZensur plugin;


        public ZensurListener(KakaoZensur plugin) {
            this.plugin = plugin;
        }


        @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
        public void onPlayerChat(AsyncPlayerChatEvent event) {
            String msg = event.getMessage();


            for (String word : plugin.blacklist) {
                msg = msg.replaceAll("(?i)" + word, "KakaoCraft");
            }


            event.setMessage(msg);
        }
    }
 
Oben