Java 类net.minecraft.util.io.netty.channel.Channel 实例源码
项目:MoreMobs
文件:TinyProtocol.java
private void registerBukkitEvents() {
listener = new Listener() {
@EventHandler(priority = EventPriority.LOWEST)
public final void onPlayerLogin(PlayerLoginEvent e) {
if (closed)
return;
Channel channel = getChannel(e.getPlayer());
if (!uninjectedChannels.contains(channel)) {
injectPlayer(e.getPlayer());
}
}
@EventHandler
public final void onPluginDisable(PluginDisableEvent e) {
if (e.getPlugin().equals(plugin)) {
close();
}
}
};
plugin.getServer().getPluginManager().registerEvents(listener, plugin);
}
项目:MoreMobs
文件:TinyProtocol.java
private void unregisterChannelHandler() {
if (serverChannelHandler == null)
return;
for (Channel serverChannel : serverChannels) {
final ChannelPipeline pipeline = serverChannel.pipeline();
// Remove channel handler
serverChannel.eventLoop().execute(new Runnable() {
@Override
public void run() {
try {
pipeline.remove(serverChannelHandler);
} catch (NoSuchElementException e) {
// That's fine
}
}
});
}
}
项目:MoreMobs
文件:TinyProtocol.java
private PacketInterceptor injectChannelInternal(Channel channel) {
try {
PacketInterceptor interceptor = (PacketInterceptor) channel
.pipeline().get(handlerName);
if (interceptor == null) {
interceptor = new PacketInterceptor();
channel.pipeline().addBefore("packet_handler", handlerName,
interceptor);
uninjectedChannels.remove(channel);
}
return interceptor;
} catch (IllegalArgumentException e) {
return (PacketInterceptor) channel.pipeline().get(handlerName);
}
}
项目:MoreMobs
文件:TinyProtocol.java
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg)
throws Exception {
final Channel channel = ctx.channel();
handleLoginStart(channel, msg);
try {
for (PacketListener listener : packetListeners) {
msg = listener.onPacketInAsync(player, channel, msg);
}
} catch (Exception e) {
plugin.getLogger().log(Level.SEVERE,
"Error in onPacketInAsync().", e);
}
if (msg != null) {
super.channelRead(ctx, msg);
}
}
项目:SignGUI
文件:TinyProtocol.java
private void registerBukkitEvents() {
listener = new Listener() {
@EventHandler(priority = EventPriority.LOWEST)
public final void onPlayerLogin(PlayerLoginEvent e) {
if (closed)
return;
Channel channel = getChannel(e.getPlayer());
if (!uninjectedChannels.contains(channel)) {
injectPlayer(e.getPlayer());
}
}
@EventHandler
public final void onPluginDisable(PluginDisableEvent e) {
if (e.getPlugin().equals(plugin)) {
close();
}
}
};
plugin.getServer().getPluginManager().registerEvents(listener, plugin);
}
项目:SignGUI
文件:TinyProtocol.java
@SuppressWarnings("unchecked")
private void registerChannelHandler() {
Object mcServer = getMinecraftServer.get(Bukkit.getServer());
Object serverConnection = getServerConnection.get(mcServer);
boolean looking = true;
networkManagers = (List<Object>) getNetworkMarkers.invoke(null, serverConnection);
createServerChannelHandler();
for (int i = 0; looking; i++) {
List<Object> list = Reflection.getField(serverConnection.getClass(), List.class, i).get(serverConnection);
for (Object item : list) {
if (!ChannelFuture.class.isInstance(item))
break;
Channel serverChannel = ((ChannelFuture) item).channel();
serverChannels.add(serverChannel);
serverChannel.pipeline().addFirst(serverChannelHandler);
looking = false;
}
}
}
项目:SignGUI
文件:TinyProtocol.java
private void unregisterChannelHandler() {
if (serverChannelHandler == null)
return;
for (Channel serverChannel : serverChannels) {
final ChannelPipeline pipeline = serverChannel.pipeline();
serverChannel.eventLoop().execute(new Runnable() {
@Override
public void run() {
try {
pipeline.remove(serverChannelHandler);
} catch (NoSuchElementException e) {
}
}
});
}
}
项目:SignGUI
文件:TinyProtocol.java
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
final Channel channel = ctx.channel();
handleLoginStart(channel, msg);
try {
for(PacketListener pl : protocolsListeners)
msg = pl.onPacketInAsync(player, channel, msg);
} catch (Exception e) {
plugin.getLogger().log(Level.SEVERE, "Error in onPacketInAsync().", e);
}
if (msg != null) {
super.channelRead(ctx, msg);
}
}
项目:SignGUI
文件:PacketPlayInUpdateSign.java
@Override
public Object onPacketInAsync(Player sender, Channel channel, Object packet) {
if (!this.packet.isInstance(packet)) return packet;
int x = this.x.get(packet);
int y = this.y.get(packet);
int z = this.z.get(packet);
String[] l = this.l.get(packet);
Block b = sender.getWorld().getBlockAt(x, y, z);
Sign s = (Sign) b.getState();
for(int i = 0; i < l.length; i ++){
if(sender.hasPermission("essentials.signs.color") || sender.hasPermission("signgui.color"))
l[i] = ChatColor.translateAlternateColorCodes('&', l[i]);
else
l[i] = ChatColor.stripColor(l[i]);
s.setLine(i, l[i]);
}
s.update();
return packet;
}
项目:Tweakkit-Server
文件:ServerConnectionChannel.java
protected void initChannel(Channel channel) {
try {
channel.config().setOption(ChannelOption.IP_TOS, Integer.valueOf(24));
} catch (ChannelException channelexception) {
;
}
try {
channel.config().setOption(ChannelOption.TCP_NODELAY, Boolean.valueOf(false));
} catch (ChannelException channelexception1) {
;
}
channel.pipeline().addLast("timeout", new ReadTimeoutHandler(30)).addLast("legacy_query", new LegacyPingHandler(this.a)).addLast("splitter", new PacketSplitter()).addLast("decoder", new PacketDecoder(NetworkManager.h)).addLast("prepender", new PacketPrepender()).addLast("encoder", new PacketEncoder(NetworkManager.h));
NetworkManager networkmanager = new NetworkManager(false);
ServerConnection.a(this.a).add(networkmanager);
channel.pipeline().addLast("packet_handler", networkmanager);
networkmanager.a((PacketListener) (new HandshakeListener(ServerConnection.b(this.a), networkmanager)));
}
项目:MoreMobs
文件:TinyProtocol.java
@SuppressWarnings("unchecked")
private void registerChannelHandler() {
Object mcServer = getMinecraftServer.get(Bukkit.getServer());
Object serverConnection = getServerConnection.get(mcServer);
boolean looking = true;
networkManagers = (List<Object>) getNetworkMarkers.invoke(null,
serverConnection);
createServerChannelHandler();
for (int i = 0; looking; i++) {
List<Object> list = Reflection.getField(
serverConnection.getClass(), List.class, i).get(
serverConnection);
for (Object item : list) {
if (!ChannelFuture.class.isInstance(item))
break;
Channel serverChannel = ((ChannelFuture) item).channel();
serverChannels.add(serverChannel);
serverChannel.pipeline().addFirst(serverChannelHandler);
looking = false;
}
}
}
项目:MoreMobs
文件:TinyProtocol.java
public Channel getChannel(Player player) {
Channel channel = channelLookup.get(player.getName());
if (channel == null) {
Object connection = getConnection.get(getPlayerHandle
.invoke(player));
Object manager = getManager.get(connection);
channelLookup.put(player.getName(),
channel = getChannel.get(manager));
}
return channel;
}
项目:MoreMobs
文件:TinyProtocol.java
public void uninjectChannel(final Channel channel) {
if (!closed) {
uninjectedChannels.add(channel);
}
channel.eventLoop().execute(new Runnable() {
@Override
public void run() {
channel.pipeline().remove(handlerName);
}
});
}
项目:SignGUI
文件:TinyProtocol.java
private void createServerChannelHandler() {
endInitProtocol = new ChannelInitializer<Channel>() {
@Override
protected void initChannel(Channel channel) throws Exception {
try {
synchronized (networkManagers) {
if (!closed) {
injectChannelInternal(channel);
}
}
} catch (Exception e) {
plugin.getLogger().log(Level.SEVERE, "Cannot inject incomming channel " + channel, e);
}
}
};
beginInitProtocol = new ChannelInitializer<Channel>() {
@Override
protected void initChannel(Channel channel) throws Exception {
channel.pipeline().addLast(endInitProtocol);
}
};
serverChannelHandler = new ChannelInboundHandlerAdapter() {
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
Channel channel = (Channel) msg;
channel.pipeline().addFirst(beginInitProtocol);
ctx.fireChannelRead(msg);
}
};
}
项目:SignGUI
文件:TinyProtocol.java
private PacketInterceptor injectChannelInternal(Channel channel) {
try {
PacketInterceptor interceptor = (PacketInterceptor) channel.pipeline().get(handlerName);
if (interceptor == null) {
interceptor = new PacketInterceptor();
channel.pipeline().addBefore("packet_handler", handlerName, interceptor);
uninjectedChannels.remove(channel);
}
return interceptor;
} catch (IllegalArgumentException e) {
return (PacketInterceptor) channel.pipeline().get(handlerName);
}
}
项目:SignGUI
文件:TinyProtocol.java
public Channel getChannel(Player player) {
Channel channel = channelLookup.get(player.getName());
if (channel == null) {
Object connection = getConnection.get(getPlayerHandle.invoke(player));
Object manager = getManager.get(connection);
channelLookup.put(player.getName(), channel = getChannel.get(manager));
}
return channel;
}
项目:SignGUI
文件:TinyProtocol.java
public void uninjectChannel(final Channel channel) {
if (!closed) {
uninjectedChannels.add(channel);
}
channel.eventLoop().execute(new Runnable() {
@Override
public void run() {
channel.pipeline().remove(handlerName);
}
});
}
项目:NovaGuilds
文件:PacketExtensionImpl.java
/**
* Gets the channel
*
* @param player player
* @return the Channel
*/
private static Channel getChannel(Player player) {
try {
Object entity = Reflections.getHandle(player);
return clientChannelField.get(networkManagerField.get(playerConnectionField.get(entity)));
}
catch(Exception e) {
LoggerUtils.exception(e);
return null;
}
}
项目:remote-entities-nxt
文件:ReflectionUtil.java
/**
* Sets the new socket channel of the given manager.
*
* @param inManager The manager to change the channel of
* @param inChannel The new channel
*/
public static void setNetworkChannel(Object inManager, Channel inChannel)
{
try
{
Field channel = getOrRegisterNMSField("NetworkManager", "k");
channel.set(inManager, inChannel);
}
catch(Exception e)
{
}
}
项目:EndHQ-Libraries
文件:ReflectionUtil.java
/**
* Sets the new socket channel of the given manager.
*
* @param inManager The manager to change the channel of
* @param inChannel The new channel
*/
public static void setNetworkChannel(Object inManager, Channel inChannel)
{
try
{
Field channel = getOrRegisterNMSField("NetworkManager", "k");
channel.set(inManager, inChannel);
}
catch(Exception e)
{
}
}
项目:EntityAPI
文件:FixedNetworkManager.java
protected void swapFields() {
if (CHANNEL_FIELD == null) {
CHANNEL_FIELD = new Reflection().reflect(NetworkManager.class).getSafeFieldByType(Channel.class).getAccessor();
}
if (ADDRESS_FIELD == null) {
ADDRESS_FIELD = new Reflection().reflect(NetworkManager.class).getSafeFieldByType(InetSocketAddress.class).getAccessor();
}
CHANNEL_FIELD.set(this, new NullChannel(null));
ADDRESS_FIELD.set(this, null);
}
项目:EntityAPI
文件:FixedNetworkManager.java
protected void swapFields() {
if (CHANNEL_FIELD == null) {
CHANNEL_FIELD = new Reflection().reflect(NetworkManager.class).getSafeFieldByType(Channel.class).getAccessor();
}
if (ADDRESS_FIELD == null) {
ADDRESS_FIELD = new Reflection().reflect(NetworkManager.class).getSafeFieldByType(InetSocketAddress.class).getAccessor();
}
CHANNEL_FIELD.set(this, new NullChannel(null));
ADDRESS_FIELD.set(this, null);
}
项目:EntityAPI
文件:FixedNetworkManager.java
protected void swapFields() {
if (CHANNEL_FIELD == null) {
CHANNEL_FIELD = new Reflection().reflect(NetworkManager.class).getSafeFieldByType(Channel.class).getAccessor();
}
if (ADDRESS_FIELD == null) {
ADDRESS_FIELD = new Reflection().reflect(NetworkManager.class).getSafeFieldByType(SocketAddress.class).getAccessor();
}
CHANNEL_FIELD.set(this, new NullChannel(null));
ADDRESS_FIELD.set(this, new SocketAddress() {});
}
项目:EntityAPI
文件:FixedNetworkManager.java
protected void swapFields() {
if (CHANNEL_FIELD == null) {
CHANNEL_FIELD = new Reflection().reflect(NetworkManager.class).getSafeFieldByType(Channel.class).getAccessor();
}
if (ADDRESS_FIELD == null) {
ADDRESS_FIELD = new Reflection().reflect(NetworkManager.class).getSafeFieldByType(SocketAddress.class).getAccessor();
}
CHANNEL_FIELD.set(this, new NullChannel(null));
ADDRESS_FIELD.set(this, new SocketAddress() {});
}
项目:MoreMobs
文件:TinyProtocol.java
private void createServerChannelHandler() {
endInitProtocol = new ChannelInitializer<Channel>() {
@Override
protected void initChannel(Channel channel) throws Exception {
try {
synchronized (networkManagers) {
if (!closed) {
injectChannelInternal(channel);
}
}
} catch (Exception e) {
plugin.getLogger().log(Level.SEVERE,
"Cannot inject incomming channel " + channel, e);
}
}
};
beginInitProtocol = new ChannelInitializer<Channel>() {
@Override
protected void initChannel(Channel channel) throws Exception {
channel.pipeline().addLast(endInitProtocol);
}
};
serverChannelHandler = new ChannelInboundHandlerAdapter() {
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg)
throws Exception {
Channel channel = (Channel) msg;
channel.pipeline().addFirst(beginInitProtocol);
ctx.fireChannelRead(msg);
}
};
}
项目:MoreMobs
文件:TinyProtocol.java
public void sendPacket(Channel channel, Object packet) {
channel.pipeline().writeAndFlush(packet);
}
项目:MoreMobs
文件:TinyProtocol.java
public void receivePacket(Channel channel, Object packet) {
channel.pipeline().context("encoder").fireChannelRead(packet);
}
项目:MoreMobs
文件:TinyProtocol.java
public void injectChannel(Channel channel) {
injectChannelInternal(channel);
}
项目:MoreMobs
文件:TinyProtocol.java
public boolean hasInjected(Channel channel) {
return channel.pipeline().get(handlerName) != null;
}
项目:MoreMobs
文件:TinyProtocol.java
private void handleLoginStart(Channel channel, Object packet) {
if (PACKET_LOGIN_IN_START.isInstance(packet)) {
GameProfile profile = getGameProfile.get(packet);
channelLookup.put(profile.getName(), channel);
}
}
项目:MoreMobs
文件:TinyProtocol.java
public Object onPacketOutAsync(Player reciever, Channel channel,
Object packet);
项目:MoreMobs
文件:TinyProtocol.java
public Object onPacketInAsync(Player sender, Channel channel,
Object packet);
项目:CraftBukkit
文件:NetworkManager.java
static Channel a(NetworkManager networkmanager) {
return networkmanager.m;
}
项目:SignGUI
文件:TinyProtocol.java
public void sendPacket(Channel channel, Object packet) {
channel.pipeline().writeAndFlush(packet);
}
项目:SignGUI
文件:TinyProtocol.java
public void receivePacket(Channel channel, Object packet) {
channel.pipeline().context("encoder").fireChannelRead(packet);
}
项目:SignGUI
文件:TinyProtocol.java
public void injectChannel(Channel channel) {
injectChannelInternal(channel);
}
项目:SignGUI
文件:TinyProtocol.java
public boolean hasInjected(Channel channel) {
return channel.pipeline().get(handlerName) != null;
}
项目:SignGUI
文件:TinyProtocol.java
private void handleLoginStart(Channel channel, Object packet) {
if (PACKET_LOGIN_IN_START.isInstance(packet)) {
GameProfile profile = getGameProfile.get(packet);
channelLookup.put(profile.getName(), channel);
}
}
项目:SignGUI
文件:TinyProtocol.java
public Object onPacketOutAsync(Player reciever, Channel channel, Object packet){
return packet;
}
项目:SignGUI
文件:TinyProtocol.java
public Object onPacketInAsync(Player sender, Channel channel, Object packet){
return packet;
}