Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2020
608
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.87 KB | None | 0 0
  1. package com.arlania.world.entity.impl.player;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileReader;
  6. import java.io.ObjectInputStream;
  7. import java.lang.reflect.Type;
  8. import java.nio.file.Path;
  9. import java.nio.file.Paths;
  10. import java.util.ArrayList;
  11. import java.util.Arrays;
  12. import java.util.HashMap;
  13. import java.util.HashSet;
  14. import java.util.List;
  15. import java.util.Map;
  16.  
  17. import com.arlania.engine.task.impl.FamiliarSpawnTask;
  18. import com.arlania.model.GameMode;
  19. import com.arlania.model.Gender;
  20. import com.arlania.model.Item;
  21. import com.arlania.model.MagicSpellbook;
  22. import com.arlania.model.PlayerRights;
  23. import com.arlania.model.Position;
  24. import com.arlania.model.Prayerbook;
  25. import com.arlania.model.PlayerRelations.PrivateChatStatus;
  26. import com.arlania.model.container.impl.Bank;
  27. import com.arlania.net.login.LoginResponses;
  28. import com.arlania.world.content.ClueScrolls;
  29. import com.arlania.world.content.DropLog;
  30. import com.arlania.world.content.ItemRecolor;
  31. import com.arlania.world.content.KillsTracker;
  32. import com.arlania.world.content.ProgressionTask;
  33. import com.arlania.world.content.DropLog.DropLogEntry;
  34. import com.arlania.world.content.KillsTracker.KillsEntry;
  35. import com.arlania.world.content.LoyaltyProgramme.LoyaltyTitles;
  36. import com.arlania.world.content.combat.magic.CombatSpells;
  37. import com.arlania.world.content.combat.weapon.FightType;
  38. import com.arlania.world.content.grandexchange.*;
  39. import com.arlania.world.content.skill.SkillManager.Skills;
  40. import com.arlania.world.content.skill.impl.construction.ConstructionSave;
  41. import com.arlania.world.content.skill.impl.slayer.SlayerMaster;
  42. import com.arlania.world.content.skill.impl.slayer.SlayerTasks;
  43. import com.arlania.world.entity.impl.npc.NPC;
  44. import com.google.gson.Gson;
  45. import com.google.gson.GsonBuilder;
  46. import com.google.gson.JsonObject;
  47. import com.google.gson.JsonParser;
  48. import com.google.gson.reflect.TypeToken;
  49.  
  50. public class PlayerLoading {
  51.  
  52. public static int getResult(Player player) {
  53. return getResult(player, false);
  54. }
  55.  
  56. public static int getResult(Player player, boolean force) {
  57.  
  58. // Create the path and file objects.
  59. Path path = Paths.get("./data/saves/characters/", player.getUsername() + ".json");
  60. File file = path.toFile();
  61.  
  62. // If the file doesn't exist, we're logging in for the first
  63. // time and can skip all of this.
  64. if (!file.exists()) {
  65. return LoginResponses.NEW_ACCOUNT;
  66. }
  67.  
  68. // Now read the properties from the json parser.
  69. try (FileReader fileReader = new FileReader(file)) {
  70. JsonParser fileParser = new JsonParser();
  71. Gson builder = new GsonBuilder().create();
  72. JsonObject reader = (JsonObject) fileParser.parse(fileReader);
  73.  
  74. if (reader.has("total-play-time-ms")) {
  75. player.setTotalPlayTime(reader.get("total-play-time-ms").getAsLong());
  76. }
  77.  
  78. // if (reader.has("username")) {
  79. // player.setUsername(reader.get("username").getAsString());
  80. // }
  81. //
  82. // if (reader.has("password")) {
  83. // String password = reader.get("password").getAsString();
  84. // if (!force) {
  85. // if (!player.getPassword().equals(password)) {
  86. // return LoginResponses.LOGIN_INVALID_CREDENTIALS;
  87. // }
  88. // }
  89. // player.setPassword(password);
  90. // }
  91.  
  92. if (reader.has("referral")) {
  93. player.hasReferral = reader.get("referral").getAsBoolean();
  94. }
  95.  
  96. if (reader.has("recolored-items")) {
  97. ItemRecolor[] recolors = builder.fromJson(reader.get("recolored-items").getAsJsonArray(),
  98. ItemRecolor[].class);
  99.  
  100. List<ItemRecolor> data = new ArrayList<>();
  101.  
  102. for (ItemRecolor irc : recolors) {
  103. data.add(irc);
  104. System.out.println("Loaded: " + irc.getItemID() + " | " + Arrays.toString(irc.getInitialColors())
  105. + " | " + Arrays.toString(irc.getTargetColors()));
  106. }
  107.  
  108. player.getItemColoringSystem().load(data);
  109. }
  110.  
  111. if (reader.has("starterclaimed")) {
  112. player.starterClaimed = reader.get("starterclaimed").getAsBoolean();
  113. }
  114.  
  115. if (reader.has("crashGameBalance"))
  116. player.addToCrashBalance(reader.get("crashGameBalance").getAsLong());
  117.  
  118. if (reader.has("indragon")) {
  119. player.inDragon = reader.get("indragon").getAsBoolean();
  120. }
  121.  
  122. if (reader.has("boss-points")) {
  123. player.setBossPoints(reader.get("boss-points").getAsInt());
  124. }
  125. if (reader.has("lms-points")) {
  126. player.setLmsPoints(reader.get("lms-points").getAsInt());
  127. }
  128. if (reader.has("minions-kc")) {
  129. player.setMinionsKC(reader.get("minions-kc").getAsInt());
  130. }
  131. if (reader.has("olm-kc")) {
  132. player.setCustomOlmKC(reader.get("olm-kc").getAsInt());
  133. }
  134. if (reader.has("boss-kills")) {
  135. player.setTotalBossKills(reader.get("boss-kills").getAsInt());
  136. }
  137.  
  138. if (reader.has("bravek-difficulty")) {
  139. player.setBravekDifficulty(reader.get("bravek-difficulty").getAsString());
  140. }
  141.  
  142. if (reader.has("has-pin")) {
  143. player.setHasPin(reader.get("has-pin").getAsBoolean());
  144. }
  145.  
  146. if (reader.has("saved-ip")) {
  147. player.setSavedIp(reader.get("saved-ip").getAsString());
  148. }
  149.  
  150. if (reader.has("saved-pin")) {
  151. player.setSavedPin(reader.get("saved-pin").getAsString());
  152. }
  153. if (reader.has("custom-boss-points")) {
  154. player.setCustomPoints(reader.get("custom-boss-points").getAsInt());
  155. }
  156. if (reader.has("Vitur-points")) {
  157. player.setRuneUnityPoints(reader.get("Vitur-points").getAsInt());
  158. }
  159. if (reader.has("email")) {
  160. player.setEmailAddress(reader.get("email").getAsString());
  161. }
  162.  
  163. if (reader.has("staff-rights")) {
  164. player.setRights(PlayerRights.valueOf(reader.get("staff-rights").getAsString()));
  165. }
  166.  
  167. if (reader.has("game-mode")) {
  168. player.setGameMode(GameMode.valueOf(reader.get("game-mode").getAsString()));
  169. }
  170.  
  171. if (reader.has("loyalty-title")) {
  172. player.setLoyaltyTitle(LoyaltyTitles.valueOf(reader.get("loyalty-title").getAsString()));
  173. }
  174.  
  175. if (reader.has("position")) {
  176. player.getPosition().setAs(builder.fromJson(reader.get("position"), Position.class));
  177. }
  178.  
  179. if (reader.has("online-status")) {
  180. player.getRelations().setStatus(PrivateChatStatus.valueOf(reader.get("online-status").getAsString()),
  181. false);
  182. }
  183.  
  184. if (reader.has("money-pouch")) {
  185. player.setMoneyInPouch(reader.get("money-pouch").getAsLong());
  186. }
  187.  
  188. if (reader.has("given-starter")) {
  189. player.setReceivedStarter(reader.get("given-starter").getAsBoolean());
  190. }
  191.  
  192. if (reader.has("donated")) {
  193. player.incrementAmountDonated(reader.get("donated").getAsInt());
  194. }
  195.  
  196. if (reader.has("minutes-bonus-exp")) {
  197. player.setMinutesBonusExp(reader.get("minutes-bonus-exp").getAsInt(), false);
  198. }
  199.  
  200. if (reader.has("total-gained-exp")) {
  201. player.getSkillManager().setTotalGainedExp(reader.get("total-gained-exp").getAsInt());
  202. }
  203.  
  204. if (reader.has("dung-tokens")) {
  205. player.getPointsHandler().setDungeoneeringTokens(reader.get("dung-tokens").getAsInt(), false);
  206. }
  207.  
  208. if (reader.has("prestige-points")) {
  209. player.getPointsHandler().setPrestigePoints(reader.get("prestige-points").getAsInt(), false);
  210. }
  211.  
  212. if (reader.has("achievement-points")) {
  213. player.getPointsHandler().setAchievementPoints(reader.get("achievement-points").getAsInt(), false);
  214. }
  215.  
  216. if (reader.has("Custom Pest Control Points")) {
  217. player.getPointsHandler()
  218. .setCustompestcontrolpoints(reader.get("custom pest control points").getAsInt(), false);
  219. }
  220.  
  221. if (reader.has("loyalty-points")) {
  222. player.getPointsHandler().setLoyaltyPoints(reader.get("loyalty-points").getAsInt(), false);
  223. }
  224.  
  225. if (reader.has("total-loyalty-points")) {
  226. player.getAchievementAttributes()
  227. .incrementTotalLoyaltyPointsEarned(reader.get("total-loyalty-points").getAsDouble());
  228. }
  229.  
  230. if (reader.has("voting-points")) {
  231. player.getPointsHandler().setVotingPoints(reader.get("voting-points").getAsInt(), false);
  232. }
  233.  
  234. if (reader.has("slayer-points")) {
  235. player.getPointsHandler().setSlayerPoints(reader.get("slayer-points").getAsInt(), false);
  236. }
  237.  
  238. if (reader.has("pk-points")) {
  239. player.getPointsHandler().setPkPoints(reader.get("pk-points").getAsInt(), false);
  240. }
  241. if (reader.has("donation-points")) {
  242. player.getPointsHandler().setDonationPoints(reader.get("donation-points").getAsInt(), false);
  243. }
  244.  
  245. if (reader.has("bravek-tasks-completed")) {
  246. player.setBravekTasksCompleted(reader.get("bravek-tasks-completed").getAsInt(), false);
  247. }
  248.  
  249. if (reader.has("custom-well-donated")) {
  250. player.setCustomWellDonated(reader.get("custom-well-donated").getAsInt(), false);
  251. }
  252.  
  253. if (reader.has("box-points")) {
  254. player.getPointsHandler().setboxPoints(reader.get("box-points").getAsInt(), false);
  255. }
  256. if (reader.has("minigamepoints-1")) {
  257. player.getPointsHandler().setMinigamePoints1(reader.get("minigamepoints-1").getAsInt(), false);
  258. }
  259. if (reader.has("minigamepoints-2")) {
  260. player.getPointsHandler().setMinigamePoints2(reader.get("minigamepoints-2").getAsInt(), false);
  261. }
  262. if (reader.has("minigamepoints-3")) {
  263. player.getPointsHandler().setminiGamePoints3(reader.get("minigamepoints-3").getAsInt(), false);
  264. }
  265. if (reader.has("minigamepoints-4")) {
  266. player.getPointsHandler().setminiGamePoints4(reader.get("minigamepoints-4").getAsInt(), false);
  267. }
  268. if (reader.has("minigamepoints-5")) {
  269. player.getPointsHandler().setminiGamePoints5(reader.get("minigamepoints-5").getAsInt(), false);
  270. }
  271. if (reader.has("skill-points")) {
  272. player.getPointsHandler().setSkillPoints(reader.get("skill-points").getAsInt(), false);
  273. }
  274. if (reader.has("trivia-points")) {
  275. player.getPointsHandler().setTriviaPoints(reader.get("trivia-points").getAsInt(), false);
  276. }
  277.  
  278. if (reader.has("cluescomplted")) {
  279. ClueScrolls.setCluesCompleted(reader.get("cluescompleted").getAsInt(), false);
  280. }
  281.  
  282. if (reader.has("player-kills")) {
  283. player.getPlayerKillingAttributes().setPlayerKills(reader.get("player-kills").getAsInt());
  284. }
  285.  
  286. if (reader.has("player-killstreak")) {
  287. player.getPlayerKillingAttributes().setPlayerKillStreak(reader.get("player-killstreak").getAsInt());
  288. }
  289.  
  290. if (reader.has("player-deaths")) {
  291. player.getPlayerKillingAttributes().setPlayerDeaths(reader.get("player-deaths").getAsInt());
  292. }
  293.  
  294. if (reader.has("target-percentage")) {
  295. player.getPlayerKillingAttributes().setTargetPercentage(reader.get("target-percentage").getAsInt());
  296. }
  297.  
  298. if (reader.has("bh-rank")) {
  299. player.getAppearance().setBountyHunterSkull(reader.get("bh-rank").getAsInt());
  300. }
  301.  
  302. if (reader.has("gender")) {
  303. player.getAppearance().setGender(Gender.valueOf(reader.get("gender").getAsString()));
  304. }
  305.  
  306. if (reader.has("spell-book")) {
  307. player.setSpellbook(MagicSpellbook.valueOf(reader.get("spell-book").getAsString()));
  308. }
  309.  
  310. if (reader.has("prayer-book")) {
  311. player.setPrayerbook(Prayerbook.valueOf(reader.get("prayer-book").getAsString()));
  312. }
  313. if (reader.has("running")) {
  314. player.setRunning(reader.get("running").getAsBoolean());
  315. }
  316. if (reader.has("skillPointArray")) {
  317. int[] skillPointArray = builder.fromJson(reader.get("skillPointArray").getAsJsonArray(), int[].class);
  318. player.skillPoints = skillPointArray;
  319. }
  320. if (reader.has("run-energy")) {
  321. player.setRunEnergy(reader.get("run-energy").getAsInt());
  322. }
  323. if (reader.has("music")) {
  324. player.setMusicActive(reader.get("music").getAsBoolean());
  325. }
  326. if (reader.has("sounds")) {
  327. player.setSoundsActive(reader.get("sounds").getAsBoolean());
  328. }
  329. if (reader.has("auto-retaliate")) {
  330. player.setAutoRetaliate(reader.get("auto-retaliate").getAsBoolean());
  331. }
  332. if (reader.has("xp-locked")) {
  333. player.setExperienceLocked(reader.get("xp-locked").getAsBoolean());
  334. }
  335. if (reader.has("veng-cast")) {
  336. player.setHasVengeance(reader.get("veng-cast").getAsBoolean());
  337. }
  338. if (reader.has("last-veng")) {
  339. player.getLastVengeance().reset(reader.get("last-veng").getAsLong());
  340. }
  341. if (reader.has("fight-type")) {
  342. player.setFightType(FightType.valueOf(reader.get("fight-type").getAsString()));
  343. }
  344. if (reader.has("sol-effect")) {
  345. player.setStaffOfLightEffect(Integer.valueOf(reader.get("sol-effect").getAsInt()));
  346. }
  347. if (reader.has("skull-timer")) {
  348. player.setSkullTimer(reader.get("skull-timer").getAsInt());
  349. }
  350. if (reader.has("accept-aid")) {
  351. player.setAcceptAid(reader.get("accept-aid").getAsBoolean());
  352. }
  353. if (reader.has("poison-damage")) {
  354. player.setPoisonDamage(reader.get("poison-damage").getAsInt());
  355. }
  356. if (reader.has("poison-immunity")) {
  357. player.setPoisonImmunity(reader.get("poison-immunity").getAsInt());
  358. }
  359. if (reader.has("overload-timer")) {
  360. player.setOverloadPotionTimer(reader.get("overload-timer").getAsInt());
  361. }
  362. if (reader.has("fire-immunity")) {
  363. player.setFireImmunity(reader.get("fire-immunity").getAsInt());
  364. }
  365. if (reader.has("fire-damage-mod")) {
  366. player.setFireDamageModifier(reader.get("fire-damage-mod").getAsInt());
  367. }
  368. if (reader.has("overload-timer")) {
  369. player.setOverloadPotionTimer(reader.get("overload-timer").getAsInt());
  370. }
  371. if (reader.has("prayer-renewal-timer")) {
  372. player.setPrayerRenewalPotionTimer(reader.get("prayer-renewal-timer").getAsInt());
  373. }
  374. if (reader.has("teleblock-timer")) {
  375. player.setTeleblockTimer(reader.get("teleblock-timer").getAsInt());
  376. }
  377. if (reader.has("special-amount")) {
  378. player.setSpecialPercentage(reader.get("special-amount").getAsInt());
  379. }
  380.  
  381. if (reader.has("entered-gwd-room")) {
  382. player.getMinigameAttributes().getGodwarsDungeonAttributes()
  383. .setHasEnteredRoom(reader.get("entered-gwd-room").getAsBoolean());
  384. }
  385.  
  386.  
  387. if (reader.has("gwd-altar-delay")) {
  388. player.getMinigameAttributes().getGodwarsDungeonAttributes()
  389. .setAltarDelay(reader.get("gwd-altar-delay").getAsLong());
  390. }
  391.  
  392. if (reader.has("gwd-killcount")) {
  393. player.getMinigameAttributes().getGodwarsDungeonAttributes()
  394. .setKillcount(builder.fromJson(reader.get("gwd-killcount"), int[].class));
  395. }
  396.  
  397. if (reader.has("effigy")) {
  398. player.setEffigy(reader.get("effigy").getAsInt());
  399. }
  400.  
  401. if (reader.has("summon-npc")) {
  402. int npc = reader.get("summon-npc").getAsInt();
  403. if (npc > 0)
  404. player.getSummoning().setFamiliarSpawnTask(new FamiliarSpawnTask(player)).setFamiliarId(npc);
  405. }
  406. if (reader.has("summon-death")) {
  407. int death = reader.get("summon-death").getAsInt();
  408. if (death > 0 && player.getSummoning().getSpawnTask() != null)
  409. player.getSummoning().getSpawnTask().setDeathTimer(death);
  410. }
  411. if (reader.has("process-farming")) {
  412. player.setProcessFarming(reader.get("process-farming").getAsBoolean());
  413. }
  414.  
  415. if (reader.has("clanchat")) {
  416. String clan = reader.get("clanchat").getAsString();
  417. if (!clan.equals("null"))
  418. player.setClanChatName(clan);
  419. }
  420. if (reader.has("autocast")) {
  421. player.setAutocast(reader.get("autocast").getAsBoolean());
  422. }
  423. if (reader.has("autocast-spell")) {
  424. int spell = reader.get("autocast-spell").getAsInt();
  425. if (spell != -1)
  426. player.setAutocastSpell(CombatSpells.getSpell(spell));
  427. }
  428.  
  429. if (reader.has("dfs-charges")) {
  430. player.incrementDfsCharges(reader.get("dfs-charges").getAsInt());
  431. }
  432. if (reader.has("kills")) {
  433. KillsTracker.submit(player, builder.fromJson(reader.get("kills").getAsJsonArray(), KillsEntry[].class));
  434. }
  435.  
  436. if (reader.has("drops")) {
  437. DropLog.submit(player, builder.fromJson(reader.get("drops").getAsJsonArray(), DropLogEntry[].class));
  438. }
  439.  
  440. if (reader.has("shop-updated")) {
  441. player.setShopUpdated(reader.get("shop-updated").getAsBoolean());
  442. }
  443.  
  444. if (reader.has("shop-earnings")) {
  445. player.getPlayerOwnedShopManager().setEarnings(reader.get("shop-earnings").getAsLong());
  446. }
  447.  
  448. if (reader.has("coins-gambled")) {
  449. player.getAchievementAttributes().setCoinsGambled(reader.get("coins-gambled").getAsInt());
  450. }
  451.  
  452. if (reader.has("slayer-master")) {
  453. player.getSlayer().setSlayerMaster(SlayerMaster.valueOf(reader.get("slayer-master").getAsString()));
  454. }
  455.  
  456. if (reader.has("slayer-task")) {
  457. player.getSlayer().setSlayerTask(SlayerTasks.valueOf(reader.get("slayer-task").getAsString()));
  458. }
  459.  
  460. if (reader.has("prev-slayer-task")) {
  461. player.getSlayer().setLastTask(SlayerTasks.valueOf(reader.get("prev-slayer-task").getAsString()));
  462. }
  463.  
  464. if (reader.has("task-amount")) {
  465. player.getSlayer().setAmountToSlay(reader.get("task-amount").getAsInt());
  466. }
  467.  
  468. if (reader.has("task-streak")) {
  469. player.getSlayer().setTaskStreak(reader.get("task-streak").getAsInt());
  470. }
  471.  
  472. if (reader.has("duo-partner")) {
  473. String partner = reader.get("duo-partner").getAsString();
  474. player.getSlayer().setDuoPartner(partner.equals("null") ? null : partner);
  475. }
  476.  
  477. if (reader.has("double-slay-xp")) {
  478. player.getSlayer().doubleSlayerXP = reader.get("double-slay-xp").getAsBoolean();
  479. }
  480.  
  481. if (reader.has("recoil-deg")) {
  482. player.setRecoilCharges(reader.get("recoil-deg").getAsInt());
  483. }
  484.  
  485. if (reader.has("brawler-deg")) {
  486. player.setBrawlerCharges(builder.fromJson(reader.get("brawler-deg").getAsJsonArray(), int[].class));
  487. }
  488.  
  489. if (reader.has("killed-players")) {
  490. List<String> list = new ArrayList<String>();
  491. String[] killed_players = builder.fromJson(reader.get("killed-players").getAsJsonArray(),
  492. String[].class);
  493. for (String s : killed_players)
  494. list.add(s);
  495. player.getPlayerKillingAttributes().setKilledPlayers(list);
  496. }
  497.  
  498. if (reader.has("killed-gods")) {
  499. player.getAchievementAttributes()
  500. .setGodsKilled(builder.fromJson(reader.get("killed-gods").getAsJsonArray(), boolean[].class));
  501. }
  502.  
  503. if (reader.has("blocked-collectors-items")) {
  504. List<Integer> list = new ArrayList<Integer>();
  505. Integer[] blocked_items = builder.fromJson(reader.get("blocked-collectors-items").getAsJsonArray(),
  506. Integer[].class);
  507. for (int items : blocked_items)
  508. list.add(items);
  509. player.getBlockedCollectorsList().addAll(list);
  510. }
  511.  
  512. if (reader.has("barrows-brother")) {
  513. player.getMinigameAttributes().getBarrowsMinigameAttributes().setBarrowsData(
  514. builder.fromJson(reader.get("barrows-brother").getAsJsonArray(), int[][].class));
  515. }
  516.  
  517. if (reader.has("random-coffin")) {
  518. player.getMinigameAttributes().getBarrowsMinigameAttributes()
  519. .setRandomCoffin((reader.get("random-coffin").getAsInt()));
  520. }
  521.  
  522. if (reader.has("barrows-killcount")) {
  523. player.getMinigameAttributes().getBarrowsMinigameAttributes()
  524. .setKillcount((reader.get("barrows-killcount").getAsInt()));
  525. }
  526.  
  527. if (reader.has("nomad")) {
  528. player.getMinigameAttributes().getNomadAttributes()
  529. .setQuestParts(builder.fromJson(reader.get("nomad").getAsJsonArray(), boolean[].class));
  530. }
  531.  
  532. if (reader.has("recipe-for-disaster")) {
  533. player.getMinigameAttributes().getRecipeForDisasterAttributes().setQuestParts(
  534. builder.fromJson(reader.get("recipe-for-disaster").getAsJsonArray(), boolean[].class));
  535. }
  536.  
  537. if (reader.has("recipe-for-disaster-wave")) {
  538. player.getMinigameAttributes().getRecipeForDisasterAttributes()
  539. .setWavesCompleted((reader.get("recipe-for-disaster-wave").getAsInt()));
  540. }
  541.  
  542. if (reader.has("dung-items-bound")) {
  543. player.getMinigameAttributes().getDungeoneeringAttributes()
  544. .setBoundItems(builder.fromJson(reader.get("dung-items-bound").getAsJsonArray(), int[].class));
  545. }
  546.  
  547. if (reader.has("rune-ess")) {
  548. player.setStoredRuneEssence((reader.get("rune-ess").getAsInt()));
  549. }
  550.  
  551. if (reader.has("pure-ess")) {
  552. player.setStoredPureEssence((reader.get("pure-ess").getAsInt()));
  553. }
  554.  
  555. if (reader.has("bank-pin")) {
  556. player.getBankPinAttributes()
  557. .setBankPin(builder.fromJson(reader.get("bank-pin").getAsJsonArray(), int[].class));
  558. }
  559.  
  560. if (reader.has("has-bank-pin")) {
  561. player.getBankPinAttributes().setHasBankPin(reader.get("has-bank-pin").getAsBoolean());
  562. }
  563. if (reader.has("last-pin-attempt")) {
  564. player.getBankPinAttributes().setLastAttempt(reader.get("last-pin-attempt").getAsLong());
  565. }
  566. if (reader.has("invalid-pin-attempts")) {
  567. player.getBankPinAttributes().setInvalidAttempts(reader.get("invalid-pin-attempts").getAsInt());
  568. }
  569.  
  570. if (reader.has("bank-pin")) {
  571. player.getBankPinAttributes()
  572. .setBankPin(builder.fromJson(reader.get("bank-pin").getAsJsonArray(), int[].class));
  573. }
  574.  
  575. if (reader.has("appearance")) {
  576. player.getAppearance().set(builder.fromJson(reader.get("appearance").getAsJsonArray(), int[].class));
  577. }
  578.  
  579. if (reader.has("agility-obj")) {
  580. player.setCrossedObstacles(
  581. builder.fromJson(reader.get("agility-obj").getAsJsonArray(), boolean[].class));
  582. }
  583.  
  584. if (reader.has("skills")) {
  585. player.getSkillManager().setSkills(builder.fromJson(reader.get("skills"), Skills.class));
  586. }
  587. if (reader.has("inventory")) {
  588. player.getInventory()
  589. .setItems(builder.fromJson(reader.get("inventory").getAsJsonArray(), Item[].class));
  590. }
  591. if (reader.has("equipment")) {
  592. player.getEquipment()
  593. .setItems(builder.fromJson(reader.get("equipment").getAsJsonArray(), Item[].class));
  594. }
  595.  
  596. /** BANK **/
  597. for (int i = 0; i < 9; i++) {
  598. if (reader.has("bank-" + i + ""))
  599. player.setBank(i, new Bank(player)).getBank(i).addItems(
  600. builder.fromJson(reader.get("bank-" + i + "").getAsJsonArray(), Item[].class), false);
  601. }
  602.  
  603. if (reader.has("bank-0")) {
  604. player.setBank(0, new Bank(player)).getBank(0)
  605. .addItems(builder.fromJson(reader.get("bank-0").getAsJsonArray(), Item[].class), false);
  606. }
  607. if (reader.has("bank-1")) {
  608. player.setBank(1, new Bank(player)).getBank(1)
  609. .addItems(builder.fromJson(reader.get("bank-1").getAsJsonArray(), Item[].class), false);
  610. }
  611. if (reader.has("bank-2")) {
  612. player.setBank(2, new Bank(player)).getBank(2)
  613. .addItems(builder.fromJson(reader.get("bank-2").getAsJsonArray(), Item[].class), false);
  614. }
  615. if (reader.has("bank-3")) {
  616. player.setBank(3, new Bank(player)).getBank(3)
  617. .addItems(builder.fromJson(reader.get("bank-3").getAsJsonArray(), Item[].class), false);
  618. }
  619. if (reader.has("bank-4")) {
  620. player.setBank(4, new Bank(player)).getBank(4)
  621. .addItems(builder.fromJson(reader.get("bank-4").getAsJsonArray(), Item[].class), false);
  622. }
  623. if (reader.has("bank-5")) {
  624. player.setBank(5, new Bank(player)).getBank(5)
  625. .addItems(builder.fromJson(reader.get("bank-5").getAsJsonArray(), Item[].class), false);
  626. }
  627. if (reader.has("bank-6")) {
  628. player.setBank(6, new Bank(player)).getBank(6)
  629. .addItems(builder.fromJson(reader.get("bank-6").getAsJsonArray(), Item[].class), false);
  630. }
  631. if (reader.has("bank-7")) {
  632. player.setBank(7, new Bank(player)).getBank(7)
  633. .addItems(builder.fromJson(reader.get("bank-7").getAsJsonArray(), Item[].class), false);
  634. }
  635. if (reader.has("bank-8")) {
  636. player.setBank(8, new Bank(player)).getBank(8)
  637. .addItems(builder.fromJson(reader.get("bank-8").getAsJsonArray(), Item[].class), false);
  638. }
  639.  
  640. if (reader.has("ge-slots")) {
  641. GrandExchangeSlot[] slots = builder.fromJson(reader.get("ge-slots").getAsJsonArray(),
  642. GrandExchangeSlot[].class);
  643. player.setGrandExchangeSlots(slots);
  644. }
  645.  
  646. if (reader.has("store")) {
  647. Item[] validStoredItems = builder.fromJson(reader.get("store").getAsJsonArray(), Item[].class);
  648. if (player.getSummoning().getSpawnTask() != null)
  649. player.getSummoning().getSpawnTask().setValidItems(validStoredItems);
  650. }
  651.  
  652. if (reader.has("charm-imp")) {
  653. int[] charmImpConfig = builder.fromJson(reader.get("charm-imp").getAsJsonArray(), int[].class);
  654. player.getSummoning().setCharmimpConfig(charmImpConfig);
  655. }
  656.  
  657. if (reader.has("blowpipe-charge-item") || reader.has("blowpipe-charge-amount")) {
  658. player.getBlowpipeLoading().getContents().setCount(reader.get("blowpipe-charge-item").getAsInt(),
  659. reader.get("blowpipe-charge-amount").getAsInt());
  660. }
  661.  
  662. if (reader.has("friends")) {
  663. long[] friends = builder.fromJson(reader.get("friends").getAsJsonArray(), long[].class);
  664.  
  665. for (long l : friends) {
  666. player.getRelations().getFriendList().add(l);
  667. }
  668. }
  669. if (reader.has("ignores")) {
  670. long[] ignores = builder.fromJson(reader.get("ignores").getAsJsonArray(), long[].class);
  671.  
  672. for (long l : ignores) {
  673. player.getRelations().getIgnoreList().add(l);
  674. }
  675. }
  676.  
  677. if (reader.has("cleansing-time")) {
  678. player.setCleansingTime(reader.get("cleansing-time").getAsInt());
  679. }
  680.  
  681. if (reader.has("amount-donated-today")) {
  682. player.setAmountDonatedToday(reader.get("amount-donated-today").getAsInt());
  683. }
  684.  
  685. if (reader.has("claimed-first")) {
  686. player.claimedFirst = reader.get("claimed-first").getAsBoolean();
  687. }
  688.  
  689. if (reader.has("claimed-second")) {
  690. player.claimedSecond = reader.get("claimed-second").getAsBoolean();
  691. }
  692.  
  693. if (reader.has("claimed-third")) {
  694. player.claimedThird = reader.get("claimed-third").getAsBoolean();
  695. }
  696.  
  697. if (reader.has("last-donation")) {
  698. player.lastDonation = reader.get("last-donation").getAsLong();
  699. }
  700.  
  701. if (reader.has("last-time-reset")) {
  702. player.lastDonation = reader.get("last-time-reset").getAsLong();
  703. }
  704.  
  705. if (reader.has("praise-time")) {
  706. player.setPraiseTime(reader.get("praise-time").getAsInt());
  707. }
  708.  
  709. if (reader.has("loyalty-titles")) {
  710. player.setUnlockedLoyaltyTitles(
  711. builder.fromJson(reader.get("loyalty-titles").getAsJsonArray(), boolean[].class));
  712. }
  713.  
  714. if (reader.has("npc-tasks-progress")) {
  715. int[] loadedProgress = builder.fromJson(reader.get("npc-tasks-progress").getAsJsonArray(), int[].class);
  716. int defaultLength = player.getNpcTaskAttributes().getProgress().length;
  717. if (loadedProgress.length < defaultLength) {
  718.  
  719. for (int index = 0; index < defaultLength - 1; index++) {
  720. if (index < loadedProgress.length) {
  721. player.getNpcTaskAttributes().setProgress(index, loadedProgress[index]);
  722. } else {
  723. player.getNpcTaskAttributes().setProgress(index, 0);
  724. }
  725. }
  726. } else {
  727. player.getNpcTaskAttributes().setProgress(loadedProgress);
  728. }
  729. }
  730.  
  731. if (reader.has("progression-task-progress")) {
  732. player.getProgressionManager().loadData();
  733.  
  734. List<ProgressionTask> loadedProgressions = builder.fromJson(reader.get("progression-task-progress"),
  735. new TypeToken<List<ProgressionTask>>() {
  736. }.getType());
  737. for (int i = 0; i < loadedProgressions.size(); i++) {
  738. player.getProgressionManager().setProgression(i, loadedProgressions.get(i));
  739. }
  740. }
  741.  
  742. if (reader.has("npc-task-completion")) {
  743. boolean[] loadedCompletion = builder.fromJson(reader.get("npc-task-completion").getAsJsonArray(),
  744. boolean[].class);
  745. int defaultLength = player.getNpcTaskAttributes().getCompletion().length;
  746. // System.out.println("load length: "+ loadedCompletion.length + " default: " +
  747. // defaultLength);
  748. if (loadedCompletion.length < defaultLength) {
  749. System.out.println("load length: " + loadedCompletion + " default: " + defaultLength);
  750. for (int index = 0; index < defaultLength - 1; index++) {
  751. if (index < loadedCompletion.length) {
  752. System.out.println("what is this: " + index);
  753. player.getNpcTaskAttributes().setCompletion(index, loadedCompletion[index]);
  754. } else {
  755. player.getNpcTaskAttributes().setCompletion(index, false);
  756. }
  757. }
  758. } else {
  759. player.getNpcTaskAttributes().setCompletion(loadedCompletion);
  760. }
  761. }
  762.  
  763. if (reader.has("tasks-completion")) {
  764. boolean[] loadedCompletion = builder.fromJson(reader.get("tasks-completion").getAsJsonArray(),
  765. boolean[].class);
  766. int defaultLength = player.getStarterTaskAttributes().getCompletion().length;
  767. // System.out.println("load length: "+ loadedCompletion.length + " default: " +
  768. // defaultLength);
  769. if (loadedCompletion.length < defaultLength) {
  770. System.out.println("load length: " + loadedCompletion + " default: " + defaultLength);
  771. for (int index = 0; index < defaultLength - 1; index++) {
  772. if (index < loadedCompletion.length) {
  773. System.out.println("what is this: " + index);
  774. player.getStarterTaskAttributes().setCompletion(index, loadedCompletion[index]);
  775. } else {
  776. player.getStarterTaskAttributes().setCompletion(index, false);
  777. }
  778. }
  779. } else {
  780. player.getStarterTaskAttributes().setCompletion(loadedCompletion);
  781. }
  782. }
  783.  
  784. if (reader.has("npc-kc-data")) {
  785. Map<Integer, Integer> kcData = builder.fromJson(reader.get("npc-kc-data"),
  786. new TypeToken<Map<Integer, Integer>>() {
  787. }.getType());
  788. System.out.println("Got this data: " + kcData);
  789. player.setNpcKillCount(kcData);
  790. }
  791.  
  792. if (reader.has("achievements-completion")) {
  793. boolean[] loadedCompletion = builder.fromJson(reader.get("achievements-completion").getAsJsonArray(),
  794. boolean[].class);
  795. int defaultLength = player.getAchievementAttributes().getCompletion().length;
  796. if (loadedCompletion.length < defaultLength) {
  797.  
  798. for (int index = 0; index < defaultLength - 1; index++) {
  799. if (index < loadedCompletion.length) {
  800. player.getAchievementAttributes().setCompletion(index, loadedCompletion[index]);
  801. } else {
  802. player.getAchievementAttributes().setCompletion(index, false);
  803. }
  804. }
  805. } else {
  806. player.getAchievementAttributes().setCompletion(loadedCompletion);
  807. }
  808. }
  809.  
  810. if (reader.has("tasks-progress")) {
  811. int[] loadedProgress = builder.fromJson(reader.get("tasks-progress").getAsJsonArray(), int[].class);
  812. int defaultLength = player.getStarterTaskAttributes().getProgress().length;
  813. if (loadedProgress.length < defaultLength) {
  814.  
  815. for (int index = 0; index < defaultLength - 1; index++) {
  816. if (index < loadedProgress.length) {
  817. player.getStarterTaskAttributes().setProgress(index, loadedProgress[index]);
  818. } else {
  819. player.getStarterTaskAttributes().setProgress(index, 0);
  820. }
  821. }
  822. } else {
  823. player.getStarterTaskAttributes().setProgress(loadedProgress);
  824. }
  825. }
  826.  
  827. if (reader.has("achievements-progress")) {
  828. int[] loadedProgress = builder.fromJson(reader.get("achievements-progress").getAsJsonArray(),
  829. int[].class);
  830. int defaultLength = player.getAchievementAttributes().getProgress().length;
  831. if (loadedProgress.length < defaultLength) {
  832.  
  833. for (int index = 0; index < defaultLength - 1; index++) {
  834. if (index < loadedProgress.length) {
  835. player.getAchievementAttributes().setProgress(index, loadedProgress[index]);
  836. } else {
  837. player.getAchievementAttributes().setProgress(index, 0);
  838. }
  839. }
  840. } else {
  841. player.getAchievementAttributes().setProgress(loadedProgress);
  842. }
  843. }
  844.  
  845. if (reader.has("max-cape-colors")) {
  846. int[] colors = builder.fromJson(reader.get("max-cape-colors").getAsJsonArray(), int[].class);
  847. player.setMaxCapeColors(colors);
  848. }
  849.  
  850. if (reader.has("santa-colors")) {
  851. int[] colors = builder.fromJson(reader.get("santa-colors").getAsJsonArray(), int[].class);
  852. player.setSantaColors(colors);
  853. }
  854.  
  855. /*
  856. * if (reader.has("santa-colors")) { int[] colors =
  857. * builder.fromJson(reader.get("santa-colors").getAsJsonArray(), int[].class);
  858. * player.setSantaColors(colors); }
  859. */
  860.  
  861. if (reader.has("comp-cape-colors")) {
  862. int[] colors = builder.fromJson(reader.get("comp-cape-colors").getAsJsonArray(), int[].class);
  863. player.setCompCapeColors(colors);
  864. }
  865.  
  866. if (reader.has("player-title")) {
  867. player.setTitle(reader.get("player-title").getAsString());
  868. }
  869.  
  870. if (reader.has("player-custom-yell")) {
  871. if (player.getRights() != null)
  872. player.getRights().customYellTitle = (reader.get("player-custom-yell").getAsString());
  873. }
  874.  
  875. if (reader.has("lastDonationClaim"))
  876. player.lastDonationClaim = (reader.get("lastDonationClaim").getAsLong());
  877.  
  878. if (reader.has("lastOpPotion"))
  879. player.lastOpPotion = (reader.get("lastOpPotion").getAsLong());
  880.  
  881. if (reader.has("lastHpRestore"))
  882. player.lastHpRestore = (reader.get("lastHpRestore").getAsLong());
  883.  
  884. if (reader.has("lastPrayerRestore"))
  885. player.lastPrayerRestore = (reader.get("lastPrayerRestore").getAsLong());
  886.  
  887. if (reader.has("lastCashClaim"))
  888. player.lastCashClaim = (reader.get("lastCashClaim").getAsLong());
  889. if (reader.has("lastlogin"))
  890. player.lastLogin = (reader.get("lastlogin").getAsLong());
  891. if (reader.has("lastdailyclaim"))
  892. player.lastDailyClaim = (reader.get("lastdailyclaim").getAsLong());
  893.  
  894. if (reader.has("day1claimed"))
  895. player.day1Claimed = (reader.get("day1claimed").getAsBoolean());
  896.  
  897. if (reader.has("day2claimed"))
  898. player.day2Claimed = (reader.get("day2claimed").getAsBoolean());
  899.  
  900. if (reader.has("day3claimed"))
  901. player.day3Claimed = (reader.get("day3claimed").getAsBoolean());
  902.  
  903. if (reader.has("day4claimed"))
  904. player.day4Claimed = (reader.get("day4claimed").getAsBoolean());
  905.  
  906. if (reader.has("day5claimed"))
  907. player.day5Claimed = (reader.get("day5claimed").getAsBoolean());
  908.  
  909. if (reader.has("day6claimed"))
  910. player.day6Claimed = (reader.get("day6claimed").getAsBoolean());
  911.  
  912. if (reader.has("day7claimed"))
  913. player.day7Claimed = (reader.get("day7claimed").getAsBoolean());
  914.  
  915. if (reader.has("lastvotetime"))
  916. player.lastVoteTime = (reader.get("lastvotetime").getAsLong());
  917.  
  918. if (reader.has("hasvotedtoday"))
  919. player.hasVotedToday = (reader.get("hasvotedtoday").getAsBoolean());
  920.  
  921. if (reader.has("roulette-balance"))
  922. player.setRouletteBalance(reader.get("roulette-balance").getAsInt());
  923.  
  924. if (reader.has("roulette-bet-amount"))
  925. player.setRouletteBet(reader.get("roulette-bet-amount").getAsInt());
  926.  
  927. if (reader.has("lastSpecialPotClaim"))
  928. player.lastSpecialRestoreClaim = (reader.get("lastSpecialPotClaim").getAsLong());
  929.  
  930. if (reader.has("savedKeyCount1"))
  931. player.savedKeyCount1 = (reader.get("savedKeyCount1").getAsInt());
  932.  
  933. if (reader.has("savedKeyCount2"))
  934. player.savedKeyCount2 = (reader.get("savedKeyCount2").getAsInt());
  935.  
  936. if (reader.has("savedKeyCount3"))
  937. player.savedKeyCount3 = (reader.get("savedKeyCount3").getAsInt());
  938.  
  939. } catch (Exception e) {
  940. e.printStackTrace();
  941. return LoginResponses.LOGIN_SUCCESSFUL;
  942. }
  943. try {
  944.  
  945. Path path2 = Paths.get("./data/saves/construction/", player.getUsername() + ".obj");
  946. File file2 = path2.toFile();
  947.  
  948. if (file2.exists()) {
  949. FileInputStream fileIn = new FileInputStream(file2);
  950. ObjectInputStream in = new ObjectInputStream(fileIn);
  951. ConstructionSave save = (ConstructionSave) in.readObject();
  952. player.setHouseRooms(save.getHouseRooms());
  953. player.setHouseFurtinture(save.getHouseFurniture());
  954. player.setHousePortals(save.getHousePortals());
  955. in.close();
  956. fileIn.close();
  957. }
  958.  
  959. } catch (Throwable t) {
  960. t.printStackTrace();
  961. }
  962. return LoginResponses.LOGIN_SUCCESSFUL;
  963. }
  964. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement