public void saveServerBossBars() { // Get bossbar list if it's supported try { Object connection = ReflectionUtil.invoke(player, "getMinecraftConnection"); Object sessionHandler = ReflectionUtil.invoke(connection, "getSessionHandler"); if (sessionHandler.getClass().getSimpleName().contains("Play")) { bossbar = (List<UUID>) ReflectionUtil.invoke(sessionHandler, "getServerBossBars"); } } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { e.printStackTrace(); } } }
@Override public void inject() throws Exception { Object connectionManager = ReflectionUtil.get(VelocityPlugin.PROXY, "cm", Object.class); Object channelInitializerHolder = ReflectionUtil.invoke(connectionManager, "getServerChannelInitializer"); ChannelInitializer originalIntializer = (ChannelInitializer) ReflectionUtil.invoke(channelInitializerHolder, "get"); channelInitializerHolder.getClass().getMethod("set", ChannelInitializer.class) .invoke(channelInitializerHolder, new VelocityChannelInitializer(originalIntializer)); }
ReflectionUtil.invoke( getMinecraftConnection.invoke(e.getPlayer()), "getSessionHandler"