package mods.ocminecart.network;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.relauncher.Side;
import mods.ocminecart.OCMinecart;
import mods.ocminecart.network.message.*;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.management.ServerConfigurationManager;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import java.util.Iterator;
public class ModNetwork {
public static SimpleNetworkWrapper channel;
public static void init(){
channel=NetworkRegistry.INSTANCE.newSimpleChannel(OCMinecart.MODID.toLowerCase());
int id=-1;
channel.registerMessage(GuiButtonClick.Handler.class, GuiButtonClick.class, id++, Side.SERVER);
channel.registerMessage(ComputercartInventoryUpdate.Handler.class, ComputercartInventoryUpdate.class, id++, Side.CLIENT);
channel.registerMessage(EntitySyncRequest.Handler.class, EntitySyncRequest.class, id++, Side.SERVER);
channel.registerMessage(EntitySyncData.Handler.class, EntitySyncData.class, id++, Side.CLIENT);
channel.registerMessage(UpdateRunning.Handler.class, UpdateRunning.class, id++, Side.CLIENT);
channel.registerMessage(ItemUseMessage.Handler.class, ItemUseMessage.class, id++, Side.CLIENT);
channel.registerMessage(ConfigSyncMessage.Handler.class, ConfigSyncMessage.class, id++, Side.CLIENT);
}
public static void sendToNearPlayers(IMessage msg, TileEntity entity){
sendToNearPlayers(msg,entity.xCoord, entity.yCoord, entity.zCoord, entity.getWorldObj());
}
public static void sendToNearPlayers(IMessage msg, double x, double y, double z, World world){
ServerConfigurationManager manager = FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager();
Iterator playerList = manager.playerEntityList.iterator();
while(playerList.hasNext()){
EntityPlayerMP player = (EntityPlayerMP) playerList.next();
int serverview = manager.getViewDistance()*16;
if(player.getDistance(x, y, z)<=serverview && world.provider.dimensionId == player.dimension){
channel.sendTo(msg, player);
}
}
}
}