// Path: src/main/java/com/techjar/vivecraftforge/VivecraftForge.java
// @Mod(modid = "VivecraftForge", name = "Vivecraft Forge Extensions", version = "@VERSION@", dependencies = "required-after:Forge@[10.13.4.1558,)", acceptableRemoteVersions = "@RAW_VERSION@.*")
// public class VivecraftForge {
// 	@Instance("VivecraftForge")
// 	public static VivecraftForge instance;
// 	
// 	@SidedProxy(clientSide = "com.techjar.vivecraftforge.proxy.ProxyClient", serverSide = "com.techjar.vivecraftforge.proxy.ProxyServer")
// 	public static ProxyCommon proxy;
// 
// 	public static SimpleNetworkWrapper networkVersion;
// 	//public static SimpleNetworkWrapper networkFreeMove; // currently not used
// 	public static SimpleNetworkWrapper networkLegacy;
// 	public static SimpleNetworkWrapper networkOK;
// 	
// 	public static VivecraftForgeChannelHandler packetPipeline;
// 
// 	@EventHandler
// 	public void preInit(FMLPreInitializationEvent event) {
// 		Configuration config = new Configuration(event.getSuggestedConfigurationFile());
// 		config.load();
// 		Config.vrCreeperSwellDistance = config.get(Configuration.CATEGORY_GENERAL, "vrCreeperSwellDistance", 1.75, "Distance at which creepers swell and explode for VR players. Default: 1.75").getDouble(1.75D);
// 		if (config.hasChanged()) config.save();
// 	}
// 
// 	@EventHandler
// 	public void load(FMLInitializationEvent event) {
// 		packetPipeline = VivecraftForgeChannelHandler.init();
// 		proxy.registerNetworkChannels();
// 		proxy.registerEventHandlers();
// 		proxy.registerEntities();
// 		proxy.registerRenderers();
// 	}
// 
// 	@EventHandler
// 	public void postInit(FMLPostInitializationEvent event) {
// 		// Stub Method
// 	}
// }
// 
// Path: src/main/java/com/techjar/vivecraftforge/util/VivecraftForgeLog.java
// public class VivecraftForgeLog {
// 	public static void info(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.INFO, message, data);
// 	}
// 
// 	public static void warning(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.WARN, message, data);
// 	}
// 
// 	public static void severe(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.ERROR, message, data);
// 	}
// 
// 	public static void debug(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.DEBUG, message, data);
// 	}
// }


import io.netty.channel.ChannelHandler.Sharable;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetHandler;
import com.techjar.vivecraftforge.VivecraftForge;
import com.techjar.vivecraftforge.util.VivecraftForgeLog;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
package com.techjar.vivecraftforge.network;




@Sharable
public class VivecraftForgePacketHandler extends SimpleChannelInboundHandler<IPacket> {
	@Override
	protected void channelRead0(ChannelHandlerContext ctx, IPacket msg) throws Exception {
		INetHandler netHandler = ctx.channel().attr(NetworkRegistry.NET_HANDLER).get();
// Path: src/main/java/com/techjar/vivecraftforge/VivecraftForge.java
// @Mod(modid = "VivecraftForge", name = "Vivecraft Forge Extensions", version = "@VERSION@", dependencies = "required-after:Forge@[10.13.4.1558,)", acceptableRemoteVersions = "@RAW_VERSION@.*")
// public class VivecraftForge {
// 	@Instance("VivecraftForge")
// 	public static VivecraftForge instance;
// 	
// 	@SidedProxy(clientSide = "com.techjar.vivecraftforge.proxy.ProxyClient", serverSide = "com.techjar.vivecraftforge.proxy.ProxyServer")
// 	public static ProxyCommon proxy;
// 
// 	public static SimpleNetworkWrapper networkVersion;
// 	//public static SimpleNetworkWrapper networkFreeMove; // currently not used
// 	public static SimpleNetworkWrapper networkLegacy;
// 	public static SimpleNetworkWrapper networkOK;
// 	
// 	public static VivecraftForgeChannelHandler packetPipeline;
// 
// 	@EventHandler
// 	public void preInit(FMLPreInitializationEvent event) {
// 		Configuration config = new Configuration(event.getSuggestedConfigurationFile());
// 		config.load();
// 		Config.vrCreeperSwellDistance = config.get(Configuration.CATEGORY_GENERAL, "vrCreeperSwellDistance", 1.75, "Distance at which creepers swell and explode for VR players. Default: 1.75").getDouble(1.75D);
// 		if (config.hasChanged()) config.save();
// 	}
// 
// 	@EventHandler
// 	public void load(FMLInitializationEvent event) {
// 		packetPipeline = VivecraftForgeChannelHandler.init();
// 		proxy.registerNetworkChannels();
// 		proxy.registerEventHandlers();
// 		proxy.registerEntities();
// 		proxy.registerRenderers();
// 	}
// 
// 	@EventHandler
// 	public void postInit(FMLPostInitializationEvent event) {
// 		// Stub Method
// 	}
// }
// 
// Path: src/main/java/com/techjar/vivecraftforge/util/VivecraftForgeLog.java
// public class VivecraftForgeLog {
// 	public static void info(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.INFO, message, data);
// 	}
// 
// 	public static void warning(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.WARN, message, data);
// 	}
// 
// 	public static void severe(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.ERROR, message, data);
// 	}
// 
// 	public static void debug(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.DEBUG, message, data);
// 	}
// }


// Path: src/main/java/com/techjar/vivecraftforge/network/VivecraftForgePacketHandler.java
import io.netty.channel.ChannelHandler.Sharable;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetHandler;
import com.techjar.vivecraftforge.VivecraftForge;
import com.techjar.vivecraftforge.util.VivecraftForgeLog;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.network.NetworkRegistry;

package com.techjar.vivecraftforge.network;




@Sharable
public class VivecraftForgePacketHandler extends SimpleChannelInboundHandler<IPacket> {
	@Override
	protected void channelRead0(ChannelHandlerContext ctx, IPacket msg) throws Exception {
		INetHandler netHandler = ctx.channel().attr(NetworkRegistry.NET_HANDLER).get();
		EntityPlayer player = VivecraftForge.proxy.getPlayerFromNetHandler(netHandler);