Fix crash on exiting personal pocket dimension #185
@@ -1,9 +1,15 @@
|
|||||||
package StevenDimDoors.mod_pocketDim;
|
package StevenDimDoors.mod_pocketDim;
|
||||||
|
|
||||||
import StevenDimDoors.mod_pocketDim.network.DimDoorsNetwork;
|
import StevenDimDoors.mod_pocketDim.network.DimDoorsNetwork;
|
||||||
|
import cpw.mods.fml.common.FMLCommonHandler;
|
||||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||||
import cpw.mods.fml.common.gameevent.PlayerEvent;
|
import cpw.mods.fml.common.gameevent.PlayerEvent;
|
||||||
|
import cpw.mods.fml.common.network.FMLEmbeddedChannel;
|
||||||
import cpw.mods.fml.common.network.FMLNetworkEvent;
|
import cpw.mods.fml.common.network.FMLNetworkEvent;
|
||||||
|
import cpw.mods.fml.common.network.FMLOutboundHandler;
|
||||||
|
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import net.minecraft.network.NetHandlerPlayServer;
|
||||||
import net.minecraft.network.Packet;
|
import net.minecraft.network.Packet;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraftforge.common.DimensionManager;
|
import net.minecraftforge.common.DimensionManager;
|
||||||
@@ -11,9 +17,28 @@ import StevenDimDoors.mod_pocketDim.core.NewDimData;
|
|||||||
import StevenDimDoors.mod_pocketDim.core.PocketManager;
|
import StevenDimDoors.mod_pocketDim.core.PocketManager;
|
||||||
import StevenDimDoors.mod_pocketDim.watcher.ClientDimData;
|
import StevenDimDoors.mod_pocketDim.watcher.ClientDimData;
|
||||||
import net.minecraftforge.common.network.ForgeMessage;
|
import net.minecraftforge.common.network.ForgeMessage;
|
||||||
|
import net.minecraftforge.common.network.ForgeNetworkHandler;
|
||||||
|
|
||||||
public class ConnectionHandler
|
public class ConnectionHandler
|
||||||
{
|
{
|
||||||
|
@SubscribeEvent
|
||||||
|
public void serverConnectionFromClientEvent(FMLNetworkEvent.ServerConnectionFromClientEvent event) {
|
||||||
|
if (FMLCommonHandler.instance().getSide() == Side.SERVER) {
|
||||||
|
NetHandlerPlayServer server = ((NetHandlerPlayServer)event.handler);
|
||||||
|
FMLEmbeddedChannel channel = NetworkRegistry.INSTANCE.getChannel("FORGE", Side.SERVER);
|
||||||
|
for (NewDimData data : PocketManager.getDimensions()) {
|
||||||
|
try {
|
||||||
|
if (data.isPocketDimension() || data.id() == mod_pocketDim.properties.LimboDimensionID) {
|
||||||
|
channel.writeOutbound(new ForgeMessage.DimensionRegisterMessage(data.id(), DimensionManager.getProviderType(data.id())));
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void connectionClosed(FMLNetworkEvent.ClientDisconnectionFromServerEvent event)
|
public void connectionClosed(FMLNetworkEvent.ClientDisconnectionFromServerEvent event)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user