Arcturus-Community/src/main/java/com/eu/habbo/threading/runnables/AchievementUpdater.java

42 lines
1.5 KiB
Java
Raw Normal View History

2018-07-06 15:30:00 +02:00
package com.eu.habbo.threading.runnables;
import com.eu.habbo.Emulator;
import com.eu.habbo.habbohotel.achievements.Achievement;
import com.eu.habbo.habbohotel.achievements.AchievementManager;
import com.eu.habbo.habbohotel.users.Habbo;
import java.util.Map;
public class AchievementUpdater implements Runnable
{
2019-03-18 02:22:00 +01:00
public static final int INTERVAL = 5 * 60;
2018-07-06 15:30:00 +02:00
public int lastExecutionTimestamp = Emulator.getIntUnixTimestamp();
@Override
public void run()
{
if (!Emulator.isShuttingDown)
{
Emulator.getThreading().run(this, INTERVAL * 1000);
}
if (Emulator.isReady)
{
Achievement onlineTime = Emulator.getGameEnvironment().getAchievementManager().getAchievement("AllTimeHotelPresence");
int timestamp = Emulator.getIntUnixTimestamp();
for (Map.Entry<Integer, Habbo> set : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().entrySet())
{
int timeOnlineSinceLastInterval = INTERVAL;
Habbo habbo = set.getValue();
if (habbo.getHabboInfo().getLastOnline() > this.lastExecutionTimestamp)
{
timeOnlineSinceLastInterval = timestamp - habbo.getHabboInfo().getLastOnline();
}
AchievementManager.progressAchievement(habbo, onlineTime, (int) Math.floor((timeOnlineSinceLastInterval) / 60));
}
this.lastExecutionTimestamp = timestamp;
}
}
}