Thread: PlayerSave

Page 3 of 4 FirstFirst 1234 LastLast
Results 21 to 30 of 34
  1. #21  
    Community Veteran


    Arch337's Avatar
    Join Date
    Sep 2008
    Posts
    2,950
    Thanks given
    210
    Thanks received
    349
    Rep Power
    1376
    Quote Originally Posted by Regenerating View Post
    Code:
    /**
    	 * Loading
    	 **/
    	@SuppressWarnings("resource")
    	public static int loadGame(Player p, String playerName, String playerPass) {
    		String line = "";
    		String token = "";
    		String token2 = "";
    		String[] token3 = new String[3];
    		boolean EndOfFile = false;
    		int ReadMode = 0;
    		BufferedReader characterfile = null;
    		boolean File1 = false;
    		try {
    			characterfile = new BufferedReader(new FileReader("./Data/characters/" + playerName + ".txt"));
    			File1 = true;
    		} catch (FileNotFoundException fileex1) {
    		}
    
    		if (File1) {
    			// new File ("./characters/"+playerName+".txt");
    		} else {
    			Misc.println(playerName + ": character file not found.");
    			p.newPlayer = false;
    			return 0;
    		}
    		try {
    			line = characterfile.readLine();
    		} catch (IOException ioexception) {
    			Misc.println(playerName + ": error loading file.");
    			return 3;
    		}
    		while (EndOfFile == false && line != null) {
    			line = line.trim();
    			int spot = line.indexOf("=");
    			if (spot > -1) {
    				token = line.substring(0, spot);
    				token = token.trim();
    				token2 = line.substring(spot + 1);
    				token2 = token2.trim();
    				token3 = token2.split("\t");
    
    				boolean withoutpass = true;
    				switch (ReadMode) {
    				case 1:
    					if (token.equals("character-password")) {
    						if (playerPass.equalsIgnoreCase(token2) || Misc.basicEncrypt(playerPass).equals(token2) || Misc.md5Hash(playerPass).equals(token2)) {
    							playerPass = token2;
    						} else {
    							return 3;
    						}
    					}
    					break;
    				case 2:
    					if (token.equals("character-height")) {
    						p.heightLevel = Integer.parseInt(token2);
    					} else if (token.equals("character-hp")) {
    						p.getHealth().setAmount(Integer.parseInt(token2));
    						if (p.getHealth().getAmount() <= 0) {
    							p.getHealth().setAmount(10);
    						}
    					} else if (token.equals("brightness")) {
    						p.setAttribute("brightness", Integer.parseInt(token2));
    					} else if (token.equals("play-time")) {
    						p.playTime = Integer.parseInt(token2);
    					} else if (token.equals("last-clan")) {
    						p.setLastClanChat(token2);
    					} else if (token.equals("character-specRestore")) {
    						p.specRestore = Integer.parseInt(token2);
    					} else if (token.equals("character-posx")) {
    						p.teleportToX = (Integer.parseInt(token2) <= 0 ? 3210 : Integer.parseInt(token2));
    					} else if (token.equals("character-posy")) {
    						p.teleportToY = (Integer.parseInt(token2) <= 0 ? 3424 : Integer.parseInt(token2));
    					} else if (token.equals("character-rights")) {
    						p.getRights().setPrimary(Right.get(Integer.parseInt(token2)));
    					} else if (token.equals("character-rights-secondary")) {
    						Arrays.stream(token3).forEach(right -> p.getRights().add(Right.get(Integer.parseInt(right))));
    					} else if (token.equals("exp-rate")) {
    						p.setExperienceRate(Integer.parseInt(token2));
    					} else if (token.equals("mode")) {
    						ModeType type = null;
    						try {
    							if (token2.equals("NONE")) {
    								token2 = "REGULAR";
    							}
    							type = Enum.valueOf(ModeType.class, token2);
    						} catch (NullPointerException | IllegalArgumentException e) {
    							break;
    						}
    						Mode mode = Mode.forType(type);
    						p.setMode(mode);
    					} else if (token.equals("tutorial-stage")) {
    						Stage stage = null;
    						try {
    							stage = Enum.valueOf(Stage.class, token2);
    						} catch (IllegalArgumentException | NullPointerException e) {
    							break;
    						}
    						p.getTutorial().setStage(stage);
    					} else if (token.equals("character-title-updated")) {
    						p.getTitles().setCurrentTitle(token2);
    					} else if (token.equals("experience-counter")) {
    						p.setExperienceCounter(Long.parseLong(token2));
    					} else if (token.equals("prestigeLevel")) {
    						p.prestigeLevel = Integer.parseInt(token2);
    					} else if(token.equals("skillPoints")) {
    						p.skillPoints = Integer.parseInt(token2);
    					} else if(token.equals("assaultPoints")) {
    						p.assaultPoints = Integer.parseInt(token2);
    					} else if(token.equals("hasBoughtCannon")) {
    						p.hasBoughtCannon = Boolean.parseBoolean(token2);
    							
    					} else if (token.equals("killed-players")) {
    						if (!p.getPlayerKills().getList().contains(token2))
    							p.getPlayerKills().getList().add(token2);
    					} else if(token.equals("mac-address")) {
    						
    						if(!p.getAttribute("mac-address", "").equalsIgnoreCase(token)) {
    							PlayerLogging.write(LogType.CHANGE_MAC_ADDRESS, p, "Mac Address Changed: previous = " + token + ", new = " + p.getAttribute("mac-address", ""));
    						}
    						
    						p.setMacAddress(p.getMacAddress());
    					} else if (token.equals("connected-from")) {
    						p.lastConnectedFrom.add(token2);
    					} else if (token.equals("experienceMultiplier")) {
    						p.doubleXpTime = Integer.parseInt(token2);
    					} else if (token.equals("horror-from-deep")) {
    						p.horrorFromDeep = Integer.parseInt(token2);
    					} else if (token.equals("run-energy")) {
    						p.setRunEnergy(Integer.parseInt(token2));
    					} else if (token.equals("bank-pin")) {
    						p.getBankPin().setPin(token2);
    					} else if (token.equals("bank-pin-cancellation")) {
    						p.getBankPin().setAppendingCancellation(Boolean.parseBoolean(token2));
    					} else if (token.equals("bank-pin-cancellation-delay")) {
    						p.getBankPin().setCancellationDelay(Long.parseLong(token2));
    					} else if (token.equals("bank-pin-unlock-delay")) {
    						p.getBankPin().setUnlockDelay(Long.parseLong(token2));
    					} else if (token.equals("placeholders")) {
    						p.placeHolders = Boolean.parseBoolean(token2);
    					} else if (token.equals("teleportStone")) {
    						int[] pos = new int[] { Integer.parseInt(token3[0]), Integer.parseInt(token3[1]), Integer.parseInt(token3[2]) };
    						p.setTeleportStonePos(pos);
    					} else if (token.equals("show-drop-warning")) {
    						p.setDropWarning(Boolean.parseBoolean(token2));
    					} else if (token.equals("accept-aid")) {
    						p.acceptAid = Boolean.parseBoolean(token2);
    					} else if (token.equals("did-you-know")) {
    						p.didYouKnow = Boolean.parseBoolean(token2);
    					} else if (token.equals("raidPoints")) {
    						p.raidPoints = Integer.parseInt(token2);
    					} else if (token.equals("lootvalue")) {
    						p.lootValue = Integer.parseInt(token2);
    					} else if (token.equals("startPack")) {
    						p.startPack = Boolean.parseBoolean(token2);
    					} else if (token.equals("lastLoginDate")) {
    						p.lastLoginDate = Integer.parseInt(token2);
    					} else if (token.equals("summonId")) {
    						p.summonId = Integer.parseInt(token2);
    					} else if (token.equals("has-npc")) {
    						p.hasFollower = Boolean.parseBoolean(token2);
    					} else if (token.equals("setPin")) {
    						p.setPin = Boolean.parseBoolean(token2);
    					} else if (token.equals("hasBankpin")) {
    						p.hasBankpin = Boolean.parseBoolean(token2);
    					} else if (token.equals("rfd-gloves")) {
    						p.rfdGloves = Integer.parseInt(token2);
    					} else if (token.equals("wave-id")) {
    						p.waveId = Integer.parseInt(token2);
    					} else if (token.equals("wave-type")) {
    						p.waveType = Integer.parseInt(token2);
    					} else if (token.equals("wave-info")) {
    						for (int i = 0; i < p.waveInfo.length; i++)
    							p.waveInfo[i] = Integer.parseInt(token3[i]);
    					} else if (token.equals("counters")) {
    						for (int i = 0; i < p.counters.length; i++)
    							p.counters[i] = Integer.parseInt(token3[i]);
    					} else if (token.equals("max-cape")) {
    						for (int i = 0; i < p.maxCape.length; i++)
    							p.maxCape[i] = Boolean.parseBoolean(token3[i]);
    
    					} else if (token.equals("clue-container")) {
    						try {
    							if (token == null || !token.equals("null")) {
    								List<ClueScroll> list = new ArrayList<>();
    								for (int i = 0; i < token3.length; i++)
    									list.add(ClueScroll.valueOf(token3[i]));
    								p.clueContainer = new ClueScrollContainer(p, Iterables.toArray(list, ClueScroll.class));
    							}
    						} catch (IllegalArgumentException e) {
    							p.clueContainer = null;
    						}
    					} else if (token.equals("clue-reward")) {
    						if (!token2.equals("null"))
    							p.bossDifficulty = ClueDifficulty.valueOf(token2);
    					} else if (token.equals("easy-clue")) {
    						p.easyClue = Integer.parseInt(token2);
    					} else if (token.equals("medium-clue")) {
    						p.mediumClue = Integer.parseInt(token2);
    					} else if (token.equals("hard-clue")) {
    						p.hardClue = Integer.parseInt(token2);
    					} else if (token.equals("elite-clue")) {
    						p.eliteClue = Integer.parseInt(token2);
    					} else if (token.equals("master-clue")) {
    						p.masterClue = Integer.parseInt(token2);
    					} else if (token.equals("onClue")) {
    						p.onClueTask = Boolean.parseBoolean(token2);
    					} else if (token.equals("clueStage")) {
    						p.getClueTaskStage = Integer.parseInt(token2);
    					} else if (token.equals("selectedClue")) {
    						p.selectedClue = Integer.parseInt(token2);
    					} else if (token.equals("quickprayer")) {
    						for (int j = 0; j < token3.length; j++) {
    							p.getQuick().getNormal()[j] = Boolean.parseBoolean(token3[j]);
    					}
    						
    					} else if (token.equals("rigour")) {
    						p.isRigourUnlocked();
    					} else if (token.equals("augury")) {
    						p.isAuguryUnlocked();
    					} else if (token.equals("zulrah-best-time")) {
    						p.setBestZulrahTime(Long.parseLong(token2));
    					} else if (token.equals("toxic-staff")) {
    						p.setToxicStaffOfTheDeadCharge(Integer.parseInt(token2));
    					} else if (token.equals("toxic-pipe-ammo")) {
    						p.setToxicBlowpipeAmmo(Integer.parseInt(token2));
    					} else if (token.equals("toxic-pipe-amount")) {
    						p.setToxicBlowpipeAmmoAmount(Integer.parseInt(token2));
    					} else if (token.equals("toxic-pipe-charge")) {
    						p.setToxicBlowpipeCharge(Integer.parseInt(token2));
    					} else if (token.equals("serpentine-helm")) {
    						p.setSerpentineHelmCharge(Integer.parseInt(token2));
    					} else if (token.equals("trident-of-the-seas")) {
    						p.setTridentCharge(Integer.parseInt(token2));
    					} else if (token.equals("trident-of-the-swamp")) {
    						p.setToxicTridentCharge(Integer.parseInt(token2));
    					} else if (token.equals("arclight-charge")) {
    						p.setArcLightCharge(Integer.parseInt(token2));
    					} else if (token.equals("crystal-bow-shots")) {
    						p.crystalBowArrowCount = Integer.parseInt(token2);
    					} else if (token.equals("skull-timer")) {
    						p.skullTimer = Integer.parseInt(token2);
    					} else if (token.equals("magic-book")) {
    						p.playerMagicBook = Integer.parseInt(token2);
    					} else if (token.equals("slayer-recipe") || token.equals("slayer-helmet")) {
    						p.getSlayer().setHelmetCreatable(Boolean.parseBoolean(token2));
    					} else if (token.equals("slayer-imbued-helmet")) {
    						p.getSlayer().setHelmetImbuedCreatable(Boolean.parseBoolean(token2));
    					} else if (token.equals("bigger-boss-tasks")) {
    						p.getSlayer().setBiggerBossTasks(Boolean.parseBoolean(token2));
    					} else if (token.equals("cerberus-route")) {
    						p.getSlayer().setCerberusRoute(Boolean.parseBoolean(token2));
    					} else if (token.equals("slayer-tasks-completed")) {
    						p.slayerTasksCompleted = Integer.parseInt(token2);
    					} else if (token.equals("claimedReward")) {
    						p.claimedReward = Boolean.parseBoolean(token2);
    					} else if (p.getBarrows().getBrother(token).isPresent()) {
    						p.getBarrows().getBrother(token).get().setDefeated(Boolean.parseBoolean(token2));
    					} else if (token.equals("barrows-final-brother")) {
    						p.getBarrows().setLastBrother(token2);
    					} else if (token.equals("barrows-monsters-killcount")) {
    						p.getBarrows().setMonstersKilled(Integer.parseInt(token2));
    					} else if (token.equals("barrows-completed")) {
    						p.getBarrows().setCompleted(Boolean.valueOf(token2));
    					} else if (token.equals("special-amount")) {
    						p.specAmount = Double.parseDouble(token2);
    					} else if (token.equals("prayer-amount")) {
    						p.prayerPoint = Double.parseDouble(token2);
    					} else if (token.equals("dragonfire-shield-charge")) {
    						p.setDragonfireShieldCharge(Integer.parseInt(token2));
    					} else if (token.equals("pkp")) {
    						p.pkp = Integer.parseInt(token2);
    					} else if (token.equals("votePoints")) {
    						p.votePoints = Integer.parseInt(token2);
    					} else if (token.equals("donP")) {
    						p.donatorPoints = Integer.parseInt(token2);
    					} else if (token.equals("donA")) {
    						p.amDonated = Integer.parseInt(token2);
    					} else if (token.equals("xpLock")) {
    						p.expLock = Boolean.parseBoolean(token2);
    					} else if (line.startsWith("KC")) {
    						p.killcount = Integer.parseInt(token2);
    					} else if (line.startsWith("DC")) {
    						p.deathcount = Integer.parseInt(token2);
    					} else if (line.startsWith("last-incentive")) {
    						p.setLastIncentive(Long.parseLong(token2));
    					} else if (token.equals("teleblock-length")) {
    						p.teleBlockDelay = System.currentTimeMillis();
    						p.teleBlockLength = Integer.parseInt(token2);
    					} else if (token.equals("pc-points")) {
    						p.pcPoints = Integer.parseInt(token2);
    					} else if (token.equals("total-rogue-kills")) {
    						p.getBH().setTotalRogueKills(Integer.parseInt(token2));
    					} else if (token.equals("total-hunter-kills")) {
    						p.getBH().setTotalHunterKills(Integer.parseInt(token2));
    					} else if (token.equals("target-time-delay")) {
    						p.getBH().setDelayedTargetTicks(Integer.parseInt(token2));
    					} else if (token.equals("bh-penalties")) {
    						p.getBH().setWarnings(Integer.parseInt(token2));
    					} else if (token.equals("bh-bounties")) {
    						p.getBH().setBounties(Integer.parseInt(token2));
    					} else if (token.equals("statistics-visible")) {
    						p.getBH().setStatisticsVisible(Boolean.parseBoolean(token2));
    					} else if (token.equals("spell-accessible")) {
    						p.getBH().setSpellAccessible(Boolean.parseBoolean(token2));
    					} else if (token.equals("killStreak")) {
    						p.killStreak = Integer.parseInt(token2);
    					} else if (token.equals("achievement-points")) {
    						p.getAchievements().setPoints(Integer.parseInt(token2));
    					} else if (token.equals("achievement-items")) {
    						for (int i = 0; i < token3.length; i++)
    							p.getAchievements().setBoughtItem(i, Integer.parseInt(token3[i]));
    						// Varrock claimed
    					} else if (token.equals("VarrockClaimedDiaries")) {
    						String[] claimedRaw = token2.split(",");
    						for (String claim : claimedRaw) {
    							EntryDifficulty.forString(claim).ifPresent(diff -> p.getDiaryManager().getVarrockDiary().claim(diff));
    						}
    					} else if (token.equals("ArdougneClaimedDiaries")) {
    						String[] claimedRaw = token2.split(",");
    						for (String claim : claimedRaw) {
    							EntryDifficulty.forString(claim).ifPresent(diff -> p.getDiaryManager().getArdougneDiary().claim(diff));
    						}
    					} else if (token.equals("DesertClaimedDiaries")) {
    						String[] claimedRaw = token2.split(",");
    						for (String claim : claimedRaw) {
    							EntryDifficulty.forString(claim).ifPresent(diff -> p.getDiaryManager().getDesertDiary().claim(diff));
    						}
    					} else if (token.equals("FaladorClaimedDiaries")) {
    						String[] claimedRaw = token2.split(",");
    						for (String claim : claimedRaw) {
    							EntryDifficulty.forString(claim).ifPresent(diff -> p.getDiaryManager().getFaladorDiary().claim(diff));
    						}
    					} else if (token.equals("FremennikClaimedDiaries")) {
    						String[] claimedRaw = token2.split(",");
    						for (String claim : claimedRaw) {
    							EntryDifficulty.forString(claim).ifPresent(diff -> p.getDiaryManager().getFremennikDiary().claim(diff));
    						}
    					} else if (token.equals("KandarinClaimedDiaries")) {
    						String[] claimedRaw = token2.split(",");
    						for (String claim : claimedRaw) {
    							EntryDifficulty.forString(claim).ifPresent(diff -> p.getDiaryManager().getKandarinDiary().claim(diff));
    						}
    					} else if (token.equals("KaramjaClaimedDiaries")) {
    						String[] claimedRaw = token2.split(",");
    						for (String claim : claimedRaw) {
    							EntryDifficulty.forString(claim).ifPresent(diff -> p.getDiaryManager().getKaramjaDiary().claim(diff));
    						}
    					} else if (token.equals("LumbridgeClaimedDiaries")) {
    						String[] claimedRaw = token2.split(",");
    						for (String claim : claimedRaw) {
    							EntryDifficulty.forString(claim).ifPresent(diff -> p.getDiaryManager().getLumbridgeDraynorDiary().claim(diff));
    						}
    					} else if (token.equals("MorytaniaClaimedDiaries")) {
    						String[] claimedRaw = token2.split(",");
    						for (String claim : claimedRaw) {
    							EntryDifficulty.forString(claim).ifPresent(diff -> p.getDiaryManager().getMorytaniaDiary().claim(diff));
    						}
    					} else if (token.equals("WesternClaimedDiaries")) {
    						String[] claimedRaw = token2.split(",");
    						for (String claim : claimedRaw) {
    							EntryDifficulty.forString(claim).ifPresent(diff -> p.getDiaryManager().getWesternDiary().claim(diff));
    						}
    					} else if (token.equals("WildernessClaimedDiaries")) {
    						String[] claimedRaw = token2.split(",");
    						for (String claim : claimedRaw) {
    							EntryDifficulty.forString(claim).ifPresent(diff -> p.getDiaryManager().getWildernessDiary().claim(diff));
    						}
    					} else if (token.equals("diaries")) {
    						try {
    							String raw = token2;
    							String[] components = raw.split(",");
    							for (String comp : components) {
    								if (comp.isEmpty()) {
    									continue;
    								}
    								// Varrock
    								Optional<VarrockDiaryEntry> varrock = VarrockDiaryEntry.fromName(comp);
    								if (varrock.isPresent()) {
    									p.getDiaryManager().getVarrockDiary().nonNotifyComplete(varrock.get());
    								}
    								// Ardougne
    								Optional<ArdougneDiaryEntry> ardougne = ArdougneDiaryEntry.fromName(comp);
    								if (ardougne.isPresent()) {
    									p.getDiaryManager().getArdougneDiary().nonNotifyComplete(ardougne.get());
    								}
    								// Desert
    								Optional<DesertDiaryEntry> desert = DesertDiaryEntry.fromName(comp);
    								if (desert.isPresent()) {
    									p.getDiaryManager().getDesertDiary().nonNotifyComplete(desert.get());
    								}
    								// Falador
    								Optional<FaladorDiaryEntry> falador = FaladorDiaryEntry.fromName(comp);
    								if (falador.isPresent()) {
    									p.getDiaryManager().getFaladorDiary().nonNotifyComplete(falador.get());
    								}
    								// Fremennik
    								Optional<FremennikDiaryEntry> fremennik = FremennikDiaryEntry.fromName(comp);
    								if (fremennik.isPresent()) {
    									p.getDiaryManager().getFremennikDiary().nonNotifyComplete(fremennik.get());
    								}
    								// Kandarin
    								Optional<KandarinDiaryEntry> kandarin = KandarinDiaryEntry.fromName(comp);
    								if (kandarin.isPresent()) {
    									p.getDiaryManager().getKandarinDiary().nonNotifyComplete(kandarin.get());
    								}
    								// Karamja
    								Optional<KaramjaDiaryEntry> karamja = KaramjaDiaryEntry.fromName(comp);
    								if (karamja.isPresent()) {
    									p.getDiaryManager().getKaramjaDiary().nonNotifyComplete(karamja.get());
    								}
    								// Lumbridge
    								Optional<LumbridgeDraynorDiaryEntry> lumbridge = LumbridgeDraynorDiaryEntry.fromName(comp);
    								if (lumbridge.isPresent()) {
    									p.getDiaryManager().getLumbridgeDraynorDiary().nonNotifyComplete(lumbridge.get());
    								}
    								// Morytania
    								Optional<MorytaniaDiaryEntry> morytania = MorytaniaDiaryEntry.fromName(comp);
    								if (morytania.isPresent()) {
    									p.getDiaryManager().getMorytaniaDiary().nonNotifyComplete(morytania.get());
    								}
    								// Western
    								Optional<WesternDiaryEntry> western = WesternDiaryEntry.fromName(comp);
    								if (western.isPresent()) {
    									p.getDiaryManager().getWesternDiary().nonNotifyComplete(western.get());
    								}
    								// Wilderness
    								Optional<WildernessDiaryEntry> wilderness = WildernessDiaryEntry.fromName(comp);
    								if (wilderness.isPresent()) {
    									p.getDiaryManager().getWildernessDiary().nonNotifyComplete(wilderness.get());
    								}
    							}
    						} catch (Exception e) {
    							e.printStackTrace();
    						}
    					} else if (token.equals("partialDiaries")) {
    						String raw = token2;
    						String[] components = raw.split(",");
    						try {
    							for (String comp : components) {
    								if (comp.isEmpty()) {
    									continue;
    								}
    								String[] part = comp.split(":");
    								int stage = Integer.parseInt(part[1]);
    								// Varrock
    								Optional<VarrockDiaryEntry> varrock = VarrockDiaryEntry.fromName(part[0]);
    								if (varrock.isPresent()) {
    									p.getDiaryManager().getVarrockDiary().setAchievementStage(varrock.get(), stage, false);
    								}
    								// Ardougne
    								Optional<ArdougneDiaryEntry> ardougne = ArdougneDiaryEntry.fromName(part[0]);
    								if (ardougne.isPresent()) {
    									p.getDiaryManager().getArdougneDiary().setAchievementStage(ardougne.get(), stage, false);
    								}
    								// Desert
    								Optional<DesertDiaryEntry> desert = DesertDiaryEntry.fromName(part[0]);
    								if (desert.isPresent()) {
    									p.getDiaryManager().getDesertDiary().setAchievementStage(desert.get(), stage, false);
    								}
    								// Falador
    								Optional<FaladorDiaryEntry> falador = FaladorDiaryEntry.fromName(part[0]);
    								if (falador.isPresent()) {
    									p.getDiaryManager().getFaladorDiary().setAchievementStage(falador.get(), stage, false);
    								}
    								// Fremennik
    								Optional<FremennikDiaryEntry> fremennik = FremennikDiaryEntry.fromName(part[0]);
    								if (fremennik.isPresent()) {
    									p.getDiaryManager().getFremennikDiary().setAchievementStage(fremennik.get(), stage, false);
    								}
    								// Kandarin
    								Optional<KandarinDiaryEntry> kandarin = KandarinDiaryEntry.fromName(part[0]);
    								if (kandarin.isPresent()) {
    									p.getDiaryManager().getKandarinDiary().setAchievementStage(kandarin.get(), stage, false);
    								}
    								// Karamja
    								Optional<KaramjaDiaryEntry> karamja = KaramjaDiaryEntry.fromName(part[0]);
    								if (karamja.isPresent()) {
    									p.getDiaryManager().getKaramjaDiary().setAchievementStage(karamja.get(), stage, false);
    								}
    								// Lumbridge
    								Optional<LumbridgeDraynorDiaryEntry> lumbridge = LumbridgeDraynorDiaryEntry.fromName(part[0]);
    								if (lumbridge.isPresent()) {
    									p.getDiaryManager().getLumbridgeDraynorDiary().setAchievementStage(lumbridge.get(), stage, false);
    								}
    								// Morytania
    								Optional<MorytaniaDiaryEntry> morytania = MorytaniaDiaryEntry.fromName(part[0]);
    								if (morytania.isPresent()) {
    									p.getDiaryManager().getMorytaniaDiary().setAchievementStage(morytania.get(), stage, false);
    								}
    								// Western
    								Optional<WesternDiaryEntry> western = WesternDiaryEntry.fromName(part[0]);
    								if (western.isPresent()) {
    									p.getDiaryManager().getWesternDiary().setAchievementStage(western.get(), stage, false);
    								}
    								// Wilderness
    								Optional<WildernessDiaryEntry> wilderness = WildernessDiaryEntry.fromName(part[0]);
    								if (wilderness.isPresent()) {
    									p.getDiaryManager().getWildernessDiary().setAchievementStage(wilderness.get(), stage, false);
    								}
    							}
    						} catch (Exception e) {
    							e.printStackTrace();
    						}
    					} else if (token.equals("bonus-end")) {
    						p.bonusXpTime = Long.parseLong(token2);
    					} else if (token.equals("jail-end")) {
    						p.jailEnd = Long.parseLong(token2);
    					} else if (token.equals("mute-end")) {
    						p.muteEnd = Long.parseLong(token2);
    					} else if (token.equals("last-yell")) {
    						p.lastYell = Long.parseLong(token2);
    					} else if (token.equals("marketmute-end")) {
    						p.marketMuteEnd = Long.parseLong(token2);
    					} else if (token.equals("splitChat")) {
    						p.splitChat = Boolean.parseBoolean(token2);
    					} else if (token.equals("slayer-task")) {
    						Optional<Task> task = SlayerMaster.get(token2);
    						p.getSlayer().setTask(task);
    					} else if (token.equals("slayer-master")) {
    						p.getSlayer().setMaster(Integer.parseInt(token2));
    					} else if (token.equals("slayerPoints")) {
    						p.getSlayer().setPoints(Integer.parseInt(token2));
    					} else if (token.equals("slayer-task-amount")) {
    						p.getSlayer().setTaskAmount(Integer.parseInt(token2));
    					} else if (token.equals("consecutive-tasks")) {
    						p.getSlayer().setConsecutiveTasks(Integer.parseInt(token2));
    					} else if (token.equals("mage-arena-points")) {
    						p.setArenaPoints(Integer.parseInt(token2));
    					} else if (token.equals("autoRet")) {
    						p.autoRet = Integer.parseInt(token2);
    					} else if (token.equals("flagged")) {
    						p.accountFlagged = Boolean.parseBoolean(token2);
    					} else if (token.equals("keepTitle")) {
    						p.keepTitle = Boolean.parseBoolean(token2);
    					} else if (token.equals("killTitle")) {
    						p.killTitle = Boolean.parseBoolean(token2);
    					} else if (token.equals("removed-slayer-tasks")) {
    						if (token3.length < 4) {
    							String[] backing = Misc.nullToEmpty(4);
    							int index = 0;
    							for (; index < token3.length; index++) {
    								backing[index] = token3[index];
    							}
    							p.getSlayer().setRemoved(backing);
    						} else if (token3.length == 4) {
    							p.getSlayer().setRemoved(token3);
    						}
    					} else if (token.startsWith("removedTask")) {
    						int value = Integer.parseInt(token2);
    						if (value > -1) {
    							p.getSlayer().setPoints(p.getSlayer().getPoints() + 100);
    						}
    					} else if (token.equals("wave")) {
    						p.waveId = Integer.parseInt(token2);
    					} else if (token.equals("void")) {
    						for (int j = 0; j < token3.length; j++) {
    							p.voidStatus[j] = Integer.parseInt(token3[j]);
    						}
    					} else if (token.equals("pouch-rune")) {
    						for (int j = 0; j < token3.length; j++) {
    							p.setRuneEssencePouch(j, Integer.parseInt(token3[j]));
    						}
    					} else if (token.equals("pouch-pure")) {
    						for (int j = 0; j < token3.length; j++) {
    							p.setPureEssencePouch(j, Integer.parseInt(token3[j]));
    						}
    					} else if (token.equals("gwkc")) {
    						p.killCount = Integer.parseInt(token2);
    					} else if (token.equals("fightMode")) {
    						p.fightMode = Integer.parseInt(token2);
    					} else if (token.equals("privatechat")) {
    						p.setPrivateChat(Integer.parseInt(token2));
    					} else if (token.equals("farming-poison-berry")) {
    						p.getFarming().setLastBerryFarm(Long.parseLong(token2));
    					} else if (token.equals("farming-patch-0")) {
    						p.setFarmingState(0, Integer.parseInt(token3[0]));
    						p.setFarmingSeedId(0, Integer.parseInt(token3[1]));
    						p.setFarmingTime(0, Integer.parseInt(token3[2]));
    						p.setFarmingHarvest(0, Integer.parseInt(token3[3]));
    					} else if (token.equals("halloweenOrderGiven")) {
    						for (int i = 0; i < p.halloweenRiddleGiven.length; i++)
    							p.halloweenRiddleGiven[i] = Integer.parseInt(token3[i]);
    					} else if (token.equals("halloweenOrderChosen")) {
    						for (int i = 0; i < p.halloweenRiddleChosen.length; i++)
    							p.halloweenRiddleChosen[i] = Integer.parseInt(token3[i]);
    					} else if (token.equals("halloweenOrderNumber")) {
    						p.halloweenOrderNumber = Integer.parseInt(token2);
    					} else if (token.equals("inDistrict")) {
    						p.pkDistrict = Boolean.parseBoolean(token2);
    					} else if (token.equals("safeBoxSlots")) {
    						p.safeBoxSlots = Integer.parseInt(token2);
    					} else if (token.equals("district-levels")) {
    						for (int i = 0; i < p.playerStats.length; i++)
    							p.playerStats[i] = Integer.parseInt(token3[i]);
    					} else if (token.equals("lost-items")) {
    						if (token3.length > 1) {
    							for (int i = 0; i < token3.length; i += 2) {
    								int itemId = Integer.parseInt(token3[i]);
    								int itemAmount = Integer.parseInt(token3[i + 1]);
    								p.getZulrahLostItems().add(new GameItem(itemId, itemAmount));
    							}
    						}
    					} else if (token.equals("lost-items-cerberus")) {
    						if (token3.length > 1) {
    							for (int i = 0; i < token3.length; i += 2) {
    								int itemId = Integer.parseInt(token3[i]);
    								int itemAmount = Integer.parseInt(token3[i + 1]);
    								p.getCerberusLostItems().add(new GameItem(itemId, itemAmount));
    							}
    						}
    					} else if (token.equals("lost-items-skotizo")) {
    						System.out.println("sending save request...");
    												if (token3.length > 1) {
    													for (int i = 0; i < token3.length; i += 2) {
    														int itemId = Integer.parseInt(token3[i]);
    														int itemAmount = Integer.parseInt(token3[i + 1]);
    														p.getSkotizoLostItems().add(new GameItem(itemId, itemAmount));
    						System.out.println("Found.." + itemId + ", " + itemAmount + ".");
    													}
    												}					
    					} else if (token.equals("lost-items-pvp")) {
    						if (token3.length > 1) {
    							for (int i = 0; i < token3.length; i += 2) {
    								int itemId = Integer.parseInt(token3[i]);
    								int itemAmount = Integer.parseInt(token3[i + 1]);
    								p.getStatusHandlerLostItems().add(new GameItem(itemId, itemAmount));
    							}
    						}
    					} else if (token.equals("lost-items-kraken")) {
    						if (token3.length > 1) {
    							for (int i = 0; i < token3.length; i += 2) {
    								int itemId = Integer.parseInt(token3[i]);
    								int itemAmount = Integer.parseInt(token3[i + 1]);
    								p.getKrakenLostItems().add(new GameItem(itemId, itemAmount));
    							}
    						}
    					}
    					break;			
    				case 3:
    					if (token.equals("character-equip")) {
    						p.playerEquipment[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
    						p.playerEquipmentN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
    					}
    					break;
    				case 4:
    					if (token.equals("character-look")) {
    						p.playerAppearance[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
    					}
    					break;
    				case 5:
    					if (token.equals("character-skill")) {
    						p.playerLevel[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
    						p.playerXP[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
    					}
    					break;
    				case 20:
    
    					int id_2 = 0;
    
    					boolean owned = false;
    
    					try {
    						id_2 = Integer.parseInt(token);
    						owned = Boolean.parseBoolean(token2);
    					} catch (NumberFormatException nfe) {
    						nfe.printStackTrace();
    					}
    					Pets pet = PetHandler.get(id_2);
    					if (pet != null) {
    						PetHandler.setOwnedPet(id_2, owned);
    					}
    					break;
    				case 6:
    					if (token.equals("character-item")) {
    						p.playerItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
    						p.playerItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
    					}
    					break;
    				case 46:
    					if (token.equals("bag-item")) {
    						int id = Integer.parseInt(token3[1]);
    						int amt = Integer.parseInt(token3[2]);
    						p.getLootingBag().items.add(new LootingBagItem(id, amt));
    					}
    					break;
    				case 52:
    					if (token.equals("item")) {
    						int itemId = Integer.parseInt(token3[0]);
    						int value = Integer.parseInt(token3[1]);
    						String date = token3[2];
    						p.getRechargeItems().loadItem(itemId, value, date);
    					}
    					break;
    				case 55:
    					if (token.equals("pouch-item")) {
    						int id = Integer.parseInt(token3[1]);
    						int amt = Integer.parseInt(token3[2]);
    						p.getRunePouch().items.add(new LootingBagItem(id, amt));
    					}
    					break;
    				case 56:
    					if (token.equals("sack-item")) {
    						int id = Integer.parseInt(token3[1]);
    						int amt = Integer.parseInt(token3[2]);
    						p.getHerbSack().items.add(new LootingBagItem(id, amt));
    					}
    					break;
    				case 57:
    					if (token.equals("bag-item")) {
    						int id = Integer.parseInt(token3[1]);
    						int amt = Integer.parseInt(token3[2]);
    						p.getGemBag().items.add(new LootingBagItem(id, amt));
    					}
    					break;
    				case 58:
    					if (token.equals("safebox-item")) {
    						int id = Integer.parseInt(token3[1]);
    						int amt = Integer.parseInt(token3[2]);
    						p.getSafeBox().items.add(new LootingBagItem(id, amt));
    					}
    					break;
    				case 59:
    					if (token.equals("coal-bag-item")) {
    						int id = Integer.parseInt(token3[1]);
    						int amt = Integer.parseInt(token3[2]);
    						p.getCoalBag().items.add(new LootingBagItem(id, amt));
    					}
    					break;
    				case 7:
    					if (token.equals("character-bank")) {
    						p.bankItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
    						p.bankItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
    						p.getBank().getBankTab()[0].add(new BankItem(Integer.parseInt(token3[1]), Integer.parseInt(token3[2])));
    					} else if (token.equals("bank-tab")) {
    						int tabId = Integer.parseInt(token3[0]);
    						int itemId = Integer.parseInt(token3[1]);
    						int itemAmount = Integer.parseInt(token3[2]);
    						p.getBank().getBankTab()[tabId].add(new BankItem(itemId, itemAmount));
    					}
    					break;
    				case 8:
    					if (token.equals("character-friend")) {
    						p.getFriends().add(Long.parseLong(token3[0]));
    					}
    					break;
    
    				case 9:
    					if (token3.length < 2)
    						continue;
    					p.getAchievements().read(token, 0, Integer.parseInt(token3[0]), Boolean.parseBoolean(token3[1]));
    					break;
    				case 10:
    					if (token3.length < 2)
    						continue;
    					p.getAchievements().read(token, 1, Integer.parseInt(token3[0]), Boolean.parseBoolean(token3[1]));
    					break;
    				case 11:
    					if (token3.length < 2)
    						continue;
    					p.getAchievements().read(token, 2, Integer.parseInt(token3[0]), Boolean.parseBoolean(token3[1]));
    					break;
    				case 12:
    					if (token.equals("character-ignore")) {
    						p.getIgnores().add(Long.parseLong(token3[0]));
    					}
    					break;
    
    				case 13:
    					if (token.equals("stage")) {
    						p.getHolidayStages().setStage(token3[0], Integer.parseInt(token3[1]));
    					}
    					break;
    
    				case 14:
    					if (token.equals("item")) {
    						p.degradableItem[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
    					} else if (token.equals("claim-state")) {
    						for (int i = 0; i < token3.length; i++) {
    							p.claimDegradableItem[i] = Boolean.parseBoolean(token3[i]);
    						}
    					}
    					break;
    
    				case 15:
    					if (token.startsWith("Names") && token3.length > 0) {
    						for (int i = 0; i < token3.length; i++) {
    							if (token3[i].equalsIgnoreCase("null")) {
    								token3[i] = "New slot";
    							}
    							Preset preset = p.getPresets().getPresets().get(i);
    							preset.setAlias(token3[i]);
    						}
    					} else if (token.startsWith("Inventory") || token.startsWith("Equipment")) {
    						if (token3.length > 2) {
    							int presetId = Integer.parseInt(token.split("#")[1]);
    							for (int i = 0; i < token3.length; i += 3) {
    								int slot = Integer.parseInt(token3[i]);
    								int itemId = Integer.parseInt(token3[i + 1]);
    								int amount = Integer.parseInt(token3[i + 2]);
    								if (token.startsWith("Inventory")) {
    									p.getPresets().getPresets().get(presetId).getInventory().getItems().put(slot, new GameItem(itemId, amount));
    								} else {
    									p.getPresets().getPresets().get(presetId).getEquipment().getItems().put(slot, new GameItem(itemId, amount));
    								}
    							}
    						}
    					}
    					break;
    
    				case 16:
    					try {
    						Killstreak.Type type = Killstreak.Type.get(token);
    						int value = Integer.parseInt(token2);
    						p.getKillstreak().getKillstreaks().put(type, value);
    					} catch (NullPointerException | NumberFormatException e) {
    						e.printStackTrace();
    					}
    					break;
    
    				case 17:
    					try {
    						Title title = Title.valueOf(token2);
    						if (title != null) {
    							p.getTitles().getPurchasedList().add(title);
    						}
    					} catch (Exception e) {
    						if (Config.SERVER_STATE == ServerState.PRIVATE) {
    							e.printStackTrace();
    						}
    					}
    					break;
    
    				case 18:
    					if (token != null && token.length() > 0) {
    						p.getNpcDeathTracker().getTracker().put(token, Integer.parseInt(token2));
    					}
    					break;
    				}
    			} else {
    				if (line.equals("[ACCOUNT]")) {
    					ReadMode = 1;
    				} else if (line.equals("[CHARACTER]")) {
    					ReadMode = 2;
    				} else if (line.equals("[EQUIPMENT]")) {
    					ReadMode = 3;
    				} else if (line.equals("[LOOK]")) {
    					ReadMode = 4;
    				} else if (line.equals("[SKILLS]")) {
    					ReadMode = 5;
    				} else if (line.equals("[ITEMS]")) {
    					ReadMode = 6;
    				} else if (line.equals("[NPC-PETS]")) {
    					ReadMode = 20;
    				} else if (line.equals("[LOOTBAG]")) {
    					ReadMode = 46;
    				} else if (line.equals("[RECHARGEITEMS]")) {
    					ReadMode = 52;
    				} else if (line.equals("[RUNEPOUCH]")) {
    					ReadMode = 55;
    				} else if (line.equals("[HERBSACK]")) {
    					ReadMode = 56;
    				} else if (line.equals("[GEMBAG]")) {
    					ReadMode = 57;
    				} else if (line.equals("[SAFEBOX]")) {
    					ReadMode = 58;
    				} else if(line.equals("[COALBAG]")) {
    					ReadMode = 59;
    				} else if (line.equals("[BANK]")) {
    					ReadMode = 7;
    				} else if (line.equals("[FRIENDS]")) {
    					ReadMode = 8;
    				} else if (line.equals("[ACHIEVEMENTS-TIER-1]")) {
    					ReadMode = 9;
    				} else if (line.equals("[ACHIEVEMENTS-TIER-2]")) {
    					ReadMode = 10;
    				} else if (line.equals("[ACHIEVEMENTS-TIER-3]")) {
    					ReadMode = 11;
    				} else if (line.equals("[IGNORES]")) {
    					ReadMode = 12;
    				} else if (line.equals("[HOLIDAY-EVENTS]")) {
    					ReadMode = 13;
    				} else if (line.equals("[DEGRADEABLES]")) {
    					ReadMode = 14;
    				} else if (line.equals("[PRESETS]")) {
    					ReadMode = 15;
    				} else if (line.equals("[KILLSTREAKS]")) {
    					ReadMode = 16;
    				} else if (line.equals("[TITLES]")) {
    					ReadMode = 17;
    				} else if (line.equals("[NPC-TRACKER]")) {
    					ReadMode = 18;
    				} else if (line.equals("[EOF]")) {
    					try {
    						characterfile.close();
    					} catch (IOException ioexception) {
    						if (Config.SERVER_STATE == ServerState.PRIVATE) {
    							ioexception.printStackTrace();
    						}
    					}
    					return 1;
    				}
    			}
    			try {
    				line = characterfile.readLine();
    			} catch (IOException ioexception1) {
    				EndOfFile = true;
    				if (Config.SERVER_STATE == ServerState.PRIVATE) {
    					ioexception1.printStackTrace();
    				}
    			}
    		}
    		try {
    			characterfile.close();
    		} catch (IOException ioexception) {
    			if (Config.SERVER_STATE == ServerState.PRIVATE) {
    				ioexception.printStackTrace();
    			}
    		}
    		return 13;
    	}
    
    	public static void save(Player p) {
    		saveGame(p);
    	}
    
    	public static boolean saveGame(Player p) {
    		return saveGame(p, true);
    	}
    
    	/**
    	 * Saving
    	 **/
    	@SuppressWarnings("resource")
    	public static boolean saveGame(Player p, boolean hashPass) {
    		if (!p.saveFile || p.newPlayer || !p.saveCharacter) {
    			System.out.println("first");
    			return false;
    		}
    		if (p.playerName == null || PlayerHandler.players[p.getIndex()] == null) {
    			System.out.println("second - " + p.getIndex() + " - " + p.playerName);
    			return false;
    		}
    		p.playerName = p.playerName2;
    		int tbTime = (int) (p.teleBlockDelay - System.currentTimeMillis() + p.teleBlockLength);
    		if (tbTime > 300000 || tbTime < 0) {
    			tbTime = 0;
    		}
    
    		BufferedWriter characterfile = null;
    		try {
    			characterfile = new BufferedWriter(new FileWriter("./Data/characters/" + p.playerName + ".txt"));
    
    			/* ACCOUNT */
    			characterfile.write("[ACCOUNT]", 0, 9);
    			characterfile.newLine();
    			characterfile.write("character-username = ", 0, 21);
    			characterfile.write(p.playerName, 0, p.playerName.length());
    			characterfile.newLine();
    			characterfile.write("character-password = ", 0, 21);
    			String passToWrite = hashPass ? Misc.md5Hash(p.playerPass) : p.playerPass;
    			characterfile.write(passToWrite, 0, passToWrite.length());
    			characterfile.newLine();
    			characterfile.newLine();
    
    			/* CHARACTER */
    			characterfile.write("[CHARACTER]", 0, 11);
    			characterfile.newLine();
    			characterfile.write("character-rights = " + p.getRights().getPrimary().getValue());
    			characterfile.newLine();
    			StringBuilder sb = new StringBuilder();
    			p.getRights().getSet().stream().forEach(r -> sb.append(r.getValue() + "\t"));
    			characterfile.write("character-rights-secondary = " + sb.substring(0, sb.length() - 1));
    			characterfile.newLine();
    			characterfile.write("exp-rate = " + p.getExperienceRate());
    			characterfile.newLine();
    			if (p.getMode() != null) {
    				characterfile.write("mode = " + p.getMode().getType().name());
    				characterfile.newLine();
    			}
    			if (p.getTutorial().getStage() != null) {
    				characterfile.write("tutorial-stage = " + p.getTutorial().getStage().name());
    				characterfile.newLine();
    			}
    			characterfile.write("brightness = " + p.getAttribute("brightness", 3));
    			characterfile.newLine();
    			characterfile.write("character-height = ", 0, 19);
    			characterfile.write(Integer.toString(p.heightLevel), 0, Integer.toString(p.heightLevel).length());
    			characterfile.newLine();
    			characterfile.write("character-hp = " + p.getHealth().getAmount());
    			characterfile.newLine();
    			characterfile.write("play-time = ", 0, 12);
    			characterfile.write(Integer.toString(p.playTime), 0, Integer.toString(p.playTime).length());
    			characterfile.newLine();
    			characterfile.write("last-clan = ", 0, 12);
    			characterfile.write(p.getLastClanChat(), 0, p.getLastClanChat().length());
    			characterfile.newLine();
    			characterfile.write("character-specRestore = ", 0, 24);
    			characterfile.write(Integer.toString(p.specRestore), 0, Integer.toString(p.specRestore).length());
    			characterfile.newLine();
    			characterfile.write("character-posx = ", 0, 17);
    			characterfile.write(Integer.toString(p.absX), 0, Integer.toString(p.absX).length());
    			characterfile.newLine();
    			characterfile.write("character-posy = ", 0, 17);
    			characterfile.write(Integer.toString(p.absY), 0, Integer.toString(p.absY).length());
    			characterfile.newLine();
    			characterfile.write("bank-pin = " + p.getBankPin().getPin());
    			characterfile.newLine();
    			characterfile.write("bank-pin-cancellation = " + p.getBankPin().isAppendingCancellation());
    			characterfile.newLine();
    			characterfile.write("bank-pin-unlock-delay = " + p.getBankPin().getUnlockDelay());
    			characterfile.newLine();
    			characterfile.write("placeholders = " + p.placeHolders);
    			characterfile.newLine();
    			characterfile.newLine();
    			characterfile.write("teleportStone = " + p.getTeleportStonePos()[0] + "\t" + p.getTeleportStonePos()[1] + "\t" + p.getTeleportStonePos()[2]);
    			characterfile.newLine();
    			characterfile.write("bank-pin-cancellation-delay = " + p.getBankPin().getCancellationDelay());
    			characterfile.newLine();
    			characterfile.write("show-drop-warning = " + p.showDropWarning());
    			characterfile.newLine();
    			characterfile.write("accept-aid = " + p.acceptAid);
    			characterfile.newLine();
    			characterfile.write("did-you-know = " + p.didYouKnow);
    			characterfile.newLine();
    			characterfile.write("lootvalue = " + p.lootValue);
    			characterfile.newLine();
    			characterfile.write("raidPoints = " + p.raidPoints);
    			characterfile.newLine();
    			characterfile.write("experience-counter = " + p.getExperienceCounter());
    			characterfile.newLine();
    			characterfile.write("prestigeLevel = " + p.prestigeLevel);
    			characterfile.newLine();
    			characterfile.write("skillPoints = " + p.skillPoints);
    			characterfile.newLine();
    			characterfile.write("assaultPoints = " + p.assaultPoints);
    			characterfile.newLine();
    			characterfile.write("hasBoughtCannon = " + p.hasBoughtCannon);
    			characterfile.newLine();
    			characterfile.write("character-title-updated = " + p.getTitles().getCurrentTitle());
    			characterfile.newLine();
    			for (int i = 0; i < p.lastConnectedFrom.size(); i++) {
    				characterfile.write("connected-from = ", 0, 17);
    				characterfile.write(p.lastConnectedFrom.get(i), 0, p.lastConnectedFrom.get(i).length());
    				characterfile.newLine();
    			}
    			characterfile.write("mac-address = " + p.getMacAddress());
    			characterfile.newLine();
    			for (int i = 0; i < p.getPlayerKills().getList().size(); i++) {
    				characterfile.write("killed-players = " + p.getPlayerKills().getList().get(i));
    				characterfile.newLine();
    			}
    			String[] removed = p.getSlayer().getRemoved();
    			characterfile.write("removed-slayer-tasks = ");
    			for (int index = 0; index < removed.length; index++) {
    				characterfile.write(removed[index]);
    				if (index < removed.length - 1) {
    					characterfile.write("\t");
    				}
    			}
    			characterfile.newLine();
    			characterfile.write("experienceMultiplier = " + p.doubleXpTime);
    			characterfile.newLine();
    			characterfile.write("last-incentive = " + p.getLastIncentive());
    			characterfile.newLine();
    			characterfile.write("rfd-round = ", 0, 12);
    			characterfile.write(Integer.toString(p.rfdRound), 0, Integer.toString(p.rfdRound).length());
    			characterfile.newLine();
    			characterfile.write("run-energy = " + p.getRunEnergy());
    			characterfile.newLine();
    			characterfile.write("lastLoginDate = ", 0, 16);
    			characterfile.write(Integer.toString(p.lastLoginDate), 0, Integer.toString(p.lastLoginDate).length());
    			characterfile.newLine();
    			characterfile.write("has-npc = ", 0, 10);
    			characterfile.write(Boolean.toString(p.hasFollower), 0, Boolean.toString(p.hasFollower).length());
    			characterfile.newLine();
    			characterfile.write("summonId = ", 0, 11);
    			characterfile.write(Integer.toString(p.summonId), 0, Integer.toString(p.summonId).length());
    			characterfile.newLine();
    			characterfile.write("startPack = ", 0, 12);
    			characterfile.write(Boolean.toString(p.startPack), 0, Boolean.toString(p.startPack).length());
    			characterfile.newLine();
    			characterfile.write("setPin = ", 0, 9);
    			characterfile.write(Boolean.toString(p.setPin), 0, Boolean.toString(p.setPin).length());
    			characterfile.newLine();
    			characterfile.write("slayer-helmet = " + p.getSlayer().isHelmetCreatable());
    			characterfile.newLine();
    			characterfile.write("slayer-imbued-helmet = " + p.getSlayer().isHelmetImbuedCreatable());
    			characterfile.newLine();
    			characterfile.write("bigger-boss-tasks = " + p.getSlayer().isBiggerBossTasks());
    			characterfile.newLine();
    			characterfile.write("cerberus-route = " + p.getSlayer().isCerberusRoute());
    			characterfile.newLine();
    			characterfile.write("slayer-tasks-completed = " + p.slayerTasksCompleted);
    			characterfile.newLine();
    			characterfile.write("claimedReward = ", 0, 16);
    			characterfile.write(Boolean.toString(p.claimedReward), 0, Boolean.toString(p.claimedReward).length());
    			characterfile.newLine();
    			characterfile.write("dragonfire-shield-charge = " + p.getDragonfireShieldCharge());
    			characterfile.newLine();
    			characterfile.write("rfd-gloves = " + p.rfdGloves);
    			characterfile.newLine();
    			characterfile.write("wave-id = " + p.waveId);
    			characterfile.newLine();
    			characterfile.write("wave-type = " + p.waveType);
    			characterfile.newLine();
    			characterfile.write("wave-info = " + p.waveInfo[0] + "\t" + p.waveInfo[1] + "\t" + p.waveInfo[2]);
    			characterfile.newLine();
    			characterfile.write(
    					"master-clue-reqs = " + p.masterClueRequirement[0] + "\t" + p.masterClueRequirement[1] + "\t" + p.masterClueRequirement[2] + "\t" + p.masterClueRequirement[3]);
    			characterfile.newLine();
    			characterfile.write("counters = ");
    			for (int i = 0; i < p.counters.length; i++)
    				characterfile.write("" + p.counters[i] + ((i == p.counters.length - 1) ? "" : "\t"));
    			characterfile.newLine();
    			characterfile.write("max-cape = ");
    			for (int i = 0; i < p.maxCape.length; i++)
    				characterfile.write("" + p.maxCape[i] + ((i == p.maxCape.length - 1) ? "" : "\t"));
    			characterfile.newLine();
    			characterfile.write("clue-container = ");
    			if (p.clueContainer == null || p.clueContainer.stages.peek() == null) {
    				characterfile.write("null");
    			} else {
    				for (ClueScroll c : p.clueContainer.stages)
    					characterfile.write(c.name() + "\t");
    			}
    			characterfile.newLine();
    			characterfile.write("clue-reward = ");
    			characterfile.write(p.bossDifficulty == null ? "null" : p.bossDifficulty.name());
    			characterfile.newLine();
    			characterfile.write("easy-clue = ");
    			characterfile.write(Integer.toString(p.easyClue));
    			characterfile.newLine();
    			characterfile.write("medium-clue = ");
    			characterfile.write(Integer.toString(p.mediumClue));
    			characterfile.newLine();
    			characterfile.write("hard-clue = ");
    			characterfile.write(Integer.toString(p.hardClue));
    			characterfile.newLine();
    			characterfile.write("elite-clue = ");
    			characterfile.write(Integer.toString(p.eliteClue));
    			characterfile.newLine();
    			characterfile.write("master-clue = ");
    			characterfile.write(Integer.toString(p.masterClue));
    			characterfile.newLine();
    			characterfile.write("onClue = ");
    			characterfile.write(Boolean.toString(p.onClueTask));
    			characterfile.newLine();
    			characterfile.write("clueStage = ");
    			characterfile.write(Integer.toString(p.getClueTaskStage));
    			characterfile.newLine();
    			characterfile.write("selectedClue = ");
    			characterfile.write(Integer.toString(p.selectedClue));
    			characterfile.newLine();
    			characterfile.write("zulrah-best-time = " + p.getBestZulrahTime());
    			characterfile.newLine();
    			characterfile.write("toxic-staff = " + p.getToxicStaffOfTheDeadCharge());
    			characterfile.newLine();
    			characterfile.write("toxic-pipe-ammo = " + p.getToxicBlowpipeAmmo());
    			characterfile.newLine();
    			characterfile.write("toxic-pipe-amount = " + p.getToxicBlowpipeAmmoAmount());
    			characterfile.newLine();
    			characterfile.write("toxic-pipe-charge = " + p.getToxicBlowpipeCharge());
    			characterfile.newLine();
    			characterfile.write("serpentine-helm = " + p.getSerpentineHelmCharge());
    			characterfile.newLine();
    			characterfile.write("trident-of-the-seas = " + p.getTridentCharge());
    			characterfile.newLine();
    			characterfile.write("trident-of-the-swamp = " + p.getToxicTridentCharge());
    			characterfile.newLine();
    			characterfile.write("arclight-charge = " + p.getArcLightCharge());
    			characterfile.newLine();
    			characterfile.write("slayerPoints = " + p.getSlayer().getPoints());
    			characterfile.newLine();
    			characterfile.write("crystal-bow-shots = ", 0, 20);
    			characterfile.write(Integer.toString(p.crystalBowArrowCount), 0, Integer.toString(p.crystalBowArrowCount).length());
    			characterfile.newLine();
    			characterfile.write("skull-timer = ", 0, 14);
    			characterfile.write(Integer.toString(p.skullTimer), 0, Integer.toString(p.skullTimer).length());
    			characterfile.newLine();
    			characterfile.write("magic-book = ", 0, 13);
    			characterfile.write(Integer.toString(p.playerMagicBook), 0, Integer.toString(p.playerMagicBook).length());
    			characterfile.newLine();
    			for (Brother brother : p.getBarrows().getBrothers()) {
    				characterfile.write(brother.getName().toLowerCase() + " = " + Boolean.toString(brother.isDefeated()));
    				characterfile.newLine();
    			}
    			if (p.getBarrows().getLastBrother().isPresent()) {
    				characterfile.write("barrows-final-brother = " + p.getBarrows().getLastBrother().get().getName());
    				characterfile.newLine();
    			}
    			characterfile.write("barrows-monsters-killcount = " + p.getBarrows().getMonsterKillCount());
    			characterfile.newLine();
    			characterfile.write("barrows-completed = " + Boolean.toString(p.getBarrows().isCompleted()));
    			characterfile.newLine();
    			characterfile.write("special-amount = ", 0, 17);
    			characterfile.write(Double.toString(p.specAmount), 0, Double.toString(p.specAmount).length());
    			characterfile.newLine();
    			characterfile.write("prayer-amount = ", 0, 16);
    			characterfile.write(Double.toString(p.prayerPoint), 0, Double.toString(p.prayerPoint).length());
    			characterfile.newLine();
    			characterfile.write("KC = ", 0, 4);
    			characterfile.write(Integer.toString(p.killcount), 0, Integer.toString(p.killcount).length());
    			characterfile.newLine();
    			characterfile.write("DC = ", 0, 4);
    			characterfile.write(Integer.toString(p.deathcount), 0, Integer.toString(p.deathcount).length());
    			characterfile.newLine();
    			characterfile.write("total-hunter-kills = " + p.getBH().getTotalHunterKills());
    			characterfile.newLine();
    			characterfile.write("total-rogue-kills = " + p.getBH().getTotalRogueKills());
    			characterfile.newLine();
    			characterfile.write("target-time-delay = " + p.getBH().getDelayedTargetTicks());
    			characterfile.newLine();
    			characterfile.write("bh-penalties = " + p.getBH().getWarnings());
    			characterfile.newLine();
    			characterfile.write("bh-bounties = " + p.getBH().getBounties());
    			characterfile.newLine();
    			characterfile.write("statistics-visible = " + p.getBH().isStatisticsVisible());
    			characterfile.newLine();
    			characterfile.write("spell-accessible = " + p.getBH().isSpellAccessible());
    			characterfile.newLine();
    			characterfile.write("zerkAmount = ", 0, 13);
    			characterfile.newLine();
    			characterfile.write("pkp = ", 0, 6);
    			characterfile.write(Integer.toString(p.pkp), 0, Integer.toString(p.pkp).length());
    			characterfile.newLine();
    			characterfile.write("donP = ", 0, 6);
    			characterfile.write(Integer.toString(p.donatorPoints), 0, Integer.toString(p.donatorPoints).length());
    			characterfile.newLine();
    			characterfile.write("donA = ", 0, 6);
    			characterfile.write(Integer.toString(p.amDonated), 0, Integer.toString(p.amDonated).length());
    			characterfile.newLine();
    			characterfile.write("votePoints = ", 0, 13);
    			characterfile.write(Integer.toString(p.votePoints), 0, Integer.toString(p.votePoints).length());
    			characterfile.newLine();
    			characterfile.write("achievement-points = " + p.getAchievements().getPoints());
    			characterfile.newLine();
    			characterfile.write("achievement-items = ");
    			for (int i = 0; i < p.getAchievements().getBoughtItems().length; i++)
    				characterfile.write("" + p.getAchievements().getBoughtItems()[i][1] + ((i == p.getAchievements().getBoughtItems().length - 1) ? "" : "\t"));
    			characterfile.newLine();
    			characterfile.write("xpLock = ", 0, 9);
    			characterfile.write(Boolean.toString(p.expLock), 0, Boolean.toString(p.expLock).length());
    			characterfile.newLine();
    			characterfile.write("teleblock-length = ", 0, 19);
    			characterfile.write(Integer.toString(tbTime), 0, Integer.toString(tbTime).length());
    			characterfile.newLine();
    
    			// Varrock
    			String varrockClaimed = "VarrockClaimedDiaries = ";
    			characterfile.write(varrockClaimed, 0, varrockClaimed.length());
    			{
    				String prefix = "";
    				StringBuilder bldr = new StringBuilder();
    				for (EntryDifficulty entry : p.getDiaryManager().getVarrockDiary().getClaimed()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    			characterfile.newLine();
    			// Ardougne
    			String ardougneClaimed = "ArdougneClaimedDiaries = ";
    			characterfile.write(ardougneClaimed, 0, ardougneClaimed.length());
    			{
    				String prefix = "";
    				StringBuilder bldr = new StringBuilder();
    				for (EntryDifficulty entry : p.getDiaryManager().getArdougneDiary().getClaimed()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    			characterfile.newLine();
    			// Desert
    			String desertClaimed = "DesertClaimedDiaries = ";
    			characterfile.write(desertClaimed, 0, desertClaimed.length());
    			{
    				String prefix = "";
    				StringBuilder bldr = new StringBuilder();
    				for (EntryDifficulty entry : p.getDiaryManager().getDesertDiary().getClaimed()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    			characterfile.newLine();
    			// Falador
    			String faladorClaimed = "FaladorClaimedDiaries = ";
    			characterfile.write(faladorClaimed, 0, faladorClaimed.length());
    			{
    				String prefix = "";
    				StringBuilder bldr = new StringBuilder();
    				for (EntryDifficulty entry : p.getDiaryManager().getFaladorDiary().getClaimed()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    			characterfile.newLine();
    			// Fremennik
    			String fremennikClaimed = "FremennikClaimedDiaries = ";
    			characterfile.write(fremennikClaimed, 0, fremennikClaimed.length());
    			{
    				String prefix = "";
    				StringBuilder bldr = new StringBuilder();
    				for (EntryDifficulty entry : p.getDiaryManager().getFremennikDiary().getClaimed()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    			characterfile.newLine();
    			// Kandarin
    			String kandarinClaimed = "KandarinClaimedDiaries = ";
    			characterfile.write(kandarinClaimed, 0, kandarinClaimed.length());
    			{
    				String prefix = "";
    				StringBuilder bldr = new StringBuilder();
    				for (EntryDifficulty entry : p.getDiaryManager().getKandarinDiary().getClaimed()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    			characterfile.newLine();
    			// Karamja
    			String karamjaClaimed = "KaramjaClaimedDiaries = ";
    			characterfile.write(karamjaClaimed, 0, karamjaClaimed.length());
    			{
    				String prefix = "";
    				StringBuilder bldr = new StringBuilder();
    				for (EntryDifficulty entry : p.getDiaryManager().getKaramjaDiary().getClaimed()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    			characterfile.newLine();
    			// Lumbridge
    			String lumbridgeClaimed = "LumbridgeClaimedDiaries = ";
    			characterfile.write(lumbridgeClaimed, 0, lumbridgeClaimed.length());
    			{
    				String prefix = "";
    				StringBuilder bldr = new StringBuilder();
    				for (EntryDifficulty entry : p.getDiaryManager().getLumbridgeDraynorDiary().getClaimed()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    			characterfile.newLine();
    			// Morytania
    			String morytaniaClaimed = "MorytaniaClaimedDiaries = ";
    			characterfile.write(morytaniaClaimed, 0, morytaniaClaimed.length());
    			{
    				String prefix = "";
    				StringBuilder bldr = new StringBuilder();
    				for (EntryDifficulty entry : p.getDiaryManager().getMorytaniaDiary().getClaimed()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    			characterfile.newLine();
    			// Western
    			String westernClaimed = "WesternClaimedDiaries = ";
    			characterfile.write(westernClaimed, 0, westernClaimed.length());
    			{
    				String prefix = "";
    				StringBuilder bldr = new StringBuilder();
    				for (EntryDifficulty entry : p.getDiaryManager().getWesternDiary().getClaimed()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    			characterfile.newLine();
    			// Wilderness
    			String wildernessClaimed = "WildernessClaimedDiaries = ";
    			characterfile.write(wildernessClaimed, 0, wildernessClaimed.length());
    			{
    				String prefix = "";
    				StringBuilder bldr = new StringBuilder();
    				for (EntryDifficulty entry : p.getDiaryManager().getWildernessDiary().getClaimed()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    			characterfile.newLine();
    
    			String diary = "diaries = ";
    			characterfile.write(diary, 0, diary.length());
    			{
    				String prefix = "";
    				StringBuilder bldr = new StringBuilder();
    
    				// Varrock
    				for (VarrockDiaryEntry entry : p.getDiaryManager().getVarrockDiary().getAchievements()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				// Ardougne
    				for (ArdougneDiaryEntry entry : p.getDiaryManager().getArdougneDiary().getAchievements()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				// Desert
    				for (DesertDiaryEntry entry : p.getDiaryManager().getDesertDiary().getAchievements()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				// Falador
    				for (FaladorDiaryEntry entry : p.getDiaryManager().getFaladorDiary().getAchievements()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				// Fremennik
    				for (FremennikDiaryEntry entry : p.getDiaryManager().getFremennikDiary().getAchievements()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				// Kandarin
    				for (KandarinDiaryEntry entry : p.getDiaryManager().getKandarinDiary().getAchievements()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				// Karamja
    				for (KaramjaDiaryEntry entry : p.getDiaryManager().getKaramjaDiary().getAchievements()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				// Lumbridge
    				for (LumbridgeDraynorDiaryEntry entry : p.getDiaryManager().getLumbridgeDraynorDiary().getAchievements()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				// Morytania
    				for (MorytaniaDiaryEntry entry : p.getDiaryManager().getMorytaniaDiary().getAchievements()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				// Western
    				for (WesternDiaryEntry entry : p.getDiaryManager().getWesternDiary().getAchievements()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				// Wilderness
    				for (WildernessDiaryEntry entry : p.getDiaryManager().getWildernessDiary().getAchievements()) {
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name());
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    			characterfile.newLine();
    
    			String partialDiary = "partialDiaries = ";
    			// forEachPartial
    			characterfile.write(partialDiary, 0, partialDiary.length()); // Saw
    																			// that
    																			// earlier
    																			// but
    																			// forgot
    																			// lol,
    																			// ahh
    																			// ty
    			{
    				StringBuilder bldr = new StringBuilder();
    				String prefix = "";
    				// Varrock
    				for (Entry<VarrockDiaryEntry, Integer> keyval : p.getDiaryManager().getVarrockDiary().getPartialAchievements().entrySet()) {
    					VarrockDiaryEntry entry = keyval.getKey();
    					int stage = keyval.getValue();
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name() + ":" + stage);
    				}
    				// Ardougne
    				for (Entry<ArdougneDiaryEntry, Integer> keyval : p.getDiaryManager().getArdougneDiary().getPartialAchievements().entrySet()) {
    					ArdougneDiaryEntry entry = keyval.getKey();
    					int stage = keyval.getValue();
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name() + ":" + stage);
    				}
    				// Desert
    				for (Entry<DesertDiaryEntry, Integer> keyval : p.getDiaryManager().getDesertDiary().getPartialAchievements().entrySet()) {
    					DesertDiaryEntry entry = keyval.getKey();
    					int stage = keyval.getValue();
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name() + ":" + stage);
    				}
    				// Falador
    				for (Entry<FaladorDiaryEntry, Integer> keyval : p.getDiaryManager().getFaladorDiary().getPartialAchievements().entrySet()) {
    					FaladorDiaryEntry entry = keyval.getKey();
    					int stage = keyval.getValue();
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name() + ":" + stage);
    				}
    				// Fremennik
    				for (Entry<FremennikDiaryEntry, Integer> keyval : p.getDiaryManager().getFremennikDiary().getPartialAchievements().entrySet()) {
    					FremennikDiaryEntry entry = keyval.getKey();
    					int stage = keyval.getValue();
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name() + ":" + stage);
    				}
    				// Kandarin
    				for (Entry<KandarinDiaryEntry, Integer> keyval : p.getDiaryManager().getKandarinDiary().getPartialAchievements().entrySet()) {
    					KandarinDiaryEntry entry = keyval.getKey();
    					int stage = keyval.getValue();
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name() + ":" + stage);
    				}
    				// Karamja
    				for (Entry<KaramjaDiaryEntry, Integer> keyval : p.getDiaryManager().getKaramjaDiary().getPartialAchievements().entrySet()) {
    					KaramjaDiaryEntry entry = keyval.getKey();
    					int stage = keyval.getValue();
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name() + ":" + stage);
    				}
    				// Lumbridge
    				for (Entry<LumbridgeDraynorDiaryEntry, Integer> keyval : p.getDiaryManager().getLumbridgeDraynorDiary().getPartialAchievements().entrySet()) {
    					LumbridgeDraynorDiaryEntry entry = keyval.getKey();
    					int stage = keyval.getValue();
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name() + ":" + stage);
    				}
    				// Morytania
    				for (Entry<MorytaniaDiaryEntry, Integer> keyval : p.getDiaryManager().getMorytaniaDiary().getPartialAchievements().entrySet()) {
    					MorytaniaDiaryEntry entry = keyval.getKey();
    					int stage = keyval.getValue();
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name() + ":" + stage);
    				}
    				// Western
    				for (Entry<WesternDiaryEntry, Integer> keyval : p.getDiaryManager().getWesternDiary().getPartialAchievements().entrySet()) {
    					WesternDiaryEntry entry = keyval.getKey();
    					int stage = keyval.getValue();
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name() + ":" + stage);
    				}
    				// Wilderness
    				for (Entry<WildernessDiaryEntry, Integer> keyval : p.getDiaryManager().getWildernessDiary().getPartialAchievements().entrySet()) {
    					WildernessDiaryEntry entry = keyval.getKey();
    					int stage = keyval.getValue();
    					bldr.append(prefix);
    					prefix = ",";
    					bldr.append(entry.name() + ":" + stage);
    				}
    				characterfile.write(bldr.toString(), 0, bldr.toString().length());
    			}
    
    			characterfile.newLine();
    
    			characterfile.write("pc-points = ", 0, 12);
    			characterfile.write(Integer.toString(p.pcPoints), 0, Integer.toString(p.pcPoints).length());
    			characterfile.newLine();
    			characterfile.write("killStreak = ", 0, 13);
    			characterfile.write(Integer.toString(p.killStreak), 0, Integer.toString(p.killStreak).length());
    			characterfile.newLine();
    			characterfile.write("bonus-end = ", 0, 12);
    			characterfile.write(Long.toString(p.bonusXpTime), 0, Long.toString(p.bonusXpTime).length());
    			characterfile.newLine();
    			characterfile.write("jail-end = ", 0, 11);
    			characterfile.write(Long.toString(p.jailEnd), 0, Long.toString(p.jailEnd).length());
    			characterfile.newLine();
    			characterfile.write("mute-end = ", 0, 11);
    			characterfile.write(Long.toString(p.muteEnd), 0, Long.toString(p.muteEnd).length());
    			characterfile.newLine();
    			characterfile.write("marketmute-end = ", 0, 17);
    			characterfile.write(Long.toString(p.marketMuteEnd), 0, Long.toString(p.marketMuteEnd).length());
    			characterfile.newLine();
    			characterfile.write("last-yell = " + p.lastYell);
    			characterfile.newLine();
    			characterfile.write("splitChat = ", 0, 12);
    			characterfile.write(Boolean.toString(p.splitChat), 0, Boolean.toString(p.splitChat).length());
    			characterfile.newLine();
    			if (p.getSlayer().getTask().isPresent()) {
    				Task task = p.getSlayer().getTask().get();
    				characterfile.write("slayer-task = " + task.getPrimaryName());
    				characterfile.newLine();
    				characterfile.write("slayer-task-amount = " + p.getSlayer().getTaskAmount());
    				characterfile.newLine();
    			}
    			characterfile.write("slayer-master = " + p.getSlayer().getMaster());
    			characterfile.newLine();
    			characterfile.write("consecutive-tasks = " + p.getSlayer().getConsecutiveTasks());
    			characterfile.newLine();
    			characterfile.write("mage-arena-points = " + p.getArenaPoints());
    			characterfile.newLine();
    			characterfile.write("autoRet = ", 0, 10);
    			characterfile.write(Integer.toString(p.autoRet), 0, Integer.toString(p.autoRet).length());
    			characterfile.newLine();
    			characterfile.write("flagged = ", 0, 10);
    			characterfile.write(Boolean.toString(p.accountFlagged), 0, Boolean.toString(p.accountFlagged).length());
    			characterfile.newLine();
    			characterfile.write("keepTitle = ", 0, 12);
    			characterfile.write(Boolean.toString(p.keepTitle), 0, Boolean.toString(p.keepTitle).length());
    			characterfile.newLine();
    			characterfile.write("killTitle = ", 0, 12);
    			characterfile.write(Boolean.toString(p.killTitle), 0, Boolean.toString(p.killTitle).length());
    			characterfile.newLine();
    			characterfile.write("wave = ", 0, 7);
    			characterfile.write(Integer.toString(p.waveId), 0, Integer.toString(p.waveId).length());
    			characterfile.newLine();
    			characterfile.write("gwkc = ", 0, 7);
    			characterfile.write(Integer.toString(p.killCount), 0, Integer.toString(p.killCount).length());
    			characterfile.newLine();
    			characterfile.write("fightMode = ", 0, 12);
    			characterfile.write(Integer.toString(p.fightMode), 0, Integer.toString(p.fightMode).length());
    			characterfile.newLine();
    			characterfile.write("privatechat = ", 0, 14);
    			characterfile.write(Integer.toString(p.getPrivateChat()), 0, Integer.toString(p.getPrivateChat()).length());
    			characterfile.newLine();
    			characterfile.write("void = ", 0, 7);
    			String toWrite = p.voidStatus[0] + "\t" + p.voidStatus[1] + "\t" + p.voidStatus[2] + "\t" + p.voidStatus[3] + "\t" + p.voidStatus[4];
    			characterfile.write(toWrite);
    			characterfile.newLine();
    			characterfile.write("quickprayer = ", 0, 14);
    			String quick = "";
    			for (int i = 0; i < p.getQuick().getNormal().length; i++) {
    				quick += p.getQuick().getNormal()[i] + "\t";
    			}
    			characterfile.write(quick);
    			characterfile.newLine();
    			characterfile.write("pouch-rune = " + p.getRuneEssencePouch(0) + "\t" + p.getRuneEssencePouch(1) + "\t" + p.getRuneEssencePouch(2));
    			characterfile.newLine();
    			characterfile.write("pouch-pure = " + p.getPureEssencePouch(0) + "\t" + p.getPureEssencePouch(1) + "\t" + p.getPureEssencePouch(2));
    			characterfile.newLine();
    			characterfile.write("crabsKilled = ", 0, 14);
    			characterfile.write(Integer.toString(p.crabsKilled), 0, Integer.toString(p.crabsKilled).length());
    			characterfile.newLine();
    			characterfile.write("farming-poison-berry = " + p.getFarming().getLastBerryFarm());
    			characterfile.newLine();
    			characterfile.write("farming-patch-0 = " + p.getFarmingState(0) + "\t" + p.getFarmingSeedId(0) + "\t" + p.getFarmingTime(0) + "\t" + p.getFarmingHarvest(0));
    			characterfile.newLine();
    			characterfile.write("halloweenOrderGiven = ");
    			for (int i = 0; i < p.halloweenRiddleGiven.length; i++)
    				characterfile.write("" + p.halloweenRiddleGiven[i] + ((i == p.halloweenRiddleGiven.length - 1) ? "" : "\t"));
    			characterfile.newLine();
    			characterfile.write("halloweenOrderChosen = ");
    			for (int i = 0; i < p.halloweenRiddleChosen.length; i++)
    				characterfile.write("" + p.halloweenRiddleChosen[i] + ((i == p.halloweenRiddleChosen.length - 1) ? "" : "\t"));
    			characterfile.newLine();
    			characterfile.write("halloweenOrderNumber = ", 0, 23);
    			characterfile.write(Integer.toString(p.halloweenOrderNumber), 0, Integer.toString(p.halloweenOrderNumber).length());
    			characterfile.newLine();
    			characterfile.write("district-levels = ");
    			for (int i = 0; i < p.playerStats.length; i++)
    				characterfile.write("" + p.playerStats[i] + ((i == p.playerStats.length - 1) ? "" : "\t"));
    			characterfile.newLine();
    			characterfile.write("inDistrict = ", 0, 13);
    			characterfile.write(Boolean.toString(p.pkDistrict), 0, Boolean.toString(p.pkDistrict).length());
    			characterfile.newLine();
    			characterfile.write("safeBoxSlots = ", 0, 15);
    			characterfile.write(Integer.toString(p.safeBoxSlots), 0, Integer.toString(p.safeBoxSlots).length());
    			characterfile.newLine();
    			characterfile.write("lost-items = ");
    			for (GameItem item : p.getZulrahLostItems()) {
    				if (item == null) {
    					continue;
    				}
    				characterfile.write(item.getId() + "\t" + item.getAmount() + "\t");
    			}
    			characterfile.newLine();
    			characterfile.write("lost-items-cerberus = ");
    			for (GameItem item : p.getCerberusLostItems()) {
    				if (item == null) {
    					continue;
    				}
    				characterfile.write(item.getId() + "\t" + item.getAmount() + "\t");
    			}
    			characterfile.newLine();
    			characterfile.write("lost-items-skotizo = ");
    			for (GameItem item : p.getSkotizoLostItems()) {
    				if (item == null) {
    					continue;
    				}
    				characterfile.write(item.getId() + "\t" + item.getAmount() + "\t");
    				System.out.println("sends save!");
    			}
    			characterfile.newLine();
    			characterfile.newLine();
    			characterfile.newLine();
    			characterfile.newLine();
    			characterfile.write("lost-items-pvp = ");
    			for (GameItem item : p.getStatusHandlerLostItems()) {
    				if (item == null) {
    					continue;
    				}
    				characterfile.write(item.getId() + "\t" + item.getAmount() + "\t");
    			}
    			characterfile.newLine();
    			characterfile.newLine();
    			characterfile.write("lost-items-kraken = ");
    			for (GameItem item : p.getKrakenLostItems()) {
    				if (item == null) {
    					continue;
    				}
    				characterfile.write(item.getId() + "\t" + item.getAmount() + "\t");
    			}
    			characterfile.newLine();
    
    			/* EQUIPMENT */
    			characterfile.write("[EQUIPMENT]", 0, 11);
    			characterfile.newLine();
    			for (int i = 0; i < p.playerEquipment.length; i++) {
    				characterfile.write("character-equip = ", 0, 18);
    				characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(Integer.toString(p.playerEquipment[i]), 0, Integer.toString(p.playerEquipment[i]).length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(Integer.toString(p.playerEquipmentN[i]), 0, Integer.toString(p.playerEquipmentN[i]).length());
    				characterfile.write("	", 0, 1);
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			/* LOOK */
    			characterfile.write("[LOOK]", 0, 6);
    			characterfile.newLine();
    			for (int i = 0; i < p.playerAppearance.length; i++) {
    				characterfile.write("character-look = ", 0, 17);
    				characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(Integer.toString(p.playerAppearance[i]), 0, Integer.toString(p.playerAppearance[i]).length());
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			/* SKILLS */
    			characterfile.write("[SKILLS]", 0, 8);
    			characterfile.newLine();
    			for (int i = 0; i < p.playerLevel.length; i++) {
    				characterfile.write("character-skill = ", 0, 18);
    				characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(Integer.toString(p.playerLevel[i]), 0, Integer.toString(p.playerLevel[i]).length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(Integer.toString(p.playerXP[i]), 0, Integer.toString(p.playerXP[i]).length());
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			/* ITEMS */
    			characterfile.write("[ITEMS]", 0, 7);
    			characterfile.newLine();
    			for (int i = 0; i < p.playerItems.length; i++) {
    				if (p.playerItems[i] > 0) {
    					characterfile.write("character-item = ", 0, 17);
    					characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write(Integer.toString(p.playerItems[i]), 0, Integer.toString(p.playerItems[i]).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write(Integer.toString(p.playerItemsN[i]), 0, Integer.toString(p.playerItemsN[i]).length());
    					characterfile.newLine();
    				}
    			}
    			characterfile.newLine();
    
    			characterfile.write("[NPC-PETS]");
    			characterfile.newLine();
    
    			for (Pets pet : Pets.values()) {
    
    				characterfile.write(pet.getItemId() + " = " + PetHandler.isPetOwner(pet.getItemId()));
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			/* ITEMVALUES */
    			characterfile.write("[RECHARGEITEMS]", 0, 15);
    			characterfile.newLine();
    			for (int itemId : p.getRechargeItems().getItemValues().keySet()) {
    				int value = p.getRechargeItems().getChargesLeft(itemId);
    
    				String itemIdString = Integer.toString(itemId);
    				String valueString = Integer.toString(value);
    				String lastUsed = p.getRechargeItems().getItemLastUsed(itemId);
    
    				characterfile.write("item = ", 0, 7);
    				characterfile.write("	", 0, 1);
    				characterfile.write(itemIdString, 0, itemIdString.length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(valueString, 0, valueString.length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(lastUsed, 0, lastUsed.length());
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			/* BANK */
    			characterfile.write("[BANK]", 0, 6);
    			characterfile.newLine();
    			for (int i = 0; i < 9; i++) {
    				for (int j = 0; j < Config.BANK_SIZE; j++) {
    					if (j > p.getBank().getBankTab()[i].size() - 1)
    						break;
    					BankItem item = p.getBank().getBankTab()[i].getItem(j);
    					if (item == null) {
    						continue;
    					}
    
    					characterfile.write("bank-tab = " + i + "\t" + item.getId() + "\t" + item.getAmount());
    					characterfile.newLine();
    				}
    			}
    
    			characterfile.newLine();
    			characterfile.newLine();
    
    			/* LOOTBAG */
    			characterfile.write("[LOOTBAG]", 0, 9);
    			characterfile.newLine();
    			for (int i = 0; i < p.getLootingBag().items.size(); i++) {
    				if (p.getLootingBag().items.get(i).getId() > 0) {
    					characterfile.write("bag-item = ", 0, 11);
    					characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
    					characterfile.write("	", 0, 1);
    					int id = p.getLootingBag().items.get(i).getId();
    					int amt = p.getLootingBag().items.get(i).getAmount();
    					characterfile.write(Integer.toString(id), 0, Integer.toString(id).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write(Integer.toString(amt), 0, Integer.toString(amt).length());
    					characterfile.newLine();
    				}
    			}
    			characterfile.newLine();
    
    			/* RUNEPOUCH */
    			characterfile.write("[RUNEPOUCH]", 0, 11);
    			characterfile.newLine();
    			for (int i = 0; i < p.getRunePouch().items.size(); i++) {
    				if (p.getRunePouch().items.get(i).getId() > 0) {
    					characterfile.write("pouch-item = ", 0, 13);
    					characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
    					characterfile.write("	", 0, 1);
    					int id = p.getRunePouch().items.get(i).getId();
    					int amt = p.getRunePouch().items.get(i).getAmount();
    					characterfile.write(Integer.toString(id), 0, Integer.toString(id).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write(Integer.toString(amt), 0, Integer.toString(amt).length());
    					characterfile.newLine();
    				}
    			}
    			characterfile.newLine();
    
    			/* HERBSACK */
    			characterfile.write("[HERBSACK]", 0, 10);
    			characterfile.newLine();
    			for (int i = 0; i < p.getHerbSack().items.size(); i++) {
    				if (p.getHerbSack().items.get(i).getId() > 0) {
    					characterfile.write("sack-item = ", 0, 12);
    					characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
    					characterfile.write("	", 0, 1);
    					int id = p.getHerbSack().items.get(i).getId();
    					int amt = p.getHerbSack().items.get(i).getAmount();
    					characterfile.write(Integer.toString(id), 0, Integer.toString(id).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write(Integer.toString(amt), 0, Integer.toString(amt).length());
    					characterfile.newLine();
    				}
    			}
    			characterfile.newLine();
    
    			/* GEMBAG */
    			characterfile.write("[GEMBAG]", 0, 8);
    			characterfile.newLine();
    			for (int i = 0; i < p.getGemBag().items.size(); i++) {
    				if (p.getGemBag().items.get(i).getId() > 0) {
    					characterfile.write("bag-item = ", 0, 11);
    					characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
    					characterfile.write("	", 0, 1);
    					int id = p.getGemBag().items.get(i).getId();
    					int amt = p.getGemBag().items.get(i).getAmount();
    					characterfile.write(Integer.toString(id), 0, Integer.toString(id).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write(Integer.toString(amt), 0, Integer.toString(amt).length());
    					characterfile.newLine();
    				}
    			}
    			characterfile.newLine();
    			/* GEMBAG */
    			characterfile.write("[COALBAG]");
    			characterfile.newLine();
    			for (int i = 0; i < p.getCoalBag().items.size(); i++) {
    				if (p.getGemBag().items.get(i).getId() > 0) {
    					characterfile.write("coal-bag-item = ");
    					characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
    					characterfile.write("	", 0, 1);
    					int id = p.getCoalBag().items.get(i).getId();
    					int amt = p.getCoalBag().items.get(i).getAmount();
    					characterfile.write(Integer.toString(id), 0, Integer.toString(id).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write(Integer.toString(amt), 0, Integer.toString(amt).length());
    					characterfile.newLine();
    				}
    			}
    			characterfile.newLine();
    
    			/* SAFEBOX */
    			characterfile.write("[SAFEBOX]", 0, 9);
    			characterfile.newLine();
    			for (int i = 0; i < p.getSafeBox().items.size(); i++) {
    				if (p.getSafeBox().items.get(i).getId() > 0) {
    					characterfile.write("safebox-item = ", 0, 15);
    					characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
    					characterfile.write("	", 0, 1);
    					int id = p.getSafeBox().items.get(i).getId();
    					int amt = p.getSafeBox().items.get(i).getAmount();
    					characterfile.write(Integer.toString(id), 0, Integer.toString(id).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write(Integer.toString(amt), 0, Integer.toString(amt).length());
    					characterfile.newLine();
    				}
    			}
    			characterfile.newLine();
    
    			/* FRIENDS */
    			characterfile.write("[FRIENDS]", 0, 9);
    			characterfile.newLine();
    			for (Long friend : p.getFriends().getFriends()) {
    				characterfile.write("character-friend = ", 0, 19);
    				characterfile.write(Long.toString(friend), 0, Long.toString(friend).length());
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			characterfile.newLine();
    			characterfile.write("[HOLIDAY-EVENTS]");
    			characterfile.newLine();
    			for (Entry<String, Integer> entry : p.getHolidayStages().getStages().entrySet()) {
    				String key = entry.getKey();
    				int value = entry.getValue();
    				if (Objects.isNull(key)) {
    					continue;
    				}
    				characterfile.write("stage = " + key + "\t" + value);
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			characterfile.write("[DEGRADEABLES]");
    			characterfile.newLine();
    			characterfile.write("claim-state = ");
    			for (int i = 0; i < p.claimDegradableItem.length; i++) {
    				characterfile.write(Boolean.toString(p.claimDegradableItem[i]));
    				if (i != p.claimDegradableItem.length - 1) {
    					characterfile.write("\t");
    				}
    			}
    			characterfile.newLine();
    			for (int i = 0; i < p.degradableItem.length; i++) {
    				if (p.degradableItem[i] > 0) {
    					characterfile.write("item = " + i + "\t" + p.degradableItem[i]);
    					characterfile.newLine();
    				}
    			}
    			characterfile.newLine();
    
    			characterfile.newLine();
    			characterfile.write("[ACHIEVEMENTS-TIER-1]");
    			characterfile.newLine();
    			p.getAchievements().print(characterfile, 0);
    			characterfile.newLine();
    
    			characterfile.newLine();
    			characterfile.write("[ACHIEVEMENTS-TIER-2]");
    			characterfile.newLine();
    			p.getAchievements().print(characterfile, 1);
    			characterfile.newLine();
    
    			characterfile.newLine();
    			characterfile.write("[ACHIEVEMENTS-TIER-3]");
    			characterfile.newLine();
    			p.getAchievements().print(characterfile, 2);
    			characterfile.newLine();
    
    			/* IGNORES */
    			characterfile.write("[IGNORES]", 0, 9);
    			characterfile.newLine();
    			for (Long ignore : p.getIgnores().getIgnores()) {
    				characterfile.write("character-ignore = ", 0, 19);
    				characterfile.write(Long.toString(ignore), 0, Long.toString(ignore).length());
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			characterfile.write("[PRESETS]");
    			characterfile.newLine();
    
    			characterfile.write("Names = ");
    			Map<Integer, Preset> presets = p.getPresets().getPresets();
    			for (Entry<Integer, Preset> entry : presets.entrySet()) {
    				characterfile.write(entry.getValue().getAlias() + "\t");
    			}
    			characterfile.newLine();
    			for (Entry<Integer, Preset> entry : presets.entrySet()) {
    				if (entry != null) {
    					Preset preset = entry.getValue();
    					PresetContainer inventory = preset.getInventory();
    					characterfile.write("Inventory#" + entry.getKey() + " = ");
    					for (Entry<Integer, GameItem> item : inventory.getItems().entrySet()) {
    						characterfile.write(item.getKey() + "\t" + item.getValue().getId() + "\t" + item.getValue().getAmount() + "\t");
    					}
    					characterfile.newLine();
    					PresetContainer equipment = preset.getEquipment();
    					characterfile.write("Equipment#" + entry.getKey() + " = ");
    					for (Entry<Integer, GameItem> item : equipment.getItems().entrySet()) {
    						characterfile.write(item.getKey() + "\t" + item.getValue().getId() + "\t" + item.getValue().getAmount() + "\t");
    					}
    					characterfile.newLine();
    				}
    			}
    			characterfile.newLine();
    
    			characterfile.write("[KILLSTREAKS]");
    			characterfile.newLine();
    			for (Entry<Killstreak.Type, Integer> entry : p.getKillstreak().getKillstreaks().entrySet()) {
    				characterfile.write(entry.getKey().name() + " = " + entry.getValue());
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			characterfile.write("[TITLES]");
    			characterfile.newLine();
    			for (Title title : p.getTitles().getPurchasedList()) {
    				characterfile.write("title = " + title.name());
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			characterfile.write("[NPC-TRACKER]");
    			characterfile.newLine();
    			for (Entry<String, Integer> entry : p.getNpcDeathTracker().getTracker().entrySet()) {
    				if (entry != null) {
    					if (entry.getValue() > 0) {
    						characterfile.write(entry.getKey().toString() + " = " + entry.getValue());
    						characterfile.newLine();
    					}
    				}
    			}
    			characterfile.newLine();
    
    			characterfile.write("[EOF]", 0, 5);
    			characterfile.newLine();
    			characterfile.newLine();
    			characterfile.close();
    		} catch (IOException ioexception) {
    			Misc.println(p.playerName + ": error writing file.");
    			if (Config.SERVER_STATE == ServerState.PRIVATE) {
    				ioexception.printStackTrace();
    			}
    			return false;
    		}
    		return true;
    	}
    
    }
    Under case 2: in your load method do:
    Code:
    case 2:
    System.out.println("Current mode: " + ReadMode + " and token: " + token);
    In your save function under characterfile.write("lost-items-skotizo = ");:
    Code:
    System.out.println("sends code to save..?");
    for (GameItem item : p.getSkotizoLostItems()) {
    				if (item == null) {
    System.out.println("Item is nulled!");
    					continue;
    				}
    System.out.println("Item is not nulled: " + item.getId() + ", " + item.getAmount());
    				characterfile.write(item.getId() + "\t" + item.getAmount() + "\t");
    			}


    "A fail act is something you do regular, but a dumb act is something you can learn from"
    Spoiler for Problem?:
    Reply With Quote  
     

  2. #22  
    Registered Member
    Join Date
    Jun 2017
    Posts
    30
    Thanks given
    1
    Thanks received
    0
    Rep Power
    26
    Quote Originally Posted by arch337 View Post
    Under case 2: in your load method do:
    Code:
    case 2:
    System.out.println("Current mode: " + ReadMode + " and token: " + token);
    In your save function under characterfile.write("lost-items-skotizo = ");:
    Code:
    System.out.println("sends code to save..?");
    for (GameItem item : p.getSkotizoLostItems()) {
    				if (item == null) {
    System.out.println("Item is nulled!");
    					continue;
    				}
    System.out.println("Item is not nulled: " + item.getId() + ", " + item.getAmount());
    				characterfile.write(item.getId() + "\t" + item.getAmount() + "\t");
    			}
    Old player:

    Code:
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-rights
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-rights-secondary
    [10/20/17 9:45 PM]: Current mode: 2 and token: exp-rate
    [10/20/17 9:45 PM]: Current mode: 2 and token: mode
    [10/20/17 9:45 PM]: Current mode: 2 and token: tutorial-stage
    [10/20/17 9:45 PM]: Current mode: 2 and token: brightness
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-height
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-hp
    [10/20/17 9:45 PM]: Current mode: 2 and token: play-time
    [10/20/17 9:45 PM]: Current mode: 2 and token: last-clan
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-specRestore
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-posx
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-posy
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin-cancellation
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin-unlock-delay
    [10/20/17 9:45 PM]: Current mode: 2 and token: placeholders
    [10/20/17 9:45 PM]: Current mode: 2 and token: teleportStone
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin-cancellation-delay
    [10/20/17 9:45 PM]: Current mode: 2 and token: show-drop-warning
    [10/20/17 9:45 PM]: Current mode: 2 and token: accept-aid
    [10/20/17 9:45 PM]: Current mode: 2 and token: did-you-know
    [10/20/17 9:45 PM]: Current mode: 2 and token: lootvalue
    [10/20/17 9:45 PM]: Current mode: 2 and token: raidPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: experience-counter
    [10/20/17 9:45 PM]: Current mode: 2 and token: prestigeLevel
    [10/20/17 9:45 PM]: Current mode: 2 and token: skillPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: assaultPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: hasBoughtCannon
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-title-updated
    [10/20/17 9:45 PM]: Current mode: 2 and token: connected-from
    [10/20/17 9:45 PM]: Current mode: 2 and token: connected-from
    [10/20/17 9:45 PM]: Current mode: 2 and token: connected-from
    [10/20/17 9:45 PM]: Current mode: 2 and token: connected-from
    [10/20/17 9:45 PM]: Current mode: 2 and token: connected-from
    [10/20/17 9:45 PM]: Current mode: 2 and token: mac-address
    [10/20/17 9:45 PM]: Current mode: 2 and token: killed-players
    [10/20/17 9:45 PM]: Current mode: 2 and token: killed-players
    [10/20/17 9:45 PM]: Current mode: 2 and token: removed-slayer-tasks
    [10/20/17 9:45 PM]: Current mode: 2 and token: experienceMultiplier
    [10/20/17 9:45 PM]: Current mode: 2 and token: last-incentive
    [10/20/17 9:45 PM]: Current mode: 2 and token: rfd-round
    [10/20/17 9:45 PM]: Current mode: 2 and token: run-energy
    [10/20/17 9:45 PM]: Current mode: 2 and token: lastLoginDate
    [10/20/17 9:45 PM]: Current mode: 2 and token: has-npc
    [10/20/17 9:45 PM]: Current mode: 2 and token: summonId
    [10/20/17 9:45 PM]: Current mode: 2 and token: startPack
    [10/20/17 9:45 PM]: Current mode: 2 and token: setPin
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-helmet
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-imbued-helmet
    [10/20/17 9:45 PM]: Current mode: 2 and token: bigger-boss-tasks
    [10/20/17 9:45 PM]: Current mode: 2 and token: cerberus-route
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-tasks-completed
    [10/20/17 9:45 PM]: Current mode: 2 and token: claimedReward
    [10/20/17 9:45 PM]: Current mode: 2 and token: dragonfire-shield-charge
    [10/20/17 9:45 PM]: Current mode: 2 and token: rfd-gloves
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave-id
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave-type
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave-info
    [10/20/17 9:45 PM]: Current mode: 2 and token: master-clue-reqs
    [10/20/17 9:45 PM]: Current mode: 2 and token: counters
    [10/20/17 9:45 PM]: Current mode: 2 and token: max-cape
    [10/20/17 9:45 PM]: Current mode: 2 and token: clue-container
    [10/20/17 9:45 PM]: Current mode: 2 and token: clue-reward
    [10/20/17 9:45 PM]: Current mode: 2 and token: easy-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: medium-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: hard-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: elite-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: master-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: onClue
    [10/20/17 9:45 PM]: Current mode: 2 and token: clueStage
    [10/20/17 9:45 PM]: Current mode: 2 and token: selectedClue
    [10/20/17 9:45 PM]: Current mode: 2 and token: zulrah-best-time
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-staff
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-pipe-ammo
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-pipe-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-pipe-charge
    [10/20/17 9:45 PM]: Current mode: 2 and token: serpentine-helm
    [10/20/17 9:45 PM]: Current mode: 2 and token: trident-of-the-seas
    [10/20/17 9:45 PM]: Current mode: 2 and token: trident-of-the-swamp
    [10/20/17 9:45 PM]: Current mode: 2 and token: arclight-charge
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayerPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: crystal-bow-shots
    [10/20/17 9:45 PM]: Current mode: 2 and token: skull-timer
    [10/20/17 9:45 PM]: Current mode: 2 and token: magic-book
    [10/20/17 9:45 PM]: Current mode: 2 and token: ahrim
    [10/20/17 9:45 PM]: Current mode: 2 and token: dharok
    [10/20/17 9:45 PM]: Current mode: 2 and token: guthan
    [10/20/17 9:45 PM]: Current mode: 2 and token: karil
    [10/20/17 9:45 PM]: Current mode: 2 and token: torag
    [10/20/17 9:45 PM]: Current mode: 2 and token: verac
    [10/20/17 9:45 PM]: Current mode: 2 and token: barrows-final-brother
    [10/20/17 9:45 PM]: Current mode: 2 and token: barrows-monsters-killcount
    [10/20/17 9:45 PM]: Current mode: 2 and token: barrows-completed
    [10/20/17 9:45 PM]: Current mode: 2 and token: special-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: prayer-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: KC
    [10/20/17 9:45 PM]: Current mode: 2 and token: DC
    [10/20/17 9:45 PM]: Current mode: 2 and token: total-hunter-kills
    [10/20/17 9:45 PM]: Current mode: 2 and token: total-rogue-kills
    [10/20/17 9:45 PM]: Current mode: 2 and token: target-time-delay
    [10/20/17 9:45 PM]: Current mode: 2 and token: bh-penalties
    [10/20/17 9:45 PM]: Current mode: 2 and token: bh-bounties
    [10/20/17 9:45 PM]: Current mode: 2 and token: statistics-visible
    [10/20/17 9:45 PM]: Current mode: 2 and token: spell-accessible
    [10/20/17 9:45 PM]: Current mode: 2 and token: zerkAmount
    [10/20/17 9:45 PM]: Current mode: 2 and token: pkp
    [10/20/17 9:45 PM]: Current mode: 2 and token: donP
    [10/20/17 9:45 PM]: Current mode: 2 and token: donA
    [10/20/17 9:45 PM]: Current mode: 2 and token: votePoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: achievement-points
    [10/20/17 9:45 PM]: Current mode: 2 and token: achievement-items
    [10/20/17 9:45 PM]: Current mode: 2 and token: xpLock
    [10/20/17 9:45 PM]: Current mode: 2 and token: teleblock-length
    [10/20/17 9:45 PM]: Current mode: 2 and token: VarrockClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: ArdougneClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: DesertClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: FaladorClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: FremennikClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: KandarinClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: KaramjaClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: LumbridgeClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: MorytaniaClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: WesternClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: WildernessClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: diaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: partialDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: pc-points
    [10/20/17 9:45 PM]: Current mode: 2 and token: killStreak
    [10/20/17 9:45 PM]: Current mode: 2 and token: bonus-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: jail-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: mute-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: marketmute-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: last-yell
    [10/20/17 9:45 PM]: Current mode: 2 and token: splitChat
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-task
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-task-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-master
    [10/20/17 9:45 PM]: Current mode: 2 and token: consecutive-tasks
    [10/20/17 9:45 PM]: Current mode: 2 and token: mage-arena-points
    [10/20/17 9:45 PM]: Current mode: 2 and token: autoRet
    [10/20/17 9:45 PM]: Current mode: 2 and token: flagged
    [10/20/17 9:45 PM]: Current mode: 2 and token: keepTitle
    [10/20/17 9:45 PM]: Current mode: 2 and token: killTitle
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave
    [10/20/17 9:45 PM]: Current mode: 2 and token: gwkc
    [10/20/17 9:45 PM]: Current mode: 2 and token: fightMode
    [10/20/17 9:45 PM]: Current mode: 2 and token: privatechat
    [10/20/17 9:45 PM]: Current mode: 2 and token: void
    [10/20/17 9:45 PM]: Current mode: 2 and token: quickprayer
    [10/20/17 9:45 PM]: Current mode: 2 and token: pouch-rune
    [10/20/17 9:45 PM]: Current mode: 2 and token: pouch-pure
    [10/20/17 9:45 PM]: Current mode: 2 and token: crabsKilled
    [10/20/17 9:45 PM]: Current mode: 2 and token: farming-poison-berry
    [10/20/17 9:45 PM]: Current mode: 2 and token: farming-patch-0
    [10/20/17 9:45 PM]: Current mode: 2 and token: halloweenOrderGiven
    [10/20/17 9:45 PM]: Current mode: 2 and token: halloweenOrderChosen
    [10/20/17 9:45 PM]: Current mode: 2 and token: halloweenOrderNumber
    [10/20/17 9:45 PM]: Current mode: 2 and token: district-levels
    [10/20/17 9:45 PM]: Current mode: 2 and token: inDistrict
    [10/20/17 9:45 PM]: Current mode: 2 and token: safeBoxSlots
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-cerberus
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-skotizo
    [10/20/17 9:45 PM]: sending save request...
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-pvp
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-kraken
    [10/20/17 9:45 PM]: [Logged in]: 1
    New player:

    Code:
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-rights
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-rights-secondary
    [10/20/17 9:45 PM]: Current mode: 2 and token: exp-rate
    [10/20/17 9:45 PM]: Current mode: 2 and token: mode
    [10/20/17 9:45 PM]: Current mode: 2 and token: tutorial-stage
    [10/20/17 9:45 PM]: Current mode: 2 and token: brightness
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-height
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-hp
    [10/20/17 9:45 PM]: Current mode: 2 and token: play-time
    [10/20/17 9:45 PM]: Current mode: 2 and token: last-clan
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-specRestore
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-posx
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-posy
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin-cancellation
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin-unlock-delay
    [10/20/17 9:45 PM]: Current mode: 2 and token: placeholders
    [10/20/17 9:45 PM]: Current mode: 2 and token: teleportStone
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin-cancellation-delay
    [10/20/17 9:45 PM]: Current mode: 2 and token: show-drop-warning
    [10/20/17 9:45 PM]: Current mode: 2 and token: accept-aid
    [10/20/17 9:45 PM]: Current mode: 2 and token: did-you-know
    [10/20/17 9:45 PM]: Current mode: 2 and token: lootvalue
    [10/20/17 9:45 PM]: Current mode: 2 and token: raidPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: experience-counter
    [10/20/17 9:45 PM]: Current mode: 2 and token: prestigeLevel
    [10/20/17 9:45 PM]: Current mode: 2 and token: skillPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: assaultPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: hasBoughtCannon
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-title-updated
    [10/20/17 9:45 PM]: Current mode: 2 and token: connected-from
    [10/20/17 9:45 PM]: Current mode: 2 and token: mac-address
    [10/20/17 9:45 PM]: Current mode: 2 and token: removed-slayer-tasks
    [10/20/17 9:45 PM]: Current mode: 2 and token: experienceMultiplier
    [10/20/17 9:45 PM]: Current mode: 2 and token: last-incentive
    [10/20/17 9:45 PM]: Current mode: 2 and token: rfd-round
    [10/20/17 9:45 PM]: Current mode: 2 and token: run-energy
    [10/20/17 9:45 PM]: Current mode: 2 and token: lastLoginDate
    [10/20/17 9:45 PM]: Current mode: 2 and token: has-npc
    [10/20/17 9:45 PM]: Current mode: 2 and token: summonId
    [10/20/17 9:45 PM]: Current mode: 2 and token: startPack
    [10/20/17 9:45 PM]: Current mode: 2 and token: setPin
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-helmet
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-imbued-helmet
    [10/20/17 9:45 PM]: Current mode: 2 and token: bigger-boss-tasks
    [10/20/17 9:45 PM]: Current mode: 2 and token: cerberus-route
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-tasks-completed
    [10/20/17 9:45 PM]: Current mode: 2 and token: claimedReward
    [10/20/17 9:45 PM]: Current mode: 2 and token: dragonfire-shield-charge
    [10/20/17 9:45 PM]: Current mode: 2 and token: rfd-gloves
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave-id
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave-type
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave-info
    [10/20/17 9:45 PM]: Current mode: 2 and token: master-clue-reqs
    [10/20/17 9:45 PM]: Current mode: 2 and token: counters
    [10/20/17 9:45 PM]: Current mode: 2 and token: max-cape
    [10/20/17 9:45 PM]: Current mode: 2 and token: clue-container
    [10/20/17 9:45 PM]: Current mode: 2 and token: clue-reward
    [10/20/17 9:45 PM]: Current mode: 2 and token: easy-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: medium-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: hard-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: elite-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: master-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: onClue
    [10/20/17 9:45 PM]: Current mode: 2 and token: clueStage
    [10/20/17 9:45 PM]: Current mode: 2 and token: selectedClue
    [10/20/17 9:45 PM]: Current mode: 2 and token: zulrah-best-time
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-staff
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-pipe-ammo
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-pipe-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-pipe-charge
    [10/20/17 9:45 PM]: Current mode: 2 and token: serpentine-helm
    [10/20/17 9:45 PM]: Current mode: 2 and token: trident-of-the-seas
    [10/20/17 9:45 PM]: Current mode: 2 and token: trident-of-the-swamp
    [10/20/17 9:45 PM]: Current mode: 2 and token: arclight-charge
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayerPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: crystal-bow-shots
    [10/20/17 9:45 PM]: Current mode: 2 and token: skull-timer
    [10/20/17 9:45 PM]: Current mode: 2 and token: magic-book
    [10/20/17 9:45 PM]: Current mode: 2 and token: ahrim
    [10/20/17 9:45 PM]: Current mode: 2 and token: dharok
    [10/20/17 9:45 PM]: Current mode: 2 and token: guthan
    [10/20/17 9:45 PM]: Current mode: 2 and token: karil
    [10/20/17 9:45 PM]: Current mode: 2 and token: torag
    [10/20/17 9:45 PM]: Current mode: 2 and token: verac
    [10/20/17 9:45 PM]: Current mode: 2 and token: barrows-final-brother
    [10/20/17 9:45 PM]: Current mode: 2 and token: barrows-monsters-killcount
    [10/20/17 9:45 PM]: Current mode: 2 and token: barrows-completed
    [10/20/17 9:45 PM]: Current mode: 2 and token: special-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: prayer-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: KC
    [10/20/17 9:45 PM]: Current mode: 2 and token: DC
    [10/20/17 9:45 PM]: Current mode: 2 and token: total-hunter-kills
    [10/20/17 9:45 PM]: Current mode: 2 and token: total-rogue-kills
    [10/20/17 9:45 PM]: Current mode: 2 and token: target-time-delay
    [10/20/17 9:45 PM]: Current mode: 2 and token: bh-penalties
    [10/20/17 9:45 PM]: Current mode: 2 and token: bh-bounties
    [10/20/17 9:45 PM]: Current mode: 2 and token: statistics-visible
    [10/20/17 9:45 PM]: Current mode: 2 and token: spell-accessible
    [10/20/17 9:45 PM]: Current mode: 2 and token: zerkAmount
    [10/20/17 9:45 PM]: Current mode: 2 and token: pkp
    [10/20/17 9:45 PM]: Current mode: 2 and token: donP
    [10/20/17 9:45 PM]: Current mode: 2 and token: donA
    [10/20/17 9:45 PM]: Current mode: 2 and token: votePoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: achievement-points
    [10/20/17 9:45 PM]: Current mode: 2 and token: achievement-items
    [10/20/17 9:45 PM]: Current mode: 2 and token: xpLock
    [10/20/17 9:45 PM]: Current mode: 2 and token: teleblock-length
    [10/20/17 9:45 PM]: Current mode: 2 and token: VarrockClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: ArdougneClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: DesertClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: FaladorClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: FremennikClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: KandarinClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: KaramjaClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: LumbridgeClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: MorytaniaClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: WesternClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: WildernessClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: diaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: partialDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: pc-points
    [10/20/17 9:45 PM]: Current mode: 2 and token: killStreak
    [10/20/17 9:45 PM]: Current mode: 2 and token: bonus-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: jail-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: mute-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: marketmute-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: last-yell
    [10/20/17 9:45 PM]: Current mode: 2 and token: splitChat
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-master
    [10/20/17 9:45 PM]: Current mode: 2 and token: consecutive-tasks
    [10/20/17 9:45 PM]: Current mode: 2 and token: mage-arena-points
    [10/20/17 9:45 PM]: Current mode: 2 and token: autoRet
    [10/20/17 9:45 PM]: Current mode: 2 and token: flagged
    [10/20/17 9:45 PM]: Current mode: 2 and token: keepTitle
    [10/20/17 9:45 PM]: Current mode: 2 and token: killTitle
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave
    [10/20/17 9:45 PM]: Current mode: 2 and token: gwkc
    [10/20/17 9:45 PM]: Current mode: 2 and token: fightMode
    [10/20/17 9:45 PM]: Current mode: 2 and token: privatechat
    [10/20/17 9:45 PM]: Current mode: 2 and token: void
    [10/20/17 9:45 PM]: Current mode: 2 and token: quickprayer
    [10/20/17 9:45 PM]: Current mode: 2 and token: pouch-rune
    [10/20/17 9:45 PM]: Current mode: 2 and token: pouch-pure
    [10/20/17 9:45 PM]: Current mode: 2 and token: crabsKilled
    [10/20/17 9:45 PM]: Current mode: 2 and token: farming-poison-berry
    [10/20/17 9:45 PM]: Current mode: 2 and token: farming-patch-0
    [10/20/17 9:45 PM]: Current mode: 2 and token: halloweenOrderGiven
    [10/20/17 9:45 PM]: Current mode: 2 and token: halloweenOrderChosen
    [10/20/17 9:45 PM]: Current mode: 2 and token: halloweenOrderNumber
    [10/20/17 9:45 PM]: Current mode: 2 and token: district-levels
    [10/20/17 9:45 PM]: Current mode: 2 and token: inDistrict
    [10/20/17 9:45 PM]: Current mode: 2 and token: safeBoxSlots
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-cerberus
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-skotizo
    [10/20/17 9:45 PM]: sending save request...
    [10/20/17 9:45 PM]: Found..4151, 1.
    [10/20/17 9:45 PM]: Found..19675, 1.
    [10/20/17 9:45 PM]: Found..4151, 1.
    [10/20/17 9:45 PM]: Found..4151, 1.
    [10/20/17 9:45 PM]: Found..4151, 1.
    [10/20/17 9:45 PM]: Found..4151, 1.
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-pvp
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-kraken
    [10/20/17 9:45 PM]: [Logged in]: 2
    forgot logout part:

    Code:
    [10/20/17 9:50 PM]: sends code to save..?
    [10/20/17 9:50 PM]: Game saved for player 1
    [10/20/17 9:50 PM]: [Logged out]: 1
    
    
    
    [10/20/17 9:50 PM]: sends code to save..?
    [10/20/17 9:50 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:50 PM]: Item is not nulled: 19675, 1
    [10/20/17 9:50 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:50 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:50 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:50 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:50 PM]: Game saved for player 2
    [10/20/17 9:50 PM]: [Logged out]: 2
    Reply With Quote  
     

  3. #23  
    Community Veteran


    Arch337's Avatar
    Join Date
    Sep 2008
    Posts
    2,950
    Thanks given
    210
    Thanks received
    349
    Rep Power
    1376
    Quote Originally Posted by Regenerating View Post
    Old player:

    Code:
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-rights
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-rights-secondary
    [10/20/17 9:45 PM]: Current mode: 2 and token: exp-rate
    [10/20/17 9:45 PM]: Current mode: 2 and token: mode
    [10/20/17 9:45 PM]: Current mode: 2 and token: tutorial-stage
    [10/20/17 9:45 PM]: Current mode: 2 and token: brightness
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-height
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-hp
    [10/20/17 9:45 PM]: Current mode: 2 and token: play-time
    [10/20/17 9:45 PM]: Current mode: 2 and token: last-clan
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-specRestore
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-posx
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-posy
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin-cancellation
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin-unlock-delay
    [10/20/17 9:45 PM]: Current mode: 2 and token: placeholders
    [10/20/17 9:45 PM]: Current mode: 2 and token: teleportStone
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin-cancellation-delay
    [10/20/17 9:45 PM]: Current mode: 2 and token: show-drop-warning
    [10/20/17 9:45 PM]: Current mode: 2 and token: accept-aid
    [10/20/17 9:45 PM]: Current mode: 2 and token: did-you-know
    [10/20/17 9:45 PM]: Current mode: 2 and token: lootvalue
    [10/20/17 9:45 PM]: Current mode: 2 and token: raidPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: experience-counter
    [10/20/17 9:45 PM]: Current mode: 2 and token: prestigeLevel
    [10/20/17 9:45 PM]: Current mode: 2 and token: skillPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: assaultPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: hasBoughtCannon
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-title-updated
    [10/20/17 9:45 PM]: Current mode: 2 and token: connected-from
    [10/20/17 9:45 PM]: Current mode: 2 and token: connected-from
    [10/20/17 9:45 PM]: Current mode: 2 and token: connected-from
    [10/20/17 9:45 PM]: Current mode: 2 and token: connected-from
    [10/20/17 9:45 PM]: Current mode: 2 and token: connected-from
    [10/20/17 9:45 PM]: Current mode: 2 and token: mac-address
    [10/20/17 9:45 PM]: Current mode: 2 and token: killed-players
    [10/20/17 9:45 PM]: Current mode: 2 and token: killed-players
    [10/20/17 9:45 PM]: Current mode: 2 and token: removed-slayer-tasks
    [10/20/17 9:45 PM]: Current mode: 2 and token: experienceMultiplier
    [10/20/17 9:45 PM]: Current mode: 2 and token: last-incentive
    [10/20/17 9:45 PM]: Current mode: 2 and token: rfd-round
    [10/20/17 9:45 PM]: Current mode: 2 and token: run-energy
    [10/20/17 9:45 PM]: Current mode: 2 and token: lastLoginDate
    [10/20/17 9:45 PM]: Current mode: 2 and token: has-npc
    [10/20/17 9:45 PM]: Current mode: 2 and token: summonId
    [10/20/17 9:45 PM]: Current mode: 2 and token: startPack
    [10/20/17 9:45 PM]: Current mode: 2 and token: setPin
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-helmet
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-imbued-helmet
    [10/20/17 9:45 PM]: Current mode: 2 and token: bigger-boss-tasks
    [10/20/17 9:45 PM]: Current mode: 2 and token: cerberus-route
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-tasks-completed
    [10/20/17 9:45 PM]: Current mode: 2 and token: claimedReward
    [10/20/17 9:45 PM]: Current mode: 2 and token: dragonfire-shield-charge
    [10/20/17 9:45 PM]: Current mode: 2 and token: rfd-gloves
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave-id
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave-type
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave-info
    [10/20/17 9:45 PM]: Current mode: 2 and token: master-clue-reqs
    [10/20/17 9:45 PM]: Current mode: 2 and token: counters
    [10/20/17 9:45 PM]: Current mode: 2 and token: max-cape
    [10/20/17 9:45 PM]: Current mode: 2 and token: clue-container
    [10/20/17 9:45 PM]: Current mode: 2 and token: clue-reward
    [10/20/17 9:45 PM]: Current mode: 2 and token: easy-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: medium-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: hard-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: elite-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: master-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: onClue
    [10/20/17 9:45 PM]: Current mode: 2 and token: clueStage
    [10/20/17 9:45 PM]: Current mode: 2 and token: selectedClue
    [10/20/17 9:45 PM]: Current mode: 2 and token: zulrah-best-time
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-staff
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-pipe-ammo
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-pipe-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-pipe-charge
    [10/20/17 9:45 PM]: Current mode: 2 and token: serpentine-helm
    [10/20/17 9:45 PM]: Current mode: 2 and token: trident-of-the-seas
    [10/20/17 9:45 PM]: Current mode: 2 and token: trident-of-the-swamp
    [10/20/17 9:45 PM]: Current mode: 2 and token: arclight-charge
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayerPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: crystal-bow-shots
    [10/20/17 9:45 PM]: Current mode: 2 and token: skull-timer
    [10/20/17 9:45 PM]: Current mode: 2 and token: magic-book
    [10/20/17 9:45 PM]: Current mode: 2 and token: ahrim
    [10/20/17 9:45 PM]: Current mode: 2 and token: dharok
    [10/20/17 9:45 PM]: Current mode: 2 and token: guthan
    [10/20/17 9:45 PM]: Current mode: 2 and token: karil
    [10/20/17 9:45 PM]: Current mode: 2 and token: torag
    [10/20/17 9:45 PM]: Current mode: 2 and token: verac
    [10/20/17 9:45 PM]: Current mode: 2 and token: barrows-final-brother
    [10/20/17 9:45 PM]: Current mode: 2 and token: barrows-monsters-killcount
    [10/20/17 9:45 PM]: Current mode: 2 and token: barrows-completed
    [10/20/17 9:45 PM]: Current mode: 2 and token: special-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: prayer-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: KC
    [10/20/17 9:45 PM]: Current mode: 2 and token: DC
    [10/20/17 9:45 PM]: Current mode: 2 and token: total-hunter-kills
    [10/20/17 9:45 PM]: Current mode: 2 and token: total-rogue-kills
    [10/20/17 9:45 PM]: Current mode: 2 and token: target-time-delay
    [10/20/17 9:45 PM]: Current mode: 2 and token: bh-penalties
    [10/20/17 9:45 PM]: Current mode: 2 and token: bh-bounties
    [10/20/17 9:45 PM]: Current mode: 2 and token: statistics-visible
    [10/20/17 9:45 PM]: Current mode: 2 and token: spell-accessible
    [10/20/17 9:45 PM]: Current mode: 2 and token: zerkAmount
    [10/20/17 9:45 PM]: Current mode: 2 and token: pkp
    [10/20/17 9:45 PM]: Current mode: 2 and token: donP
    [10/20/17 9:45 PM]: Current mode: 2 and token: donA
    [10/20/17 9:45 PM]: Current mode: 2 and token: votePoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: achievement-points
    [10/20/17 9:45 PM]: Current mode: 2 and token: achievement-items
    [10/20/17 9:45 PM]: Current mode: 2 and token: xpLock
    [10/20/17 9:45 PM]: Current mode: 2 and token: teleblock-length
    [10/20/17 9:45 PM]: Current mode: 2 and token: VarrockClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: ArdougneClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: DesertClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: FaladorClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: FremennikClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: KandarinClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: KaramjaClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: LumbridgeClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: MorytaniaClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: WesternClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: WildernessClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: diaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: partialDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: pc-points
    [10/20/17 9:45 PM]: Current mode: 2 and token: killStreak
    [10/20/17 9:45 PM]: Current mode: 2 and token: bonus-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: jail-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: mute-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: marketmute-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: last-yell
    [10/20/17 9:45 PM]: Current mode: 2 and token: splitChat
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-task
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-task-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-master
    [10/20/17 9:45 PM]: Current mode: 2 and token: consecutive-tasks
    [10/20/17 9:45 PM]: Current mode: 2 and token: mage-arena-points
    [10/20/17 9:45 PM]: Current mode: 2 and token: autoRet
    [10/20/17 9:45 PM]: Current mode: 2 and token: flagged
    [10/20/17 9:45 PM]: Current mode: 2 and token: keepTitle
    [10/20/17 9:45 PM]: Current mode: 2 and token: killTitle
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave
    [10/20/17 9:45 PM]: Current mode: 2 and token: gwkc
    [10/20/17 9:45 PM]: Current mode: 2 and token: fightMode
    [10/20/17 9:45 PM]: Current mode: 2 and token: privatechat
    [10/20/17 9:45 PM]: Current mode: 2 and token: void
    [10/20/17 9:45 PM]: Current mode: 2 and token: quickprayer
    [10/20/17 9:45 PM]: Current mode: 2 and token: pouch-rune
    [10/20/17 9:45 PM]: Current mode: 2 and token: pouch-pure
    [10/20/17 9:45 PM]: Current mode: 2 and token: crabsKilled
    [10/20/17 9:45 PM]: Current mode: 2 and token: farming-poison-berry
    [10/20/17 9:45 PM]: Current mode: 2 and token: farming-patch-0
    [10/20/17 9:45 PM]: Current mode: 2 and token: halloweenOrderGiven
    [10/20/17 9:45 PM]: Current mode: 2 and token: halloweenOrderChosen
    [10/20/17 9:45 PM]: Current mode: 2 and token: halloweenOrderNumber
    [10/20/17 9:45 PM]: Current mode: 2 and token: district-levels
    [10/20/17 9:45 PM]: Current mode: 2 and token: inDistrict
    [10/20/17 9:45 PM]: Current mode: 2 and token: safeBoxSlots
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-cerberus
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-skotizo
    [10/20/17 9:45 PM]: sending save request...
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-pvp
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-kraken
    [10/20/17 9:45 PM]: [Logged in]: 1
    New player:

    Code:
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-rights
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-rights-secondary
    [10/20/17 9:45 PM]: Current mode: 2 and token: exp-rate
    [10/20/17 9:45 PM]: Current mode: 2 and token: mode
    [10/20/17 9:45 PM]: Current mode: 2 and token: tutorial-stage
    [10/20/17 9:45 PM]: Current mode: 2 and token: brightness
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-height
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-hp
    [10/20/17 9:45 PM]: Current mode: 2 and token: play-time
    [10/20/17 9:45 PM]: Current mode: 2 and token: last-clan
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-specRestore
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-posx
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-posy
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin-cancellation
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin-unlock-delay
    [10/20/17 9:45 PM]: Current mode: 2 and token: placeholders
    [10/20/17 9:45 PM]: Current mode: 2 and token: teleportStone
    [10/20/17 9:45 PM]: Current mode: 2 and token: bank-pin-cancellation-delay
    [10/20/17 9:45 PM]: Current mode: 2 and token: show-drop-warning
    [10/20/17 9:45 PM]: Current mode: 2 and token: accept-aid
    [10/20/17 9:45 PM]: Current mode: 2 and token: did-you-know
    [10/20/17 9:45 PM]: Current mode: 2 and token: lootvalue
    [10/20/17 9:45 PM]: Current mode: 2 and token: raidPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: experience-counter
    [10/20/17 9:45 PM]: Current mode: 2 and token: prestigeLevel
    [10/20/17 9:45 PM]: Current mode: 2 and token: skillPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: assaultPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: hasBoughtCannon
    [10/20/17 9:45 PM]: Current mode: 2 and token: character-title-updated
    [10/20/17 9:45 PM]: Current mode: 2 and token: connected-from
    [10/20/17 9:45 PM]: Current mode: 2 and token: mac-address
    [10/20/17 9:45 PM]: Current mode: 2 and token: removed-slayer-tasks
    [10/20/17 9:45 PM]: Current mode: 2 and token: experienceMultiplier
    [10/20/17 9:45 PM]: Current mode: 2 and token: last-incentive
    [10/20/17 9:45 PM]: Current mode: 2 and token: rfd-round
    [10/20/17 9:45 PM]: Current mode: 2 and token: run-energy
    [10/20/17 9:45 PM]: Current mode: 2 and token: lastLoginDate
    [10/20/17 9:45 PM]: Current mode: 2 and token: has-npc
    [10/20/17 9:45 PM]: Current mode: 2 and token: summonId
    [10/20/17 9:45 PM]: Current mode: 2 and token: startPack
    [10/20/17 9:45 PM]: Current mode: 2 and token: setPin
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-helmet
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-imbued-helmet
    [10/20/17 9:45 PM]: Current mode: 2 and token: bigger-boss-tasks
    [10/20/17 9:45 PM]: Current mode: 2 and token: cerberus-route
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-tasks-completed
    [10/20/17 9:45 PM]: Current mode: 2 and token: claimedReward
    [10/20/17 9:45 PM]: Current mode: 2 and token: dragonfire-shield-charge
    [10/20/17 9:45 PM]: Current mode: 2 and token: rfd-gloves
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave-id
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave-type
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave-info
    [10/20/17 9:45 PM]: Current mode: 2 and token: master-clue-reqs
    [10/20/17 9:45 PM]: Current mode: 2 and token: counters
    [10/20/17 9:45 PM]: Current mode: 2 and token: max-cape
    [10/20/17 9:45 PM]: Current mode: 2 and token: clue-container
    [10/20/17 9:45 PM]: Current mode: 2 and token: clue-reward
    [10/20/17 9:45 PM]: Current mode: 2 and token: easy-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: medium-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: hard-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: elite-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: master-clue
    [10/20/17 9:45 PM]: Current mode: 2 and token: onClue
    [10/20/17 9:45 PM]: Current mode: 2 and token: clueStage
    [10/20/17 9:45 PM]: Current mode: 2 and token: selectedClue
    [10/20/17 9:45 PM]: Current mode: 2 and token: zulrah-best-time
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-staff
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-pipe-ammo
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-pipe-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: toxic-pipe-charge
    [10/20/17 9:45 PM]: Current mode: 2 and token: serpentine-helm
    [10/20/17 9:45 PM]: Current mode: 2 and token: trident-of-the-seas
    [10/20/17 9:45 PM]: Current mode: 2 and token: trident-of-the-swamp
    [10/20/17 9:45 PM]: Current mode: 2 and token: arclight-charge
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayerPoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: crystal-bow-shots
    [10/20/17 9:45 PM]: Current mode: 2 and token: skull-timer
    [10/20/17 9:45 PM]: Current mode: 2 and token: magic-book
    [10/20/17 9:45 PM]: Current mode: 2 and token: ahrim
    [10/20/17 9:45 PM]: Current mode: 2 and token: dharok
    [10/20/17 9:45 PM]: Current mode: 2 and token: guthan
    [10/20/17 9:45 PM]: Current mode: 2 and token: karil
    [10/20/17 9:45 PM]: Current mode: 2 and token: torag
    [10/20/17 9:45 PM]: Current mode: 2 and token: verac
    [10/20/17 9:45 PM]: Current mode: 2 and token: barrows-final-brother
    [10/20/17 9:45 PM]: Current mode: 2 and token: barrows-monsters-killcount
    [10/20/17 9:45 PM]: Current mode: 2 and token: barrows-completed
    [10/20/17 9:45 PM]: Current mode: 2 and token: special-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: prayer-amount
    [10/20/17 9:45 PM]: Current mode: 2 and token: KC
    [10/20/17 9:45 PM]: Current mode: 2 and token: DC
    [10/20/17 9:45 PM]: Current mode: 2 and token: total-hunter-kills
    [10/20/17 9:45 PM]: Current mode: 2 and token: total-rogue-kills
    [10/20/17 9:45 PM]: Current mode: 2 and token: target-time-delay
    [10/20/17 9:45 PM]: Current mode: 2 and token: bh-penalties
    [10/20/17 9:45 PM]: Current mode: 2 and token: bh-bounties
    [10/20/17 9:45 PM]: Current mode: 2 and token: statistics-visible
    [10/20/17 9:45 PM]: Current mode: 2 and token: spell-accessible
    [10/20/17 9:45 PM]: Current mode: 2 and token: zerkAmount
    [10/20/17 9:45 PM]: Current mode: 2 and token: pkp
    [10/20/17 9:45 PM]: Current mode: 2 and token: donP
    [10/20/17 9:45 PM]: Current mode: 2 and token: donA
    [10/20/17 9:45 PM]: Current mode: 2 and token: votePoints
    [10/20/17 9:45 PM]: Current mode: 2 and token: achievement-points
    [10/20/17 9:45 PM]: Current mode: 2 and token: achievement-items
    [10/20/17 9:45 PM]: Current mode: 2 and token: xpLock
    [10/20/17 9:45 PM]: Current mode: 2 and token: teleblock-length
    [10/20/17 9:45 PM]: Current mode: 2 and token: VarrockClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: ArdougneClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: DesertClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: FaladorClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: FremennikClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: KandarinClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: KaramjaClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: LumbridgeClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: MorytaniaClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: WesternClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: WildernessClaimedDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: diaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: partialDiaries
    [10/20/17 9:45 PM]: Current mode: 2 and token: pc-points
    [10/20/17 9:45 PM]: Current mode: 2 and token: killStreak
    [10/20/17 9:45 PM]: Current mode: 2 and token: bonus-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: jail-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: mute-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: marketmute-end
    [10/20/17 9:45 PM]: Current mode: 2 and token: last-yell
    [10/20/17 9:45 PM]: Current mode: 2 and token: splitChat
    [10/20/17 9:45 PM]: Current mode: 2 and token: slayer-master
    [10/20/17 9:45 PM]: Current mode: 2 and token: consecutive-tasks
    [10/20/17 9:45 PM]: Current mode: 2 and token: mage-arena-points
    [10/20/17 9:45 PM]: Current mode: 2 and token: autoRet
    [10/20/17 9:45 PM]: Current mode: 2 and token: flagged
    [10/20/17 9:45 PM]: Current mode: 2 and token: keepTitle
    [10/20/17 9:45 PM]: Current mode: 2 and token: killTitle
    [10/20/17 9:45 PM]: Current mode: 2 and token: wave
    [10/20/17 9:45 PM]: Current mode: 2 and token: gwkc
    [10/20/17 9:45 PM]: Current mode: 2 and token: fightMode
    [10/20/17 9:45 PM]: Current mode: 2 and token: privatechat
    [10/20/17 9:45 PM]: Current mode: 2 and token: void
    [10/20/17 9:45 PM]: Current mode: 2 and token: quickprayer
    [10/20/17 9:45 PM]: Current mode: 2 and token: pouch-rune
    [10/20/17 9:45 PM]: Current mode: 2 and token: pouch-pure
    [10/20/17 9:45 PM]: Current mode: 2 and token: crabsKilled
    [10/20/17 9:45 PM]: Current mode: 2 and token: farming-poison-berry
    [10/20/17 9:45 PM]: Current mode: 2 and token: farming-patch-0
    [10/20/17 9:45 PM]: Current mode: 2 and token: halloweenOrderGiven
    [10/20/17 9:45 PM]: Current mode: 2 and token: halloweenOrderChosen
    [10/20/17 9:45 PM]: Current mode: 2 and token: halloweenOrderNumber
    [10/20/17 9:45 PM]: Current mode: 2 and token: district-levels
    [10/20/17 9:45 PM]: Current mode: 2 and token: inDistrict
    [10/20/17 9:45 PM]: Current mode: 2 and token: safeBoxSlots
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-cerberus
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-skotizo
    [10/20/17 9:45 PM]: sending save request...
    [10/20/17 9:45 PM]: Found..4151, 1.
    [10/20/17 9:45 PM]: Found..19675, 1.
    [10/20/17 9:45 PM]: Found..4151, 1.
    [10/20/17 9:45 PM]: Found..4151, 1.
    [10/20/17 9:45 PM]: Found..4151, 1.
    [10/20/17 9:45 PM]: Found..4151, 1.
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-pvp
    [10/20/17 9:45 PM]: Current mode: 2 and token: lost-items-kraken
    [10/20/17 9:45 PM]: [Logged in]: 2
    Alright what happend if you die at skotizo with some items that were suppose to be protected then log out on your old account?


    "A fail act is something you do regular, but a dumb act is something you can learn from"
    Spoiler for Problem?:
    Reply With Quote  
     

  4. #24  
    Registered Member
    Join Date
    Jun 2017
    Posts
    30
    Thanks given
    1
    Thanks received
    0
    Rep Power
    26
    Quote Originally Posted by arch337 View Post
    Alright what happend if you die at skotizo with some items that were suppose to be protected then log out on your old account?
    Gave both 6 whips to die with


    Old:

    Code:
    [10/20/17 9:52 PM]: sends code to save..?
    [10/20/17 9:52 PM]: Game saved for player 1
    [10/20/17 9:52 PM]: [Logged out]: 1
    New:

    Code:
    [10/20/17 9:53 PM]: sends code to save..?
    [10/20/17 9:53 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:53 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:53 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:53 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:53 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:53 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:53 PM]: Game saved for player 2
    [10/20/17 9:53 PM]: [Logged out]: 2
    Reply With Quote  
     

  5. #25  
    Community Veteran


    Arch337's Avatar
    Join Date
    Sep 2008
    Posts
    2,950
    Thanks given
    210
    Thanks received
    349
    Rep Power
    1376
    Quote Originally Posted by Regenerating View Post
    Gave both 6 whips to die with


    Old:

    Code:
    [10/20/17 9:52 PM]: sends code to save..?
    [10/20/17 9:52 PM]: Game saved for player 1
    [10/20/17 9:52 PM]: [Logged out]: 1
    New:

    Code:
    [10/20/17 9:53 PM]: sends code to save..?
    [10/20/17 9:53 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:53 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:53 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:53 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:53 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:53 PM]: Item is not nulled: 4151, 1
    [10/20/17 9:53 PM]: Game saved for player 2
    [10/20/17 9:53 PM]: [Logged out]: 2
    Alright change the code in the save frrom:
    To:
    Code:
    System.out.println("sends code to save..?");
    if(p == null)
    System.out.println("p = null!");
    if(p.getSkotizoLostItems() == null) {
    System.out.println("p.getSkotizoLostItems() = null!");
    } else {
    System.out.println("send.." + p.getSkotizoLostItems());
    }
    for (GameItem item : p.getSkotizoLostItems()) {
    				if (item == null) {
    System.out.println("Item is nulled!");
    					continue;
    				}
    System.out.println("Item is not nulled: " + item.getId() + ", " + item.getAmount());
    				characterfile.write(item.getId() + "\t" + item.getAmount() + "\t");
    			}
    System.out.println("Code is done testing..");
    Then try the same thing again.


    "A fail act is something you do regular, but a dumb act is something you can learn from"
    Spoiler for Problem?:
    Reply With Quote  
     

  6. #26  
    Registered Member
    Join Date
    Jun 2017
    Posts
    30
    Thanks given
    1
    Thanks received
    0
    Rep Power
    26
    Quote Originally Posted by arch337 View Post
    Alright change the code in the save frrom:
    To:
    Code:
    System.out.println("sends code to save..?");
    if(p == null)
    System.out.println("p = null!");
    if(p.getSkotizoLostItems() == null) {
    System.out.println("p.getSkotizoLostItems() = null!");
    } else {
    System.out.println("send.." + p.getSkotizoLostItems());
    }
    for (GameItem item : p.getSkotizoLostItems()) {
    				if (item == null) {
    System.out.println("Item is nulled!");
    					continue;
    				}
    System.out.println("Item is not nulled: " + item.getId() + ", " + item.getAmount());
    				characterfile.write(item.getId() + "\t" + item.getAmount() + "\t");
    			}
    System.out.println("Code is done testing..");
    Then try the same thing again.
    Gave 6 whips once again

    Old:

    Code:
    [10/20/17 10:04 PM]: sends code to save..?
    [10/20/17 10:04 PM]: send..[]
    [10/20/17 10:04 PM]: Code is done testing..
    [10/20/17 10:04 PM]: Game saved for player 1
    [10/20/17 10:04 PM]: [Logged out]: 1
    New:

    Code:
    [10/20/17 10:06 PM]: sends code to save..?
    [10/20/17 10:06 PM]: send..[]
    [10/20/17 10:06 PM]: Code is done testing..
    [10/20/17 10:06 PM]: sends code to save..?
    [10/20/17 10:06 PM]: send..[GameItem [id=4151, amount=1, slot=0, stackable=false], GameItem [id=4151, amount=1, slot=0, stackable=false], GameItem [id=4151, amount=1, slot=0, stackable=false], GameItem [id=4151, amount=1, slot=0, stackable=false], GameItem [id=4151, amount=1, slot=0, stackable=false], GameItem [id=4151, amount=1, slot=0, stackable=false]]
    [10/20/17 10:06 PM]: Item is not nulled: 4151, 1
    [10/20/17 10:06 PM]: Item is not nulled: 4151, 1
    [10/20/17 10:06 PM]: Item is not nulled: 4151, 1
    [10/20/17 10:06 PM]: Item is not nulled: 4151, 1
    [10/20/17 10:06 PM]: Item is not nulled: 4151, 1
    [10/20/17 10:06 PM]: Item is not nulled: 4151, 1
    [10/20/17 10:06 PM]: Code is done testing..
    [10/20/17 10:06 PM]: Game saved for player 2
    [10/20/17 10:06 PM]: [Logged out]: 2
    Reply With Quote  
     

  7. #27  
    Community Veteran


    Arch337's Avatar
    Join Date
    Sep 2008
    Posts
    2,950
    Thanks given
    210
    Thanks received
    349
    Rep Power
    1376
    Quote Originally Posted by Regenerating View Post
    Gave 6 whips once again

    Old:

    Code:
    [10/20/17 10:04 PM]: sends code to save..?
    [10/20/17 10:04 PM]: send..[]
    [10/20/17 10:04 PM]: Code is done testing..
    [10/20/17 10:04 PM]: Game saved for player 1
    [10/20/17 10:04 PM]: [Logged out]: 1
    New:

    Code:
    [10/20/17 10:06 PM]: sends code to save..?
    [10/20/17 10:06 PM]: send..[]
    [10/20/17 10:06 PM]: Code is done testing..
    [10/20/17 10:06 PM]: sends code to save..?
    [10/20/17 10:06 PM]: send..[GameItem [id=4151, amount=1, slot=0, stackable=false], GameItem [id=4151, amount=1, slot=0, stackable=false], GameItem [id=4151, amount=1, slot=0, stackable=false], GameItem [id=4151, amount=1, slot=0, stackable=false], GameItem [id=4151, amount=1, slot=0, stackable=false], GameItem [id=4151, amount=1, slot=0, stackable=false]]
    [10/20/17 10:06 PM]: Item is not nulled: 4151, 1
    [10/20/17 10:06 PM]: Item is not nulled: 4151, 1
    [10/20/17 10:06 PM]: Item is not nulled: 4151, 1
    [10/20/17 10:06 PM]: Item is not nulled: 4151, 1
    [10/20/17 10:06 PM]: Item is not nulled: 4151, 1
    [10/20/17 10:06 PM]: Item is not nulled: 4151, 1
    [10/20/17 10:06 PM]: Code is done testing..
    [10/20/17 10:06 PM]: Game saved for player 2
    [10/20/17 10:06 PM]: [Logged out]: 2
    Mk now try:
    Code:
    System.out.println("sends code to save..?");
    System.out.println("checks stuff..." + p.getSkotizoLostItems().length);
    for (GameItem item : p.getSkotizoLostItems()) {
    				if (item == null) {
    System.out.println("Item is nulled!");
    					continue;
    				}
    System.out.println("Item is not nulled: " + item.getId() + ", " + item.getAmount());
    				characterfile.write(item.getId() + "\t" + item.getAmount() + "\t");
    			}
    System.out.println("Code is done testing..");
    If this sends a length that is more then 0 then something is odd.


    "A fail act is something you do regular, but a dumb act is something you can learn from"
    Spoiler for Problem?:
    Reply With Quote  
     

  8. #28  
    Registered Member
    Join Date
    Jun 2017
    Posts
    30
    Thanks given
    1
    Thanks received
    0
    Rep Power
    26
    Quote Originally Posted by arch337 View Post
    Mk now try:
    Code:
    System.out.println("sends code to save..?");
    System.out.println("checks stuff..." + p.getSkotizoLostItems().length);
    for (GameItem item : p.getSkotizoLostItems()) {
    				if (item == null) {
    System.out.println("Item is nulled!");
    					continue;
    				}
    System.out.println("Item is not nulled: " + item.getId() + ", " + item.getAmount());
    				characterfile.write(item.getId() + "\t" + item.getAmount() + "\t");
    			}
    System.out.println("Code is done testing..");
    If this sends a length that is more then 0 then something is odd.
    Getting error with the .length "length cannot be resolved or is not a field" wants me to create a field or constant in SkotizoLostItems class
    Would my lost items class help out at all?

    Code:
    package osv.model.npcs.bosses.skotizo;
    
    import java.util.ArrayList;
    
    import osv.Server;
    import osv.model.items.GameItem;
    import osv.model.items.ItemAssistant;
    import osv.model.items.bank.BankItem;
    import osv.model.players.Player;
    
    @SuppressWarnings("serial")
    public class SkotizoLostItems extends ArrayList<GameItem> {
    
    	/**
    	 * The player that has lost items
    	 */
    	private final Player player;
    
    	/**
    	 * Creates a new class for managing lost items by a single player
    	 * 
    	 * @param player the player who lost items
    	 */
    	public SkotizoLostItems(final Player player) {
    		this.player = player;
    	}
    
    	/**
    	 * Stores the players items into a list and deletes their items
    	 */
    	public void store() {
    		for (int i = 0; i < player.playerItems.length; i++) {
    			if (player.playerItems[i] < 1) {
    				continue;
    			}
    			add(new GameItem(player.playerItems[i] - 1, player.playerItemsN[i]));
    		}
    		for (int i = 0; i < player.playerEquipment.length; i++) {
    			if (player.playerEquipment[i] < 1) {
    				continue;
    			}
    			add(new GameItem(player.playerEquipment[i], player.playerEquipmentN[i]));
    		}
    		player.getItems().deleteEquipment();
    		player.getItems().deleteAllItems();
    	}
    
    	public void retain() {
    		int price = player.getRechargeItems().hasItem(13144) && player.getRechargeItems().useItem(13144) || player.getRechargeItems().hasItem(13143) && player.getRechargeItems().useItem(13143) ? -1 : 500_000;
    		if (!player.getItems().playerHasItem(995, price)) {
    			player.talkingNpc = 7283;
    			player.getDH().sendNpcChat("You need at least 500,000GP to claim your items.");
    			return;
    		}
    		for (GameItem item : this) {
    			if (player.getMode().isUltimateIronman()) {
    				if (!player.getItems().addItem(item.getId(), item.getAmount())) {
    					player.sendMessage("<col=CC0000>1x " + ItemAssistant.getItemName(item.getId()) + " has been dropped on the ground.</col>");
    					Server.itemHandler.createGroundItem(player, item.getId(), player.getX(), player.getY(), player.heightLevel, item.getAmount());
    				}
    			} else {
    				player.getItems().sendItemToAnyTabOrDrop(new BankItem(item.getId(), item.getAmount()), player.getX(), player.getY());
    			}
    		}
    		clear();
    		player.getItems().deleteItem2(995, price);
    		player.talkingNpc = 7283;
    		if (player.getMode().isUltimateIronman()) {
    			player.getDH().sendNpcChat("You have retained all of your lost items for 500,000GP.", "Your items are in your inventory.",
    					"@red@If there was not enough space, they were dropped.");
    		} else {
    			player.getDH().sendNpcChat("You have retained all of your lost items for 500,000GP.", "Your items are in your bank.");
    		}
    		player.nextChat = -1;
    	}
    
    }
    Reply With Quote  
     

  9. #29  
    Community Veteran


    Arch337's Avatar
    Join Date
    Sep 2008
    Posts
    2,950
    Thanks given
    210
    Thanks received
    349
    Rep Power
    1376
    Quote Originally Posted by Regenerating View Post
    Getting error with the .length "length cannot be resolved or is not a field" wants me to create a field or constant in SkotizoLostItems class
    Would my lost items class help out at all?

    Code:
    package osv.model.npcs.bosses.skotizo;
    
    import java.util.ArrayList;
    
    import osv.Server;
    import osv.model.items.GameItem;
    import osv.model.items.ItemAssistant;
    import osv.model.items.bank.BankItem;
    import osv.model.players.Player;
    
    @SuppressWarnings("serial")
    public class SkotizoLostItems extends ArrayList<GameItem> {
    
    	/**
    	 * The player that has lost items
    	 */
    	private final Player player;
    
    	/**
    	 * Creates a new class for managing lost items by a single player
    	 * 
    	 * @param player the player who lost items
    	 */
    	public SkotizoLostItems(final Player player) {
    		this.player = player;
    	}
    
    	/**
    	 * Stores the players items into a list and deletes their items
    	 */
    	public void store() {
    		for (int i = 0; i < player.playerItems.length; i++) {
    			if (player.playerItems[i] < 1) {
    				continue;
    			}
    			add(new GameItem(player.playerItems[i] - 1, player.playerItemsN[i]));
    		}
    		for (int i = 0; i < player.playerEquipment.length; i++) {
    			if (player.playerEquipment[i] < 1) {
    				continue;
    			}
    			add(new GameItem(player.playerEquipment[i], player.playerEquipmentN[i]));
    		}
    		player.getItems().deleteEquipment();
    		player.getItems().deleteAllItems();
    	}
    
    	public void retain() {
    		int price = player.getRechargeItems().hasItem(13144) && player.getRechargeItems().useItem(13144) || player.getRechargeItems().hasItem(13143) && player.getRechargeItems().useItem(13143) ? -1 : 500_000;
    		if (!player.getItems().playerHasItem(995, price)) {
    			player.talkingNpc = 7283;
    			player.getDH().sendNpcChat("You need at least 500,000GP to claim your items.");
    			return;
    		}
    		for (GameItem item : this) {
    			if (player.getMode().isUltimateIronman()) {
    				if (!player.getItems().addItem(item.getId(), item.getAmount())) {
    					player.sendMessage("<col=CC0000>1x " + ItemAssistant.getItemName(item.getId()) + " has been dropped on the ground.</col>");
    					Server.itemHandler.createGroundItem(player, item.getId(), player.getX(), player.getY(), player.heightLevel, item.getAmount());
    				}
    			} else {
    				player.getItems().sendItemToAnyTabOrDrop(new BankItem(item.getId(), item.getAmount()), player.getX(), player.getY());
    			}
    		}
    		clear();
    		player.getItems().deleteItem2(995, price);
    		player.talkingNpc = 7283;
    		if (player.getMode().isUltimateIronman()) {
    			player.getDH().sendNpcChat("You have retained all of your lost items for 500,000GP.", "Your items are in your inventory.",
    					"@red@If there was not enough space, they were dropped.");
    		} else {
    			player.getDH().sendNpcChat("You have retained all of your lost items for 500,000GP.", "Your items are in your bank.");
    		}
    		player.nextChat = -1;
    	}
    
    }
    This is then your issue as p.getSkotizoLostItems() has nothing to it for old players for some reason.
    This means it cant store anything due to no items and cant save no item.
    If you are using the same code for all of these, then you have to fix those aswell.
    It has nothing to do with your save by the looks of things and you can remove the load debugs we did and keep this last debug till you fix the issue.


    "A fail act is something you do regular, but a dumb act is something you can learn from"
    Spoiler for Problem?:
    Reply With Quote  
     

  10. #30  
    Registered Member
    Join Date
    Jun 2017
    Posts
    30
    Thanks given
    1
    Thanks received
    0
    Rep Power
    26
    Quote Originally Posted by arch337 View Post
    This is then your issue as p.getSkotizoLostItems() has nothing to it for old players for some reason.
    This means it cant store anything due to no items and cant save no item.
    If you are using the same code for all of these, then you have to fix those aswell.
    It has nothing to do with your save by the looks of things and you can remove the load debugs we did and keep this last debug till you fix the issue.

    o.O ... How should I approach this now?
    Reply With Quote  
     

Page 3 of 4 FirstFirst 1234 LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. PlayerSave line throws: OutofBounds: Expectation.
    By Haskell Curry in forum Help
    Replies: 5
    Last Post: 01-04-2011, 06:15 PM
  2. PlayerSave.java: 2kB for a FULL player
    By Colby in forum Snippets
    Replies: 18
    Last Post: 12-19-2010, 02:15 AM
  3. [Shard] Playersaving
    By u piguy u in forum Help
    Replies: 1
    Last Post: 04-11-2010, 02:45 PM
  4. [508] playersave
    By josue992222 in forum Help
    Replies: 1
    Last Post: 06-04-2009, 11:10 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •