Advertisement
Guest User

Untitled

a guest
Apr 8th, 2019
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 111.39 KB | None | 0 0
  1. package game.player;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.BufferedWriter;
  5. import java.io.File;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileReader;
  8. import java.io.FileWriter;
  9. import java.io.IOException;
  10. import java.nio.file.Path;
  11. import java.nio.file.Paths;
  12. import java.util.Map;
  13. import java.util.regex.Matcher;
  14. import java.util.regex.Pattern;
  15.  
  16. import javax.crypto.IllegalBlockSizeException;
  17.  
  18. import com.google.gson.Gson;
  19. import com.google.gson.GsonBuilder;
  20. import com.google.gson.JsonObject;
  21. import com.google.gson.JsonParser;
  22. import com.google.gson.reflect.TypeToken;
  23.  
  24. import core.ServerConstants;
  25. import game.container.ItemContainer;
  26. import game.container.ItemContainerFromStringDecoder;
  27. import game.container.ItemContainerToStringEncoder;
  28. import game.content.diaries.DiaryTask;
  29. import game.content.miscellaneous.GameTimeSpent;
  30. import game.entity.attributes.AttributeKey;
  31. import game.entity.attributes.AttributeSerializationType;
  32. import game.entity.attributes.PermanentAttributeKeyManager;
  33. import game.player.pet.PlayerPetState;
  34. import it.unimi.dsi.fastutil.objects.Object2IntArrayMap;
  35. import utility.AESencrp;
  36. import utility.Misc;
  37.  
  38. public class PlayerSave {
  39.  
  40. private static final Gson gson = new GsonBuilder().create();
  41.  
  42. public static int loadGame(Player player, String playerName, String playerPass, boolean bot) {
  43. String line = "";
  44. String token = "";
  45. String token2 = "";
  46. String[] token3 = new String[3];
  47. String string = "";
  48. String[] parse = null;
  49. boolean EndOfFile = false;
  50. int ReadMode = 0;
  51. BufferedReader characterfile = null;
  52. boolean File1 = false;
  53. try {
  54. characterfile = new BufferedReader(
  55. new FileReader((bot ? "./backup/characters/bots/" : ServerConstants.getCharacterLocation())
  56. + playerName.toLowerCase() + ".txt"));
  57. File1 = true;
  58. } catch (FileNotFoundException e) {
  59. // Not needed or every new player will print this error.
  60. }
  61. if (!File1) {
  62. return 0;
  63. }
  64. try {
  65. line = characterfile.readLine();
  66. } catch (IOException e) {
  67. e.printStackTrace();
  68. Misc.print(playerName + ": error loading file.");
  69. try {
  70. characterfile.close();
  71. } catch (IOException a) {
  72. a.printStackTrace();
  73. }
  74. return 3;
  75. }
  76.  
  77. getResult(player);
  78.  
  79. while (EndOfFile == false && line != null) {
  80. line = line.trim();
  81. int spot = line.indexOf("=");
  82. if (spot > -1) {
  83. token = line.substring(0, spot);
  84. token = token.trim();
  85. token2 = line.substring(spot + 1);
  86. token2 = token2.trim();
  87. token3 = token2.split("\t");
  88. switch (ReadMode) {
  89. case 1:
  90. if (token.equals("Username")) {
  91. player.setPlayerName(token2);
  92. } else if (token.equals("Password")) {
  93. try {
  94. if (playerPass.equalsIgnoreCase(AESencrp.decrypt(token2))) {
  95. playerPass = AESencrp.decrypt(token2);
  96. } else {
  97. try {
  98. characterfile.close();
  99. } catch (IOException e) {
  100. e.printStackTrace();
  101. }
  102. return 3;
  103. }
  104. } catch (IllegalBlockSizeException e) {
  105. e.printStackTrace();
  106. Misc.print("Wrong password exception1.");
  107. try {
  108. characterfile.close();
  109. } catch (IOException a) {
  110. a.printStackTrace();
  111. }
  112. return 3;
  113. } catch (Exception e) {
  114. e.printStackTrace();
  115. Misc.print("Wrong password exception2.");
  116. try {
  117. characterfile.close();
  118. } catch (IOException b) {
  119. b.printStackTrace();
  120. }
  121. return 3;
  122. }
  123. }
  124. break;
  125. case 2:
  126. AttributeKey<?> attributeForToken = PermanentAttributeKeyManager.getSingleton().getKey(token);
  127.  
  128. if (attributeForToken != null) {
  129. try {
  130. Object decoded = gson.fromJson(token2, attributeForToken.defaultValue().getClass());
  131.  
  132. if (decoded != null) {
  133. player.getAttributes().put(attributeForToken, decoded);
  134. }
  135. } catch (Exception e) {
  136. e.printStackTrace();
  137. }
  138. } else if (token.equals("height")) {
  139. player.setHeight(Integer.parseInt(token2));
  140. } else if (token.equals("x")) {
  141. player.teleportToX = (Integer.parseInt(token2) <= 0 ? 3087 : Integer.parseInt(token2));
  142. } else if (token.equals("y")) {
  143. player.teleportToY = (Integer.parseInt(token2) <= 0 ? 3510 : Integer.parseInt(token2));
  144. } else if (token.equals("authority")) {
  145. player.playerRights = Integer.parseInt(token2);
  146. } else if (token.equals("lastSavedIpAddress")) {
  147. player.lastSavedIpAddress = token2;
  148. } else if (token.equals("addressMac")) {
  149. player.addressMac = token2;
  150. } else if (token.equals("addressUid")) {
  151. player.addressUid = token2;
  152. } else if (token.equals("skullTimer")) {
  153. player.skullTimer = Integer.parseInt(token2);
  154. } else if (token.equals("timeSkilled")) {
  155. player.timeSkilled = Long.parseLong(token2);
  156. } else if (token.equals("timeUsedHealthBoxSpecial")) {
  157. player.timeUsedHealthBoxSpecial = Long.parseLong(token2);
  158. } else if (token.equals("timeVoteNotificationAlerted")) {
  159. player.timeVoteNotificationAlerted = Long.parseLong(token2);
  160. } else if (token.equals("accountOfferNotificationPopUpTime")) {
  161. player.accountOfferNotificationPopUpTime = Long.parseLong(token2);
  162. } else if (token.equals("timeAccountOfferShown")) {
  163. player.timeAccountOfferShown = Long.parseLong(token2);
  164. } else if (token.equals("accountOffersSkippedStreak")) {
  165. player.accountOffersSkippedStreak = Integer.parseInt(token2);
  166. } else if (token.equals("accountOfferClaimTargetGoal")) {
  167. player.accountOfferClaimTargetGoal = Integer.parseInt(token2);
  168. } else if (token.equals("accountOfferClaimTargetProgress")) {
  169. player.accountOfferClaimTargetProgress = Double.parseDouble(token2);
  170. } else if (token.equals("accountOfferRewardItemAmount")) {
  171. player.accountOfferRewardItemAmount = Integer.parseInt(token2);
  172. } else if (token.equals("accountOfferRewardItemId")) {
  173. player.accountOfferRewardItemId = Integer.parseInt(token2);
  174. } else if (token.equals("tilesWalked")) {
  175. player.tilesWalked = Integer.parseInt(token2);
  176. } else if (token.equals("spellBook")) {
  177. player.spellBook = token2;
  178. } else if (token.equals("bankPin")) {
  179. player.bankPin = token2;
  180. } else if (token.equals("setPin")) {
  181. player.setPin = Boolean.parseBoolean(token2);
  182. } else if (token.equals("jailed")) {
  183. player.setJailed(Boolean.parseBoolean(token2));
  184. } else if (token.equals("chatEffects")) {
  185. player.chatEffects = Boolean.parseBoolean(token2);
  186. } else if (token.equals("tutorialComplete")) {
  187. player.setTutorialComplete(Boolean.parseBoolean(token2));
  188. } else if (token.equals("wildernessKills")) {
  189. player.setWildernessKills(Integer.parseInt(token2));
  190. } else if (token.equals("wildernessDeaths")) {
  191. player.setWildernessDeaths(Short.parseShort(token2));
  192. } else if (token.equals("safeKills")) {
  193. player.safeKills = Integer.parseInt(token2);
  194. } else if (token.equals("safeDeaths")) {
  195. player.safeDeaths = Integer.parseInt(token2);
  196. } else if (token.equals("yellMutes")) {
  197. player.yellMutes = Integer.parseInt(token2);
  198. } else if (token.equals("specialAttackAmount")) {
  199. player.setSpecialAttackAmount(Double.parseDouble(token2), false);
  200. } else if (token.equals("teleBlockEndTime")) {
  201. player.teleBlockEndTime = Long.parseLong(token2);
  202. } else if (token.equals("splitChat")) {
  203. player.splitChat = Boolean.parseBoolean(token2);
  204. } else if (token.equals("foodAte")) {
  205. player.foodAte = Integer.parseInt(token2);
  206.  
  207. } else if (token.equals("summon-duration")) {
  208. player.getSummoning().setDuration(Integer.parseInt(token2));
  209. } else if (token.equals("logOutTime")) {
  210. player.logOutTime = Long.parseLong(token2);
  211. } else if (token.equals("chargeSpellTime")) {
  212. player.chargeSpellTime = Long.parseLong(token2);
  213. } else if (token.equals("imbuedHeartTime")) {
  214. player.imbuedHeartEndTime = Long.parseLong(token2);
  215. } else if (token.equals("timeLastClaimedDonation")) {
  216. player.setTimeLastClaimedDonation(Long.parseLong(token2));
  217. } else if (token.equals("yellTag")) {
  218. player.yellTag = token2;
  219. } else if (token.equals("biographyLine1")) {
  220. player.biographyLine1 = token2;
  221. } else if (token.equals("biographyLine2")) {
  222. player.biographyLine2 = token2;
  223. } else if (token.equals("biographyLine3")) {
  224. player.biographyLine3 = token2;
  225. } else if (token.equals("biographyLine4")) {
  226. player.biographyLine4 = token2;
  227. } else if (token.equals("biographyLine5")) {
  228. player.biographyLine5 = token2;
  229. } else if (token.equals("switches")) {
  230. player.switches = Integer.parseInt(token2);
  231. } else if (token.equals("potionDrank")) {
  232. player.potionDrank = Integer.parseInt(token2);
  233. } else if (token.equals("duelArenaStakes")) {
  234. player.duelArenaStakes = Integer.parseInt(token2);
  235. } else if (token.equals("tradesCompleted")) {
  236. player.tradesCompleted = Integer.parseInt(token2);
  237. } else if (token.equals("meleeTournamentsWon1")) {
  238. player.meleeTournamentsWon1 = Integer.parseInt(token2);
  239. } else if (token.equals("tribridTournamentsWon1")) {
  240. player.tribridTournamentsWon1 = Integer.parseInt(token2);
  241. } else if (token.equals("hybridTournamentsWon1")) {
  242. player.hybridTournamentsWon1 = Integer.parseInt(token2);
  243. } else if (token.equals("xpLock")) {
  244. player.xpLock = Boolean.parseBoolean(token2);
  245. } else if (token.equals("teleportsUsed")) {
  246. player.teleportsUsed = Integer.parseInt(token2);
  247. } else if (token.equals("sqlIndex")) {
  248. player.setSqlIndex(Integer.parseInt(token2));
  249. } else if (token.equals("barrowsPersonalRecord")) {
  250. player.barrowsPersonalRecord = Integer.parseInt(token2);
  251. } else if (token.equals("barrowsRunCompleted")) {
  252. player.setBarrowsRunCompleted(Integer.parseInt(token2));
  253. } else if (token.equals("poisonDamage")) {
  254. player.poisonDamage = Integer.parseInt(token2);
  255. } else if (token.equals("poisonTicksUntillDamage")) {
  256. player.poisonTicksUntillDamage = Integer.parseInt(token2);
  257. } else if (token.equals("poisonHitsplatsLeft")) {
  258. player.poisonHitsplatsLeft = Integer.parseInt(token2);
  259. } else if (token.equals("currentKillStreak")) {
  260. player.currentKillStreak = Integer.parseInt(token2);
  261. } else if (token.equals("killStreaksRecord")) {
  262. player.killStreaksRecord = Integer.parseInt(token2);
  263. } else if (token.equals("playerTitle")) {
  264. player.playerTitle = token2;
  265. } else if (token.equals("titleColour")) {
  266. player.titleColour = token2;
  267. } else if (token.equals("titleSwap")) {
  268. player.titleSwap = Integer.parseInt(token2);
  269. } else if (token.equals("petID")) {
  270. player.setPetId(Integer.parseInt(token2));
  271. } else if (token.equals("petSummoned")) {
  272. player.setPetSummoned(Boolean.parseBoolean(token2));
  273. } else if (token.equals("passwordChangeAlertedComplete1")) {
  274. player.passwordChangeAlertedComplete = Boolean.parseBoolean(token2);
  275. } else if (token.equals("secondPetId")) {
  276. player.setSecondPetId(Integer.parseInt(token2));
  277. } else if (token.equals("secondPetSummoned")) {
  278. player.setSecondPetSummoned(Boolean.parseBoolean(token2));
  279. } else if (token.equals("profilePrivacyOn")) {
  280. player.profilePrivacyOn = Boolean.parseBoolean(token2);
  281. } else if (token.equals("tank")) {
  282. player.setTank(Boolean.parseBoolean(token2));
  283. } else if (token.equals("whiteSkull")) {
  284. player.setWhiteSkull(Boolean.parseBoolean(token2));
  285. } else if (token.equals("redSkull")) {
  286. player.setRedSkull(Boolean.parseBoolean(token2));
  287. } else if (token.equals("infernalAndMaxCapesUnlockedScrollConsumed")) {
  288. player.setInfernalAndMaxCapesUnlockedScrollConsumed(Boolean.parseBoolean(token2));
  289. } else if (token.equals("canClaimPvpTaskReward")) {
  290. player.canClaimPvpTaskReward = Boolean.parseBoolean(token2);
  291. } else if (token.equals("pvpTasksCompleted")) {
  292. player.pvpTasksCompleted = Integer.parseInt(token2);
  293. } else if (token.equals("customPetPoints")) {
  294. player.setCustomPetPoints(Integer.parseInt(token2));
  295. } else if (token.equals("pvpTaskSize")) {
  296. player.pvpTaskSize = Integer.parseInt(token2);
  297. } else if (token.equals("headIconPk")) {
  298. player.headIconPk = Integer.parseInt(token2);
  299. } else if (token.equals("voteTotalPoints")) {
  300. player.voteTotalPoints = Integer.parseInt(token2);
  301. } else if (token.equals("toolUses")) {
  302. player.setToolUses(Integer.parseInt(token2));
  303. } else if (token.equals("qp")) {
  304. player.setQuestPoints(Integer.parseInt(token2));
  305. } else if (token.equals("randomCoffin")) {
  306. player.randomCoffin = Integer.parseInt(token2);
  307. } else if (token.equals("autoRetaliate")) {
  308. player.setAutoRetaliate(Integer.parseInt(token2));
  309. } else if (token.equals("runModeOn")) {
  310. player.runModeOn = Boolean.parseBoolean(token2);
  311. } else if (token.equals("accountOfferCompleted")) {
  312. player.accountOfferCompleted = Boolean.parseBoolean(token2);
  313. } else if (token.equals("autoBuyBack")) {
  314. player.autoBuyBack = Boolean.parseBoolean(token2);
  315. } else if (token.equals("bossKillCountMessage")) {
  316. player.bossKillCountMessage = Boolean.parseBoolean(token2);
  317. } else if (token.equals("displayBots")) {
  318. player.displayBots = Boolean.parseBoolean(token2);
  319. } else if (token.equals("smashVials")) {
  320. player.smashVials = Boolean.parseBoolean(token2);
  321. } else if (token.equals("toggleSeedPod")) {
  322. player.toggleSeedPod = Boolean.parseBoolean(token2);
  323. } else if (token.equals("toggleLootKey")) {
  324. player.toggleLootKey = Boolean.parseBoolean(token2);
  325. } else if (token.equals("ancientsInterfaceType")) {
  326. player.ancientsInterfaceType = Integer.parseInt(token2);
  327. } else if (token.equals("combatStyle")) {
  328. player.setCombatStyle(Integer.parseInt(token2));
  329. } else if (token.equals("highestRfdWave")) {
  330. player.highestRfdWave = Integer.parseInt(token2);
  331. } else if (token.equals("runEnergy")) {
  332. player.runEnergy = Double.parseDouble(token2);
  333. } else if (token.equals("totalPaymentAmount")) {
  334. player.totalPaymentAmount = Double.parseDouble(token2);
  335. } else if (token.equals("playerBotKills")) {
  336. player.playerBotKills = Integer.parseInt(token2);
  337. } else if (token.equals("playerBotDeaths")) {
  338. player.playerBotDeaths = Integer.parseInt(token2);
  339. } else if (token.equals("donatorTokensReceived")) {
  340. player.donatorTokensReceived = Integer.parseInt(token2);
  341. } else if (token.equals("playerBotHighestKillstreak")) {
  342. player.playerBotHighestKillstreak = Integer.parseInt(token2);
  343. } else if (token.equals("lastXAmount")) {
  344. player.lastXAmount = Integer.parseInt(token2);
  345. } else if (token.equals("valuableLoot")) {
  346. player.valuableLoot = Integer.parseInt(token2);
  347. } else if (token.equals("votesClaimed")) {
  348. player.votesClaimed = Integer.parseInt(token2);
  349. } else if (token.equals("venomDamage")) {
  350. player.venomDamage = Integer.parseInt(token2);
  351. } else if (token.equals("venomHits")) {
  352. player.venomHits = Integer.parseInt(token2);
  353. } else if (token.equals("venomTicksUntillDamage")) {
  354. player.venomTicksUntillDamage = Integer.parseInt(token2);
  355. } else if (token.equals("bloodMoneySpent")) {
  356. player.bloodMoneySpent = Integer.parseInt(token2);
  357. } else if (token.equals("playerBotCurrentKillstreak")) {
  358. player.playerBotCurrentKillstreak = Integer.parseInt(token2);
  359. } else if (token.equals("timeUsedPreset")) {
  360. player.timeUsedPreset = Long.parseLong(token2);
  361. } else if (token.equals("timeEarnedBloodMoneyInResourceWild")) {
  362. player.setTimeEarnedBloodMoneyInResourceWild(Long.parseLong(token2));
  363. } else if (token.equals("spellbookSwapUsedOnSameDateAmount")) {
  364. player.setSpellbookSwapUsedOnSameDateAmount(Integer.parseInt(token2));
  365. } else if (token.equals("dateUsedSpellbookSwap")) {
  366. player.setDateUsedSpellbookSwap(token2);
  367. } else if (token.equals("compColor1")) {
  368. player.compColor1 = Integer.parseInt(token2);
  369. } else if (token.equals("compColor2")) {
  370. player.compColor2 = Integer.parseInt(token2);
  371. } else if (token.equals("compColor3")) {
  372. player.compColor3 = Integer.parseInt(token2);
  373. } else if (token.equals("slayerPoints")) {
  374. player.setSlayerPoints(Integer.parseInt(token2));
  375. } else if (token.equals("compColor4")) {
  376. player.compColor4 = Integer.parseInt(token2);
  377. } else if (token.equals("yellMuteExpireTime")) {
  378. player.yellMuteExpireTime = Long.parseLong(token2);
  379. } else if (token.equals("xpBonusEndTime")) {
  380. player.setXpBonusEndTime(Long.parseLong(token2));
  381. } else if (token.equals("timeDiedInWilderness")) {
  382. player.timeDiedInWilderness = Long.parseLong(token2);
  383. } else if (token.equals("timeWeeklyGameTimeUsed")) {
  384. player.timeWeeklyGameTimeUsed = Long.parseLong(token2);
  385. } else if (token.equals("timeVoted")) {
  386. player.timeVoted = Long.parseLong(token2);
  387. } else if (token.equals("xpLampUsedTime")) {
  388. player.xpLampUsedTime = Long.parseLong(token2);
  389. } else if (token.equals("venomImmunityExpireTime")) {
  390. player.venomImmunityExpireTime = Long.parseLong(token2);
  391. } else if (token.equals("accountDateCreated")) {
  392. player.accountDateCreated = token2;
  393. } else if (token.equals("secondsBeenOnline")) {
  394. player.secondsBeenOnline = Integer.parseInt(token2);
  395. } else if (token.equals("meleeMainKills")) {
  396. player.setMeleeMainKills(Integer.parseInt(token2));
  397. } else if (token.equals("hybridKills")) {
  398. player.setHybridKills(Integer.parseInt(token2));
  399. } else if (token.equals("berserkerPureKills")) {
  400. player.setBerserkerPureKills(Integer.parseInt(token2));
  401. } else if (token.equals("pureKills")) {
  402. player.setPureKills(Integer.parseInt(token2));
  403. } else if (token.equals("rangedTankKills")) {
  404. player.setRangedTankKills(Integer.parseInt(token2));
  405. } else if (token.equals("f2pKills")) {
  406. player.setF2pKills(Integer.parseInt(token2));
  407. } else if (token.equals("killsInMulti")) {
  408. player.killsInMulti = Integer.parseInt(token2);
  409. } else if (token.equals("lastTeleport")) {
  410. player.lastTeleport = token2;
  411. } else if (token.equals("wildernessKillsReset")) {
  412. player.wildernessKillsReset = Integer.parseInt(token2);
  413. } else if (token.equals("wildernessDeathsReset")) {
  414. player.wildernessDeathsReset = Integer.parseInt(token2);
  415. } else if (token.equals("targetsKilled")) {
  416. player.targetsKilled = Integer.parseInt(token2);
  417. } else if (token.equals("targetDeaths")) {
  418. player.targetDeaths = Integer.parseInt(token2);
  419. } else if (token.equals("money-pouch")) {
  420. int coins = Integer.parseInt(token2);
  421. player.getMoneyPouch().setCoinsToAdd(coins);
  422. } else if (token.equals("targetActivityPoints")) {
  423. player.targetActivityPoints = Integer.parseInt(token2);
  424. } else if (token.equals("recoilCharges")) {
  425. player.setRecoilCharges(Integer.parseInt(token2));
  426. } else if (token.equals("braceletCharges")) {
  427. player.braceletCharges = Integer.parseInt(token2);
  428. } else if (token.equals("xpBarShowType")) {
  429. player.xpBarShowType = token2;
  430. } else if (token.equals("lastClanChatJoined")) {
  431. player.lastClanChatJoined = token2;
  432. } else if (token.equals("yellMode")) {
  433. player.yellMode = token2;
  434. } else if (token.equals("originalIp")) {
  435. player.originalIp = token2;
  436. } else if (token.equals("originalUid")) {
  437. player.originalUid = token2;
  438. } else if (token.equals("originalMac")) {
  439. player.originalMac = token2;
  440. } else if (token.equals("gameMode")) {
  441. player.setGameMode(token2);
  442. } else if (token.equals("difficultyChosen")) {
  443. player.setDifficultyChosen(token2);
  444. } else if (token.equals("blowpipeDartItemId")) {
  445. player.blowpipeDartItemId = Integer.parseInt(token2);
  446. } else if (token.equals("blowpipeDartItemAmount")) {
  447. player.blowpipeDartItemAmount = Integer.parseInt(token2);
  448. } else if (token.equals("blowpipeCharges")) {
  449. player.setBlowpipeCharges(Integer.parseInt(token2));
  450. } else if (token.equals("teleportWarning")) {
  451. player.teleportWarning = Boolean.parseBoolean(token2);
  452. } else if (token.equals("playerIsLeakedSourceClean")) {
  453. player.playerIsLeakedSourceClean = Boolean.parseBoolean(token2);
  454. } else if (token.equals("ableToEditCombat")) {
  455. player.setAbleToEditCombat(Boolean.parseBoolean(token2));
  456. } else if (token.equals("killScreenshots")) {
  457. player.killScreenshots = Boolean.parseBoolean(token2);
  458. } else if (token.equals("rigourUnlocked")) {
  459. player.rigourUnlocked = Boolean.parseBoolean(token2);
  460. } else if (token.equals("auguryUnlocked")) {
  461. player.auguryUnlocked = Boolean.parseBoolean(token2);
  462. } else if (token.equals("announceMaxLevel")) {
  463. player.announceMaxLevel = Boolean.parseBoolean(token2);
  464. } else if (token.equals("bloodKeysCollected")) {
  465. player.bloodKeysCollected = Integer.parseInt(token2);
  466. } else if (token.equals("snowBallsLandedOnMe")) {
  467. player.snowBallsLandedOnMe = Integer.parseInt(token2);
  468. } else if (token.equals("snowBallsThrownAtMe")) {
  469. player.snowBallsThrownAtMe = Integer.parseInt(token2);
  470. } else if (token.equals("throneId")) {
  471. player.throneId = Integer.parseInt(token2);
  472. } else if (token.equals("bossScoreCapped")) {
  473. player.bossScoreCapped = Integer.parseInt(token2);
  474. } else if (token.equals("bossScoreUnCapped")) {
  475. player.bossScoreUnCapped = Integer.parseInt(token2);
  476. } else if (token.equals("myTabs")) {
  477. player.myTabs = Integer.parseInt(token2);
  478. } else if (token.equals("enemyTabs")) {
  479. player.enemyTabs = Integer.parseInt(token2);
  480. } else if (token.equals("barragesCasted")) {
  481. player.barragesCasted = Integer.parseInt(token2);
  482. } else if (token.equals("randomEventIncorrectTries")) {
  483. player.randomEventIncorrectTries = Integer.parseInt(token2);
  484. } else if (token.equals("timeOfAccountCreation")) {
  485. player.timeOfAccountCreation = Long.parseLong(token2);
  486. } else if (token.equals("timeCraftedRunes")) {
  487. player.timeCraftedRunes = Long.parseLong(token2);
  488. } else if (token.equals("timeLoggedOff")) {
  489. player.timeLoggedOff = Long.parseLong(token2);
  490. } else if (token.equals("meritPoints")) {
  491. player.setMeritPoints(Integer.parseInt(token2));
  492. } else if (token.equals("deathsToNpc")) {
  493. player.deathsToNpc = Integer.parseInt(token2);
  494. } else if (token.equals("privateChat")) {
  495. player.privateChat = Integer.parseInt(token2);
  496. } else if (token.equals("publicChatMode")) {
  497. player.publicChatMode = Integer.parseInt(token2);
  498. } else if (token.equals("tradeChatMode")) {
  499. player.tradeChatMode = Integer.parseInt(token2);
  500. } else if (token.equals("donatorTokensRankUsed")) {
  501. player.donatorTokensRankUsed = Integer.parseInt(token2);
  502. } else if (token.equals("agilityPoints")) {
  503. player.setAgilityPoints(Integer.parseInt(token2));
  504. } else if (token.equals("antiFirePotionTimer")) {
  505. player.setAntiFirePotionTimer(Integer.parseInt(token2));
  506. } else if (token.equals("staminaPotionTimer")) {
  507. player.setStaminaPotionTimer(Integer.parseInt(token2));
  508. } else if (token.equals("slayerTaskNpcType")) {
  509. player.slayerTaskNpcType = Integer.parseInt(token2);
  510. } else if (token.equals("slayerTaskNpcAmount")) {
  511. player.slayerTaskNpcAmount = Integer.parseInt(token2);
  512. } else if (token.equals("overloadReboostTicks")) {
  513. player.overloadReboostTicks = Integer.parseInt(token2);
  514. } else if (token.equals("timeAcceptedTradeInDiceZone")) {
  515. player.timeAcceptedTradeInDiceZone = Long.parseLong(token2);
  516. } else if (token.equals("zulrah-lost-items")) {
  517. ItemContainer container = new ItemContainerFromStringDecoder().decode(token2);
  518.  
  519. if (container != null) {
  520. container.forNonNull((index, item) -> player.getZulrahLostItems().add(item));
  521. }
  522. } else if (token.equals("vorkath-lost-items")) {
  523. ItemContainer container = new ItemContainerFromStringDecoder().decode(token2);
  524.  
  525. if (container != null) {
  526. container.forNonNull((index, item) -> player.getVorkathLostItems().add(item));
  527. }
  528. } else if (token.equals("pvpTask")) {
  529. for (int j = 0; j < token3.length; j++) {
  530. player.pvpTask[j] = Integer.parseInt(token3[j]);
  531. }
  532. } else if (token.equals("pouchesPure")) {
  533. for (int j = 0; j < token3.length; j++) {
  534. player.pouchesPure[j] = Integer.parseInt(token3[j]);
  535. }
  536. } else if (token.equals("pouchesRune")) {
  537. for (int j = 0; j < token3.length; j++) {
  538. player.pouchesRune[j] = Integer.parseInt(token3[j]);
  539. }
  540. } else if (token.equals("boostedTime")) {
  541. for (int j = 0; j < token3.length; j++) {
  542. player.boostedTime[j] = Long.parseLong(token3[j]);
  543. }
  544. } else if (token.equals("timeSpent")) {
  545. for (int j = 0; j < token3.length; j++) {
  546. player.timeSpent[j] = Integer.parseInt(token3[j]);
  547. }
  548. } else if (token.equals("maximumSpecialAttack")) {
  549. for (int j = 0; j < token3.length; j++) {
  550. player.maximumSpecialAttack[j] = Integer.parseInt(token3[j]);
  551. }
  552. } else if (token.equals("maximumSpecialAttackNpc")) {
  553. for (int j = 0; j < token3.length; j++) {
  554. player.maximumSpecialAttackNpc[j] = Integer.parseInt(token3[j]);
  555. }
  556. } else if (token.equals("weaponAmountUsed")) {
  557. for (int j = 0; j < token3.length; j++) {
  558. player.weaponAmountUsed[j] = Integer.parseInt(token3[j]);
  559. }
  560. } else if (token.equals("weaponAmountUsedNpc")) {
  561. for (int j = 0; j < token3.length; j++) {
  562. player.weaponAmountUsedNpc[j] = Integer.parseInt(token3[j]);
  563. }
  564. } else if (token.equals("runePouchItemId")) {
  565. for (int j = 0; j < token3.length; j++) {
  566. player.runePouchItemId[j] = Integer.parseInt(token3[j]);
  567. }
  568. } else if (token.equals("runePouchItemAmount")) {
  569. for (int j = 0; j < token3.length; j++) {
  570. player.runePouchItemAmount[j] = Integer.parseInt(token3[j]);
  571. }
  572. } else if (token.equals("totalDamage")) {
  573. for (int j = 0; j < token3.length; j++) {
  574. player.totalDamage[j] = Integer.parseInt(token3[j]);
  575. }
  576. } else if (token.equals("QuickPrayers")) {
  577. for (int j = 0; j < token3.length; j++) {
  578. player.quickPrayers[j] = Boolean.parseBoolean(token3[j]);
  579. }
  580. } else if (token.equals("deathTypes")) {
  581. for (int j = 0; j < token3.length; j++) {
  582. player.deathTypes[j] = Integer.parseInt(token3[j]);
  583. }
  584. } else if (token.equals("skillingStatistics")) {
  585. for (int j = 0; j < token3.length; j++) {
  586. player.skillingStatistics[j] = Integer.parseInt(token3[j]);
  587. }
  588. } else if (token.equals("skillMilestone100mAnnounced")) {
  589. for (int j = 0; j < token3.length; j++) {
  590. player.skillMilestone100mAnnounced[j] = Boolean.parseBoolean(token3[j]);
  591. }
  592. } else if (token.equals("skillMilestone200mAnnounced")) {
  593. for (int j = 0; j < token3.length; j++) {
  594. player.skillMilestone200mAnnounced[j] = Boolean.parseBoolean(token3[j]);
  595. }
  596. } else if (token.equals("barrowsBrothersKilled")) {
  597. for (int j = 0; j < token3.length; j++) {
  598. player.barrowsBrothersKilled[j] = Boolean.parseBoolean(token3[j]);
  599. }
  600. } else if (token.equals("achievementDifficultyCompleted")) {
  601. for (int j = 0; j < token3.length; j++) {
  602. player.achievementDifficultyCompleted[j] = Boolean.parseBoolean(token3[j]);
  603. }
  604. } else if (token.equals("lootingBagStorageItemId")) {
  605. for (int j = 0; j < token3.length; j++) {
  606. player.lootingBagStorageItemId[j] = Integer.parseInt(token3[j]);
  607. }
  608. } else if (token.equals("achievementTotal")) {
  609. for (int j = 0; j < token3.length; j++) {
  610. player.achievementTotal[j] = Integer.parseInt(token3[j]);
  611. }
  612. } else if (token.equals("titleTotal")) {
  613. for (int j = 0; j < token3.length; j++) {
  614. player.titleTotal[j] = Integer.parseInt(token3[j]);
  615. }
  616. } else if (token.equals("questStages")) {
  617. for (int j = 0; j < token3.length; j++) {
  618. player.questStages[j] = Integer.parseInt(token3[j]);
  619. }
  620. } else if (token.equals("lootingBagStorageItemAmount")) {
  621. for (int j = 0; j < token3.length; j++) {
  622. player.lootingBagStorageItemAmount[j] = Integer.parseInt(token3[j]);
  623. }
  624. } else if (token.equals("combatExperienceGainedAfterMaxed")) {
  625. for (int j = 0; j < token3.length; j++) {
  626. player.combatExperienceGainedAfterMaxed[j] = Integer.parseInt(token3[j]);
  627. }
  628. } else if (token.equals("currentCombatSkillLevel")) {
  629. for (int j = 0; j < token3.length; j++) {
  630. player.currentCombatSkillLevel[j] = Integer.parseInt(token3[j]);
  631. }
  632. } else if (token.equals("pvpBlacklist")) {
  633. for (int j = 0; j < token3.length; j++) {
  634. if (!token3[j].isEmpty()) {
  635. player.pvpBlacklist.add(token3[j]);
  636. }
  637. }
  638. } else if (token.equals("achievementProgress")) {
  639. for (int j = 0; j < token3.length; j++) {
  640. if (!token3[j].isEmpty()) {
  641. player.achievementProgress.add(token3[j]);
  642. }
  643. }
  644. } else if (token.equals("killTimes")) {
  645. for (int j = 0; j < token3.length; j++) {
  646. if (!token3[j].isEmpty()) {
  647. player.killTimes.add(token3[j]);
  648. }
  649. }
  650. } else if (token.equals("voteTimes")) {
  651. for (int j = 0; j < token3.length; j++) {
  652. if (!token3[j].isEmpty()) {
  653. player.voteTimes.add(token3[j]);
  654. }
  655. }
  656. } else if (token.equals("gameTimeHistory")) {
  657. for (int j = 0; j < token3.length; j++) {
  658. string = token3[j];
  659. if (!string.isEmpty()) {
  660. parse = string.split("#");
  661. player.activePlayedTimeDates
  662. .add(new GameTimeSpent(Integer.parseInt(parse[0]), parse[1]));
  663. }
  664. }
  665. } else if (token.equals("itemsToShop")) {
  666. for (int j = 0; j < token3.length; j++) {
  667. if (!token3[j].isEmpty()) {
  668. player.itemsToShop.add(token3[j]);
  669. }
  670. }
  671. } else if (token.equals("resourcesHarvested")) {
  672. for (int j = 0; j < token3.length; j++) {
  673. if (!token3[j].isEmpty()) {
  674. player.resourcesHarvested.add(token3[j]);
  675. }
  676. }
  677. } else if (token.equals("preset1")) {
  678. for (int j = 0; j < token3.length; j++) {
  679. if (!token3[j].isEmpty()) {
  680. player.preset1.add(token3[j]);
  681. }
  682. }
  683. } else if (token.equals("preset2")) {
  684. for (int j = 0; j < token3.length; j++) {
  685. if (!token3[j].isEmpty()) {
  686. player.preset2.add(token3[j]);
  687. }
  688. }
  689. } else if (token.equals("preset3")) {
  690. for (int j = 0; j < token3.length; j++) {
  691. if (!token3[j].isEmpty()) {
  692. player.preset3.add(token3[j]);
  693. }
  694. }
  695. } else if (token.equals("preset4")) {
  696. for (int j = 0; j < token3.length; j++) {
  697. if (!token3[j].isEmpty()) {
  698. player.preset4.add(token3[j]);
  699. }
  700. }
  701. } else if (token.equals("preset5")) {
  702. for (int j = 0; j < token3.length; j++) {
  703. if (!token3[j].isEmpty()) {
  704. player.preset5.add(token3[j]);
  705. }
  706. }
  707. } else if (token.equals("preset6")) {
  708. for (int j = 0; j < token3.length; j++) {
  709. if (!token3[j].isEmpty()) {
  710. player.preset6.add(token3[j]);
  711. }
  712. }
  713. } else if (token.equals("preset7")) {
  714. for (int j = 0; j < token3.length; j++) {
  715. if (!token3[j].isEmpty()) {
  716. player.preset7.add(token3[j]);
  717. }
  718. }
  719. } else if (token.equals("preset8")) {
  720. for (int j = 0; j < token3.length; j++) {
  721. if (!token3[j].isEmpty()) {
  722. player.preset8.add(token3[j]);
  723. }
  724. }
  725. } else if (token.equals("preset9")) {
  726. for (int j = 0; j < token3.length; j++) {
  727. if (!token3[j].isEmpty()) {
  728. player.preset9.add(token3[j]);
  729. }
  730. }
  731. } else if (token.equals("itemsCollected")) {
  732. for (int j = 0; j < token3.length; j++) {
  733. if (!token3[j].isEmpty()) {
  734. player.itemsCollected.add(Integer.parseInt(token3[j]));
  735. }
  736. }
  737. } else if (token.equals("achievementsCompleted")) {
  738. for (int j = 0; j < token3.length; j++) {
  739. if (!token3[j].isEmpty()) {
  740. player.achievementsCompleted.add(token3[j]);
  741. }
  742. }
  743. } else if (token.equals("titlesUnlocked")) {
  744. for (int j = 0; j < token3.length; j++) {
  745. if (!token3[j].isEmpty()) {
  746. player.titlesUnlocked.add(token3[j]);
  747. }
  748. }
  749. } else if (token.equals("npcKills")) {
  750. for (int j = 0; j < token3.length; j++) {
  751. if (!token3[j].isEmpty()) {
  752. player.npcKills.add(token3[j]);
  753. }
  754. }
  755. } else if (token.equals("singularUntradeableItemsOwned")) {
  756. for (int j = 0; j < token3.length; j++) {
  757. if (!token3[j].isEmpty()) {
  758. player.singularUntradeableItemsOwned.add(token3[j]);
  759. }
  760. }
  761. } else if (token.equals("tradingPostHistory")) {
  762. for (int j = 0; j < token3.length; j++) {
  763. if (!token3[j].isEmpty()) {
  764. player.tradingPostHistory.add(token3[j]);
  765. }
  766. }
  767. } else if (token.equals("donationPriceClaimedHistory")) {
  768. for (int j = 0; j < token3.length; j++) {
  769. if (!token3[j].isEmpty()) {
  770. player.donationPriceClaimedHistory.add(token3[j]);
  771. }
  772. }
  773. } else if (token.equals("player-pet-state1")) {
  774. try {
  775. player.setPlayerPetState(new PlayerPetState(token2));
  776. } catch (Exception e) {
  777.  
  778. }
  779. }
  780. break;
  781.  
  782. case 3:
  783. if (token.equals("character-skill")) {
  784. player.baseSkillLevel[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  785. player.skillExperience[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
  786. }
  787. break;
  788.  
  789. case 4:
  790. if (token.equals("inventory-slot")) {
  791. player.playerItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  792. player.playerItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
  793. }
  794. break;
  795. case 5:
  796. if (token.equals("character-equip")) {
  797. player.playerEquipment[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  798. player.playerEquipmentN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
  799. }
  800. break;
  801. case 6:
  802. if (token.equals("character-look")) {
  803. player.playerAppearance[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
  804. }
  805. break;
  806.  
  807. case 7:
  808. int index = Integer.parseInt(token3[0]);
  809.  
  810. int itemId = Integer.parseInt(token3[1]);
  811.  
  812. int itemAmount = Integer.parseInt(token3[2]);
  813.  
  814. if (itemId < 0 || itemId >= ServerConstants.MAX_ITEM_ID) {
  815. itemId = 0;
  816. itemAmount = 0;
  817. }
  818.  
  819. if (token.equals("character-bank")) {
  820. player.bankItems[index] = itemId;
  821. player.bankItemsN[index] = itemAmount;
  822. } else if (token.equals("character-bank1")) {
  823. player.bankItems1[index] = itemId;
  824. player.bankItems1N[index] = itemAmount;
  825. } else if (token.equals("character-bank2")) {
  826. player.bankItems2[index] = itemId;
  827. player.bankItems2N[index] = itemAmount;
  828. } else if (token.equals("character-bank3")) {
  829. player.bankItems3[index] = itemId;
  830. player.bankItems3N[index] = itemAmount;
  831. } else if (token.equals("character-bank4")) {
  832. player.bankItems4[index] = itemId;
  833. player.bankItems4N[index] = itemAmount;
  834. } else if (token.equals("character-bank5")) {
  835. player.bankItems5[index] = itemId;
  836. player.bankItems5N[index] = itemAmount;
  837. } else if (token.equals("character-bank6")) {
  838. player.bankItems6[index] = itemId;
  839. player.bankItems6N[index] = itemAmount;
  840. } else if (token.equals("character-bank7")) {
  841. player.bankItems7[index] = itemId;
  842. player.bankItems7N[index] = itemAmount;
  843. } else if (token.equals("character-bank8")) {
  844. player.bankItems8[index] = itemId;
  845. player.bankItems8N[index] = itemAmount;
  846. }
  847.  
  848. break;
  849. case 8:
  850. if (token.equals("character-friend")) {
  851. player.friends[Integer.parseInt(token3[0])][0] = Long.parseLong(token3[1]);
  852. if (token3.length >= 3) {
  853. player.friends[Integer.parseInt(token3[0])][1] = Long.parseLong(token3[2]);
  854. } else {
  855. player.friends[Integer.parseInt(token3[0])][1] = System.currentTimeMillis()
  856. - Misc.getHoursToMilliseconds(24);
  857. }
  858. }
  859. break;
  860. case 9:
  861. if (token.equals("character-ignore")) {
  862. player.ignores[Integer.parseInt(token3[0])] = Long.parseLong(token3[1]);
  863. }
  864. break;
  865.  
  866. case 10:
  867. if (token.equals("character-temp-tournament-skill")) {
  868. player.baseSkillLevelStoredBeforeTournament[Integer.parseInt(token3[0])] = Integer
  869. .parseInt(token3[1]);
  870. player.skillExperienceStoredBeforeTournament[Integer.parseInt(token3[0])] = Integer
  871. .parseInt(token3[2]);
  872. }
  873. break;
  874. }
  875. } else {
  876. if (line.equals("[CREDENTIALS]")) {
  877. ReadMode = 1;
  878. } else if (line.equals("[MAIN]")) {
  879. ReadMode = 2;
  880. }
  881. // Do not change order of [skills] because Profile search will use less
  882. // resources
  883. // if [skills] is closer to the top of the character file.
  884. else if (line.equals("[SKILLS]")) {
  885. ReadMode = 3;
  886. } else if (line.equals("[INVENTORY]")) {
  887. ReadMode = 4;
  888. } else if (line.equals("[EQUIPMENT]")) {
  889. ReadMode = 5;
  890. } else if (line.equals("[APPEARANCE]")) {
  891. ReadMode = 6;
  892. } else if (line.equals("[BANK]")) {
  893. ReadMode = 7;
  894. } else if (line.equals("[FRIENDS]")) {
  895. ReadMode = 8;
  896. } else if (line.equals("[IGNORES]")) {
  897. ReadMode = 9;
  898. } else if (line.equals("[TEMP TOURNAMENT SKILL]")) {
  899. ReadMode = 10;
  900. } else if (line.equals("[EOF]")) {
  901. try {
  902. characterfile.close();
  903. } catch (IOException e) {
  904. e.printStackTrace();
  905. }
  906. return 1;
  907. }
  908. }
  909. try {
  910. line = characterfile.readLine();
  911. } catch (IOException e) {
  912. e.printStackTrace();
  913. EndOfFile = true;
  914. }
  915. }
  916. try {
  917. characterfile.close();
  918. } catch (IOException e) {
  919. e.printStackTrace();
  920. }
  921.  
  922. getResult(player);
  923. return 13;
  924. }
  925.  
  926. public static void saveGame(Player player) {
  927. if (player.getPlayerName() == null) {
  928. return;
  929. }
  930. if (player.doNotSaveCharacterFile) {
  931. return;
  932. }
  933. if (player.bot) {
  934. return;
  935. }
  936. if (!player.saveFile || !player.saveCharacter) {
  937. return;
  938. }
  939.  
  940. BufferedWriter characterfile = null;
  941. try {
  942.  
  943. String string = "";
  944. String string1 = "";
  945. int integer = 0;
  946. Double doubleNumber = 0.0;
  947. boolean boolean1;
  948. long long1;
  949.  
  950. FileWriter writer = new FileWriter(
  951. ServerConstants.getCharacterLocation() + player.getPlayerName().toLowerCase() + ".txt");
  952. characterfile = new BufferedWriter(writer);
  953. characterfile.write("[CREDENTIALS]", 0, 13);
  954. characterfile.newLine();
  955. characterfile.write("Username = ", 0, 11);
  956. characterfile.write(player.getPlayerName(), 0, player.getPlayerName().length());
  957. characterfile.newLine();
  958. characterfile.write("Password = ", 0, 11);
  959. try {
  960. characterfile.write(AESencrp.encrypt(player.playerPass), 0,
  961. AESencrp.encrypt(player.playerPass).length());
  962. } catch (Exception e) {
  963. e.printStackTrace();
  964. }
  965. characterfile.newLine();
  966. characterfile.newLine();
  967. characterfile.write("[MAIN]", 0, 6);
  968. characterfile.newLine();
  969.  
  970. string = "lastSavedIpAddress = ";
  971. string1 = player.lastSavedIpAddress;
  972. characterfile.write(string, 0, string.length());
  973. characterfile.write(string1, 0, string1.length());
  974. characterfile.newLine();
  975.  
  976. string = "addressMac = ";
  977. string1 = player.addressMac;
  978. characterfile.write(string, 0, string.length());
  979. characterfile.write(string1, 0, string1.length());
  980. characterfile.newLine();
  981.  
  982. string = "addressUid = ";
  983. string1 = player.addressUid;
  984. characterfile.write(string, 0, string.length());
  985. characterfile.write(string1, 0, string1.length());
  986. characterfile.newLine();
  987.  
  988. string = "originalIp = ";
  989. string1 = player.originalIp;
  990. characterfile.write(string, 0, string.length());
  991. characterfile.write(string1, 0, string1.length());
  992. characterfile.newLine();
  993.  
  994. string = "originalUid = ";
  995. string1 = player.originalUid;
  996. characterfile.write(string, 0, string.length());
  997. characterfile.write(string1, 0, string1.length());
  998. characterfile.newLine();
  999.  
  1000. string = "originalMac = ";
  1001. string1 = player.originalMac;
  1002. characterfile.write(string, 0, string.length());
  1003. characterfile.write(string1, 0, string1.length());
  1004. characterfile.newLine();
  1005.  
  1006. characterfile.write("accountDateCreated = ", 0, 21);
  1007. characterfile.write(player.accountDateCreated, 0, player.accountDateCreated.length());
  1008. characterfile.newLine();
  1009.  
  1010. characterfile.write("secondsBeenOnline = ", 0, 20);
  1011. characterfile.write(Integer.toString(player.secondsBeenOnline), 0,
  1012. Integer.toString(player.secondsBeenOnline).length());
  1013. characterfile.newLine();
  1014.  
  1015. characterfile.write("authority = ", 0, 12);
  1016. characterfile.write(Integer.toString(player.playerRights), 0,
  1017. Integer.toString(player.playerRights).length());
  1018. characterfile.newLine();
  1019.  
  1020. string = "donatorTokensRankUsed = ";
  1021. integer = player.donatorTokensRankUsed;
  1022. characterfile.write(string, 0, string.length());
  1023. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1024. characterfile.newLine();
  1025.  
  1026. characterfile.newLine();
  1027. characterfile.write("[OTHER]", 0, 7);
  1028. characterfile.newLine();
  1029. string = "totalPaymentAmount = ";
  1030. doubleNumber = player.totalPaymentAmount;
  1031. characterfile.write(string, 0, string.length());
  1032. characterfile.write(Double.toString(doubleNumber), 0, Double.toString(doubleNumber).length());
  1033. characterfile.newLine();
  1034. string = "donatorTokensReceived = ";
  1035. integer = player.donatorTokensReceived;
  1036. characterfile.write(string, 0, string.length());
  1037. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1038. characterfile.newLine();
  1039. characterfile.write("height = ", 0, 9);
  1040. characterfile.write(Integer.toString(player.getHeight()), 0, Integer.toString(player.getHeight()).length());
  1041. characterfile.newLine();
  1042. characterfile.write("x = ", 0, 4);
  1043. characterfile.write(Integer.toString(player.getX()), 0, Integer.toString(player.getX()).length());
  1044. characterfile.newLine();
  1045. characterfile.write("y = ", 0, 4);
  1046. characterfile.write(Integer.toString(player.getY()), 0, Integer.toString(player.getY()).length());
  1047. characterfile.newLine();
  1048. characterfile.write("playerTitle = ", 0, 14);
  1049. characterfile.write(player.playerTitle, 0, player.playerTitle.length());
  1050. characterfile.newLine();
  1051. characterfile.write("titleSwap = ", 0, 12);
  1052. characterfile.write(Integer.toString(player.titleSwap), 0, Integer.toString(player.titleSwap).length());
  1053. characterfile.newLine();
  1054. characterfile.write("tank = ", 0, 7);
  1055. characterfile.write(Boolean.toString(player.getTank()), 0, Boolean.toString(player.getTank()).length());
  1056. characterfile.newLine();
  1057. characterfile.write("meleeMainKills = ", 0, 17);
  1058. characterfile.write(Integer.toString(player.getMeleeMainKills()), 0,
  1059. Integer.toString(player.getMeleeMainKills()).length());
  1060. characterfile.newLine();
  1061. characterfile.write("hybridKills = ", 0, 14);
  1062. characterfile.write(Integer.toString(player.getHybridKills()), 0,
  1063. Integer.toString(player.getHybridKills()).length());
  1064. characterfile.newLine();
  1065. characterfile.write("berserkerPureKills = ", 0, 21);
  1066. characterfile.write(Integer.toString(player.getBerserkerPureKills()), 0,
  1067. Integer.toString(player.getBerserkerPureKills()).length());
  1068. characterfile.newLine();
  1069. characterfile.write("pureKills = ", 0, 12);
  1070. characterfile.write(Integer.toString(player.getPureKills()), 0,
  1071. Integer.toString(player.getPureKills()).length());
  1072. characterfile.newLine();
  1073. characterfile.write("rangedTankKills = ", 0, 18);
  1074. characterfile.write(Integer.toString(player.getRangedTankKills()), 0,
  1075. Integer.toString(player.getRangedTankKills()).length());
  1076. characterfile.newLine();
  1077. characterfile.write("f2pKills = ", 0, 11);
  1078. characterfile.write(Integer.toString(player.getF2pKills()), 0,
  1079. Integer.toString(player.getF2pKills()).length());
  1080. characterfile.newLine();
  1081. characterfile.write("tutorialComplete = ", 0, 19);
  1082. characterfile.write(Boolean.toString(player.isTutorialComplete()), 0,
  1083. Boolean.toString(player.isTutorialComplete()).length());
  1084. characterfile.newLine();
  1085. characterfile.write("runModeOn = ", 0, 12);
  1086. characterfile.write(Boolean.toString(player.runModeOn), 0, Boolean.toString(player.runModeOn).length());
  1087. characterfile.newLine();
  1088. characterfile.write("skullTimer = ", 0, 13);
  1089. characterfile.write(Integer.toString(player.skullTimer), 0, Integer.toString(player.skullTimer).length());
  1090. characterfile.newLine();
  1091.  
  1092. string = "spellBook = ";
  1093. string1 = player.spellBook;
  1094. characterfile.write(string, 0, string.length());
  1095. characterfile.write(string1, 0, string1.length());
  1096. characterfile.newLine();
  1097.  
  1098. characterfile.write("wildernessKills = ", 0, 18);
  1099. characterfile.write(Integer.toString(player.getWildernessKills(false)), 0,
  1100. Integer.toString(player.getWildernessKills(false)).length());
  1101. characterfile.newLine();
  1102. characterfile.write("wildernessDeaths = ", 0, 19);
  1103. characterfile.write(Integer.toString(player.getWildernessDeaths(false)), 0,
  1104. Integer.toString(player.getWildernessDeaths(false)).length());
  1105. characterfile.newLine();
  1106. characterfile.write("safeKills = ", 0, 12);
  1107. characterfile.write(Integer.toString(player.safeKills), 0, Integer.toString(player.safeKills).length());
  1108. characterfile.newLine();
  1109. characterfile.write("safeDeaths = ", 0, 13);
  1110. characterfile.write(Integer.toString(player.safeDeaths), 0, Integer.toString(player.safeDeaths).length());
  1111. characterfile.newLine();
  1112. characterfile.write("currentKillStreak = ", 0, 20);
  1113. characterfile.write(Integer.toString(player.currentKillStreak), 0,
  1114. Integer.toString(player.currentKillStreak).length());
  1115. characterfile.newLine();
  1116. characterfile.write("specialAttackAmount = ", 0, 22);
  1117. characterfile.write(Double.toString(player.getSpecialAttackAmount()), 0,
  1118. Double.toString(player.getSpecialAttackAmount()).length());
  1119. characterfile.newLine();
  1120. characterfile.write("splitChat = ", 0, 12);
  1121. characterfile.write(Boolean.toString(player.splitChat), 0, Boolean.toString(player.splitChat).length());
  1122. characterfile.newLine();
  1123. characterfile.write("autoRetaliate = ", 0, 16);
  1124. characterfile.write(Integer.toString(player.getAutoRetaliate()), 0,
  1125. Integer.toString(player.getAutoRetaliate()).length());
  1126. characterfile.newLine();
  1127. characterfile.write("jailed = ", 0, 9);
  1128. characterfile.write(Boolean.toString(player.isJailed()), 0, Boolean.toString(player.isJailed()).length());
  1129. characterfile.newLine();
  1130. characterfile.write("combatStyle = ", 0, 14);
  1131. characterfile.write(Integer.toString(player.getCombatStyle()), 0,
  1132. Integer.toString(player.getCombatStyle()).length());
  1133. characterfile.newLine();
  1134. characterfile.write("tilesWalked = ", 0, 14);
  1135. characterfile.write(Integer.toString(player.tilesWalked), 0, Integer.toString(player.tilesWalked).length());
  1136. characterfile.newLine();
  1137. characterfile.write("switches = ", 0, 11);
  1138. characterfile.write(Integer.toString(player.switches), 0, Integer.toString(player.switches).length());
  1139. characterfile.newLine();
  1140. characterfile.write("bankPin = ", 0, 10);
  1141. characterfile.write(player.bankPin, 0, player.bankPin.length());
  1142. characterfile.newLine();
  1143. characterfile.write("setPin = ", 0, 9);
  1144. characterfile.write(Boolean.toString(player.setPin), 0, Boolean.toString(player.setPin).length());
  1145. characterfile.newLine();
  1146. characterfile.write("voteTotalPoints = ", 0, 18);
  1147. characterfile.write(Integer.toString(player.voteTotalPoints), 0,
  1148. Integer.toString(player.voteTotalPoints).length());
  1149. characterfile.newLine();
  1150. characterfile.write("toolUses = ", 0, 11);
  1151. characterfile.write(Integer.toString(player.getToolUses()), 0,
  1152. Integer.toString(player.getToolUses()).length());
  1153. characterfile.newLine();
  1154. characterfile.write("qp = ", 0, 5);
  1155. characterfile.write(Integer.toString(player.getQuestPoints()), 0,
  1156. Integer.toString(player.getQuestPoints()).length());
  1157. characterfile.newLine();
  1158. characterfile.write("foodAte = ", 0, 10);
  1159. characterfile.write(Integer.toString(player.foodAte), 0, Integer.toString(player.foodAte).length());
  1160. characterfile.newLine();
  1161. characterfile.write("potionDrank = ", 0, 14);
  1162. characterfile.write(Integer.toString(player.potionDrank), 0, Integer.toString(player.potionDrank).length());
  1163. characterfile.newLine();
  1164. characterfile.write("killStreaksRecord = ", 0, 20);
  1165. characterfile.write(Integer.toString(player.killStreaksRecord), 0,
  1166. Integer.toString(player.killStreaksRecord).length());
  1167. characterfile.newLine();
  1168. characterfile.write("petSummoned = ", 0, 14);
  1169. characterfile.write(Boolean.toString(player.getPetSummoned()), 0,
  1170. Boolean.toString(player.getPetSummoned()).length());
  1171. characterfile.newLine();
  1172. characterfile.write("petID = ", 0, 8);
  1173. characterfile.write(Integer.toString(player.getPetId()), 0, Integer.toString(player.getPetId()).length());
  1174. characterfile.newLine();
  1175. string = "secondPetSummoned = ";
  1176. boolean1 = player.getSecondPetSummoned();
  1177. characterfile.write(string, 0, string.length());
  1178. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1179. characterfile.newLine();
  1180. string = "secondPetId = ";
  1181. integer = player.getSecondPetId();
  1182. characterfile.write(string, 0, string.length());
  1183. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1184. characterfile.newLine();
  1185. string = "summon-duration = ";
  1186. integer = player.getSummoning().getDuration();
  1187. characterfile.write(string, 0, string.length());
  1188. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1189. characterfile.newLine();
  1190. characterfile.write("runEnergy = ", 0, 12);
  1191. characterfile.write(Double.toString(player.runEnergy), 0, Double.toString(player.runEnergy).length());
  1192. characterfile.newLine();
  1193. characterfile.write("whiteSkull = ", 0, 13);
  1194. characterfile.write(Boolean.toString(player.getWhiteSkull()), 0,
  1195. Boolean.toString(player.getWhiteSkull()).length());
  1196. characterfile.newLine();
  1197. characterfile.write("redSkull = ", 0, 11);
  1198. characterfile.write(Boolean.toString(player.getRedSkull()), 0,
  1199. Boolean.toString(player.getRedSkull()).length());
  1200. characterfile.newLine();
  1201. characterfile.write("logOutTime = ", 0, 13);
  1202. characterfile.write(Long.toString(player.logOutTime), 0, Long.toString(player.logOutTime).length());
  1203. characterfile.newLine();
  1204. characterfile.write("targetsKilled = ", 0, 16);
  1205. characterfile.write(Integer.toString(player.targetsKilled), 0,
  1206. Integer.toString(player.targetsKilled).length());
  1207. characterfile.newLine();
  1208. characterfile.write("lastClanChatJoined = ", 0, 21);
  1209. characterfile.write(player.lastClanChatJoined, 0, player.lastClanChatJoined.length());
  1210. characterfile.newLine();
  1211. characterfile.write("ableToEditCombat = ", 0, 19);
  1212. characterfile.write(Boolean.toString(player.getAbleToEditCombat()), 0,
  1213. Boolean.toString(player.getAbleToEditCombat()).length());
  1214. characterfile.newLine();
  1215. characterfile.write("timeOfAccountCreation = ", 0, 24);
  1216. characterfile.write(Long.toString(player.timeOfAccountCreation), 0,
  1217. Long.toString(player.timeOfAccountCreation).length());
  1218. characterfile.newLine();
  1219. characterfile.write("meritPoints = ", 0, 14);
  1220. characterfile.write(Integer.toString(player.getMeritPoints()), 0,
  1221. Integer.toString(player.getMeritPoints()).length());
  1222. characterfile.newLine();
  1223. characterfile.write("recoilCharges = ", 0, 16);
  1224. characterfile.write(Integer.toString(player.getRecoilCharges()), 0,
  1225. Integer.toString(player.getRecoilCharges()).length());
  1226. characterfile.newLine();
  1227. characterfile.write("ancientsInterfaceType = ", 0, 24);
  1228. characterfile.write(Integer.toString(player.ancientsInterfaceType), 0,
  1229. Integer.toString(player.ancientsInterfaceType).length());
  1230. characterfile.newLine();
  1231. characterfile.write("agilityPoints = ", 0, 16);
  1232. characterfile.write(Integer.toString(player.getAgilityPoints()), 0,
  1233. Integer.toString(player.getAgilityPoints()).length());
  1234. characterfile.newLine();
  1235. characterfile.write("antiFirePotionTimer = ", 0, 22);
  1236. characterfile.write(Integer.toString(player.getAntiFirePotionTimer()), 0,
  1237. Integer.toString(player.getAntiFirePotionTimer()).length());
  1238. characterfile.newLine();
  1239. characterfile.write("staminaPotionTimer = ", 0, 21);
  1240. characterfile.write(Integer.toString(player.getStaminaPotionTimer()), 0,
  1241. Integer.toString(player.getStaminaPotionTimer()).length());
  1242. characterfile.newLine();
  1243. characterfile.write("slayerTaskNpcType = ", 0, 20);
  1244. characterfile.write(Integer.toString(player.slayerTaskNpcType), 0,
  1245. Integer.toString(player.slayerTaskNpcType).length());
  1246. characterfile.newLine();
  1247. characterfile.write("slayerTaskNpcAmount = ", 0, 22);
  1248. characterfile.write(Integer.toString(player.slayerTaskNpcAmount), 0,
  1249. Integer.toString(player.slayerTaskNpcAmount).length());
  1250. characterfile.newLine();
  1251. characterfile.write("braceletCharges = ", 0, 18);
  1252. characterfile.write(Integer.toString(player.getBraceletCharges()), 0,
  1253. Integer.toString(player.getBraceletCharges()).length());
  1254. characterfile.newLine();
  1255. characterfile.write("blowpipeCharges = ", 0, 18);
  1256. characterfile.write(Integer.toString(player.getBlowpipeCharges()), 0,
  1257. Integer.toString(player.getBlowpipeCharges()).length());
  1258. characterfile.newLine();
  1259.  
  1260. string = "barragesCasted = ";
  1261. integer = player.barragesCasted;
  1262. characterfile.write(string, 0, string.length());
  1263. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1264. characterfile.newLine();
  1265.  
  1266. string = "randomEventIncorrectTries = ";
  1267. integer = player.randomEventIncorrectTries;
  1268. characterfile.write(string, 0, string.length());
  1269. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1270. characterfile.newLine();
  1271.  
  1272. string = "randomCoffin = ";
  1273. integer = player.randomCoffin;
  1274. characterfile.write(string, 0, string.length());
  1275. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1276. characterfile.newLine();
  1277.  
  1278. string = "targetActivityPoints = ";
  1279. integer = player.targetActivityPoints;
  1280. characterfile.write(string, 0, string.length());
  1281. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1282. characterfile.newLine();
  1283.  
  1284. string = "overloadReboostTicks = ";
  1285. integer = player.overloadReboostTicks;
  1286. characterfile.write(string, 0, string.length());
  1287. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1288. characterfile.newLine();
  1289.  
  1290. string = "targetDeaths = ";
  1291. integer = player.targetDeaths;
  1292. characterfile.write(string, 0, string.length());
  1293. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1294. characterfile.newLine();
  1295.  
  1296. string = "teleportsUsed = ";
  1297. integer = player.teleportsUsed;
  1298. characterfile.write(string, 0, string.length());
  1299. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1300. characterfile.newLine();
  1301.  
  1302. if (player.getSqlIndex() >= 0) {
  1303. string = "sqlIndex = ";
  1304. integer = player.getSqlIndex();
  1305. characterfile.write(string, 0, string.length());
  1306. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1307. characterfile.newLine();
  1308. }
  1309.  
  1310. string = "barrowsPersonalRecord = ";
  1311. integer = player.barrowsPersonalRecord;
  1312. characterfile.write(string, 0, string.length());
  1313. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1314. characterfile.newLine();
  1315.  
  1316. string = "barrowsRunCompleted = ";
  1317. integer = player.getBarrowsRunCompleted();
  1318. characterfile.write(string, 0, string.length());
  1319. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1320. characterfile.newLine();
  1321.  
  1322. string = "pvpTasksCompleted = ";
  1323. integer = player.pvpTasksCompleted;
  1324. characterfile.write(string, 0, string.length());
  1325. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1326. characterfile.newLine();
  1327.  
  1328. string = "customPetPoints = ";
  1329. integer = player.getCustomPetPoints();
  1330. characterfile.write(string, 0, string.length());
  1331. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1332. characterfile.newLine();
  1333.  
  1334. string = "pvpTaskSize = ";
  1335. integer = player.pvpTaskSize;
  1336. characterfile.write(string, 0, string.length());
  1337. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1338. characterfile.newLine();
  1339.  
  1340. string = "headIconPk = ";
  1341. integer = player.headIconPk;
  1342. characterfile.write(string, 0, string.length());
  1343. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1344. characterfile.newLine();
  1345.  
  1346. string = "tradesCompleted = ";
  1347. integer = player.tradesCompleted;
  1348. characterfile.write(string, 0, string.length());
  1349. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1350. characterfile.newLine();
  1351.  
  1352. string = "meleeTournamentsWon1 = ";
  1353. integer = player.meleeTournamentsWon1;
  1354. characterfile.write(string, 0, string.length());
  1355. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1356. characterfile.newLine();
  1357.  
  1358. string = "hybridTournamentsWon1 = ";
  1359. integer = player.hybridTournamentsWon1;
  1360. characterfile.write(string, 0, string.length());
  1361. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1362. characterfile.newLine();
  1363.  
  1364. string = "tribridTournamentsWon1 = ";
  1365. integer = player.tribridTournamentsWon1;
  1366. characterfile.write(string, 0, string.length());
  1367. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1368. characterfile.newLine();
  1369.  
  1370. string = "duelArenaStakes = ";
  1371. integer = player.duelArenaStakes;
  1372. characterfile.write(string, 0, string.length());
  1373. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1374. characterfile.newLine();
  1375.  
  1376. string = "wildernessKillsReset = ";
  1377. integer = player.wildernessKillsReset;
  1378. characterfile.write(string, 0, string.length());
  1379. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1380. characterfile.newLine();
  1381.  
  1382. string = "wildernessDeathsReset = ";
  1383. integer = player.wildernessDeathsReset;
  1384. characterfile.write(string, 0, string.length());
  1385. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1386. characterfile.newLine();
  1387.  
  1388. string = "poisonDamage = ";
  1389. integer = player.poisonDamage;
  1390. characterfile.write(string, 0, string.length());
  1391. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1392. characterfile.newLine();
  1393.  
  1394. string = "poisonTicksUntillDamage = ";
  1395. integer = player.poisonTicksUntillDamage;
  1396. characterfile.write(string, 0, string.length());
  1397. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1398. characterfile.newLine();
  1399.  
  1400. string = "poisonHitsplatsLeft = ";
  1401. integer = player.poisonHitsplatsLeft;
  1402. characterfile.write(string, 0, string.length());
  1403. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1404. characterfile.newLine();
  1405.  
  1406. string = "lastTeleport = ";
  1407. string1 = player.lastTeleport;
  1408. characterfile.write(string, 0, string.length());
  1409. characterfile.write(string1, 0, string1.length());
  1410. characterfile.newLine();
  1411.  
  1412. string = "deathsToNpc = ";
  1413. integer = player.deathsToNpc;
  1414. characterfile.write(string, 0, string.length());
  1415. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1416. characterfile.newLine();
  1417.  
  1418. string = "privateChat = ";
  1419. integer = player.privateChat;
  1420. characterfile.write(string, 0, string.length());
  1421. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1422. characterfile.newLine();
  1423.  
  1424. string = "publicChatMode = ";
  1425. integer = player.publicChatMode;
  1426. characterfile.write(string, 0, string.length());
  1427. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1428. characterfile.newLine();
  1429.  
  1430. string = "tradeChatMode = ";
  1431. integer = player.tradeChatMode;
  1432. characterfile.write(string, 0, string.length());
  1433. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1434. characterfile.newLine();
  1435.  
  1436. string = "killsInMulti = ";
  1437. integer = player.killsInMulti;
  1438. characterfile.write(string, 0, string.length());
  1439. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1440. characterfile.newLine();
  1441.  
  1442. string = "bloodKeysCollected = ";
  1443. integer = player.bloodKeysCollected;
  1444. characterfile.write(string, 0, string.length());
  1445. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1446. characterfile.newLine();
  1447.  
  1448. string = "snowBallsLandedOnMe = ";
  1449. integer = player.snowBallsLandedOnMe;
  1450. characterfile.write(string, 0, string.length());
  1451. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1452. characterfile.newLine();
  1453.  
  1454. string = "snowBallsThrownAtMe = ";
  1455. integer = player.snowBallsThrownAtMe;
  1456. characterfile.write(string, 0, string.length());
  1457. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1458. characterfile.newLine();
  1459.  
  1460. string = "yellTag = ";
  1461. string1 = player.yellTag;
  1462. characterfile.write(string, 0, string.length());
  1463. characterfile.write(string1, 0, string1.length());
  1464. characterfile.newLine();
  1465.  
  1466. string = "yellMode = ";
  1467. string1 = player.yellMode;
  1468. characterfile.write(string, 0, string.length());
  1469. characterfile.write(string1, 0, string1.length());
  1470. characterfile.newLine();
  1471.  
  1472. string = "gameMode = ";
  1473. string1 = player.getGameMode();
  1474. characterfile.write(string, 0, string.length());
  1475. characterfile.write(string1, 0, string1.length());
  1476. characterfile.newLine();
  1477.  
  1478. string = "difficultyChosen = ";
  1479. string1 = player.getDifficultyChosen();
  1480. characterfile.write(string, 0, string.length());
  1481. characterfile.write(string1, 0, string1.length());
  1482. characterfile.newLine();
  1483.  
  1484. string = "timeAccountSaved = ";
  1485. string1 = Misc.getDateAndTime();
  1486. characterfile.write(string, 0, string.length());
  1487. characterfile.write(string1, 0, string1.length());
  1488. characterfile.newLine();
  1489.  
  1490. string = "biographyLine1 = ";
  1491. string1 = player.biographyLine1;
  1492. characterfile.write(string, 0, string.length());
  1493. characterfile.write(string1, 0, string1.length());
  1494. characterfile.newLine();
  1495.  
  1496. string = "biographyLine2 = ";
  1497. string1 = player.biographyLine2;
  1498. characterfile.write(string, 0, string.length());
  1499. characterfile.write(string1, 0, string1.length());
  1500. characterfile.newLine();
  1501.  
  1502. string = "biographyLine3 = ";
  1503. string1 = player.biographyLine3;
  1504. characterfile.write(string, 0, string.length());
  1505. characterfile.write(string1, 0, string1.length());
  1506. characterfile.newLine();
  1507.  
  1508. string = "biographyLine4 = ";
  1509. string1 = player.biographyLine4;
  1510. characterfile.write(string, 0, string.length());
  1511. characterfile.write(string1, 0, string1.length());
  1512. characterfile.newLine();
  1513.  
  1514. string = "biographyLine5 = ";
  1515. string1 = player.biographyLine5;
  1516. characterfile.write(string, 0, string.length());
  1517. characterfile.write(string1, 0, string1.length());
  1518. characterfile.newLine();
  1519.  
  1520. string = "profilePrivacyOn = ";
  1521. boolean1 = player.profilePrivacyOn;
  1522. characterfile.write(string, 0, string.length());
  1523. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1524. characterfile.newLine();
  1525.  
  1526. string = "passwordChangeAlertedComplete1 = ";
  1527. boolean1 = player.passwordChangeAlertedComplete;
  1528. characterfile.write(string, 0, string.length());
  1529. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1530. characterfile.newLine();
  1531.  
  1532. string = "chatEffects = ";
  1533. boolean1 = player.chatEffects;
  1534. characterfile.write(string, 0, string.length());
  1535. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1536. characterfile.newLine();
  1537.  
  1538. string = "infernalAndMaxCapesUnlockedScrollConsumed = ";
  1539. boolean1 = player.isInfernalAndMaxCapesUnlockedScrollConsumed();
  1540. characterfile.write(string, 0, string.length());
  1541. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1542. characterfile.newLine();
  1543.  
  1544. string = "autoBuyBack = ";
  1545. boolean1 = player.autoBuyBack;
  1546. characterfile.write(string, 0, string.length());
  1547. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1548. characterfile.newLine();
  1549.  
  1550. string = "titleColour = ";
  1551. string1 = player.titleColour;
  1552. characterfile.write(string, 0, string.length());
  1553. characterfile.write(string1, 0, string1.length());
  1554. characterfile.newLine();
  1555.  
  1556. string = "canClaimPvpTaskReward = ";
  1557. boolean1 = player.canClaimPvpTaskReward;
  1558. characterfile.write(string, 0, string.length());
  1559. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1560. characterfile.newLine();
  1561.  
  1562. string = "killScreenshots = ";
  1563. boolean1 = player.killScreenshots;
  1564. characterfile.write(string, 0, string.length());
  1565. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1566. characterfile.newLine();
  1567.  
  1568. string = "announceMaxLevel = ";
  1569. boolean1 = player.announceMaxLevel;
  1570. characterfile.write(string, 0, string.length());
  1571. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1572. characterfile.newLine();
  1573.  
  1574. string = "rigourUnlocked = ";
  1575. boolean1 = player.rigourUnlocked;
  1576. characterfile.write(string, 0, string.length());
  1577. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1578. characterfile.newLine();
  1579.  
  1580. string = "auguryUnlocked = ";
  1581. boolean1 = player.auguryUnlocked;
  1582. characterfile.write(string, 0, string.length());
  1583. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1584. characterfile.newLine();
  1585.  
  1586. string = "teleportWarning = ";
  1587. boolean1 = player.teleportWarning;
  1588. characterfile.write(string, 0, string.length());
  1589. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1590. characterfile.newLine();
  1591.  
  1592. string = "playerIsLeakedSourceClean = ";
  1593. boolean1 = player.playerIsLeakedSourceClean;
  1594. characterfile.write(string, 0, string.length());
  1595. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1596. characterfile.newLine();
  1597.  
  1598. string = "xpLock = ";
  1599. boolean1 = player.xpLock;
  1600. characterfile.write(string, 0, string.length());
  1601. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1602. characterfile.newLine();
  1603.  
  1604. string = "xpBarShowType = ";
  1605. string1 = player.xpBarShowType;
  1606. characterfile.write(string, 0, string.length());
  1607. characterfile.write(string1, 0, string1.length());
  1608. characterfile.newLine();
  1609.  
  1610. string = "bossKillCountMessage = ";
  1611. boolean1 = player.bossKillCountMessage;
  1612. characterfile.write(string, 0, string.length());
  1613. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1614. characterfile.newLine();
  1615.  
  1616. string = "playerBotKills = ";
  1617. integer = player.playerBotKills;
  1618. characterfile.write(string, 0, string.length());
  1619. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1620. characterfile.newLine();
  1621.  
  1622. string = "playerBotDeaths = ";
  1623. integer = player.playerBotDeaths;
  1624. characterfile.write(string, 0, string.length());
  1625. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1626. characterfile.newLine();
  1627.  
  1628. string = "playerBotHighestKillstreak = ";
  1629. integer = player.playerBotHighestKillstreak;
  1630. characterfile.write(string, 0, string.length());
  1631. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1632. characterfile.newLine();
  1633.  
  1634. string = "highestRfdWave = ";
  1635. integer = player.highestRfdWave;
  1636. characterfile.write(string, 0, string.length());
  1637. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1638. characterfile.newLine();
  1639.  
  1640. string = "playerBotCurrentKillstreak = ";
  1641. integer = player.playerBotCurrentKillstreak;
  1642. characterfile.write(string, 0, string.length());
  1643. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1644. characterfile.newLine();
  1645.  
  1646. string = "yellMutes = ";
  1647. integer = player.yellMutes;
  1648. characterfile.write(string, 0, string.length());
  1649. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1650. characterfile.newLine();
  1651.  
  1652. string = "yellMuteExpireTime = ";
  1653. long1 = player.yellMuteExpireTime;
  1654. characterfile.write(string, 0, string.length());
  1655. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1656. characterfile.newLine();
  1657.  
  1658. string = "xpBonusEndTime = ";
  1659. long1 = player.getXpBonusEndTime();
  1660. characterfile.write(string, 0, string.length());
  1661. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1662. characterfile.newLine();
  1663.  
  1664. string = "accountOfferNotificationPopUpTime = ";
  1665. long1 = player.accountOfferNotificationPopUpTime;
  1666. characterfile.write(string, 0, string.length());
  1667. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1668. characterfile.newLine();
  1669.  
  1670. string = "timeAccountOfferShown = ";
  1671. long1 = player.timeAccountOfferShown;
  1672. characterfile.write(string, 0, string.length());
  1673. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1674. characterfile.newLine();
  1675.  
  1676. string = "timeCraftedRunes = ";
  1677. long1 = player.timeCraftedRunes;
  1678. characterfile.write(string, 0, string.length());
  1679. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1680. characterfile.newLine();
  1681.  
  1682. string = "timeLoggedOff = ";
  1683. long1 = player.timeLoggedOff;
  1684. characterfile.write(string, 0, string.length());
  1685. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1686. characterfile.newLine();
  1687.  
  1688. string = "timeUsedPreset = ";
  1689. long1 = player.timeUsedPreset;
  1690. characterfile.write(string, 0, string.length());
  1691. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1692. characterfile.newLine();
  1693.  
  1694. string = "timeEarnedBloodMoneyInResourceWild = ";
  1695. long1 = player.getTimeEarnedBloodMoneyInResourceWild();
  1696. characterfile.write(string, 0, string.length());
  1697. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1698. characterfile.newLine();
  1699.  
  1700. string = "dateUsedSpellbookSwap = ";
  1701. string1 = player.getDateUsedSpellbookSwap();
  1702. characterfile.write(string, 0, string.length());
  1703. characterfile.write(string1, 0, string1.length());
  1704. characterfile.newLine();
  1705.  
  1706. string = "spellbookSwapUsedOnSameDateAmount = ";
  1707. integer = player.getSpellbookSwapUsedOnSameDateAmount();
  1708. characterfile.write(string, 0, string.length());
  1709. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1710. characterfile.newLine();
  1711.  
  1712. string = "compColor1 = ";
  1713. integer = player.compColor1;
  1714. characterfile.write(string, 0, string.length());
  1715. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1716. characterfile.newLine();
  1717.  
  1718. string = "compColor2 = ";
  1719. integer = player.compColor2;
  1720. characterfile.write(string, 0, string.length());
  1721. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1722. characterfile.newLine();
  1723.  
  1724. string = "compColor3 = ";
  1725. integer = player.compColor3;
  1726. characterfile.write(string, 0, string.length());
  1727. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1728. characterfile.newLine();
  1729.  
  1730. string = "compColor4 = ";
  1731. integer = player.compColor4;
  1732. characterfile.write(string, 0, string.length());
  1733. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1734. characterfile.newLine();
  1735.  
  1736. string = "slayerPoints = ";
  1737. integer = player.getSlayerPoints();
  1738. characterfile.write(string, 0, string.length());
  1739. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1740. characterfile.newLine();
  1741.  
  1742. string = "accountOffersSkippedStreak = ";
  1743. integer = player.accountOffersSkippedStreak;
  1744. characterfile.write(string, 0, string.length());
  1745. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1746. characterfile.newLine();
  1747.  
  1748. string = "accountOfferClaimTargetGoal = ";
  1749. integer = player.accountOfferClaimTargetGoal;
  1750. characterfile.write(string, 0, string.length());
  1751. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1752. characterfile.newLine();
  1753.  
  1754. string = "accountOfferClaimTargetProgress = ";
  1755. doubleNumber = player.accountOfferClaimTargetProgress;
  1756. characterfile.write(string, 0, string.length());
  1757. characterfile.write(Double.toString(doubleNumber), 0, Double.toString(doubleNumber).length());
  1758. characterfile.newLine();
  1759.  
  1760. string = "accountOfferRewardItemAmount = ";
  1761. integer = player.accountOfferRewardItemAmount;
  1762. characterfile.write(string, 0, string.length());
  1763. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1764. characterfile.newLine();
  1765.  
  1766. string = "money-pouch = ";
  1767. integer = player.getMoneyPouch().amount(995);
  1768. characterfile.write(string, 0, string.length());
  1769. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1770. characterfile.newLine();
  1771.  
  1772. string = "accountOfferRewardItemId = ";
  1773. integer = player.accountOfferRewardItemId;
  1774. characterfile.write(string, 0, string.length());
  1775. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1776. characterfile.newLine();
  1777.  
  1778. string = "chargeSpellTime = ";
  1779. long1 = player.chargeSpellTime;
  1780. characterfile.write(string, 0, string.length());
  1781. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1782. characterfile.newLine();
  1783.  
  1784. string = "imbuedHeartTime = ";
  1785. long1 = player.imbuedHeartEndTime;
  1786. characterfile.write(string, 0, string.length());
  1787. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1788. characterfile.newLine();
  1789.  
  1790. string = "timeLastClaimedDonation = ";
  1791. long1 = player.getTimeLastClaimedDonation();
  1792. characterfile.write(string, 0, string.length());
  1793. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1794. characterfile.newLine();
  1795.  
  1796. string = "timeAcceptedTradeInDiceZone = ";
  1797. long1 = player.timeAcceptedTradeInDiceZone;
  1798. characterfile.write(string, 0, string.length());
  1799. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1800. characterfile.newLine();
  1801.  
  1802. if (!player.getZulrahLostItems().isEmpty()) {
  1803. characterfile.write("zulrah-lost-items = "
  1804. + new ItemContainerToStringEncoder().encode(player.getZulrahLostItems()));
  1805. characterfile.newLine();
  1806. }
  1807.  
  1808. if (!player.getVorkathLostItems().isEmpty()) {
  1809. characterfile.write("vorkath-lost-items = "
  1810. + new ItemContainerToStringEncoder().encode(player.getVorkathLostItems()));
  1811. characterfile.newLine();
  1812. }
  1813.  
  1814. string = "timeSkilled = ";
  1815. long1 = player.timeSkilled;
  1816. characterfile.write(string, 0, string.length());
  1817. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1818. characterfile.newLine();
  1819.  
  1820. string = "timeUsedHealthBoxSpecial = ";
  1821. long1 = player.timeUsedHealthBoxSpecial;
  1822. characterfile.write(string, 0, string.length());
  1823. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1824. characterfile.newLine();
  1825.  
  1826. string = "timeVoteNotificationAlerted = ";
  1827. long1 = player.timeVoteNotificationAlerted;
  1828. characterfile.write(string, 0, string.length());
  1829. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1830. characterfile.newLine();
  1831.  
  1832. string = "teleBlockEndTime = ";
  1833. long1 = player.teleBlockEndTime;
  1834. characterfile.write(string, 0, string.length());
  1835. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1836. characterfile.newLine();
  1837.  
  1838. string = "timeDiedInWilderness = ";
  1839. long1 = player.timeDiedInWilderness;
  1840. characterfile.write(string, 0, string.length());
  1841. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1842. characterfile.newLine();
  1843.  
  1844. string = "timeWeeklyGameTimeUsed = ";
  1845. long1 = player.timeWeeklyGameTimeUsed;
  1846. characterfile.write(string, 0, string.length());
  1847. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1848. characterfile.newLine();
  1849.  
  1850. string = "timeVoted = ";
  1851. long1 = player.timeVoted;
  1852. characterfile.write(string, 0, string.length());
  1853. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1854. characterfile.newLine();
  1855.  
  1856. string = "xpLampUsedTime = ";
  1857. long1 = player.xpLampUsedTime;
  1858. characterfile.write(string, 0, string.length());
  1859. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1860. characterfile.newLine();
  1861.  
  1862. string = "venomImmunityExpireTime = ";
  1863. long1 = player.venomImmunityExpireTime;
  1864. characterfile.write(string, 0, string.length());
  1865. characterfile.write(Long.toString(long1), 0, Long.toString(long1).length());
  1866. characterfile.newLine();
  1867.  
  1868. string = "bossScoreCapped = ";
  1869. integer = player.bossScoreCapped;
  1870. characterfile.write(string, 0, string.length());
  1871. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1872. characterfile.newLine();
  1873.  
  1874. string = "bossScoreUnCapped = ";
  1875. integer = player.bossScoreUnCapped;
  1876. characterfile.write(string, 0, string.length());
  1877. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1878. characterfile.newLine();
  1879.  
  1880. string = "myTabs = ";
  1881. integer = player.myTabs;
  1882. characterfile.write(string, 0, string.length());
  1883. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1884. characterfile.newLine();
  1885.  
  1886. string = "enemyTabs = ";
  1887. integer = player.enemyTabs;
  1888. characterfile.write(string, 0, string.length());
  1889. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1890. characterfile.newLine();
  1891.  
  1892. string = "lastXAmount = ";
  1893. integer = player.lastXAmount;
  1894. characterfile.write(string, 0, string.length());
  1895. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1896. characterfile.newLine();
  1897.  
  1898. string = "bloodMoneySpent = ";
  1899. integer = player.bloodMoneySpent;
  1900. characterfile.write(string, 0, string.length());
  1901. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1902. characterfile.newLine();
  1903.  
  1904. string = "valuableLoot = ";
  1905. integer = player.valuableLoot;
  1906. characterfile.write(string, 0, string.length());
  1907. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1908. characterfile.newLine();
  1909.  
  1910. string = "votesClaimed = ";
  1911. integer = player.votesClaimed;
  1912. characterfile.write(string, 0, string.length());
  1913. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1914. characterfile.newLine();
  1915.  
  1916. string = "venomDamage = ";
  1917. integer = player.venomDamage;
  1918. characterfile.write(string, 0, string.length());
  1919. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1920. characterfile.newLine();
  1921.  
  1922. string = "venomHits = ";
  1923. integer = player.venomHits;
  1924. characterfile.write(string, 0, string.length());
  1925. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1926. characterfile.newLine();
  1927.  
  1928. string = "venomTicksUntillDamage = ";
  1929. integer = player.venomTicksUntillDamage;
  1930. characterfile.write(string, 0, string.length());
  1931. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1932. characterfile.newLine();
  1933.  
  1934. string = "displayBots = ";
  1935. boolean1 = player.displayBots;
  1936. characterfile.write(string, 0, string.length());
  1937. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1938. characterfile.newLine();
  1939.  
  1940. string = "accountOfferCompleted = ";
  1941. boolean1 = player.accountOfferCompleted;
  1942. characterfile.write(string, 0, string.length());
  1943. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1944. characterfile.newLine();
  1945.  
  1946. string = "smashVials = ";
  1947. boolean1 = player.smashVials;
  1948. characterfile.write(string, 0, string.length());
  1949. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1950. characterfile.newLine();
  1951.  
  1952. string = "toggleSeedPod = ";
  1953. boolean1 = player.toggleSeedPod;
  1954. characterfile.write(string, 0, string.length());
  1955. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1956. characterfile.newLine();
  1957.  
  1958. string = "toggleLootKey = ";
  1959. boolean1 = player.toggleLootKey;
  1960. characterfile.write(string, 0, string.length());
  1961. characterfile.write(Boolean.toString(boolean1), 0, Boolean.toString(boolean1).length());
  1962. characterfile.newLine();
  1963.  
  1964. string = "throneId = ";
  1965. integer = player.throneId;
  1966. characterfile.write(string, 0, string.length());
  1967. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1968. characterfile.newLine();
  1969.  
  1970. string = "blowpipeDartItemId = ";
  1971. integer = player.blowpipeDartItemId;
  1972. characterfile.write(string, 0, string.length());
  1973. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1974. characterfile.newLine();
  1975.  
  1976. string = "blowpipeDartItemAmount = ";
  1977. integer = player.blowpipeDartItemAmount;
  1978. characterfile.write(string, 0, string.length());
  1979. characterfile.write(Integer.toString(integer), 0, Integer.toString(integer).length());
  1980. characterfile.newLine();
  1981.  
  1982. characterfile.write("boostedTime = ", 0, 14);
  1983. String toWrite0 = "";
  1984. for (int i1 = 0; i1 < player.boostedTime.length; i1++) {
  1985. toWrite0 += player.boostedTime[i1] + "\t";
  1986. }
  1987. characterfile.write(toWrite0);
  1988. characterfile.newLine();
  1989.  
  1990. string = "maximumSpecialAttack = ";
  1991. characterfile.write(string, 0, string.length());
  1992. String toWrite6 = "";
  1993. for (int i1 = 0; i1 < player.maximumSpecialAttack.length; i1++) {
  1994. toWrite6 += player.maximumSpecialAttack[i1] + "\t";
  1995. }
  1996. characterfile.write(toWrite6);
  1997. characterfile.newLine();
  1998.  
  1999. string = "maximumSpecialAttackNpc = ";
  2000. characterfile.write(string, 0, string.length());
  2001. toWrite6 = "";
  2002. for (int i1 = 0; i1 < player.maximumSpecialAttackNpc.length; i1++) {
  2003. toWrite6 += player.maximumSpecialAttackNpc[i1] + "\t";
  2004. }
  2005. characterfile.write(toWrite6);
  2006. characterfile.newLine();
  2007.  
  2008. string = "weaponAmountUsed = ";
  2009. characterfile.write(string, 0, string.length());
  2010. String toWrite6Point1 = "";
  2011. for (int i1 = 0; i1 < player.weaponAmountUsed.length; i1++) {
  2012. toWrite6Point1 += player.weaponAmountUsed[i1] + "\t";
  2013. }
  2014. characterfile.write(toWrite6Point1);
  2015. characterfile.newLine();
  2016.  
  2017. string = "weaponAmountUsedNpc = ";
  2018. characterfile.write(string, 0, string.length());
  2019. toWrite6Point1 = "";
  2020. for (int i1 = 0; i1 < player.weaponAmountUsedNpc.length; i1++) {
  2021. toWrite6Point1 += player.weaponAmountUsedNpc[i1] + "\t";
  2022. }
  2023. characterfile.write(toWrite6Point1);
  2024. characterfile.newLine();
  2025.  
  2026. characterfile.write("pouchesPure = ", 0, 14);
  2027. String toWrite8 = "";
  2028. for (int i1 = 0; i1 < player.pouchesPure.length; i1++) {
  2029. toWrite8 += player.pouchesPure[i1] + "\t";
  2030. }
  2031. characterfile.write(toWrite8);
  2032. characterfile.newLine();
  2033.  
  2034. characterfile.write("pouchesRune = ", 0, 14);
  2035. toWrite8 = "";
  2036. for (int i1 = 0; i1 < player.pouchesRune.length; i1++) {
  2037. toWrite8 += player.pouchesRune[i1] + "\t";
  2038. }
  2039. characterfile.write(toWrite8);
  2040. characterfile.newLine();
  2041.  
  2042. characterfile.write("QuickPrayers = ", 0, 15);
  2043. String toWrite4 = "";
  2044. for (int i1 = 0; i1 < player.quickPrayers.length; i1++) {
  2045. toWrite4 += player.quickPrayers[i1] + "\t";
  2046. }
  2047. characterfile.write(toWrite4);
  2048. characterfile.newLine();
  2049.  
  2050. characterfile.write("combatExperienceGainedAfterMaxed = ", 0, 35);
  2051. String toWrite14 = "";
  2052. for (int i1 = 0; i1 < player.combatExperienceGainedAfterMaxed.length; i1++) {
  2053. toWrite14 += player.combatExperienceGainedAfterMaxed[i1] + "\t";
  2054. }
  2055. characterfile.write(toWrite14);
  2056. characterfile.newLine();
  2057.  
  2058. string = "deathTypes = ";
  2059. characterfile.write(string, 0, string.length());
  2060. String toWrite15 = "";
  2061. for (int i1 = 0; i1 < player.deathTypes.length; i1++) {
  2062. toWrite15 += player.deathTypes[i1] + "\t";
  2063. }
  2064. characterfile.write(toWrite15);
  2065. characterfile.newLine();
  2066.  
  2067. string = "totalDamage = ";
  2068. characterfile.write(string, 0, string.length());
  2069. String toWrite16 = "";
  2070. for (int i1 = 0; i1 < player.totalDamage.length; i1++) {
  2071. toWrite16 += player.totalDamage[i1] + "\t";
  2072. }
  2073. characterfile.write(toWrite16);
  2074. characterfile.newLine();
  2075.  
  2076. string = "skillingStatistics = ";
  2077. characterfile.write(string, 0, string.length());
  2078. String toWrite18 = "";
  2079. for (int i1 = 0; i1 < player.skillingStatistics.length; i1++) {
  2080. toWrite18 += player.skillingStatistics[i1] + "\t";
  2081. }
  2082. characterfile.write(toWrite18);
  2083. characterfile.newLine();
  2084.  
  2085. string = "timeSpent = ";
  2086. characterfile.write(string, 0, string.length());
  2087. String toWrite19 = "";
  2088. for (int i1 = 0; i1 < player.timeSpent.length; i1++) {
  2089. toWrite19 += player.timeSpent[i1] + "\t";
  2090. }
  2091. characterfile.write(toWrite19);
  2092. characterfile.newLine();
  2093.  
  2094. string = "currentCombatSkillLevel = ";
  2095. characterfile.write(string, 0, string.length());
  2096. String toWrite21 = "";
  2097. for (int i1 = 0; i1 < player.currentCombatSkillLevel.length; i1++) {
  2098. toWrite21 += player.currentCombatSkillLevel[i1] + "\t";
  2099. }
  2100. characterfile.write(toWrite21);
  2101. characterfile.newLine();
  2102.  
  2103. string = "skillMilestone100mAnnounced = ";
  2104. characterfile.write(string, 0, string.length());
  2105. String toWrite22 = "";
  2106. for (int i1 = 0; i1 < player.skillMilestone100mAnnounced.length; i1++) {
  2107. toWrite22 += player.skillMilestone100mAnnounced[i1] + "\t";
  2108. }
  2109. characterfile.write(toWrite22);
  2110. characterfile.newLine();
  2111.  
  2112. string = "skillMilestone200mAnnounced = ";
  2113. characterfile.write(string, 0, string.length());
  2114. toWrite22 = "";
  2115. for (int i1 = 0; i1 < player.skillMilestone200mAnnounced.length; i1++) {
  2116. toWrite22 += player.skillMilestone200mAnnounced[i1] + "\t";
  2117. }
  2118. characterfile.write(toWrite22);
  2119. characterfile.newLine();
  2120.  
  2121. string = "barrowsBrothersKilled = ";
  2122. characterfile.write(string, 0, string.length());
  2123. toWrite22 = "";
  2124. for (int i1 = 0; i1 < player.barrowsBrothersKilled.length; i1++) {
  2125. toWrite22 += player.barrowsBrothersKilled[i1] + "\t";
  2126. }
  2127. characterfile.write(toWrite22);
  2128. characterfile.newLine();
  2129.  
  2130. string = "itemsToShop = ";
  2131. characterfile.write(string, 0, string.length());
  2132. toWrite21 = "";
  2133. for (int i1 = 0; i1 < player.itemsToShop.size(); i1++) {
  2134. toWrite21 += player.itemsToShop.get(i1) + "\t";
  2135. }
  2136. characterfile.write(toWrite21);
  2137. characterfile.newLine();
  2138.  
  2139. string = "resourcesHarvested = ";
  2140. characterfile.write(string, 0, string.length());
  2141. toWrite21 = "";
  2142. for (int i1 = 0; i1 < player.resourcesHarvested.size(); i1++) {
  2143. toWrite21 += player.resourcesHarvested.get(i1) + "\t";
  2144. }
  2145. characterfile.write(toWrite21);
  2146. characterfile.newLine();
  2147.  
  2148. string = "achievementProgress = ";
  2149. characterfile.write(string, 0, string.length());
  2150. toWrite21 = "";
  2151. for (int i1 = 0; i1 < player.achievementProgress.size(); i1++) {
  2152. toWrite21 += player.achievementProgress.get(i1) + "\t";
  2153. }
  2154. characterfile.write(toWrite21);
  2155. characterfile.newLine();
  2156.  
  2157. string = "itemsCollected = ";
  2158. characterfile.write(string, 0, string.length());
  2159. toWrite21 = "";
  2160. for (int i1 = 0; i1 < player.itemsCollected.size(); i1++) {
  2161. toWrite21 += player.itemsCollected.get(i1) + "\t";
  2162. }
  2163. characterfile.write(toWrite21);
  2164. characterfile.newLine();
  2165.  
  2166. string = "achievementsCompleted = ";
  2167. characterfile.write(string, 0, string.length());
  2168. toWrite21 = "";
  2169. for (int i1 = 0; i1 < player.achievementsCompleted.size(); i1++) {
  2170. toWrite21 += player.achievementsCompleted.get(i1) + "\t";
  2171. }
  2172. characterfile.write(toWrite21);
  2173. characterfile.newLine();
  2174.  
  2175. string = "titlesUnlocked = ";
  2176. characterfile.write(string, 0, string.length());
  2177. toWrite21 = "";
  2178. for (int i1 = 0; i1 < player.titlesUnlocked.size(); i1++) {
  2179. toWrite21 += player.titlesUnlocked.get(i1) + "\t";
  2180. }
  2181. characterfile.write(toWrite21);
  2182. characterfile.newLine();
  2183.  
  2184. string = "npcKills = ";
  2185. characterfile.write(string, 0, string.length());
  2186. toWrite21 = "";
  2187. for (int i1 = 0; i1 < player.npcKills.size(); i1++) {
  2188. toWrite21 += player.npcKills.get(i1) + "\t";
  2189. }
  2190. characterfile.write(toWrite21);
  2191. characterfile.newLine();
  2192.  
  2193. toWrite22 = "";
  2194. string = "lootingBagStorageItemId = ";
  2195. characterfile.write(string, 0, string.length());
  2196. for (int i1 = 0; i1 < player.lootingBagStorageItemId.length; i1++) {
  2197. toWrite22 += player.lootingBagStorageItemId[i1] + "\t";
  2198. }
  2199. characterfile.write(toWrite22);
  2200. characterfile.newLine();
  2201.  
  2202. toWrite22 = "";
  2203. string = "lootingBagStorageItemAmount = ";
  2204. characterfile.write(string, 0, string.length());
  2205. for (int i1 = 0; i1 < player.lootingBagStorageItemAmount.length; i1++) {
  2206. toWrite22 += player.lootingBagStorageItemAmount[i1] + "\t";
  2207. }
  2208. characterfile.write(toWrite22);
  2209. characterfile.newLine();
  2210.  
  2211. toWrite22 = "";
  2212. string = "achievementTotal = ";
  2213. characterfile.write(string, 0, string.length());
  2214. for (int i1 = 0; i1 < player.achievementTotal.length; i1++) {
  2215. toWrite22 += player.achievementTotal[i1] + "\t";
  2216. }
  2217. characterfile.write(toWrite22);
  2218. characterfile.newLine();
  2219.  
  2220. if (player.getPlayerPetState() != null) {
  2221. characterfile.write(String.format("player-pet-state1 = %s", player.getPlayerPetState().encode()));
  2222. characterfile.newLine();
  2223. }
  2224. for (Map.Entry<AttributeKey<?>, Object> entry : player.getAttributes().entries()) {
  2225. AttributeKey<?> key = entry.getKey();
  2226.  
  2227. Object value = entry.getValue();
  2228.  
  2229. if (value == null || key.serializationType() == AttributeSerializationType.TRANSIENT) {
  2230. continue;
  2231. }
  2232. if (key.serializationType() == AttributeSerializationType.PERMANENT
  2233. && key.serializationKeyOrNull() != null) {
  2234. characterfile.write(String.format("%s = %s", key.serializationKeyOrNull(), gson.toJson(value)));
  2235. characterfile.newLine();
  2236. }
  2237. }
  2238.  
  2239. toWrite22 = "";
  2240. string = "questStages = ";
  2241. characterfile.write(string, 0, string.length());
  2242. for (int i1 = 0; i1 < player.questStages.length; i1++) {
  2243. toWrite22 += player.questStages[i1] + "\t";
  2244. }
  2245. characterfile.write(toWrite22);
  2246. characterfile.newLine();
  2247.  
  2248. toWrite22 = "";
  2249. string = "titleTotal = ";
  2250. characterfile.write(string, 0, string.length());
  2251. for (int i1 = 0; i1 < player.titleTotal.length; i1++) {
  2252. toWrite22 += player.titleTotal[i1] + "\t";
  2253. }
  2254. characterfile.write(toWrite22);
  2255. characterfile.newLine();
  2256.  
  2257. toWrite22 = "";
  2258. string = "achievementDifficultyCompleted = ";
  2259. characterfile.write(string, 0, string.length());
  2260. for (int i1 = 0; i1 < player.achievementDifficultyCompleted.length; i1++) {
  2261. toWrite22 += player.achievementDifficultyCompleted[i1] + "\t";
  2262. }
  2263. characterfile.write(toWrite22);
  2264. characterfile.newLine();
  2265.  
  2266. string = "singularUntradeableItemsOwned = ";
  2267. characterfile.write(string, 0, string.length());
  2268. toWrite21 = "";
  2269. for (int i1 = 0; i1 < player.singularUntradeableItemsOwned.size(); i1++) {
  2270. toWrite21 += player.singularUntradeableItemsOwned.get(i1) + "\t";
  2271. }
  2272. characterfile.write(toWrite21);
  2273. characterfile.newLine();
  2274.  
  2275. string = "tradingPostHistory = ";
  2276. characterfile.write(string, 0, string.length());
  2277. toWrite21 = "";
  2278. for (int i1 = 0; i1 < player.tradingPostHistory.size(); i1++) {
  2279. toWrite21 += player.tradingPostHistory.get(i1) + "\t";
  2280. }
  2281. characterfile.write(toWrite21);
  2282. characterfile.newLine();
  2283.  
  2284. string = "donationPriceClaimedHistory = ";
  2285. characterfile.write(string, 0, string.length());
  2286. toWrite21 = "";
  2287. for (int i1 = 0; i1 < player.donationPriceClaimedHistory.size(); i1++) {
  2288. toWrite21 += player.donationPriceClaimedHistory.get(i1) + "\t";
  2289. }
  2290. characterfile.write(toWrite21);
  2291. characterfile.newLine();
  2292.  
  2293. string = "pvpBlacklist = ";
  2294. characterfile.write(string, 0, string.length());
  2295. toWrite21 = "";
  2296. for (int i1 = 0; i1 < player.pvpBlacklist.size(); i1++) {
  2297. toWrite21 += player.pvpBlacklist.get(i1) + "\t";
  2298. }
  2299. characterfile.write(toWrite21);
  2300. characterfile.newLine();
  2301.  
  2302. string = "preset1 = ";
  2303. characterfile.write(string, 0, string.length());
  2304. toWrite21 = "";
  2305. for (int i1 = 0; i1 < player.preset1.size(); i1++) {
  2306. toWrite21 += player.preset1.get(i1) + "\t";
  2307. }
  2308. characterfile.write(toWrite21);
  2309. characterfile.newLine();
  2310.  
  2311. string = "preset2 = ";
  2312. characterfile.write(string, 0, string.length());
  2313. toWrite21 = "";
  2314. for (int i1 = 0; i1 < player.preset2.size(); i1++) {
  2315. toWrite21 += player.preset2.get(i1) + "\t";
  2316. }
  2317. characterfile.write(toWrite21);
  2318. characterfile.newLine();
  2319.  
  2320. string = "preset3 = ";
  2321. characterfile.write(string, 0, string.length());
  2322. toWrite21 = "";
  2323. for (int i1 = 0; i1 < player.preset3.size(); i1++) {
  2324. toWrite21 += player.preset3.get(i1) + "\t";
  2325. }
  2326. characterfile.write(toWrite21);
  2327. characterfile.newLine();
  2328.  
  2329. string = "preset4 = ";
  2330. characterfile.write(string, 0, string.length());
  2331. toWrite21 = "";
  2332. for (int i1 = 0; i1 < player.preset4.size(); i1++) {
  2333. toWrite21 += player.preset4.get(i1) + "\t";
  2334. }
  2335. characterfile.write(toWrite21);
  2336. characterfile.newLine();
  2337.  
  2338. string = "preset5 = ";
  2339. characterfile.write(string, 0, string.length());
  2340. toWrite21 = "";
  2341. for (int i1 = 0; i1 < player.preset5.size(); i1++) {
  2342. toWrite21 += player.preset5.get(i1) + "\t";
  2343. }
  2344. characterfile.write(toWrite21);
  2345. characterfile.newLine();
  2346.  
  2347. string = "preset6 = ";
  2348. characterfile.write(string, 0, string.length());
  2349. toWrite21 = "";
  2350. for (int i1 = 0; i1 < player.preset6.size(); i1++) {
  2351. toWrite21 += player.preset6.get(i1) + "\t";
  2352. }
  2353. characterfile.write(toWrite21);
  2354. characterfile.newLine();
  2355.  
  2356. string = "preset7 = ";
  2357. characterfile.write(string, 0, string.length());
  2358. toWrite21 = "";
  2359. for (int i1 = 0; i1 < player.preset7.size(); i1++) {
  2360. toWrite21 += player.preset7.get(i1) + "\t";
  2361. }
  2362. characterfile.write(toWrite21);
  2363. characterfile.newLine();
  2364.  
  2365. string = "preset8 = ";
  2366. characterfile.write(string, 0, string.length());
  2367. toWrite21 = "";
  2368. for (int i1 = 0; i1 < player.preset8.size(); i1++) {
  2369. toWrite21 += player.preset8.get(i1) + "\t";
  2370. }
  2371. characterfile.write(toWrite21);
  2372. characterfile.newLine();
  2373.  
  2374. string = "preset9 = ";
  2375. characterfile.write(string, 0, string.length());
  2376. toWrite21 = "";
  2377. for (int i1 = 0; i1 < player.preset9.size(); i1++) {
  2378. toWrite21 += player.preset9.get(i1) + "\t";
  2379. }
  2380. characterfile.write(toWrite21);
  2381. characterfile.newLine();
  2382.  
  2383. toWrite22 = "";
  2384. string = "runePouchItemId = ";
  2385. characterfile.write(string, 0, string.length());
  2386. for (int i1 = 0; i1 < player.runePouchItemId.length; i1++) {
  2387. toWrite22 += player.runePouchItemId[i1] + "\t";
  2388. }
  2389. characterfile.write(toWrite22);
  2390. characterfile.newLine();
  2391.  
  2392. toWrite22 = "";
  2393. string = "runePouchItemAmount = ";
  2394. characterfile.write(string, 0, string.length());
  2395. for (int i1 = 0; i1 < player.runePouchItemAmount.length; i1++) {
  2396. toWrite22 += player.runePouchItemAmount[i1] + "\t";
  2397. }
  2398. characterfile.write(toWrite22);
  2399. characterfile.newLine();
  2400.  
  2401. toWrite22 = "";
  2402. string = "pvpTask = ";
  2403. characterfile.write(string, 0, string.length());
  2404. for (int i1 = 0; i1 < player.pvpTask.length; i1++) {
  2405. toWrite22 += player.pvpTask[i1] + "\t";
  2406. }
  2407. characterfile.write(toWrite22);
  2408. characterfile.newLine();
  2409.  
  2410. string = "killTimes = ";
  2411. characterfile.write(string, 0, string.length());
  2412. toWrite21 = "";
  2413. for (int i1 = 0; i1 < player.killTimes.size(); i1++) {
  2414. toWrite21 += player.killTimes.get(i1) + "\t";
  2415. }
  2416. characterfile.write(toWrite21);
  2417. characterfile.newLine();
  2418.  
  2419. string = "voteTimes = ";
  2420. characterfile.write(string, 0, string.length());
  2421. toWrite21 = "";
  2422. for (int i1 = 0; i1 < player.voteTimes.size(); i1++) {
  2423. toWrite21 += player.voteTimes.get(i1) + "\t";
  2424. }
  2425. characterfile.write(toWrite21);
  2426. characterfile.newLine();
  2427.  
  2428. string = "gameTimeHistory = ";
  2429. characterfile.write(string, 0, string.length());
  2430. toWrite21 = "";
  2431. for (int i1 = 0; i1 < player.activePlayedTimeDates.size(); i1++) {
  2432. toWrite21 += player.activePlayedTimeDates.get(i1).minutes + "#"
  2433. + player.activePlayedTimeDates.get(i1).date + "\t";
  2434. }
  2435. characterfile.write(toWrite21);
  2436. characterfile.newLine();
  2437.  
  2438. characterfile.newLine();
  2439. characterfile.write("[SKILLS]", 0, 8);
  2440. characterfile.newLine();
  2441. for (int i = 0; i < ServerConstants.getTotalSkillsAmount(); i++) {
  2442. characterfile.write("character-skill = ", 0, 18);
  2443. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2444. characterfile.write(" ", 0, 1);
  2445. characterfile.write(Integer.toString(player.baseSkillLevel[i]), 0,
  2446. Integer.toString(player.baseSkillLevel[i]).length());
  2447. characterfile.write(" ", 0, 1);
  2448. characterfile.write(Integer.toString(player.skillExperience[i]), 0,
  2449. Integer.toString(player.skillExperience[i]).length());
  2450. characterfile.newLine();
  2451. }
  2452. characterfile.newLine();
  2453.  
  2454. characterfile.write("[INVENTORY]", 0, 11);
  2455. characterfile.newLine();
  2456. for (int i = 0; i < player.playerItems.length; i++) {
  2457. if (player.playerItems[i] > 0) {
  2458. characterfile.write("inventory-slot = ", 0, 17);
  2459. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2460. characterfile.write(" ", 0, 1);
  2461. characterfile.write(Integer.toString(player.playerItems[i]), 0,
  2462. Integer.toString(player.playerItems[i]).length());
  2463. characterfile.write(" ", 0, 1);
  2464. characterfile.write(Integer.toString(player.playerItemsN[i]), 0,
  2465. Integer.toString(player.playerItemsN[i]).length());
  2466. characterfile.newLine();
  2467. }
  2468. }
  2469. characterfile.newLine();
  2470. characterfile.write("[EQUIPMENT]", 0, 11);
  2471. characterfile.newLine();
  2472. for (int i = 0; i < player.playerEquipment.length; i++) {
  2473. if (player.playerEquipment[i] > 0) {
  2474. characterfile.write("character-equip = ", 0, 18);
  2475. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2476. characterfile.write(" ", 0, 1);
  2477. characterfile.write(Integer.toString(player.playerEquipment[i]), 0,
  2478. Integer.toString(player.playerEquipment[i]).length());
  2479. characterfile.write(" ", 0, 1);
  2480. characterfile.write(Integer.toString(player.playerEquipmentN[i]), 0,
  2481. Integer.toString(player.playerEquipmentN[i]).length());
  2482. characterfile.write(" ", 0, 1);
  2483. characterfile.newLine();
  2484. }
  2485. }
  2486. characterfile.newLine();
  2487. characterfile.write("[APPEARANCE]", 0, 12);
  2488. characterfile.newLine();
  2489. for (int i = 0; i < player.playerAppearance.length; i++) {
  2490. characterfile.write("character-look = ", 0, 17);
  2491. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2492. characterfile.write(" ", 0, 1);
  2493. characterfile.write(Integer.toString(player.playerAppearance[i]), 0,
  2494. Integer.toString(player.playerAppearance[i]).length());
  2495. characterfile.newLine();
  2496. }
  2497. characterfile.newLine();
  2498.  
  2499. characterfile.write("[BANK]", 0, 6);
  2500. characterfile.newLine();
  2501. for (int i = 0; i < player.bankItems.length; i++) {
  2502. if (player.bankItems[i] > 0) {
  2503. characterfile.write("character-bank = ", 0, 17);
  2504. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2505. characterfile.write(" ", 0, 1);
  2506. characterfile.write(Integer.toString(player.bankItems[i]), 0,
  2507. Integer.toString(player.bankItems[i]).length());
  2508. characterfile.write(" ", 0, 1);
  2509. characterfile.write(Integer.toString(player.bankItemsN[i]), 0,
  2510. Integer.toString(player.bankItemsN[i]).length());
  2511. characterfile.newLine();
  2512. }
  2513. }
  2514. for (int i = 0; i < player.bankItems1.length; i++) {
  2515. if (player.bankItems1[i] > 0) {
  2516. characterfile.write("character-bank1 = ", 0, 18);
  2517. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2518. characterfile.write(" ", 0, 1);
  2519. characterfile.write(Integer.toString(player.bankItems1[i]), 0,
  2520. Integer.toString(player.bankItems1[i]).length());
  2521. characterfile.write(" ", 0, 1);
  2522. characterfile.write(Integer.toString(player.bankItems1N[i]), 0,
  2523. Integer.toString(player.bankItems1N[i]).length());
  2524. characterfile.newLine();
  2525. }
  2526. }
  2527. for (int i = 0; i < player.bankItems2.length; i++) {
  2528. if (player.bankItems2[i] > 0) {
  2529. characterfile.write("character-bank2 = ", 0, 18);
  2530. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2531. characterfile.write(" ", 0, 1);
  2532. characterfile.write(Integer.toString(player.bankItems2[i]), 0,
  2533. Integer.toString(player.bankItems2[i]).length());
  2534. characterfile.write(" ", 0, 1);
  2535. characterfile.write(Integer.toString(player.bankItems2N[i]), 0,
  2536. Integer.toString(player.bankItems2N[i]).length());
  2537. characterfile.newLine();
  2538. }
  2539. }
  2540. for (int i = 0; i < player.bankItems3.length; i++) {
  2541. if (player.bankItems3[i] > 0) {
  2542. characterfile.write("character-bank3 = ", 0, 18);
  2543. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2544. characterfile.write(" ", 0, 1);
  2545. characterfile.write(Integer.toString(player.bankItems3[i]), 0,
  2546. Integer.toString(player.bankItems3[i]).length());
  2547. characterfile.write(" ", 0, 1);
  2548. characterfile.write(Integer.toString(player.bankItems3N[i]), 0,
  2549. Integer.toString(player.bankItems3N[i]).length());
  2550. characterfile.newLine();
  2551. }
  2552. }
  2553. for (int i = 0; i < player.bankItems4.length; i++) {
  2554. if (player.bankItems4[i] > 0) {
  2555. characterfile.write("character-bank4 = ", 0, 18);
  2556. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2557. characterfile.write(" ", 0, 1);
  2558. characterfile.write(Integer.toString(player.bankItems4[i]), 0,
  2559. Integer.toString(player.bankItems4[i]).length());
  2560. characterfile.write(" ", 0, 1);
  2561. characterfile.write(Integer.toString(player.bankItems4N[i]), 0,
  2562. Integer.toString(player.bankItems4N[i]).length());
  2563. characterfile.newLine();
  2564. }
  2565. }
  2566. for (int i = 0; i < player.bankItems5.length; i++) {
  2567. if (player.bankItems5[i] > 0) {
  2568. characterfile.write("character-bank5 = ", 0, 18);
  2569. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2570. characterfile.write(" ", 0, 1);
  2571. characterfile.write(Integer.toString(player.bankItems5[i]), 0,
  2572. Integer.toString(player.bankItems5[i]).length());
  2573. characterfile.write(" ", 0, 1);
  2574. characterfile.write(Integer.toString(player.bankItems5N[i]), 0,
  2575. Integer.toString(player.bankItems5N[i]).length());
  2576. characterfile.newLine();
  2577. }
  2578. }
  2579. for (int i = 0; i < player.bankItems6.length; i++) {
  2580. if (player.bankItems6[i] > 0) {
  2581. characterfile.write("character-bank6 = ", 0, 18);
  2582. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2583. characterfile.write(" ", 0, 1);
  2584. characterfile.write(Integer.toString(player.bankItems6[i]), 0,
  2585. Integer.toString(player.bankItems6[i]).length());
  2586. characterfile.write(" ", 0, 1);
  2587. characterfile.write(Integer.toString(player.bankItems6N[i]), 0,
  2588. Integer.toString(player.bankItems6N[i]).length());
  2589. characterfile.newLine();
  2590. }
  2591. }
  2592. for (int i = 0; i < player.bankItems7.length; i++) {
  2593. if (player.bankItems7[i] > 0) {
  2594. characterfile.write("character-bank7 = ", 0, 18);
  2595. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2596. characterfile.write(" ", 0, 1);
  2597. characterfile.write(Integer.toString(player.bankItems7[i]), 0,
  2598. Integer.toString(player.bankItems7[i]).length());
  2599. characterfile.write(" ", 0, 1);
  2600. characterfile.write(Integer.toString(player.bankItems7N[i]), 0,
  2601. Integer.toString(player.bankItems7N[i]).length());
  2602. characterfile.newLine();
  2603. }
  2604. }
  2605. for (int i = 0; i < player.bankItems8.length; i++) {
  2606. if (player.bankItems8[i] > 0) {
  2607. characterfile.write("character-bank8 = ", 0, 18);
  2608. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2609. characterfile.write(" ", 0, 1);
  2610. characterfile.write(Integer.toString(player.bankItems8[i]), 0,
  2611. Integer.toString(player.bankItems8[i]).length());
  2612. characterfile.write(" ", 0, 1);
  2613. characterfile.write(Integer.toString(player.bankItems8N[i]), 0,
  2614. Integer.toString(player.bankItems8N[i]).length());
  2615. characterfile.newLine();
  2616. }
  2617. }
  2618. characterfile.newLine();
  2619. characterfile.write("[FRIENDS]", 0, 9);
  2620. characterfile.newLine();
  2621. for (int i = 0; i < player.friends.length; i++) {
  2622. if (player.friends[i][0] > 0) {
  2623. characterfile.write("character-friend = ", 0, 19);
  2624. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2625. characterfile.write(" ", 0, 1);
  2626. characterfile.write("" + player.friends[i][0]);
  2627. characterfile.write(" ", 0, 1);
  2628. characterfile.write("" + player.friends[i][1]);
  2629. characterfile.newLine();
  2630. }
  2631. }
  2632.  
  2633. characterfile.newLine();
  2634. characterfile.write("[IGNORES]", 0, 9);
  2635. characterfile.newLine();
  2636. for (int i = 0; i < player.ignores.length; i++) {
  2637. if (player.ignores[i] > 0) {
  2638. characterfile.write("character-ignore = ", 0, 19);
  2639. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2640. characterfile.write(" ", 0, 1);
  2641. characterfile.write(Long.toString(player.ignores[i]), 0, Long.toString(player.ignores[i]).length());
  2642. characterfile.newLine();
  2643. }
  2644. }
  2645. characterfile.newLine();
  2646.  
  2647. string = "[TEMP TOURNAMENT SKILL]";
  2648. characterfile.write(string, 0, string.length());
  2649. characterfile.newLine();
  2650. string = "character-temp-tournament-skill = ";
  2651. for (int i = 0; i < player.baseSkillLevelStoredBeforeTournament.length; i++) {
  2652. characterfile.write(string, 0, string.length());
  2653. characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
  2654. characterfile.write(" ", 0, 1);
  2655. characterfile.write(Integer.toString(player.baseSkillLevelStoredBeforeTournament[i]), 0,
  2656. Integer.toString(player.baseSkillLevelStoredBeforeTournament[i]).length());
  2657. characterfile.write(" ", 0, 1);
  2658. characterfile.write(Integer.toString(player.skillExperienceStoredBeforeTournament[i]), 0,
  2659. Integer.toString(player.skillExperienceStoredBeforeTournament[i]).length());
  2660. characterfile.newLine();
  2661. }
  2662. characterfile.newLine();
  2663. characterfile.write("[EOF]", 0, 5);
  2664. characterfile.close();
  2665. } catch (IOException e) {
  2666. e.printStackTrace();
  2667. Misc.print(player.getPlayerName() + ": error writing file.");
  2668. }
  2669.  
  2670. saveDiaries(player, player.getPlayerName().toLowerCase());
  2671.  
  2672. }
  2673.  
  2674. public static boolean isValidName(String text) {
  2675. Pattern pattern = Pattern.compile(
  2676. // @formatter:off
  2677. "# Match a valid Windows filename (unspecified file system). \n"
  2678. + "^ # Anchor to start of string. \n"
  2679. + "(?! # Assert filename is not: CON, PRN, \n"
  2680. + " (?: # AUX, NUL, COM1, COM2, COM3, COM4, \n"
  2681. + " CON|PRN|AUX|NUL| # COM5, COM6, COM7, COM8, COM9, \n"
  2682. + " COM[1-9]|LPT[1-9] # LPT1, LPT2, LPT3, LPT4, LPT5, \n"
  2683. + " ) # LPT6, LPT7, LPT8, and LPT9... \n"
  2684. + " (?:\\.[^.]*)? # followed by optional extension \n"
  2685. + " $ # and end of string \n"
  2686. + ") # End negative lookahead assertion. \n"
  2687. + "[^<>:\"/\\\\|?*\\x00-\\x1F]* # Zero or more valid filename chars.\n"
  2688. + "[^<>:\"/\\\\|?*\\x00-\\x1F\\ .] # Last char is not a space or dot. \n"
  2689. + "$ # Anchor to end of string. ",
  2690. Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.COMMENTS);
  2691. Matcher matcher = pattern.matcher(text);
  2692. boolean isMatch = matcher.matches();
  2693. return isMatch;
  2694. // @formatter:on
  2695. }
  2696.  
  2697. public static void saveDiaries(Player player, String playerName) {
  2698.  
  2699. Path path = Paths.get("./backup/characters/diaries", playerName.toLowerCase() + ".json");
  2700. File file = path.toFile();
  2701. file.getParentFile().setWritable(true);
  2702.  
  2703. if (!file.getParentFile().exists()) {
  2704. try {
  2705. file.getParentFile().mkdirs();
  2706. } catch (SecurityException e) {
  2707. }
  2708. }
  2709. try (FileWriter writer = new FileWriter(file)) {
  2710.  
  2711. Gson builder = new GsonBuilder().setPrettyPrinting().create();
  2712. JsonObject object = new JsonObject();
  2713.  
  2714. object.add("diaries", builder.toJsonTree(player.getDiariesManager().getTasks()));
  2715.  
  2716. @SuppressWarnings("unused")
  2717. String json = builder.toJson(object);
  2718. writer.write(builder.toJson(object));
  2719. } catch (Exception e) {
  2720. }
  2721.  
  2722. }
  2723.  
  2724. public static void getResult(Player player) {
  2725.  
  2726. Path path = Paths.get("./backup/characters/diaries/", player.getPlayerName().toLowerCase() + ".json");
  2727. File file = path.toFile();
  2728.  
  2729. if (!file.exists()) {
  2730. return;
  2731. }
  2732.  
  2733. try (FileReader fileReader = new FileReader(file)) {
  2734. JsonParser fileParser = new JsonParser();
  2735. Gson builder = new GsonBuilder().create();
  2736. Object object = fileParser.parse(fileReader);
  2737.  
  2738. JsonObject reader = (JsonObject) object;
  2739.  
  2740. if (reader.has("diaries")) {
  2741. Object2IntArrayMap<DiaryTask> progress = builder.fromJson(reader.get("diaries"),
  2742. new TypeToken<Object2IntArrayMap<DiaryTask>>() {
  2743. }.getType());
  2744. player.getDiariesManager().setTasks(progress);
  2745. }
  2746.  
  2747. } catch (Exception e) {
  2748. e.printStackTrace();
  2749. return;
  2750. }
  2751.  
  2752. return;
  2753. }
  2754.  
  2755. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement