Alright, am I doing it right?
--
Added class (using it for all processing stuff used on public event)
(Thanks to ultimate)
Code:
package server.model.player;
import server.events.Event;
import server.events.EventContainer;
import server.model.player.Client;
import server.world.PlayerManager;
public class RestoreEvent implements Event {
@Override
public void execute(EventContainer container) {
for(Player p : PlayerManager.getSingleton().getPlayers()){
if(p == null) continue;
if (p.playerEnergy < 100) {
((Client) p).getActionAssistant().sendFrame126("@[email protected]"+p.playerEnergy + "%", 149);
if(System.currentTimeMillis() - p.lastIncrease >= 6000){
p.playerEnergy += 1;
p.lastIncrease = System.currentTimeMillis();
}
}
if(System.currentTimeMillis() - p.restoreStatsDelay > 40000) {
p.restoreStatsDelay = System.currentTimeMillis();
for (int level = 0; level < p.playerLevel.length; level++) {
if (p.playerLevel[level] < ((Client) p).getActionAssistant().getLevelForXP(p.playerXP[level])) {
if(level != 5) { // prayer doesn't restore
p.playerLevel[level] += 1;
((Client) p).getActionAssistant().setSkillLevel(level, p.playerLevel[level], p.playerXP[level]);
((Client) p).getActionAssistant().refreshSkill(level);
}
} else if (p.playerLevel[level] > ((Client) p).getActionAssistant().getLevelForXP(p.playerXP[level])) {
p.playerLevel[level] -= 1;
((Client) p).getActionAssistant().setSkillLevel(level, p.playerLevel[level], p.playerXP[level]);
((Client) p).getActionAssistant().refreshSkill(level);
}
}
}
if(System.currentTimeMillis() - p.skullDelay >= 1200000 && p.isSkulled){
p.isSkulled = false;
if(p.isSkulled) {
p.headIcon = 1;
} else {
p.headIcon = 0;
}
p.updateRequired = true;
p.appearanceUpdateRequired = true;
}
((Client) p).getCombatManager().process();
if (p.playerLevel[3] <= 0) {
p.isDead = true;
}
if (p.isDead) {
if (!p.isDeadWaiting) {
((Client) p).getActionAssistant().applyDead();
} else {
if (p.isDeadTimer == 0) {
((Client) p).getActionAssistant().giveLife();
}
p.isDeadTimer--;
}
}
}
}
public void stop() {
}
}
and added it into Eventmanager intialize
Code:
public static EventManager getSingleton() {
if (singleton == null) {
singleton = new EventManager();
singleton.thread = new Thread(singleton, "eventManager");
singleton.thread.start();
singleton.addEvent(null, new RestoreEvent(), 500);
}
return singleton;
}
So now my Process() method is fully clean..
Is this the right way? since using process method is so bad..
Thanks.