Package org.moparscape.msc.gs.core

Source Code of org.moparscape.msc.gs.core.DelayedEventHandler

package org.moparscape.msc.gs.core;

import java.util.ArrayList;
import java.util.Iterator;

import org.moparscape.msc.gs.Instance;
import org.moparscape.msc.gs.event.DelayedEvent;
import org.moparscape.msc.gs.model.Player;
import org.moparscape.msc.gs.model.World;
import org.moparscape.msc.gs.util.Logger;

public final class DelayedEventHandler {
  private static World world = Instance.getWorld();
  private ArrayList<DelayedEvent> events = new ArrayList<DelayedEvent>();
  private ArrayList<DelayedEvent> toAdd = new ArrayList<DelayedEvent>();

  public DelayedEventHandler() {
    world.setDelayedEventHandler(this);
  }

  public void add(DelayedEvent event) {
    if (!events.contains(event)) {
      toAdd.add(event);
    }
  }

  void doEvents() {
    try {
      if (toAdd.size() > 0) {
        events.addAll(toAdd);
        toAdd.clear();
      }
      Iterator<DelayedEvent> iterator = events.iterator();
      while (iterator.hasNext()) {
        DelayedEvent event = iterator.next();

        if (event == null) {
          iterator.remove();
          continue;
        }

        if (event.shouldRun()) {
          event.run();
          event.updateLastRun();
        }
        if (event.shouldRemove()) {
          iterator.remove();
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
      Logger.println("Error @ doEvents(): " + e);
    }
  }

  public ArrayList<DelayedEvent> getEvents() {
    return events;
  }

  public void removePlayersEvents(Player player) {
    try {
      Iterator<DelayedEvent> iterator = events.iterator();
      while (iterator.hasNext()) {
        DelayedEvent event = iterator.next();
        if (event.belongsTo(player)) {
          iterator.remove();
        }
      }
    } catch (Exception e) {
      Logger.println("Error @ removePlayer, IP address:"
          + player.getCurrentIP() + " Name: " + player.getUsername());
      e.printStackTrace();
    }

  }
}
TOP

Related Classes of org.moparscape.msc.gs.core.DelayedEventHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.