package speedytools.serverside; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent; import java.util.HashSet; import java.util.Set; /** * User: The Grey Ghost * Date: 18/09/2014 * Used to register handlers for player events, similar to how the IPlayerTracker and GameRegistry used to work. */ public class PlayerTrackerRegistry { public void registerHandler(IPlayerTracker handler) { handlers.add(handler); } public Set<IPlayerTracker> getHandlers() {return handlers;} public interface IPlayerTracker { public void onPlayerLogin(EntityPlayer player); public void onPlayerLogout(EntityPlayer player); public void onPlayerChangedDimension(EntityPlayer player); public void onPlayerRespawn(EntityPlayer player); } @SubscribeEvent public void playerLogon(PlayerEvent.PlayerLoggedInEvent playerLoggedInEvent) { for (IPlayerTracker tracker : handlers) { tracker.onPlayerLogin(playerLoggedInEvent.player); } } @SubscribeEvent public void playerLogoff(PlayerEvent.PlayerLoggedOutEvent playerLoggedOutEvent) { for (IPlayerTracker tracker : handlers) { tracker.onPlayerLogout(playerLoggedOutEvent.player); } } Set<IPlayerTracker> handlers = new HashSet<IPlayerTracker>(); }