import com.runehive.Config;
import com.runehive.content.ActivityLog;
import com.runehive.content.ActivityLogger;
import com.runehive.content.achievement.AchievementKey;
import com.runehive.content.activity.Activity;
import com.runehive.content.activity.impl.barrows.BrotherData;
import com.runehive.content.activity.record.PlayerRecord;
import com.runehive.content.bags.impl.CoalBag;
import com.runehive.content.bags.impl.GemBag;
import com.runehive.content.clanchannel.channel.ClanChannel;
import com.runehive.content.clanchannel.channel.ClanChannelHandler;
import com.runehive.content.clanchannel.content.ClanViewer;
import com.runehive.content.collectionlog.CollectionLog;
import com.runehive.content.collectionlog.CollectionLogData;
import com.runehive.content.collectionlog.CollectionLogPage;
import com.runehive.content.collectionlog.CollectionLogSaving;
import com.runehive.content.combat.Killstreak;
import com.runehive.content.combat.Skulling;
import com.runehive.content.dailyeffect.DailyEffect;
import com.runehive.content.dailyeffect.impl.DailySlayerTaskSkip;
import com.runehive.content.dailyeffect.impl.DailySlayerTaskTeleport;
import com.runehive.content.dailyeffect.impl.DailySpellBookSwap;
import com.runehive.content.dialogue.ChatBoxItemDialogue;
import com.runehive.content.dialogue.Dialogue;
import com.runehive.content.dialogue.DialogueFactory;
import com.runehive.content.dialogue.OptionDialogue;
import com.runehive.content.donators.Donation;
import com.runehive.content.emote.EmoteUnlockable;
import com.runehive.content.event.EventDispatcher;
import com.runehive.content.event.impl.LogInEvent;
import com.runehive.content.gambling.GambleManager;
import com.runehive.content.lms.LMSGame;
import com.runehive.content.lms.lobby.LMSLobby;
import com.runehive.content.lms.lobby.LMSLobbyEvent;
import com.runehive.content.mysterybox.MysteryBoxManager;
import com.runehive.content.overrides.Overrides;
import com.runehive.content.pet.PetData;
import com.runehive.content.pet.Pets;
import com.runehive.content.preset.PresetManager;
import com.runehive.content.prestige.Prestige;
import com.runehive.content.puzzle.PuzzleDisplay;
import com.runehive.content.skill.impl.construction.House;
import com.runehive.content.skill.impl.farming.Farming;
import com.runehive.content.skill.impl.hunter.birdhouse.PlayerBirdHouseData;
import com.runehive.content.skill.impl.hunter.trap.TrapManager;
import com.runehive.content.skill.impl.magic.RunePouch;
import com.runehive.content.skill.impl.magic.Spellbook;
import com.runehive.content.skill.impl.magic.spell.SpellCasting;
import com.runehive.content.skill.impl.runecrafting.RunecraftPouch;
import com.runehive.content.skill.impl.slayer.Slayer;
import com.runehive.content.store.impl.PersonalStore;
import com.runehive.content.teleport.Teleport;
import com.runehive.content.tittle.PlayerTitle;
import com.runehive.content.tradingpost.TradingPost;
import com.runehive.game.event.impl.MovementEvent;
import com.runehive.game.plugin.PluginManager;
import com.runehive.game.service.Highscores;
import com.runehive.game.task.impl.PvPTimerTask;
import com.runehive.game.task.impl.TeleblockTask;
import com.runehive.game.world.World;
import com.runehive.game.world.entity.EntityType;
import com.runehive.game.world.entity.combat.Combat;
import com.runehive.game.world.entity.combat.CombatConstants;
import com.runehive.game.world.entity.combat.attack.FightType;
import com.runehive.game.world.entity.combat.effect.AntifireDetails;
import com.runehive.game.world.entity.combat.magic.CombatSpell;
import com.runehive.game.world.entity.combat.ranged.RangedAmmunition;
import com.runehive.game.world.entity.combat.ranged.RangedWeaponDefinition;
import com.runehive.game.world.entity.combat.strategy.CombatStrategy;
import com.runehive.game.world.entity.combat.strategy.player.special.CombatSpecial;
import com.runehive.game.world.entity.combat.weapon.WeaponInterface;
import com.runehive.game.world.entity.mob.Mob;
import com.runehive.game.world.entity.mob.UpdateFlag;
import com.runehive.game.world.entity.mob.Viewport;
import com.runehive.game.world.entity.mob.movement.waypoint.PickupWaypoint;
import com.runehive.game.world.entity.mob.movement.waypoint.Waypoint;
import com.runehive.game.world.entity.mob.npc.Npc;
import com.runehive.game.world.entity.mob.player.appearance.Appearance;
import com.runehive.game.world.entity.mob.player.exchange.ExchangeSessionManager;
import com.runehive.game.world.entity.mob.player.relations.ChatMessage;
import com.runehive.game.world.entity.mob.player.relations.PlayerRelation;
import com.runehive.game.world.entity.mob.player.requests.PlayerPunishment;
import com.runehive.game.world.entity.mob.player.requests.RequestManager;
import com.runehive.game.world.entity.mob.prayer.Prayer;
import com.runehive.game.world.entity.mob.prayer.PrayerBook;
import com.runehive.game.world.items.Item;
import com.runehive.game.world.items.containers.bank.Bank;
import com.runehive.game.world.items.containers.bank.BankPin;
import com.runehive.game.world.items.containers.bank.BankVault;
import com.runehive.game.world.items.containers.bank.DonatorDeposit;
import com.runehive.game.world.items.containers.equipment.Equipment;
import com.runehive.game.world.items.containers.impl.LootingBag;
import com.runehive.game.world.items.containers.impl.LostUntradeables;
import com.runehive.game.world.items.containers.inventory.Inventory;
import com.runehive.game.world.items.containers.pricechecker.PriceChecker;
import com.runehive.game.world.object.CustomGameObject;
import com.runehive.game.world.object.ObjectDirection;
import com.runehive.game.world.object.ObjectType;
import com.runehive.game.world.position.Area;
import com.runehive.game.world.position.Boundary;
import com.runehive.game.world.position.Position;
import com.runehive.game.world.region.Region;
import com.runehive.net.packet.OutgoingPacket;
import com.runehive.net.packet.out.*;
import com.runehive.net.session.GameSession;
import com.runehive.util.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jire.runehiveps.event.Events;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
Go to the source code of this file.