Brauche Hilfe bei Java Plugin [PlayerListener]

03/12/2012 21:19 FunGoo✔#1
Moin,
entweder bin ich zu dumm zum suchen, oder bekomme es echt nicht gebacken. Ich möchte mein Plugin weiterprogrammiern, da aber eine neue API draussen ist und der PlayerListener geändert wurde, verzweifele ich.
Vielleicht kann mir jemand helfen:

Admin.java
Code:
package me.FunGoo.Admin;

import java.util.logging.Logger;

import org.bukkit.event.Event;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

public class Admin extends JavaPlugin {
	
	public static Admin plugin;
	public final Logger logger = Logger.getLogger("Minecraft");
	public final ServerChatPlayerListener playerListener = new ServerChatPlayerListener(this);
	
	
	@Override
	public void onDisable() {
		PluginDescriptionFile pdfFile = this.getDescription();
		this.logger.info(pdfFile.getName() + " is now disabled.");
	}
	
	@Override
	public void onEnable() {
		PluginManager pm = getServer().getPluginManager();
		pm.registerEvent(Event.Type.PLAYER_CHAT, this.playerListener, Event.Priority.Normal, this);
		PluginDescriptionFile pdfFile = this.getDescription();
		this.logger.info( pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled.");
		
	}
	
	
}
Dabei wird
Code:
		pm.registerEvent(Event.Type.PLAYER_CHAT, this.playerListener, Event.Priority.Normal, this);
als Fehler gekennzeichnet.

In der ServerChatPlayerListener.java

Code:
package me.FunGoo.Admin;

import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerListener;

public class ServerChatPlayerListener extends PlayerListener {
	public static Admin plugin;
	
	public ServerChatPlayerListener(Admin instance) {
		plugin = instance;
	}
	
	public void onPlayerChat(PlayerChatEvent chat) {
		Player p = chat.getPlayer();
		String message = chat.getMessage();
		String message_lower = message.toLowerCase();
		ChatColor RED = ChatColor.RED;
		ChatColor WHITE = ChatColor.WHITE;
		if(message_lower.contains("fungoo")) {
			p.sendMessage(ChatColor.DARK_GRAY + "[Server] " + RED + "Sehr geehrter " + ChatColor.DARK_GREEN + p.getName() + RED + ", hast du auch vorher geschaut, ob ein " + ChatColor.GOLD + "Supporter" + RED + " oder ein " + ChatColor.BLUE + "Moderator " + RED + "online ist, denn der FunGoo, hat oft viel zu tun.");
			chat.setCancelled(false);
		}
	}
	
	
}
Hier ist natürlich der :
Code:
public class ServerChatPlayerListener extends PlayerListener {
falsch, halt ebenso wie der Import.

Wenn jemand die Lösung weiß, bitte bescheid geben, wäre echt nett, danke.
03/12/2012 22:52 manniL#2
Es gibt mittlerweile ein neues EventSystem ^^ Player und Blocklistener wurden btw schon vor ewigkeiten abgeschafft.

Check das hier:
[Only registered and activated users can see links. Click Here To Register...]
03/12/2012 23:11 FunGoo✔#3
Vielen Dank, den ServerChatPlayerListener habe ich nun behoben, aber nun weiß ich nicht, wieso hier Fehler aufgewiesen werden
Code:
		pm.registerEvent(Event.Type.PLAYER_CHAT, this.playerListener, Event.Priority.Normal, this);
03/13/2012 07:26 manniL#4
Quote:
Originally Posted by FunGoo✔ View Post
Vielen Dank, den ServerChatPlayerListener habe ich nun behoben, aber nun weiß ich nicht, wieso hier Fehler aufgewiesen werden
Code:
		pm.registerEvent(Event.Type.PLAYER_CHAT, this.playerListener, Event.Priority.Normal, this);
Weil die events so nicht mehr registered werden :D

[Only registered and activated users can see links. Click Here To Register...]
03/13/2012 13:33 bestora#5
bei der Admin class musst du das einfach in die onEnable schreiben:
Code:
new ServerChatPlayerListener(this);
und dann machst du in deiner ServerChatPlayerListener class:

Code:
public ServerChatPlayerListener(Admin plugin)
  {
    plugin.getServer().getPluginManager().registerEvents(this, plugin);
  }
dann sollte das problem auch gelöst sein