package com.bioxx.tfc2.handlers;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent;
import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerRespawnEvent;
import net.minecraftforge.fml.common.network.FMLNetworkEvent.ClientConnectedToServerEvent;
import net.minecraftforge.fml.common.network.FMLNetworkEvent.ClientDisconnectionFromServerEvent;
import net.minecraftforge.fml.common.network.FMLNetworkEvent.ServerDisconnectionFromClientEvent;
import com.bioxx.jmapgen.IslandMap;
import com.bioxx.tfc2.TFC;
import com.bioxx.tfc2.core.PlayerInfo;
import com.bioxx.tfc2.core.PlayerManagerTFC;
import com.bioxx.tfc2.networking.client.CMapPacket;
import com.bioxx.tfc2.world.WorldGen;
public class PlayerTracker
{
@SubscribeEvent
public void onPlayerLoggedIn(PlayerLoggedInEvent event)
{
PlayerManagerTFC.getInstance().players.add(new PlayerInfo(
event.player.getName(),
event.player.getUniqueID()));
if(event.player.worldObj.isRemote || event.player.dimension != 0)
return;
int islandX = (int)(event.player.posX) >> 12;
int islandZ = (int)(event.player.posZ) >> 12;
IslandMap map = WorldGen.getInstance().getIslandMap(islandX, islandZ);
TFC.network.sendTo(new CMapPacket(islandX, islandZ, map.seed), (EntityPlayerMP)event.player);
}
@SubscribeEvent
public void onClientConnect(ClientConnectedToServerEvent event)
{
TFC.proxy.onClientLogin();
}
@SubscribeEvent
/**
* Runs on the client
*/
public void onClientDisconnectServer(ClientDisconnectionFromServerEvent event)
{
if(WorldGen.getInstance() != null)
{
WorldGen.getInstance().resetCache();
WorldGen.ClearInstances();
}
}
@SubscribeEvent
/**
* Runs on the server
*/
public void onServerDisconnectClient(ServerDisconnectionFromClientEvent event)
{
}
@SubscribeEvent
public void onPlayerRespawn(PlayerRespawnEvent event)
{
}
}