net.minecraft.util.io.netty.channel.Channel Java Examples
The following examples show how to use
net.minecraft.util.io.netty.channel.Channel.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ServerConnectionChannel.java From Carbon with GNU Lesser General Public License v3.0 | 6 votes |
@Override 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(connection)) .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); networkManagers.add(networkmanager); channel.pipeline().addLast("packet_handler", networkmanager); networkmanager.a(new HandshakeListener(MinecraftServer.getServer(), networkmanager)); }
Example #2
Source File: PingInjector.java From PingAPI with MIT License | 5 votes |
/** * Iterates through every open NetworkManager and adds my ChannelDuplexHandler subclass into the pipeline * This allows you to listen for outgoing packets and modify them before they are sent * * The List of NetworkManager instances is converted to an array to avoid ConcurrentModificationExceptions * NullPointerExceptions, IllegalArgumentExceptions, and NoSuchElementException only occur if there is a massive amount of ping requests being sent to the server. * NullPointerExceptions are thrown when the pipeline has yet to be created. * Since ping responses are handled on separate threads IllegalArgumentExceptions are thrown when this method is invoked at the same time on two different threads * This means the null check will be passed and this method will attempt to create a duplicate handler which throws this exception * NoSuchElementExceptions have a similar cause. They are caused when the "packet_handler" has yet to be added. * The best solution I could find is simply ignoring these exceptions */ public void injectOpenConnections() { try { Field field = ReflectUtils.getFirstFieldByType(NetworkManager.class, Channel.class); field.setAccessible(true); for(Object manager : networkManagers.toArray()) { Channel channel = (Channel) field.get(manager); if(channel.pipeline().context("pingapi_handler") == null && (channel.pipeline().context("packet_handler") != null)) { channel.pipeline().addBefore("packet_handler", "pingapi_handler", new DuplexHandler()); } } } catch(IllegalAccessException e) { e.printStackTrace(); } catch(NullPointerException | IllegalArgumentException | NoSuchElementException ignored) {} }
Example #3
Source File: PingInjector.java From PingAPI with MIT License | 5 votes |
/** * Iterates through every open NetworkManager and adds my ChannelDuplexHandler subclass into the pipeline * This allows you to listen for outgoing packets and modify them before they are sent * * The List of NetworkManager instances is converted to an array to avoid ConcurrentModificationExceptions * NullPointerExceptions, IllegalArgumentExceptions, and NoSuchElementException only occur if there is a massive amount of ping requests being sent to the server. * NullPointerExceptions are thrown when the pipeline has yet to be created. * Since ping responses are handled on separate threads IllegalArgumentExceptions are thrown when this method is invoked at the same time on two different threads * This means the null check will be passed and this method will attempt to create a duplicate handler which throws this exception * NoSuchElementExceptions have a similar cause. They are caused when the "packet_handler" has yet to be added. * The best solution I could find is simply ignoring these exceptions */ public void injectOpenConnections() { try { Field field = ReflectUtils.getFirstFieldByType(NetworkManager.class, Channel.class); field.setAccessible(true); for(Object manager : networkManagers.toArray()) { Channel channel = (Channel) field.get(manager); if(channel.pipeline().context("pingapi_handler") == null && (channel.pipeline().context("packet_handler") != null)) { channel.pipeline().addBefore("packet_handler", "pingapi_handler", new DuplexHandler()); } } } catch(IllegalAccessException e) { e.printStackTrace(); } catch(NullPointerException | IllegalArgumentException | NoSuchElementException ignored) {} }
Example #4
Source File: PingInjector.java From PingAPI with MIT License | 5 votes |
/** * Iterates through every open NetworkManager and adds my ChannelDuplexHandler subclass into the pipeline * This allows you to listen for outgoing packets and modify them before they are sent * * The List of NetworkManager instances is converted to an array to avoid ConcurrentModificationExceptions * NullPointerExceptions, IllegalArgumentExceptions, and NoSuchElementException only occur if there is a massive amount of ping requests being sent to the server. * NullPointerExceptions are thrown when the pipeline has yet to be created. * Since ping responses are handled on separate threads IllegalArgumentExceptions are thrown when this method is invoked at the same time on two different threads * This means the null check will be passed and this method will attempt to create a duplicate handler which throws this exception * NoSuchElementExceptions have a similar cause. They are caused when the "packet_handler" has yet to be added. * The best solution I could find is simply ignoring these exceptions */ public void injectOpenConnections() { try { Field field = ReflectUtils.getFirstFieldByType(NetworkManager.class, Channel.class); field.setAccessible(true); for(Object manager : networkManagers.toArray()) { Channel channel = (Channel) field.get(manager); if(channel.pipeline().context("pingapi_handler") == null && (channel.pipeline().context("packet_handler") != null)) { channel.pipeline().addBefore("packet_handler", "pingapi_handler", new DuplexHandler()); } } } catch(IllegalAccessException e) { e.printStackTrace(); } catch(NullPointerException | IllegalArgumentException | NoSuchElementException ignored) {} }
Example #5
Source File: PacketExtensionImpl.java From NovaGuilds with GNU General Public License v3.0 | 5 votes |
/** * 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; } }
Example #6
Source File: NettyInjector.java From Carbon with GNU Lesser General Public License v3.0 | 5 votes |
@SuppressWarnings("unchecked") public static void injectStreamSerializer() throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException { ServerConnection serverConnection = MinecraftServer.getServer().getServerConnection(); List<NetworkManager> networkManagersList = ((List<NetworkManager>) Utilities.setAccessible(Field.class, serverConnection.getClass().getDeclaredField("f"), true).get(serverConnection)); Channel channel = (Channel) ((List<ChannelFuture>) Utilities.setAccessible(Field.class, serverConnection.getClass().getDeclaredField("e"), true).get(serverConnection)).get(0).channel(); ChannelHandler serverHandler = channel.pipeline().first(); Utilities.setAccessible(Field.class, serverHandler.getClass().getDeclaredField("childHandler"), true).set(serverHandler, new ServerConnectionChannel(serverConnection, networkManagersList)); }
Example #7
Source File: FixedNetworkManager.java From EntityAPI with GNU Lesser General Public License v3.0 | 5 votes |
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); }
Example #8
Source File: FixedNetworkManager.java From EntityAPI with GNU Lesser General Public License v3.0 | 5 votes |
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); }
Example #9
Source File: FixedNetworkManager.java From EntityAPI with GNU Lesser General Public License v3.0 | 5 votes |
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() {}); }
Example #10
Source File: FixedNetworkManager.java From EntityAPI with GNU Lesser General Public License v3.0 | 5 votes |
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() {}); }
Example #11
Source File: PlayerInjector.java From HoloAPI with GNU General Public License v3.0 | 4 votes |
private Channel getChannel() { if (this.channel == null) throw new IllegalStateException("The Channel is NULL!"); return this.channel; }