package com.laytonsmith.abstraction.bukkit;
import com.laytonsmith.abstraction.MCPlayer;
import com.laytonsmith.abstraction.MCPluginMeta;
import com.laytonsmith.abstraction.bukkit.entities.BukkitMCPlayer;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.messaging.PluginMessageListener;
/**
*
*
*/
public class BukkitMCPluginMeta extends MCPluginMeta implements PluginMessageListener {
Plugin plugin;
public BukkitMCPluginMeta(Plugin plugin){
super();
this.plugin = plugin;
}
@Override
public void closeOutgoingChannel0(String channel) {
Bukkit.getMessenger().unregisterOutgoingPluginChannel(plugin, channel);
}
@Override
public void openOutgoingChannel0(String channel) {
Bukkit.getMessenger().registerOutgoingPluginChannel(plugin, channel);
}
@Override
protected void sendIncomingMessage0(MCPlayer player, String channel, byte[] message) {
Player p = ((BukkitMCPlayer)player)._Player();
Bukkit.getMessenger().dispatchIncomingMessage(p, channel, message);
}
@Override
public void closeIncomingChannel0(String channel) {
Bukkit.getMessenger().unregisterIncomingPluginChannel(plugin, channel);
}
@Override
public void openIncomingChannel0(String channel) {
Bukkit.getMessenger().registerIncomingPluginChannel(plugin, channel, this);
}
@Override
public void onPluginMessageReceived(String channel, Player player, byte[] message) {
triggerOnMessage(new BukkitMCPlayer(player), channel, message);
}
}