diff --git a/src/main/java/org/ultramine/server/UMEventHandler.java b/src/main/java/org/ultramine/server/UMEventHandler.java index d9aa270..d4d47bc 100644 --- a/src/main/java/org/ultramine/server/UMEventHandler.java +++ b/src/main/java/org/ultramine/server/UMEventHandler.java @@ -15,6 +15,7 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.functions.GenericIterableFactory; import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerChangedDimensionEvent; +import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.network.FMLNetworkEvent; import cpw.mods.fml.relauncher.Side; @@ -321,12 +322,13 @@ private boolean firstPlayer = true; @SideOnly(Side.SERVER) @SubscribeEvent(priority=EventPriority.LOWEST) - public void onPlayerLoggedIn(FMLNetworkEvent.ServerConnectionFromClientEvent e) + public void onPlayerLoggedIn(PlayerLoggedInEvent e) { if(firstPlayer) { firstPlayer = false; UltramineServerModContainer.getInstance().getRecipeCache().clearCache(); } + ((EntityPlayerMP)e.player).getData().core().onLogin(); } } diff --git a/src/main/java/org/ultramine/server/data/player/PlayerCoreData.java b/src/main/java/org/ultramine/server/data/player/PlayerCoreData.java index b575c02..8b09db5 100644 --- a/src/main/java/org/ultramine/server/data/player/PlayerCoreData.java +++ b/src/main/java/org/ultramine/server/data/player/PlayerCoreData.java @@ -13,6 +13,8 @@ public class PlayerCoreData extends PlayerDataExtension { + private long firstLoginTime = System.currentTimeMillis(); + private long lastLoginTime = firstLoginTime; private final Map homes = new HashMap(); private final PlayerAccount account; private long unmuteTime; @@ -31,6 +33,21 @@ this.account = new PlayerAccount(data); } + public long getFirstLoginTime() + { + return firstLoginTime; + } + + public long getLastLoginTime() + { + return lastLoginTime; + } + + public void onLogin() + { + this.lastLoginTime = System.currentTimeMillis(); + } + public WarpLocation getHome(String name) { return homes.get(name); @@ -150,6 +167,8 @@ @Override public void writeToNBT(NBTTagCompound nbt) { + nbt.setLong("flt", firstLoginTime); + nbt.setLong("llt", lastLoginTime); NBTTagList homeList = new NBTTagList(); for(Map.Entry ent : homes.entrySet()) { @@ -171,6 +190,9 @@ @Override public void readFromNBT(NBTTagCompound nbt) { + if(nbt.hasKey("flt")) + firstLoginTime = nbt.getLong("flt"); + lastLoginTime = nbt.getLong("llt"); NBTTagList homeList = nbt.getTagList("homes", 10); for(int i = 0, s = homeList.tagCount(); i < s; i++) {