Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.illerai.rs2.content.io;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.util.*;
- import java.util.concurrent.TimeUnit;
- import com.google.gson.Gson;
- import com.google.gson.GsonBuilder;
- import com.illerai.core.util.NameUtil;
- import com.illerai.core.util.Utility;
- import com.illerai.rs2.content.PlayerProperties;
- import com.illerai.rs2.content.PlayerTitle;
- import com.illerai.rs2.content.achievements.AchievementStore.Unlockables;
- import com.illerai.rs2.content.challenges.ChallengeList;
- import com.illerai.rs2.content.cluescroll.puzzles.PuzzleManager.Puzzle;
- import com.illerai.rs2.content.bank.Bank;
- import com.illerai.rs2.content.dialogue.DialogueManager;
- import com.illerai.rs2.content.minigames.barrows.Barrows.Brother;
- import com.illerai.rs2.content.skill.construction.HouseFurniture;
- import com.illerai.rs2.content.skill.construction.Portal;
- import com.illerai.rs2.content.skill.construction.Room;
- import com.illerai.rs2.content.skill.magic.weapons.TridentOfTheSeas;
- import com.illerai.rs2.content.skill.magic.weapons.TridentOfTheSwamp;
- import com.illerai.rs2.content.skill.melee.SerpentineHelmet;
- import com.illerai.rs2.content.skill.ranged.ToxicBlowpipe;
- import com.illerai.rs2.content.skill.slayer.Slayer;
- import com.illerai.rs2.content.skill.slayer.Slayer.SlayerDifficulty;
- import com.illerai.rs2.content.skill.slayer.SlayerArea.SlayerAreas;
- import com.illerai.rs2.content.skill.slayer.SlayerMasters;
- import com.illerai.rs2.entity.Location;
- import com.illerai.rs2.entity.Entity.AttackType;
- import com.illerai.rs2.entity.item.Equipment;
- import com.illerai.rs2.entity.item.Item;
- import com.illerai.rs2.entity.item.ItemDegrading;
- import com.illerai.rs2.entity.player.Player;
- import com.illerai.rs2.entity.player.PlayerGamemode;
- import com.illerai.rs2.entity.player.PlayerRights;
- import com.illerai.rs2.entity.player.ScreenSettings.ClientScreenSettings;
- public final class PlayerSave {
- public static final class PlayerDetails {
- public static boolean loadDetails(Player player) throws Exception {
- BufferedReader reader = null;
- try {
- File file = new File("./data/characters/details/" + NameUtil.uppercaseFirstLetter(player.getUsername()) + ".json");
- if (!file.exists()) {
- return false;
- }
- reader = new BufferedReader(new FileReader(file));
- PlayerDetails details = PlayerSave.GSON.fromJson(reader, PlayerDetails.class);
- player.setUsername(details.username);
- player.setPassword(details.password);
- player.setMemberId(details.memberid);
- player.setEmail(details.email);
- player.setQRLink(details.qrlink);
- player.setLostPassagesUnlock(details.lostPassagesUnlock);
- player.getLocation().setAs(new Location(details.x, details.y, details.z));
- player.setRights(PlayerRights.valueOf(details.rights.replace(" ", "_")));
- player.setmode(PlayerGamemode.valueOf(details.mode.replace(" ", "_")));
- player.getMembership().setMembership(details.membership);
- if(details.getLastDate != null)
- player.getMembership().setNewDate(details.getLastDate);
- if(details.getTarnDate != null)
- player.getMembership().setTarnDate(details.getTarnDate);
- player.getMembership().setTarn(details.getTarnKills);
- if (details.lastKnownUID != null)
- player.setLastKnownUID(details.lastKnownUID);
- if(details.insuredPets != null)
- for(int i = 0; i < player.getInsurance().insuredPets().length; i++)
- player.getInsurance().setInsured(i, details.insuredPets[i]);
- if(details.lostPets != null)
- for(int i = 0; i < player.getInsurance().getPetsLost().length; i++)
- player.getInsurance().setPetsLost(i, details.lostPets[i]);
- player.setYellTitle(details.yellTitle);
- player.getMasteryTree().setBlessing(details.blessing);
- player.setPlayerTitle(details.playerTitle);
- player.setWillPoints(details.warriorPoints);
- player.setWarriorWill(details.startedWarriorWill);
- player.getScreen().setScreenSetting(details.clientWidth, details.clientHeight, details.screenSetting);
- if (details.unlockedTitles != null && !details.unlockedTitles.isEmpty())
- player.unlockedTitles.addAll(details.unlockedTitles);
- player.playTimeTotal += details.playTimeTotal;
- player.setImbuedHeart(details.imbuedHeart);
- player.getBlessings().setChangeGodTimer(details.changeGod);
- player.setMoneyPouch(details.moneyPouch);
- player.getAlchPref().setWarningValue(details.alchValue);
- player.getAlchPref().setUntradeWarning(details.tradeWarning);
- player.setShopCollection(details.shopCollection);
- player.setShopMotto(details.shopMotto);
- player.setShopColor(details.shopColor);
- player.setRetaliate(details.retaliate);
- player.getSlayer().setArea(details.slayerArea);
- for(int i = 0; i < player.getSlayer().getSlayerCount().length; i++)
- try {
- if(details.slayerCount[i] > 0)
- player.getSlayer().setSlayerCount(i, details.slayerCount[i]);
- } catch (ArrayIndexOutOfBoundsException e) {
- player.getSlayer().setSlayerCount(i, 0);
- }
- if(details.masteryPoints != null)
- for(int i = 0; i < player.getMasteryTree().getPoints().length; i++)
- player.getMasteryTree().setPoints(i, details.masteryPoints[i]);
- if(details.keystones != null)
- for(int i = 0; i < player.getMasteryTree().getKeys().length; i++)
- player.getMasteryTree().setKeys(i, details.keystones[i]);
- try {
- if(details.getTotalTasksCompleted != null)
- for(int i = 0; i < player.getSlayer().getTasksCompleted().length; i++)
- player.getSlayer().setTasksCompleted(i, details.getTotalTasksCompleted[i]);
- if(details.getSlayerExtends != null)
- for(int i = 0; i < player.getSlayer().extensions.length; i++) {
- player.getSlayer().extensions[i][0] = details.getSlayerExtends[i][0];
- player.getSlayer().extensions[i][1] = details.getSlayerExtends[i][1];
- }
- if(details.getSlayerBlocks != null)
- for(int i = 0; i < player.getSlayer().blockedTasks.length; i++)
- player.getSlayer().blockedTasks[i] = details.getSlayerBlocks[i];
- if(details.getSlayerUnlocks != null)
- for(int i = 0; i < player.getSlayer().unlocks.length; i++)
- player.getSlayer().unlocks[i] = details.getSlayerUnlocks[i];
- } catch(ArrayIndexOutOfBoundsException e) {
- System.out.println("Failed to load Slayer information, setting extensions");
- }
- if(details.dimensionsSet != null)
- for(int i = 0; i < player.getDimensionSettings.length; i++)
- player.getDimensionSettings[i] = details.dimensionsSet[i];
- if(details.getDimensions != null)
- for(int i = 0; i < player.dimensions.length; i++)
- player.setDimensionTele(i, details.getDimensions[i][0], details.getDimensions[i][1], details.getDimensions[i][2]);
- player.setArclightCharge(details.arclightCharges);
- player.setDemonKills(details.demonKills);
- player.setFavour(details.favour);
- player.setIntroStage(details.introStage);
- player.setShayzien(details.shayzikenPoints);
- player.getSkill().setExpLock(details.expLock);
- player.getSlayer().setAmount(details.slayerAmount);
- player.setElixir(details.elixir);
- player.addSkillPoints(details.skillerPoints);
- player.getSlayer().setTask(details.slayerTask);
- player.getSlayer().setPreviousTask(details.slayerPreviousTask);
- player.setPoisonDamage(details.poisonDmg);
- player.getSpecialAttack().setSpecialAmount(details.spec);
- player.getRunEnergy().setEnergy(details.energy);
- player.setPestPoints(details.pestPoints);
- player.setArenaPoints(details.arenaPoints);
- player.getClient().setLogPlayer(details.logPackets);
- player.getRunEnergy().setRunning(details.running);
- player.setTeleblockTime(details.teleblockTime);
- player.setDeaths(details.deaths);
- player.setKills(details.kills);
- player.setSufferActive(details.sufferActive);
- player.setSufferCharges(details.sufferCharges);
- if(details.unlockedPrayers != null)
- for(int i = 0; i < details.unlockedPrayers.length; i++)
- player.getPrayer().setUnlocked(i, details.unlockedPrayers[i]);
- if(details.unlockedMLM != null)
- for(int i = 0; i < player.getMLM().getUnlocks().length; i++)
- player.getMLM().setUnlocks(i, details.unlockedMLM[i]);
- if(details.mageArena != null)
- for(int i = 0; i < player.getMageArena().length; i++)
- player.setMageArena(i, details.mageArena[i]);
- if(details.guideStages != null)
- for(int i = 0; i < player.getGuide().getStages().length; i++)
- player.getGuide().setStages(i, details.guideStages[i]);
- player.setRogueKills(details.rogueKills);
- player.setRogueRecord(details.rogueRecord);
- player.setHunterKills(details.hunterKills);
- player.setHunterRecord(details.hunterRecord);
- player.setLastKilledPlayers(details.lastKilledPlayers);
- player.setPin(details.pins);
- player.setIP(details.IP);
- player.getOverload().setOverloadTick(details.overload);
- player.getMasteryTree().setMaxPoints(details.masterypts);
- player.setEmailAddress(details.emailAddress);
- player.setFullName(details.fullName);
- player.setRecovery(details.recovery);
- player.setMoneySpent(details.moneySpent);
- player.setBountyPoints(details.bountyPoints);
- player.setMusicVolume((byte) details.musicVolume);
- player.setSoundVolume((byte) details.soundVolume);
- player.setSlayerPoints(details.slayerPoints);
- player.setEventPoints(details.eventPoints);
- player.setBlackMarks(details.blackMarks);
- player.setPetMob(details.petId);
- player.getMagic().setDragonFireShieldCharges(details.dragonFireShieldCharges);
- if (details.degrading != null)
- player.getItemDegrading().setDegrading(details.degrading);
- if (details.savedArrows != null)
- player.getRanged().getSavedArrows().setItems(details.savedArrows);
- player.setVotePoints(details.votePoints);
- if (details.attackStyle != null)
- player.getEquipment().setAttackStyle(details.attackStyle);
- if (details.attackType != null)
- player.setAttackType(details.attackType);
- if (details.recoilStage != -1)
- player.getAttributes().set("recoilhits", Integer.valueOf(details.recoilStage));
- player.getSkulling().setLeft(details.left);
- if (player.getSkulling().isSkulled())
- player.getSkulling().setSkullIcon(player, details.skullIcon);
- if (details.host != null)
- player.getClient().setHost(details.host);
- if (details.slayerDifficulty != null)
- player.getSlayer().setCurrent(details.slayerDifficulty);
- player.getSlayer().setMaster(details.slayerMaster);
- player.getShrine().setGathered(details.shrineGather);
- if(details.herbSack != null)
- for(Item i : details.herbSack)
- player.getHerbSack().setHerbs(i);
- if(details.gemBag != null)
- for(Item i : details.gemBag)
- if(i != null)
- player.getGemBag().add(i);
- player.setGemBagCharges(details.gemBagCharges);
- player.getCoalBag().getCoal().setAmount(details.coalBag);
- if(details.keyMaster != null)
- for(Item i : details.keyMaster)
- player.getKeyMaster().addItem(i);
- if(details.priestess != null)
- for(Item i : details.priestess)
- player.getPriestess().addItem(i);
- if(details.torfinn != null)
- for(Item i : details.torfinn)
- player.getTorfinn().addItem(i);
- if(details.warriorItems != null)
- for(Item i : details.warriorItems)
- player.getChallenge().getHeldItems().add(i);
- if(details.motherlodeOres != null)
- for(Item i : details.motherlodeOres)
- player.getMLM().setOres(i);
- player.getShrine().setInvestment(details.shrineInvestment);
- player.getShrine().setOvertime(details.shrineOvertime);
- player.getShrine().setPoints(details.shrinePoints);
- player.setYearCreated(details.yearCreated);
- player.setDayCreated(details.dayCreated);
- player.getWS().setSacrificedEggs(details.eggs);
- player.setLastLoginDay(details.lastLoginDay);
- player.setLastLoginYear(details.lastLoginYear);
- player.setScreenBrightness(details.bright);
- player.setMultipleMouseButtons(details.multipleMouse);
- player.setChatEffects(details.chatEffects);
- player.setSplitPrivateChat(details.splitPrivate);
- player.setTransparentPanel(details.transparentPanel);
- player.setTransparentChatbox(details.transparentChatbox);
- player.setSideStones(details.sideStones);
- player.setAcceptAid(details.acceptAid);
- player.getFightCaves().setStage(details.fightCavesWave);
- player.getIntro().setSkipped(details.skippedIntro);
- player.getIntro().setWizard(details.introWizard);
- if (details.friends != null)
- for (String i : details.friends)
- player.getPrivateMessaging().getFriends().add(i);
- if (details.ignores != null)
- for (String i : details.ignores)
- player.getPrivateMessaging().getIgnores().add(i);
- if ((details.poisonDmg > 0) && (details.poisoned))
- player.poison(details.poisonDmg);
- if(player.getAchieveRewards().getUnlocks() != null)
- for(int i = 0; i < player.getAchieveRewards().getUnlocks().length; i++)
- if(details.achievementUnlocks != null)
- player.getAchieveRewards().setUnlocks(i, details.achievementUnlocks[i]);
- player.setPouchPayment(details.pouchPayment);
- player.setGender(details.gender);
- if (details.appearance != null)
- for (int i = 0; i < details.appearance.length; i++)
- player.getAppearance()[i] = details.appearance[i];
- if (details.colours != null)
- for (int i = 0; i < details.colours.length; i++)
- player.getColors()[i] = details.colours[i];
- if (details.experience != null)
- for (int i = 0; i < details.experience.length; i++)
- player.getSkill().getExperience()[i] = details.experience[i];
- if (details.skillsLevel != null)
- for (int i = 0; i < details.skillsLevel.length; i++)
- player.getLevels()[i] = details.skillsLevel[i];
- if (details.experience != null)
- for (int i = 0; i < details.experience.length; i++)
- player.getMaxLevels()[i] = player.getSkill().getLevelForExperience(i, details.experience[i]);
- if (details.gwkc != null)
- player.getMinigames().setGWKC(details.gwkc);
- boolean banned = details.banned;
- boolean muted = details.muted;
- boolean jailed = details.jailed;
- if ((banned) && (TimeUnit.MILLISECONDS.toSeconds(details.banLength - System.currentTimeMillis()) > 0 || details.banLength == -1)) {
- player.setBanned(true);
- player.setBanLength(details.banLength);
- }
- if ((jailed) && (TimeUnit.MILLISECONDS.toSeconds(details.jailLength - System.currentTimeMillis()) > 0 || details.jailLength == -1)) {
- player.setJailed(true);
- player.setJailLength(details.jailLength);
- }
- if ((muted) && (TimeUnit.MILLISECONDS.toSeconds(details.muteLength - System.currentTimeMillis()) > 0 || details.muteLength == -1)) {
- player.setMuted(true);
- player.setMuteLength(details.muteLength);
- }
- if (details.magicBook > 0)
- player.getMagic().setMagicBook(details.magicBook);
- player.setPanel(details.panel);
- if (details.skillGoals != null)
- player.setSkillGoals(details.skillGoals);
- if (details.playerAchievements != null)
- player.getPlayerAchievements().putAll(details.playerAchievements);
- if (details.achievementsPoints > 0)
- player.addAchievementPoints(details.achievementsPoints);
- if (details.playerChallenges != null)
- player.getPlayerChallenges().putAll(details.playerChallenges);
- if (details.challengesPoints > 0)
- player.addChallengePoints(details.challengesPoints);
- if (details.expCounter > 0)
- player.addCounterExp(details.expCounter);
- if (details.cluesCompleted != null)
- player.setCluesCompleted(details.cluesCompleted);
- player.setPuzzleHandler(details.puzzle);
- if (details.lastClan != null) {
- player.setLastClan(details.lastClan);
- }
- player.setPrestigePoints(details.prestigePoints);
- if (details.prestiges != null) {
- player.setSkillPrestiges(details.prestiges);
- }
- if (details.blowpipe != null) {
- player.setToxicBlowpipe(details.blowpipe);
- }
- if (details.seasTrident != null) {
- player.setSeasTrident(details.seasTrident);
- }
- if (details.swampTrident != null) {
- player.setSwampTrident(details.swampTrident);
- }
- if (details.serpentineHelmet != null) {
- player.setSerpentineHelment(details.serpentineHelmet);
- }
- if (details.playerProperties != null) {
- for (Object attribute : details.playerProperties.keySet()) {
- player.getAttributes().getAttributes().put(attribute, details.playerProperties.get(attribute));
- }
- }
- if (details.getQuicks != null) {
- player.getPrayer().setQuickPrayers(details.getQuicks);
- }
- player.getQuestManager().setCutscene(details.cutscene, details.sceneLoc);
- player.getQuestManager().setQp(details.questpoints);
- if(details.queststages != null)
- for(int i = 0; i < player.getQuestManager().getStages().length; i++)
- player.getQuestManager().setStages(i, details.queststages[i]);
- if(details.dsActions != null)
- for(int i = 0; i < player.getDS().getActions().length; i++)
- player.getDS().setAction(i, details.dsActions[i]);
- player.getBTB().setCaveId(details.btbCave);
- if(details.btbActions != null)
- for(int i = 0; i < player.getBTB().getActions().length; i++)
- player.getBTB().setAction(i, details.btbActions[i]);
- if(details.csBurials != null)
- for(int i = 0; i < player.getCS().getBurials().length; i++)
- player.getCS().setBurials(i, details.csBurials[i]);
- if (details.shopItems != null) {
- player.getPlayerShop().setItems(details.shopItems);
- }
- if (details.shopPrices != null) {
- player.getPlayerShop().setPrices(details.shopPrices);
- }
- if (details.tabAmounts != null) {
- player.getBank().setTabAmounts(details.tabAmounts);
- }
- if (details.bank != null) {
- int tabs = Arrays.stream(player.getBank().getTabAmounts()).sum();
- int total = 0;
- for (int i = 0, slot = 0; i < Bank.SIZE; i++) {
- if (i >= Bank.SIZE) {
- break;
- }
- if (i >= details.bank.length) {
- break;
- }
- Item check = ItemCheck.check(player, details.bank[i]);
- player.getBank().getItems()[slot++] = check;
- if (check != null) {
- total++;
- }
- }
- if (total != tabs) {
- player.getBank().setTabAmounts(new int[] { total, 0, 0, 0, 0, 0, 0, 0, 0, 0 });
- DialogueManager.sendStatement(player, "@dre@There was an issue loading your bank tabs.", "@dre@Your bank tabs have been collapsed as a safety measure.");
- }
- }
- if (details.equipment != null)
- for (int i = 0; i < details.equipment.length; i++)
- player.getEquipment().getItems()[i] = ItemCheck.check(player, details.equipment[i]);
- if (details.inventory != null)
- for (int i = 0; i < details.inventory.length; i++)
- player.getInventory().getItems()[i] = ItemCheck.check(player, details.inventory[i]);
- if (details.pouches != null)
- player.setPouches(details.pouches);
- if(details.brothersKilled != null)
- player.setKillRecord(details.brothersKilled);
- if(details.hiddenBrother != null)
- player.setHiddenBrother(details.hiddenBrother);
- if(details.barrowKC != 0)
- player.setBarrowsKC(details.barrowKC);
- if(details.barrowRuns != 0)
- player.setRuns(details.barrowRuns);
- if(details.shrineSlots != null)
- for(int i = 0; i < details.shrineSlots.length; i++)
- player.getShrine().setSlots(i, details.shrineSlots[i][0], details.shrineSlots[i][1]);
- if(details.shrineRares != null)
- for(int i = 0; i < details.shrineRares.length; i++)
- player.getShrine().setRares(i, details.shrineRares[i]);
- if(details.shrineBuffs != null)
- for(int i = 0; i < details.shrineBuffs.length; i++)
- player.getShrine().setSkillBuffs(i, details.shrineBuffs[i]);
- player.getSkillCapeEffect().setNewDate(details.capeEffectDate);
- if(details.capeEffectUses != null)
- for(int i = 0; i < player.getSkillCapeEffect().getEffectUses().length; i++)
- player.getSkillCapeEffect().setEffectUse(i, details.capeEffectUses[i]);
- if(details.lootbag != null)
- for(int i = 0; i < player.getLootbag().getLootingBag().length; i++)
- player.getLootbag().setLootingContents(i, details.lootbag[i][0], details.lootbag[i][1]);
- if(details.runepouch != null)
- for(int i = 0; i < player.getRunePouch().getRunesStored().length; i++)
- player.getRunePouch().setRunesStored(i, details.runepouch[i][0], details.runepouch[i][1]);
- player.getShrine().invest = details.shrineInvestments;
- player.getResourceWorker().setCollectHour(details.getCollectHour);
- player.getResourceWorker().setHired(details.hasHiredWorker);
- player.setLastLoginDay(Utility.getDayOfYear());
- player.setLastLoginYear(Utility.getYear());
- return true;
- } finally {
- if (reader != null)
- try {
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- final String username;
- final String password;
- final int memberid;
- final String email;
- final String qrlink;
- final boolean lostPassagesUnlock;
- final int x;
- final int y;
- final int z;
- final String rights;
- final String mode;
- final String lastKnownUID;
- final int[] cluesCompleted;
- final String yellTitle;
- final String blessing;
- final PlayerTitle playerTitle;
- final List<PlayerTitle> unlockedTitles;
- final boolean banned;
- final long banLength;
- final int overload;
- final int masterypts;
- final long moneyPouch;
- final long playTimeTotal;
- final long jailLength;
- final int alchValue;
- final boolean tradeWarning;
- final long shopCollection;
- final String shopMotto;
- final String shopColor;
- final String lastClan;
- final boolean muted;
- final int changeGod;
- final int imbuedHeart;
- final boolean jailed;
- final long muteLength;
- final int fightCavesWave;
- final boolean skippedIntro;
- final boolean introWizard;
- final int[] getTotalTasksCompleted = new int[8];
- final boolean startedWarriorWill;
- final int warriorPoints;
- final int clientWidth;
- final int clientHeight;
- final ClientScreenSettings screenSetting;
- final int magicBook;
- final int panel;
- final boolean retaliate;
- final boolean expLock;
- final boolean[] mageArena;
- final int[] guideStages;
- final int[] gwkc;
- final boolean poisoned;
- final boolean[] insuredPets = new boolean[33];
- final int[] lostPets = new int[33];
- final int poisonDmg;
- final boolean[] achievementUnlocks = new boolean[Unlockables.values().length];
- final boolean[] unlockedMLM = new boolean[2];
- final boolean[] unlockedPrayers = new boolean[4];
- final int elixir;
- final String slayerTask;
- final String slayerPreviousTask;
- final byte slayerAmount;
- final SlayerDifficulty slayerDifficulty;
- final SlayerMasters slayerMaster;
- final short[] skillsLevel;
- final double[] experience;
- final byte gender;
- final int[] appearance;
- final byte[] colours;
- final long left;
- final int skullIcon;
- final byte bright;
- final byte multipleMouse;
- final byte chatEffects;
- final byte splitPrivate;
- final int petId;
- final int membership;
- final String getLastDate;
- final String getTarnDate;
- final int getTarnKills;
- final boolean[][] getSlayerExtends = new boolean[8][2];
- final boolean[] getSlayerUnlocks = new boolean[9];
- final String[] getSlayerBlocks = new String[6];
- final String[] dimensionsSet = new String[4];
- final int[][] getDimensions = new int[4][3];
- byte transparentPanel;
- byte transparentChatbox;
- byte sideStones;
- final int demonKills;
- final int arclightCharges;
- final byte acceptAid;
- final boolean pouchPayment;
- final String[] friends;
- final String[] ignores;
- final int yearCreated;
- final int dayCreated;
- final int recoilStage;
- final int spec;
- final Equipment.AttackStyles attackStyle;
- final AttackType attackType;
- final double energy;
- final int lastLoginDay;
- final int lastLoginYear;
- final String host;
- final int votePoints;
- final ItemDegrading.DegradedItem[] degrading;
- final byte dragonFireShieldCharges;
- final int introStage;
- final int slayerPoints;
- final SlayerAreas slayerArea;
- final int eventPoints;
- final int[] slayerCount = new int[Slayer.slayerMob.length];
- final int[] masteryPoints = new int[3];
- final boolean[] keystones = new boolean[3];
- final int skillerPoints;
- final int musicVolume;
- final int soundVolume;
- final Item[] savedArrows;
- final int deaths;
- final int kills;
- final boolean sufferActive;
- final int sufferCharges;
- final int rogueKills;
- final int rogueRecord;
- final int hunterKills;
- final int hunterRecord;
- final int moneySpent;
- final int bountyPoints;
- final int shayzikenPoints;
- final int favour;
- final int eggs;
- final String fullName;
- final String IP;
- final String emailAddress;
- final String recovery;
- final String pins;
- final boolean running;
- final boolean logPackets;
- final int pestPoints;
- final int arenaPoints;
- final int teleblockTime;
- final int blackMarks;
- final int[][] skillGoals;
- final ArrayList<String> lastKilledPlayers;
- final HashMap<ChallengeList, Integer> playerChallenges;
- final int challengesPoints;
- final Map<String, Integer> playerAchievements;
- final int achievementsPoints;
- final boolean[] getQuicks;
- final HashMap<Object, Object> playerProperties;
- final double expCounter;
- final int prestigePoints;
- final int[] prestiges;
- final ToxicBlowpipe blowpipe;
- final TridentOfTheSeas seasTrident;
- final TridentOfTheSwamp swampTrident;
- final SerpentineHelmet serpentineHelmet;
- final int shrineOvertime;
- final int shrineInvestment;
- final int shrinePoints;
- final int coalBag;
- final int gemBagCharges;
- final double shrineGather;
- final List<Item> herbSack, keyMaster, priestess, torfinn, warriorItems, motherlodeOres, gemBag;
- final Puzzle puzzle;
- /*Quests*/
- final boolean cutscene;
- final Location sceneLoc;
- final int questpoints;
- final int[] queststages;
- final int btbCave;
- final boolean[] dsActions, btbActions;
- final Location[] csBurials;
- final Item[] bank;
- final int[] tabAmounts;
- final Item[] inventory;
- final Item[] equipment;
- final Item[] shopItems;
- final int[] shopPrices;
- final byte[] pouches;
- final int[] shrineRares;
- final int[][] shrineSlots;
- final long[] shrineBuffs;
- final int shrineInvestments;
- final String capeEffectDate;
- final int[] capeEffectUses;
- final boolean[] brothersKilled;
- final int barrowRuns;
- final int barrowKC;
- final Brother hiddenBrother;
- final int[][] lootbag;
- final int[][] runepouch;
- final long getCollectHour;
- final boolean hasHiredWorker;
- public PlayerDetails(Player player) {
- username = player.getUsername();
- password = player.getPassword();
- memberid = player.getMemberId();
- email = player.getEmail();
- qrlink = player.getQRLink();
- lostPassagesUnlock = player.getLostPassagesUnlock();
- x = player.getLocation().getX();
- y = player.getLocation().getY();
- z = player.getLocation().getZ();
- rights = player.getRights().getName().toUpperCase();
- mode = player.getGameMode().getName().toUpperCase().replace(" ", "_");
- membership = player.getMembership().membershipDays();
- getLastDate = player.getMembership().getTodaysDate();
- getTarnDate = player.getMembership().getTarnDate();
- getTarnKills = player.getMembership().getTarn();
- lastKnownUID = player.getUid();
- fullName = player.getFullName();
- IP = player.getIP();
- recovery = player.getRecovery();
- emailAddress = player.getEmailAddress();
- pins = player.getPin();
- moneySpent = player.getMoneySpent();
- host = player.getClient().getHost();
- cluesCompleted = player.getCluesCompleted();
- puzzle = player.getPuzzleHandler();
- yellTitle = player.getYellTitle();
- blessing = player.getMasteryTree().getBlessing();
- playerTitle = player.getPlayerTitle();
- unlockedTitles = player.unlockedTitles;
- warriorPoints = player.getWillPoints();
- startedWarriorWill = player.getWarriorWill();
- clientWidth = player.getScreen().getClientSize()[0];
- clientHeight = player.getScreen().getClientSize()[1];
- screenSetting = player.getScreen().getScreenSetting();
- banned = player.isBanned();
- banLength = player.getBanLength();
- moneyPouch = player.getMoneyPouch();
- jailLength = player.getJailLength();
- alchValue = player.getAlchPref().getWarningValue();
- tradeWarning = player.getAlchPref().getUntradeWarning();
- shopCollection = player.getShopCollection();
- shopMotto = player.getShopMotto();
- shopColor = player.getShopColor();
- muted = player.isMuted();
- playTimeTotal = player.playTimeTotal;
- sufferActive = player.getSufferActive();
- sufferCharges = player.getSufferCharges();
- shrineOvertime = player.getShrine().itemsAcquired;
- shrinePoints = player.getShrine().points;
- shrineInvestment = player.getShrine().invested;
- shrineGather = player.getShrine().materialPotential;
- herbSack = player.getHerbSack().getHerbs();
- gemBag = Arrays.asList(player.getGemBag().getItems());
- gemBagCharges = player.getGemBagCharges();
- coalBag = player.getCoalBag().getCoal().getAmount();
- keyMaster = player.getKeyMaster().getItems();
- priestess = player.getPriestess().getItems();
- torfinn = player.getTorfinn().getItems();
- warriorItems = player.getChallenge().getHeldItems();
- motherlodeOres = player.getMLM().getOres();
- favour = player.getFavour();
- shayzikenPoints = player.getShayzien();
- imbuedHeart = player.getImbuedHeart().secondsRemaining();
- changeGod = player.getBlessings().getChangeGodTimer().secondsRemaining();
- jailed = player.isJailed();
- overload = player.getOverload().getOverloadTicks();
- masterypts = player.getMasteryTree().getMaxPoints();
- muteLength = player.getMuteLength();
- fightCavesWave = player.getFightCaves().getStage();
- magicBook = player.getMagic().getMagicBook();
- panel = player.getPanel();
- retaliate = player.isRetaliate();
- expLock = player.getSkill().isExpLocked();
- gwkc = player.getMinigames().getGWKC();
- lastClan = player.getLastClan();
- getQuicks = player.getPrayer().getQuickPrayers();
- skippedIntro = player.getIntro().getSkipped();
- introWizard = player.getIntro().isWizard();
- for(int i = 0; i < player.getSlayer().getTasksCompleted().length; i++)
- getTotalTasksCompleted[i] = player.getSlayer().getTasksCompleted()[i];
- slayerArea = player.getSlayer().getArea();
- for(int i = 0; i < player.getSlayer().extensions.length; i++) {
- getSlayerExtends[i][0] = player.getSlayer().extensions[i][0];
- getSlayerExtends[i][1] = player.getSlayer().extensions[i][1];
- }
- for(int i = 0; i < player.getSlayer().blockedTasks.length; i++)
- getSlayerBlocks[i] = player.getSlayer().blockedTasks[i];
- for(int i = 0; i < player.getSlayer().unlocks.length; i++)
- getSlayerUnlocks[i] = player.getSlayer().unlocks[i];
- for(int i = 0; i < player.getDimensionSettings.length; i++)
- dimensionsSet[i] = player.getDimensionSettings[i];
- for(int i = 0; i < player.dimensions.length; i++) {
- getDimensions[i][0] = player.dimensions[i][0];
- getDimensions[i][1] = player.dimensions[i][1];
- getDimensions[i][2] = player.dimensions[i][2];
- }
- petId = player.grabPetMob();
- for(int i = 0; i < player.getInsurance().insuredPets().length; i++)
- insuredPets[i] = player.getInsurance().insuredPets()[i];
- eggs = player.getWS().getSacrificedEggs();
- for(int i = 0; i < player.getInsurance().getPetsLost().length; i++)
- lostPets[i] = player.getInsurance().getPetsLost()[i];
- mageArena = player.getMageArena();
- guideStages = player.getGuide().getStages();
- blackMarks = player.getBlackMarks();
- for(int i = 0; i < player.getSlayer().getSlayerCount().length; i++)
- slayerCount[i] = player.getSlayer().getSlayerCount()[i];
- for(int i = 0; i < player.getMasteryTree().getPoints().length; i++)
- masteryPoints[i] = player.getMasteryTree().getPoints()[i];
- for(int i = 0; i < player.getMasteryTree().getKeys().length; i++)
- keystones[i] = player.getMasteryTree().getKeys()[i];
- for(int i = 0; i < player.getAchieveRewards().getUnlocks().length; i++)
- if(player.getAchieveRewards().getUnlocks()[i])
- achievementUnlocks[i] = player.getAchieveRewards().getUnlocks()[i];
- for(int i = 0; i < player.getMLM().getUnlocks().length; i++)
- if(player.getMLM().getUnlocks()[i])
- unlockedMLM[i] = player.getMLM().getUnlocks()[i];
- for(int i = 0; i < player.getPrayer().getUnlocked().length; i++)
- unlockedPrayers[i] = player.getPrayer().getUnlocked()[i];
- demonKills = player.getDemonKills();
- arclightCharges = player.getArclightCharges();
- poisoned = player.isPoisoned();
- pouchPayment = player.isPouchPayment();
- poisonDmg = player.getPoisonDamage();
- slayerTask = player.getSlayer().getTask();
- slayerPreviousTask = player.getSlayer().getPreviousTask();
- slayerAmount = player.getSlayer().getAmount();
- experience = player.getSkill().getExperience();
- skillsLevel = player.getSkill().getLevels();
- gender = player.getGender();
- appearance = (player.getAppearance().clone());
- colours = (player.getColors().clone());
- left = player.getSkulling().getLeft();
- skullIcon = player.getSkulling().getSkullIcon();
- spec = player.getSpecialAttack().getAmount();
- attackStyle = player.getEquipment().getAttackStyle();
- attackType = player.getAttackType();
- energy = player.getRunEnergy().getEnergy();
- votePoints = player.getVotePoints();
- teleblockTime = player.getTeleblockTime();
- logPackets = player.getClient().isLogPlayer();
- running = player.getRunEnergy().isRunning();
- pestPoints = player.getPestPoints();
- arenaPoints = player.getArenaPoints();
- soundVolume = player.getSoundVolume();
- deaths = player.getDeaths();
- kills = player.getKills();
- rogueKills = player.getRogueKills();
- rogueRecord = player.getRogueRecord();
- hunterKills = player.getHunterKills();
- hunterRecord = player.getHunterRecord();
- lastKilledPlayers = player.getLastKilledPlayers();
- bountyPoints = player.getBountyPoints();
- musicVolume = player.getMusicVolume();
- dragonFireShieldCharges = player.getMagic().getDragonFireShieldCharges();
- degrading = player.getItemDegrading().getDegrading();
- lastLoginDay = player.getLastLoginDay();
- lastLoginYear = player.getLastLoginYear();
- yearCreated = player.getYearCreated();
- dayCreated = player.getDayCreated();
- introStage = player.getIntroStage();
- skillerPoints = player.getSkillerPoints();
- elixir = player.getElixir();
- slayerPoints = player.getSlayerPoints();
- eventPoints = player.getEventPoints();
- slayerDifficulty = player.getSlayer().getCurrent();
- slayerMaster = player.getSlayer().getMaster();
- if (player.getAttributes().get("recoilhits") != null)
- recoilStage = player.getAttributes().getInt("recoilhits");
- else {
- recoilStage = -1;
- }
- bright = player.getScreenBrightness();
- multipleMouse = player.getMultipleMouseButtons();
- chatEffects = player.getChatEffectsEnabled();
- splitPrivate = player.getSplitPrivateChat();
- transparentPanel = player.getTransparentPanel();
- transparentChatbox = player.getTransparentChatbox();
- sideStones = player.getSideStones();
- acceptAid = player.getAcceptAid();
- savedArrows = player.getRanged().getSavedArrows().getItems();
- skillGoals = player.getSkillGoals();
- expCounter = player.getCounterExp();
- playerAchievements = player.getPlayerAchievements();
- achievementsPoints = player.getAchievementsPoints();
- playerChallenges = player.getPlayerChallenges();
- challengesPoints = player.getChallengesPoints();
- int k = 0;
- friends = new String[player.getPrivateMessaging().getFriends().size()];
- for (String i : player.getPrivateMessaging().getFriends()) {
- friends[k] = i;
- k++;
- }
- k = 0;
- ignores = new String[player.getPrivateMessaging().getIgnores().size()];
- for (String i : player.getPrivateMessaging().getIgnores()) {
- ignores[k] = i;
- k++;
- }
- prestigePoints = player.getPrestigePoints();
- prestiges = player.getSkillPrestiges();
- blowpipe = player.getToxicBlowpipe();
- seasTrident = player.getSeasTrident();
- swampTrident = player.getSwampTrident();
- serpentineHelmet = player.getSerpentineHelmet();
- playerProperties = new HashMap<>();
- for (Object attribute : player.getAttributes().getAttributes().keySet()) {
- if (String.valueOf(attribute).startsWith(PlayerProperties.ATTRIBUTE_KEY)) {
- playerProperties.put(attribute, player.getAttributes().getAttributes().get(attribute));
- }
- }
- cutscene = player.getQuestManager().inCutscene();
- sceneLoc = player.getQuestManager().getResetLoc();
- questpoints = player.getQuestManager().getQp();
- queststages = player.getQuestManager().getStages();
- dsActions = player.getDS().getActions();
- btbCave = player.getBTB().getCaveId();
- btbActions = player.getBTB().getActions();
- csBurials = player.getCS().getBurials();
- bank = player.getBank().getItems();
- tabAmounts = player.getBank().getTabAmounts();
- inventory = player.getInventory().getItems();
- equipment = player.getEquipment().getItems();
- shopItems = player.getPlayerShop().getItems();
- shopPrices = player.getPlayerShop().getPrices();
- pouches = player.getPouches();
- shrineSlots = player.getShrine().getMaterials();
- shrineRares = player.getShrine().getRares();
- shrineBuffs = player.getShrine().getShrineBuffs();
- shrineInvestments = player.getShrine().invest;
- capeEffectDate = player.getSkillCapeEffect().getEffectDate();
- capeEffectUses = player.getSkillCapeEffect().getEffectUses();
- brothersKilled = player.getKillRecord();
- hiddenBrother = player.getHiddenBrother();
- barrowRuns = player.getBarrowRuns();
- barrowKC = player.getBarrowsKC();
- lootbag = player.getLootbag().getLootingBag();
- runepouch = player.getRunePouch().getRunesStored();
- getCollectHour = player.getResourceWorker().getCollectHour();
- hasHiredWorker = player.getResourceWorker().getHired();
- }
- public void parseDetails() throws Exception {
- BufferedWriter writer = null;
- try {
- writer = new BufferedWriter(new FileWriter("./data/characters/details/" + username + ".json", false));
- writer.write(PlayerSave.GSON.toJson(this));
- writer.flush();
- } finally {
- if (writer != null)
- writer.close();
- }
- }
- }
- public static final class PlayerHouses {
- public static boolean loadDetails(Player player) throws Exception {
- File file = new File("./data/characters/houses/" + player.getUsername() + ".json");
- if (!file.exists()) {
- return false;
- }
- BufferedReader reader = new BufferedReader(new FileReader(file));
- try {
- PlayerHouses details = PlayerSave.GSON.fromJson(reader, PlayerHouses.class);
- player.setHouseFurniture(details.housefurniture);
- player.setHouseRooms(details.houserooms);
- player.setHouseLocation(details.houseLocation);
- if(details.housePortals != null)
- player.setHousePortals(details.housePortals);
- player.setHouseType(details.houseType);
- } finally {
- if (reader != null) {
- reader.close();
- }
- }
- return true;
- }
- ArrayList<HouseFurniture> housefurniture = new ArrayList<HouseFurniture>();
- Room[][][] houserooms = new Room[5][13][13];
- Location houseLocation = null;
- ArrayList<Portal> housePortals = new ArrayList<Portal>();
- int houseType = 0;
- public PlayerHouses(Player player) {
- housefurniture = player.getHouseFurniture();
- houserooms = player.getHouseRooms();
- houseLocation = player.getHouseLocation();
- housePortals = player.getHousePortals();
- houseType = player.getHouseType();
- }
- public void parseDetails(Player player) throws IOException {
- BufferedWriter writer = new BufferedWriter(new FileWriter("./data/characters/houses/" + player.getUsername() + ".json", false));
- try {
- writer.write(PlayerSave.GSON.toJson(this));
- writer.flush();
- } finally {
- writer.close();
- }
- }
- }
- public static void main(String[] args) throws FileNotFoundException, IOException {
- File[] files = new File("./data/characters/details/").listFiles();
- int searches = 0;
- HashMap<String, String> map = new HashMap<>();
- for (File file : files) {
- Player player = new Player();
- player.setUsername(file.getName().replace(".json", ""));
- try {
- if (PlayerDetails.loadDetails(player)) {
- if (player.getLastLoginDay() > 259) {
- if (player.getLastKnownUID() != null && !map.containsKey(player.getLastKnownUID())) {
- map.put(player.getLastKnownUID(), player.getUsername());
- } else {
- System.out.println(player.getUsername() + " " + player.getLastKnownUID());
- }
- searches++;
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- System.out.println("Searched through " + searches + " files.");
- }
- public static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
- public static synchronized boolean load(Player p) throws Exception {
- PlayerHouses.loadDetails(p);
- return !PlayerDetails.loadDetails(p);
- }
- public static synchronized final void save(Player p) {
- try {
- new PlayerDetails(p).parseDetails();
- new PlayerHouses(p).parseDetails(p);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement