mirror of
https://github.com/dmulloy2/ProtocolLib.git
synced 2024-11-23 19:16:14 +01:00
allow custom Channel type to be wrapped in InjectionFactory#fromChannel
This commit is contained in:
parent
80aa420099
commit
034f753b9c
@ -168,11 +168,19 @@ public class InjectionFactory {
|
||||
Object netManager = this.findNetworkManager(channel);
|
||||
Player temporaryPlayer = playerFactory.createTemporaryPlayer(this.server);
|
||||
|
||||
// Use the channel field from an already found network manager to prevent our channel injector given in
|
||||
// this method from overwriting initialized custom channel implementation in some spigot forks
|
||||
Channel wrappedChannel = FuzzyReflection.getFieldValue(netManager, Channel.class, true);
|
||||
if (wrappedChannel == null) {
|
||||
// Use the channel straight from ChannelHandlerContext as fallback if the field has null value
|
||||
wrappedChannel = channel;
|
||||
}
|
||||
|
||||
NettyChannelInjector injector = new NettyChannelInjector(
|
||||
temporaryPlayer,
|
||||
this.server,
|
||||
netManager,
|
||||
channel,
|
||||
wrappedChannel,
|
||||
listener,
|
||||
this,
|
||||
this.errorReporter);
|
||||
|
Loading…
Reference in New Issue
Block a user