Bungeecord support added x13
This commit is contained in:
parent
ec2339fd19
commit
5e8aa2ae7f
@ -80,25 +80,16 @@ public class XCraft extends Plugin {
|
|||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private void injectListener(int version) throws Exception {
|
private void injectListener(int version) throws Exception {
|
||||||
Field protocolsField = Protocol.LOGIN.TO_SERVER.getClass().getDeclaredField("protocols");
|
Class<?> toServerClass = Protocol.LOGIN.TO_SERVER.getClass();
|
||||||
protocolsField.setAccessible(true);
|
|
||||||
TIntObjectMap<?> protocols = (TIntObjectMap)protocolsField.get(Protocol.LOGIN.TO_SERVER);
|
|
||||||
|
|
||||||
Object protocolData = protocols.get(version);
|
Class<?> protocolMappingClass = Class.forName("net.md_5.bungee.protocol.Protocol$ProtocolMapping");
|
||||||
Field packetMapField = protocolData.getClass().getDeclaredField("packetMap");
|
Constructor<?> pConstructor = protocolMappingClass.getDeclaredConstructor(int.class, int.class);
|
||||||
Field packetConstructorsField = protocolData.getClass().getDeclaredField("packetConstructors");
|
pConstructor.setAccessible(true);
|
||||||
packetMapField.setAccessible(true);
|
|
||||||
packetConstructorsField.setAccessible(true);
|
|
||||||
TObjectIntMap packetMap = (TObjectIntMap)packetMapField.get(protocolData);
|
|
||||||
Constructor<? extends DefinedPacket>[] packetConstructors = (Constructor<? extends DefinedPacket>[]) packetConstructorsField.get(protocolData);
|
|
||||||
|
|
||||||
packetMap.remove(EncryptionResponse.class);
|
Method registerPacketMethod = toServerClass.getDeclaredMethod("registerPacket", Class.class, protocolMappingClass );
|
||||||
packetMap.put( EncryptionResponsePacket.class, 1);
|
registerPacketMethod.setAccessible(true);
|
||||||
packetConstructors[1] = EncryptionResponsePacket.class.getDeclaredConstructor();
|
registerPacketMethod.invoke(toServerClass, EncryptionResponsePacket.class, pConstructor.newInstance(version, 1));
|
||||||
|
|
||||||
packetMapField.set(protocolData, packetMap);
|
|
||||||
packetConstructorsField.set(protocolData, packetConstructors);
|
|
||||||
protocolsField.set(Protocol.LOGIN.TO_SERVER, protocols);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user