Guest User

Untitled

a guest
Mar 29th, 2016
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 130.39 KB | None | 0 0
  1. package com.rs.game.player;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.Collections;
  6. import java.net.*;
  7. import java.io.*;
  8. import java.util.HashMap;
  9. import java.util.LinkedList;
  10. import java.util.List;
  11. import java.util.Map;
  12. import java.util.concurrent.ConcurrentLinkedQueue;
  13. import java.util.concurrent.TimeUnit;
  14.  
  15. import org.jboss.netty.channel.ChannelFuture;
  16. import org.jboss.netty.channel.ChannelFutureListener;
  17.  
  18. import com.rs.GameLauncher;
  19. import com.rs.Settings;
  20. import com.rs.cache.loaders.ObjectDefinitions;
  21. import com.rs.executor.GameExecutorManager;
  22. import com.rs.executor.PlayerHandlerThread;
  23. import com.rs.executor.WorldThread;
  24. import com.rs.game.Animation;
  25. import com.rs.game.EffectsManager.Effect;
  26. import com.rs.game.EffectsManager.EffectType;
  27. import com.rs.game.Entity;
  28. import com.rs.game.ForceTalk;
  29. import com.rs.game.Graphics;
  30. import com.rs.game.Highscores;
  31. import com.rs.game.HighscoresEasy;
  32. import com.rs.game.HighscoresNormal;
  33. import com.rs.game.Hit;
  34. import com.rs.game.Hit.HitLook;
  35. import com.rs.game.Projectile;
  36. import com.rs.game.Region;
  37. import com.rs.game.TemporaryAtributtes.Key;
  38. import com.rs.game.World;
  39. import com.rs.game.WorldObject;
  40. import com.rs.game.WorldTile;
  41. import com.rs.game.item.FloorItem;
  42. import com.rs.game.item.Item;
  43. import com.rs.game.map.bossInstance.InstanceSettings;
  44. import com.rs.game.minigames.WarriorsGuild;
  45. import com.rs.game.minigames.clanwars.WarControler;
  46. import com.rs.game.minigames.duel.DuelRules;
  47. import com.rs.game.minigames.stealingcreation.StealingCreationController;
  48. import com.rs.game.minigames.stealingcreation.StealingCreationLobbyController;
  49. import com.rs.game.npc.NPC;
  50. import com.rs.game.npc.familiar.Familiar;
  51. import com.rs.game.npc.others.GraveStone;
  52. import com.rs.game.npc.others.MirrorBackSpider;
  53. import com.rs.game.npc.others.Pet;
  54. import com.rs.game.player.actions.PlayerCombatNew;
  55. import com.rs.game.player.content.Combat;
  56. import com.rs.game.player.content.FriendsChat;
  57. import com.rs.game.player.content.ItemRemover;
  58. import com.rs.game.player.content.Magic;
  59. import com.rs.game.player.content.Notes;
  60. import com.rs.game.player.content.PrayerBooks;
  61. import com.rs.game.player.content.Prestige;
  62. import com.rs.game.player.content.SkillCapeCustomizer;
  63. import com.rs.game.player.content.clans.ClansManager;
  64. import com.rs.game.player.content.construction.House;
  65. import com.rs.game.player.content.grandExchange.GrandExchange;
  66. import com.rs.game.player.content.pet.PetManager;
  67. import com.rs.game.player.controllers.Controller;
  68. import com.rs.game.player.controllers.DTControler;
  69. import com.rs.game.player.controllers.FightCaves;
  70. import com.rs.game.player.controllers.FightKiln;
  71. import com.rs.game.player.controllers.GodWars;
  72. import com.rs.game.player.controllers.NomadsRequiem;
  73. import com.rs.game.player.controllers.QueenBlackDragonController;
  74. import com.rs.game.player.controllers.Wilderness;
  75. import com.rs.game.player.controllers.ZGDControler;
  76. import com.rs.game.player.controllers.bossInstance.BossInstanceController;
  77. import com.rs.game.player.controllers.castlewars.CastleWarsPlaying;
  78. import com.rs.game.player.controllers.castlewars.CastleWarsWaiting;
  79. import com.rs.game.player.controllers.events.DeathEvent;
  80. import com.rs.game.player.controllers.pestcontrol.PestControlGame;
  81. import com.rs.game.player.controllers.pestcontrol.PestControlLobby;
  82. import com.rs.game.tasks.WorldTask;
  83. import com.rs.game.tasks.WorldTasksManager;
  84. import com.rs.login.account.Account;
  85. import com.rs.net.Session;
  86. import com.rs.net.decoders.WorldPacketsDecoder;
  87. import com.rs.net.decoders.handlers.ButtonHandler;
  88. import com.rs.net.encoders.WorldPacketsEncoder;
  89. import com.rs.utils.ILayoutDefaults;
  90. import com.rs.utils.IsaacKeyPair;
  91. import com.rs.utils.Logger;
  92. import com.rs.utils.MachineInformation;
  93. import com.rs.utils.Utils;
  94.  
  95. public class Player extends Entity {
  96.  
  97. public static final int TELE_MOVE_TYPE = 127, WALK_MOVE_TYPE = 1, RUN_MOVE_TYPE = 2;
  98.  
  99. private static final long serialVersionUID = 2011932556974180375L;
  100.  
  101. public boolean KarateFletching = false;
  102.  
  103. // transient stuff
  104. private transient String username;
  105. private transient Session session;
  106. private transient long clientLoadedMapRegion;
  107. private transient int displayMode;
  108. private transient int screenWidth;
  109. private transient int screenHeight;
  110. private transient InterfaceManager interfaceManager;
  111. private transient DialogueManager dialogueManager;
  112. private transient HintIconsManager hintIconsManager;
  113. private transient ActionManager actionManager;
  114. private transient CutscenesManager cutscenesManager;
  115. private transient PriceCheckManager priceCheckManager;
  116. private transient RouteEvent routeEvent;
  117. private transient FriendsIgnores friendsIgnores;
  118. private transient FriendsChat currentFriendsChat;
  119. private transient ClansManager clanManager, guestClanManager;
  120. private transient boolean lootShare;
  121. private transient Trade trade;
  122. private transient DuelRules duelRules;
  123. private transient IsaacKeyPair isaacKeyPair;
  124. private transient Pet pet;
  125. private transient VarsManager varsManager;
  126.  
  127. // used for packets logic
  128. private transient ConcurrentLinkedQueue<LogicPacket> logicPackets;
  129.  
  130. // used for update
  131. private transient LocalPlayerUpdate localPlayerUpdate;
  132. private transient LocalNPCUpdate localNPCUpdate;
  133.  
  134. //AraxxiKills
  135. public int araxxikills;
  136. //Vorago
  137. public boolean defeatedVorago;
  138. public boolean talkedtoVorago;
  139. public boolean accChallenge;
  140. public boolean isSiphoningRago;
  141.  
  142. //adminrest
  143. public long itemsTimer;
  144.  
  145. //desertheat
  146. public long desertHeat;
  147.  
  148. //donator ranks
  149. public String Regular = "";
  150. public String Donator = "[Donator]";
  151. public String SuperDonator = "[Super Donator]";
  152. public String ExtremeDonator = "[Extreme Donator]";
  153. public String LegendaryDonator = "[Legendary Donator]";
  154. public String OneAboveAll = "[One Above All]";
  155.  
  156. //playertile
  157. public boolean isAtSafeZone;
  158.  
  159.  
  160. // player stages
  161. private transient boolean started;
  162. private transient boolean running;
  163. private transient boolean runAfterLoad;
  164. private transient boolean lobby;
  165.  
  166. private transient int resting;
  167. private transient boolean canPvp;
  168. private transient boolean cantTrade;
  169. private transient boolean cantWalk;
  170. private transient long lockDelay; // used for doors and stuff like that
  171. private transient long foodDelay;
  172. private transient long potDelay;
  173. private transient Runnable closeInterfacesEvent;
  174. private transient long lastPublicMessage;
  175. private transient List<Integer> switchItemCache;
  176. private transient boolean disableEquip;
  177. private transient MachineInformation machineInformation;
  178. private transient boolean castedVeng;
  179. private transient boolean invulnerable;
  180. private transient double hpBoostMultiplier;
  181. private transient boolean largeSceneView;
  182. private transient int cannonBalls;
  183. private transient String lastPlayerKill;
  184. private transient String lastPlayerMAC;
  185. private transient boolean refreshClanIcon;
  186.  
  187. // stuff received from login server
  188. private transient String displayName;
  189. private transient String email;
  190.  
  191. private transient int rights;
  192. private transient int messageIcon;
  193. private boolean donator;
  194. private boolean superDonator;
  195. private boolean extremeDonator;
  196. private boolean assistantDeveloper;
  197. private boolean legendaryDonator;
  198. private boolean theOneAboveAll;
  199. private transient boolean isSupporter;
  200. private transient boolean isGraphicDesigner;
  201. private transient boolean muted;
  202. private transient long lastVote;
  203.  
  204. // saving stuff
  205. private Appearence appearence;
  206. private Inventory inventory;
  207. private MoneyPouch moneyPouch;
  208. private Equipment equipment;
  209. private Skills skills;
  210. private CombatDefinitions combatDefinitions;
  211. private Prayer prayer;
  212. private Bank bank;
  213. private ControlerManager controlerManager;
  214. private MusicsManager musicsManager;
  215. private EmotesManager emotesManager;
  216. private Notes notes;
  217. private Toolbelt toolbelt;
  218. private DominionTower dominionTower;
  219. private Familiar familiar;
  220. private FarmingManager farmingManager;
  221. private AuraManager auraManager;
  222. private QuestManager questManager;
  223. private PetManager petManager;
  224. private GrandExchangeManager geManager;
  225. private SlayerManager slayerManager;
  226. private SquealOfFortune squealOfFortune;
  227. private TreasureTrailsManager treasureTrailsManager;
  228. private CoalTrucksManager coalTrucksManager;
  229. private DungManager dungManager;
  230. private House house;
  231. private ActionBar actionbar;
  232. private DoomsayerManager doomsayerManager;
  233. private TimersManager timersManager;
  234. private PlayerExamineManager playerExamineManager;
  235. private CosmeticsManager cosmeticsManager;
  236. private byte runEnergy;
  237. private int[] subMenus; // used by interface menu
  238.  
  239. // rs settings old
  240. private boolean allowChatEffects;
  241. private boolean acceptAid;
  242. private boolean rightClickReporting;
  243. private boolean mouseButtons;
  244. private boolean profanityFilter;
  245.  
  246. private boolean votingXP;
  247. //AraxxiClaim
  248. private boolean canClaim;
  249.  
  250.  
  251. // rs settings
  252. private boolean lockInterfaceCustomization;
  253. private boolean hideTitleBarsWhenLocked;
  254. private boolean slimHeaders;
  255. private boolean clickThroughtChatboxes;
  256. private boolean targetReticules;
  257. private boolean alwaysShowTargetInformation;
  258. private boolean legacyMode;
  259. private boolean splitPrivateChat;
  260. private boolean makeXProgressWindow;
  261. private boolean serverOwner;
  262. private boolean serverMod;
  263. private boolean serverAdmin;
  264. private boolean hideFamiliarOptions;
  265. private boolean guidanceSystemHints;
  266. private boolean toogleQuickChat;
  267. private boolean lockZoom;
  268. private boolean rs3Camera;
  269. private boolean taskCompletePopup;
  270. private boolean taskInformationWindow;
  271. private boolean tooglePlayerNotification;
  272. private boolean toogleAbilityCooldownTimer;
  273. private boolean skillTargetBasedXPPopup;
  274. private boolean toggleBuffTimers;
  275. private byte utcClock;
  276.  
  277. //perks
  278. private boolean avaBypass;
  279. private boolean onTheGo;
  280. private boolean godwarsBypass;
  281.  
  282. //divination
  283. public boolean HarvestingEnriched;
  284. public boolean createdFlickeringBoon;
  285. public boolean createdBrightBoon;
  286. public boolean createdGlowingBoon;
  287. public boolean createdSparklingBoon;
  288. public boolean createdGleamingBoon;
  289. public boolean createdVibrantBoon;
  290. public boolean createdLustrousBoon;
  291. public boolean createdBrilliantBoon;
  292. public boolean createdRadiantBoon;
  293. public boolean createdLuminousBoon;
  294. public boolean createdIncandescentBoon;
  295.  
  296.  
  297. //Donationranktoggle
  298. public boolean toggleDonator;
  299. //Lootbeam
  300. public int donation;
  301. public int setLootBeam;
  302. // rs3 chat settings
  303. private boolean alwaysOnChatMode;
  304.  
  305. private int privateChatSetup;
  306. private int friendChatSetup;
  307. private int clanChatSetup;
  308. private int guestChatSetup;
  309. private int skullDelay;
  310. private int skullId;
  311.  
  312. private int loginCount;
  313. private boolean forceNextMapLoadRefresh;
  314. private boolean killedQueenBlackDragon;
  315. private int runeSpanPoints;
  316. private int pestPoints;
  317. private int stealingCreationPoints;
  318. private int favorPoints;
  319. private double[] warriorPoints;
  320. private boolean[] prayerBook;
  321. private int previousLodestone;
  322. private boolean instantSwitchToLegacy;
  323.  
  324. private boolean craftedArtisan;
  325. private boolean craftedCombatant;
  326. private boolean craftedGatherer;
  327. private boolean craftedSupport;
  328.  
  329. // shop
  330. private boolean verboseShopDisplayMode;
  331.  
  332. private long lastStarSprite;
  333. private long lastBork;
  334.  
  335. private int[] pouches;
  336.  
  337. // game bar status
  338. private int gameStatus;
  339. private int publicStatus;
  340. private int personalStatus;
  341. private int clanStatus;
  342. private int tradeStatus;
  343. private int assistStatus;
  344. private int friendsChatStatus;
  345.  
  346. // honor
  347. private int killCount, deathCount;
  348. private long lastArtefactTime;
  349.  
  350. private ChargesManager charges;
  351. // barrows
  352. private boolean[] killedBarrowBrothers;
  353. private int hiddenBrother;
  354. private int barrowsKillCount;
  355. // strongholdofsecurity rewards
  356. private boolean[] shosRewards;
  357. private boolean killedLostCityTree;
  358. //slayercorruption
  359. private boolean corruptedSlayer;
  360.  
  361. // skill capes customizing
  362. private int[] maxedCapeCustomized;
  363. private int[] completionistCapeCustomized;
  364.  
  365. // completionistcape reqs
  366. private boolean completedFightCaves;
  367. private boolean completedFightKiln;
  368. private boolean wonFightPits;
  369. private boolean completedStealingCreation;
  370. private boolean capturedCastleWarsFlag;
  371. private int receivedCompletionistCape;
  372. private boolean killedWildyWyrm;
  373. private boolean foundShootingStar;
  374.  
  375. // starter
  376. boolean finishedStarterGuide;
  377. boolean canEnterStartPortal;
  378.  
  379. // trimmed compcape
  380. private int finishedCastleWars;
  381. private int finishedStealingCreations;
  382.  
  383. // crucible
  384. private boolean talkedWithMarv;
  385. private int crucibleHighScore;
  386.  
  387. private int ecoClearStage;
  388.  
  389. // gravestone
  390. private int graveStone;
  391.  
  392. private String lastFriendsChat;
  393. private int lastFriendsChatRank = -1;
  394. private String clanName;// , guestClanChat;
  395. private boolean connectedClanChannel;
  396. private boolean isOwner;
  397. private int summoningLeftClickOption;
  398. private transient boolean pouchFilter;
  399. private List<String> ownedObjectsManagerKeys;
  400. //bonds
  401. private int bonds;
  402. private long xptimer;
  403. /**
  404. * Objects
  405. */
  406. //prestige
  407. private transient Prestige prestige;
  408. private int prestigeLevel;
  409. private boolean trueHardMode;
  410.  
  411. //QuestPoints
  412. public int questPoints;
  413.  
  414. //Cover of Darkness
  415. private boolean CoDComplete;
  416. private boolean startedCoverofDarkness;
  417. private boolean coverIntro;
  418. public int energyCount;
  419. private boolean nightMode;
  420. private boolean ingridientsSearch;
  421. private boolean canSleep;
  422. private boolean knowsHowToOpen;
  423. private boolean hasFixedBust;
  424. private boolean hasKilledBoss;
  425. private boolean part7;
  426. private boolean part8;
  427.  
  428. //Demands of Monarchy
  429. private boolean roaldDemands;
  430. private boolean killedDragith;
  431. private boolean finishedFather;
  432. private boolean canFightCaptain;
  433. private boolean beginSearch;
  434. private boolean collectedParts;
  435. private boolean prayedFor;
  436. private boolean DOMComplete;
  437. // kalphite
  438. private boolean khalphiteLairEntranceSetted;
  439. private boolean khalphiteLairSetted;
  440. private boolean kalphitetunnel;
  441.  
  442.  
  443. // kalphiteking
  444. private boolean khalphiteKingEntranceSetted;
  445. private boolean khalphiteKingSetted;
  446.  
  447.  
  448. //clues
  449. public int cluenoreward;
  450. // red sandstone
  451. private int redStoneCount;
  452. private long redStoneDelay;
  453.  
  454. private boolean xpLocked;
  455. private boolean yellOff;
  456.  
  457. private String yellColor = "ff0000";
  458. private boolean oldItemsLook; // selects whenever to play with old or new
  459. // items visual
  460.  
  461. // old voting variables
  462. @SuppressWarnings("unused")
  463. private long voted;
  464. private int votes;
  465. @SuppressWarnings("unused")
  466. private int votePoints;
  467. private boolean enteredDonatorZone;
  468.  
  469. private String lastGameIp;
  470. private String lastGameMAC;
  471. private transient boolean masterLogin;
  472. private long lastGameLogin;
  473.  
  474. private int xpRateMode;
  475.  
  476. private long onlineTime;
  477.  
  478. private String lastBossInstanceKey;
  479. private InstanceSettings lastBossInstanceSettings;
  480.  
  481. // new nsi system
  482. private Map<Integer, Integer> iLayoutVars;
  483.  
  484. // creates Player and saved classes
  485. public Player() {
  486. super(Settings.NEW_PLAYER_LOCATION);
  487. super.setHitpoints(Settings.START_PLAYER_HITPOINTS);
  488. appearence = new Appearence();
  489. inventory = new Inventory();
  490. moneyPouch = new MoneyPouch();
  491. equipment = new Equipment();
  492. skills = new Skills();
  493. combatDefinitions = new CombatDefinitions();
  494. prayer = new Prayer();
  495. bank = new Bank();
  496. controlerManager = new ControlerManager();
  497. musicsManager = new MusicsManager();
  498. emotesManager = new EmotesManager();
  499. notes = new Notes();
  500. toolbelt = new Toolbelt();
  501. dominionTower = new DominionTower();
  502. charges = new ChargesManager();
  503. auraManager = new AuraManager();
  504. questManager = new QuestManager();
  505. petManager = new PetManager();
  506. farmingManager = new FarmingManager();
  507. geManager = new GrandExchangeManager();
  508. slayerManager = new SlayerManager();
  509. squealOfFortune = new SquealOfFortune();
  510. treasureTrailsManager = new TreasureTrailsManager();
  511. coalTrucksManager = new CoalTrucksManager();
  512. dungManager = new DungManager();
  513. house = new House();
  514. actionbar = new ActionBar();
  515. doomsayerManager = new DoomsayerManager();
  516. timersManager = new TimersManager();
  517. playerExamineManager = new PlayerExamineManager();
  518. cosmeticsManager = new CosmeticsManager();
  519. runEnergy = 100;
  520. allowChatEffects = true;
  521. mouseButtons = true;
  522. profanityFilter = true;
  523. guidanceSystemHints = true;
  524. toogleQuickChat = true;
  525. makeXProgressWindow = true;
  526. taskInformationWindow = true;
  527. rs3Camera = true;
  528. targetReticules = true;
  529. alwaysShowTargetInformation = true;
  530. toggleBuffTimers = true;
  531. utcClock = 1;
  532. pouches = new int[4];
  533. resetBarrows();
  534. shosRewards = new boolean[4];
  535. warriorPoints = new double[6];
  536. subMenus = new int[9];
  537. prayerBook = new boolean[PrayerBooks.BOOKS.length];
  538. SkillCapeCustomizer.resetSkillCapes(this);
  539. ownedObjectsManagerKeys = new LinkedList<String>();
  540. resetILayoutVars();
  541. setEcoClearStage(10);
  542. }
  543.  
  544. public void init(Session session, boolean lobby, String username, String displayName, String lastGameMAC,
  545. String email, int rights, int messageIcon, boolean masterLogin, boolean donator, boolean extremeDonator,
  546. boolean support, boolean gfxDesigner, boolean muted, long lastVote, int displayMode, int screenWidth,
  547. int screenHeight, MachineInformation machineInformation, IsaacKeyPair isaacKeyPair) {
  548. // temporary deleted after reset all chars
  549. if (doomsayerManager == null)
  550. doomsayerManager = new DoomsayerManager();
  551. if (timersManager == null)
  552. timersManager = new TimersManager();
  553. if (playerExamineManager == null)
  554. playerExamineManager = new PlayerExamineManager();
  555. if (cosmeticsManager == null)
  556. cosmeticsManager = new CosmeticsManager();
  557. if (prestige == null)
  558. prestige = new Prestige();
  559.  
  560. this.session = session;
  561. this.lobby = lobby;
  562. this.username = username;
  563. this.displayName = displayName;
  564. this.email = email;
  565. this.rights = rights;
  566. this.masterLogin = masterLogin;
  567. this.messageIcon = messageIcon;
  568. this.isSupporter = support;
  569. this.isGraphicDesigner = gfxDesigner;
  570. this.muted = muted;
  571. this.lastVote = lastVote;
  572. this.lastGameMAC = lastGameMAC;
  573. this.displayMode = displayMode;
  574. this.screenWidth = screenWidth;
  575. this.screenHeight = screenHeight;
  576. this.machineInformation = machineInformation;
  577. this.isaacKeyPair = isaacKeyPair;
  578.  
  579. interfaceManager = new InterfaceManager(this);
  580. dialogueManager = new DialogueManager(this);
  581. hintIconsManager = new HintIconsManager(this);
  582. priceCheckManager = new PriceCheckManager(this);
  583. localPlayerUpdate = new LocalPlayerUpdate(this);
  584. localNPCUpdate = new LocalNPCUpdate(this);
  585. actionManager = new ActionManager(this);
  586. cutscenesManager = new CutscenesManager(this);
  587. trade = new Trade(this);
  588. varsManager = new VarsManager(this);
  589. friendsIgnores = new FriendsIgnores(this);
  590. // loads player on saved instances
  591. appearence.setPlayer(this);
  592. inventory.setPlayer(this);
  593. moneyPouch.setPlayer(this);
  594. equipment.setPlayer(this);
  595. prestige.setPlayer(this);
  596. skills.setPlayer(this);
  597. combatDefinitions.setPlayer(this);
  598. prayer.setPlayer(this);
  599. bank.setPlayer(this);
  600. controlerManager.setPlayer(this);
  601. musicsManager.setPlayer(this);
  602. emotesManager.setPlayer(this);
  603. notes.setPlayer(this);
  604. toolbelt.setPlayer(this);
  605. dominionTower.setPlayer(this);
  606. auraManager.setPlayer(this);
  607. charges.setPlayer(this);
  608. questManager.setPlayer(this);
  609. petManager.setPlayer(this);
  610. house.setPlayer(this);
  611. actionbar.setPlayer(this);
  612. doomsayerManager.setPlayer(this);
  613. timersManager.setPlayer(this);
  614. playerExamineManager.setPlayer(this);
  615. cosmeticsManager.setPlayer(this);
  616. farmingManager.setPlayer(this);
  617. geManager.setPlayer(this);
  618. slayerManager.setPlayer(this);
  619. squealOfFortune.setPlayer(this);
  620. treasureTrailsManager.setPlayer(this);
  621. coalTrucksManager.setPlayer(this);
  622. dungManager.setPlayer(this);
  623. initEntity(); // generates hash thats why
  624. if (!lobby) {
  625. setDirection(Utils.getAngle(0, -1));
  626. logicPackets = new ConcurrentLinkedQueue<LogicPacket>();
  627. switchItemCache = Collections.synchronizedList(new ArrayList<Integer>());
  628. World.addPlayer(this);
  629. World.updateEntityRegion(this);
  630. } else {
  631. World.addLobbyPlayer(this);
  632. }
  633. if (Settings.DEBUG)
  634. Logger.log(this, "Initiated player: " + username);
  635.  
  636. }
  637.  
  638. public void setWildernessSkull() {
  639. skullDelay = 3000; // 30minutes
  640. skullId = 0;
  641. appearence.generateIconsData();
  642. }
  643.  
  644.  
  645. public boolean getVoteXp(){
  646. return votingXP;
  647. }
  648.  
  649. public void setVoteXp(){
  650. this.votingXP = true;
  651. }
  652.  
  653. public void removeVoteXp(){
  654. this.votingXP = false;
  655. }
  656.  
  657.  
  658. public void setFightPitsSkull() {
  659. skullDelay = Integer.MAX_VALUE; // infinite
  660. skullId = 1;
  661. appearence.generateIconsData();
  662. }
  663.  
  664. public void setSkullInfiniteDelay(int skullId) {
  665. skullDelay = Integer.MAX_VALUE; // infinite
  666. this.skullId = skullId;
  667. appearence.generateIconsData();
  668. }
  669.  
  670. public void removeSkull() {
  671. skullDelay = -1;
  672. appearence.generateIconsData();
  673. }
  674.  
  675. public boolean hasSkull() {
  676. return skullDelay > 0;
  677. }
  678.  
  679. public int setSkullDelay(int delay) {
  680. return this.skullDelay = delay;
  681. }
  682.  
  683. public void completeReset() {
  684. bank = new Bank();
  685. bank.setPlayer(this);
  686. equipment.reset();
  687. inventory.reset();
  688. moneyPouch.setCoinsAmount(0);
  689. actionbar = new ActionBar();
  690. actionbar.setPlayer(this);
  691. for (int skill = 0; skill < 25; skill++) {
  692. skills.setXp(skill, 0);
  693. skills.set(skill, 1);
  694. }
  695. skills.init();
  696. }
  697.  
  698. public void refreshSpawnedItems() {
  699. for (int regionId : getMapRegionsIds()) {
  700. List<FloorItem> floorItems = World.getRegion(regionId).getGroundItems();
  701. if (floorItems == null)
  702. continue;
  703. for (FloorItem item : floorItems) {
  704. if (item.isInvisible() && (item.hasOwner() && !getUsername().equals(item.getOwner())))
  705. continue;
  706. getPackets().sendRemoveGroundItem(item);
  707. }
  708. }
  709. for (int regionId : getMapRegionsIds()) {
  710. List<FloorItem> floorItems = World.getRegion(regionId).getGroundItems();
  711. if (floorItems == null)
  712. continue;
  713. for (FloorItem item : floorItems) {
  714. if ((item.isInvisible()) && (item.hasOwner() && !getUsername().equals(item.getOwner())))
  715. continue;
  716. getPackets().sendGroundItem(item);
  717. }
  718. }
  719. }
  720.  
  721. public void refreshSpawnedObjects() {
  722. for (int regionId : getMapRegionsIds()) {
  723. List<WorldObject> removedObjects = World.getRegion(regionId).getRemovedOriginalObjects();
  724. for (WorldObject object : removedObjects)
  725. getPackets().sendRemoveObject(object);
  726. List<WorldObject> spawnedObjects = World.getRegion(regionId).getSpawnedObjects();
  727. for (WorldObject object : spawnedObjects)
  728. getPackets().sendAddObject(object);
  729. }
  730. }
  731.  
  732. // now that we inited we can start showing game
  733. public void start() {
  734. Logger.globalLog(username, session.getIP(), new String(" has logged in."));
  735. loadMapRegions();
  736. started = true;
  737. run();
  738. }
  739.  
  740.  
  741. public boolean kalphiteTunnel(){
  742. return kalphitetunnel;
  743. }
  744.  
  745. public void startLobby() {
  746. started = true;
  747. sendLobbyVars();
  748. runLobby();
  749. // fix to stuck cuz ofv ars dumping
  750. // if(getRights() == 2)
  751. // resetILayoutVars();
  752. }
  753.  
  754. public void runLobby() {
  755.  
  756. interfaceManager.sendInterfaces();
  757.  
  758. if (GameLauncher.delayedShutdownStart != 0) {
  759. int delayPassed = (int) ((Utils.currentTimeMillis() - GameLauncher.delayedShutdownStart) / 1000);
  760. getPackets().sendSystemUpdate(GameLauncher.delayedShutdownDelay - delayPassed, true);
  761. }
  762.  
  763. friendsIgnores = new FriendsIgnores(this);
  764.  
  765. if (lastFriendsChat != null) {
  766. FriendsChat.requestJoin(this, lastFriendsChat);
  767. lastFriendsChat = null;
  768. }
  769. if (clanName != null) {
  770. if (!ClansManager.connectToClan(this, clanName, false))
  771. clanName = null;
  772. }
  773.  
  774. /*
  775. * friendsIgnores.init(); if (currentFriendChatOwner != null) {
  776. * FriendChatsManager.joinChat(currentFriendChatOwner, this); if
  777. * (currentFriendChat == null) // failed currentFriendChatOwner = null;
  778. * } // connect to current clan if (clanName != null) { if
  779. * (!ClansManager.connectToClan(this, clanName, false)) clanName = null;
  780. * }
  781. */
  782.  
  783. }
  784.  
  785. private void sendLobbyVars() {
  786. getPackets().refreshLobbyInformation();
  787. // black screen if those not enabled
  788.  
  789. getVarsManager().sendVar(1751, 6757431); // x
  790. getVarsManager().sendVar(1752, 6766321);// y
  791.  
  792. getVarsManager().sendVar(1753, 225);
  793. getVarsManager().sendVar(1754, 69);
  794.  
  795. // 1 - normal login. 2 ask for email(+ reason in varbit 16465)
  796. getVarsManager().sendVarBit(16464, 1);
  797.  
  798. getVarsManager().sendVarBit(16465, 0);
  799.  
  800. getPackets().sendCSVarInteger(3905, -1);// Enables banner clicking &
  801. // middle banner
  802. getPackets().sendCSVarInteger(4266, 0);// Treasure chest key amount
  803. getPackets().sendCSVarInteger(4267, 0);// Treasure chest heart amount
  804. getPackets().sendCSVarInteger(4263, -1);// Enables Treasure trail banner
  805. getPackets().sendCSVarInteger(4264, -1);// Boss pets display
  806. getPackets().sendCSVarInteger(4265, -1);// Enables second right banner
  807. getPackets().sendCSVarInteger(4660, 0);// Loyalty Points
  808. getPackets().sendCSVarInteger(4659, 0);// Runecoins
  809.  
  810. getPackets().sendCSVarString(2508, displayName);
  811. // script_10012
  812.  
  813. }
  814.  
  815. public void stopAll() {
  816. stopAll(true);
  817. }
  818.  
  819. public void stopAll(boolean stopWalk) {
  820. stopAll(stopWalk, true);
  821. }
  822.  
  823. public void stopAll(boolean stopWalk, boolean stopInterface) {
  824. stopAll(stopWalk, stopInterface, true);
  825. }
  826.  
  827. // as walk done clientsided
  828. public void stopAll(boolean stopWalk, boolean stopInterfaces, boolean stopActions) {
  829. routeEvent = null;
  830. if (stopInterfaces)
  831. closeInterfaces();
  832. if (stopWalk && !cantWalk)
  833. resetWalkSteps();
  834. if (stopActions)
  835. actionManager.forceStop();
  836. combatDefinitions.resetSpells(false);
  837. }
  838.  
  839. @Override
  840. public void setHitpoints(int hitpoints) {
  841. super.setHitpoints(hitpoints);
  842. refreshHitPoints();
  843. }
  844.  
  845. @Override
  846. public void reset(boolean attributes) {
  847. super.reset(attributes);
  848. hintIconsManager.removeAll();
  849. skills.restoreSkills();
  850. combatDefinitions.resetSpecialAttack();
  851. prayer.reset();
  852. combatDefinitions.resetSpells(false);
  853. resting = 0;
  854. skullDelay = 0;
  855. foodDelay = 0;
  856. potDelay = 0;
  857. castedVeng = false;
  858. cantWalk = false;
  859. setRunEnergy(100);
  860. appearence.generateAppearenceData();
  861. appearence.generateIconsData();
  862. }
  863.  
  864. @Override
  865. public void reset() {
  866. reset(true);
  867. }
  868.  
  869. public void closeInterfaces() {
  870. if (interfaceManager.containsScreenInterface())
  871. interfaceManager.removeCentralInterface();
  872. if (interfaceManager.containsBankInterface())
  873. interfaceManager.removeBankInterface();
  874. if (interfaceManager.containsInventoryInter())
  875. interfaceManager.removeInventoryInterface();
  876. if (interfaceManager.containsInputTextInterface())
  877. interfaceManager.removeInputTextInterface();
  878. if (interfaceManager.containsWorldMapInterface())
  879. interfaceManager.removeWorldMapInterface();
  880. dialogueManager.finishDialogue();
  881. if (closeInterfacesEvent != null) {
  882. closeInterfacesEvent.run();
  883. closeInterfacesEvent = null;
  884. }
  885. }
  886.  
  887. public void setClientHasntLoadedMapRegion() {
  888. clientLoadedMapRegion = Utils.currentWorldCycle() + 30;
  889. }
  890.  
  891. @Override
  892. public void loadMapRegions() {
  893. boolean wasAtDynamicRegion = isAtDynamicRegion();
  894. super.loadMapRegions();
  895. setClientHasntLoadedMapRegion();
  896. if (isAtDynamicRegion()) {
  897. getPackets().sendDynamicGameScene(!started);
  898. if (!wasAtDynamicRegion)
  899. localNPCUpdate.reset();
  900. } else {
  901. getPackets().sendGameScene(!started);
  902. if (wasAtDynamicRegion)
  903. localNPCUpdate.reset();
  904. }
  905. forceNextMapLoadRefresh = false;
  906. }
  907.  
  908. public void addAdrenalineBar() {
  909. if (getNextHitBars().isEmpty())
  910. getNextHitBars().add(new AdrenalineHitBar(this));
  911. }
  912.  
  913. public void processLogicPackets() {
  914. LogicPacket packet;
  915. while ((packet = logicPackets.poll()) != null)
  916. WorldPacketsDecoder.decodeLogicPacket(this, packet);
  917. }
  918.  
  919. public void processProjectiles() {
  920.  
  921. for (int regionId : getMapRegionsIds()) {
  922. Region region = World.getRegion(regionId);
  923. for (Projectile projectile : region.getProjectiles()) {
  924.  
  925. int fromSizeX, fromSizeY;
  926. if (projectile.getFrom() instanceof Entity)
  927. fromSizeX = fromSizeY = ((Entity) projectile.getFrom()).getSize();
  928. else if (projectile.getFrom() instanceof WorldObject) {
  929. ObjectDefinitions defs = ((WorldObject) projectile.getFrom()).getDefinitions();
  930. fromSizeX = defs.getSizeX();
  931. fromSizeY = defs.getSizeY();
  932. } else
  933. fromSizeX = fromSizeY = 1;
  934. int toSizeX, toSizeY;
  935. if (projectile.getTo() instanceof Entity)
  936. toSizeX = toSizeY = ((Entity) projectile.getTo()).getSize();
  937. else if (projectile.getTo() instanceof WorldObject) {
  938. ObjectDefinitions defs = ((WorldObject) projectile.getTo()).getDefinitions();
  939. toSizeX = defs.getSizeX();
  940. toSizeY = defs.getSizeY();
  941. } else
  942. toSizeX = toSizeY = 1;
  943.  
  944. getPackets().sendProjectileNew(projectile.getFrom(), fromSizeX, fromSizeY, projectile.getTo(), toSizeX,
  945. toSizeY, projectile.getFrom() instanceof Entity ? (Entity) projectile.getFrom() : null,
  946. projectile.getTo() instanceof Entity ? (Entity) projectile.getTo() : null,
  947. projectile.isAdjustFlyingHeight(), projectile.isAdjustSenderHeight(),
  948. projectile.getSenderBodyPart(), projectile.getGraphicId(), projectile.getStartHeight(),
  949. projectile.getEndHeight(), projectile.getStartTime(), projectile.getEndTime(),
  950. projectile.getSlope(), projectile.getAngle(), 0);
  951. }
  952. }
  953. }
  954.  
  955. @Override
  956. public void processEntityUpdate() {
  957. super.processEntityUpdate();
  958. }
  959.  
  960. @Override
  961. public void processEntity() {
  962. processLogicPackets();
  963. // actionbar.processQueuedShortcut();
  964. actionManager.process();
  965. if (routeEvent != null && routeEvent.processEvent(this))
  966. routeEvent = null;
  967. super.processEntity();
  968. charges.process();
  969. auraManager.process();
  970. timersManager.process();
  971. prayer.processPrayer();
  972. controlerManager.process();
  973. farmingManager.process();
  974. cutscenesManager.process();
  975. if (isDead())
  976. return;
  977. if (musicsManager.musicEnded())
  978. musicsManager.replayMusic();
  979. if (hasSkull()) {
  980. skullDelay--;
  981. if (!hasSkull())
  982. appearence.generateAppearenceData();
  983. }
  984. getCombatDefinitions().processCombatStance();
  985. }
  986.  
  987. @Override
  988. public void processReceivedHits() {
  989. if (isLocked())
  990. return;
  991. super.processReceivedHits();
  992. }
  993.  
  994. @Override
  995. public void applyHit(Hit hit) {
  996. Entity source = hit.getSource();
  997. if (source != this && source instanceof Player && !isCanPvp())
  998. return;
  999. super.applyHit(hit);
  1000. }
  1001.  
  1002. @Override
  1003. public void resetMasks() {
  1004. super.resetMasks();
  1005. /*
  1006. * if (!clientHasLoadedMapRegion()) { // load objects and items here
  1007. * setClientHasLoadedMapRegion(); refreshSpawnedObjects();
  1008. * refreshSpawnedItems(); }
  1009. */
  1010. }
  1011.  
  1012. public void toogleRun(boolean update) {
  1013. super.setRun(!getRun());
  1014. if (update)
  1015. sendRunButtonConfig();
  1016. }
  1017.  
  1018. public void setRunHidden(boolean run) {
  1019. super.setRun(run);
  1020. }
  1021.  
  1022. @Override
  1023. public void setRun(boolean run) {
  1024. if (run != getRun()) {
  1025. super.setRun(run);
  1026. sendRunButtonConfig();
  1027. }
  1028. }
  1029.  
  1030. public void sendRunButtonConfig() {
  1031. getVarsManager().sendVar(463, resting == 1 ? 3 : resting == 2 ? 4 : getRun() ? 1 : 0);
  1032. }
  1033.  
  1034. public void restoreRunEnergy() {
  1035. if (getNextRunDirection() != -1 || runEnergy >= 100)
  1036. return;
  1037. runEnergy++;
  1038. getPackets().sendRunEnergy();
  1039. }
  1040.  
  1041. /*
  1042. * notice this may end up not being called if player dcs at same time he
  1043. * logs in use it just for stuff that cant be sent right away
  1044. */
  1045. public void runAfterLoad() {
  1046. interfaceManager.refreshInterface(true);
  1047. skills.sendCombatLevel();
  1048. runAfterLoad = true;
  1049. }
  1050.  
  1051. public void run() {
  1052. if (!masterLogin)
  1053. lastGameIp = getSession().getIP();
  1054. lastGameLogin = Utils.currentTimeMillis();
  1055. loginCount += 1;
  1056. // welcomeScreen = true;
  1057. refreshInterfaceVars();
  1058. interfaceManager.sendInterfaces();
  1059.  
  1060. // getInterfaceManager().setScreenInterface(false, 96, 1225);
  1061. // getPackets().sendIComponentText(1225, 5, "You last logged in from:
  1062. // "+(this.getLastIP() == null ? "Nowhere" : this.getLastIP()));
  1063. // getPackets().sendIComponentText(1225, 21, Settings.LASTEST_UPDATE);
  1064. // getPackets().sendIComponentText(1225, 22, ("You are playing with " +
  1065. // (isOldItemsLook() ? "old" : "new") + " item looks. Type
  1066. // ::switchitemslook if you wish to switch."));
  1067.  
  1068. // interfaceManager.removeScreenInterfaceBG();
  1069. if (GameLauncher.delayedShutdownStart != 0) {
  1070. int delayPassed = (int) ((Utils.currentTimeMillis() - GameLauncher.delayedShutdownStart) / 1000);
  1071. getPackets().sendSystemUpdate(GameLauncher.delayedShutdownDelay - delayPassed, false);
  1072. }
  1073.  
  1074.  
  1075.  
  1076. /*
  1077. * if (hasEmailRestrictions() && controlerManager.getControler() == null
  1078. * && !cutscenesManager.hasCutscene()) {
  1079. * getInterfaceManager().setScreenInterface(false, 96, 329);
  1080. * getPackets().sendIComponentText(329, 14,
  1081. * "<col=CD0000>Warning! Protect your account now!");//Title
  1082. * getPackets().sendIComponentText(329, 45, "");
  1083. * getPackets().sendIComponentText(329, 46, "");
  1084. * getPackets().sendIComponentText(329, 47,
  1085. * "Register an e-mail now in order to receive:");
  1086. * getPackets().sendIComponentText(329, 48, "* Unrestricted bank space"
  1087. * ); getPackets().sendIComponentText(329, 49,
  1088. * "* Daily squeal of fortune spins");
  1089. * getPackets().sendIComponentText(329, 50,
  1090. * "* Protect your account from identity theft");
  1091. *
  1092. * getPackets().sendIComponentText(329, 44, "Protect me now!");//Second
  1093. * button if (isDonator()) { getPackets().sendHideIComponent(329, 0,
  1094. * true); } else getPackets().sendIComponentText(329, 15,
  1095. * "Upgrade rank!");//Second Button }
  1096. */
  1097. getPackets().sendRunEnergy();
  1098. getPackets().sendItemsLook();
  1099.  
  1100. refreshAllowChatEffects();
  1101. refreshAcceptAid();
  1102. refreshRightClickReporting();
  1103. refreshMouseButtons();
  1104. refreshHideFamiliarOptions();
  1105. refreshGuidanceSystemHints();
  1106. refreshToogleQuickChat();
  1107. refreshProfanityFilter();
  1108. refreshLockZoom();
  1109. refreshCameraType();
  1110. refreshChatsSetup();
  1111. sendRunButtonConfig();
  1112. Familiar.refreshDefaultPetOptions(this);
  1113. getPackets().sendGameMessage("Welcome to " + Settings.SERVER_NAME + ".");
  1114. getPackets().sendGameMessage(Settings.LATEST_UPDATE);
  1115. sendDefaultPlayersOptions();
  1116. inventory.init();
  1117. moneyPouch.init();
  1118. equipment.checkItems();
  1119. equipment.init();
  1120. bank.init();
  1121. skills.init();
  1122. combatDefinitions.init();
  1123. prayer.init();
  1124. refreshHitPoints();
  1125. warriorCheck();
  1126. prayer.refreshPrayerPoints();
  1127. getVarsManager().sendVar(1295, 1000); // unlock cant do this under // tutorial for chat
  1128. getVarsManager().sendVarBit(20940, 120); // unlocks new tut
  1129. getPackets().sendGameBarStages();
  1130. musicsManager.init();
  1131. emotesManager.init();
  1132. questManager.init();
  1133. notes.init();
  1134. house.init();
  1135. actionbar.init();
  1136. doomsayerManager.init();
  1137. timersManager.init();
  1138. playerExamineManager.init();
  1139. cosmeticsManager.init();
  1140. farmingManager.init();
  1141. toolbelt.init();
  1142. geManager.init();
  1143. coalTrucksManager.init();
  1144. refreshBuffs();
  1145. ItemRemover.check(this);
  1146. sendUnlockedObjectConfigs();
  1147.  
  1148. friendsIgnores.initialize();
  1149. if (lastFriendsChat != null) {
  1150. FriendsChat.requestJoin(this, lastFriendsChat);
  1151. lastFriendsChat = null;
  1152. }
  1153. if (clanName != null) {
  1154. if (!ClansManager.connectToClan(this, clanName, false))
  1155. clanName = null;
  1156. }
  1157.  
  1158.  
  1159.  
  1160.  
  1161. /*
  1162. * friendsIgnores.init(); if (currentFriendChatOwner != null) {
  1163. * FriendChatsManager.joinChat(currentFriendChatOwner, this); if
  1164. * (currentFriendChat == null) // failed currentFriendChatOwner = null;
  1165. * } // connect to current clan if (clanName != null) { if
  1166. * (!ClansManager.connectToClan(this, clanName, false)) clanName = null;
  1167. * }
  1168. */
  1169. if (Skills.isWeekend()){
  1170. getPackets().sendGameMessage("Double Xp Weekend is Active!");
  1171. }
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177. if (familiar != null)
  1178. familiar.respawnFamiliar(this);
  1179. else
  1180. petManager.init();
  1181. running = true;
  1182. appearence.generateAppearenceData();
  1183. appearence.generateIconsData();
  1184. controlerManager.login(); // checks what to do on login after welcome
  1185. OwnedObjectManager.linkKeys(this);
  1186. GraveStone.linkPlayer(this);
  1187. // screen
  1188. if (machineInformation != null)
  1189. machineInformation.sendSuggestions(this);
  1190.  
  1191. squealOfFortune.giveDailySpins();
  1192.  
  1193. if (isDead())
  1194. sendDeath(null);
  1195.  
  1196. }
  1197.  
  1198. private void sendUnlockedObjectConfigs() {
  1199. refreshKalphiteLairEntrance();
  1200. refreshKalphiteLair();
  1201. refreshLodestoneNetwork();
  1202. refreshFightKilnEntrance();
  1203. refreshLairofTarnRazorlorEntrance();
  1204. refreshKalphiteKingEntrance();
  1205. refreshTreeofJadinko();
  1206. }
  1207.  
  1208. private void refreshTreeofJadinko() {
  1209. getVarsManager().sendVar(9513, 1);
  1210. }
  1211.  
  1212. private void refreshLairofTarnRazorlorEntrance() {
  1213. getVarsManager().sendVar(382, 11);
  1214. }
  1215.  
  1216. private void refreshLodestoneNetwork() {
  1217. getVarsManager().sendVar(3, -1); // unlocks all lodestone teleports
  1218. getVarsManager().sendVarBit(9482, 15); // bandit lodestone, desert
  1219. // treasure q
  1220. getVarsManager().sendVarBit(10236, 190); // lunar isle lodestone,
  1221. // diplomacy q
  1222. }
  1223.  
  1224. private void refreshKalphiteLair() {
  1225. if (khalphiteLairSetted)
  1226. getVarsManager().sendVarBit(16280, 1);
  1227. }
  1228.  
  1229. public void setKalphiteLair() {
  1230. khalphiteLairSetted = true;
  1231. refreshKalphiteLair();
  1232. }
  1233.  
  1234. private void refreshFightKilnEntrance() {
  1235. if (completedFightCaves)
  1236. getVarsManager().sendVarBit(3910, 1);
  1237. }
  1238.  
  1239. private void refreshKalphiteLairEntrance() {
  1240. if (khalphiteLairEntranceSetted)
  1241. getVarsManager().sendVarBit(16281, 1);
  1242. }
  1243.  
  1244. public void setKalphiteLairEntrance() {
  1245. khalphiteLairEntranceSetted = true;
  1246. refreshKalphiteLairEntrance();
  1247. }
  1248.  
  1249. public boolean isKalphiteLairEntranceSetted() {
  1250. return khalphiteLairEntranceSetted;
  1251. }
  1252.  
  1253. public boolean isKalphiteLairSetted() {
  1254. return khalphiteLairSetted;
  1255. }
  1256.  
  1257.  
  1258. public void setKalphiteKing() {
  1259. khalphiteKingSetted = true;
  1260. refreshKalphiteLair();
  1261. }
  1262.  
  1263.  
  1264. private void refreshKalphiteKingEntrance() {
  1265. if (khalphiteKingEntranceSetted)
  1266. getVarsManager().sendVarBit(16281, 1);
  1267. }
  1268.  
  1269.  
  1270. public boolean isKalphiteKingSetted() {
  1271. return khalphiteKingSetted;
  1272. }
  1273.  
  1274. public void sendDefaultPlayersOptions() {
  1275. getPackets().sendPlayerOption("Follow", 2, false);
  1276. getPackets().sendPlayerOption("Trade with", 4, false);
  1277. if (assistStatus != 2)
  1278. sendAssistOption();
  1279. getPackets().sendPlayerOption("Examine", 6, false);
  1280. }
  1281.  
  1282. public void sendAssistOption() {
  1283. getPackets().sendPlayerOption(assistStatus == 2 ? "null" : "Req Assist", 5, false);
  1284. }
  1285.  
  1286. /**
  1287. * Logs the player out.
  1288. *
  1289. * @param lobby
  1290. * If we're logging out to the lobby.
  1291. */
  1292. public void logout(boolean lobby) {
  1293. if (!running || !started)
  1294. return;
  1295. long currentTime = Utils.currentTimeMillis();
  1296. if (getAttackedByDelay() + 10000 > currentTime) {
  1297. getPackets().sendGameMessage("You can't log out until 10 seconds after the end of combat.");
  1298. return;
  1299. }
  1300. if (getEmotesManager().getNextEmoteEnd() >= currentTime) {
  1301. getPackets().sendGameMessage("You can't log out while performing an emote.");
  1302. return;
  1303. }
  1304. if (isLocked()) {
  1305. getPackets().sendGameMessage("You can't log out while performing an action.");
  1306. return;
  1307. }
  1308. disconnect(false, lobby);
  1309. }
  1310.  
  1311. public void disconnect(boolean immediate, boolean lobby) {
  1312. immediateFinish = immediate;
  1313. ChannelFuture future = getPackets().sendLogout(lobby);
  1314. if (isLobby() || immediate) { // worldthread does this anyway, so just
  1315. // need to send packet for normal logout
  1316. if (future == null)
  1317. getSession().getChannel().close();
  1318. else
  1319. future.addListener(ChannelFutureListener.CLOSE);
  1320. }
  1321. }
  1322.  
  1323. private transient boolean immediateFinish;
  1324. private transient boolean finishing;
  1325.  
  1326. public boolean canEnterPrifdinnas;
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334. @Override
  1335. public void finish() {
  1336. finish(0);
  1337. }
  1338.  
  1339. public boolean isFinishing() {
  1340. return finishing;
  1341. }
  1342.  
  1343. public void finish(final int tryCount) {
  1344. if (finishing || hasFinished())
  1345. return;
  1346. finishing = true;
  1347. if (lobby) {
  1348. finishLobby();
  1349. return;
  1350. }
  1351. // if combating doesnt stop when xlog this way ends combat
  1352. stopAll(false, true, !(actionManager.getAction() instanceof PlayerCombatNew));
  1353.  
  1354. if (!immediateFinish && ((isDead() || isUnderCombat() || isLocked() || getEmotesManager().isDoingEmote()))
  1355. && tryCount < 4) {
  1356. GameExecutorManager.slowExecutor.schedule(new Runnable() {
  1357. @Override
  1358. public void run() {
  1359. try {
  1360. finishing = false;
  1361. finish(tryCount + 1);
  1362. } catch (Throwable e) {
  1363. Logger.handle(e);
  1364. }
  1365. }
  1366. }, 10, TimeUnit.SECONDS);
  1367. return;
  1368. }
  1369. realFinish();
  1370. }
  1371.  
  1372. public void finishLobby() {
  1373. if (hasFinished())
  1374. return;
  1375. /*
  1376. * friendsIgnores.sendFriendsMyStatus(false); if (currentFriendChat !=
  1377. * null) currentFriendChat.leaveChat(this, true); if (clanManager !=
  1378. * null) clanManager.disconnect(this, false);
  1379. */
  1380. if (currentFriendsChat != null)
  1381. FriendsChat.detach(this);
  1382. if (clanManager != null)
  1383. clanManager.disconnect(this, false);
  1384. setFinished(true);
  1385. session.getChannel().close();
  1386. PlayerHandlerThread.addLogout(this);
  1387. World.removeLobbyPlayer(this);
  1388. if (Settings.DEBUG)
  1389. Logger.log(this, "Finished Lobby Player: " + username);
  1390. }
  1391.  
  1392. public void realFinish() {
  1393. if (hasFinished())
  1394. return;
  1395. Logger.globalLog(username, session.getIP(), new String(" has logged out."));
  1396. // login
  1397. running = false;
  1398. stopAll();
  1399. onlineTime += getSessionTime();
  1400. cutscenesManager.logout();
  1401. controlerManager.logout(); // checks what to do on before logout for
  1402. house.finish();
  1403. dungManager.finish();
  1404. GrandExchange.unlinkOffers(this);
  1405.  
  1406. if (getXpRateMode() == 1){
  1407. new Thread(new Highscores(this)).start();
  1408. }
  1409. else if (getXpRateMode() == 2){
  1410. new Thread(new HighscoresNormal(this)).start();
  1411. }
  1412. else if (getXpRateMode() == 3){
  1413. new Thread(new HighscoresEasy(this)).start();
  1414. }
  1415.  
  1416.  
  1417.  
  1418. /*
  1419. * friendsIgnores.sendFriendsMyStatus(false); if (currentFriendChat !=
  1420. * null) currentFriendChat.leaveChat(this, true); if (clanManager !=
  1421. * null) clanManager.disconnect(this, false); if (guestClanManager !=
  1422. * null) guestClanManager.disconnect(this, true);
  1423. */
  1424. if (currentFriendsChat != null)
  1425. FriendsChat.detach(this);
  1426. if (clanManager != null)
  1427. clanManager.disconnect(this, false);
  1428. if (guestClanManager != null)
  1429. guestClanManager.disconnect(this, true);
  1430. if (familiar != null && !familiar.isFinished())
  1431. familiar.dissmissFamiliar(true);
  1432. else if (pet != null)
  1433. pet.finish();
  1434. if (slayerManager.getSocialPlayer() != null)
  1435. slayerManager.resetSocialGroup(true);
  1436. if (getNextWorldTile() != null)
  1437. setLocation(getNextWorldTile());
  1438. setFinished(true);
  1439. session.getChannel().close();
  1440. PlayerHandlerThread.addLogout(this);
  1441. World.updateEntityRegion(this);
  1442. World.removePlayer(this);
  1443. if (Settings.DEBUG)
  1444. Logger.log(this, "Finished Player: " + username);
  1445. }
  1446.  
  1447. public void refreshHitPoints() {
  1448. if (getVarsManager().sendVarBit(1668, getHitpoints()))
  1449. updateBuffs();
  1450. }
  1451.  
  1452. @Override
  1453. public int getMaxHitpoints() {
  1454. return skills.getLevel(Skills.HITPOINTS) * 100 + equipment.getEquipmentHpIncrease();
  1455. }
  1456.  
  1457. public String getUsername() {
  1458. return username;
  1459. }
  1460.  
  1461. @Override
  1462. public void processHit(Hit hit) {
  1463. if (appearence.isHidden())
  1464. return;
  1465. super.processHit(hit);
  1466. }
  1467.  
  1468. public int getRights() {
  1469. return rights;
  1470. }
  1471.  
  1472. public void setAvaBypass(){
  1473. this.avaBypass = true;
  1474. }
  1475.  
  1476. public boolean getAvaBypass(){
  1477. return avaBypass;
  1478. }
  1479.  
  1480.  
  1481. public void setOnTheGo(){
  1482. this.onTheGo = true;
  1483. }
  1484.  
  1485. public boolean getOnTheGo(){
  1486. return onTheGo;
  1487. }
  1488.  
  1489.  
  1490. public void setGodwarsBypass(){
  1491. this.godwarsBypass = true;
  1492. }
  1493.  
  1494. public boolean getGodwarsbypass(){
  1495. return godwarsBypass;
  1496. }
  1497.  
  1498.  
  1499.  
  1500. public void setRights(int rights) {
  1501. this.rights = rights;
  1502. }
  1503.  
  1504.  
  1505. public int getMessageIcon() {
  1506. return getRights() == 2 || getRights() == 1 ? getRights(): isDonator() ? 9 : isSuperDonator() ? 9 : isExtremeDonator() ? 9 : isLegendaryDonator() ? 9 : isOneAboveAll() ? 9 :getRights();
  1507. }
  1508.  
  1509. public void setMessageIcon(int icon) {
  1510. this.messageIcon = icon;
  1511. }
  1512.  
  1513. public WorldPacketsEncoder getPackets() {
  1514. return session.getWorldPackets();
  1515. }
  1516.  
  1517. public boolean hasStarted() {
  1518. return started;
  1519. }
  1520.  
  1521. public boolean isRunning() {
  1522. return running;
  1523. }
  1524.  
  1525. public String getEmail() {
  1526. return email;
  1527. }
  1528.  
  1529.  
  1530.  
  1531. public String rankName(){
  1532. if (isDonator()){
  1533. return Donator;
  1534. }
  1535. else if (isSuperDonator()){
  1536. return SuperDonator;
  1537. }
  1538. else if (isExtremeDonator()){
  1539. return ExtremeDonator;
  1540. }
  1541. else if (isLegendaryDonator()){
  1542. return LegendaryDonator;
  1543. }
  1544. else if (isOneAboveAll()){
  1545. return OneAboveAll;
  1546. }
  1547. return Regular;
  1548. }
  1549.  
  1550.  
  1551. public String getDisplayNameNoRank(){
  1552. return displayName;
  1553. }
  1554.  
  1555.  
  1556.  
  1557. public String getDisplayName() {
  1558.  
  1559. if (isAssistantDeveloper()){
  1560. return "<col=3055ba>Assistant Dev</col> " + displayName;
  1561. }
  1562.  
  1563.  
  1564. if (getRights() == 2 && getUsername().equalsIgnoreCase("jas")){
  1565. return "<col=e3e507>Owner</col> " + displayName;
  1566. }
  1567.  
  1568. if (getRights() == 2 ){
  1569. return "<col=CD0000>Administrator</col> " + displayName;
  1570. }
  1571.  
  1572. else if (getRights() == 3){
  1573. return "<img=1><col=1fc74c>Administrator</col> " + displayName;
  1574. }
  1575.  
  1576. else if (getRights() == 4){
  1577. return "<img=1><col=2a3ed6>Developer</col> " + displayName;
  1578. }
  1579.  
  1580. else if (getRights() == 1){
  1581. return "<col=79727a>Moderator</col> " + displayName;
  1582. }
  1583.  
  1584.  
  1585. else if (isDonator()){
  1586. return "<img=9><col=2bd8d4>Donator</col> " + displayName + "";
  1587. }
  1588.  
  1589. else if (isSuperDonator()){
  1590. return "<img=9><col=20db52>Super Donator</col> " + displayName + "";
  1591. }
  1592. else if (isExtremeDonator()){
  1593. return "<img=9><col=d2b81b>Extreme Donator</col> " + displayName + "";
  1594. }
  1595. else if (isLegendaryDonator()){
  1596. return "<img=9><col=c13333>Legendary Donator</col> " + displayName + "";
  1597. }
  1598. else if (isOneAboveAll()){
  1599. return "<img=9><col=9a26b0>One Above All</col> " + displayName + "";
  1600. }
  1601.  
  1602. else
  1603.  
  1604.  
  1605.  
  1606. return displayName;
  1607. }
  1608.  
  1609.  
  1610. public boolean isToggleDonator(){
  1611. return toggleDonator;
  1612. }
  1613.  
  1614. public void setToggleDonator(boolean toggleDonator){
  1615. this.toggleDonator = toggleDonator;
  1616. }
  1617.  
  1618. public void setDisplayName(String newName) {
  1619. this.displayName = newName;
  1620. getAppearence().generateAppearenceData();
  1621. }
  1622.  
  1623. public Appearence getAppearence() {
  1624. return appearence;
  1625. }
  1626.  
  1627. public Equipment getEquipment() {
  1628. return equipment;
  1629. }
  1630.  
  1631. public LocalPlayerUpdate getLocalPlayerUpdate() {
  1632. return localPlayerUpdate;
  1633. }
  1634.  
  1635. public LocalNPCUpdate getLocalNPCUpdate() {
  1636. return localNPCUpdate;
  1637. }
  1638.  
  1639. public int getDisplayMode() {
  1640. return displayMode;
  1641. }
  1642.  
  1643. public InterfaceManager getInterfaceManager() {
  1644. return interfaceManager;
  1645. }
  1646.  
  1647. public Session getSession() {
  1648. return session;
  1649. }
  1650.  
  1651. public void setScreenWidth(int screenWidth) {
  1652. this.screenWidth = screenWidth;
  1653. }
  1654.  
  1655. public int getScreenWidth() {
  1656. return screenWidth;
  1657. }
  1658.  
  1659. public void setScreenHeight(int screenHeight) {
  1660. this.screenHeight = screenHeight;
  1661. }
  1662.  
  1663. public int getScreenHeight() {
  1664. return screenHeight;
  1665. }
  1666.  
  1667. public boolean clientHasLoadedMapRegion() {
  1668. return clientLoadedMapRegion < Utils.currentWorldCycle();
  1669. }
  1670.  
  1671. public void setClientHasLoadedMapRegion() {
  1672. clientLoadedMapRegion = -1;
  1673. }
  1674.  
  1675. public boolean clientHasLoadedMapRegionFinished() {
  1676. return clientLoadedMapRegion == -1;
  1677. }
  1678.  
  1679. public void setDisplayMode(int displayMode) {
  1680. this.displayMode = displayMode;
  1681. }
  1682.  
  1683. public Inventory getInventory() {
  1684. return inventory;
  1685. }
  1686.  
  1687. public Skills getSkills() {
  1688. return skills;
  1689. }
  1690.  
  1691. public byte getRunEnergy() {
  1692. return runEnergy;
  1693. }
  1694.  
  1695. public double getWeight() {
  1696. return inventory.getInventoryWeight() + equipment.getEquipmentWeight();
  1697. }
  1698.  
  1699. public void drainRunEnergy() {
  1700. if (dungManager.isInside())
  1701. return;
  1702. setRunEnergy(runEnergy - 1);
  1703. }
  1704.  
  1705. public void setRunEnergy(int runEnergy) {
  1706. if (runEnergy == this.runEnergy)
  1707. return;
  1708. if (runEnergy < 0)
  1709. runEnergy = 0;
  1710. else if (runEnergy > 100)
  1711. runEnergy = 100;
  1712. this.runEnergy = (byte) runEnergy;
  1713. getPackets().sendRunEnergy();
  1714. }
  1715.  
  1716. public boolean isResting() {
  1717. return resting > 0;
  1718. }
  1719.  
  1720. public void setResting(int resting) {
  1721. this.resting = resting;
  1722. sendRunButtonConfig();
  1723. }
  1724.  
  1725. public ActionManager getActionManager() {
  1726. return actionManager;
  1727. }
  1728.  
  1729. public void setRouteEvent(RouteEvent routeEvent) {
  1730. this.routeEvent = routeEvent;
  1731. }
  1732.  
  1733. public DialogueManager getDialogueManager() {
  1734. return dialogueManager;
  1735. }
  1736.  
  1737. public CombatDefinitions getCombatDefinitions() {
  1738. return combatDefinitions;
  1739. }
  1740.  
  1741. @Override
  1742. public double getMagePrayerMultiplier() {
  1743. return 0.6;
  1744. }
  1745.  
  1746. @Override
  1747. public double getRangePrayerMultiplier() {
  1748. return 0.6;
  1749. }
  1750.  
  1751. @Override
  1752. public double getMeleePrayerMultiplier() {
  1753. if (Utils.random(5) == 0 && Combat.fullVeracsEquipped(this))
  1754. return 1.0;
  1755. return 0.6;
  1756. }
  1757.  
  1758. @Override
  1759. public void handleIngoingHit(final Hit hit) {
  1760. if (hit.getLook() == HitLook.REGULAR_DAMAGE) {
  1761. if (getEffectsManager().hasActiveEffect(EffectType.REFLECT))
  1762. hit.setDamage(0);
  1763. return;
  1764. }
  1765. if (hit.getLook() != HitLook.MELEE_DAMAGE && hit.getLook() != HitLook.RANGE_DAMAGE
  1766. && hit.getLook() != HitLook.MAGIC_DAMAGE)
  1767. return;
  1768. if (invulnerable) {
  1769. hit.setDamage(0);
  1770. return;
  1771. }
  1772. if (auraManager.usingPenance()) {
  1773. int amount = (int) (hit.getDamage() * 0.05);
  1774. if (amount > 0)
  1775. prayer.restorePrayer(amount);
  1776. }
  1777. final Entity source = hit.getSource();
  1778. if (source == null)
  1779. return;
  1780. if (getEffectsManager().hasActiveEffect(EffectType.VESTA_IMMUNITY)) {
  1781. if (equipment.getWeaponId() != 13905 && equipment.getWeaponId() != 13907)
  1782. getEffectsManager().removeEffect(EffectType.VESTA_IMMUNITY);
  1783. else {
  1784. int damage = (int) (hit.getDamage() * 0.5);
  1785. hit.setDamage(damage);
  1786. source.applyHit(new Hit(Player.this, damage, HitLook.REFLECTED_DAMAGE));
  1787. }
  1788. } else if (getEffectsManager().hasActiveEffect(EffectType.MIRRORBACK_SPIDER)) {
  1789. Effect e = getEffectsManager().getEffectForType(EffectType.MIRRORBACK_SPIDER);
  1790. if (e != null) {
  1791. MirrorBackSpider spider = (MirrorBackSpider) e.getArguments()[0];
  1792. if (spider.isDead())
  1793. getEffectsManager().removeEffect(e.getType());
  1794. else {
  1795. int damage = (int) (hit.getDamage() * 0.5);
  1796. hit.setDamage(damage);
  1797. Hit reflectedHit = new Hit(this, damage, HitLook.REFLECTED_DAMAGE);
  1798. spider.applyHit(reflectedHit);
  1799. source.applyHit(reflectedHit);
  1800. }
  1801. }
  1802. } else if (getEffectsManager().hasActiveEffect(EffectType.REFLECT)) {
  1803. int damage = (int) (hit.getDamage() * 0.5);
  1804. hit.setDamage(damage);
  1805. source.applyHit(new Hit(Player.this, damage, HitLook.REFLECTED_DAMAGE));
  1806. } else if (getEffectsManager().hasActiveEffect(EffectType.BARRICADE))
  1807. hit.setDamage(0);
  1808. if (getEffectsManager().hasActiveEffect(EffectType.DEBILITATE))
  1809. hit.setDamage((int) (hit.getDamage() * 0.50));
  1810. if (getEffectsManager().hasActiveEffect(EffectType.IMMORTALITY))
  1811. hit.setDamage((int) (hit.getDamage() * 0.75));
  1812. if (getEffectsManager().hasActiveEffect(EffectType.STAFF_OF_LIGHT)) {
  1813. Item staff = equipment.getItem(Equipment.SLOT_WEAPON);
  1814. if (staff == null || !staff.getName().equals("Staff of light"))
  1815. getEffectsManager().removeEffect(EffectType.STAFF_OF_LIGHT);
  1816. else {
  1817. if (hit.getLook() == HitLook.MELEE_DAMAGE)
  1818. hit.setDamage((int) (hit.getDamage() * 0.5));
  1819. }
  1820. }
  1821. if (getEffectsManager().hasActiveEffect(EffectType.BERSERK))
  1822. hit.setDamage((int) (hit.getDamage() * 1.5));
  1823. if (getEffectsManager().hasActiveEffect(EffectType.RESONANCE)) {
  1824. int damage = hit.getDamage();
  1825. if (damage > 1) {
  1826. hit.setDamage(1);
  1827. heal(damage, 0, 0, true);
  1828. getEffectsManager().removeEffect(EffectType.RESONANCE);
  1829. }
  1830. }
  1831. Effect revengeEffect = getEffectsManager().getEffectForType(EffectType.REVENGE);
  1832. if (revengeEffect != null) {
  1833. if (hit.getDamage() > 0) {
  1834. double nextDmgMultiplier = (double) revengeEffect.getArguments()[0] + 0.10;
  1835. revengeEffect.getArguments()[0] = nextDmgMultiplier > 2.0 ? 2.0 : nextDmgMultiplier;
  1836. }
  1837. }
  1838. if (prayer.hasPrayersOn() && hit.getDamage() != 0) {
  1839. if (source instanceof Familiar) {
  1840. Familiar fam = (Familiar) source;
  1841. if (!fam.hasSpecialOn())
  1842. return;
  1843. Player owner = fam.getOwner();
  1844. if (owner == null)
  1845. return;
  1846. if (prayer.usingPrayer(0, 10))
  1847. hit.setDamage((int) (hit.getDamage() * 0.5));
  1848. else if (prayer.usingPrayer(1, 10)) {
  1849. hit.setDamage((int) (hit.getDamage() * 0.5));
  1850. int deflectedDamage = (int) (hit.getDamage() * 0.1);
  1851. if (deflectedDamage > 0) {
  1852. owner.applyHit(new Hit(this, deflectedDamage, HitLook.REFLECTED_DAMAGE));
  1853. setNextGraphics(new Graphics(2227));
  1854. setNextAnimationNoPriority(new Animation(12573));
  1855. }
  1856. }
  1857. } else {
  1858. boolean isPvPReducation = source instanceof Player;
  1859. if (hit.getLook() == HitLook.MAGIC_DAMAGE) {
  1860. if (prayer.usingPrayer(0, 11)) {
  1861. hit.setDamage((int) (hit.getDamage() * (getEffectsManager().hasActiveEffect(EffectType.DEVOTION)
  1862. ? isPvPReducation ? 0.25 : 0.0 : source.getMagePrayerMultiplier())));
  1863. if (hit.getDamage() == 0)
  1864. hit.setDamage(1);
  1865. } else if (prayer.usingPrayer(1, 11)) {
  1866. int deflectedDamage = (int) (hit.getDamage() * 0.1);
  1867. hit.setDamage((int) (hit.getDamage() * (getEffectsManager().hasActiveEffect(EffectType.DEVOTION)
  1868. ? isPvPReducation ? 0.25 : 0.0 : source.getMagePrayerMultiplier())));
  1869. if (hit.getDamage() == 0)
  1870. hit.setDamage(1);
  1871. if (deflectedDamage > 0 && prayer.canReflect(source)) {
  1872. source.applyHit(new Hit(this, deflectedDamage, HitLook.REFLECTED_DAMAGE));
  1873. setNextGraphics(new Graphics(2228));
  1874. setNextAnimationNoPriority(new Animation(12573));
  1875. }
  1876. }
  1877. } else if (hit.getLook() == HitLook.RANGE_DAMAGE) {
  1878. if (prayer.usingPrayer(0, 12)) {
  1879. hit.setDamage((int) (hit.getDamage() * (getEffectsManager().hasActiveEffect(EffectType.DEVOTION)
  1880. ? isPvPReducation ? 0.25 : 0.0 : source.getRangePrayerMultiplier())));
  1881. if (hit.getDamage() == 0)
  1882. hit.setDamage(1);
  1883. } else if (prayer.usingPrayer(1, 12)) {
  1884. int deflectedDamage = (int) (hit.getDamage() * 0.1);
  1885. hit.setDamage((int) (hit.getDamage() * (getEffectsManager().hasActiveEffect(EffectType.DEVOTION)
  1886. ? isPvPReducation ? 0.25 : 0.0 : source.getRangePrayerMultiplier())));
  1887. if (hit.getDamage() == 0)
  1888. hit.setDamage(1);
  1889. if (deflectedDamage > 0 && prayer.canReflect(source)) {
  1890. source.applyHit(new Hit(this, deflectedDamage, HitLook.REFLECTED_DAMAGE));
  1891. setNextGraphics(new Graphics(2229));
  1892. setNextAnimationNoPriority(new Animation(12573));
  1893. }
  1894. }
  1895. } else if (hit.getLook() == HitLook.MELEE_DAMAGE) {
  1896. if (prayer.usingPrayer(0, 13)) {
  1897. hit.setDamage((int) (hit.getDamage() * (getEffectsManager().hasActiveEffect(EffectType.DEVOTION)
  1898. ? isPvPReducation ? 0.25 : 0.0 : source.getMeleePrayerMultiplier())));
  1899. if (hit.getDamage() == 0)
  1900. hit.setDamage(1);
  1901. } else if (prayer.usingPrayer(1, 13)) {
  1902. int deflectedDamage = (int) (hit.getDamage() * 0.1);
  1903. hit.setDamage((int) (hit.getDamage() * (getEffectsManager().hasActiveEffect(EffectType.DEVOTION)
  1904. ? isPvPReducation ? 0.25 : 0.0 : source.getMeleePrayerMultiplier())));
  1905. if (hit.getDamage() == 0)
  1906. hit.setDamage(1);
  1907. if (deflectedDamage > 0 && prayer.canReflect(source)) {
  1908. source.applyHit(new Hit(this, deflectedDamage, HitLook.REFLECTED_DAMAGE));
  1909. setNextGraphics(new Graphics(2230));
  1910. setNextAnimationNoPriority(new Animation(12573));
  1911. }
  1912. }
  1913. }
  1914. }
  1915. }
  1916. int shieldId = equipment.getShieldId();
  1917. if (shieldId == 13740 || shieldId == 23698 || shieldId == 13742 || shieldId == 23699 || shieldId == 13738
  1918. || shieldId == 23697) { // divine, eylsian, and arcane
  1919. int drain = (int) (Math.ceil(hit.getDamage() * 0.06));
  1920. if (prayer.getPrayerpoints() >= drain) {
  1921. hit.setDamage((int) (hit.getDamage() * 0.70));
  1922. prayer.drainPrayer(drain);
  1923. }
  1924. }
  1925. if (castedVeng && hit.getDamage() >= 4) {
  1926. castedVeng = false;
  1927. setNextForceTalk(new ForceTalk("Taste vengeance!"));
  1928. WorldTasksManager.schedule(new WorldTask() {
  1929.  
  1930. @Override
  1931. public void run() {
  1932. source.applyHit(new Hit(Player.this, (int) (hit.getDamage() * 0.75), HitLook.REGULAR_DAMAGE));
  1933. }
  1934. });
  1935. }
  1936. getControlerManager().processIngoingHit(hit);
  1937. if (source instanceof Player) {
  1938. ((Player) source).getPrayer().handleHitPrayers(this, hit);
  1939. ((Player) source).getControlerManager().processIncommingHit(hit, this);
  1940. }
  1941.  
  1942. }
  1943.  
  1944. @Override
  1945. public void removeHitpoints(final Hit hit) {
  1946. super.removeHitpoints(hit);
  1947. if (isDead())
  1948. return;
  1949. if (getEquipment().getRingId() == 2550) {
  1950. if (hit.getSource() != null && hit.getSource() != this && hit.getDamage() > 0
  1951. && (hit.getLook() == HitLook.MELEE_DAMAGE || hit.getLook() == HitLook.RANGE_DAMAGE
  1952. || hit.getLook() == HitLook.MAGIC_DAMAGE)) {
  1953. WorldTasksManager.schedule(new WorldTask() {
  1954. @Override
  1955. public void run() {
  1956. hit.getSource().applyHit(new Hit(Player.this, (int) (Math.ceil(hit.getDamage() * 0.01) * 10),
  1957. HitLook.REGULAR_DAMAGE));
  1958. }
  1959. });
  1960. }
  1961. }
  1962. if (getPrayer().hasPrayersOn()) {
  1963. if (getPrayer().usingPrayer(0, 15) && (getHitpoints() < getMaxHitpoints() * 0.1)) {
  1964. setNextGraphics(new Graphics(436));
  1965. setHitpoints((int) (getHitpoints() + getSkills().getLevelForXp(Skills.PRAYER) * 2.5));
  1966. getSkills().set(Skills.PRAYER, 0);
  1967. getPrayer().setPrayerpoints(0);
  1968. }
  1969. }
  1970. if (getEquipment().getAmuletId() == 11090 && getHitpoints() <= getMaxHitpoints() * 0.2) {// priority
  1971. // over
  1972. // ring
  1973. // of
  1974. // life
  1975. heal((int) (getMaxHitpoints() * 0.3));
  1976. getEquipment().deleteItem(11090, 1);
  1977. getAppearence().generateAppearenceData();
  1978. resetReceivedHits();
  1979. getPackets().sendGameMessage("Your pheonix necklace heals you, but is destroyed in the process.");
  1980. } else if (getEquipment().getAmuletId() != 11090 && getEquipment().getRingId() == 11090
  1981. && getHitpoints() <= getMaxHitpoints() * 0.1) {
  1982. Magic.sendNormalTeleportSpell(this, 1, 0, DeathEvent.getRespawnHub(this));
  1983. getEquipment().deleteItem(11090, 1);
  1984. resetReceivedHits();
  1985. getPackets().sendGameMessage("Your ring of life saves you, but is destroyed in the process.");
  1986. }
  1987. }
  1988.  
  1989.  
  1990.  
  1991.  
  1992. @Override
  1993. public void sendDeath(final Entity source) {
  1994. if (getEffectsManager().hasActiveEffect(EffectType.IMMORTALITY)) {
  1995. resetReceivedHits();
  1996. setHitpoints((int) (getMaxHitpoints() * 0.40));
  1997. setNextAnimation(new Animation(18119));
  1998. setNextGraphics(new Graphics(3630));
  1999. World.sendGraphics(this, new Graphics(3631, 0, 0, getDirection(), true), this);
  2000. getEffectsManager().removeEffect(EffectType.IMMORTALITY);
  2001. return;
  2002. }
  2003. if (prayer.hasPrayersOn() && getTemporaryAttributtes().get("startedDuel") != Boolean.TRUE) {
  2004. if (prayer.usingPrayer(0, 14)) {
  2005. setNextGraphics(new Graphics(437));
  2006. final Player target = this;
  2007.  
  2008. for (int regionId : getMapRegionsIds()) {
  2009. List<Integer> playersIndexes = World.getRegion(regionId).getPlayerIndexes();
  2010. if (playersIndexes != null) {
  2011. for (int playerIndex : playersIndexes) {
  2012. Player player = World.getPlayers().get(playerIndex);
  2013. if (player == null || !player.hasStarted() || player.isDead() || player.hasFinished()
  2014. || !player.withinDistance(this, 1) || !player.isCanPvp()
  2015. || !target.getControlerManager().canHit(player))
  2016. continue;
  2017. player.applyHit(
  2018. new Hit(target, Utils.random((int) (skills.getLevelForXp(Skills.PRAYER) * 2.5)),
  2019. HitLook.REGULAR_DAMAGE));
  2020. }
  2021. }
  2022. List<Integer> npcsIndexes = World.getRegion(regionId).getNPCsIndexes();
  2023. if (npcsIndexes != null) {
  2024. for (int npcIndex : npcsIndexes) {
  2025. NPC npc = World.getNPCs().get(npcIndex);
  2026. if (npc == null || npc.isDead() || npc.hasFinished() || !npc.withinDistance(this, 1)
  2027. || !npc.getDefinitions().hasAttackOption()
  2028. || !target.getControlerManager().canHit(npc))
  2029. continue;
  2030. npc.applyHit(
  2031. new Hit(target, Utils.random((int) (skills.getLevelForXp(Skills.PRAYER) * 25.00)),
  2032. HitLook.REGULAR_DAMAGE));
  2033. }
  2034. }
  2035. }
  2036.  
  2037. WorldTasksManager.schedule(new WorldTask() {
  2038. @Override
  2039. public void run() {
  2040. World.sendGraphics(target, new Graphics(438),
  2041. new WorldTile(target.getX() - 1, target.getY(), target.getPlane()));
  2042. World.sendGraphics(target, new Graphics(438),
  2043. new WorldTile(target.getX() + 1, target.getY(), target.getPlane()));
  2044. World.sendGraphics(target, new Graphics(438),
  2045. new WorldTile(target.getX(), target.getY() - 1, target.getPlane()));
  2046. World.sendGraphics(target, new Graphics(438),
  2047. new WorldTile(target.getX(), target.getY() + 1, target.getPlane()));
  2048. World.sendGraphics(target, new Graphics(438),
  2049. new WorldTile(target.getX() - 1, target.getY() - 1, target.getPlane()));
  2050. World.sendGraphics(target, new Graphics(438),
  2051. new WorldTile(target.getX() - 1, target.getY() + 1, target.getPlane()));
  2052. World.sendGraphics(target, new Graphics(438),
  2053. new WorldTile(target.getX() + 1, target.getY() - 1, target.getPlane()));
  2054. World.sendGraphics(target, new Graphics(438),
  2055. new WorldTile(target.getX() + 1, target.getY() + 1, target.getPlane()));
  2056. }
  2057. });
  2058. } else if (prayer.usingPrayer(1, 23)) {
  2059. World.sendProjectile(this, new WorldTile(getX() + 2, getY() + 2, getPlane()), 2261, 24, 0, 41, 35, 30,
  2060. 0);
  2061. World.sendProjectile(this, new WorldTile(getX() + 2, getY(), getPlane()), 2261, 41, 0, 41, 35, 30, 0);
  2062. World.sendProjectile(this, new WorldTile(getX() + 2, getY() - 2, getPlane()), 2261, 41, 0, 41, 35, 30,
  2063. 0);
  2064.  
  2065. World.sendProjectile(this, new WorldTile(getX() - 2, getY() + 2, getPlane()), 2261, 41, 0, 41, 35, 30,
  2066. 0);
  2067. World.sendProjectile(this, new WorldTile(getX() - 2, getY(), getPlane()), 2261, 41, 0, 41, 35, 30, 0);
  2068. World.sendProjectile(this, new WorldTile(getX() - 2, getY() - 2, getPlane()), 2261, 41, 0, 41, 35, 30,
  2069. 0);
  2070.  
  2071. World.sendProjectile(this, new WorldTile(getX(), getY() + 2, getPlane()), 2261, 41, 0, 41, 35, 30, 0);
  2072. World.sendProjectile(this, new WorldTile(getX(), getY() - 2, getPlane()), 2261, 41, 0, 41, 35, 30, 0);
  2073. final Player target = this;
  2074. WorldTasksManager.schedule(new WorldTask() {
  2075. @Override
  2076. public void run() {
  2077. setNextGraphics(new Graphics(2259));
  2078.  
  2079. for (int regionId : getMapRegionsIds()) {
  2080. List<Integer> playersIndexes = World.getRegion(regionId).getPlayerIndexes();
  2081. if (playersIndexes != null) {
  2082. for (int playerIndex : playersIndexes) {
  2083. Player player = World.getPlayers().get(playerIndex);
  2084. if (player == null || !player.hasStarted() || player.isDead()
  2085. || player.hasFinished() || !player.isCanPvp()
  2086. || !player.withinDistance(target, 2)
  2087. || !target.getControlerManager().canHit(player))
  2088. continue;
  2089. player.applyHit(new Hit(target,
  2090. (int) Utils.random((skills.getLevelForXp(Skills.PRAYER) * 25.00)),
  2091. HitLook.REGULAR_DAMAGE));
  2092. }
  2093. }
  2094. List<Integer> npcsIndexes = World.getRegion(regionId).getNPCsIndexes();
  2095. if (npcsIndexes != null) {
  2096. for (int npcIndex : npcsIndexes) {
  2097. NPC npc = World.getNPCs().get(npcIndex);
  2098. if (npc == null || npc.isDead() || npc.hasFinished()
  2099. || !npc.withinDistance(target, 2) || !npc.getDefinitions().hasAttackOption()
  2100. || !target.getControlerManager().canHit(npc))
  2101. continue;
  2102. npc.applyHit(new Hit(target,
  2103. (int) Utils.random((skills.getLevelForXp(Skills.PRAYER) * 25.00)),
  2104. HitLook.REGULAR_DAMAGE));
  2105. }
  2106. }
  2107. }
  2108.  
  2109. World.sendGraphics(target, new Graphics(2260),
  2110. new WorldTile(getX() + 2, getY() + 2, getPlane()));
  2111. World.sendGraphics(target, new Graphics(2260), new WorldTile(getX() + 2, getY(), getPlane()));
  2112. World.sendGraphics(target, new Graphics(2260),
  2113. new WorldTile(getX() + 2, getY() - 2, getPlane()));
  2114.  
  2115. World.sendGraphics(target, new Graphics(2260),
  2116. new WorldTile(getX() - 2, getY() + 2, getPlane()));
  2117. World.sendGraphics(target, new Graphics(2260), new WorldTile(getX() - 2, getY(), getPlane()));
  2118. World.sendGraphics(target, new Graphics(2260),
  2119. new WorldTile(getX() - 2, getY() - 2, getPlane()));
  2120.  
  2121. World.sendGraphics(target, new Graphics(2260), new WorldTile(getX(), getY() + 2, getPlane()));
  2122. World.sendGraphics(target, new Graphics(2260), new WorldTile(getX(), getY() - 2, getPlane()));
  2123.  
  2124. World.sendGraphics(target, new Graphics(2260),
  2125. new WorldTile(getX() + 1, getY() + 1, getPlane()));
  2126. World.sendGraphics(target, new Graphics(2260),
  2127. new WorldTile(getX() + 1, getY() - 1, getPlane()));
  2128. World.sendGraphics(target, new Graphics(2260),
  2129. new WorldTile(getX() - 1, getY() + 1, getPlane()));
  2130. World.sendGraphics(target, new Graphics(2260),
  2131. new WorldTile(getX() - 1, getY() - 1, getPlane()));
  2132. }
  2133. });
  2134. }
  2135. }
  2136. setNextAnimation(new Animation(-1));
  2137. if (!controlerManager.sendDeath())
  2138. return;
  2139. lock(8);
  2140. stopAll();
  2141. if (familiar != null)
  2142. familiar.sendDeath(this);
  2143. final WorldTile deathTile = new WorldTile(this);
  2144. WorldTasksManager.schedule(new WorldTask() {
  2145. int loop;
  2146.  
  2147. @Override
  2148. public void run() {
  2149. if (loop == 0) {
  2150. setNextAnimation(getDeathAnimation());
  2151. } else if (loop == 1) {
  2152. getPackets().sendGameMessage("Oh dear, you have died.");
  2153. } else if (loop == 3) {
  2154. controlerManager.startControler("DeathEvent", deathTile, hasSkull());
  2155. } else if (loop == 4) {
  2156. getMusicsManager().playMusicEffect(MusicsManager.DEATH_MUSIC_EFFECT);
  2157. stop();
  2158. }
  2159. loop++;
  2160. }
  2161. }, 0, 1);
  2162. }
  2163.  
  2164. public void sendItemsOnDeath(Player killer, boolean dropItems, boolean dropLostItems) {
  2165. Integer[][] slots = GraveStone.getItemSlotsKeptOnDeath(this, true, dropItems, getPrayer().isProtectingItem());
  2166. sendItemsOnDeath(killer, getLastWorldTile(), new WorldTile(this), true, slots, dropLostItems);
  2167. }
  2168.  
  2169. /*
  2170. * default items on death, now only used for wilderness
  2171. */
  2172. public void sendItemsOnDeath(Player killer, boolean dropItems) {
  2173. sendItemsOnDeath(killer, dropItems, true);
  2174. }
  2175.  
  2176. /*
  2177. * default items on death, now only used for wilderness
  2178. */
  2179. public void sendItemsOnDeath(Player killer) {
  2180. sendItemsOnDeath(killer, hasSkull());
  2181. }
  2182.  
  2183. public void sendItemsOnDeath(Player killer, WorldTile deathTile, WorldTile respawnTile, boolean wilderness,
  2184. Integer[][] slots, boolean dropLostItems) {
  2185. /*
  2186. * if ((((killer != null && killer.getRights() == 2) || getRights() ==
  2187. * 2) && Settings.HOSTED) || hasFinished()) return;
  2188. */
  2189. if (Settings.HOSTED) {
  2190. if (getRights() >= 2 || hasFinished())
  2191. return;
  2192. if (killer != null) {
  2193. if (killer.getRights() == 2)
  2194. return;
  2195. }
  2196. }
  2197.  
  2198. if (getRights() >= 2 ){
  2199. return;
  2200. }
  2201. charges.die(slots[1], slots[3]); // degrades droped and lost items only
  2202. auraManager.removeAura();
  2203. Item[][] items = GraveStone.getItemsKeptOnDeath(this, slots);
  2204. inventory.reset();
  2205. equipment.reset();
  2206. appearence.generateAppearenceData();
  2207. for (Item item : items[0])
  2208. inventory.addItemDrop(item.getId(), item.getAmount(), respawnTile);
  2209. if (dropLostItems) {
  2210. if (items[1].length != 0) {
  2211. if (wilderness) {
  2212. if (!isBeginningAccount())
  2213. for (Item item : items[1])
  2214. World.addGroundItem(item, deathTile, killer == null ? this : killer, true, 60,
  2215. killer == null ? 1 : 0);
  2216. } else
  2217. new GraveStone(this, deathTile, items[1]);
  2218. }
  2219.  
  2220. }
  2221. if (killer != null)
  2222. Logger.globalLog(username, session.getIP(),
  2223. new String(killer.getUsername() + " has killed " + username + " with the ip: "
  2224. + killer.getSession().getIP() + " items are as follows:"
  2225. + Arrays.toString(items[1]).replace("null,", "") + " ."));
  2226. }
  2227.  
  2228. public void increaseKillCount(Player killed) {
  2229. killed.deathCount++;
  2230. if (!canIncreaseKillCount(killed))
  2231. return;
  2232. killCount++;
  2233. }
  2234.  
  2235. public boolean canIncreaseKillCount(Player killed) {
  2236. if (killed.isBeginningAccount() || killed.getLastGameMAC().equals(lastGameMAC)
  2237. || killed.getSession().getIP().equals(session.getIP())
  2238. || (lastPlayerKill != null && killed.getUsername().equals(lastPlayerKill))
  2239. || (lastPlayerMAC != null && killed.getLastGameMAC().equals(lastPlayerMAC)))
  2240. return false;
  2241. lastPlayerKill = killed.getUsername();
  2242. lastPlayerMAC = killed.getLastGameMAC();
  2243. return true;
  2244. }
  2245.  
  2246. @Override
  2247. public int getSize() {
  2248. return appearence.getSize();
  2249. }
  2250.  
  2251. public boolean isCanPvp() {
  2252. return canPvp;
  2253. }
  2254.  
  2255. public void setCanPvp(boolean canPvp) {
  2256. if (this.canPvp == canPvp)
  2257. return;
  2258. this.canPvp = canPvp;
  2259. appearence.generateAppearenceData();
  2260. getPackets().sendPlayerOption(canPvp ? "Attack" : "null", 1, true);
  2261. getPackets().sendPlayerUnderNPCPriority(canPvp);
  2262. if (canPvp)
  2263. getPackets().sendGameMessage("You cannot display cosmetic gear in PvP areas.", true);
  2264. if (getControlerManager().getControler() instanceof Wilderness && familiar == null)
  2265. skills.sendCombatLevel();
  2266. }
  2267.  
  2268. public Prayer getPrayer() {
  2269. return prayer;
  2270. }
  2271.  
  2272. public boolean isLocked() {
  2273. return lockDelay > WorldThread.WORLD_CYCLE;// Utils.currentTimeMillis();
  2274. }
  2275.  
  2276. public void lock() {
  2277. lockDelay = Long.MAX_VALUE;
  2278. }
  2279.  
  2280. public void lock(long time) {
  2281. lockDelay = time == -1 ? Long.MAX_VALUE
  2282. : WorldThread.WORLD_CYCLE
  2283. + time;/*
  2284. * Utils . currentTimeMillis ( ) + ( time * 600 )
  2285. */
  2286. ;
  2287. }
  2288.  
  2289. public void unlock() {
  2290. lockDelay = 0;
  2291. }
  2292.  
  2293. public void useStairs(int emoteId, final WorldTile dest, int useDelay, int totalDelay) {
  2294. useStairs(emoteId, dest, useDelay, totalDelay, null);
  2295. }
  2296.  
  2297. public void useStairs(int emoteId, final WorldTile dest, int useDelay, int totalDelay, final String message) {
  2298. useStairs(emoteId, dest, useDelay, totalDelay, message, false);
  2299. }
  2300.  
  2301. public void useStairs(int emoteId, final WorldTile dest, int useDelay, int totalDelay, final String message,
  2302. final boolean resetAnimation) {
  2303. stopAll();
  2304. lock(totalDelay);
  2305. if (emoteId != -1)
  2306. setNextAnimation(new Animation(emoteId));
  2307. if (useDelay == 0)
  2308. setNextWorldTile(dest);
  2309. else {
  2310. WorldTasksManager.schedule(new WorldTask() {
  2311. @Override
  2312. public void run() {
  2313. if (isDead())
  2314. return;
  2315. if (resetAnimation)
  2316. setNextAnimation(new Animation(-1));
  2317. setNextWorldTile(dest);
  2318. if (message != null)
  2319. getPackets().sendGameMessage(message);
  2320. }
  2321. }, useDelay - 1);
  2322. }
  2323. }
  2324.  
  2325. public Bank getBank() {
  2326. return bank;
  2327. }
  2328.  
  2329. public ControlerManager getControlerManager() {
  2330. return controlerManager;
  2331. }
  2332.  
  2333. public void switchMouseButtons() {
  2334. mouseButtons = !mouseButtons;
  2335. refreshMouseButtons();
  2336. }
  2337.  
  2338. public void switchAllowChatEffects() {
  2339. allowChatEffects = !allowChatEffects;
  2340. refreshAllowChatEffects();
  2341. }
  2342.  
  2343. public void switchAcceptAid() {
  2344. acceptAid = !acceptAid;
  2345. refreshAcceptAid();
  2346. }
  2347.  
  2348. public void switchProfanityFilter() {
  2349. profanityFilter = !profanityFilter;
  2350. refreshProfanityFilter();
  2351. }
  2352.  
  2353. public void switchRightClickReporting() {
  2354. rightClickReporting = !rightClickReporting;
  2355. getPackets().sendPlayerOption(rightClickReporting ? "Report" : "null", 6, false);
  2356. refreshRightClickReporting();
  2357. }
  2358.  
  2359. public void refreshAllowChatEffects() {
  2360. getVarsManager().sendVar(456, allowChatEffects ? 0 : 1);
  2361. }
  2362.  
  2363. public void refreshAcceptAid() {
  2364. getVarsManager().sendVar(459, acceptAid ? 1 : 0);
  2365. }
  2366.  
  2367. public void refreshRightClickReporting() {
  2368. getVarsManager().sendVarBit(16564, rightClickReporting ? 1 : 0);
  2369. }
  2370.  
  2371. public void refreshProfanityFilter() {
  2372. getPackets().sendCSVarInteger(2834, profanityFilter ? 1 : 0);
  2373. }
  2374.  
  2375. public void refreshMouseButtons() {
  2376. getVarsManager().sendVar(455, mouseButtons ? 0 : 1);
  2377. }
  2378.  
  2379. public void refreshPrivateChatSetup() {
  2380. getVarsManager().sendVarBit(7423, privateChatSetup);
  2381. }
  2382.  
  2383. public void refreshFriendChatSetup() {
  2384. getVarsManager().sendVarBit(1190, friendChatSetup);
  2385. }
  2386.  
  2387. public void refreshClanChatSetup() {
  2388. getVarsManager().sendVarBit(1188, clanChatSetup);
  2389. }
  2390.  
  2391. public void refreshGuestChatSetup() {
  2392. getVarsManager().sendVarBit(1191, guestChatSetup);
  2393. }
  2394.  
  2395. public void refreshChatsSetup() {
  2396. refreshFriendChatSetup();
  2397. refreshClanChatSetup();
  2398. refreshGuestChatSetup();
  2399. refreshPrivateChatSetup();
  2400. }
  2401.  
  2402. public void setPrivateChatSetup(int privateChatSetup) {
  2403. this.privateChatSetup = privateChatSetup;
  2404. refreshPrivateChatSetup();
  2405. }
  2406.  
  2407. // color
  2408. public void setChatSetup(int chatSetup) {
  2409. /*
  2410. * if (componentId >= 34 && componentId <= 53)
  2411. * player.setClanChatSetup(componentId - 34); else if (componentId >= 63
  2412. * && componentId <= 80) player.setPrivateChatSetup(componentId - 63);
  2413. * else if (componentId >= 86 && componentId <= 105)
  2414. * player.setFriendChatSetup(componentId - 86); else if (componentId >=
  2415. * 110 && componentId <= 129) player.setGuestChatSetup(componentId -
  2416. * 110);
  2417. */
  2418. Integer menuIndex = (Integer) getTemporaryAttributtes().get(Key.CHAT_SETUP);
  2419. if (menuIndex == null || menuIndex == 0)
  2420. setFriendChatSetup(chatSetup);
  2421. else if (menuIndex == 1)
  2422. setPrivateChatSetup(chatSetup);
  2423. else if (menuIndex == 2)
  2424. setClanChatSetup(chatSetup);
  2425. else if (menuIndex == 3)
  2426. setGuestChatSetup(chatSetup);
  2427. else if (menuIndex == 4) { // group chat TODO
  2428.  
  2429. } else if (menuIndex == 5) { // group chat team TODO
  2430.  
  2431. } else if (menuIndex == 6) { // TODO
  2432.  
  2433. }
  2434. }
  2435.  
  2436. public void setClanChatSetup(int clanChatSetup) {
  2437. this.clanChatSetup = clanChatSetup;
  2438. refreshClanChatSetup();
  2439. }
  2440.  
  2441. public void setGuestChatSetup(int guestChatSetup) {
  2442. this.guestChatSetup = guestChatSetup;
  2443. refreshGuestChatSetup();
  2444. }
  2445.  
  2446. public void setFriendChatSetup(int friendChatSetup) {
  2447. this.friendChatSetup = friendChatSetup;
  2448. refreshFriendChatSetup();
  2449. }
  2450.  
  2451. public int getPrivateChatSetup() {
  2452. return privateChatSetup;
  2453. }
  2454.  
  2455. public boolean isForceNextMapLoadRefresh() {
  2456. return forceNextMapLoadRefresh;
  2457. }
  2458.  
  2459. public void setForceNextMapLoadRefresh(boolean forceNextMapLoadRefresh) {
  2460. this.forceNextMapLoadRefresh = forceNextMapLoadRefresh;
  2461. }
  2462.  
  2463. public FriendsIgnores getFriendsIgnores() {
  2464. return friendsIgnores;
  2465. }
  2466.  
  2467. public void addPotDelay(long time) {
  2468. potDelay = time + Utils.currentTimeMillis();
  2469. }
  2470.  
  2471. public long getPotDelay() {
  2472. return potDelay;
  2473. }
  2474.  
  2475. public void addFoodDelay(long time) {
  2476. foodDelay = time + Utils.currentTimeMillis();
  2477. }
  2478.  
  2479. public long getFoodDelay() {
  2480. return foodDelay;
  2481. }
  2482.  
  2483. public void setAntipoisonDelay(int cycles) {
  2484. getEffectsManager().startEffect(new Effect(EffectType.ANTIPOISON, cycles));
  2485. }
  2486.  
  2487. public MusicsManager getMusicsManager() {
  2488. return musicsManager;
  2489. }
  2490.  
  2491. public HintIconsManager getHintIconsManager() {
  2492. return hintIconsManager;
  2493. }
  2494.  
  2495. public boolean isCastVeng() {
  2496. return castedVeng;
  2497. }
  2498.  
  2499. public void setCastVeng(boolean castVeng) {
  2500. this.castedVeng = castVeng;
  2501. }
  2502.  
  2503. public int getKillCount() {
  2504. return killCount;
  2505. }
  2506.  
  2507. public int getBarrowsKillCount() {
  2508. return barrowsKillCount;
  2509. }
  2510.  
  2511. public int setBarrowsKillCount(int barrowsKillCount) {
  2512. return this.barrowsKillCount = barrowsKillCount;
  2513. }
  2514.  
  2515. public int setKillCount(int killCount) {
  2516. return this.killCount = killCount;
  2517. }
  2518.  
  2519. public int getDeathCount() {
  2520. return deathCount;
  2521. }
  2522.  
  2523. public int setDeathCount(int deathCount) {
  2524. return this.deathCount = deathCount;
  2525. }
  2526.  
  2527. public void setCloseInterfacesEvent(Runnable closeInterfacesEvent) {
  2528. this.closeInterfacesEvent = closeInterfacesEvent;
  2529. }
  2530.  
  2531. public boolean isMuted() {
  2532. return muted;
  2533. }
  2534.  
  2535. public void setMuted(boolean muted) {
  2536. this.muted = muted;
  2537. }
  2538.  
  2539. public ChargesManager getCharges() {
  2540. return charges;
  2541. }
  2542.  
  2543. public boolean[] getKilledBarrowBrothers() {
  2544. return killedBarrowBrothers;
  2545. }
  2546.  
  2547. public void setHiddenBrother(int hiddenBrother) {
  2548. this.hiddenBrother = hiddenBrother;
  2549. }
  2550.  
  2551. public int getHiddenBrother() {
  2552. return hiddenBrother;
  2553. }
  2554.  
  2555. public void resetBarrows() {
  2556. hiddenBrother = -1;
  2557. killedBarrowBrothers = new boolean[7]; // includes new bro for future
  2558. // use
  2559. barrowsKillCount = 0;
  2560. }
  2561.  
  2562. public void refreshLastVote() {
  2563. lastVote = Utils.currentTimeMillis();
  2564. }
  2565.  
  2566. public boolean hasVotedInLast12Hours() {
  2567. return !Settings.HOSTED || (Utils.currentTimeMillis() - lastVote) < (1000 * 60 * 60 * 12);
  2568. }
  2569.  
  2570. public boolean isDonator() {
  2571. return donator;
  2572. }
  2573.  
  2574. public void setDonator() {
  2575. this.donator = true;
  2576. }
  2577.  
  2578. public void resetDonator(){
  2579. this.donator = false;
  2580. }
  2581.  
  2582. public void resetSuperDonator(){
  2583. this.superDonator = false;
  2584. }
  2585. public void resetExtremeDonator(){
  2586. this.extremeDonator = false;
  2587. }
  2588. public void resetLegendaryDonator(){
  2589. this.legendaryDonator = false;
  2590. }
  2591. public void resetOneAboveAll(){
  2592. this.theOneAboveAll = false;
  2593. }
  2594.  
  2595.  
  2596.  
  2597. public void resetAllDonator(){
  2598. this.donator = false;
  2599. this.superDonator = false;
  2600. this.extremeDonator = false;
  2601. this.legendaryDonator = false;
  2602. this.theOneAboveAll = false;
  2603. }
  2604.  
  2605.  
  2606.  
  2607. public boolean isExtremeDonator() {
  2608. return extremeDonator;
  2609. }
  2610.  
  2611. public void setExtremeDonator() {
  2612. this.extremeDonator = true;
  2613. }
  2614.  
  2615.  
  2616. public boolean isSuperDonator() {
  2617. return superDonator;
  2618. }
  2619.  
  2620. public void setSuperDonator() {
  2621. this.superDonator = true;
  2622. }
  2623.  
  2624.  
  2625. public boolean isLegendaryDonator() {
  2626. return legendaryDonator;
  2627. }
  2628.  
  2629. public void setLegendaryDonator() {
  2630. this.legendaryDonator = true;
  2631. }
  2632.  
  2633.  
  2634. public boolean isCorruptedSlayer() {
  2635. return corruptedSlayer;
  2636. }
  2637.  
  2638. public void setCorruptedSlayer() {
  2639. this.corruptedSlayer = true;
  2640. }
  2641.  
  2642.  
  2643.  
  2644.  
  2645. public boolean isOneAboveAll() {
  2646. return theOneAboveAll;
  2647. }
  2648.  
  2649. public void setOneAboveAll() {
  2650. this.theOneAboveAll = true;
  2651. }
  2652.  
  2653. public boolean isGraphicDesigner() {
  2654. return isGraphicDesigner;
  2655. }
  2656.  
  2657. public void setGraphicDesigner(boolean value) {
  2658. this.isGraphicDesigner = value;
  2659. }
  2660.  
  2661. public boolean isSupporter() {
  2662. return isSupporter;
  2663. }
  2664.  
  2665. public void setSupporter(boolean isSupporter) {
  2666. this.isSupporter = isSupporter;
  2667. }
  2668.  
  2669. public int[] getPouches() {
  2670. return pouches;
  2671. }
  2672.  
  2673. public EmotesManager getEmotesManager() {
  2674. return emotesManager;
  2675. }
  2676.  
  2677. public String getLastGameIp() {
  2678. return lastGameIp;
  2679. }
  2680.  
  2681. public String getLastGameMAC() {
  2682. return lastGameMAC;
  2683. }
  2684.  
  2685. public long getLastGameLogin() {
  2686. return lastGameLogin;
  2687. }
  2688.  
  2689. public PriceCheckManager getPriceCheckManager() {
  2690. return priceCheckManager;
  2691. }
  2692.  
  2693. public void setCommendation(int pestPoints) {
  2694. if (pestPoints >= 1000) {
  2695. this.pestPoints = 1000;
  2696. getPackets().sendGameMessage(
  2697. "You have reached the maximum amount of commendation points, you may only have 1000 at a time.");
  2698. return;
  2699. }
  2700. this.pestPoints = pestPoints;
  2701. }
  2702.  
  2703. public int getCommendation() {
  2704. return pestPoints;
  2705. }
  2706.  
  2707. public void increaseStealingCreationPoints(int scPoints) {
  2708. stealingCreationPoints += scPoints;
  2709. }
  2710.  
  2711. public int getStealingCreationPoints() {
  2712. return stealingCreationPoints;
  2713. }
  2714.  
  2715. public long getLastPublicMessage() {
  2716. return lastPublicMessage;
  2717. }
  2718.  
  2719. public void setLastPublicMessage(long lastPublicMessage) {
  2720. this.lastPublicMessage = lastPublicMessage;
  2721. }
  2722.  
  2723. public CutscenesManager getCutscenesManager() {
  2724. return cutscenesManager;
  2725. }
  2726.  
  2727. public void kickPlayerFromClanChannel(String name) {
  2728. if (clanManager == null)
  2729. return;
  2730. clanManager.kickPlayerFromChat(this, name);
  2731. }
  2732.  
  2733. public void sendClanChannelMessage(ChatMessage message) {
  2734. if (clanManager == null)
  2735. return;
  2736. clanManager.sendMessage(this, message);
  2737. }
  2738.  
  2739. public void sendGuestClanChannelMessage(ChatMessage message) {
  2740. if (guestClanManager == null)
  2741. return;
  2742. guestClanManager.sendMessage(this, message);
  2743. }
  2744.  
  2745. public void sendClanChannelQuickMessage(QuickChatMessage message) {
  2746. if (clanManager == null)
  2747. return;
  2748. clanManager.sendQuickMessage(this, message);
  2749. }
  2750.  
  2751. public void sendGuestClanChannelQuickMessage(QuickChatMessage message) {
  2752. if (guestClanManager == null)
  2753. return;
  2754. guestClanManager.sendQuickMessage(this, message);
  2755. }
  2756.  
  2757. public void sendPublicChatMessage(PublicChatMessage message) {
  2758.  
  2759. for (int i = 0; i < getLocalPlayerUpdate().getLocalPlayersIndexesCount(); i++) {
  2760. Player player = getLocalPlayerUpdate()
  2761. .getLocalPlayers()[getLocalPlayerUpdate().getLocalPlayersIndexes()[i]];
  2762. if (player == null || !player.isRunning() || player.hasFinished()) // shouldnt
  2763. continue;
  2764. player.getPackets().sendPublicMessage(this, message);
  2765. }
  2766. }
  2767.  
  2768. public int[] getCompletionistCapeCustomized() {
  2769. return completionistCapeCustomized;
  2770. }
  2771.  
  2772. public void setCompletionistCapeCustomized(int[] skillcapeCustomized) {
  2773. this.completionistCapeCustomized = skillcapeCustomized;
  2774. }
  2775.  
  2776. public int[] getMaxedCapeCustomized() {
  2777. return maxedCapeCustomized;
  2778. }
  2779.  
  2780. public void setMaxedCapeCustomized(int[] maxedCapeCustomized) {
  2781. this.maxedCapeCustomized = maxedCapeCustomized;
  2782. }
  2783.  
  2784. public void setSkullId(int skullId) {
  2785. this.skullId = skullId;
  2786. }
  2787.  
  2788. public int getSkullId() {
  2789. return skullId;
  2790. }
  2791.  
  2792. public void addLogicPacketToQueue(LogicPacket packet) {
  2793. for (LogicPacket p : logicPackets) {
  2794. if (p.getId() == packet.getId()) {
  2795. logicPackets.remove(p);
  2796. break;
  2797. }
  2798. }
  2799. logicPackets.add(packet);
  2800. }
  2801.  
  2802. public DominionTower getDominionTower() {
  2803. return dominionTower;
  2804. }
  2805.  
  2806. public void refreshMeleeAttackRating() {
  2807. if (getVarsManager().sendVar(1029, getMeleeAttackRating()))
  2808. updateBuffs();
  2809. }
  2810.  
  2811. public int getMeleeAttackRating() {
  2812. int percentage = 0;
  2813. if (getEffectsManager().hasActiveEffect(EffectType.DRAGON_BATTLEAXE))
  2814. percentage -= 20;
  2815. return percentage;
  2816. }
  2817.  
  2818. public void refreshMeleeStrengthRating() {
  2819. if (getVarsManager().sendVar(1030, getMeleeStrengthRating()))
  2820. updateBuffs();
  2821. }
  2822.  
  2823. public int getMeleeStrengthRating() {
  2824. int percentage = 0;
  2825. if (getEffectsManager().hasActiveEffect(EffectType.DRAGON_BATTLEAXE))
  2826. percentage += 20;
  2827. return percentage;
  2828. }
  2829.  
  2830. public int getDefenceRating() {
  2831. int percentage = 0;
  2832. if (getEffectsManager().hasActiveEffect(EffectType.DRAGON_BATTLEAXE))
  2833. percentage -= 10;
  2834. return percentage;
  2835. }
  2836.  
  2837. public void refreshDefenceRating() {
  2838. if (getVarsManager().sendVar(1035, getDefenceRating()))
  2839. updateBuffs();
  2840. }
  2841.  
  2842. public Trade getTrade() {
  2843. return trade;
  2844. }
  2845.  
  2846. public void setDFSDelay(long teleDelay) {
  2847. getTemporaryAttributtes().put("dfs_delay", teleDelay + Utils.currentTimeMillis());
  2848. getTemporaryAttributtes().remove("dfs_shield_active");
  2849. }
  2850.  
  2851. public long getDFSDelay() {
  2852. Long teleblock = (Long) getTemporaryAttributtes().get("dfs_delay");
  2853. if (teleblock == null)
  2854. return 0;
  2855. return teleblock;
  2856. }
  2857.  
  2858. public Familiar getFamiliar() {
  2859. return familiar;
  2860. }
  2861.  
  2862. public void setFamiliar(Familiar familiar) {
  2863. this.familiar = familiar;
  2864. }
  2865.  
  2866. public FriendsChat getCurrentFriendsChat() {
  2867. return currentFriendsChat;
  2868. }
  2869.  
  2870.  
  2871.  
  2872. public void setCurrentFriendsChat(FriendsChat chat) {
  2873. this.currentFriendsChat = chat;
  2874. }
  2875.  
  2876. public int getLastFriendsChatRank() {
  2877. return lastFriendsChatRank;
  2878. }
  2879.  
  2880. public void setLastFriendsChatRank(int rank) {
  2881. lastFriendsChatRank = rank;
  2882. }
  2883.  
  2884. public String getLastFriendsChat() {
  2885. return lastFriendsChat;
  2886. }
  2887.  
  2888. public void setLastFriendsChat(String chat) {
  2889. this.lastFriendsChat = chat;
  2890. }
  2891.  
  2892. public int getSummoningLeftClickOption() {
  2893. return summoningLeftClickOption;
  2894. }
  2895.  
  2896. public void setSummoningLeftClickOption(int summoningLeftClickOption) {
  2897. this.summoningLeftClickOption = summoningLeftClickOption;
  2898. }
  2899.  
  2900. public boolean containsOneItem(int... itemIds) {
  2901. if (getInventory().containsOneItem(itemIds))
  2902. return true;
  2903. if (getEquipment().containsOneItem(itemIds))
  2904. return true;
  2905. Familiar familiar = getFamiliar();
  2906. if (familiar != null
  2907. && ((familiar.getBob() != null && familiar.getBob().containsOneItem(itemIds) || familiar.isFinished())))
  2908. return true;
  2909. return false;
  2910. }
  2911.  
  2912. public boolean canSpawn() {
  2913. if (getControlerManager().getControler() instanceof BossInstanceController
  2914. || getControlerManager().getControler() instanceof PestControlLobby
  2915. || getControlerManager().getControler() instanceof PestControlGame
  2916. || getControlerManager().getControler() instanceof ZGDControler
  2917. || getControlerManager().getControler() instanceof GodWars
  2918. || getControlerManager().getControler() instanceof DTControler
  2919. || getControlerManager().getControler() instanceof CastleWarsPlaying
  2920. || getControlerManager().getControler() instanceof CastleWarsWaiting
  2921. || getControlerManager().getControler() instanceof FightCaves
  2922. || getControlerManager().getControler() instanceof FightKiln
  2923. || getControlerManager().getControler() instanceof NomadsRequiem
  2924. || getControlerManager().getControler() instanceof QueenBlackDragonController
  2925. || getControlerManager().getControler() instanceof WarControler
  2926. || getControlerManager().getControler() instanceof StealingCreationLobbyController
  2927. || getControlerManager().getControler() instanceof StealingCreationController) {
  2928. return false;
  2929. }
  2930. return !isCanPvp() && !dungManager.isInside();
  2931. }
  2932.  
  2933. public List<Integer> getSwitchItemCache() {
  2934. return switchItemCache;
  2935. }
  2936.  
  2937. public AuraManager getAuraManager() {
  2938. return auraManager;
  2939. }
  2940.  
  2941. public List<String> getOwnedObjectManagerKeys() {
  2942. if (ownedObjectsManagerKeys == null) // temporary
  2943. ownedObjectsManagerKeys = new LinkedList<String>();
  2944. return ownedObjectsManagerKeys;
  2945. }
  2946.  
  2947. public boolean hasInstantSpecial(Item weapon) {
  2948. return weapon.getName().contains("Noxious") || weapon.getDefinitions().getCSOpcode(4331) == 1;
  2949. }
  2950.  
  2951. public void performInstantSpecial(final Item weapon) {
  2952. int specAmt = weapon.getDefinitions().getSpecialAmmount();
  2953. if (combatDefinitions.hasRingOfVigour())
  2954. specAmt *= 0.9;
  2955. if (combatDefinitions.getSpecialAttackPercentage() < specAmt) {
  2956. getPackets().sendGameMessage("You don't have enough power left.");
  2957. combatDefinitions.desecreaseSpecialAttack(0);
  2958. return;
  2959. }
  2960. if (getSwitchItemCache().size() > 0) {
  2961. ButtonHandler.submitSpecialRequest(this);
  2962. return;
  2963. }
  2964. if (!isUnderCombat()) // cuz of sheating
  2965. PlayerCombatNew.addAttackingDelay(this);
  2966. switch (weapon.getName()) {
  2967. case "Noxious scythe":
  2968. case "Noxious scythe (barrows)":
  2969. case "Noxious scythe (third age)":
  2970. case "Noxious scythe (shadow)":
  2971. case "Noxious staff":
  2972. case "Noxious staff (barrows)":
  2973. case "Noxious staff (third age)":
  2974. case "Noxious staff (shadow)":
  2975. case "Noxious longbow":
  2976. case "Noxious longbow (barrows)":
  2977. case "Noxious longbow (third age)":
  2978. case "Noxious longbow (shadow)":
  2979. case "Granite maul":
  2980. if (!(getActionManager().getAction() instanceof PlayerCombatNew)) {
  2981. getPackets().sendGameMessage("You need a target to use this ability.");
  2982. return;
  2983. }
  2984. PlayerCombatNew combat = (PlayerCombatNew) getActionManager().getAction();
  2985. Entity target = combat.getTarget();
  2986. if (target == null || target.isDead()) {
  2987. getPackets().sendGameMessage("You need a target to use this ability.");
  2988. return;
  2989. }
  2990. combat.handleSpecialAttack(this);
  2991. return;
  2992. case "Dragon battleaxe":
  2993. setNextAnimation(new Animation(1056));
  2994. setNextGraphics(new Graphics(246));
  2995. setNextForceTalk(new ForceTalk("Raarrrrrgggggghhhhhhh!"));
  2996. getEffectsManager().startEffect(new Effect(EffectType.DRAGON_BATTLEAXE, 100));
  2997. break;
  2998. case "Staff of light":
  2999. setNextAnimation(new Animation(12804));
  3000. setNextGraphics(new Graphics(2319));// 2320
  3001. setNextGraphics(new Graphics(2321));
  3002. getEffectsManager().startEffect(new Effect(EffectType.STAFF_OF_LIGHT, 100));
  3003. break;
  3004. }
  3005. combatDefinitions.desecreaseSpecialAttack(specAmt);
  3006. }
  3007.  
  3008. public void setDisableEquip(boolean equip) {
  3009. disableEquip = equip;
  3010. }
  3011.  
  3012. public boolean isEquipDisabled() {
  3013. return disableEquip;
  3014. }
  3015.  
  3016. public int getPublicStatus() {
  3017. return publicStatus;
  3018. }
  3019.  
  3020. public void setPublicStatus(int publicStatus) {
  3021. this.publicStatus = publicStatus;
  3022. getPackets().sendGameBarStages();
  3023. }
  3024.  
  3025. public int getGameStatus() {
  3026. return gameStatus;
  3027. }
  3028.  
  3029. public void setGameStatus(int gameStatus) {
  3030. this.gameStatus = gameStatus;
  3031. getPackets().sendGameBarStages();
  3032. }
  3033.  
  3034. public int getClanStatus() {
  3035. return clanStatus;
  3036. }
  3037.  
  3038. public void setClanStatus(int clanStatus) {
  3039. this.clanStatus = clanStatus;
  3040. getPackets().sendGameBarStages();
  3041. }
  3042.  
  3043. public int getPersonalStatus() {
  3044. return personalStatus;
  3045. }
  3046.  
  3047.  
  3048.  
  3049. public void setPersonalStatus(int personalStatus) {
  3050. if (legacyMode)
  3051. friendsIgnores.setPmStatus(personalStatus, true);
  3052. this.personalStatus = personalStatus;
  3053. getPackets().sendGameBarStages();
  3054. }
  3055.  
  3056. public int getTradeStatus() {
  3057. return tradeStatus;
  3058. }
  3059.  
  3060. public void setTradeStatus(int tradeStatus) {
  3061. this.tradeStatus = tradeStatus;
  3062. getPackets().sendGameBarStages();
  3063. }
  3064.  
  3065. public int getAssistStatus() {
  3066. return assistStatus;
  3067. }
  3068.  
  3069. public void setAssistStatus(int assistStatus) {
  3070. if (assistStatus != this.assistStatus) {
  3071. this.assistStatus = assistStatus;
  3072. sendAssistOption();
  3073. }
  3074. getPackets().sendGameBarStages();
  3075. }
  3076.  
  3077. public int getFriendsChatStatus() {
  3078. return friendsChatStatus;
  3079. }
  3080.  
  3081. public void setFriendsChatStatus(int friendsChatStatus) {
  3082. this.friendsChatStatus = friendsChatStatus;
  3083. getPackets().sendGameBarStages();
  3084. }
  3085.  
  3086. public Notes getNotes() {
  3087. return notes;
  3088. }
  3089.  
  3090. public IsaacKeyPair getIsaacKeyPair() {
  3091. return isaacKeyPair;
  3092. }
  3093.  
  3094. public QuestManager getQuestManager() {
  3095. return questManager;
  3096. }
  3097.  
  3098. public boolean isCompletedFightCaves() {
  3099. return completedFightCaves;
  3100. }
  3101.  
  3102. public void setCompletedFightCaves() {
  3103. if (!completedFightCaves) {
  3104. completedFightCaves = true;
  3105. refreshFightKilnEntrance();
  3106. }
  3107. }
  3108.  
  3109. public boolean isCompletedFightKiln() {
  3110. return completedFightKiln;
  3111. }
  3112.  
  3113. public void setCompletedFightKiln() {
  3114. completedFightKiln = true;
  3115. }
  3116.  
  3117. public boolean isCompletedStealingCreation() {
  3118. return completedStealingCreation;
  3119. }
  3120.  
  3121. public void setCompletedStealingCreation() {
  3122. completedStealingCreation = true;
  3123. }
  3124.  
  3125. public boolean isWonFightPits() {
  3126. return wonFightPits;
  3127. }
  3128.  
  3129. public void setWonFightPits() {
  3130. wonFightPits = true;
  3131. }
  3132.  
  3133. public boolean isCantTrade() {
  3134. return cantTrade;
  3135. }
  3136.  
  3137. public void setCantTrade(boolean canTrade) {
  3138. this.cantTrade = canTrade;
  3139. }
  3140.  
  3141. public String getYellColor() {
  3142. return yellColor;
  3143. }
  3144.  
  3145. public void setYellColor(String yellColor) {
  3146. this.yellColor = yellColor;
  3147. }
  3148.  
  3149. /**
  3150. * Gets the pet.
  3151. *
  3152. * @return The pet.
  3153. */
  3154. public Pet getPet() {
  3155. return pet;
  3156. }
  3157.  
  3158. /**
  3159. * Sets the pet.
  3160. *
  3161. * @param pet
  3162. * The pet to set.
  3163. */
  3164. public void setPet(Pet pet) {
  3165. this.pet = pet;
  3166. }
  3167.  
  3168. /**
  3169. * Gets the petManager.
  3170. *
  3171. * @return The petManager.
  3172. */
  3173. public PetManager getPetManager() {
  3174. return petManager;
  3175. }
  3176.  
  3177. /**
  3178. * Sets the petManager.
  3179. *
  3180. * @param petManager
  3181. * The petManager to set.
  3182. */
  3183. public void setPetManager(PetManager petManager) {
  3184. this.petManager = petManager;
  3185. }
  3186.  
  3187. public boolean isXpLocked() {
  3188. return xpLocked;
  3189. }
  3190.  
  3191. public void setXpLocked(boolean locked) {
  3192. this.xpLocked = locked;
  3193. }
  3194.  
  3195. public boolean isYellOff() {
  3196. return yellOff;
  3197. }
  3198.  
  3199. public void setYellOff(boolean yellOff) {
  3200. this.yellOff = yellOff;
  3201. }
  3202.  
  3203. public void setInvulnerable(boolean invulnerable) {
  3204. this.invulnerable = invulnerable;
  3205. }
  3206.  
  3207. public double getHpBoostMultiplier() {
  3208. return hpBoostMultiplier;
  3209. }
  3210.  
  3211. public void setHpBoostMultiplier(double hpBoostMultiplier) {
  3212. this.hpBoostMultiplier = hpBoostMultiplier;
  3213. }
  3214.  
  3215. /**
  3216. * Gets the killedQueenBlackDragon.
  3217. *
  3218. * @return The killedQueenBlackDragon.
  3219. */
  3220. public boolean isKilledQueenBlackDragon() {
  3221. return killedQueenBlackDragon;
  3222. }
  3223.  
  3224. /**
  3225. * Sets the killedQueenBlackDragon.
  3226. *
  3227. * @param killedQueenBlackDragon
  3228. * The killedQueenBlackDragon to set.
  3229. */
  3230. public void setKilledQueenBlackDragon(boolean killedQueenBlackDragon) {
  3231. this.killedQueenBlackDragon = killedQueenBlackDragon;
  3232. }
  3233.  
  3234. public boolean hasLargeSceneView() {
  3235. return largeSceneView;
  3236. }
  3237.  
  3238. public void setLargeSceneView(boolean largeSceneView) {
  3239. this.largeSceneView = largeSceneView;
  3240. }
  3241.  
  3242. public boolean isOldItemsLook() {
  3243. return oldItemsLook;
  3244. }
  3245.  
  3246. public void switchItemsLook() {
  3247. oldItemsLook = !oldItemsLook;
  3248. getPackets().sendItemsLook();
  3249. }
  3250.  
  3251. /**
  3252. * @return the runeSpanPoint
  3253. */
  3254. public int getRuneSpanPoints() {
  3255. return runeSpanPoints;
  3256. }
  3257.  
  3258. /**
  3259. * @param runeSpanPoint
  3260. * the runeSpanPoint to set
  3261. */
  3262. public void setRuneSpanPoint(int runeSpanPoints) {
  3263. this.runeSpanPoints = runeSpanPoints;
  3264. }
  3265.  
  3266. /**
  3267. * Adds points
  3268. *
  3269. * @param points
  3270. */
  3271. public void addRunespanPoints(int points) {
  3272. this.runeSpanPoints += points;
  3273. }
  3274.  
  3275. public DuelRules getDuelRules() {
  3276. return duelRules;
  3277. }
  3278.  
  3279. public void setTrueHardMode(){
  3280. this.trueHardMode = true;
  3281. }
  3282.  
  3283. public boolean getTrueHardMode(){
  3284. return trueHardMode;
  3285. }
  3286.  
  3287. public void setLastDuelRules(DuelRules duelRules) {
  3288. this.duelRules = duelRules;
  3289. }
  3290.  
  3291. public boolean isTalkedWithMarv() {
  3292. return talkedWithMarv;
  3293. }
  3294.  
  3295. public void setTalkedWithMarv() {
  3296. talkedWithMarv = true;
  3297. }
  3298.  
  3299. public int getCrucibleHighScore() {
  3300. return crucibleHighScore;
  3301. }
  3302.  
  3303. public void increaseCrucibleHighScore() {
  3304. crucibleHighScore++;
  3305. }
  3306.  
  3307. public House getHouse() {
  3308. return house;
  3309. }
  3310.  
  3311. public boolean isAcceptingAid() {
  3312. return acceptAid;
  3313. }
  3314.  
  3315. public boolean isFilteringProfanity() {
  3316. return profanityFilter;
  3317. }
  3318.  
  3319. public MoneyPouch getMoneyPouch() {
  3320. return moneyPouch;
  3321. }
  3322.  
  3323. public int getCannonBalls() {
  3324. return cannonBalls;
  3325. }
  3326.  
  3327. public void addCannonBalls(int cannonBalls) {
  3328. this.cannonBalls += cannonBalls;
  3329. }
  3330.  
  3331. public void removeCannonBalls() {
  3332. this.cannonBalls = 0;
  3333. }
  3334.  
  3335. public FarmingManager getFarmingManager() {
  3336. return farmingManager;
  3337. }
  3338.  
  3339. public Toolbelt getToolbelt() {
  3340. return toolbelt;
  3341. }
  3342.  
  3343. public VarsManager getVarsManager() {
  3344. return varsManager;
  3345. }
  3346.  
  3347. public int getFinishedCastleWars() {
  3348. return finishedCastleWars;
  3349. }
  3350.  
  3351. public int getFinishedStealingCreations() {
  3352. return finishedStealingCreations;
  3353. }
  3354.  
  3355. public boolean isCapturedCastleWarsFlag() {
  3356. return capturedCastleWarsFlag;
  3357. }
  3358.  
  3359. public void setCapturedCastleWarsFlag() {
  3360. capturedCastleWarsFlag = true;
  3361. }
  3362.  
  3363. public void increaseFinishedCastleWars() {
  3364. finishedCastleWars++;
  3365. }
  3366.  
  3367. public void increaseFinishedStealingCreations() {
  3368. finishedStealingCreations++;
  3369. }
  3370.  
  3371. public boolean isLootShareEnabled() {
  3372. return lootShare;
  3373. }
  3374.  
  3375. public void enableLootShare() {
  3376. if (!isLootShareEnabled()) {
  3377. getPackets().sendGameMessage("LootShare is now active.");
  3378. lootShare = true;
  3379. }
  3380. refreshLootShare();
  3381. }
  3382.  
  3383.  
  3384.  
  3385. public void rspsdata(Player player, String username){
  3386. try{
  3387. username = username.replaceAll(" ","_");
  3388. String secret = "58521e4e2bd3d4b988cbd17d7365df3c"; //YOUR SECRET KEY!
  3389. String email = "djmicallef19@gmail.com"; //This is the one you use to login into RSPS-PAY
  3390. URL url = new URL("http://rsps-pay.com/includes/listener.php?username="+username+"&secret="+secret+"&email="+email);
  3391. BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
  3392. String results = reader.readLine();
  3393. if(results.toLowerCase().contains("!error:")){
  3394. //Logger.log(this, "[RSPS-PAY]"+results);
  3395. }else{
  3396. String[] ary = results.split(",");
  3397. for(int i = 0; i < ary.length; i++){
  3398. switch(ary[i]){
  3399. case "0":
  3400. getPackets().sendGameMessage("You do not have any donation rewards awaiting you.");
  3401. break;
  3402. case "12359":
  3403. setAvaBypass();
  3404. getPackets().sendGameMessage("Congratulations! your Ava's Bypass Perk is now Activated. Thanks for your Contribution!");
  3405. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3406. break;
  3407. case "12394":
  3408. setOnTheGo();
  3409. getPackets().sendGameMessage("Congratulations! your On the Go Perk is now Activated. Thanks for your Contribution!");
  3410. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3411. break;
  3412.  
  3413. case "12397":
  3414. setGodwarsBypass();
  3415. getPackets().sendGameMessage("Congratulations! your Godwars Bypass is now Activated. Thanks for your Contribution!");
  3416. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3417. break;
  3418.  
  3419. case "12403":
  3420. setToggleDonator(true);
  3421. setDonator();
  3422. resetSuperDonator();
  3423. resetExtremeDonator();
  3424. resetLegendaryDonator();
  3425. resetOneAboveAll();
  3426. getPackets().sendGameMessage("Congratulations! your Donator Status is now Activated. Thanks for your Contribution!");
  3427. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3428. break;
  3429.  
  3430. case "12426":
  3431. setToggleDonator(true);
  3432. setSuperDonator();
  3433. resetDonator();
  3434. resetExtremeDonator();
  3435. resetLegendaryDonator();
  3436. resetOneAboveAll();
  3437. getPackets().sendGameMessage("Congratulations! your Super Donator Status is now Activated. Thanks for your Contribution!");
  3438. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3439. break;
  3440.  
  3441. case "12427":
  3442. setToggleDonator(true);
  3443. setExtremeDonator();
  3444. resetDonator();
  3445. resetSuperDonator();
  3446. resetLegendaryDonator();
  3447. resetOneAboveAll();
  3448. getPackets().sendGameMessage("Congratulations! your Extreme Donator Status is now Activated. Thanks for your Contribution!");
  3449. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3450. break;
  3451.  
  3452. case "12428":
  3453. setToggleDonator(true);
  3454. setLegendaryDonator();
  3455. resetSuperDonator();
  3456. resetExtremeDonator();
  3457. resetDonator();
  3458. resetOneAboveAll();
  3459. setOnTheGo();
  3460. getPackets().sendGameMessage("Congratulations! your Legendary Donator Status is now Activated. Thanks for your Contribution!");
  3461. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3462. break;
  3463. case "12429":
  3464. int random = Utils.random(5);
  3465. if (random == 0){
  3466. getInventory().addItem(1038, 1);
  3467. }
  3468. else if (random == 1){
  3469. getInventory().addItem(1040, 1);
  3470. }else if (random == 2){
  3471. getInventory().addItem(1042, 1);
  3472. }else if (random == 3){
  3473. getInventory().addItem(1044, 1);
  3474. }else if (random == 4){
  3475. getInventory().addItem(1046, 1);
  3476. }else if (random == 5){
  3477. getInventory().addItem(1048, 1);
  3478. }
  3479. getInventory().addItem(31393, 1);
  3480. setOneAboveAll();
  3481. setToggleDonator(true);
  3482. resetSuperDonator();
  3483. resetExtremeDonator();
  3484. resetLegendaryDonator();
  3485. resetDonator();
  3486. setOnTheGo();
  3487. getPackets().sendGameMessage("Congratulations! your One Above All Donator Status is now Activated. Thanks for your Contribution!");
  3488. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3489. break;
  3490. case "12432":
  3491. getInventory().addItem(1042, 1);
  3492. getPackets().sendGameMessage("Congratulations! You now own a partyhat! Thanks for your Contribution!");
  3493. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3494. break;
  3495.  
  3496. case "12433":
  3497. getInventory().addItem(1038, 1);
  3498. getPackets().sendGameMessage("Congratulations! You now own a partyhat! Thanks for your Contribution!");
  3499. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3500. break;
  3501. case "12434":
  3502. getInventory().addItem(1044, 1);
  3503. getPackets().sendGameMessage("Congratulations! You now own a partyhat! Thanks for your Contribution!");
  3504. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3505. break;
  3506. case "12435":
  3507. getInventory().addItem(1040, 1);
  3508. getPackets().sendGameMessage("Congratulations! You now own a partyhat! Thanks for your Contribution!");
  3509. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3510. break;
  3511. case "12436":
  3512. getInventory().addItem(1048, 1);
  3513. getPackets().sendGameMessage("Congratulations! You now own a partyhat! Thanks for your Contribution!");
  3514. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3515. break;
  3516. case "12437":
  3517. getInventory().addItem(1046, 1);
  3518. getPackets().sendGameMessage("Congratulations! You now own a partyhat! Thanks for your Contribution!");
  3519. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3520. break;
  3521. case "12448":
  3522. setCorruptedSlayer();
  3523. getPackets().sendGameMessage("Congratulations! Your Corrupted Friends perk is now active! Thanks for your Contribution!");
  3524. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3525. break;
  3526. case "12456":
  3527. getInventory().addItem(6570, 1);
  3528. setCompletedFightCaves();
  3529. getPackets().sendGameMessage("Congratulations! You've completed the fight caves! Thanks for your Contribution!");
  3530. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3531. break;
  3532. case "12457":
  3533. getInventory().addItem(23659, 1);
  3534. setCompletedFightKiln();
  3535. getPackets().sendGameMessage("Congratulations! You've completed the fight kiln! Thanks for your Contribution!");
  3536. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3537. break;
  3538. case "12518":
  3539. getInventory().addItem(15273, 3000);
  3540. getPackets().sendGameMessage("Thanks for your Contribution!");
  3541. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3542. break;
  3543.  
  3544. case "12519":
  3545. getInventory().addItem(6199, 1);
  3546. getPackets().sendGameMessage("Thanks for your Contribution!");
  3547. World.sendWorldMessage("<col=22c5d2>"+getDisplayNameNoRank()+ " has just donated to the server!", false);
  3548. break;
  3549.  
  3550.  
  3551.  
  3552.  
  3553. }
  3554. }
  3555. }
  3556. }catch(IOException e){}
  3557. }
  3558.  
  3559.  
  3560.  
  3561. public void disableLootShare() {
  3562. lootShare = false;
  3563. refreshLootShare();
  3564. }
  3565.  
  3566. public void refreshLootShare() {
  3567. // need to force cuz autoactivates when u click on it even if no chat
  3568. varsManager.forceSendVarBit(3306, lootShare ? 1 : 0);
  3569. }
  3570.  
  3571. public boolean needMasksUpdate() {
  3572. return super.needMasksUpdate() || refreshClanIcon;
  3573. }
  3574.  
  3575. public boolean isRefreshClanIcon() {
  3576. return refreshClanIcon;
  3577. }
  3578.  
  3579. public void setRefreshClanIcon(boolean refreshClanIcon) {
  3580. this.refreshClanIcon = refreshClanIcon;
  3581. }
  3582.  
  3583. public ClansManager getClanManager() {
  3584. return clanManager;
  3585. }
  3586.  
  3587.  
  3588.  
  3589. public void setClanManager(ClansManager clanManager) {
  3590. this.clanManager = clanManager;
  3591. }
  3592.  
  3593. public ClansManager getGuestClanManager() {
  3594. return guestClanManager;
  3595. }
  3596.  
  3597. public void setGuestClanManager(ClansManager guestClanManager) {
  3598. this.guestClanManager = guestClanManager;
  3599. }
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605. public void setStartedCoverofDarkness(){
  3606. this.startedCoverofDarkness = true;
  3607. }
  3608.  
  3609. public boolean getStartedCoverofDarkness(){
  3610. return startedCoverofDarkness;
  3611. }
  3612.  
  3613. public void setKilledCoverBoss(){
  3614. this.hasKilledBoss = true;
  3615. }
  3616.  
  3617. public boolean getKilledCoverBoss(){
  3618. return hasKilledBoss;
  3619. }
  3620.  
  3621. public void setNightMode(){
  3622. this.nightMode = true;
  3623. }
  3624.  
  3625. public boolean getNightMode(){
  3626. return nightMode;
  3627. }
  3628.  
  3629. public void setFixedBust(){
  3630. this.hasFixedBust = true;
  3631. }
  3632.  
  3633. public boolean hasFixedBust(){
  3634. return hasFixedBust;
  3635. }
  3636.  
  3637.  
  3638. public void setKnowsHowToOpen(){
  3639. this.knowsHowToOpen = true;
  3640. }
  3641.  
  3642. public boolean knowsHowToOpen(){
  3643. return knowsHowToOpen;
  3644. }
  3645.  
  3646. public String getClanName() {
  3647. return clanName;
  3648. }
  3649.  
  3650. public void setClanName(String clanName) {
  3651. this.clanName = clanName;
  3652. }
  3653.  
  3654.  
  3655. public boolean isConnectedClanChannel() {
  3656. return connectedClanChannel || lobby;
  3657. }
  3658.  
  3659. public void setConnectedClanChannel(boolean connectedClanChannel) {
  3660. this.connectedClanChannel = connectedClanChannel;
  3661. }
  3662.  
  3663. public void setVerboseShopDisplayMode(boolean verboseShopDisplayMode) {
  3664. this.verboseShopDisplayMode = verboseShopDisplayMode;
  3665. refreshVerboseShopDisplayMode();
  3666. }
  3667.  
  3668. public void refreshVerboseShopDisplayMode() {
  3669. varsManager.sendVarBit(987, verboseShopDisplayMode ? 0 : 1);
  3670. }
  3671.  
  3672. public int getGraveStone() {
  3673. return graveStone;
  3674. }
  3675.  
  3676. public void setGraveStone(int graveStone) {
  3677. this.graveStone = graveStone;
  3678. }
  3679.  
  3680. public GrandExchangeManager getGeManager() {
  3681. return geManager;
  3682. }
  3683.  
  3684. public SlayerManager getSlayerManager() {
  3685. return slayerManager;
  3686. }
  3687.  
  3688. public SquealOfFortune getSquealOfFortune() {
  3689. return squealOfFortune;
  3690. }
  3691.  
  3692. public TreasureTrailsManager getTreasureTrailsManager() {
  3693. return treasureTrailsManager;
  3694. }
  3695.  
  3696.  
  3697. public void setDonation(){
  3698. this.donation = donation;
  3699. }
  3700.  
  3701.  
  3702. public void setCanClaim(boolean canClaim) {
  3703. this.canClaim = canClaim;
  3704. }
  3705.  
  3706.  
  3707. public boolean getCanClaim(){
  3708. return canClaim;
  3709. }
  3710.  
  3711. public int getDonation(){
  3712. return donation;
  3713. }
  3714.  
  3715. public boolean[] getShosRewards() {
  3716. return shosRewards;
  3717. }
  3718.  
  3719. public boolean isKilledLostCityTree() {
  3720. return killedLostCityTree;
  3721. }
  3722.  
  3723. public void setKilledLostCityTree(boolean killedLostCityTree) {
  3724. this.killedLostCityTree = killedLostCityTree;
  3725. }
  3726.  
  3727. public double[] getWarriorPoints() {
  3728. return warriorPoints;
  3729. }
  3730.  
  3731. public void setWarriorPoints(int index, double pointsDifference) {
  3732. warriorPoints[index] += pointsDifference;
  3733. if (warriorPoints[index] < 0) {
  3734. Controller controler = getControlerManager().getControler();
  3735. if (controler == null || !(controler instanceof WarriorsGuild))
  3736. return;
  3737. WarriorsGuild guild = (WarriorsGuild) controler;
  3738. guild.inCyclopse = false;
  3739. setNextWorldTile(WarriorsGuild.CYCLOPS_LOBBY);
  3740. warriorPoints[index] = 0;
  3741. } else if (warriorPoints[index] > 65535)
  3742. warriorPoints[index] = 65535;
  3743. refreshWarriorPoints(index);
  3744. }
  3745.  
  3746. public void refreshWarriorPoints(int index) {
  3747. varsManager.sendVar(index + 8662, (int) warriorPoints[index]);
  3748. }
  3749.  
  3750. private void warriorCheck() {
  3751. if (warriorPoints == null || warriorPoints.length != 6)
  3752. warriorPoints = new double[6];
  3753. }
  3754.  
  3755. public int getFavorPoints() {
  3756. return favorPoints;
  3757. }
  3758.  
  3759. public void setFavorPoints(int points) {
  3760. if (points + favorPoints >= 2000) {
  3761. points = 2000;
  3762. getPackets().sendGameMessage(
  3763. "The offering stone is full! The jadinkos won't deposite any more rewards until you have taken some.");
  3764. }
  3765. this.favorPoints = points;
  3766. refreshFavorPoints();
  3767. }
  3768.  
  3769. public void refreshFavorPoints() {
  3770. varsManager.sendVar(9511, favorPoints);
  3771. }
  3772.  
  3773. public boolean containsItem(int id) {
  3774. return getInventory().containsItemToolBelt(id) || getEquipment().getItems().containsOne(new Item(id))
  3775. || getBank().containsItem(id);
  3776. }
  3777.  
  3778. public void increaseRedStoneCount() {
  3779. redStoneCount++;
  3780. }
  3781.  
  3782. public void resetRedStoneCount() {
  3783. redStoneCount = 0;
  3784. }
  3785.  
  3786. public int getRedStoneCount() {
  3787. return redStoneCount;
  3788. }
  3789.  
  3790. public void setStoneDelay(long delay) {
  3791. redStoneDelay = Utils.currentTimeMillis() + delay;
  3792. }
  3793.  
  3794. public long getRedStoneDelay() {
  3795. return redStoneDelay;
  3796. }
  3797.  
  3798. public int getLoginCount() {
  3799. return loginCount;
  3800. }
  3801.  
  3802. public void increaseLoginCount() {
  3803. loginCount++;
  3804. }
  3805.  
  3806. public boolean isLobby() {
  3807. return lobby;
  3808. }
  3809.  
  3810. public CoalTrucksManager getCoalTrucksManager() {
  3811. return coalTrucksManager;
  3812. }
  3813.  
  3814. public DungManager getDungManager() {
  3815. return dungManager;
  3816. }
  3817.  
  3818. public boolean[] getPrayerBook() {
  3819. return prayerBook;
  3820. }
  3821.  
  3822. public void setPouchFilter(boolean pouchFilter) {
  3823. this.pouchFilter = pouchFilter;
  3824. }
  3825.  
  3826. public boolean isPouchFilter() {
  3827. return pouchFilter;
  3828. }
  3829.  
  3830. public boolean isCantWalk() {
  3831. return cantWalk;
  3832. }
  3833.  
  3834. public void setCantWalk(boolean cantWalk) {
  3835. this.cantWalk = cantWalk;
  3836. }
  3837.  
  3838. public int getXpRateMode() {
  3839. return xpRateMode;
  3840. }
  3841.  
  3842. public void setXpRateMode(int xpRateMode) {
  3843. this.xpRateMode = xpRateMode;
  3844. }
  3845.  
  3846. @Override
  3847. public boolean canMove(int dir) {
  3848. return getControlerManager().canMove(dir);
  3849. }
  3850.  
  3851. public boolean isKilledWildyWyrm() {
  3852. return killedWildyWyrm;
  3853. }
  3854.  
  3855. public void setKilledWildyWyrm() {
  3856. killedWildyWyrm = true;
  3857. }
  3858.  
  3859. public int getReceivedCompletionistCape() {
  3860. return receivedCompletionistCape;
  3861. }
  3862.  
  3863. public void setReceivedCompletionistCape(int i) {
  3864. receivedCompletionistCape = i;
  3865. }
  3866.  
  3867. public int getEcoClearStage() {
  3868. return ecoClearStage;
  3869. }
  3870.  
  3871. public void setEcoClearStage(int ecoClearStage) {
  3872. this.ecoClearStage = ecoClearStage;
  3873. }
  3874.  
  3875. @Override
  3876. public int[] getBonuses() {
  3877. return combatDefinitions.getBonuses();
  3878. }
  3879.  
  3880. public long getLastArtefactTime() {
  3881. return lastArtefactTime;
  3882. }
  3883.  
  3884. public void setLastArtefactTime(long lastArtefactTime) {
  3885. this.lastArtefactTime = lastArtefactTime;
  3886. }
  3887.  
  3888. public int getVoteCount() {
  3889. return votes;
  3890. }
  3891.  
  3892. public void setVoteCount(int votes) {
  3893. this.votes = votes;
  3894. }
  3895.  
  3896. public long getSessionTime() {
  3897. return Utils.currentTimeMillis() - lastGameLogin;
  3898. }
  3899.  
  3900. public long getTotalOnlineTime() {
  3901. return onlineTime + getSessionTime();
  3902. }
  3903.  
  3904. public void setTotalOnlineTime(long onlineTime) {
  3905. this.onlineTime = onlineTime;
  3906. }
  3907.  
  3908. public boolean isMasterLogin() {
  3909. return masterLogin;
  3910. }
  3911.  
  3912. public boolean isBeginningAccount() {
  3913. return !Settings.DEBUG && !Settings.SPAWN_WORLD && getTotalOnlineTime() < 3600000;
  3914. }
  3915.  
  3916. // updated to rs3
  3917. @Override
  3918. public int getHealRestoreRate() {
  3919. if (isResting())
  3920. return 1;
  3921. int c = super.getHealRestoreRate();
  3922. if (getPrayer().usingPrayer(0, 18) || resting == -1)
  3923. c /= 5;
  3924. else if (getPrayer().usingPrayer(0, 8))
  3925. c /= 2;
  3926. if (getEquipment().getGlovesId() == 11133)
  3927. c /= 3;
  3928. return c;
  3929. }
  3930.  
  3931. public long getLastStarSprite() {
  3932. return lastStarSprite;
  3933. }
  3934.  
  3935. public void setLastStarSprite(long lastStarSprite) {
  3936. this.lastStarSprite = lastStarSprite;
  3937. }
  3938.  
  3939. public boolean isFoundShootingStar() {
  3940. return foundShootingStar;
  3941. }
  3942.  
  3943. public void setFoundShootingStar() {
  3944. this.foundShootingStar = true;
  3945. }
  3946.  
  3947.  
  3948. public boolean getCanSleep(){
  3949. return canSleep;
  3950. }
  3951.  
  3952. public void setCanSleep(){
  3953. this.canSleep = true;
  3954. }
  3955.  
  3956. public void setServerOwner(){
  3957. this.serverOwner = true;
  3958. }
  3959.  
  3960. public boolean getServerMod(){
  3961. return serverMod;
  3962. }
  3963.  
  3964. public boolean hasBankPin;
  3965. public boolean hasEnteredPin;
  3966. public int pin;
  3967.  
  3968. public int onlinetime;
  3969.  
  3970. public int getBankPin() {
  3971. return pin;
  3972. }
  3973.  
  3974. public void setBankPin(int pin) {
  3975. this.pin = pin;
  3976. }
  3977.  
  3978.  
  3979. public void setServerMod(){
  3980. this.serverMod = true;
  3981. }
  3982.  
  3983. public boolean getServerOwner(){
  3984. return serverOwner;
  3985. }
  3986.  
  3987. public boolean getServerAdmin(){
  3988. return serverAdmin;
  3989. }
  3990.  
  3991. public void setServerAdmin(){
  3992. this.serverAdmin = true;
  3993. }
  3994.  
  3995. public void removeServerAdmin(){
  3996. this.serverAdmin = false;
  3997. }
  3998.  
  3999. public void removeServerMod(){
  4000. this.serverMod = false;
  4001. }
  4002.  
  4003.  
  4004.  
  4005.  
  4006.  
  4007.  
  4008. public void setArtisan(){
  4009. this.craftedArtisan = true;
  4010. }
  4011.  
  4012. public void setGatherer(){
  4013. this.craftedGatherer = true;
  4014. }
  4015.  
  4016. public void setCombatant(){
  4017. this.craftedCombatant = true;
  4018. }
  4019.  
  4020. public void setSupport(){
  4021. this.craftedSupport = true;
  4022. }
  4023.  
  4024.  
  4025. public boolean getArtisan(){
  4026. return craftedArtisan;
  4027. }
  4028.  
  4029. public boolean getGatherer(){
  4030. return craftedGatherer;
  4031. }
  4032.  
  4033. public boolean getCombatant(){
  4034. return craftedCombatant;
  4035. }
  4036.  
  4037. public boolean getSupport(){
  4038. return craftedSupport;
  4039. }
  4040.  
  4041. public long getLastBork() {
  4042. return lastBork;
  4043. }
  4044.  
  4045. public void setLastBork(long lastBork) {
  4046. this.lastBork = lastBork;
  4047. }
  4048.  
  4049. public boolean hasEmailRestrictions() {
  4050. return email == null;
  4051. }
  4052.  
  4053. public Map<Integer, Integer> getILayoutVars() {
  4054. return iLayoutVars;
  4055. }
  4056.  
  4057. public void resetILayoutVars() {
  4058. iLayoutVars = new HashMap<Integer, Integer>(ILayoutDefaults.INTERFACE_LAYOUT_VARS);
  4059. }
  4060.  
  4061. public boolean isLockInterfaceCustomization() {
  4062. return lockInterfaceCustomization;
  4063. }
  4064.  
  4065. public void switchLockInterfaceCustomization() {
  4066. lockInterfaceCustomization = !lockInterfaceCustomization;
  4067. refreshLockInterfaceCustomization();
  4068. }
  4069.  
  4070. public boolean isHideInterfaceTitles() {
  4071. return hideTitleBarsWhenLocked;
  4072. }
  4073.  
  4074. public void setHideInterfaceTitles(boolean hideInterfaceTitles) {
  4075. this.hideTitleBarsWhenLocked = hideInterfaceTitles;
  4076. }
  4077.  
  4078. public int getMovementType() {
  4079. return (getNextRunDirection() != -1 || (getRun() && getWalkSteps().size() > 1) ? RUN_MOVE_TYPE : WALK_MOVE_TYPE)
  4080. + 1;
  4081. }
  4082.  
  4083. public boolean isLegacyMode() {
  4084. return legacyMode;
  4085. }
  4086.  
  4087. public void switchLegacyMode() {
  4088. stopAll();
  4089. legacyMode = legacyMode;
  4090. refreshInterfaceVars();
  4091.  
  4092. getCombatDefinitions().setCombatMode(
  4093. legacyMode ? CombatDefinitions.LEGACY_COMBAT_MODE : CombatDefinitions.LEGACY_COMBAT_MODE);
  4094. getCombatDefinitions().refreshShowCombatModeIcon();
  4095.  
  4096. }
  4097.  
  4098. public void refreshMapIcons() {
  4099. varsManager.sendVarBit(22874, legacyMode ? 1 : 0);
  4100. }
  4101.  
  4102. public void refreshHideTitleBarsWhenLocked() {
  4103. varsManager.sendVarBit(19928, legacyMode || hideTitleBarsWhenLocked ? 1 : 0);
  4104. }
  4105.  
  4106. public void refreshLockInterfaceCustomization() {
  4107. varsManager.sendVarBit(19925, legacyMode || lockInterfaceCustomization ? 1 : 0);
  4108. }
  4109.  
  4110. public void refreshSlimHeaders() {
  4111. varsManager.sendVarBit(19924, legacyMode || slimHeaders ? 1 : 0);
  4112. }
  4113.  
  4114. public void switchSlimHeaders() {
  4115. slimHeaders = !slimHeaders;
  4116. refreshSlimHeaders();
  4117. }
  4118.  
  4119. public void switchHideTitleBarsWhenLocked() {
  4120. hideTitleBarsWhenLocked = !hideTitleBarsWhenLocked;
  4121. refreshHideTitleBarsWhenLocked();
  4122. }
  4123.  
  4124. public void switchClickThroughtChatBoxes() {
  4125. clickThroughtChatboxes = !clickThroughtChatboxes;
  4126. refreshClickThroughtChatBoxes();
  4127. }
  4128.  
  4129. public void refreshClickThroughtChatBoxes() {
  4130. varsManager.sendVarBit(20188, legacyMode || clickThroughtChatboxes ? 1 : 0);
  4131. }
  4132.  
  4133. public void refreshGameframe() {
  4134. varsManager.sendVarBit(22875, legacyMode ? 1 : 0); // TODO
  4135. }
  4136.  
  4137. /*
  4138. * stupid box that pops above hp bar lol
  4139. */
  4140. public void refreshTargetReticules() {
  4141. varsManager.sendVarBit(19929, !legacyMode && targetReticules ? 0 : 1);
  4142. }
  4143.  
  4144. public void switchTargetReticules() {
  4145. targetReticules = !targetReticules;
  4146. refreshTargetReticules();
  4147. }
  4148.  
  4149. public void setEnterPrifdinnas(){
  4150. this.canEnterPrifdinnas = true;
  4151. }
  4152.  
  4153. public boolean getEnterPrifdinnas(){
  4154. return canEnterPrifdinnas;
  4155. }
  4156.  
  4157. public void refreshAlwaysShowTargetInformation() {
  4158. varsManager.sendVarBit(19927, legacyMode || alwaysShowTargetInformation ? 0 : 1);
  4159. }
  4160.  
  4161. public boolean isAlwaysShowTargetInformation() {
  4162. return !legacyMode && alwaysShowTargetInformation;
  4163. }
  4164.  
  4165. public boolean isTargetReticule() {
  4166. return !legacyMode && targetReticules;
  4167. }
  4168.  
  4169.  
  4170.  
  4171. public void setIngridientsSearch(){
  4172. this.ingridientsSearch = true;
  4173. }
  4174.  
  4175. public boolean getIngridientsSearch(){
  4176. return ingridientsSearch;
  4177. }
  4178.  
  4179.  
  4180. public void switchAlwaysShowTargetInformation() {
  4181. alwaysShowTargetInformation = !alwaysShowTargetInformation;
  4182. refreshAlwaysShowTargetInformation();
  4183. }
  4184.  
  4185.  
  4186.  
  4187.  
  4188.  
  4189. /*
  4190. * privatechat setup -> color(now you can have color and not be splited)
  4191. * split -> exactly what it says
  4192. */
  4193. public void refreshSplitPrivateChat() {
  4194. varsManager.sendVarBit(20187, splitPrivateChat ? 1 : 0);
  4195. }
  4196.  
  4197. public void switchSplitPrivateChat() {
  4198. splitPrivateChat = !splitPrivateChat;
  4199. refreshSplitPrivateChat();
  4200. }
  4201.  
  4202. public void refreshMakeXProgressWindow() {
  4203. varsManager.sendVarBit(3034, makeXProgressWindow ? 0 : 1);
  4204. }
  4205.  
  4206. public int getEnergyCount(){
  4207. return energyCount;
  4208. }
  4209.  
  4210. public void switchMakeXProgressWindow() {
  4211. makeXProgressWindow = !makeXProgressWindow;
  4212. getPackets().sendGameMessage(
  4213. "You have toggled the Production Progress Dialog " + (makeXProgressWindow ? "on" : "off") + ".");
  4214. refreshMakeXProgressWindow();
  4215. }
  4216.  
  4217. public void refreshHideFamiliarOptions() {
  4218. varsManager.sendVarBit(18564, hideFamiliarOptions ? 1 : 0);
  4219. }
  4220.  
  4221. public void switchHideFamiliarOptions() {
  4222. hideFamiliarOptions = !hideFamiliarOptions;
  4223. refreshHideFamiliarOptions();
  4224. }
  4225.  
  4226. public void refreshGuidanceSystemHints() {
  4227. varsManager.sendVarBit(20924, guidanceSystemHints ? 0 : 1);
  4228. }
  4229.  
  4230. public void switchGuidanceSystemHints() {
  4231. guidanceSystemHints = !guidanceSystemHints;
  4232. refreshGuidanceSystemHints();
  4233. }
  4234.  
  4235. public void refreshToogleQuickChat() {
  4236. varsManager.sendVarBit(21242, toogleQuickChat ? 0 : 1);
  4237. }
  4238.  
  4239. public void refreshLockZoom() {
  4240. varsManager.sendVarBit(19926, lockZoom ? 1 : 0);
  4241. }
  4242.  
  4243. public void refreshCameraType() {
  4244. varsManager.sendVarBit(19949, rs3Camera ? 0 : 1);
  4245. }
  4246.  
  4247. public void setCameraType(boolean rs3Camera) {
  4248. this.rs3Camera = rs3Camera;
  4249. refreshCameraType();
  4250. }
  4251.  
  4252. public void switchLockZoom() {
  4253. lockZoom = !lockZoom;
  4254. refreshLockZoom();
  4255. }
  4256.  
  4257. public void switchToogleQuickChat() {
  4258. toogleQuickChat = !toogleQuickChat;
  4259. refreshToogleQuickChat();
  4260. }
  4261.  
  4262. public void refreshMode() {
  4263. varsManager.sendVarBit(22872, legacyMode ? 1 : 0);
  4264. }
  4265.  
  4266. public void refreshInterfaceVars() {
  4267. resetAlwaysChatOnMode();
  4268. refreshMapIcons();
  4269. refreshSlimHeaders();
  4270. refreshLockInterfaceCustomization();
  4271. refreshClickThroughtChatBoxes();
  4272. refreshHideTitleBarsWhenLocked();
  4273. refreshTargetReticules();
  4274. refreshAlwaysShowTargetInformation();
  4275. refreshMakeXProgressWindow();
  4276. refreshSplitPrivateChat();
  4277. refreshTaskCompletePopups();
  4278. refreshTaskInformationWindow();
  4279. refreshTooglePlayerNotification();
  4280. refreshToogleAbilityCooldownTimer();
  4281. refreshSkillTargetBasedXPPopup();
  4282. refreshUTCClock();
  4283. refreshGameframe();
  4284. refreshMode();
  4285. refreshToggleBuffTimer(true);
  4286. }
  4287.  
  4288. public void switchBuffTimer() {
  4289. toggleBuffTimers = !toggleBuffTimers;
  4290. refreshToggleBuffTimer(false);
  4291. }
  4292.  
  4293. public boolean hasBuffTimersEnabled() {
  4294. return !legacyMode || toggleBuffTimers;
  4295. }
  4296.  
  4297. public void refreshToggleBuffTimer(boolean login) {
  4298. getVarsManager().sendVarBit(24832, toggleBuffTimers ? 1 : 0);
  4299. getPackets().sendExecuteScript(364, toggleBuffTimers ? 1 : 0, login ? 0 : 1);
  4300. }
  4301.  
  4302. public void setUTCClock(int type) {
  4303. this.utcClock = (byte) type;
  4304. refreshUTCClock();
  4305. }
  4306.  
  4307. public void refreshUTCClock() {
  4308. varsManager.sendVarBit(26696, utcClock);
  4309. getPackets().sendHideIComponent(635, 2, utcClock == 0);
  4310. getPackets().sendHideIComponent(635, 4, utcClock == 2);
  4311. }
  4312.  
  4313. public byte getUTCClock() {
  4314. return utcClock;
  4315. }
  4316.  
  4317. public boolean isApeAtoll() {
  4318. return (getX() >= 2693 && getX() <= 2821 && getY() >= 2693 && getY() <= 2817);
  4319. }
  4320.  
  4321. public void switchSkillTargetBasedXPPopup() {
  4322. skillTargetBasedXPPopup = !skillTargetBasedXPPopup;
  4323. refreshSkillTargetBasedXPPopup();
  4324. }
  4325.  
  4326. public void refreshSkillTargetBasedXPPopup() {
  4327. varsManager.sendVarBit(26632, skillTargetBasedXPPopup ? 1 : 0);
  4328. }
  4329.  
  4330. public void switchToogleAbilityCooldownTimer() {
  4331. toogleAbilityCooldownTimer = !toogleAbilityCooldownTimer;
  4332. refreshToogleAbilityCooldownTimer();
  4333. }
  4334.  
  4335. public void refreshToogleAbilityCooldownTimer() {
  4336. varsManager.sendVarBit(25401, toogleAbilityCooldownTimer ? 1 : 0);
  4337. }
  4338.  
  4339. public void switchTooglePlayerNotification() {
  4340. tooglePlayerNotification = !tooglePlayerNotification;
  4341. refreshTooglePlayerNotification();
  4342. }
  4343.  
  4344. public void refreshTooglePlayerNotification() {
  4345. varsManager.sendVarBit(24940, tooglePlayerNotification ? 1 : 0);
  4346. }
  4347.  
  4348. public void switchTaskInformationWindow() {
  4349. taskInformationWindow = !taskInformationWindow;
  4350. refreshTaskInformationWindow();
  4351. }
  4352.  
  4353. public void setAraxxiKills(){
  4354. this.araxxikills =+ 1;
  4355. }
  4356.  
  4357. public int getAraxxiKills(){
  4358. return araxxikills;
  4359. }
  4360.  
  4361.  
  4362.  
  4363.  
  4364.  
  4365. public void refreshTaskInformationWindow() {
  4366. varsManager.sendVarBit(3568, taskInformationWindow ? 0 : 1); // TODO
  4367. }
  4368.  
  4369. public void switchTaskCompletePopups() {
  4370. taskCompletePopup = !taskCompletePopup;
  4371. refreshTaskCompletePopups();
  4372. }
  4373.  
  4374. public void refreshTaskCompletePopups() {
  4375. // varsManager.sendVarBit(22310, taskCompletePopup ? 1 : 0); //TODO
  4376. }
  4377.  
  4378. private void resetAlwaysChatOnMode() {
  4379. setAlwaysChatOnMode(legacyMode);
  4380. }
  4381.  
  4382. public void setAssistantDeveloper(){
  4383. this.assistantDeveloper = true;
  4384. }
  4385.  
  4386. public boolean isAssistantDeveloper(){
  4387. return assistantDeveloper;
  4388. }
  4389.  
  4390. public boolean isAlwaysChatOnMode() {
  4391. return alwaysOnChatMode;
  4392. }
  4393.  
  4394. public void setAlwaysChatOnMode(boolean alwaysOnChatMode) {
  4395. this.alwaysOnChatMode = alwaysOnChatMode;
  4396. refreshAlwaysChatOnMode();
  4397. }
  4398.  
  4399. public void switchAlwaysChatOnMode() {
  4400. alwaysOnChatMode = !alwaysOnChatMode;
  4401. }
  4402.  
  4403. public void refreshAlwaysChatOnMode() {
  4404. varsManager.sendVarBit(22310, alwaysOnChatMode ? 1 : 0); // TODO
  4405. }
  4406.  
  4407. public ActionBar getActionbar() {
  4408. return actionbar;
  4409. }
  4410.  
  4411. public int getPreviousLodestone() {
  4412. return previousLodestone;
  4413. }
  4414.  
  4415. public void setPreviousLodestone(int previousLodestone) {
  4416. this.previousLodestone = previousLodestone;
  4417. }
  4418.  
  4419. public Prestige getPrestige() {
  4420. return prestige;
  4421. }
  4422. public int getPrestigeLevel() {
  4423. return prestigeLevel;
  4424. }
  4425.  
  4426. public void setPrestigeLevel(int level) {
  4427. this.prestigeLevel = level;
  4428. }
  4429.  
  4430. public void updateBuffs() {
  4431. getVarsManager().sendVar(895, getVarsManager().getValue(895) + 1);
  4432. }
  4433.  
  4434. // for buffs that arent used exept for showing, needs to be called at login
  4435. public void refreshBuffs() {
  4436. getEffectsManager().refreshAllBuffs();
  4437. refreshMeleeAttackRating();
  4438. refreshMeleeStrengthRating();
  4439. refreshDefenceRating();
  4440. }
  4441.  
  4442. @Override
  4443. public String getName() {
  4444. return getDisplayName();
  4445. }
  4446.  
  4447. @Override
  4448. public int getCombatLevel() {
  4449. return skills.getCombatLevelWithSummoning();
  4450. }
  4451.  
  4452. public boolean isRunAfterLoad() {
  4453. return runAfterLoad;
  4454. }
  4455.  
  4456. public Animation getDeathAnimation() {
  4457. setNextGraphics(new Graphics(Utils.random(2) == 0 ? 4399 : 4398));
  4458. return new Animation(21769);
  4459. }
  4460.  
  4461. public int[] getSubMenus() {
  4462. return subMenus;
  4463. }
  4464.  
  4465. public boolean hasFireImmunity() {
  4466. return getEffectsManager().hasActiveEffect(EffectType.FIRE_IMMUNITY)
  4467. || getEffectsManager().hasActiveEffect(EffectType.SUPER_FIRE_IMMUNITY);
  4468. }
  4469.  
  4470. @Override
  4471. public boolean isPoisonImmune() {
  4472. return getEffectsManager().hasActiveEffect(EffectType.ANTIPOISON);
  4473. }
  4474.  
  4475. public DoomsayerManager getDoomsayerManager() {
  4476. return doomsayerManager;
  4477. }
  4478.  
  4479. public PlayerExamineManager getPlayerExamineManager() {
  4480. return playerExamineManager;
  4481. }
  4482.  
  4483.  
  4484. public void setItemsTimer(){
  4485. this.itemsTimer = Utils.currentTimeMillis() + 86400000;
  4486. }
  4487.  
  4488. public long getItemsTimer(){
  4489. return itemsTimer;
  4490. }
  4491.  
  4492.  
  4493. public void setDesertHeat(){
  4494. this.desertHeat = Utils.currentTimeMillis() + 25000;
  4495. }
  4496.  
  4497. public long getDesertHeat(){
  4498. return itemsTimer;
  4499. }
  4500.  
  4501. @Override
  4502. public void giveXP() {
  4503. Combat.giveXP(this, getTotalDamageReceived() / 10);
  4504. }
  4505.  
  4506. public TimersManager getTimersManager() {
  4507. return timersManager;
  4508. }
  4509.  
  4510. public CosmeticsManager getCosmeticsManager() {
  4511. return cosmeticsManager;
  4512. }
  4513.  
  4514. public boolean isEnteredDonatorZone() {
  4515. return enteredDonatorZone;
  4516. }
  4517.  
  4518. public void setEnteredDonatorZone() {
  4519. enteredDonatorZone = true;
  4520. }
  4521.  
  4522. public void setCurrentOptionsMenu(int interfaceId) {
  4523. getTemporaryAttributtes().put(Key.OPTION_MENU, interfaceId);
  4524. }
  4525.  
  4526. public String getLastBossInstanceKey() {
  4527. return lastBossInstanceKey;
  4528. }
  4529.  
  4530. public void setLastBossInstanceKey(String lastBossInstanceKey) {
  4531. this.lastBossInstanceKey = lastBossInstanceKey;
  4532. }
  4533.  
  4534. public InstanceSettings getLastBossInstanceSettings() {
  4535. return lastBossInstanceSettings;
  4536. }
  4537.  
  4538. public void setLastBossInstanceSettings(InstanceSettings lastBossInstanceSettings) {
  4539. this.lastBossInstanceSettings = lastBossInstanceSettings;
  4540. }
  4541.  
  4542. public boolean isOwner() {
  4543. return rights == 2 && isOwner;
  4544. }
  4545.  
  4546. public boolean isAdmin() {
  4547.  
  4548. return rights == 2;
  4549. }
  4550.  
  4551. public boolean isMod() {
  4552. return rights == 1;
  4553. }
  4554.  
  4555.  
  4556. public boolean isInstantSwitchToLegacy() {
  4557. return instantSwitchToLegacy;
  4558. }
  4559.  
  4560. public void switchInstantSwitchToLegacy() {
  4561. instantSwitchToLegacy = !instantSwitchToLegacy;
  4562. }
  4563.  
  4564. public boolean getFinishedStarterGuide() {
  4565. return finishedStarterGuide;
  4566. }
  4567.  
  4568. public void setFinishedStarterGuide() {
  4569. this.finishedStarterGuide = true;
  4570. }
  4571.  
  4572. public boolean getCanEnterStartPortal(){
  4573. return canEnterStartPortal;
  4574. }
  4575.  
  4576. public void setCanEnterStartPortal(){
  4577. this.canEnterStartPortal = true;
  4578. }
  4579.  
  4580. public void resetLevels() {
  4581. for (int i = 0; i < 25; i++) {
  4582. if (i != 3) {
  4583. getSkills().set(i, 1);
  4584. getSkills().setXp(i, Skills.getXPForLevel(1));
  4585.  
  4586. }
  4587. }
  4588. getSkills().set(3, 10);
  4589. getSkills().setXp(3, Skills.getXPForLevel(10));
  4590. }
  4591.  
  4592. public boolean getStartedDemandsOfMonarchy(){
  4593. return roaldDemands;
  4594. }
  4595.  
  4596. public void setStartedDemandsOfMonarchy() {
  4597. this.roaldDemands = true;
  4598. }
  4599.  
  4600.  
  4601.  
  4602. public boolean getKilledDragith(){
  4603. return killedDragith;
  4604. }
  4605.  
  4606. public void setKilledDragith(){
  4607. this.killedDragith = true;
  4608. }
  4609.  
  4610.  
  4611. public boolean getFinishedFather(){
  4612. return finishedFather;
  4613. }
  4614.  
  4615. public void setFinishedFather(){
  4616. this.finishedFather = true;
  4617. }
  4618.  
  4619. public void setCanFightCaptain() {
  4620. this.canFightCaptain = true;
  4621. }
  4622.  
  4623.  
  4624. public void setVotePoints(int votePoints){
  4625. this.votePoints = votePoints;
  4626. }
  4627.  
  4628. public int getVotePoints(){
  4629. return votePoints;
  4630. }
  4631.  
  4632. public boolean getCanFightCaptain(){
  4633. return canFightCaptain;
  4634. }
  4635.  
  4636. public boolean getBeginSearch(){
  4637.  
  4638. return beginSearch;
  4639. }
  4640.  
  4641. public void setBeginSearch(){
  4642. this.beginSearch = true;
  4643. }
  4644.  
  4645. public boolean getCollectedParts(){
  4646.  
  4647. return collectedParts;
  4648. }
  4649.  
  4650. public void setCollectedParts() {
  4651. this.collectedParts = true;
  4652.  
  4653. }
  4654.  
  4655. public void setPrayedFor() {
  4656. this.prayedFor = true;
  4657. }
  4658.  
  4659. public long getXPTimer(){
  4660. return xptimer;
  4661. }
  4662.  
  4663. public void setXPTimer(){
  4664. this.xptimer = xptimer + 600000;
  4665. }
  4666.  
  4667. public void newTimer(){
  4668. this.xptimer = Utils.currentTimeMillis() + 600000;
  4669. }
  4670.  
  4671. public void resetXPTimer(){
  4672. this.xptimer = 0;
  4673. }
  4674.  
  4675. public boolean getPrayedFor(){
  4676.  
  4677. return prayedFor;
  4678. }
  4679.  
  4680. public boolean getDOMComplete() {
  4681. return DOMComplete;
  4682. }
  4683.  
  4684. public void setDOMComplete() {
  4685. this.DOMComplete = true;
  4686. }
  4687.  
  4688.  
  4689.  
  4690.  
  4691. public boolean getCoDComplete() {
  4692. return CoDComplete;
  4693. }
  4694.  
  4695. public void setCoDComplete() {
  4696. this.CoDComplete = true;
  4697. }
  4698.  
  4699. public void setSafeZone(boolean isAtSafeZone){
  4700. this.isAtSafeZone = isAtSafeZone;
  4701. }
  4702.  
  4703. public boolean getSafeZone(){
  4704. return isAtSafeZone;
  4705. }
  4706.  
  4707.  
  4708. public int getRank() {
  4709. // TODO Auto-generated method stub
  4710. return rights;
  4711. }
  4712.  
  4713. public void setCoverIntro(){
  4714. this.coverIntro = true;
  4715. }
  4716.  
  4717. public boolean getCoverIntro() {
  4718. return coverIntro;
  4719. }
  4720.  
  4721. }
Add Comment
Please, Sign In to add comment