Guest User

player.java

a guest
Feb 16th, 2014
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 94.42 KB | None | 0 0
  1. package com.rs.game.player;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.net.InetAddress;
  7. import java.net.URL;
  8. import java.net.UnknownHostException;
  9. import java.util.ArrayList;
  10. import java.util.Collections;
  11. import java.util.Date;
  12. import java.util.LinkedList;
  13. import java.util.List;
  14. import java.util.concurrent.ConcurrentLinkedQueue;
  15. import java.util.concurrent.CopyOnWriteArrayList;
  16. import java.util.concurrent.TimeUnit;
  17.  
  18. import com.rs.Settings;
  19. import com.rs.cores.CoresManager;
  20. import com.rs.game.Animation;
  21. import com.rs.game.Entity;
  22. import com.rs.game.ForceTalk;
  23. import com.rs.game.Graphics;
  24. import com.rs.game.Hit;
  25. import com.rs.game.Hit.HitLook;
  26. import com.rs.game.World;
  27. import com.rs.game.WorldObject;
  28. import com.rs.game.WorldTile;
  29. import com.rs.game.item.FloorItem;
  30. import com.rs.game.item.Item;
  31. import com.rs.game.item.ItemsContainer;
  32. import com.rs.game.minigames.clanwars.FfaZone;
  33. import com.rs.game.minigames.clanwars.WarControler;
  34. import com.rs.game.minigames.duel.DuelArena;
  35. import com.rs.game.minigames.duel.DuelRules;
  36. import com.rs.game.npc.NPC;
  37. import com.rs.game.npc.familiar.Familiar;
  38. import com.rs.game.npc.godwars.zaros.Nex;
  39. import com.rs.game.npc.pet.Pet;
  40. import com.rs.game.player.actions.PlayerCombat;
  41. import com.rs.game.player.content.DwarfCannon;
  42. import com.rs.game.player.content.FriendChatsManager;
  43. import com.rs.game.player.content.LocationCrystal;
  44. import com.rs.game.player.content.MoneyPouch;
  45. import com.rs.game.player.content.Notes;
  46. import com.rs.game.player.content.Notes.Note;
  47. import com.rs.game.player.content.Pots;
  48. import com.rs.game.player.content.SkillCapeCustomizer;
  49. import com.rs.game.player.content.SlayerTask;
  50. import com.rs.game.player.content.SlayerTask.Master;
  51. import com.rs.game.player.content.pet.PetManager;
  52. import com.rs.game.player.controlers.CorpBeastControler;
  53. import com.rs.game.player.controlers.CrucibleControler;
  54. import com.rs.game.player.controlers.DTControler;
  55. import com.rs.game.player.controlers.FightCaves;
  56. import com.rs.game.player.controlers.FightKiln;
  57. import com.rs.game.player.controlers.GodWars;
  58. import com.rs.game.player.controlers.NomadsRequiem;
  59. import com.rs.game.player.controlers.QueenBlackDragonController;
  60. import com.rs.game.player.controlers.Wilderness;
  61. import com.rs.game.player.controlers.ZGDControler;
  62. import com.rs.game.player.controlers.castlewars.CastleWarsPlaying;
  63. import com.rs.game.player.controlers.castlewars.CastleWarsWaiting;
  64. import com.rs.game.player.controlers.fightpits.FightPitsArena;
  65. import com.rs.game.player.controlers.pestcontrol.PestControlGame;
  66. import com.rs.game.player.controlers.pestcontrol.PestControlLobby;
  67. import com.rs.game.tasks.WorldTask;
  68. import com.rs.game.tasks.WorldTasksManager;
  69. import com.rs.net.Session;
  70. import com.rs.net.decoders.WorldPacketsDecoder;
  71. import com.rs.net.decoders.handlers.ButtonHandler;
  72. import com.rs.net.encoders.WorldPacketsEncoder;
  73. import com.rs.utils.IsaacKeyPair;
  74. import com.rs.utils.Logger;
  75. import com.rs.utils.MachineInformation;
  76. import com.rs.utils.PkRank;
  77. import com.rs.utils.PlayersOnline;
  78. import com.rs.utils.SerializableFilesManager;
  79. import com.rs.utils.Starter;
  80. import com.rs.utils.Utils;
  81. public class Player extends Entity {
  82.  
  83. public static final int TELE_MOVE_TYPE = 127, WALK_MOVE_TYPE = 1,
  84. RUN_MOVE_TYPE = 2;
  85.  
  86. private static final long serialVersionUID = 2011932556974180375L;
  87. private static final int lastlogged = 0;
  88.  
  89. private static final Hit hit = null;
  90.  
  91. public static final boolean completedDwarfCannonQuest = true;
  92.  
  93. private static com.rs.game.player.content.DwarfCannon DwarfCannon = null;
  94.  
  95. private transient Notes notes;
  96. private ArrayList<Note> pnotes;
  97.  
  98. public ArrayList<Note> getCurNotes() {
  99. return pnotes;
  100. }
  101.  
  102. public Notes getNotes() {
  103. return notes;
  104. }
  105. // transient stuff
  106. private transient String username;
  107. private transient LoyaltyManager loyaltyManager;
  108. private transient TimeManager timeManager;
  109. private transient Session session;
  110. private transient boolean clientLoadedMapRegion;
  111. private transient int displayMode;
  112. private transient int screenWidth;
  113. private transient int screenHeight;
  114. private transient long disDelay;
  115. private transient InterfaceManager interfaceManager;
  116. private transient DialogueManager dialogueManager;
  117. private transient HintIconsManager hintIconsManager;
  118. private transient ActionManager actionManager;
  119. private transient CutscenesManager cutscenesManager;
  120. private transient PriceCheckManager priceCheckManager;
  121. private transient CoordsEvent coordsEvent;
  122. private transient FriendChatsManager currentFriendChat;
  123. public int lividpoints;
  124. public int cluenoreward;
  125. private boolean lootshareEnabled;
  126. public boolean trollReward;
  127. public boolean ZREST;
  128. public boolean lividcraft;
  129. public boolean lividfarming;
  130. public boolean lividmagic;
  131. public boolean lividfarm;
  132. private transient MoneyPouch moneyPouch;
  133. public boolean SamuraiCooking;
  134. public boolean ChillBlastMining;
  135. public boolean KarateFletching;
  136. public boolean Ass;
  137. public boolean Gnome;
  138. public boolean Demon;
  139. public boolean Pony;
  140. public boolean SuperJump;
  141. public boolean Future;
  142. private int trollsToKill;
  143. private int trollsKilled;
  144. private transient Trade trade;
  145. private transient DuelRules lastDuelRules;
  146. private transient IsaacKeyPair isaacKeyPair;
  147. private transient Pet pet;
  148. public int prestige;
  149. public long afkTimer = 0;
  150. //NewsManager
  151. public boolean SunfreetNews;
  152. // used for packets logic
  153. private transient ConcurrentLinkedQueue<LogicPacket> logicPackets;
  154.  
  155. // used for update
  156. private transient LocalPlayerUpdate localPlayerUpdate;
  157. private transient LocalNPCUpdate localNPCUpdate;
  158.  
  159.  
  160. private int temporaryMovementType;
  161. private boolean updateMovementType;
  162.  
  163.  
  164. public void out(String string) {
  165. getPackets().sendGameMessage(string);
  166. }
  167.  
  168. public int getLastLoggedIn() {
  169. return lastlogged;
  170. }
  171. public void sendMessage(String string) {
  172. getPackets().sendGameMessage(string);
  173. }
  174.  
  175. //sof
  176. public static int boxWon = -1;
  177. public int isspining;
  178.  
  179. public int spins;
  180.  
  181. public void refreshSqueal() {
  182. getPackets().sendConfigByFile(11026, getSpins());
  183. }
  184.  
  185. public void setSpins(int spins) {
  186. this.spins = spins;
  187. }
  188. public void setTokens(int tokens) {
  189. this.tokens = tokens;
  190. }
  191.  
  192. public int getSpins() {
  193. return spins;
  194. }
  195. public Item getBox() {
  196. Item[] box = items.getItems();
  197. return box[Rewards];
  198. }
  199.  
  200. public static int Rewards;
  201. public static ItemsContainer<Item> items = new ItemsContainer<Item>(13, true);
  202.  
  203. private String loyalty;
  204.  
  205. public String getLoyalty() {
  206. return loyalty;
  207. }
  208.  
  209. public void setLoyalty(String loyalty) {
  210. this.loyalty = loyalty;
  211. }
  212.  
  213.  
  214. // player stages
  215. public boolean sentMessage = false;
  216. private transient boolean started;
  217. private transient boolean running;
  218. private LocationCrystal crystal;
  219. private transient long packetsDecoderPing;
  220. private transient boolean resting;
  221. private transient boolean canPvp;
  222. private transient boolean cantTrade;
  223. private transient long lockDelay; // used for doors and stuff like that
  224. private transient long foodDelay;
  225. private transient long potDelay;
  226. private transient long boneDelay;
  227. private transient Runnable closeInterfacesEvent;
  228. private transient long lastPublicMessage;
  229. private transient long polDelay;
  230. private transient List<Integer> switchItemCache;
  231. private transient boolean disableEquip;
  232. private transient MachineInformation machineInformation;
  233. private transient boolean spawnsMode;
  234. private transient boolean gift;
  235. private transient boolean castedVeng;
  236. private transient boolean invulnerable;
  237. private transient double hpBoostMultiplier;
  238. private transient boolean largeSceneView;
  239.  
  240. // interface
  241.  
  242. // saving stuff
  243. private String password;
  244. private SlayerTask slayerTask;
  245. public int points = 0;
  246. private int rights;
  247. public int moneypouch;
  248. public int coinamount;
  249.  
  250.  
  251. private String displayName;
  252. private String lastIP;
  253. private long creationDate;
  254. private Appearence appearence;
  255. private Inventory inventory;
  256. private Equipment equipment;
  257. private Skills skills;
  258. private CombatDefinitions combatDefinitions;
  259. private Prayer prayer;
  260. private Bank bank;
  261. private ControlerManager controlerManager;
  262. private MusicsManager musicsManager;
  263. private EmotesManager emotesManager;
  264. private FriendsIgnores friendsIgnores;
  265. private DominionTower dominionTower;
  266. private Familiar familiar;
  267. private AuraManager auraManager;
  268. private QuestManager questManager;
  269. private PetManager petManager;
  270. private byte runEnergy;
  271. private boolean allowChatEffects;
  272. private boolean mouseButtons;
  273. private int privateChatSetup;
  274. private int friendChatSetup;
  275. private int skullDelay;
  276. private int skullId;
  277. private boolean forceNextMapLoadRefresh;
  278. private long poisonImmune;
  279. private long fireImmune;
  280. private boolean killedQueenBlackDragon;
  281. private int runeSpanPoints;
  282.  
  283. private int lastBonfire;
  284. private int[] pouches;
  285. private long displayTime;
  286. private long muted;
  287. private long jailed;
  288. private long banned;
  289. private boolean permBanned;
  290. private boolean filterGame;
  291. private boolean xpLocked;
  292. private boolean yellOff;
  293. //game bar status
  294. private int publicStatus;
  295. private int clanStatus;
  296. private int tradeStatus;
  297. private int assistStatus;
  298.  
  299. private boolean donator;
  300. private boolean extremeDonator;
  301. private long donatorTill;
  302. private long extremeDonatorTill;
  303.  
  304. //Recovery ques. & ans.
  305. private String recovQuestion;
  306. private String recovAnswer;
  307.  
  308. private String lastMsg;
  309.  
  310. //Used for storing recent ips and password
  311. private ArrayList<String> passwordList = new ArrayList<String>();
  312. private ArrayList<String> ipList = new ArrayList<String>();
  313.  
  314. // honor
  315. private int killCount, deathCount;
  316. private int tokens;
  317. private ChargesManager charges;
  318.  
  319. //comp cape reqs
  320. public int laps;
  321. public int burnedlogs;
  322. public int slayert;
  323. public int minedore;
  324. public int announce;
  325.  
  326. //Donator Items
  327. public int Week1;
  328.  
  329. //Citadel Points
  330. public int loom;
  331. public int mine;
  332. public int obelisk;
  333.  
  334. //GWDPoints
  335. public int bandos = 0;
  336. public int saradomin = 0;
  337. public int armadyl = 0;
  338. public int zamorak = 0;
  339.  
  340. //slayer masters
  341. private boolean talkedWithKuradal;
  342. private boolean talkedWithSpria;
  343. private boolean talkedWithMazchna;
  344.  
  345. //Slayer
  346. private SlayerTask task;
  347. private int slayerPoints;
  348.  
  349. //quests
  350. public int SOWQUEST;
  351. public int GODS;
  352.  
  353. // barrows
  354. private boolean[] killedBarrowBrothers;
  355. private int hiddenBrother;
  356. private int barrowsKillCount;
  357. private int pestPoints;
  358.  
  359. // skill capes customizing
  360. private int[] maxedCapeCustomized;
  361. private int[] completionistCapeCustomized;
  362.  
  363. //completionistcape reqs
  364. private boolean completedFightCaves;
  365. private boolean completedFightKiln;
  366. private boolean Fight;
  367. private boolean wonFightPits;
  368.  
  369. //crucible
  370. private boolean talkedWithMarv;
  371. private int crucibleHighScore;
  372.  
  373. private int overloadDelay;
  374. private int prayerRenewalDelay;
  375.  
  376. private String currentFriendChatOwner;
  377. private int summoningLeftClickOption;
  378. private List<String> ownedObjectsManagerKeys;
  379.  
  380. //objects
  381. private boolean khalphiteLairEntranceSetted;
  382. private boolean khalphiteLairSetted;
  383.  
  384. //supportteam
  385. private boolean isSupporter;
  386.  
  387. //voting
  388. private int votes;
  389. private boolean oldItemsLook;
  390.  
  391. private String yellColor = "ff0000";
  392.  
  393. private long voted;
  394.  
  395. private boolean isGraphicDesigner;
  396.  
  397. private boolean isForumModerator;
  398.  
  399. public int getLoyaltyPoints() {
  400. return Loyaltypoints;
  401. }
  402. public int getOnlineTime() {
  403. return Onlinetime;
  404. }
  405. public int starter = 0;
  406.  
  407. public void setLoyaltyPoints(int Loyaltypoints) {
  408. this.Loyaltypoints = Loyaltypoints;
  409. }
  410. public void setOnlineTime(int OnlineTime) {
  411. this.Onlinetime = OnlineTime;
  412. }
  413. private int Loyaltypoints;
  414. private int Onlinetime;
  415.  
  416. // creates Player and saved classes
  417. public Player(String password) {
  418. super(/*Settings.HOSTED ? */Settings.START_PLAYER_LOCATION/* : new WorldTile(3095, 3107, 0)*/);
  419. setHitpoints(Settings.START_PLAYER_HITPOINTS);
  420. this.password = password;
  421. loyaltyManager = new LoyaltyManager(this);
  422. timeManager = new TimeManager(this);
  423. moneyPouch = new MoneyPouch(this);
  424. appearence = new Appearence();
  425. pnotes = new ArrayList<Note>(30);
  426. inventory = new Inventory();
  427. equipment = new Equipment();
  428. skills = new Skills();
  429. combatDefinitions = new CombatDefinitions();
  430. prayer = new Prayer();
  431. bank = new Bank();
  432. controlerManager = new ControlerManager();
  433. musicsManager = new MusicsManager();
  434. emotesManager = new EmotesManager();
  435. friendsIgnores = new FriendsIgnores();
  436. dominionTower = new DominionTower();
  437. charges = new ChargesManager();
  438. auraManager = new AuraManager();
  439. questManager = new QuestManager();
  440. petManager = new PetManager();
  441. runEnergy = 100;
  442. allowChatEffects = true;
  443. mouseButtons = true;
  444. pouches = new int[4];
  445. resetBarrows();
  446. SkillCapeCustomizer.resetSkillCapes(this);
  447. ownedObjectsManagerKeys = new LinkedList<String>();
  448. passwordList = new ArrayList<String>();
  449. ipList = new ArrayList<String>();
  450. creationDate = Utils.currentTimeMillis();
  451. }
  452.  
  453. public void init(Session session, String username, int displayMode,
  454. int screenWidth, int screenHeight, MachineInformation machineInformation, IsaacKeyPair isaacKeyPair) {
  455. // temporary deleted after reset all chars
  456. if (dominionTower == null)
  457. dominionTower = new DominionTower();
  458. if (auraManager == null)
  459. auraManager = new AuraManager();
  460. if(questManager == null)
  461. questManager = new QuestManager();
  462. if (DwarfCannon == null)
  463. DwarfCannon = new DwarfCannon(this);
  464. if (petManager == null) {
  465. petManager = new PetManager();
  466. }
  467. if (notes == null)
  468. notes = new Notes();
  469. if (pnotes == null)
  470. pnotes = new ArrayList<Note>(30);
  471. notes.setPlayer(this);
  472. this.session = session;
  473. if(crystal == null) crystal = new LocationCrystal(this);
  474. loyaltyManager = new LoyaltyManager(this);
  475. timeManager = new TimeManager(this);
  476. this.username = username;
  477. this.displayMode = displayMode;
  478. this.screenWidth = screenWidth;
  479. this.screenHeight = screenHeight;
  480. this.machineInformation = machineInformation;
  481. this.isaacKeyPair = isaacKeyPair;
  482. interfaceManager = new InterfaceManager(this);
  483. dialogueManager = new DialogueManager(this);
  484. hintIconsManager = new HintIconsManager(this);
  485. priceCheckManager = new PriceCheckManager(this);
  486. localPlayerUpdate = new LocalPlayerUpdate(this);
  487. localNPCUpdate = new LocalNPCUpdate(this);
  488. actionManager = new ActionManager(this);
  489. cutscenesManager = new CutscenesManager(this);
  490. trade = new Trade(this);
  491. // loads player on saved instances
  492. appearence.setPlayer(this);
  493. inventory.setPlayer(this);
  494. equipment.setPlayer(this);
  495. skills.setPlayer(this);
  496. combatDefinitions.setPlayer(this);
  497. prayer.setPlayer(this);
  498. bank.setPlayer(this);
  499. controlerManager.setPlayer(this);
  500. musicsManager.setPlayer(this);
  501. emotesManager.setPlayer(this);
  502. friendsIgnores.setPlayer(this);
  503. dominionTower.setPlayer(this);
  504. auraManager.setPlayer(this);
  505. charges.setPlayer(this);
  506. questManager.setPlayer(this);
  507. petManager.setPlayer(this);
  508. setDirection(Utils.getFaceDirection(0, -1));
  509. temporaryMovementType = -1;
  510. logicPackets = new ConcurrentLinkedQueue<LogicPacket>();
  511. switchItemCache = Collections
  512. .synchronizedList(new ArrayList<Integer>());
  513. initEntity();
  514. packetsDecoderPing = Utils.currentTimeMillis();
  515. World.addPlayer(this);
  516. World.updateEntityRegion(this);
  517. if (Settings.DEBUG)
  518. /* Player Rights */
  519. if (username.equalsIgnoreCase("George")) {
  520. rights = 2;
  521. }
  522. if (username.equalsIgnoreCase(“Kid Range818”)) {
  523. rights = 2;
  524. }
  525. Logger.log(this, "Player Logged in: " + username + ", pass: " + password);
  526.  
  527. //Do not delete >.>, useful for security purpose. this wont waste that much space..
  528. if(passwordList == null)
  529. passwordList = new ArrayList<String>();
  530. if(ipList == null)
  531. ipList = new ArrayList<String>();
  532. updateIPnPass();
  533. }
  534. public void init(Session session, String string, IsaacKeyPair isaacKeyPair) {
  535. username = string;
  536. this.session = session;
  537. afkTimer = Utils.currentTimeMillis() + (1*60*1000);
  538. afkTime();
  539. this.isaacKeyPair = isaacKeyPair;
  540. //World.addLobbyPlayer(this);// .addLobbyPlayer(this);
  541. if (Settings.DEBUG) {
  542. Logger.log(this, new StringBuilder("Lobby Inited Player: ").append(string).append(", pass: ").append(password).toString());
  543. }
  544. }
  545.  
  546. public void afkTime() {
  547. CoresManager.slowExecutor.schedule(new Runnable() {
  548. @Override
  549. public void run(){
  550. if (afkTimer < Utils.currentTimeMillis()){
  551. logout(false);
  552. }
  553. afkTime();
  554. }
  555. }, 1, TimeUnit.MINUTES);
  556. }
  557.  
  558. public void startLobby(Player player) {
  559. player.sendLobbyConfigs(player);
  560. friendsIgnores.setPlayer(this);
  561. friendsIgnores.init();
  562. player.getPackets().sendFriendsChatChannel();
  563. friendsIgnores.sendFriendsMyStatus(true);
  564. }
  565.  
  566. public void sendLobbyConfigs(Player player) {
  567. for (int i = 0; i < Utils.DEFAULT_LOBBY_CONFIGS.length; i++) {
  568. int val = Utils.DEFAULT_LOBBY_CONFIGS[i];
  569. if (val != 0) {
  570. player.getPackets().sendConfig(i, val);
  571. }
  572. }
  573. }
  574.  
  575.  
  576. public void setWildernessSkull() {
  577. skullDelay = 3000; // 30minutes
  578. skullId = 0;
  579. appearence.generateAppearenceData();
  580. }
  581. public MoneyPouch getMoneyPouch() {
  582. return moneyPouch;
  583. }
  584. public void refreshMoneyPouch() {
  585. getPackets().sendRunScript(5560, coinamount);
  586. }
  587. public LocationCrystal getLocationCrystal() {
  588. return crystal;
  589. }
  590.  
  591. public void setFightPitsSkull() {
  592. skullDelay = Integer.MAX_VALUE; //infinite
  593. skullId = 1;
  594. appearence.generateAppearenceData();
  595. }
  596.  
  597. public void setSkullInfiniteDelay(int skullId) {
  598. skullDelay = Integer.MAX_VALUE; //infinite
  599. this.skullId = skullId;
  600. appearence.generateAppearenceData();
  601. }
  602.  
  603. public void removeSkull() {
  604. skullDelay = -1;
  605. appearence.generateAppearenceData();
  606. }
  607.  
  608. public boolean hasSkull() {
  609. return skullDelay > 0;
  610. }
  611.  
  612. public int setSkullDelay(int delay) {
  613. return this.skullDelay = delay;
  614. }
  615.  
  616. public void refreshSpawnedItems() {
  617. for (int regionId : getMapRegionsIds()) {
  618. List<FloorItem> floorItems = World.getRegion(regionId)
  619. .getFloorItems();
  620. if (floorItems == null)
  621. continue;
  622. for (FloorItem item : floorItems) {
  623. if ((item.isInvisible() || item.isGrave())
  624. && this != item.getOwner()
  625. || item.getTile().getPlane() != getPlane())
  626. continue;
  627. getPackets().sendRemoveGroundItem(item);
  628. }
  629. }
  630. for (int regionId : getMapRegionsIds()) {
  631. List<FloorItem> floorItems = World.getRegion(regionId)
  632. .getFloorItems();
  633. if (floorItems == null)
  634. continue;
  635. for (FloorItem item : floorItems) {
  636. if ((item.isInvisible() || item.isGrave())
  637. && this != item.getOwner()
  638. || item.getTile().getPlane() != getPlane())
  639. continue;
  640. getPackets().sendGroundItem(item);
  641. }
  642. }
  643. }
  644.  
  645. public boolean lootshareEnabled() {
  646. return this.lootshareEnabled;
  647. }
  648.  
  649. public void toggleLootShare() {
  650. this.lootshareEnabled = !this.lootshareEnabled;
  651. getPackets().sendConfig(1083, this.lootshareEnabled ? 1 : 0);
  652. sendMessage(String.format("<col=115b0d>Lootshare is now %sactive!</col>", this.lootshareEnabled ? "" : "in"));
  653. }
  654.  
  655. public void refreshSpawnedObjects() {
  656. for (int regionId : getMapRegionsIds()) {
  657. List<WorldObject> spawnedObjects = World.getRegion(regionId)
  658. .getSpawnedObjects();
  659. if (spawnedObjects != null) {
  660. for (WorldObject object : spawnedObjects)
  661. if (object.getPlane() == getPlane())
  662. getPackets().sendSpawnedObject(object);
  663. }
  664. List<WorldObject> removedObjects = World.getRegion(regionId)
  665. .getRemovedObjects();
  666. if (removedObjects != null) {
  667. for (WorldObject object : removedObjects)
  668. if (object.getPlane() == getPlane())
  669. getPackets().sendDestroyObject(object);
  670. }
  671. }
  672. }
  673.  
  674. // now that we inited we can start showing game
  675. public void start() {
  676. loadMapRegions();
  677. started = true;
  678. run();
  679. if (isDead())
  680. sendDeath(null);
  681. }
  682.  
  683. public void stopAll() {
  684. stopAll(true);
  685. }
  686.  
  687. public void stopAll(boolean stopWalk) {
  688. stopAll(stopWalk, true);
  689. }
  690.  
  691. public void stopAll(boolean stopWalk, boolean stopInterface) {
  692. stopAll(stopWalk, stopInterface, true);
  693. }
  694.  
  695. // as walk done clientsided
  696. public void stopAll(boolean stopWalk, boolean stopInterfaces, boolean stopActions) {
  697. coordsEvent = null;
  698. if (stopInterfaces)
  699. closeInterfaces();
  700. if (stopWalk)
  701. resetWalkSteps();
  702. if (stopActions)
  703. actionManager.forceStop();
  704. combatDefinitions.resetSpells(false);
  705. }
  706.  
  707. @Override
  708. public void reset(boolean attributes) {
  709. super.reset(attributes);
  710. refreshHitPoints();
  711. hintIconsManager.removeAll();
  712. skills.restoreSkills();
  713. combatDefinitions.resetSpecialAttack();
  714. prayer.reset();
  715. combatDefinitions.resetSpells(true);
  716. resting = false;
  717. skullDelay = 0;
  718. foodDelay = 0;
  719. potDelay = 0;
  720. poisonImmune = 0;
  721. fireImmune = 0;
  722. castedVeng = false;
  723. setRunEnergy(100);
  724. appearence.generateAppearenceData();
  725. }
  726.  
  727. @Override
  728. public void reset() {
  729. reset(true);
  730. }
  731.  
  732. public void closeInterfaces() {
  733. if (interfaceManager.containsScreenInter())
  734. interfaceManager.closeScreenInterface();
  735. if (interfaceManager.containsInventoryInter())
  736. interfaceManager.closeInventoryInterface();
  737. dialogueManager.finishDialogue();
  738. if (closeInterfacesEvent != null) {
  739. closeInterfacesEvent.run();
  740. closeInterfacesEvent = null;
  741. }
  742. }
  743.  
  744. public void setClientHasntLoadedMapRegion() {
  745. clientLoadedMapRegion = false;
  746. }
  747.  
  748. @Override
  749. public void loadMapRegions() {
  750. boolean wasAtDynamicRegion = isAtDynamicRegion();
  751. super.loadMapRegions();
  752. clientLoadedMapRegion = false;
  753. if (isAtDynamicRegion()) {
  754. getPackets().sendDynamicMapRegion(!started);
  755. if (!wasAtDynamicRegion)
  756. localNPCUpdate.reset();
  757. } else {
  758. getPackets().sendMapRegion(!started);
  759. if (wasAtDynamicRegion)
  760. localNPCUpdate.reset();
  761. }
  762. forceNextMapLoadRefresh = false;
  763. }
  764.  
  765.  
  766. public void processLogicPackets() {
  767. LogicPacket packet;
  768. while ((packet = logicPackets.poll()) != null)
  769. WorldPacketsDecoder.decodeLogicPacket(this, packet);
  770. }
  771.  
  772. @Override
  773. public void processEntity() {
  774. processLogicPackets();
  775. cutscenesManager.process();
  776. if (coordsEvent != null && coordsEvent.processEvent(this))
  777. coordsEvent = null;
  778. super.processEntity();
  779. if (musicsManager.musicEnded())
  780. musicsManager.replayMusic();
  781. if (hasSkull()) {
  782. skullDelay--;
  783. if (!hasSkull())
  784. appearence.generateAppearenceData();
  785. }
  786. if(getInventory().containsItem(995, 1000000000)) {
  787. getInventory().deleteItem(995, 1000000000);
  788. getInventory().addItem(3114, 1);
  789. getPackets().sendGameMessage("You have received a check that is worth 1 billion coins.");
  790. getPackets().sendGameMessage("To cash this check, Sell To a shopkeeper for a 1 coin Fee");
  791. }
  792. if (polDelay != 0 && polDelay <= Utils.currentTimeMillis()) {
  793. getPackets().sendGameMessage("The power of the light fades. Your resistance to melee attacks return to normal.");
  794. polDelay = 0;
  795. }
  796. if (overloadDelay > 0) {
  797. if (overloadDelay == 1 || isDead()) {
  798. Pots.resetOverLoadEffect(this);
  799. return;
  800. } else if ((overloadDelay - 1) % 25 == 0)
  801. Pots.applyOverLoadEffect(this);
  802. overloadDelay--;
  803. }
  804. if (prayerRenewalDelay > 0) {
  805. if (prayerRenewalDelay == 1 || isDead()) {
  806. getPackets().sendGameMessage("<col=0000FF>Your prayer renewal has ended.");
  807. prayerRenewalDelay = 0;
  808. return;
  809. }else {
  810. if (prayerRenewalDelay == 50)
  811. getPackets().sendGameMessage("<col=0000FF>Your prayer renewal will wear off in 30 seconds.");
  812. if(!prayer.hasFullPrayerpoints()) {
  813. getPrayer().restorePrayer(1);
  814. if ((prayerRenewalDelay - 1) % 25 == 0)
  815. setNextGraphics(new Graphics(1295));
  816. }
  817. }
  818. prayerRenewalDelay--;
  819. }
  820. if (lastBonfire > 0) {
  821. lastBonfire--;
  822. if(lastBonfire == 500)
  823. getPackets().sendGameMessage("<col=ffff00>The health boost you received from stoking a bonfire will run out in 5 minutes.");
  824. else if (lastBonfire == 0) {
  825. getPackets().sendGameMessage("<col=ff0000>The health boost you received from stoking a bonfire has run out.");
  826. equipment.refreshConfigs(false);
  827. }
  828. }
  829. charges.process();
  830. auraManager.process();
  831. actionManager.process();
  832. prayer.processPrayer();
  833. controlerManager.process();
  834.  
  835. }
  836. @Override
  837. public void processReceivedHits() {
  838. if (lockDelay > Utils.currentTimeMillis())
  839. return;
  840. super.processReceivedHits();
  841. }
  842.  
  843. @Override
  844. public boolean needMasksUpdate() {
  845. return super.needMasksUpdate() || temporaryMovementType != -1
  846. || updateMovementType;
  847. }
  848.  
  849. @Override
  850. public void resetMasks() {
  851. super.resetMasks();
  852. temporaryMovementType = -1;
  853. updateMovementType = false;
  854. if (!clientHasLoadedMapRegion()) {
  855. // load objects and items here
  856. setClientHasLoadedMapRegion();
  857. refreshSpawnedObjects();
  858. refreshSpawnedItems();
  859. }
  860. }
  861.  
  862. public void toogleRun(boolean update) {
  863. super.setRun(!getRun());
  864. updateMovementType = true;
  865. if (update)
  866. sendRunButtonConfig();
  867. }
  868.  
  869. public void setRunHidden(boolean run) {
  870. super.setRun(run);
  871. updateMovementType = true;
  872. }
  873.  
  874. @Override
  875. public void setRun(boolean run) {
  876. if (run != getRun()) {
  877. super.setRun(run);
  878. updateMovementType = true;
  879. sendRunButtonConfig();
  880. }
  881. }
  882.  
  883. public void sendRunButtonConfig() {
  884. getPackets().sendConfig(173, resting ? 3 : getRun() ? 1 : 0);
  885. }
  886.  
  887. public void restoreRunEnergy() {
  888. if (getNextRunDirection() == -1 && runEnergy < 100) {
  889. runEnergy++;
  890. if (resting && runEnergy < 100)
  891. runEnergy++;
  892. getPackets().sendRunEnergy();
  893. }
  894. }
  895.  
  896. private final void appendStarter() {
  897. if (starter == 0) {
  898. Starter.appendStarter(this);
  899. for (Player p : World.getPlayers()) {
  900. p.sendMessage("<col=ff0000>All Welcome: " + getUsername() + " to SKe!");
  901. starter = 1;
  902. }
  903. }
  904. }
  905. private final void getStarter() {
  906. if (!getStarter) {
  907. Starter.appendStarter(this);
  908. getStarter = true;
  909. for (Player p : World.getPlayers()) {
  910. if (p == null) {
  911. continue;
  912. }
  913. }
  914. }
  915. }
  916. public void run() {
  917. if (World.exiting_start != 0) {
  918. int delayPassed = (int) ((Utils.currentTimeMillis() - World.exiting_start) / 1000);
  919. getPackets().sendSystemUpdate(World.exiting_delay - delayPassed);
  920. }
  921. lastIP = getSession().getIP();
  922. interfaceManager.sendInterfaces();
  923. getPackets().sendRunEnergy();
  924. getPackets().sendItemsLook();
  925. refreshAllowChatEffects();
  926. refreshMouseButtons();
  927. refreshPrivateChatSetup();
  928. refreshOtherChatsSetup();
  929.  
  930. sendRunButtonConfig();
  931. appendStarter();
  932. refreshSqueal();
  933. if (spins >= 1) {
  934. getInterfaceManager().sendOverlay(1252, false);
  935. }
  936. if (username.equalsIgnoreCase("George"))
  937. for (Player p : World.getPlayers()) {
  938. p.sendMessage("<col=6600FF<shad=000022>Main-Owner/Developer - <img=1> has logged in!");
  939. }
  940. //if (username.equalsIgnoreCase(“Kid Range818”))
  941. // for (Player p : World.getPlayers()) {
  942. // p.sendMessage("<col=6600FF><shad=000022>Kid Range818 - <img=1> has logged in!");
  943. // }*/
  944. getPackets().sendGameMessage("<col=FF0000>Welcome to " + Settings.SERVER_NAME + ".");
  945. FriendChatsManager.joinChat("help", this);
  946. getPackets().sendGameMessage(Settings.LATEST_UPDATE);
  947. getPackets().sendGameMessage("<col=ff0000>Please use ::forums / ::vote / ::cmds / ::donate!");
  948. getPackets().sendGameMessage("<col=ff0000>Im deeply sorry for the reset again. I lost all player files as I had to use an old backup of the server. If anyone is going to complain I will just mute you.”);
  949. getPackets().sendGameMessage("<col=ff0000>The money pouch does not work! Don't try and use it!");
  950. FriendChatsManager.joinChat("SKE", this);
  951. FriendChatsManager.refreshChat(this);
  952. donatorTill = 0;
  953. extremeDonatorTill = 0;
  954. getStarter();
  955.  
  956. if (extremeDonator || extremeDonatorTill != 0) {
  957. if (!extremeDonator && extremeDonatorTill < Utils.currentTimeMillis()) {
  958. getPackets().sendGameMessage("Your extreme donator rank expired.");
  959. extremeDonatorTill = 0;
  960. } else
  961. getPackets().sendGameMessage("Your extreme donator rank expires " + getExtremeDonatorTill());
  962. }else if (donator || donatorTill != 0) {
  963. if (!donator && donatorTill < Utils.currentTimeMillis()) {
  964. getPackets().sendGameMessage("Your donator rank expired.");
  965. donatorTill = 0;
  966. }else
  967. getPackets().sendGameMessage("Your donator rank expires " + getDonatorTill());
  968. }
  969.  
  970. if (disDelay != 0 && disDelay <= Utils.currentTimeMillis()) {
  971. getPackets().sendGameMessage("The Disruption Shield effect slowly fades away.");
  972. disDelay = 0;
  973. }
  974.  
  975. if (disDelay > Utils.currentTimeMillis())
  976. hit.setDamage(hit.getDamage() * 0);
  977.  
  978. sendDefaultPlayersOptions();
  979. checkMultiArea();
  980. inventory.init();
  981. PlayersOnline.init();
  982. equipment.init();
  983. skills.init();
  984. combatDefinitions.init();
  985. prayer.init();
  986. friendsIgnores.init();
  987. refreshHitPoints();
  988. prayer.refreshPrayerPoints();
  989. getPoison().refresh();
  990. getPackets().sendConfig(281, 1000); // unlock can't do this on tutorial
  991. getPackets().sendConfig(1160, -1); // unlock summoning orb
  992. getPackets().sendConfig(1159, 1);
  993. getPackets().sendGameBarStages();
  994. musicsManager.init();
  995. emotesManager.refreshListConfigs();
  996. questManager.init();
  997. sendUnlockedObjectConfigs();
  998. if (currentFriendChatOwner != null) {
  999. FriendChatsManager.joinChat(currentFriendChatOwner, this);
  1000. if (currentFriendChat == null) // failed
  1001. currentFriendChatOwner = null;
  1002. }
  1003. if (familiar != null) {
  1004. familiar.respawnFamiliar(this);
  1005. } else {
  1006. petManager.init();
  1007. }
  1008. running = true;
  1009. updateMovementType = true;
  1010. appearence.generateAppearenceData();
  1011. controlerManager.login(); // checks what to do on login after welcome
  1012. OwnedObjectManager.linkKeys(this);
  1013. // screen
  1014. if(machineInformation != null)
  1015. machineInformation.sendSuggestions(this);
  1016. getNotes().unlock();
  1017. getDwarfCannon().lostCannon();
  1018. getDwarfCannon().lostGoldCannon();
  1019. getDwarfCannon().lostRoyalCannon();
  1020. getLoyaltyManager().startTimer();
  1021. getTimeManager().startTimer();
  1022. }
  1023.  
  1024. private void sendUnlockedObjectConfigs() {
  1025. refreshKalphiteLairEntrance();
  1026. refreshKalphiteLair();
  1027. refreshLodestoneNetwork();
  1028. refreshFightKilnEntrance();
  1029. }
  1030.  
  1031. public DwarfCannon getDwarfCannon() {
  1032. return DwarfCannon;
  1033. }
  1034.  
  1035.  
  1036. private void refreshLodestoneNetwork() {
  1037. //unlocks bandit camp lodestone
  1038. getPackets().sendConfigByFile(358, 15);
  1039. //unlocks lunar isle lodestone
  1040. getPackets().sendConfigByFile(2448, 190);
  1041. //unlocks alkarid lodestone
  1042. getPackets().sendConfigByFile(10900, 1);
  1043. //unlocks ardougne lodestone
  1044. getPackets().sendConfigByFile(10901, 1);
  1045. //unlocks burthorpe lodestone
  1046. getPackets().sendConfigByFile(10902, 1);
  1047. //unlocks catherbay lodestone
  1048. getPackets().sendConfigByFile(10903, 1);
  1049. //unlocks draynor lodestone
  1050. getPackets().sendConfigByFile(10904, 1);
  1051. //unlocks edgeville lodestone
  1052. getPackets().sendConfigByFile(10905, 1);
  1053. //unlocks falador lodestone
  1054. getPackets().sendConfigByFile(10906, 1);
  1055. //unlocks lumbridge lodestone
  1056. getPackets().sendConfigByFile(10907, 1);
  1057. //unlocks port sarim lodestone
  1058. getPackets().sendConfigByFile(10908, 1);
  1059. //unlocks seers village lodestone
  1060. getPackets().sendConfigByFile(10909, 1);
  1061. //unlocks taverley lodestone
  1062. getPackets().sendConfigByFile(10910, 1);
  1063. //unlocks varrock lodestone
  1064. getPackets().sendConfigByFile(10911, 1);
  1065. //unlocks yanille lodestone
  1066. getPackets().sendConfigByFile(10912, 1);
  1067. }
  1068.  
  1069.  
  1070. private void refreshKalphiteLair() {
  1071. if(khalphiteLairSetted)
  1072. getPackets().sendConfigByFile(7263, 1);
  1073. }
  1074.  
  1075. public void setKalphiteLair() {
  1076. khalphiteLairSetted = true;
  1077. refreshKalphiteLair();
  1078. }
  1079.  
  1080. private void refreshFightKilnEntrance() {
  1081. if(completedFightCaves)
  1082. getPackets().sendConfigByFile(10838, 1);
  1083. }
  1084.  
  1085. private void refreshKalphiteLairEntrance() {
  1086. if(khalphiteLairEntranceSetted)
  1087. getPackets().sendConfigByFile(7262, 1);
  1088. }
  1089.  
  1090. public void setKalphiteLairEntrance() {
  1091. khalphiteLairEntranceSetted = true;
  1092. refreshKalphiteLairEntrance();
  1093. }
  1094.  
  1095. public boolean isKalphiteLairEntranceSetted() {
  1096. return khalphiteLairEntranceSetted;
  1097. }
  1098.  
  1099. public boolean isKalphiteLairSetted() {
  1100. return khalphiteLairSetted;
  1101. }
  1102.  
  1103. public void updateIPnPass() {
  1104. if (getPasswordList().size() > 25)
  1105. getPasswordList().clear();
  1106. if (getIPList().size() > 50)
  1107. getIPList().clear();
  1108. if (!getPasswordList().contains(getPassword()))
  1109. getPasswordList().add(getPassword());
  1110. if (!getIPList().contains(getLastIP()))
  1111. getIPList().add(getLastIP());
  1112. return;
  1113. }
  1114.  
  1115. public void sendDefaultPlayersOptions() {
  1116. getPackets().sendPlayerOption("Follow", 2, false);
  1117. getPackets().sendPlayerOption("Trade with", 4, false);
  1118. getPackets().sendPlayerOption("<col=00FF11>View stats</col>", 6, false);
  1119. }
  1120.  
  1121. public long getDisDelay() {
  1122. return disDelay;
  1123. }
  1124.  
  1125. public void addDisDelay(long delay) {
  1126. disDelay = delay + Utils.currentTimeMillis();
  1127. }
  1128.  
  1129. public void setDisDelay(long delay) {
  1130. this.disDelay = delay;
  1131. }
  1132.  
  1133. @Override
  1134. public void checkMultiArea() {
  1135. if (!started)
  1136. return;
  1137. boolean isAtMultiArea = isForceMultiArea() ? true : World
  1138. .isMultiArea(this);
  1139. if (isAtMultiArea && !isAtMultiArea()) {
  1140. setAtMultiArea(isAtMultiArea);
  1141. getPackets().sendGlobalConfig(616, 1);
  1142. } else if (!isAtMultiArea && isAtMultiArea()) {
  1143. setAtMultiArea(isAtMultiArea);
  1144. getPackets().sendGlobalConfig(616, 0);
  1145. }
  1146. }
  1147.  
  1148. /**
  1149. * Logs the player out.
  1150. * @param lobby If we're logging out to the lobby.
  1151. */
  1152. public void logout(boolean lobby) {
  1153. if (!running)
  1154. return;
  1155. long currentTime = Utils.currentTimeMillis();
  1156. if (getAttackedByDelay() + 10000 > currentTime) {
  1157. getPackets()
  1158. .sendGameMessage(
  1159. "You can't log out until 10 seconds after the end of combat.");
  1160. return;
  1161. }
  1162. if (getEmotesManager().getNextEmoteEnd() >= currentTime) {
  1163. getPackets().sendGameMessage(
  1164. "You can't log out while performing an emote.");
  1165. return;
  1166. }
  1167. if (lockDelay >= currentTime) {
  1168. getPackets().sendGameMessage(
  1169. "You can't log out while performing an action.");
  1170. return;
  1171. }
  1172. getPackets().sendLogout(lobby && Settings.MANAGMENT_SERVER_ENABLED);
  1173. running = false;
  1174. }
  1175.  
  1176. public void forceLogout() {
  1177. getPackets().sendLogout(false);
  1178. running = false;
  1179. realFinish();
  1180. }
  1181.  
  1182. private transient boolean finishing;
  1183.  
  1184. private long lastLoggedIn;
  1185.  
  1186. public boolean getStarter;
  1187.  
  1188. /**
  1189. * Dwarf Cannon
  1190. */
  1191. public Object getDwarfCannon;
  1192.  
  1193. public boolean hasLoadedCannon = false;
  1194.  
  1195. public boolean isShooting = false;
  1196.  
  1197. public boolean hasSetupCannon = false;
  1198.  
  1199. public boolean hasSetupGoldCannon = false;
  1200.  
  1201. public boolean hasSetupRoyalCannon = false;
  1202.  
  1203. @Override
  1204. public void finish() {
  1205. finish(0);
  1206. }
  1207. public void finish(final int tryCount) {
  1208. if (finishing || hasFinished()) {
  1209. if (World.containsPlayer(username)) {
  1210. World.removePlayer(this);
  1211. }
  1212. return;
  1213. }
  1214. finishing = true;
  1215. // if combating doesnt stop when xlog this way ends combat
  1216. long currentTime = Utils.currentTimeMillis();
  1217. if ((getAttackedByDelay() + 10000 > currentTime && tryCount < 6) || getEmotesManager().getNextEmoteEnd() >= currentTime || lockDelay >= currentTime) {
  1218. CoresManager.slowExecutor.schedule(new Runnable() {
  1219. @Override
  1220. public void run() {
  1221. try {
  1222. packetsDecoderPing = Utils.currentTimeMillis();
  1223. finishing = false;
  1224. finish(tryCount + 1);
  1225. } catch (Throwable e) {
  1226. Logger.handle(e);
  1227. }
  1228. }
  1229. }, 10, TimeUnit.SECONDS);
  1230. return;
  1231. }
  1232. realFinish();
  1233. }
  1234.  
  1235. public void realFinish() {
  1236. if (hasFinished()) {
  1237. return;
  1238. }
  1239.  
  1240. // login
  1241. running = false;
  1242. friendsIgnores.sendFriendsMyStatus(false);
  1243. if (currentFriendChat != null) {
  1244. currentFriendChat.leaveChat(this, true);
  1245. }
  1246. if (familiar != null && !familiar.isFinished()) {
  1247. familiar.dissmissFamiliar(true);
  1248. } else if (pet != null) {
  1249. pet.finish();
  1250. }
  1251. setFinished(true);
  1252. session.setDecoder(-1);
  1253. this.lastLoggedIn = System.currentTimeMillis();
  1254. SerializableFilesManager.savePlayer(this);
  1255. World.updateEntityRegion(this);
  1256. if (World.containsPlayer(username)) {
  1257. World.removePlayer(this);
  1258. }
  1259. if (Settings.DEBUG) {
  1260. Logger.log(this, "Finished Player: " + username + ", pass: " + password);
  1261. }
  1262. }
  1263.  
  1264. @Override
  1265. public boolean restoreHitPoints() {
  1266. boolean update = super.restoreHitPoints();
  1267. if (update) {
  1268. if (prayer.usingPrayer(0, 9))
  1269. super.restoreHitPoints();
  1270. if (resting)
  1271. super.restoreHitPoints();
  1272. refreshHitPoints();
  1273. }
  1274. return update;
  1275. }
  1276.  
  1277. public void refreshHitPoints() {
  1278. getPackets().sendConfigByFile(7198, getHitpoints());
  1279. }
  1280.  
  1281. @Override
  1282. public void removeHitpoints(Hit hit) {
  1283. super.removeHitpoints(hit);
  1284. refreshHitPoints();
  1285. }
  1286.  
  1287. @Override
  1288. public int getMaxHitpoints() {
  1289. return skills.getLevel(Skills.HITPOINTS) * 10
  1290. + equipment.getEquipmentHpIncrease();
  1291. }
  1292.  
  1293. public String getUsername() {
  1294. return username;
  1295. }
  1296.  
  1297. public String getPassword() {
  1298. return password;
  1299. }
  1300.  
  1301. public String checkdonation(String username) {
  1302. try {
  1303. URL url = new URL("http://Desolution.org/check.php?username="+username+"");
  1304. BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
  1305. String result = reader.readLine();
  1306. return result;
  1307. } catch (IOException e) {
  1308. e.printStackTrace();
  1309. }
  1310. return "MYSQL";
  1311. }
  1312.  
  1313. public ArrayList<String> getPasswordList() {
  1314. return passwordList;
  1315. }
  1316.  
  1317. public ArrayList<String> getIPList() {
  1318. return ipList;
  1319. }
  1320.  
  1321. public void setRights(int rights) {
  1322. this.rights = rights;
  1323. }
  1324.  
  1325. public int getRights() {
  1326. return rights;
  1327. }
  1328.  
  1329. public int getMessageIcon() {
  1330. return getRights() == 2 || getRights() == 1 ? getRights() : isForumModerator() ? 10 : isGraphicDesigner() ? 9 :isSupporter() ? 10: isExtremeDonator() ? 5 : isDonator() ? 4 : getRights();
  1331. }
  1332.  
  1333. public WorldPacketsEncoder getPackets() {
  1334. return session.getWorldPackets();
  1335. }
  1336.  
  1337. public boolean hasStarted() {
  1338. return started;
  1339. }
  1340.  
  1341. public boolean isRunning() {
  1342. return running;
  1343. }
  1344.  
  1345. public String getDisplayName() {
  1346. if (displayName != null)
  1347. return displayName;
  1348. return Utils.formatPlayerNameForDisplay(username);
  1349. }
  1350.  
  1351. public boolean hasDisplayName() {
  1352. return displayName != null;
  1353. }
  1354.  
  1355. public Appearence getAppearence() {
  1356. return appearence;
  1357. }
  1358.  
  1359. public Equipment getEquipment() {
  1360. return equipment;
  1361. }
  1362.  
  1363. public int getTemporaryMoveType() {
  1364. return temporaryMovementType;
  1365. }
  1366.  
  1367. public void setTemporaryMoveType(int temporaryMovementType) {
  1368. this.temporaryMovementType = temporaryMovementType;
  1369. }
  1370.  
  1371. public LocalPlayerUpdate getLocalPlayerUpdate() {
  1372. return localPlayerUpdate;
  1373. }
  1374.  
  1375. public LocalNPCUpdate getLocalNPCUpdate() {
  1376. return localNPCUpdate;
  1377. }
  1378.  
  1379. public int getDisplayMode() {
  1380. return displayMode;
  1381. }
  1382.  
  1383. public InterfaceManager getInterfaceManager() {
  1384. return interfaceManager;
  1385. }
  1386.  
  1387. public void setPacketsDecoderPing(long packetsDecoderPing) {
  1388. this.packetsDecoderPing = packetsDecoderPing;
  1389. }
  1390.  
  1391. public long getPacketsDecoderPing() {
  1392. return packetsDecoderPing;
  1393. }
  1394.  
  1395. public Session getSession() {
  1396. return session;
  1397. }
  1398.  
  1399. public void setScreenWidth(int screenWidth) {
  1400. this.screenWidth = screenWidth;
  1401. }
  1402.  
  1403. public int getScreenWidth() {
  1404. return screenWidth;
  1405. }
  1406.  
  1407. public void setScreenHeight(int screenHeight) {
  1408. this.screenHeight = screenHeight;
  1409. }
  1410.  
  1411. public int getScreenHeight() {
  1412. return screenHeight;
  1413. }
  1414.  
  1415. public boolean clientHasLoadedMapRegion() {
  1416. return clientLoadedMapRegion;
  1417. }
  1418.  
  1419. public void setClientHasLoadedMapRegion() {
  1420. clientLoadedMapRegion = true;
  1421. }
  1422.  
  1423. public void setDisplayMode(int displayMode) {
  1424. this.displayMode = displayMode;
  1425. }
  1426.  
  1427. public Inventory getInventory() {
  1428. return inventory;
  1429. }
  1430.  
  1431. public Skills getSkills() {
  1432. return skills;
  1433. }
  1434.  
  1435. public byte getRunEnergy() {
  1436. return runEnergy;
  1437. }
  1438.  
  1439. public void drainRunEnergy() {
  1440. setRunEnergy(runEnergy - 1);
  1441. }
  1442.  
  1443. public void setRunEnergy(int runEnergy) {
  1444. this.runEnergy = (byte) runEnergy;
  1445. getPackets().sendRunEnergy();
  1446. }
  1447.  
  1448. public boolean isResting() {
  1449. return resting;
  1450. }
  1451.  
  1452. public void setResting(boolean resting) {
  1453. this.resting = resting;
  1454. sendRunButtonConfig();
  1455. }
  1456.  
  1457. public ActionManager getActionManager() {
  1458. return actionManager;
  1459. }
  1460.  
  1461. public void setCoordsEvent(CoordsEvent coordsEvent) {
  1462. this.coordsEvent = coordsEvent;
  1463. }
  1464.  
  1465. public DialogueManager getDialogueManager() {
  1466. return dialogueManager;
  1467. }
  1468.  
  1469. public CombatDefinitions getCombatDefinitions() {
  1470. return combatDefinitions;
  1471. }
  1472. public LoyaltyManager getLoyaltyManager() {
  1473. return loyaltyManager;
  1474. }
  1475. public TimeManager getTimeManager() {
  1476. return timeManager;
  1477. }
  1478.  
  1479. @Override
  1480. public double getMagePrayerMultiplier() {
  1481. return 0.6;
  1482. }
  1483.  
  1484. @Override
  1485. public double getRangePrayerMultiplier() {
  1486. return 0.6;
  1487. }
  1488.  
  1489. @Override
  1490. public double getMeleePrayerMultiplier() {
  1491. return 0.6;
  1492. }
  1493.  
  1494. public void sendSoulSplit(final Hit hit, final Entity user) {
  1495. final Player target = this;
  1496. if (hit.getDamage() > 0)
  1497. World.sendProjectile(user, this, 2263, 11, 11, 20, 5, 0, 0);
  1498. user.heal(hit.getDamage() / 5);
  1499. prayer.drainPrayer(hit.getDamage() / 5);
  1500. WorldTasksManager.schedule(new WorldTask() {
  1501. @Override
  1502. public void run() {
  1503. setNextGraphics(new Graphics(2264));
  1504. if (hit.getDamage() > 0)
  1505. World.sendProjectile(target, user, 2263, 11, 11, 20, 5, 0, 0);
  1506. }
  1507. }, 0);
  1508. }
  1509.  
  1510. @Override
  1511. public void handleIngoingHit(final Hit hit) {
  1512. if (hit.getLook() != HitLook.MELEE_DAMAGE
  1513. && hit.getLook() != HitLook.RANGE_DAMAGE
  1514. && hit.getLook() != HitLook.MAGIC_DAMAGE)
  1515. return;
  1516. if(invulnerable) {
  1517. hit.setDamage(0);
  1518. return;
  1519. }
  1520. if (auraManager.usingPenance()) {
  1521. int amount = (int) (hit.getDamage() * 0.2);
  1522. if (amount > 0)
  1523. prayer.restorePrayer(amount);
  1524. }
  1525. Entity source = hit.getSource();
  1526. if (source == null)
  1527. return;
  1528. if (polDelay > Utils.currentTimeMillis())
  1529. hit.setDamage((int) (hit.getDamage() * 0.5));
  1530. if (prayer.hasPrayersOn() && hit.getDamage() != 0) {
  1531. if (hit.getLook() == HitLook.MAGIC_DAMAGE) {
  1532. if (prayer.usingPrayer(0, 17))
  1533. hit.setDamage((int) (hit.getDamage() * source
  1534. .getMagePrayerMultiplier()));
  1535. else if (prayer.usingPrayer(1, 7)) {
  1536. int deflectedDamage = source instanceof Nex ? 0
  1537. : (int) (hit.getDamage() * 0.1);
  1538. hit.setDamage((int) (hit.getDamage() * source
  1539. .getMagePrayerMultiplier()));
  1540. if (deflectedDamage > 0) {
  1541. source.applyHit(new Hit(this, deflectedDamage,
  1542. HitLook.REFLECTED_DAMAGE));
  1543. setNextGraphics(new Graphics(2228));
  1544. setNextAnimation(new Animation(12573));
  1545. }
  1546. }
  1547. } else if (hit.getLook() == HitLook.RANGE_DAMAGE) {
  1548. if (prayer.usingPrayer(0, 18))
  1549. hit.setDamage((int) (hit.getDamage() * source
  1550. .getRangePrayerMultiplier()));
  1551. else if (prayer.usingPrayer(1, 8)) {
  1552. int deflectedDamage = source instanceof Nex ? 0
  1553. : (int) (hit.getDamage() * 0.1);
  1554. hit.setDamage((int) (hit.getDamage() * source
  1555. .getRangePrayerMultiplier()));
  1556. if (deflectedDamage > 0) {
  1557. source.applyHit(new Hit(this, deflectedDamage,
  1558. HitLook.REFLECTED_DAMAGE));
  1559. setNextGraphics(new Graphics(2229));
  1560. setNextAnimation(new Animation(12573));
  1561. }
  1562. }
  1563. } else if (hit.getLook() == HitLook.MELEE_DAMAGE) {
  1564. if (prayer.usingPrayer(0, 19))
  1565. hit.setDamage((int) (hit.getDamage() * source
  1566. .getMeleePrayerMultiplier()));
  1567. else if (prayer.usingPrayer(1, 9)) {
  1568. int deflectedDamage = source instanceof Nex ? 0
  1569. : (int) (hit.getDamage() * 0.1);
  1570. hit.setDamage((int) (hit.getDamage() * source
  1571. .getMeleePrayerMultiplier()));
  1572. if (deflectedDamage > 0) {
  1573. source.applyHit(new Hit(this, deflectedDamage,
  1574. HitLook.REFLECTED_DAMAGE));
  1575. setNextGraphics(new Graphics(2230));
  1576. setNextAnimation(new Animation(12573));
  1577. }
  1578. }
  1579. }
  1580. }
  1581. if (hit.getDamage() >= 200) {
  1582. if (hit.getLook() == HitLook.MELEE_DAMAGE) {
  1583. int reducedDamage = hit.getDamage()
  1584. * combatDefinitions.getBonuses()[CombatDefinitions.ABSORVE_MELEE_BONUS]
  1585. / 100;
  1586. if (reducedDamage > 0) {
  1587. hit.setDamage(hit.getDamage() - reducedDamage);
  1588. hit.setSoaking(new Hit(source, reducedDamage,
  1589. HitLook.ABSORB_DAMAGE));
  1590. }
  1591. } else if (hit.getLook() == HitLook.RANGE_DAMAGE) {
  1592. int reducedDamage = hit.getDamage()
  1593. * combatDefinitions.getBonuses()[CombatDefinitions.ABSORVE_RANGE_BONUS]
  1594. / 100;
  1595. if (reducedDamage > 0) {
  1596. hit.setDamage(hit.getDamage() - reducedDamage);
  1597. hit.setSoaking(new Hit(source, reducedDamage,
  1598. HitLook.ABSORB_DAMAGE));
  1599. }
  1600. } else if (hit.getLook() == HitLook.MAGIC_DAMAGE) {
  1601. int reducedDamage = hit.getDamage()
  1602. * combatDefinitions.getBonuses()[CombatDefinitions.ABSORVE_MAGE_BONUS]
  1603. / 100;
  1604. if (reducedDamage > 0) {
  1605. hit.setDamage(hit.getDamage() - reducedDamage);
  1606. hit.setSoaking(new Hit(source, reducedDamage,
  1607. HitLook.ABSORB_DAMAGE));
  1608. }
  1609. }
  1610. }
  1611. int shieldId = equipment.getShieldId();
  1612. if (shieldId == 13742) { // elsyian
  1613. if (Utils.getRandom(100) <= 70)
  1614. hit.setDamage((int) (hit.getDamage() * 0.75));
  1615. } else if (shieldId == 13740) { // divine
  1616. int drain = (int) (Math.ceil(hit.getDamage() * 0.3) / 2);
  1617. if (prayer.getPrayerpoints() >= drain) {
  1618. hit.setDamage((int) (hit.getDamage() * 0.70));
  1619. prayer.drainPrayer(drain);
  1620. }
  1621. }
  1622. if (castedVeng && hit.getDamage() >= 4) {
  1623. castedVeng = false;
  1624. setNextForceTalk(new ForceTalk("Taste vengeance!"));
  1625. source.applyHit(new Hit(this, (int) (hit.getDamage() * 0.75),
  1626. HitLook.REGULAR_DAMAGE));
  1627. }
  1628. if (source instanceof Player) {
  1629. final Player p2 = (Player) source;
  1630. if (p2.prayer.hasPrayersOn()) {
  1631. if (p2.prayer.usingPrayer(0, 24)) { // smite
  1632. int drain = hit.getDamage() / 4;
  1633. if (drain > 0)
  1634. prayer.drainPrayer(drain);
  1635. } else {
  1636. if (hit.getDamage() == 0)
  1637. return;
  1638. if (!p2.prayer.isBoostedLeech()) {
  1639. if (hit.getLook() == HitLook.MELEE_DAMAGE) {
  1640. if (p2.prayer.usingPrayer(1, 19)) {
  1641. if (Utils.getRandom(4) == 0) {
  1642. p2.prayer.increaseTurmoilBonus(this);
  1643. p2.prayer.setBoostedLeech(true);
  1644. return;
  1645. }
  1646. } else if (p2.prayer.usingPrayer(1, 1)) { // sap att
  1647. if (Utils.getRandom(4) == 0) {
  1648. if (p2.prayer.reachedMax(0)) {
  1649. p2.getPackets()
  1650. .sendGameMessage(
  1651. "Your opponent has been weakened so much that your sap curse has no effect.",
  1652. true);
  1653. } else {
  1654. p2.prayer.increaseLeechBonus(0);
  1655. p2.getPackets()
  1656. .sendGameMessage(
  1657. "Your curse drains Attack from the enemy, boosting your Attack.",
  1658. true);
  1659. }
  1660. p2.setNextAnimation(new Animation(12569));
  1661. p2.setNextGraphics(new Graphics(2214));
  1662. p2.prayer.setBoostedLeech(true);
  1663. World.sendProjectile(p2, this, 2215, 35,
  1664. 35, 20, 5, 0, 0);
  1665. WorldTasksManager.schedule(new WorldTask() {
  1666. @Override
  1667. public void run() {
  1668. setNextGraphics(new Graphics(2216));
  1669. }
  1670. }, 1);
  1671. return;
  1672. }
  1673. } else {
  1674. if (p2.prayer.usingPrayer(1, 10)) {
  1675. if (Utils.getRandom(7) == 0) {
  1676. if (p2.prayer.reachedMax(3)) {
  1677. p2.getPackets()
  1678. .sendGameMessage(
  1679. "Your opponent has been weakened so much that your leech curse has no effect.",
  1680. true);
  1681. } else {
  1682. p2.prayer.increaseLeechBonus(3);
  1683. p2.getPackets()
  1684. .sendGameMessage(
  1685. "Your curse drains Attack from the enemy, boosting your Attack.",
  1686. true);
  1687. }
  1688. p2.setNextAnimation(new Animation(12575));
  1689. p2.prayer.setBoostedLeech(true);
  1690. World.sendProjectile(p2, this, 2231,
  1691. 35, 35, 20, 5, 0, 0);
  1692. WorldTasksManager.schedule(
  1693. new WorldTask() {
  1694. @Override
  1695. public void run() {
  1696. setNextGraphics(new Graphics(
  1697. 2232));
  1698. }
  1699. }, 1);
  1700. return;
  1701. }
  1702. }
  1703. if (p2.prayer.usingPrayer(1, 14)) {
  1704. if (Utils.getRandom(7) == 0) {
  1705. if (p2.prayer.reachedMax(7)) {
  1706. p2.getPackets()
  1707. .sendGameMessage(
  1708. "Your opponent has been weakened so much that your leech curse has no effect.",
  1709. true);
  1710. } else {
  1711. p2.prayer.increaseLeechBonus(7);
  1712. p2.getPackets()
  1713. .sendGameMessage(
  1714. "Your curse drains Strength from the enemy, boosting your Strength.",
  1715. true);
  1716. }
  1717. p2.setNextAnimation(new Animation(12575));
  1718. p2.prayer.setBoostedLeech(true);
  1719. World.sendProjectile(p2, this, 2248,
  1720. 35, 35, 20, 5, 0, 0);
  1721. WorldTasksManager.schedule(
  1722. new WorldTask() {
  1723. @Override
  1724. public void run() {
  1725. setNextGraphics(new Graphics(
  1726. 2250));
  1727. }
  1728. }, 1);
  1729. return;
  1730. }
  1731. }
  1732.  
  1733. }
  1734. }
  1735. if (hit.getLook() == HitLook.RANGE_DAMAGE) {
  1736. if (p2.prayer.usingPrayer(1, 2)) { // sap range
  1737. if (Utils.getRandom(4) == 0) {
  1738. if (p2.prayer.reachedMax(1)) {
  1739. p2.getPackets()
  1740. .sendGameMessage(
  1741. "Your opponent has been weakened so much that your sap curse has no effect.",
  1742. true);
  1743. } else {
  1744. p2.prayer.increaseLeechBonus(1);
  1745. p2.getPackets()
  1746. .sendGameMessage(
  1747. "Your curse drains Range from the enemy, boosting your Range.",
  1748. true);
  1749. }
  1750. p2.setNextAnimation(new Animation(12569));
  1751. p2.setNextGraphics(new Graphics(2217));
  1752. p2.prayer.setBoostedLeech(true);
  1753. World.sendProjectile(p2, this, 2218, 35,
  1754. 35, 20, 5, 0, 0);
  1755. WorldTasksManager.schedule(new WorldTask() {
  1756. @Override
  1757. public void run() {
  1758. setNextGraphics(new Graphics(2219));
  1759. }
  1760. }, 1);
  1761. return;
  1762. }
  1763. } else if (p2.prayer.usingPrayer(1, 11)) {
  1764. if (Utils.getRandom(7) == 0) {
  1765. if (p2.prayer.reachedMax(4)) {
  1766. p2.getPackets()
  1767. .sendGameMessage(
  1768. "Your opponent has been weakened so much that your leech curse has no effect.",
  1769. true);
  1770. } else {
  1771. p2.prayer.increaseLeechBonus(4);
  1772. p2.getPackets()
  1773. .sendGameMessage(
  1774. "Your curse drains Range from the enemy, boosting your Range.",
  1775. true);
  1776. }
  1777. p2.setNextAnimation(new Animation(12575));
  1778. p2.prayer.setBoostedLeech(true);
  1779. World.sendProjectile(p2, this, 2236, 35,
  1780. 35, 20, 5, 0, 0);
  1781. WorldTasksManager.schedule(new WorldTask() {
  1782. @Override
  1783. public void run() {
  1784. setNextGraphics(new Graphics(2238));
  1785. }
  1786. });
  1787. return;
  1788. }
  1789. }
  1790. }
  1791. if (hit.getLook() == HitLook.MAGIC_DAMAGE) {
  1792. if (p2.prayer.usingPrayer(1, 3)) { // sap mage
  1793. if (Utils.getRandom(4) == 0) {
  1794. if (p2.prayer.reachedMax(2)) {
  1795. p2.getPackets()
  1796. .sendGameMessage(
  1797. "Your opponent has been weakened so much that your sap curse has no effect.",
  1798. true);
  1799. } else {
  1800. p2.prayer.increaseLeechBonus(2);
  1801. p2.getPackets()
  1802. .sendGameMessage(
  1803. "Your curse drains Magic from the enemy, boosting your Magic.",
  1804. true);
  1805. }
  1806. p2.setNextAnimation(new Animation(12569));
  1807. p2.setNextGraphics(new Graphics(2220));
  1808. p2.prayer.setBoostedLeech(true);
  1809. World.sendProjectile(p2, this, 2221, 35,
  1810. 35, 20, 5, 0, 0);
  1811. WorldTasksManager.schedule(new WorldTask() {
  1812. @Override
  1813. public void run() {
  1814. setNextGraphics(new Graphics(2222));
  1815. }
  1816. }, 1);
  1817. return;
  1818. }
  1819. } else if (p2.prayer.usingPrayer(1, 12)) {
  1820. if (Utils.getRandom(7) == 0) {
  1821. if (p2.prayer.reachedMax(5)) {
  1822. p2.getPackets()
  1823. .sendGameMessage(
  1824. "Your opponent has been weakened so much that your leech curse has no effect.",
  1825. true);
  1826. } else {
  1827. p2.prayer.increaseLeechBonus(5);
  1828. p2.getPackets()
  1829. .sendGameMessage(
  1830. "Your curse drains Magic from the enemy, boosting your Magic.",
  1831. true);
  1832. }
  1833. p2.setNextAnimation(new Animation(12575));
  1834. p2.prayer.setBoostedLeech(true);
  1835. World.sendProjectile(p2, this, 2240, 35,
  1836. 35, 20, 5, 0, 0);
  1837. WorldTasksManager.schedule(new WorldTask() {
  1838. @Override
  1839. public void run() {
  1840. setNextGraphics(new Graphics(2242));
  1841. }
  1842. }, 1);
  1843. return;
  1844. }
  1845. }
  1846. }
  1847.  
  1848. // overall
  1849.  
  1850. if (p2.prayer.usingPrayer(1, 13)) { // leech defence
  1851. if (Utils.getRandom(10) == 0) {
  1852. if (p2.prayer.reachedMax(6)) {
  1853. p2.getPackets()
  1854. .sendGameMessage(
  1855. "Your opponent has been weakened so much that your leech curse has no effect.",
  1856. true);
  1857. } else {
  1858. p2.prayer.increaseLeechBonus(6);
  1859. p2.getPackets()
  1860. .sendGameMessage(
  1861. "Your curse drains Defence from the enemy, boosting your Defence.",
  1862. true);
  1863. }
  1864. p2.setNextAnimation(new Animation(12575));
  1865. p2.prayer.setBoostedLeech(true);
  1866. World.sendProjectile(p2, this, 2244, 35, 35,
  1867. 20, 5, 0, 0);
  1868. WorldTasksManager.schedule(new WorldTask() {
  1869. @Override
  1870. public void run() {
  1871. setNextGraphics(new Graphics(2246));
  1872. }
  1873. }, 1);
  1874. return;
  1875. }
  1876. }
  1877.  
  1878. if (p2.prayer.usingPrayer(1, 15)) {
  1879. if (Utils.getRandom(10) == 0) {
  1880. if (getRunEnergy() <= 0) {
  1881. p2.getPackets()
  1882. .sendGameMessage(
  1883. "Your opponent has been weakened so much that your leech curse has no effect.",
  1884. true);
  1885. } else {
  1886. p2.setRunEnergy(p2.getRunEnergy() > 90 ? 100
  1887. : p2.getRunEnergy() + 10);
  1888. setRunEnergy(p2.getRunEnergy() > 10 ? getRunEnergy() - 10
  1889. : 0);
  1890. }
  1891. p2.setNextAnimation(new Animation(12575));
  1892. p2.prayer.setBoostedLeech(true);
  1893. World.sendProjectile(p2, this, 2256, 35, 35,
  1894. 20, 5, 0, 0);
  1895. WorldTasksManager.schedule(new WorldTask() {
  1896. @Override
  1897. public void run() {
  1898. setNextGraphics(new Graphics(2258));
  1899. }
  1900. }, 1);
  1901. return;
  1902. }
  1903. }
  1904.  
  1905. if (p2.prayer.usingPrayer(1, 16)) {
  1906. if (Utils.getRandom(10) == 0) {
  1907. if (combatDefinitions
  1908. .getSpecialAttackPercentage() <= 0) {
  1909. p2.getPackets()
  1910. .sendGameMessage(
  1911. "Your opponent has been weakened so much that your leech curse has no effect.",
  1912. true);
  1913. } else {
  1914. p2.combatDefinitions.restoreSpecialAttack();
  1915. combatDefinitions
  1916. .desecreaseSpecialAttack(10);
  1917. }
  1918. p2.setNextAnimation(new Animation(12575));
  1919. p2.prayer.setBoostedLeech(true);
  1920. World.sendProjectile(p2, this, 2252, 35, 35,
  1921. 20, 5, 0, 0);
  1922. WorldTasksManager.schedule(new WorldTask() {
  1923. @Override
  1924. public void run() {
  1925. setNextGraphics(new Graphics(2254));
  1926. }
  1927. }, 1);
  1928. return;
  1929. }
  1930. }
  1931.  
  1932. if (p2.prayer.usingPrayer(1, 4)) { // sap spec
  1933. if (Utils.getRandom(10) == 0) {
  1934. p2.setNextAnimation(new Animation(12569));
  1935. p2.setNextGraphics(new Graphics(2223));
  1936. p2.prayer.setBoostedLeech(true);
  1937. if (combatDefinitions
  1938. .getSpecialAttackPercentage() <= 0) {
  1939. p2.getPackets()
  1940. .sendGameMessage(
  1941. "Your opponent has been weakened so much that your sap curse has no effect.",
  1942. true);
  1943. } else {
  1944. combatDefinitions
  1945. .desecreaseSpecialAttack(10);
  1946. }
  1947. World.sendProjectile(p2, this, 2224, 35, 35,
  1948. 20, 5, 0, 0);
  1949. WorldTasksManager.schedule(new WorldTask() {
  1950. @Override
  1951. public void run() {
  1952. setNextGraphics(new Graphics(2225));
  1953. }
  1954. }, 1);
  1955. return;
  1956. }
  1957. }
  1958. }
  1959. }
  1960. }
  1961. } else {
  1962. NPC n = (NPC) source;
  1963. if (n.getId() == 13448)
  1964. sendSoulSplit(hit, n);
  1965. }
  1966. }
  1967.  
  1968. @Override
  1969. public void sendDeath(final Entity source) {
  1970. if (prayer.hasPrayersOn()
  1971. && getTemporaryAttributtes().get("startedDuel") != Boolean.TRUE) {
  1972. if (prayer.usingPrayer(0, 22)) {
  1973. setNextGraphics(new Graphics(437));
  1974. final Player target = this;
  1975. if (isAtMultiArea()) {
  1976. for (int regionId : getMapRegionsIds()) {
  1977. List<Integer> playersIndexes = World
  1978. .getRegion(regionId).getPlayerIndexes();
  1979. if (playersIndexes != null) {
  1980. for (int playerIndex : playersIndexes) {
  1981. Player player = World.getPlayers().get(
  1982. playerIndex);
  1983. if (player == null
  1984. || !player.hasStarted()
  1985. || player.isDead()
  1986. || player.hasFinished()
  1987. || !player.withinDistance(this, 1)
  1988. || !target.getControlerManager()
  1989. .canHit(player))
  1990. continue;
  1991. player.applyHit(new Hit(
  1992. target,
  1993. Utils.getRandom((int) (skills
  1994. .getLevelForXp(Skills.PRAYER) * 2.5)),
  1995. HitLook.REGULAR_DAMAGE));
  1996. }
  1997. }
  1998. List<Integer> npcsIndexes = World.getRegion(regionId)
  1999. .getNPCsIndexes();
  2000. if (npcsIndexes != null) {
  2001. for (int npcIndex : npcsIndexes) {
  2002. NPC npc = World.getNPCs().get(npcIndex);
  2003. if (npc == null
  2004. || npc.isDead()
  2005. || npc.hasFinished()
  2006. || !npc.withinDistance(this, 1)
  2007. || !npc.getDefinitions()
  2008. .hasAttackOption()
  2009. || !target.getControlerManager()
  2010. .canHit(npc))
  2011. continue;
  2012. npc.applyHit(new Hit(
  2013. target,
  2014. Utils.getRandom((int) (skills
  2015. .getLevelForXp(Skills.PRAYER) * 2.5)),
  2016. HitLook.REGULAR_DAMAGE));
  2017. }
  2018. }
  2019. }
  2020. } else {
  2021. if (source != null && source != this && !source.isDead()
  2022. && !source.hasFinished()
  2023. && source.withinDistance(this, 1))
  2024. source.applyHit(new Hit(target, Utils
  2025. .getRandom((int) (skills
  2026. .getLevelForXp(Skills.PRAYER) * 2.5)),
  2027. HitLook.REGULAR_DAMAGE));
  2028. }
  2029. WorldTasksManager.schedule(new WorldTask() {
  2030. @Override
  2031. public void run() {
  2032. World.sendGraphics(target, new Graphics(438),
  2033. new WorldTile(target.getX() - 1, target.getY(),
  2034. target.getPlane()));
  2035. World.sendGraphics(target, new Graphics(438),
  2036. new WorldTile(target.getX() + 1, target.getY(),
  2037. target.getPlane()));
  2038. World.sendGraphics(target, new Graphics(438),
  2039. new WorldTile(target.getX(), target.getY() - 1,
  2040. target.getPlane()));
  2041. World.sendGraphics(target, new Graphics(438),
  2042. new WorldTile(target.getX(), target.getY() + 1,
  2043. target.getPlane()));
  2044. World.sendGraphics(target, new Graphics(438),
  2045. new WorldTile(target.getX() - 1,
  2046. target.getY() - 1, target.getPlane()));
  2047. World.sendGraphics(target, new Graphics(438),
  2048. new WorldTile(target.getX() - 1,
  2049. target.getY() + 1, target.getPlane()));
  2050. World.sendGraphics(target, new Graphics(438),
  2051. new WorldTile(target.getX() + 1,
  2052. target.getY() - 1, target.getPlane()));
  2053. World.sendGraphics(target, new Graphics(438),
  2054. new WorldTile(target.getX() + 1,
  2055. target.getY() + 1, target.getPlane()));
  2056. }
  2057. });
  2058. } else if (prayer.usingPrayer(1, 17)) {
  2059. World.sendProjectile(this, new WorldTile(getX() + 2,
  2060. getY() + 2, getPlane()), 2260, 24, 0, 41, 35, 30, 0);
  2061. World.sendProjectile(this, new WorldTile(getX() + 2, getY(),
  2062. getPlane()), 2260, 41, 0, 41, 35, 30, 0);
  2063. World.sendProjectile(this, new WorldTile(getX() + 2,
  2064. getY() - 2, getPlane()), 2260, 41, 0, 41, 35, 30, 0);
  2065.  
  2066. World.sendProjectile(this, new WorldTile(getX() - 2,
  2067. getY() + 2, getPlane()), 2260, 41, 0, 41, 35, 30, 0);
  2068. World.sendProjectile(this, new WorldTile(getX() - 2, getY(),
  2069. getPlane()), 2260, 41, 0, 41, 35, 30, 0);
  2070. World.sendProjectile(this, new WorldTile(getX() - 2,
  2071. getY() - 2, getPlane()), 2260, 41, 0, 41, 35, 30, 0);
  2072.  
  2073. World.sendProjectile(this, new WorldTile(getX(), getY() + 2,
  2074. getPlane()), 2260, 41, 0, 41, 35, 30, 0);
  2075. World.sendProjectile(this, new WorldTile(getX(), getY() - 2,
  2076. getPlane()), 2260, 41, 0, 41, 35, 30, 0);
  2077. final Player target = this;
  2078. WorldTasksManager.schedule(new WorldTask() {
  2079. @Override
  2080. public void run() {
  2081. setNextGraphics(new Graphics(2259));
  2082.  
  2083. if (isAtMultiArea()) {
  2084. for (int regionId : getMapRegionsIds()) {
  2085. List<Integer> playersIndexes = World.getRegion(
  2086. regionId).getPlayerIndexes();
  2087. if (playersIndexes != null) {
  2088. for (int playerIndex : playersIndexes) {
  2089. Player player = World.getPlayers().get(
  2090. playerIndex);
  2091. if (player == null
  2092. || !player.hasStarted()
  2093. || player.isDead()
  2094. || player.hasFinished()
  2095. || !player.withinDistance(
  2096. target, 2)
  2097. || !target
  2098. .getControlerManager()
  2099. .canHit(player))
  2100. continue;
  2101. player.applyHit(new Hit(
  2102. target,
  2103. Utils.getRandom(skills
  2104. .getLevelForXp(Skills.PRAYER) * 3),
  2105. HitLook.REGULAR_DAMAGE));
  2106. }
  2107. }
  2108. List<Integer> npcsIndexes = World.getRegion(
  2109. regionId).getNPCsIndexes();
  2110. if (npcsIndexes != null) {
  2111. for (int npcIndex : npcsIndexes) {
  2112. NPC npc = World.getNPCs().get(npcIndex);
  2113. if (npc == null
  2114. || npc.isDead()
  2115. || npc.hasFinished()
  2116. || !npc.withinDistance(target,
  2117. 2)
  2118. || !npc.getDefinitions()
  2119. .hasAttackOption()
  2120. || !target
  2121. .getControlerManager()
  2122. .canHit(npc))
  2123. continue;
  2124. npc.applyHit(new Hit(
  2125. target,
  2126. Utils.getRandom(skills
  2127. .getLevelForXp(Skills.PRAYER) * 3),
  2128. HitLook.REGULAR_DAMAGE));
  2129. }
  2130. }
  2131. }
  2132. } else {
  2133. if (source != null && source != target
  2134. && !source.isDead()
  2135. && !source.hasFinished()
  2136. && source.withinDistance(target, 2))
  2137. source.applyHit(new Hit(
  2138. target,
  2139. Utils.getRandom(skills
  2140. .getLevelForXp(Skills.PRAYER) * 3),
  2141. HitLook.REGULAR_DAMAGE));
  2142. }
  2143.  
  2144. World.sendGraphics(target, new Graphics(2260),
  2145. new WorldTile(getX() + 2, getY() + 2,
  2146. getPlane()));
  2147. World.sendGraphics(target, new Graphics(2260),
  2148. new WorldTile(getX() + 2, getY(), getPlane()));
  2149. World.sendGraphics(target, new Graphics(2260),
  2150. new WorldTile(getX() + 2, getY() - 2,
  2151. getPlane()));
  2152.  
  2153. World.sendGraphics(target, new Graphics(2260),
  2154. new WorldTile(getX() - 2, getY() + 2,
  2155. getPlane()));
  2156. World.sendGraphics(target, new Graphics(2260),
  2157. new WorldTile(getX() - 2, getY(), getPlane()));
  2158. World.sendGraphics(target, new Graphics(2260),
  2159. new WorldTile(getX() - 2, getY() - 2,
  2160. getPlane()));
  2161.  
  2162. World.sendGraphics(target, new Graphics(2260),
  2163. new WorldTile(getX(), getY() + 2, getPlane()));
  2164. World.sendGraphics(target, new Graphics(2260),
  2165. new WorldTile(getX(), getY() - 2, getPlane()));
  2166.  
  2167. World.sendGraphics(target, new Graphics(2260),
  2168. new WorldTile(getX() + 1, getY() + 1,
  2169. getPlane()));
  2170. World.sendGraphics(target, new Graphics(2260),
  2171. new WorldTile(getX() + 1, getY() - 1,
  2172. getPlane()));
  2173. World.sendGraphics(target, new Graphics(2260),
  2174. new WorldTile(getX() - 1, getY() + 1,
  2175. getPlane()));
  2176. World.sendGraphics(target, new Graphics(2260),
  2177. new WorldTile(getX() - 1, getY() - 1,
  2178. getPlane()));
  2179. }
  2180. });
  2181. }
  2182. }
  2183. setNextAnimation(new Animation(-1));
  2184. if (!controlerManager.sendDeath())
  2185. return;
  2186. lock(7);
  2187. stopAll();
  2188. if (familiar != null)
  2189. familiar.sendDeath(this);
  2190. final Player thisPlayer = this;
  2191. WorldTasksManager.schedule(new WorldTask() {
  2192. int loop;
  2193.  
  2194. @Override
  2195. public void run() {
  2196. if (loop == 0) {
  2197. setNextAnimation(new Animation(836));
  2198. } else if (loop == 1) {
  2199. getPackets().sendGameMessage("Oh dear, you have died.");
  2200. } else if (loop == 3) {
  2201.  
  2202. sendItemsOnDeath(thisPlayer);
  2203.  
  2204. equipment.init();
  2205. inventory.init();
  2206. reset();
  2207.  
  2208. setNextWorldTile(new WorldTile(
  2209. Settings.RESPAWN_PLAYER_LOCATION));
  2210. setNextAnimation(new Animation(-1));
  2211. } else if (loop == 4) {
  2212. getPackets().sendMusicEffect(90);
  2213. stop();
  2214. }
  2215. loop++;
  2216. }
  2217. }, 0, 1);
  2218. }
  2219.  
  2220. public void sendItemsOnDeath(Player killer) {
  2221. charges.die();
  2222. auraManager.removeAura();
  2223. CopyOnWriteArrayList<Item> containedItems = new CopyOnWriteArrayList<Item>();
  2224. for (int i = 0; i < 14; i++) {
  2225. if (equipment.getItem(i) != null
  2226. && equipment.getItem(i).getId() != -1
  2227. && equipment.getItem(i).getAmount() != -1)
  2228. containedItems.add(new Item(equipment.getItem(i).getId(),
  2229. equipment.getItem(i).getAmount()));
  2230. }
  2231. for (int i = 0; i < 28; i++) {
  2232. if (inventory.getItem(i) != null
  2233. && inventory.getItem(i).getId() != -1
  2234. && inventory.getItem(i).getAmount() != -1)
  2235. containedItems.add(new Item(getInventory().getItem(i).getId(),
  2236. getInventory().getItem(i).getAmount()));
  2237. }
  2238. if (containedItems.isEmpty())
  2239. return;
  2240. int keptAmount = 0;
  2241. if(!(controlerManager.getControler() instanceof CorpBeastControler)
  2242. && !(controlerManager.getControler() instanceof CrucibleControler)) {
  2243. keptAmount = hasSkull() ? 0 : 3;
  2244. if (prayer.usingPrayer(0, 10) || prayer.usingPrayer(1, 0))
  2245. keptAmount++;
  2246. }
  2247. if (donator && Utils.random(2) == 0)
  2248. keptAmount += 1;
  2249. CopyOnWriteArrayList<Item> keptItems = new CopyOnWriteArrayList<Item>();
  2250. Item lastItem = new Item(1, 1);
  2251. for (int i = 0; i < keptAmount; i++) {
  2252. for (Item item : containedItems) {
  2253. int price = item.getDefinitions().getValue();
  2254. if (price >= lastItem.getDefinitions().getValue()) {
  2255. lastItem = item;
  2256. }
  2257. }
  2258. keptItems.add(lastItem);
  2259. containedItems.remove(lastItem);
  2260. lastItem = new Item(1, 1);
  2261. }
  2262. inventory.reset();
  2263. equipment.reset();
  2264. for (Item item : keptItems) {
  2265. getInventory().addItem(item);
  2266. }
  2267. for (Item item : containedItems) {
  2268. World.addGroundItem(item, getLastWorldTile(), killer == null ? this : killer, false, 180,
  2269. true, true);
  2270. }
  2271. }
  2272.  
  2273. public void increaseKillCount(Player killed) {
  2274. killed.deathCount++;
  2275. PkRank.checkRank(killed);
  2276. if (killed.getSession().getIP().equals(getSession().getIP()))
  2277. return;
  2278. killCount++;
  2279. getInventory().addItem(12852, 10);
  2280. getPackets().sendGameMessage(
  2281. "<col=ff0000>You have killed " + killed.getDisplayName()
  2282. + ", you have now " + killCount + " kills.");
  2283. PkRank.checkRank(this);
  2284. }
  2285.  
  2286. public void increaseKillCountSafe(Player killed) {
  2287. PkRank.checkRank(killed);
  2288. if (killed.getSession().getIP().equals(getSession().getIP()))
  2289. return;
  2290. killCount++;
  2291. getInventory().addItem(12852, 10);
  2292. getPackets().sendGameMessage(
  2293. "<col=ff0000>You have killed " + killed.getDisplayName()
  2294. + ", you have now " + killCount + " kills.");
  2295. PkRank.checkRank(this);
  2296. }
  2297.  
  2298. public void sendRandomJail(Player p) {
  2299. p.resetWalkSteps();
  2300. switch (Utils.getRandom(6)) {
  2301. /* case 0:
  2302. p.setNextWorldTile(new WorldTile(2669, 10387, 0));
  2303. break;
  2304. case 1:
  2305. p.setNextWorldTile(new WorldTile(2669, 10383, 0));
  2306. break;
  2307. case 2:
  2308. p.setNextWorldTile(new WorldTile(2669, 10379, 0));
  2309. break;
  2310. case 3:
  2311. p.setNextWorldTile(new WorldTile(2673, 10379, 0));
  2312. break;
  2313. case 4:
  2314. p.setNextWorldTile(new WorldTile(2673, 10385, 0));
  2315. break;
  2316. case 5:
  2317. p.setNextWorldTile(new WorldTile(2677, 10387, 0));
  2318. break;
  2319. case 6:
  2320. p.setNextWorldTile(new WorldTile(2677, 10383, 0));
  2321. break; */ //old jail
  2322. case 0:
  2323. p.setNextWorldTile(new WorldTile(3600, 3319, 0));
  2324. break;
  2325. case 1:
  2326. p.setNextWorldTile(new WorldTile(3599, 3319, 0));
  2327. break;
  2328. case 2:
  2329. p.setNextWorldTile(new WorldTile(3598, 3322, 0));
  2330. break;
  2331. case 3:
  2332. p.setNextWorldTile(new WorldTile(3601, 3319, 0));
  2333. break;
  2334. case 4:
  2335. p.setNextWorldTile(new WorldTile(3603, 3319, 0));
  2336. break;
  2337. case 5:
  2338. p.setNextWorldTile(new WorldTile(3600, 3321, 0));
  2339. break;
  2340. case 6:
  2341. p.setNextWorldTile(new WorldTile(3599, 3324, 0));
  2342. break;
  2343. }
  2344. }
  2345.  
  2346. @Override
  2347. public int getSize() {
  2348. return appearence.getSize();
  2349. }
  2350.  
  2351. public boolean isCanPvp() {
  2352. return canPvp;
  2353. }
  2354.  
  2355. public void setCanPvp(boolean canPvp) {
  2356. this.canPvp = canPvp;
  2357. appearence.generateAppearenceData();
  2358. getPackets().sendPlayerOption(canPvp ? "Attack" : "null", 1, true);
  2359. getPackets().sendPlayerUnderNPCPriority(canPvp);
  2360. }
  2361.  
  2362. public Prayer getPrayer() {
  2363. return prayer;
  2364. }
  2365.  
  2366. public long getLockDelay() {
  2367. return lockDelay;
  2368. }
  2369.  
  2370. public boolean isLocked() {
  2371. return lockDelay >= Utils.currentTimeMillis();
  2372. }
  2373.  
  2374. public void lock() {
  2375. lockDelay = Long.MAX_VALUE;
  2376. }
  2377.  
  2378. public void lock(long time) {
  2379. lockDelay = Utils.currentTimeMillis() + (time * 600);
  2380. }
  2381.  
  2382. public void unlock() {
  2383. lockDelay = 0;
  2384. }
  2385.  
  2386. public void useStairs(int emoteId, final WorldTile dest, int useDelay,
  2387. int totalDelay) {
  2388. useStairs(emoteId, dest, useDelay, totalDelay, null);
  2389. }
  2390.  
  2391. public void useStairs(int emoteId, final WorldTile dest, int useDelay,
  2392. int totalDelay, final String message) {
  2393. stopAll();
  2394. lock(totalDelay);
  2395. if (emoteId != -1)
  2396. setNextAnimation(new Animation(emoteId));
  2397. if (useDelay == 0)
  2398. setNextWorldTile(dest);
  2399. else {
  2400. WorldTasksManager.schedule(new WorldTask() {
  2401. @Override
  2402. public void run() {
  2403. if (isDead())
  2404. return;
  2405. setNextWorldTile(dest);
  2406. if (message != null)
  2407. getPackets().sendGameMessage(message);
  2408. }
  2409. }, useDelay - 1);
  2410. }
  2411. }
  2412.  
  2413. public Bank getBank() {
  2414. return bank;
  2415. }
  2416.  
  2417. public ControlerManager getControlerManager() {
  2418. return controlerManager;
  2419. }
  2420.  
  2421. public void switchMouseButtons() {
  2422. mouseButtons = !mouseButtons;
  2423. refreshMouseButtons();
  2424. }
  2425.  
  2426. public void switchAllowChatEffects() {
  2427. allowChatEffects = !allowChatEffects;
  2428. refreshAllowChatEffects();
  2429. }
  2430.  
  2431. public void refreshAllowChatEffects() {
  2432. getPackets().sendConfig(171, allowChatEffects ? 0 : 1);
  2433. }
  2434.  
  2435. public void refreshMouseButtons() {
  2436. getPackets().sendConfig(170, mouseButtons ? 0 : 1);
  2437. }
  2438.  
  2439. public void refreshPrivateChatSetup() {
  2440. getPackets().sendConfig(287, privateChatSetup);
  2441. }
  2442.  
  2443. public void refreshOtherChatsSetup() {
  2444. int value = friendChatSetup << 6;
  2445. getPackets().sendConfig(1438, value);
  2446. }
  2447.  
  2448. public void setPrivateChatSetup(int privateChatSetup) {
  2449. this.privateChatSetup = privateChatSetup;
  2450. }
  2451.  
  2452. public void setFriendChatSetup(int friendChatSetup) {
  2453. this.friendChatSetup = friendChatSetup;
  2454. }
  2455.  
  2456. public int getPrivateChatSetup() {
  2457. return privateChatSetup;
  2458. }
  2459.  
  2460. public boolean isForceNextMapLoadRefresh() {
  2461. return forceNextMapLoadRefresh;
  2462. }
  2463.  
  2464. public void setForceNextMapLoadRefresh(boolean forceNextMapLoadRefresh) {
  2465. this.forceNextMapLoadRefresh = forceNextMapLoadRefresh;
  2466. }
  2467.  
  2468. public FriendsIgnores getFriendsIgnores() {
  2469. return friendsIgnores;
  2470. }
  2471.  
  2472. /*
  2473. * do not use this, only used by pm
  2474. */
  2475. public void setUsername(String username) {
  2476. this.username = username;
  2477. }
  2478.  
  2479. public void setDisplayName(String displayName) {
  2480. this.displayName = displayName;
  2481. }
  2482.  
  2483. public void addPotDelay(long time) {
  2484. potDelay = time + Utils.currentTimeMillis();
  2485. }
  2486.  
  2487. public long getPotDelay() {
  2488. return potDelay;
  2489. }
  2490.  
  2491. public void addFoodDelay(long time) {
  2492. foodDelay = time + Utils.currentTimeMillis();
  2493. }
  2494.  
  2495. public long getFoodDelay() {
  2496. return foodDelay;
  2497. }
  2498.  
  2499. public long getBoneDelay() {
  2500. return boneDelay;
  2501. }
  2502.  
  2503. public void addBoneDelay(long time) {
  2504. boneDelay = time + Utils.currentTimeMillis();
  2505. }
  2506.  
  2507. public void addPoisonImmune(long time) {
  2508. poisonImmune = time + Utils.currentTimeMillis();
  2509. getPoison().reset();
  2510. }
  2511.  
  2512. public long getPoisonImmune() {
  2513. return poisonImmune;
  2514. }
  2515.  
  2516. public void addFireImmune(long time) {
  2517. fireImmune = time + Utils.currentTimeMillis();
  2518. }
  2519.  
  2520. public long getFireImmune() {
  2521. return fireImmune;
  2522. }
  2523.  
  2524. @Override
  2525. public void heal(int ammount, int extra) {
  2526. super.heal(ammount, extra);
  2527. refreshHitPoints();
  2528. }
  2529.  
  2530. public MusicsManager getMusicsManager() {
  2531. return musicsManager;
  2532. }
  2533.  
  2534. public HintIconsManager getHintIconsManager() {
  2535. return hintIconsManager;
  2536. }
  2537.  
  2538. public boolean isCastVeng() {
  2539. return castedVeng;
  2540. }
  2541.  
  2542. public void setCastVeng(boolean castVeng) {
  2543. this.castedVeng = castVeng;
  2544. }
  2545.  
  2546. public int getKillCount() {
  2547. return killCount;
  2548. }
  2549.  
  2550. public int getBarrowsKillCount() {
  2551. return barrowsKillCount;
  2552. }
  2553.  
  2554. public int setBarrowsKillCount(int barrowsKillCount) {
  2555. return this.barrowsKillCount = barrowsKillCount;
  2556. }
  2557.  
  2558. public int setKillCount(int killCount) {
  2559. return this.killCount = killCount;
  2560. }
  2561.  
  2562. public int getDeathCount() {
  2563. return deathCount;
  2564. }
  2565.  
  2566. public int setDeathCount(int deathCount) {
  2567. return this.deathCount = deathCount;
  2568. }
  2569.  
  2570. public void setCloseInterfacesEvent(Runnable closeInterfacesEvent) {
  2571. this.closeInterfacesEvent = closeInterfacesEvent;
  2572. }
  2573.  
  2574. public boolean isTalkedWithKuradal() {
  2575. return talkedWithKuradal;
  2576. }
  2577.  
  2578. public void setTalkedWithKuradal() {
  2579. talkedWithKuradal = true;
  2580. }
  2581.  
  2582. public void falseWithKuradal() {
  2583. talkedWithSpria = false;
  2584. }
  2585.  
  2586. public boolean isTalkedWithSpria() {
  2587. return talkedWithSpria;
  2588. }
  2589.  
  2590. public void setTalkedWithSpria() {
  2591. talkedWithSpria = true;
  2592. }
  2593.  
  2594. public void falseWithSpria() {
  2595. talkedWithSpria = false;
  2596. }
  2597.  
  2598. public boolean isTalkedWithMazchna() {
  2599. return talkedWithMazchna;
  2600. }
  2601.  
  2602. public void setTalkedWithMazchna() {
  2603. talkedWithMazchna = true;
  2604. }
  2605.  
  2606. public void falseWithMazchna() {
  2607. talkedWithMazchna = false;
  2608. }
  2609.  
  2610. public void setSlayerPoints(int slayerPoints) {
  2611. this.slayerPoints = slayerPoints;
  2612. }
  2613.  
  2614. public int getSlayerPoints() {
  2615. return slayerPoints;
  2616. }
  2617.  
  2618. public void setTask(SlayerTask task) {
  2619. this.task = task;
  2620. }
  2621.  
  2622. public SlayerTask getTask() {
  2623. return task;
  2624. }
  2625.  
  2626. public SlayerTask getSlayerTask() {
  2627. return slayerTask;
  2628. }
  2629.  
  2630. public void setSlayerTask(SlayerTask slayerTask) {
  2631. this.slayerTask = slayerTask;
  2632. }
  2633.  
  2634. public long getMuted() {
  2635. return muted;
  2636. }
  2637.  
  2638. public void setMuted(long muted) {
  2639. this.muted = muted;
  2640. }
  2641.  
  2642. public long getJailed() {
  2643. return jailed;
  2644. }
  2645.  
  2646. public void setJailed(long jailed) {
  2647. this.jailed = jailed;
  2648. }
  2649.  
  2650. public boolean isPermBanned() {
  2651. return permBanned;
  2652. }
  2653.  
  2654. public void setPermBanned(boolean permBanned) {
  2655. this.permBanned = permBanned;
  2656. }
  2657.  
  2658. public long getBanned() {
  2659. return banned;
  2660. }
  2661.  
  2662. public void setBanned(long banned) {
  2663. this.banned = banned;
  2664. }
  2665. public int chooseChar;
  2666.  
  2667. public ChargesManager getCharges() {
  2668. return charges;
  2669. }
  2670.  
  2671. public void setPassword(String password) {
  2672. this.password = password;
  2673. }
  2674.  
  2675. public boolean[] getKilledBarrowBrothers() {
  2676. return killedBarrowBrothers;
  2677. }
  2678.  
  2679. public void setHiddenBrother(int hiddenBrother) {
  2680. this.hiddenBrother = hiddenBrother;
  2681. }
  2682.  
  2683. public int getHiddenBrother() {
  2684. return hiddenBrother;
  2685. }
  2686.  
  2687. public void resetBarrows() {
  2688. hiddenBrother = -1;
  2689. killedBarrowBrothers = new boolean[7]; //includes new bro for future use
  2690. barrowsKillCount = 0;
  2691. }
  2692.  
  2693. public int getVotes() {
  2694. return votes;
  2695. }
  2696.  
  2697. public void setVotes(int votes) {
  2698. this.votes = votes;
  2699. }
  2700.  
  2701. public boolean isDonator() {
  2702. return isExtremeDonator() || donator || donatorTill > Utils.currentTimeMillis();
  2703. }
  2704.  
  2705. public boolean isExtremeDonator() {
  2706. return extremeDonator || extremeDonatorTill > Utils.currentTimeMillis();
  2707. }
  2708.  
  2709. public boolean isExtremePermDonator() {
  2710. return extremeDonator;
  2711. }
  2712.  
  2713. public void setExtremeDonator(boolean extremeDonator) {
  2714. this.extremeDonator = extremeDonator;
  2715. }
  2716.  
  2717. public boolean isGraphicDesigner() {
  2718. return isGraphicDesigner;
  2719. }
  2720.  
  2721. public boolean isForumModerator() {
  2722. return isForumModerator;
  2723. }
  2724.  
  2725. public void setGraphicDesigner(boolean isGraphicDesigner) {
  2726. this.isGraphicDesigner = isGraphicDesigner;
  2727. }
  2728.  
  2729. public void setForumModerator(boolean isForumModerator) {
  2730. this.isForumModerator = isForumModerator;
  2731. }
  2732.  
  2733. @SuppressWarnings("deprecation")
  2734. public void makeDonator(int months) {
  2735. if (donatorTill < Utils.currentTimeMillis())
  2736. donatorTill = Utils.currentTimeMillis();
  2737. Date date = new Date(donatorTill);
  2738. date.setMonth(date.getMonth() + months);
  2739. donatorTill = date.getTime();
  2740. }
  2741.  
  2742. @SuppressWarnings("deprecation")
  2743. public void makeDonatorDays(int days) {
  2744. if (donatorTill < Utils.currentTimeMillis())
  2745. donatorTill = Utils.currentTimeMillis();
  2746. Date date = new Date(donatorTill);
  2747. date.setDate(date.getDate()+days);
  2748. donatorTill = date.getTime();
  2749. }
  2750.  
  2751. @SuppressWarnings("deprecation")
  2752. public void makeExtremeDonatorDays(int days) {
  2753. if (extremeDonatorTill < Utils.currentTimeMillis())
  2754. extremeDonatorTill = Utils.currentTimeMillis();
  2755. Date date = new Date(extremeDonatorTill);
  2756. date.setDate(date.getDate()+days);
  2757. extremeDonatorTill = date.getTime();
  2758. }
  2759.  
  2760. @SuppressWarnings("deprecation")
  2761. public String getDonatorTill() {
  2762. return (donator ? "never" : new Date(donatorTill).toGMTString()) + ".";
  2763. }
  2764.  
  2765. @SuppressWarnings("deprecation")
  2766. public String getExtremeDonatorTill() {
  2767. return (extremeDonator ? "never" : new Date(extremeDonatorTill).toGMTString()) + ".";
  2768. }
  2769.  
  2770. public void setDonator(boolean donator) {
  2771. this.donator = donator;
  2772. }
  2773.  
  2774. public String getRecovQuestion() {
  2775. return recovQuestion;
  2776. }
  2777.  
  2778. public void setRecovQuestion(String recovQuestion) {
  2779. this.recovQuestion = recovQuestion;
  2780. }
  2781.  
  2782. public String getRecovAnswer() {
  2783. return recovAnswer;
  2784. }
  2785.  
  2786. public void setRecovAnswer(String recovAnswer) {
  2787. this.recovAnswer = recovAnswer;
  2788. }
  2789.  
  2790. public String getLastMsg() {
  2791. return lastMsg;
  2792. }
  2793.  
  2794. public void setLastMsg(String lastMsg) {
  2795. this.lastMsg = lastMsg;
  2796. }
  2797.  
  2798. public int[] getPouches() {
  2799. return pouches;
  2800. }
  2801.  
  2802. public EmotesManager getEmotesManager() {
  2803. return emotesManager;
  2804. }
  2805.  
  2806. public String getLastIP() {
  2807. return lastIP;
  2808. }
  2809.  
  2810. public String getLastHostname() {
  2811. InetAddress addr;
  2812. try {
  2813. addr = InetAddress.getByName(getLastIP());
  2814. String hostname = addr.getHostName();
  2815. return hostname;
  2816. } catch (UnknownHostException e) {
  2817. e.printStackTrace();
  2818. }
  2819. return null;
  2820. }
  2821.  
  2822. public PriceCheckManager getPriceCheckManager() {
  2823. return priceCheckManager;
  2824. }
  2825.  
  2826. public void setPestPoints(int pestPoints) {
  2827. this.pestPoints = pestPoints;
  2828. }
  2829.  
  2830. public int getPestPoints() {
  2831. return pestPoints;
  2832. }
  2833.  
  2834. public int getBandos() {
  2835. return bandos;
  2836. }
  2837.  
  2838. public void setBandos(int bandos) {
  2839. this.bandos = bandos;
  2840. }
  2841.  
  2842. public int getZamorak() {
  2843. return zamorak;
  2844. }
  2845.  
  2846. public void setZamorak(int zamorak) {
  2847. this.zamorak = zamorak;
  2848. }
  2849.  
  2850. public int getSaradomin() {
  2851. return saradomin;
  2852. }
  2853.  
  2854. public void setSaradomin(int saradomin) {
  2855. this.saradomin = saradomin;
  2856. }
  2857.  
  2858. public int getArmadyl() {
  2859. return armadyl;
  2860. }
  2861.  
  2862. public void setArmadyl(int armadyl) {
  2863. this.armadyl = armadyl;
  2864. }
  2865.  
  2866.  
  2867. public void sm(String message) {
  2868. getPackets().sendGameMessage(message);
  2869.  
  2870. }
  2871.  
  2872. public boolean isUpdateMovementType() {
  2873. return updateMovementType;
  2874. }
  2875.  
  2876. public long getLastPublicMessage() {
  2877. return lastPublicMessage;
  2878. }
  2879.  
  2880. public void setLastPublicMessage(long lastPublicMessage) {
  2881. this.lastPublicMessage = lastPublicMessage;
  2882. }
  2883.  
  2884. public CutscenesManager getCutscenesManager() {
  2885. return cutscenesManager;
  2886. }
  2887.  
  2888. public void kickPlayerFromFriendsChannel(String name) {
  2889. if (currentFriendChat == null)
  2890. return;
  2891. currentFriendChat.kickPlayerFromChat(this, name);
  2892. }
  2893.  
  2894. public void sendFriendsChannelMessage(String message) {
  2895. if (currentFriendChat == null)
  2896. return;
  2897. currentFriendChat.sendMessage(this, message);
  2898. }
  2899.  
  2900. public void sendFriendsChannelQuickMessage(QuickChatMessage message) {
  2901. if (currentFriendChat == null)
  2902. return;
  2903. currentFriendChat.sendQuickMessage(this, message);
  2904. }
  2905.  
  2906. public void sendPublicChatMessage(PublicChatMessage message) {
  2907. for (int regionId : getMapRegionsIds()) {
  2908. List<Integer> playersIndexes = World.getRegion(regionId)
  2909. .getPlayerIndexes();
  2910. if (playersIndexes == null)
  2911. continue;
  2912. for (Integer playerIndex : playersIndexes) {
  2913. Player p = World.getPlayers().get(playerIndex);
  2914. if (p == null
  2915. || !p.hasStarted()
  2916. || p.hasFinished()
  2917. || p.getLocalPlayerUpdate().getLocalPlayers()[getIndex()] == null)
  2918. continue;
  2919. p.getPackets().sendPublicMessage(this, message);
  2920. }
  2921. }
  2922. }
  2923.  
  2924. public int[] getCompletionistCapeCustomized() {
  2925. return completionistCapeCustomized;
  2926. }
  2927.  
  2928. public void setCompletionistCapeCustomized(int[] skillcapeCustomized) {
  2929. this.completionistCapeCustomized = skillcapeCustomized;
  2930. }
  2931.  
  2932. public int[] getMaxedCapeCustomized() {
  2933. return maxedCapeCustomized;
  2934. }
  2935.  
  2936. public void setMaxedCapeCustomized(int[] maxedCapeCustomized) {
  2937. this.maxedCapeCustomized = maxedCapeCustomized;
  2938. }
  2939.  
  2940. public void setSkullId(int skullId) {
  2941. this.skullId = skullId;
  2942. }
  2943.  
  2944. public int getSkullId() {
  2945. return skullId;
  2946. }
  2947.  
  2948. public boolean isFilterGame() {
  2949. return filterGame;
  2950. }
  2951.  
  2952. public void setFilterGame(boolean filterGame) {
  2953. this.filterGame = filterGame;
  2954. }
  2955.  
  2956. public void addLogicPacketToQueue(LogicPacket packet) {
  2957. for (LogicPacket p : logicPackets) {
  2958. if (p.getId() == packet.getId()) {
  2959. logicPackets.remove(p);
  2960. break;
  2961. }
  2962. }
  2963. logicPackets.add(packet);
  2964. }
  2965.  
  2966. public DominionTower getDominionTower() {
  2967. return dominionTower;
  2968. }
  2969.  
  2970. public void setPrayerRenewalDelay(int delay) {
  2971. this.prayerRenewalDelay = delay;
  2972. }
  2973.  
  2974. public int getOverloadDelay() {
  2975. return overloadDelay;
  2976. }
  2977.  
  2978. public void setOverloadDelay(int overloadDelay) {
  2979. this.overloadDelay = overloadDelay;
  2980. }
  2981.  
  2982. public Trade getTrade() {
  2983. return trade;
  2984. }
  2985.  
  2986. public void setTeleBlockDelay(long teleDelay) {
  2987. getTemporaryAttributtes().put("TeleBlocked",
  2988. teleDelay + Utils.currentTimeMillis());
  2989. }
  2990.  
  2991. public long getTeleBlockDelay() {
  2992. Long teleblock = (Long) getTemporaryAttributtes().get("TeleBlocked");
  2993. if (teleblock == null)
  2994. return 0;
  2995. return teleblock;
  2996. }
  2997.  
  2998. public void setPrayerDelay(long teleDelay) {
  2999. getTemporaryAttributtes().put("PrayerBlocked",
  3000. teleDelay + Utils.currentTimeMillis());
  3001. prayer.closeAllPrayers();
  3002. }
  3003.  
  3004. public long getPrayerDelay() {
  3005. Long teleblock = (Long) getTemporaryAttributtes().get("PrayerBlocked");
  3006. if (teleblock == null)
  3007. return 0;
  3008. return teleblock;
  3009. }
  3010.  
  3011. public Familiar getFamiliar() {
  3012. return familiar;
  3013. }
  3014.  
  3015. public void setFamiliar(Familiar familiar) {
  3016. this.familiar = familiar;
  3017. }
  3018.  
  3019. public FriendChatsManager getCurrentFriendChat() {
  3020. return currentFriendChat;
  3021. }
  3022.  
  3023. public void setCurrentFriendChat(FriendChatsManager currentFriendChat) {
  3024. this.currentFriendChat = currentFriendChat;
  3025. }
  3026.  
  3027. public String getCurrentFriendChatOwner() {
  3028. return currentFriendChatOwner;
  3029. }
  3030.  
  3031. public void setCurrentFriendChatOwner(String currentFriendChatOwner) {
  3032. this.currentFriendChatOwner = currentFriendChatOwner;
  3033. }
  3034.  
  3035. public int getSummoningLeftClickOption() {
  3036. return summoningLeftClickOption;
  3037. }
  3038.  
  3039. public void setSummoningLeftClickOption(int summoningLeftClickOption) {
  3040. this.summoningLeftClickOption = summoningLeftClickOption;
  3041. }
  3042.  
  3043. public boolean canSpawn() {
  3044. if (Wilderness.isAtWild(this)
  3045. || getControlerManager().getControler() instanceof FightPitsArena
  3046. || getControlerManager().getControler() instanceof CorpBeastControler
  3047. || getControlerManager().getControler() instanceof PestControlLobby
  3048. || getControlerManager().getControler() instanceof PestControlGame
  3049. || getControlerManager().getControler() instanceof ZGDControler
  3050. || getControlerManager().getControler() instanceof GodWars
  3051. || getControlerManager().getControler() instanceof DTControler
  3052. || getControlerManager().getControler() instanceof DuelArena
  3053. || getControlerManager().getControler() instanceof CastleWarsPlaying
  3054. || getControlerManager().getControler() instanceof CastleWarsWaiting
  3055. || getControlerManager().getControler() instanceof FightCaves
  3056. || getControlerManager().getControler() instanceof FightKiln
  3057. || FfaZone.inPvpArea(this)
  3058. || getControlerManager().getControler() instanceof NomadsRequiem
  3059. || getControlerManager().getControler() instanceof QueenBlackDragonController
  3060. || getControlerManager().getControler() instanceof WarControler) {
  3061. return false;
  3062. }
  3063. if(getControlerManager().getControler() instanceof CrucibleControler) {
  3064. CrucibleControler controler = (CrucibleControler) getControlerManager().getControler();
  3065. return !controler.isInside();
  3066. }
  3067. return true;
  3068. }
  3069.  
  3070. public long getPolDelay() {
  3071. return polDelay;
  3072. }
  3073.  
  3074. public void addPolDelay(long delay) {
  3075. polDelay = delay + Utils.currentTimeMillis();
  3076. }
  3077.  
  3078. public void setPolDelay(long delay) {
  3079. this.polDelay = delay;
  3080. }
  3081.  
  3082. public List<Integer> getSwitchItemCache() {
  3083. return switchItemCache;
  3084. }
  3085.  
  3086. public AuraManager getAuraManager() {
  3087. return auraManager;
  3088. }
  3089.  
  3090. public int getMovementType() {
  3091. if (getTemporaryMoveType() != -1)
  3092. return getTemporaryMoveType();
  3093. return getRun() ? RUN_MOVE_TYPE : WALK_MOVE_TYPE;
  3094. }
  3095.  
  3096. public List<String> getOwnedObjectManagerKeys() {
  3097. if (ownedObjectsManagerKeys == null) // temporary
  3098. ownedObjectsManagerKeys = new LinkedList<String>();
  3099. return ownedObjectsManagerKeys;
  3100. }
  3101.  
  3102. public boolean hasInstantSpecial(final int weaponId) {
  3103. switch (weaponId) {
  3104. case 4153:
  3105. case 15486:
  3106. case 22207:
  3107. case 22209:
  3108. case 22211:
  3109. case 22213:
  3110. case 1377:
  3111. case 13472:
  3112. case 35:// Excalibur
  3113. case 8280:
  3114. case 14632:
  3115. return true;
  3116. default: return false;
  3117. }
  3118. }
  3119.  
  3120. public void performInstantSpecial(final int weaponId) {
  3121. int specAmt = PlayerCombat.getSpecialAmmount(weaponId);
  3122. if (combatDefinitions.hasRingOfVigour())
  3123. specAmt *= 0.9;
  3124. if (combatDefinitions.getSpecialAttackPercentage() < specAmt) {
  3125. getPackets().sendGameMessage("You don't have enough power left.");
  3126. combatDefinitions.desecreaseSpecialAttack(0);
  3127. return;
  3128. }
  3129. if (this.getSwitchItemCache().size() > 0) {
  3130. ButtonHandler.submitSpecialRequest(this);
  3131. return;
  3132. }
  3133. switch (weaponId) {
  3134. case 4153:
  3135. combatDefinitions.setInstantAttack(true);
  3136. combatDefinitions.switchUsingSpecialAttack();
  3137. Entity target = (Entity) getTemporaryAttributtes().get("last_target");
  3138. if (target != null && target.getTemporaryAttributtes().get("last_attacker") == this) {
  3139. if (!(getActionManager().getAction() instanceof PlayerCombat) || ((PlayerCombat) getActionManager().getAction()).getTarget() != target) {
  3140. getActionManager().setAction(new PlayerCombat(target));
  3141. }
  3142. }
  3143. break;
  3144. case 1377:
  3145. case 13472:
  3146. setNextAnimation(new Animation(1056));
  3147. setNextGraphics(new Graphics(246));
  3148. setNextForceTalk(new ForceTalk("Raarrrrrgggggghhhhhhh!"));
  3149. int defence = (int) (skills.getLevelForXp(Skills.DEFENCE) * 0.90D);
  3150. int attack = (int) (skills.getLevelForXp(Skills.ATTACK) * 0.90D);
  3151. int range = (int) (skills.getLevelForXp(Skills.RANGE) * 0.90D);
  3152. int magic = (int) (skills.getLevelForXp(Skills.MAGIC) * 0.90D);
  3153. int strength = (int) (skills.getLevelForXp(Skills.STRENGTH) * 1.2D);
  3154. skills.set(Skills.DEFENCE, defence);
  3155. skills.set(Skills.ATTACK, attack);
  3156. skills.set(Skills.RANGE, range);
  3157. skills.set(Skills.MAGIC, magic);
  3158. skills.set(Skills.STRENGTH, strength);
  3159. combatDefinitions.desecreaseSpecialAttack(specAmt);
  3160. break;
  3161. case 35:// Excalibur
  3162. case 8280:
  3163. case 14632:
  3164. setNextAnimation(new Animation(1168));
  3165. setNextGraphics(new Graphics(247));
  3166. setNextForceTalk(new ForceTalk("For Reduction!"));
  3167. final boolean enhanced = weaponId == 14632;
  3168. skills.set(
  3169. Skills.DEFENCE,
  3170. enhanced ? (int) (skills.getLevelForXp(Skills.DEFENCE) * 1.15D)
  3171. : (skills.getLevel(Skills.DEFENCE) + 8));
  3172. WorldTasksManager.schedule(new WorldTask() {
  3173. int count = 5;
  3174.  
  3175. @Override
  3176. public void run() {
  3177. if (isDead() || hasFinished()
  3178. || getHitpoints() >= getMaxHitpoints()) {
  3179. stop();
  3180. return;
  3181. }
  3182. heal(enhanced ? 80 : 40);
  3183. if (count-- == 0) {
  3184. stop();
  3185. return;
  3186. }
  3187. }
  3188. }, 4, 2);
  3189. combatDefinitions.desecreaseSpecialAttack(specAmt);
  3190. break;
  3191. case 15486:
  3192. case 22207:
  3193. case 22209:
  3194. case 22211:
  3195. case 22213:
  3196. setNextAnimation(new Animation(12804));
  3197. setNextGraphics(new Graphics(2319));// 2320
  3198. setNextGraphics(new Graphics(2321));
  3199. addPolDelay(60000);
  3200. combatDefinitions.desecreaseSpecialAttack(specAmt);
  3201. break;
  3202. }
  3203. }
  3204.  
  3205. public void setDisableEquip(boolean equip) {
  3206. disableEquip = equip;
  3207. }
  3208.  
  3209. public int getTrollsKilled() {
  3210. return trollsKilled;
  3211. }
  3212.  
  3213. public int getTrollsToKill() {
  3214. return trollsToKill;
  3215. }
  3216.  
  3217. public int setTrollsKilled(int trollsKilled) {
  3218. return (this.trollsKilled = trollsKilled);
  3219. }
  3220.  
  3221. public int setTrollsToKill(int toKill) {
  3222. return (this.trollsToKill = toKill);
  3223. }
  3224.  
  3225. public void addTrollKill() {
  3226. trollsKilled++;
  3227. }
  3228.  
  3229. public boolean isEquipDisabled() {
  3230. return disableEquip;
  3231. }
  3232.  
  3233. public void addDisplayTime(long i) {
  3234. this.displayTime = i + Utils.currentTimeMillis();
  3235. }
  3236.  
  3237. public long getDisplayTime() {
  3238. return displayTime;
  3239. }
  3240.  
  3241. public int getPublicStatus() {
  3242. return publicStatus;
  3243. }
  3244.  
  3245. public void setPublicStatus(int publicStatus) {
  3246. this.publicStatus = publicStatus;
  3247. }
  3248.  
  3249. public int getClanStatus() {
  3250. return clanStatus;
  3251. }
  3252.  
  3253. public void setClanStatus(int clanStatus) {
  3254. this.clanStatus = clanStatus;
  3255. }
  3256.  
  3257. public int getTradeStatus() {
  3258. return tradeStatus;
  3259. }
  3260.  
  3261. public void setTradeStatus(int tradeStatus) {
  3262. this.tradeStatus = tradeStatus;
  3263. }
  3264.  
  3265. public int getAssistStatus() {
  3266. return assistStatus;
  3267. }
  3268.  
  3269. public void setAssistStatus(int assistStatus) {
  3270. this.assistStatus = assistStatus;
  3271. }
  3272.  
  3273. public boolean isSpawnsMode() {
  3274. return spawnsMode;
  3275. }
  3276.  
  3277. public void setSpawnsMode(boolean spawnsMode) {
  3278. this.spawnsMode = spawnsMode;
  3279. }
  3280.  
  3281. public boolean isGift() {
  3282. return gift;
  3283. }
  3284.  
  3285. public void setGift(boolean gift) {
  3286. this.gift = gift;
  3287. }
  3288.  
  3289. public IsaacKeyPair getIsaacKeyPair() {
  3290. return isaacKeyPair;
  3291. }
  3292.  
  3293. public QuestManager getQuestManager() {
  3294. return questManager;
  3295. }
  3296.  
  3297. public boolean isCompletedFightCaves() {
  3298. return completedFightCaves;
  3299. }
  3300.  
  3301. public void setCompletedFightCaves() {
  3302. if(!completedFightCaves) {
  3303. completedFightCaves = true;
  3304. refreshFightKilnEntrance();
  3305. }
  3306. }
  3307.  
  3308. public boolean isCompletedFightKiln() {
  3309. return completedFightKiln;
  3310. }
  3311.  
  3312. public void setCompletedFightKiln() {
  3313. completedFightKiln = true;
  3314. }
  3315. public boolean isWonFightPits() {
  3316. return wonFightPits;
  3317. }
  3318.  
  3319. public void setWonFightPits() {
  3320. wonFightPits = true;
  3321. }
  3322.  
  3323. public boolean isCantTrade() {
  3324. return cantTrade;
  3325. }
  3326.  
  3327. public void setCantTrade(boolean canTrade) {
  3328. this.cantTrade = canTrade;
  3329. }
  3330.  
  3331. public String getYellColor() {
  3332. return yellColor;
  3333. }
  3334.  
  3335. public void setYellColor(String yellColor) {
  3336. this.yellColor = yellColor;
  3337. }
  3338.  
  3339.  
  3340. /**
  3341. * Gets the pet.
  3342. * @return The pet.
  3343. */
  3344. public Pet getPet() {
  3345. return pet;
  3346. }
  3347.  
  3348. /**
  3349. * Sets the pet.
  3350. * @param pet The pet to set.
  3351. */
  3352. public void setPet(Pet pet) {
  3353. this.pet = pet;
  3354. }
  3355.  
  3356. public boolean isSupporter() {
  3357. return isSupporter;
  3358. }
  3359.  
  3360. public void setSupporter(boolean isSupporter) {
  3361. this.isSupporter = isSupporter;
  3362. }
  3363.  
  3364.  
  3365. /**
  3366. * Gets the petManager.
  3367. * @return The petManager.
  3368. */
  3369. public PetManager getPetManager() {
  3370. return petManager;
  3371. }
  3372.  
  3373. /**
  3374. * Sets the petManager.
  3375. * @param petManager The petManager to set.
  3376. */
  3377. public void setPetManager(PetManager petManager) {
  3378. this.petManager = petManager;
  3379. }
  3380.  
  3381. public boolean isXpLocked() {
  3382. return xpLocked;
  3383. }
  3384.  
  3385. public void setXpLocked(boolean locked) {
  3386. this.xpLocked = locked;
  3387. }
  3388.  
  3389. public int getLastBonfire() {
  3390. return lastBonfire;
  3391. }
  3392.  
  3393. public void setLastBonfire(int lastBonfire) {
  3394. this.lastBonfire = lastBonfire;
  3395. }
  3396.  
  3397. public boolean isYellOff() {
  3398. return yellOff;
  3399. }
  3400.  
  3401. public void setYellOff(boolean yellOff) {
  3402. this.yellOff = yellOff;
  3403. }
  3404.  
  3405. public void setInvulnerable(boolean invulnerable) {
  3406. this.invulnerable = invulnerable;
  3407. }
  3408.  
  3409. public double getHpBoostMultiplier() {
  3410. return hpBoostMultiplier;
  3411. }
  3412.  
  3413. public void setHpBoostMultiplier(double hpBoostMultiplier) {
  3414. this.hpBoostMultiplier = hpBoostMultiplier;
  3415. }
  3416.  
  3417. /**
  3418. * Gets the killedQueenBlackDragon.
  3419. * @return The killedQueenBlackDragon.
  3420. */
  3421. public boolean isKilledQueenBlackDragon() {
  3422. return killedQueenBlackDragon;
  3423. }
  3424.  
  3425. /**
  3426. * Sets the killedQueenBlackDragon.
  3427. * @param killedQueenBlackDragon The killedQueenBlackDragon to set.
  3428. */
  3429. public void setKilledQueenBlackDragon(boolean killedQueenBlackDragon) {
  3430. this.killedQueenBlackDragon = killedQueenBlackDragon;
  3431. }
  3432.  
  3433. public boolean hasLargeSceneView() {
  3434. return largeSceneView;
  3435. }
  3436.  
  3437. public void setLargeSceneView(boolean largeSceneView) {
  3438. this.largeSceneView = largeSceneView;
  3439. }
  3440.  
  3441. public boolean isOldItemsLook() {
  3442. return oldItemsLook;
  3443. }
  3444.  
  3445. public void switchItemsLook() {
  3446. oldItemsLook = !oldItemsLook;
  3447. getPackets().sendItemsLook();
  3448. }
  3449.  
  3450. /**
  3451. * @return the runeSpanPoint
  3452. */
  3453. public int getRuneSpanPoints() {
  3454. return runeSpanPoints;
  3455. }
  3456.  
  3457. /**
  3458. * @param runeSpanPoint the runeSpanPoint to set
  3459. */
  3460. public void setRuneSpanPoint(int runeSpanPoints) {
  3461. this.runeSpanPoints = runeSpanPoints;
  3462. }
  3463. /**
  3464. * Adds points
  3465. * @param points
  3466. */
  3467. public void addRunespanPoints(int points) {
  3468. this.runeSpanPoints += points;
  3469. }
  3470.  
  3471. public DuelRules getLastDuelRules() {
  3472. return lastDuelRules;
  3473. }
  3474.  
  3475. public void setLastDuelRules(DuelRules duelRules) {
  3476. this.lastDuelRules = duelRules;
  3477. }
  3478.  
  3479. public boolean isTalkedWithMarv() {
  3480. return talkedWithMarv;
  3481. }
  3482.  
  3483. public void setTalkedWithMarv() {
  3484. talkedWithMarv = true;
  3485. }
  3486.  
  3487. public int getCrucibleHighScore() {
  3488. return crucibleHighScore;
  3489. }
  3490.  
  3491. public static int isMaxed = 0;
  3492. public boolean isCompletionist = false;
  3493.  
  3494. public int farmob;
  3495.  
  3496. public boolean Planted;
  3497.  
  3498. public int farmtim;
  3499.  
  3500. public int slayertasks;
  3501.  
  3502. public int weeds;
  3503.  
  3504. public void increaseCrucibleHighScore() {
  3505. crucibleHighScore++;
  3506. }
  3507.  
  3508.  
  3509. public void setVoted(long ms) {
  3510. voted = ms + Utils.currentTimeMillis();
  3511. }
  3512.  
  3513. public boolean hasVoted() {
  3514. //disabled so that donators vote for the first 2 days of list reset ^^
  3515. return isDonator() || voted > Utils.currentTimeMillis();
  3516.  
  3517. }
  3518.  
  3519.  
  3520. public void teleportPlayer(int i, int j, int k) {
  3521. // TODO Auto-generated method stub
  3522.  
  3523. }
  3524.  
  3525. public int getTrapAmount() {
  3526. // TODO Auto-generated method stub
  3527. return 0;
  3528. }
  3529.  
  3530. public void addStopDelay(int i) {
  3531. // TODO Auto-generated method stub
  3532.  
  3533. }
  3534.  
  3535. public void setTrapAmount(int i) {
  3536. // TODO Auto-generated method stub
  3537.  
  3538. }
  3539.  
  3540.  
  3541. public void setSlayerMaster(Master spria) {
  3542. // TODO Auto-generated method stub
  3543.  
  3544. }
  3545.  
  3546. public Master getSlayerMaster() {
  3547. // TODO Auto-generated method stub
  3548. return null;
  3549. }
  3550.  
  3551. public void sendNewsMessage(String format) {
  3552. // TODO Auto-generated method stub
  3553.  
  3554.  
  3555. }
  3556. }
Advertisement
Add Comment
Please, Sign In to add comment