package coloredlightscore.server;
import cpw.mods.fml.common.FMLLog;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.world.ChunkCoordIntPair;
import net.minecraft.world.chunk.Chunk;
import java.util.ArrayList;
public class PlayerManagerHelper {
public PlayerManagerHelper() {
// TODO Auto-generated constructor stub
}
/**
* Invoked for each player in net.minecraft.server.management.PlayerManager.sendToAllPlayersWatchingChunk
* <p/>
* Happens when a server is sending chunk data to a player
*
* @param player
* @param chunkLocation
*/
public static void sendToPlayerWatchingChunk(EntityPlayerMP player, ChunkCoordIntPair chunkLocation) {
//FMLLog.info("Server just sent chunk (%s, %s) to player %s", chunkLocation.chunkXPos, chunkLocation.chunkZPos, player.getDisplayName());
// TODO: Load chunk from server
//sendChunkRGBDataToPlayer(player, chunkLocation.chunkXPos, chunkLocation.chunkZPos, null);
}
public static void entityPlayerMP_onUpdate(ArrayList<Chunk> chunks, EntityPlayerMP player) {
for (Chunk c : chunks) {
//FMLLog.info("S26: Server just sent chunk (%s, %s) to player %s", c.xPosition, c.zPosition, player.getDisplayName());
sendChunkRGBDataToPlayer(player, c.xPosition, c.zPosition, c);
}
}
public static void sendChunkRGBDataToPlayer(EntityPlayerMP player, int chunkX, int chunkZ, Chunk chunk) {
if (chunk == null) {
// Pick out chunk from world
// TODO: This kills the server
//chunk = Minecraft.getMinecraft().theWorld.getChunkFromChunkCoords(chunkX, chunkZ);
FMLLog.warning("Could not load chunk (%s, %s) for RGB color data!", chunkX, chunkZ);
return;
}
coloredlightscore.network.PacketHandler.sendChunkColorData(chunk, player);
}
}