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;
}