|
|
@@ -1,1236 +1,1236 @@
|
|
|
-/*
|
|
|
- This file is part of mcMMO.
|
|
|
-
|
|
|
- mcMMO is free software: you can redistribute it and/or modify
|
|
|
- it under the terms of the GNU General Public License as published by
|
|
|
- the Free Software Foundation, either version 3 of the License, or
|
|
|
- (at your option) any later version.
|
|
|
-
|
|
|
- mcMMO is distributed in the hope that it will be useful,
|
|
|
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
- GNU General Public License for more details.
|
|
|
-
|
|
|
- You should have received a copy of the GNU General Public License
|
|
|
- along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
|
|
|
-*/
|
|
|
-package com.gmail.nossr50.datatypes;
|
|
|
-
|
|
|
-import java.io.BufferedReader;
|
|
|
-import java.io.BufferedWriter;
|
|
|
-import java.io.FileReader;
|
|
|
-import java.io.FileWriter;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.logging.Level;
|
|
|
-import java.util.logging.Logger;
|
|
|
-
|
|
|
-
|
|
|
-import org.bukkit.Bukkit;
|
|
|
-import org.bukkit.ChatColor;
|
|
|
-import org.bukkit.GameMode;
|
|
|
-import org.bukkit.Location;
|
|
|
-import org.bukkit.entity.Player;
|
|
|
-import com.gmail.nossr50.config.LoadProperties;
|
|
|
-import com.gmail.nossr50.party.Party;
|
|
|
-import com.gmail.nossr50.Users;
|
|
|
-import com.gmail.nossr50.m;
|
|
|
-import com.gmail.nossr50.mcMMO;
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-public class PlayerProfile
|
|
|
-{
|
|
|
- protected final Logger log = Logger.getLogger("Minecraft");
|
|
|
-
|
|
|
- //HUD
|
|
|
- private HUDType hud;
|
|
|
-
|
|
|
- //MISC
|
|
|
- private String party, myspawn, myspawnworld, invite;
|
|
|
-
|
|
|
- //TOGGLES
|
|
|
- private boolean partyhud = true, spoutcraft = false, filling = false, xpbarlocked = false, placedAnvil = false, partyChatMode = false, adminChatMode = false, godMode = false, greenTerraMode, partyChatOnly = false, greenTerraInformed = true, berserkInformed = true, skullSplitterInformed = true, gigaDrillBreakerInformed = true,
|
|
|
- superBreakerInformed = true, serratedStrikesInformed = true, treeFellerInformed = true, dead, abilityuse = true, treeFellerMode, superBreakerMode, gigaDrillBreakerMode,
|
|
|
- serratedStrikesMode, hoePreparationMode = false, shovelPreparationMode = false, swordsPreparationMode = false, fistsPreparationMode = false, pickaxePreparationMode = false, axePreparationMode = false, skullSplitterMode, berserkMode;
|
|
|
-
|
|
|
- //TIMESTAMPS
|
|
|
- //ATS = (Time of) Activation Time Stamp
|
|
|
- //DATS = (Time of) Deactivation Time Stamp
|
|
|
- private int xpGainATS = 0, recentlyHurt = 0, berserkATS = 0, berserkDATS = 0, gigaDrillBreakerATS = 0, gigaDrillBreakerDATS = 0,
|
|
|
- respawnATS = 0, mySpawnATS = 0, greenTerraATS = 0, greenTerraDATS = 0, superBreakerATS = 0, superBreakerDATS = 0, serratedStrikesATS = 0, serratedStrikesDATS = 0, treeFellerATS = 0, treeFellerDATS = 0,
|
|
|
- skullSplitterATS = 0, skullSplitterDATS = 0, hoePreparationATS = 0, axePreparationATS = 0, pickaxePreparationATS = 0, fistsPreparationATS = 0, shovelPreparationATS = 0, swordsPreparationATS = 0;
|
|
|
-
|
|
|
- private SkillType lastgained = null, skillLock = null;
|
|
|
-
|
|
|
- //MySQL STUFF
|
|
|
- private int xpbarinc=0, lastlogin=0, userid = 0, bleedticks = 0;
|
|
|
-
|
|
|
- //MAGIC STUFF
|
|
|
- private int mana = 0;
|
|
|
- private int greenDyeCycleSel = 0, greenDyeCycle = 0, blueDyeCycle = 0, blueDyeCycleSel = 0;
|
|
|
- public boolean dyeChanged = false;
|
|
|
-
|
|
|
- private String playername;
|
|
|
-
|
|
|
- //Time to HashMap this shiz
|
|
|
- HashMap<SkillType, Integer> skills = new HashMap<SkillType, Integer>(); //Skills and XP
|
|
|
- HashMap<SkillType, Integer> skillsXp = new HashMap<SkillType, Integer>(); //Skills and XP
|
|
|
-
|
|
|
- String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users";
|
|
|
-
|
|
|
- public PlayerProfile(Player player)
|
|
|
- {
|
|
|
- hud = LoadProperties.defaulthud;
|
|
|
- //Setup the HashMap for the skills
|
|
|
- for(SkillType skillType : SkillType.values())
|
|
|
- {
|
|
|
- if(skillType != SkillType.ALL)
|
|
|
- {
|
|
|
- skills.put(skillType, 0);
|
|
|
- skillsXp.put(skillType, 0);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- playername = player.getName();
|
|
|
- if (LoadProperties.useMySQL)
|
|
|
- {
|
|
|
- if(!loadMySQL(player)) {
|
|
|
- addMySQLPlayer(player);
|
|
|
- loadMySQL(player);//This is probably not needed anymore, could just delete
|
|
|
- }
|
|
|
- } else {
|
|
|
- if(!load()) { addPlayer(); }
|
|
|
- }
|
|
|
- lastlogin = ((Long) (System.currentTimeMillis()/1000)).intValue();
|
|
|
- }
|
|
|
- public int getLastLogin()
|
|
|
- {
|
|
|
- return lastlogin;
|
|
|
- }
|
|
|
- public int getMySQLuserId()
|
|
|
- {
|
|
|
- return userid;
|
|
|
- }
|
|
|
-
|
|
|
- public boolean loadMySQL(Player p)
|
|
|
- {
|
|
|
- Integer id = 0;
|
|
|
- id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + p.getName() + "'");
|
|
|
- if(id == 0)
|
|
|
- return false;
|
|
|
- this.userid = id;
|
|
|
- if (id > 0) {
|
|
|
- HashMap<Integer, ArrayList<String>> huds = mcMMO.database.Read("SELECT hudtype FROM "+LoadProperties.MySQLtablePrefix+"huds WHERE user_id = " + id);
|
|
|
- if(huds.get(1) == null)
|
|
|
- {
|
|
|
- mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"huds (user_id) VALUES ("+id+")");
|
|
|
- } else {
|
|
|
- if(huds.get(1).get(0) != null)
|
|
|
- {
|
|
|
- for(HUDType x : HUDType.values())
|
|
|
- {
|
|
|
- if(x.toString().equals(huds.get(1).get(0)))
|
|
|
- {
|
|
|
- hud = x;
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- hud = LoadProperties.defaulthud;
|
|
|
- }
|
|
|
- }
|
|
|
- HashMap<Integer, ArrayList<String>> users = mcMMO.database.Read("SELECT lastlogin, party FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = " + id);
|
|
|
- //lastlogin = Integer.parseInt(users.get(1).get(0));
|
|
|
- party = users.get(1).get(1);
|
|
|
- HashMap<Integer, ArrayList<String>> spawn = mcMMO.database.Read("SELECT world, x, y, z FROM "+LoadProperties.MySQLtablePrefix+"spawn WHERE user_id = " + id);
|
|
|
- myspawnworld = spawn.get(1).get(0);
|
|
|
- myspawn = spawn.get(1).get(1) + "," + spawn.get(1).get(2) + "," + spawn.get(1).get(3);
|
|
|
- HashMap<Integer, ArrayList<String>> cooldowns = mcMMO.database.Read("SELECT mining, woodcutting, unarmed, herbalism, excavation, swords, axes FROM "+LoadProperties.MySQLtablePrefix+"cooldowns WHERE user_id = " + id);
|
|
|
- /*
|
|
|
- * I'm still learning MySQL, this is a fix for adding a new table
|
|
|
- * its not pretty but it works
|
|
|
- */
|
|
|
- if(cooldowns.get(1) == null)
|
|
|
- {
|
|
|
- mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"cooldowns (user_id) VALUES ("+id+")");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- superBreakerDATS = Integer.valueOf(cooldowns.get(1).get(0));
|
|
|
- treeFellerDATS = Integer.valueOf(cooldowns.get(1).get(1));
|
|
|
- berserkDATS = Integer.valueOf(cooldowns.get(1).get(2));
|
|
|
- greenTerraDATS = Integer.valueOf(cooldowns.get(1).get(3));
|
|
|
- gigaDrillBreakerDATS = Integer.valueOf(cooldowns.get(1).get(4));
|
|
|
- serratedStrikesDATS = Integer.valueOf(cooldowns.get(1).get(5));
|
|
|
- skullSplitterDATS = Integer.valueOf(cooldowns.get(1).get(6));
|
|
|
- }
|
|
|
- HashMap<Integer, ArrayList<String>> stats = mcMMO.database.Read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM "+LoadProperties.MySQLtablePrefix+"skills WHERE user_id = " + id);
|
|
|
- skills.put(SkillType.TAMING, Integer.valueOf(stats.get(1).get(0)));
|
|
|
- skills.put(SkillType.MINING, Integer.valueOf(stats.get(1).get(1)));
|
|
|
- skills.put(SkillType.REPAIR, Integer.valueOf(stats.get(1).get(2)));
|
|
|
- skills.put(SkillType.WOODCUTTING, Integer.valueOf(stats.get(1).get(3)));
|
|
|
- skills.put(SkillType.UNARMED, Integer.valueOf(stats.get(1).get(4)));
|
|
|
- skills.put(SkillType.HERBALISM, Integer.valueOf(stats.get(1).get(5)));
|
|
|
- skills.put(SkillType.EXCAVATION, Integer.valueOf(stats.get(1).get(6)));
|
|
|
- skills.put(SkillType.ARCHERY, Integer.valueOf(stats.get(1).get(7)));
|
|
|
- skills.put(SkillType.SWORDS, Integer.valueOf(stats.get(1).get(8)));
|
|
|
- skills.put(SkillType.AXES, Integer.valueOf(stats.get(1).get(9)));
|
|
|
- skills.put(SkillType.ACROBATICS, Integer.valueOf(stats.get(1).get(10)));
|
|
|
- skills.put(SkillType.FISHING, Integer.valueOf(stats.get(1).get(11)));
|
|
|
- HashMap<Integer, ArrayList<String>> experience = mcMMO.database.Read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM "+LoadProperties.MySQLtablePrefix+"experience WHERE user_id = " + id);
|
|
|
- skillsXp.put(SkillType.TAMING, Integer.valueOf(experience.get(1).get(0)));
|
|
|
- skillsXp.put(SkillType.MINING, Integer.valueOf(experience.get(1).get(1)));
|
|
|
- skillsXp.put(SkillType.REPAIR, Integer.valueOf(experience.get(1).get(2)));
|
|
|
- skillsXp.put(SkillType.WOODCUTTING, Integer.valueOf(experience.get(1).get(3)));
|
|
|
- skillsXp.put(SkillType.UNARMED, Integer.valueOf(experience.get(1).get(4)));
|
|
|
- skillsXp.put(SkillType.HERBALISM, Integer.valueOf(experience.get(1).get(5)));
|
|
|
- skillsXp.put(SkillType.EXCAVATION, Integer.valueOf(experience.get(1).get(6)));
|
|
|
- skillsXp.put(SkillType.ARCHERY, Integer.valueOf(experience.get(1).get(7)));
|
|
|
- skillsXp.put(SkillType.SWORDS, Integer.valueOf(experience.get(1).get(8)));
|
|
|
- skillsXp.put(SkillType.AXES, Integer.valueOf(experience.get(1).get(9)));
|
|
|
- skillsXp.put(SkillType.ACROBATICS, Integer.valueOf(experience.get(1).get(10)));
|
|
|
- skillsXp.put(SkillType.FISHING, Integer.valueOf(experience.get(1).get(11)));
|
|
|
- return true;
|
|
|
- }
|
|
|
- else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
- public void addMySQLPlayer(Player p) {
|
|
|
- Integer id = 0;
|
|
|
- mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"users (user, lastlogin) VALUES ('" + p.getName() + "'," + System.currentTimeMillis() / 1000 +")");
|
|
|
- id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + p.getName() + "'");
|
|
|
- mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"cooldowns (user_id) VALUES ("+id+")");
|
|
|
- mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"spawn (user_id) VALUES ("+id+")");
|
|
|
- mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"skills (user_id) VALUES ("+id+")");
|
|
|
- mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"experience (user_id) VALUES ("+id+")");
|
|
|
- this.userid = id;
|
|
|
- }
|
|
|
-
|
|
|
- public boolean load()
|
|
|
- {
|
|
|
- try {
|
|
|
- //Open the user file
|
|
|
- FileReader file = new FileReader(location);
|
|
|
- BufferedReader in = new BufferedReader(file);
|
|
|
- String line = "";
|
|
|
- while((line = in.readLine()) != null)
|
|
|
- {
|
|
|
- //Find if the line contains the player we want.
|
|
|
- String[] character = line.split(":");
|
|
|
-
|
|
|
- if(!character[0].equals(playername)){continue;}
|
|
|
-
|
|
|
- //Get Mining
|
|
|
- if(character.length > 1 && m.isInt(character[1]))
|
|
|
- skills.put(SkillType.MINING, Integer.valueOf(character[1]));
|
|
|
- //Myspawn
|
|
|
- if(character.length > 2)
|
|
|
- myspawn = character[2];
|
|
|
- //Party
|
|
|
- if(character.length > 3)
|
|
|
- party = character[3];
|
|
|
- //Mining XP
|
|
|
- if(character.length > 4 && m.isInt(character[4]))
|
|
|
- skillsXp.put(SkillType.MINING, Integer.valueOf(character[4]));
|
|
|
- if(character.length > 5 && m.isInt(character[5]))
|
|
|
- skills.put(SkillType.WOODCUTTING, Integer.valueOf(character[5]));
|
|
|
- if(character.length > 6 && m.isInt(character[6]))
|
|
|
- skillsXp.put(SkillType.WOODCUTTING, Integer.valueOf(character[6]));
|
|
|
- if(character.length > 7 && m.isInt(character[7]))
|
|
|
- skills.put(SkillType.REPAIR, Integer.valueOf(character[7]));
|
|
|
- if(character.length > 8 && m.isInt(character[8]))
|
|
|
- skills.put(SkillType.UNARMED, Integer.valueOf(character[8]));
|
|
|
- if(character.length > 9 && m.isInt(character[9]))
|
|
|
- skills.put(SkillType.HERBALISM, Integer.valueOf(character[9]));
|
|
|
- if(character.length > 10 && m.isInt(character[10]))
|
|
|
- skills.put(SkillType.EXCAVATION, Integer.valueOf(character[10]));
|
|
|
- if(character.length > 11 && m.isInt(character[11]))
|
|
|
- skills.put(SkillType.ARCHERY, Integer.valueOf(character[11]));
|
|
|
- if(character.length > 12 && m.isInt(character[12]))
|
|
|
- skills.put(SkillType.SWORDS, Integer.valueOf(character[12]));
|
|
|
- if(character.length > 13 && m.isInt(character[13]))
|
|
|
- skills.put(SkillType.AXES, Integer.valueOf(character[13]));
|
|
|
- if(character.length > 14 && m.isInt(character[14]))
|
|
|
- skills.put(SkillType.ACROBATICS, Integer.valueOf(character[14]));
|
|
|
- if(character.length > 15 && m.isInt(character[15]))
|
|
|
- skillsXp.put(SkillType.REPAIR, Integer.valueOf(character[15]));
|
|
|
- if(character.length > 16 && m.isInt(character[16]))
|
|
|
- skillsXp.put(SkillType.UNARMED, Integer.valueOf(character[16]));
|
|
|
- if(character.length > 17 && m.isInt(character[17]))
|
|
|
- skillsXp.put(SkillType.HERBALISM, Integer.valueOf(character[17]));
|
|
|
- if(character.length > 18 && m.isInt(character[18]))
|
|
|
- skillsXp.put(SkillType.EXCAVATION, Integer.valueOf(character[18]));
|
|
|
- if(character.length > 19 && m.isInt(character[19]))
|
|
|
- skillsXp.put(SkillType.ARCHERY, Integer.valueOf(character[19]));
|
|
|
- if(character.length > 20 && m.isInt(character[20]))
|
|
|
- skillsXp.put(SkillType.SWORDS, Integer.valueOf(character[20]));
|
|
|
- if(character.length > 21 && m.isInt(character[21]))
|
|
|
- skillsXp.put(SkillType.AXES, Integer.valueOf(character[21]));
|
|
|
- if(character.length > 22 && m.isInt(character[22]))
|
|
|
- skillsXp.put(SkillType.ACROBATICS, Integer.valueOf(character[22]));
|
|
|
- if(character.length > 23 && m.isInt(character[23]))
|
|
|
- myspawnworld = character[23];
|
|
|
- if(character.length > 24 && m.isInt(character[24]))
|
|
|
- skills.put(SkillType.TAMING, Integer.valueOf(character[24]));
|
|
|
- if(character.length > 25 && m.isInt(character[25]))
|
|
|
- skillsXp.put(SkillType.TAMING, Integer.valueOf(character[25]));
|
|
|
- if(character.length > 26)
|
|
|
- berserkDATS = Integer.valueOf(character[26]);
|
|
|
- if(character.length > 27)
|
|
|
- gigaDrillBreakerDATS = Integer.valueOf(character[27]);
|
|
|
- if(character.length > 28)
|
|
|
- treeFellerDATS = Integer.valueOf(character[28]);
|
|
|
- if(character.length > 29)
|
|
|
- greenTerraDATS = Integer.valueOf(character[29]);
|
|
|
- if(character.length > 30)
|
|
|
- serratedStrikesDATS = Integer.valueOf(character[30]);
|
|
|
- if(character.length > 31)
|
|
|
- skullSplitterDATS = Integer.valueOf(character[31]);
|
|
|
- if(character.length > 32)
|
|
|
- superBreakerDATS = Integer.valueOf(character[32]);
|
|
|
- if(character.length > 33)
|
|
|
- {
|
|
|
- for(HUDType x : HUDType.values())
|
|
|
- {
|
|
|
- if(x.toString().equalsIgnoreCase(character[33]))
|
|
|
- {
|
|
|
- hud = x;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if(character.length > 34)
|
|
|
- skills.put(SkillType.FISHING, Integer.valueOf(character[34]));
|
|
|
- if(character.length > 35)
|
|
|
- skillsXp.put(SkillType.FISHING, Integer.valueOf(character[35]));
|
|
|
- in.close();
|
|
|
- return true;
|
|
|
- }
|
|
|
- in.close();
|
|
|
- } catch (Exception e) {
|
|
|
- log.log(Level.SEVERE, "Exception while reading "
|
|
|
- + location + " (Are you sure you formatted it correctly?)", e);
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- public void save()
|
|
|
- {
|
|
|
- Long timestamp = System.currentTimeMillis()/1000; //Convert to seconds
|
|
|
- // if we are using mysql save to database
|
|
|
- if (LoadProperties.useMySQL)
|
|
|
- {
|
|
|
- mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"huds SET "
|
|
|
- +" hudtype = '"+hud.toString()+"' WHERE user_id = "+this.userid);
|
|
|
- mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET lastlogin = " + timestamp.intValue() + " WHERE id = " + this.userid);
|
|
|
- mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET party = '"+this.party+"' WHERE id = " +this.userid);
|
|
|
- mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"spawn SET world = '" + this.myspawnworld + "', x = " +getX()+", y = "+getY()+", z = "+getZ()+" WHERE user_id = "+this.userid);
|
|
|
- mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"cooldowns SET "
|
|
|
- +" mining = "+(superBreakerDATS)
|
|
|
- +", woodcutting = "+(treeFellerDATS)
|
|
|
- +", unarmed = "+(berserkDATS)
|
|
|
- +", herbalism = "+(greenTerraDATS)
|
|
|
- +", excavation = "+(gigaDrillBreakerDATS)
|
|
|
- +", swords = " +(serratedStrikesDATS)
|
|
|
- +", axes = "+(skullSplitterDATS)
|
|
|
- +" WHERE user_id = "+this.userid);
|
|
|
- mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"skills SET "
|
|
|
- +" taming = "+skills.get(SkillType.TAMING)
|
|
|
- +", mining = "+skills.get(SkillType.MINING)
|
|
|
- +", repair = "+skills.get(SkillType.REPAIR)
|
|
|
- +", woodcutting = "+skills.get(SkillType.WOODCUTTING)
|
|
|
- +", unarmed = "+skills.get(SkillType.UNARMED)
|
|
|
- +", herbalism = "+skills.get(SkillType.HERBALISM)
|
|
|
- +", excavation = "+skills.get(SkillType.EXCAVATION)
|
|
|
- +", archery = " +skills.get(SkillType.ARCHERY)
|
|
|
- +", swords = " +skills.get(SkillType.SWORDS)
|
|
|
- +", axes = "+skills.get(SkillType.AXES)
|
|
|
- +", acrobatics = "+skills.get(SkillType.ACROBATICS)
|
|
|
- +", fishing = "+skills.get(SkillType.FISHING)
|
|
|
- +" WHERE user_id = "+this.userid);
|
|
|
- mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"experience SET "
|
|
|
- +" taming = "+skillsXp.get(SkillType.TAMING)
|
|
|
- +", mining = "+skillsXp.get(SkillType.MINING)
|
|
|
- +", repair = "+skillsXp.get(SkillType.REPAIR)
|
|
|
- +", woodcutting = "+skillsXp.get(SkillType.WOODCUTTING)
|
|
|
- +", unarmed = "+skillsXp.get(SkillType.UNARMED)
|
|
|
- +", herbalism = "+skillsXp.get(SkillType.HERBALISM)
|
|
|
- +", excavation = "+skillsXp.get(SkillType.EXCAVATION)
|
|
|
- +", archery = " +skillsXp.get(SkillType.ARCHERY)
|
|
|
- +", swords = " +skillsXp.get(SkillType.SWORDS)
|
|
|
- +", axes = "+skillsXp.get(SkillType.AXES)
|
|
|
- +", acrobatics = "+skillsXp.get(SkillType.ACROBATICS)
|
|
|
- +", fishing = "+skillsXp.get(SkillType.FISHING)
|
|
|
- +" WHERE user_id = "+this.userid);
|
|
|
- } else
|
|
|
- {
|
|
|
- // otherwise save to flatfile
|
|
|
- try {
|
|
|
- //Open the file
|
|
|
- FileReader file = new FileReader(location);
|
|
|
- BufferedReader in = new BufferedReader(file);
|
|
|
- StringBuilder writer = new StringBuilder();
|
|
|
- String line = "";
|
|
|
-
|
|
|
- //While not at the end of the file
|
|
|
- while((line = in.readLine()) != null)
|
|
|
- {
|
|
|
- //Read the line in and copy it to the output it's not the player
|
|
|
- //we want to edit
|
|
|
- if(!line.split(":")[0].equalsIgnoreCase(playername))
|
|
|
- {
|
|
|
- writer.append(line).append("\r\n");
|
|
|
-
|
|
|
- //Otherwise write the new player information
|
|
|
- } else {
|
|
|
- writer.append(playername + ":");
|
|
|
- writer.append(skills.get(SkillType.MINING) + ":");
|
|
|
- writer.append(myspawn + ":");
|
|
|
- writer.append(party+":");
|
|
|
- writer.append(skillsXp.get(SkillType.MINING) + ":");
|
|
|
- writer.append(skills.get(SkillType.WOODCUTTING) + ":");
|
|
|
- writer.append(skillsXp.get(SkillType.WOODCUTTING) + ":");
|
|
|
- writer.append(skills.get(SkillType.REPAIR) + ":");
|
|
|
- writer.append(skills.get(SkillType.UNARMED) + ":");
|
|
|
- writer.append(skills.get(SkillType.HERBALISM) + ":");
|
|
|
- writer.append(skills.get(SkillType.EXCAVATION) + ":");
|
|
|
- writer.append(skills.get(SkillType.ARCHERY) + ":");
|
|
|
- writer.append(skills.get(SkillType.SWORDS) + ":");
|
|
|
- writer.append(skills.get(SkillType.AXES) + ":");
|
|
|
- writer.append(skills.get(SkillType.ACROBATICS) + ":");
|
|
|
- writer.append(skillsXp.get(SkillType.REPAIR) + ":");
|
|
|
- writer.append(skillsXp.get(SkillType.UNARMED) + ":");
|
|
|
- writer.append(skillsXp.get(SkillType.HERBALISM) + ":");
|
|
|
- writer.append(skillsXp.get(SkillType.EXCAVATION) + ":");
|
|
|
- writer.append(skillsXp.get(SkillType.ARCHERY) + ":");
|
|
|
- writer.append(skillsXp.get(SkillType.SWORDS) + ":");
|
|
|
- writer.append(skillsXp.get(SkillType.AXES) + ":");
|
|
|
- writer.append(skillsXp.get(SkillType.ACROBATICS) + ":");
|
|
|
- writer.append(myspawnworld+":");
|
|
|
- writer.append(skills.get(SkillType.TAMING) + ":");
|
|
|
- writer.append(skillsXp.get(SkillType.TAMING) + ":");
|
|
|
- //Need to store the DATS of abilities nao
|
|
|
- //Berserk, Gigadrillbreaker, Tree Feller, Green Terra, Serrated Strikes, Skull Splitter, Super Breaker
|
|
|
- writer.append(String.valueOf(berserkDATS)+":");
|
|
|
- writer.append(String.valueOf(gigaDrillBreakerDATS)+":");
|
|
|
- writer.append(String.valueOf(treeFellerDATS)+":");
|
|
|
- writer.append(String.valueOf(greenTerraDATS)+":");
|
|
|
- writer.append(String.valueOf(serratedStrikesDATS)+":");
|
|
|
- writer.append(String.valueOf(skullSplitterDATS)+":");
|
|
|
- writer.append(String.valueOf(superBreakerDATS)+":");
|
|
|
- writer.append(hud.toString()+":");
|
|
|
- writer.append(skills.get(SkillType.FISHING) + ":");
|
|
|
- writer.append(skillsXp.get(SkillType.FISHING) + ":");
|
|
|
- writer.append("\r\n");
|
|
|
- }
|
|
|
- }
|
|
|
- in.close();
|
|
|
- //Write the new file
|
|
|
- FileWriter out = new FileWriter(location);
|
|
|
- out.write(writer.toString());
|
|
|
- out.close();
|
|
|
- } catch (Exception e) {
|
|
|
- log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- public void addPlayer()
|
|
|
- {
|
|
|
- try {
|
|
|
- //Open the file to write the player
|
|
|
- FileWriter file = new FileWriter(location, true);
|
|
|
- BufferedWriter out = new BufferedWriter(file);
|
|
|
-
|
|
|
- //Add the player to the end
|
|
|
- out.append(playername + ":");
|
|
|
- out.append(0 + ":"); //mining
|
|
|
- out.append(myspawn+":");
|
|
|
- out.append(party+":");
|
|
|
- out.append(0+":"); //XP
|
|
|
- out.append(0+":"); //woodcutting
|
|
|
- out.append(0+":"); //woodCuttingXP
|
|
|
- out.append(0+":"); //repair
|
|
|
- out.append(0+":"); //unarmed
|
|
|
- out.append(0+":"); //herbalism
|
|
|
- out.append(0+":"); //excavation
|
|
|
- out.append(0+":"); //archery
|
|
|
- out.append(0+":"); //swords
|
|
|
- out.append(0+":"); //axes
|
|
|
- out.append(0+":"); //acrobatics
|
|
|
- out.append(0+":"); //repairXP
|
|
|
- out.append(0+":"); //unarmedXP
|
|
|
- out.append(0+":"); //herbalismXP
|
|
|
- out.append(0+":"); //excavationXP
|
|
|
- out.append(0+":"); //archeryXP
|
|
|
- out.append(0+":"); //swordsXP
|
|
|
- out.append(0+":"); //axesXP
|
|
|
- out.append(0+":"); //acrobaticsXP
|
|
|
- out.append(myspawnworld+":");
|
|
|
- out.append(0+":"); //taming
|
|
|
- out.append(0+":"); //tamingXP
|
|
|
- out.append(0+":"); //DATS
|
|
|
- out.append(0+":"); //DATS
|
|
|
- out.append(0+":"); //DATS
|
|
|
- out.append(0+":"); //DATS
|
|
|
- out.append(0+":"); //DATS
|
|
|
- out.append(0+":"); //DATS
|
|
|
- out.append(0+":"); //DATS
|
|
|
- out.append(LoadProperties.defaulthud.toString()+":");//HUD
|
|
|
- out.append(0+":"); //Fishing
|
|
|
- out.append(0+":"); //FishingXP
|
|
|
-
|
|
|
- //Add more in the same format as the line above
|
|
|
-
|
|
|
- out.newLine();
|
|
|
- out.close();
|
|
|
- } catch (Exception e) {
|
|
|
- log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e);
|
|
|
- }
|
|
|
- }
|
|
|
- public void togglePartyHUD()
|
|
|
- {
|
|
|
- partyhud = !partyhud;
|
|
|
- }
|
|
|
- public boolean getPartyHUD()
|
|
|
- {
|
|
|
- return partyhud;
|
|
|
- }
|
|
|
- public void toggleSpoutEnabled()
|
|
|
- {
|
|
|
- spoutcraft = !spoutcraft;
|
|
|
- }
|
|
|
-
|
|
|
- public boolean isFilling()
|
|
|
- {
|
|
|
- return filling;
|
|
|
- }
|
|
|
- public void toggleFilling()
|
|
|
- {
|
|
|
- filling = !filling;
|
|
|
- }
|
|
|
- public HUDType getHUDType()
|
|
|
- {
|
|
|
- return hud;
|
|
|
- }
|
|
|
- public void setHUDType(HUDType type)
|
|
|
- {
|
|
|
- hud = type;
|
|
|
- save();
|
|
|
- }
|
|
|
- public boolean getXpBarLocked()
|
|
|
- {
|
|
|
- return xpbarlocked;
|
|
|
- }
|
|
|
- public void toggleXpBarLocked()
|
|
|
- {
|
|
|
- xpbarlocked = !xpbarlocked;
|
|
|
- }
|
|
|
- public int getXpBarInc()
|
|
|
- {
|
|
|
- return xpbarinc;
|
|
|
- }
|
|
|
- public void setXpBarInc(int newvalue)
|
|
|
- {
|
|
|
- xpbarinc = newvalue;
|
|
|
- }
|
|
|
- public void setSkillLock(SkillType newvalue)
|
|
|
- {
|
|
|
- skillLock = newvalue;
|
|
|
- }
|
|
|
- public SkillType getSkillLock()
|
|
|
- {
|
|
|
- return skillLock;
|
|
|
- }
|
|
|
- public void setLastGained(SkillType newvalue)
|
|
|
- {
|
|
|
- lastgained = newvalue;
|
|
|
- }
|
|
|
- public SkillType getLastGained()
|
|
|
- {
|
|
|
- return lastgained;
|
|
|
- }
|
|
|
-
|
|
|
- public boolean getAdminChatMode() {return adminChatMode;}
|
|
|
- public boolean getPartyChatMode() {return partyChatMode;}
|
|
|
-
|
|
|
- public boolean getGodMode() {return godMode;}
|
|
|
-
|
|
|
- public void togglePlacedAnvil()
|
|
|
- {
|
|
|
- placedAnvil = !placedAnvil;
|
|
|
- }
|
|
|
- public Boolean getPlacedAnvil()
|
|
|
- {
|
|
|
- return placedAnvil;
|
|
|
- }
|
|
|
- public void toggleAdminChat()
|
|
|
- {
|
|
|
- adminChatMode = !adminChatMode;
|
|
|
- }
|
|
|
-
|
|
|
- public void toggleGodMode()
|
|
|
- {
|
|
|
- godMode = !godMode;
|
|
|
- }
|
|
|
-
|
|
|
- public void togglePartyChat()
|
|
|
- {
|
|
|
- partyChatMode = !partyChatMode;
|
|
|
- }
|
|
|
-
|
|
|
- public void setMana(int newvalue)
|
|
|
- {
|
|
|
- mana = newvalue;
|
|
|
- }
|
|
|
-
|
|
|
- public int getCurrentMana()
|
|
|
- {
|
|
|
- return mana;
|
|
|
- }
|
|
|
- public void setDyeChanged(Boolean bool)
|
|
|
- {
|
|
|
- dyeChanged = bool;
|
|
|
- }
|
|
|
- public boolean getDyeChanged()
|
|
|
- {
|
|
|
- return dyeChanged;
|
|
|
- }
|
|
|
- public void setBlueDyeCycle(int newvalue)
|
|
|
- {
|
|
|
- blueDyeCycle = newvalue;
|
|
|
- }
|
|
|
- public int getBlueDyeCycle()
|
|
|
- {
|
|
|
- return blueDyeCycle;
|
|
|
- }
|
|
|
- public void setBlueDyeCycleSel(int newvalue)
|
|
|
- {
|
|
|
- blueDyeCycleSel = newvalue;
|
|
|
- }
|
|
|
- public int getBlueDyeCycleSel()
|
|
|
- {
|
|
|
- return blueDyeCycleSel;
|
|
|
- }
|
|
|
- public void setGreenDyeCycle(int newvalue)
|
|
|
- {
|
|
|
- greenDyeCycle = newvalue;
|
|
|
- }
|
|
|
- public int getGreenDyeCycle()
|
|
|
- {
|
|
|
- return greenDyeCycle;
|
|
|
- }
|
|
|
- public void setGreenDyeCycleSel(int newvalue)
|
|
|
- {
|
|
|
- greenDyeCycleSel = newvalue;
|
|
|
- }
|
|
|
- public int getGreenDyeCycleSel()
|
|
|
- {
|
|
|
- return greenDyeCycleSel;
|
|
|
- }
|
|
|
-
|
|
|
- public boolean isPlayer(String player)
|
|
|
- {
|
|
|
- return player.equals(playername);
|
|
|
- }
|
|
|
- public boolean getPartyChatOnlyToggle(){return partyChatOnly;}
|
|
|
- public void togglePartyChatOnly(){partyChatOnly = !partyChatOnly;}
|
|
|
- public boolean getAbilityUse(){
|
|
|
- return abilityuse;
|
|
|
- }
|
|
|
- public void toggleAbilityUse()
|
|
|
- {
|
|
|
- abilityuse = !abilityuse;
|
|
|
- }
|
|
|
- public long getMySpawnATS(){
|
|
|
- return mySpawnATS;
|
|
|
- }
|
|
|
- public void setMySpawnATS(long newvalue)
|
|
|
- {
|
|
|
- mySpawnATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- public void decreaseBleedTicks()
|
|
|
- {
|
|
|
- bleedticks--;
|
|
|
- }
|
|
|
- public Integer getBleedTicks(){
|
|
|
- return bleedticks;
|
|
|
- }
|
|
|
- public void setBleedTicks(Integer newvalue){
|
|
|
- bleedticks = newvalue;
|
|
|
- }
|
|
|
- public void addBleedTicks(Integer newvalue){
|
|
|
- bleedticks+=newvalue;
|
|
|
- }
|
|
|
- /*
|
|
|
- * EXPLOIT PREVENTION
|
|
|
- */
|
|
|
- public long getRespawnATS() {return respawnATS;}
|
|
|
- public void setRespawnATS(long newvalue) {respawnATS = (int) (newvalue/1000);}
|
|
|
-
|
|
|
- /*
|
|
|
- * HOE PREPARATION
|
|
|
- */
|
|
|
- public boolean getHoePreparationMode(){
|
|
|
- return hoePreparationMode;
|
|
|
- }
|
|
|
- public void setHoePreparationMode(Boolean bool){
|
|
|
- hoePreparationMode = bool;
|
|
|
- }
|
|
|
- public long getHoePreparationATS(){
|
|
|
- return hoePreparationATS;
|
|
|
- }
|
|
|
- public void setHoePreparationATS(long newvalue){
|
|
|
- hoePreparationATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
-
|
|
|
- /*
|
|
|
- * SWORDS PREPARATION
|
|
|
- */
|
|
|
- public boolean getSwordsPreparationMode(){
|
|
|
- return swordsPreparationMode;
|
|
|
- }
|
|
|
- public void setSwordsPreparationMode(Boolean bool){
|
|
|
- swordsPreparationMode = bool;
|
|
|
- }
|
|
|
- public long getSwordsPreparationATS(){
|
|
|
- return swordsPreparationATS;
|
|
|
- }
|
|
|
- public void setSwordsPreparationATS(long newvalue){
|
|
|
- swordsPreparationATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- /*
|
|
|
- * SHOVEL PREPARATION
|
|
|
- */
|
|
|
- public boolean getShovelPreparationMode(){
|
|
|
- return shovelPreparationMode;
|
|
|
- }
|
|
|
- public void setShovelPreparationMode(Boolean bool){
|
|
|
- shovelPreparationMode = bool;
|
|
|
- }
|
|
|
- public long getShovelPreparationATS(){
|
|
|
- return shovelPreparationATS;
|
|
|
- }
|
|
|
- public void setShovelPreparationATS(long newvalue){
|
|
|
- shovelPreparationATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- /*
|
|
|
- * FISTS PREPARATION
|
|
|
- */
|
|
|
- public boolean getFistsPreparationMode(){
|
|
|
- return fistsPreparationMode;
|
|
|
- }
|
|
|
- public void setFistsPreparationMode(Boolean bool){
|
|
|
- fistsPreparationMode = bool;
|
|
|
- }
|
|
|
- public long getFistsPreparationATS(){
|
|
|
- return fistsPreparationATS;
|
|
|
- }
|
|
|
- public void setFistsPreparationATS(long newvalue){
|
|
|
- fistsPreparationATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- /*
|
|
|
- * AXE PREPARATION
|
|
|
- */
|
|
|
- public boolean getAxePreparationMode(){
|
|
|
- return axePreparationMode;
|
|
|
- }
|
|
|
- public void setAxePreparationMode(Boolean bool){
|
|
|
- axePreparationMode = bool;
|
|
|
- }
|
|
|
- public long getAxePreparationATS(){
|
|
|
- return axePreparationATS;
|
|
|
- }
|
|
|
- public void setAxePreparationATS(long newvalue){
|
|
|
- axePreparationATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- /*
|
|
|
- * PICKAXE PREPARATION
|
|
|
- */
|
|
|
- public boolean getPickaxePreparationMode(){
|
|
|
- return pickaxePreparationMode;
|
|
|
- }
|
|
|
- public void setPickaxePreparationMode(Boolean bool){
|
|
|
- pickaxePreparationMode = bool;
|
|
|
- }
|
|
|
- public long getPickaxePreparationATS(){
|
|
|
- return pickaxePreparationATS;
|
|
|
- }
|
|
|
- public void setPickaxePreparationATS(long newvalue){
|
|
|
- pickaxePreparationATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- /*
|
|
|
- * GREEN TERRA MODE
|
|
|
- */
|
|
|
- public boolean getGreenTerraInformed() {return greenTerraInformed;}
|
|
|
- public void setGreenTerraInformed(Boolean bool){
|
|
|
- greenTerraInformed = bool;
|
|
|
- }
|
|
|
- public boolean getGreenTerraMode(){
|
|
|
- return greenTerraMode;
|
|
|
- }
|
|
|
- public void setGreenTerraMode(Boolean bool){
|
|
|
- greenTerraMode = bool;
|
|
|
- }
|
|
|
- public long getGreenTerraActivatedTimeStamp() {return greenTerraATS;}
|
|
|
- public void setGreenTerraActivatedTimeStamp(Long newvalue){
|
|
|
- greenTerraATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- public long getGreenTerraDeactivatedTimeStamp() {return greenTerraDATS;}
|
|
|
- public void setGreenTerraDeactivatedTimeStamp(Long newvalue){
|
|
|
- greenTerraDATS = (int) (newvalue/1000);
|
|
|
- save();
|
|
|
- }
|
|
|
- /*
|
|
|
- * BERSERK MODE
|
|
|
- */
|
|
|
- public boolean getBerserkInformed() {return berserkInformed;}
|
|
|
- public void setBerserkInformed(Boolean bool){
|
|
|
- berserkInformed = bool;
|
|
|
- }
|
|
|
- public boolean getBerserkMode(){
|
|
|
- return berserkMode;
|
|
|
- }
|
|
|
- public void setBerserkMode(Boolean bool){
|
|
|
- berserkMode = bool;
|
|
|
- }
|
|
|
- public long getBerserkActivatedTimeStamp() {return berserkATS;}
|
|
|
- public void setBerserkActivatedTimeStamp(Long newvalue){
|
|
|
- berserkATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- public long getBerserkDeactivatedTimeStamp() {return berserkDATS;}
|
|
|
- public void setBerserkDeactivatedTimeStamp(Long newvalue){
|
|
|
- berserkDATS = (int) (newvalue/1000);
|
|
|
- save();
|
|
|
- }
|
|
|
- /*
|
|
|
- * SKULL SPLITTER
|
|
|
- */
|
|
|
- public boolean getSkullSplitterInformed() {return skullSplitterInformed;}
|
|
|
- public void setSkullSplitterInformed(Boolean bool){
|
|
|
- skullSplitterInformed = bool;
|
|
|
- }
|
|
|
- public boolean getSkullSplitterMode(){
|
|
|
- return skullSplitterMode;
|
|
|
- }
|
|
|
- public void setSkullSplitterMode(Boolean bool){
|
|
|
- skullSplitterMode = bool;
|
|
|
- }
|
|
|
- public long getSkullSplitterActivatedTimeStamp() {return skullSplitterATS;}
|
|
|
- public void setSkullSplitterActivatedTimeStamp(Long newvalue){
|
|
|
- skullSplitterATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- public long getSkullSplitterDeactivatedTimeStamp() {return skullSplitterDATS;}
|
|
|
- public void setSkullSplitterDeactivatedTimeStamp(Long newvalue){
|
|
|
- skullSplitterDATS = (int) (newvalue/1000);
|
|
|
- save();
|
|
|
- }
|
|
|
- /*
|
|
|
- * SERRATED STRIKES
|
|
|
- */
|
|
|
- public boolean getSerratedStrikesInformed() {return serratedStrikesInformed;}
|
|
|
- public void setSerratedStrikesInformed(Boolean bool){
|
|
|
- serratedStrikesInformed = bool;
|
|
|
- }
|
|
|
- public boolean getSerratedStrikesMode(){
|
|
|
- return serratedStrikesMode;
|
|
|
- }
|
|
|
- public void setSerratedStrikesMode(Boolean bool){
|
|
|
- serratedStrikesMode = bool;
|
|
|
- }
|
|
|
- public long getSerratedStrikesActivatedTimeStamp() {return serratedStrikesATS;}
|
|
|
- public void setSerratedStrikesActivatedTimeStamp(Long newvalue){
|
|
|
- serratedStrikesATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- public long getSerratedStrikesDeactivatedTimeStamp() {return serratedStrikesDATS;}
|
|
|
- public void setSerratedStrikesDeactivatedTimeStamp(Long newvalue){
|
|
|
- serratedStrikesDATS = (int) (newvalue/1000);
|
|
|
- save();
|
|
|
- }
|
|
|
- /*
|
|
|
- * GIGA DRILL BREAKER
|
|
|
- */
|
|
|
- public boolean getGigaDrillBreakerInformed() {return gigaDrillBreakerInformed;}
|
|
|
- public void setGigaDrillBreakerInformed(Boolean bool){
|
|
|
- gigaDrillBreakerInformed = bool;
|
|
|
- }
|
|
|
- public boolean getGigaDrillBreakerMode(){
|
|
|
- return gigaDrillBreakerMode;
|
|
|
- }
|
|
|
- public void setGigaDrillBreakerMode(Boolean bool){
|
|
|
- gigaDrillBreakerMode = bool;
|
|
|
- }
|
|
|
- public long getGigaDrillBreakerActivatedTimeStamp() {return gigaDrillBreakerATS;}
|
|
|
- public void setGigaDrillBreakerActivatedTimeStamp(Long newvalue){
|
|
|
- gigaDrillBreakerATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- public long getGigaDrillBreakerDeactivatedTimeStamp() {return gigaDrillBreakerDATS;}
|
|
|
- public void setGigaDrillBreakerDeactivatedTimeStamp(Long newvalue){
|
|
|
- gigaDrillBreakerDATS = (int) (newvalue/1000);
|
|
|
- save();
|
|
|
- }
|
|
|
- /*
|
|
|
- * TREE FELLER STUFF
|
|
|
- */
|
|
|
- public boolean getTreeFellerInformed() {return treeFellerInformed;}
|
|
|
- public void setTreeFellerInformed(Boolean bool){
|
|
|
- treeFellerInformed = bool;
|
|
|
- }
|
|
|
- public boolean getTreeFellerMode(){
|
|
|
- return treeFellerMode;
|
|
|
- }
|
|
|
- public void setTreeFellerMode(Boolean bool){
|
|
|
- treeFellerMode = bool;
|
|
|
- }
|
|
|
- public long getTreeFellerActivatedTimeStamp() {return treeFellerATS;}
|
|
|
- public void setTreeFellerActivatedTimeStamp(Long newvalue){
|
|
|
- treeFellerATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- public long getTreeFellerDeactivatedTimeStamp() {return treeFellerDATS;}
|
|
|
- public void setTreeFellerDeactivatedTimeStamp(Long newvalue){
|
|
|
- treeFellerDATS = (int) (newvalue/1000);
|
|
|
- save();
|
|
|
- }
|
|
|
- /*
|
|
|
- * MINING
|
|
|
- */
|
|
|
- public boolean getSuperBreakerInformed() {return superBreakerInformed;}
|
|
|
- public void setSuperBreakerInformed(Boolean bool){
|
|
|
- superBreakerInformed = bool;
|
|
|
- }
|
|
|
- public boolean getSuperBreakerMode(){
|
|
|
- return superBreakerMode;
|
|
|
- }
|
|
|
- public void setSuperBreakerMode(Boolean bool){
|
|
|
- superBreakerMode = bool;
|
|
|
- }
|
|
|
- public long getSuperBreakerActivatedTimeStamp() {return superBreakerATS;}
|
|
|
- public void setSuperBreakerActivatedTimeStamp(Long newvalue){
|
|
|
- superBreakerATS = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- public long getSuperBreakerDeactivatedTimeStamp() {return superBreakerDATS;}
|
|
|
- public void setSuperBreakerDeactivatedTimeStamp(Long newvalue){
|
|
|
- superBreakerDATS = (int) (newvalue/1000);
|
|
|
- save();
|
|
|
- }
|
|
|
- public long getRecentlyHurt(){
|
|
|
- return recentlyHurt;
|
|
|
- }
|
|
|
- public void setRecentlyHurt(long newvalue){
|
|
|
- recentlyHurt = (int) (newvalue/1000);
|
|
|
- }
|
|
|
- public void skillUp(SkillType skillType, int newvalue)
|
|
|
- {
|
|
|
- skills.put(skillType, skills.get(skillType)+newvalue);
|
|
|
- save();
|
|
|
- }
|
|
|
- public Integer getSkillLevel(SkillType skillType)
|
|
|
- {
|
|
|
- return skills.get(skillType);
|
|
|
- }
|
|
|
- public Integer getSkillXpLevel(SkillType skillType)
|
|
|
- {
|
|
|
- return skillsXp.get(skillType);
|
|
|
- }
|
|
|
- public void resetSkillXp(SkillType skillType)
|
|
|
- {
|
|
|
- skills.put(skillType, 0);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Adds XP to the player, this ignores skill modifiers
|
|
|
- * @param skillType The skill to add XP to
|
|
|
- * @param newvalue The amount of XP to add
|
|
|
- */
|
|
|
- public void addXPOverride(SkillType skillType, int newvalue)
|
|
|
- {
|
|
|
- if(skillType == SkillType.ALL)
|
|
|
- {
|
|
|
- for(SkillType x : SkillType.values())
|
|
|
- {
|
|
|
- if(x == SkillType.ALL)
|
|
|
- continue;
|
|
|
- skillsXp.put(x, skillsXp.get(x)+newvalue);
|
|
|
- }
|
|
|
- } else {
|
|
|
- int xp = newvalue;
|
|
|
-
|
|
|
- xp=xp*LoadProperties.xpGainMultiplier;
|
|
|
- skillsXp.put(skillType, skillsXp.get(skillType)+xp);
|
|
|
- lastgained = skillType;
|
|
|
- }
|
|
|
- }
|
|
|
- /**
|
|
|
- * Adds XP to the player, this is affected by skill modifiers
|
|
|
- * @param skillType The skill to add XP to
|
|
|
- * @param newvalue The amount of XP to add
|
|
|
- */
|
|
|
- public void addXP(SkillType skillType, int newvalue, Player thisplayer)
|
|
|
- {
|
|
|
- if(System.currentTimeMillis() < ((xpGainATS*1000)+250) || thisplayer.getGameMode() == GameMode.CREATIVE)
|
|
|
- return;
|
|
|
-
|
|
|
- //Setup a timestamp of when xp was given
|
|
|
- xpGainATS = (int) (System.currentTimeMillis()/1000);
|
|
|
-
|
|
|
- double bonusModifier = 0;
|
|
|
- String leaderName = "";
|
|
|
-
|
|
|
- if(inParty())
|
|
|
- {
|
|
|
- for(Player x : Party.getInstance().getPartyMembers(thisplayer))
|
|
|
- {
|
|
|
- if(x.isOnline() && !x.getName().equals(thisplayer.getName()) && Party.getInstance().isPartyLeader(x.getName(), this.getParty()))
|
|
|
- {
|
|
|
- leaderName = x.getName();
|
|
|
- if(m.getDistance(thisplayer.getLocation(), x.getLocation()) < 25)
|
|
|
- {
|
|
|
- PlayerProfile PartyLeader = Users.getProfile(x);
|
|
|
- if(PartyLeader.getSkillLevel(skillType) >= this.getSkillLevel(skillType))
|
|
|
- {
|
|
|
- int leaderLevel = PartyLeader.getSkillLevel(skillType);
|
|
|
- int difference = leaderLevel - this.getSkillLevel(skillType);
|
|
|
- bonusModifier = (difference*0.75D)/100D;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if(skillType == SkillType.ALL)
|
|
|
- {
|
|
|
- for(SkillType x : SkillType.values())
|
|
|
- {
|
|
|
- if(x == SkillType.ALL)
|
|
|
- continue;
|
|
|
- skillsXp.put(x, skillsXp.get(x)+newvalue);
|
|
|
- }
|
|
|
- } else {
|
|
|
- int xp = newvalue;
|
|
|
-
|
|
|
- switch(skillType)
|
|
|
- {
|
|
|
- case TAMING:
|
|
|
- xp=(int) (xp/LoadProperties.tamingxpmodifier);
|
|
|
- break;
|
|
|
- case MINING:
|
|
|
- xp=(int) (xp/LoadProperties.miningxpmodifier);
|
|
|
- break;
|
|
|
- case WOODCUTTING:
|
|
|
- xp=(int) (xp/LoadProperties.woodcuttingxpmodifier);
|
|
|
- break;
|
|
|
- case REPAIR:
|
|
|
- xp=(int) (xp/LoadProperties.repairxpmodifier);
|
|
|
- break;
|
|
|
- case HERBALISM:
|
|
|
- xp=(int) (xp/LoadProperties.herbalismxpmodifier);
|
|
|
- break;
|
|
|
- case ACROBATICS:
|
|
|
- xp=(int) (xp/LoadProperties.acrobaticsxpmodifier);
|
|
|
- break;
|
|
|
- case SWORDS:
|
|
|
- xp=(int) (xp/LoadProperties.swordsxpmodifier);
|
|
|
- break;
|
|
|
- case ARCHERY:
|
|
|
- xp=(int) (xp/LoadProperties.archeryxpmodifier);
|
|
|
- break;
|
|
|
- case UNARMED:
|
|
|
- xp=(int) (xp/LoadProperties.unarmedxpmodifier);
|
|
|
- break;
|
|
|
- case EXCAVATION:
|
|
|
- xp=(int) (xp/LoadProperties.excavationxpmodifier);
|
|
|
- break;
|
|
|
- case AXES:
|
|
|
- xp=(int) (xp/LoadProperties.axesxpmodifier);
|
|
|
- break;
|
|
|
- }
|
|
|
- xp=xp*LoadProperties.xpGainMultiplier;
|
|
|
-
|
|
|
- if(bonusModifier > 0)
|
|
|
- {
|
|
|
- if(bonusModifier >= 2)
|
|
|
- bonusModifier = 2;
|
|
|
-
|
|
|
- double trueBonus = bonusModifier * xp;
|
|
|
- double oldxp = xp;
|
|
|
- xp+=trueBonus;
|
|
|
- double percent = (trueBonus/oldxp)*100;
|
|
|
- thisplayer.sendMessage(ChatColor.GREEN+"XP: "+oldxp+" Bonus XP: "+trueBonus+" Total: "+xp+ChatColor.GOLD+" [Master: "+leaderName+" " +" +"+(int)percent+"%]");
|
|
|
- }
|
|
|
- skillsXp.put(skillType, skillsXp.get(skillType)+xp);
|
|
|
- lastgained = skillType;
|
|
|
- }
|
|
|
- //save();
|
|
|
- }
|
|
|
-
|
|
|
- public void removeXP(SkillType skillType, int newvalue)
|
|
|
- {
|
|
|
- if(skillType == SkillType.ALL)
|
|
|
- {
|
|
|
- skillsXp.put(SkillType.TAMING, skillsXp.get(SkillType.TAMING)-newvalue);
|
|
|
- skillsXp.put(SkillType.MINING, skillsXp.get(SkillType.MINING)-newvalue);
|
|
|
- skillsXp.put(SkillType.WOODCUTTING, skillsXp.get(SkillType.WOODCUTTING)-newvalue);
|
|
|
- skillsXp.put(SkillType.REPAIR, skillsXp.get(SkillType.REPAIR)-newvalue);
|
|
|
- skillsXp.put(SkillType.HERBALISM, skillsXp.get(SkillType.HERBALISM)-newvalue);
|
|
|
- skillsXp.put(SkillType.ACROBATICS, skillsXp.get(SkillType.ACROBATICS)-newvalue);
|
|
|
- skillsXp.put(SkillType.SWORDS, skillsXp.get(SkillType.SWORDS)-newvalue);
|
|
|
- skillsXp.put(SkillType.ARCHERY, skillsXp.get(SkillType.ARCHERY)-newvalue);
|
|
|
- skillsXp.put(SkillType.UNARMED, skillsXp.get(SkillType.UNARMED)-newvalue);
|
|
|
- skillsXp.put(SkillType.EXCAVATION, skillsXp.get(SkillType.EXCAVATION)-newvalue);
|
|
|
- skillsXp.put(SkillType.AXES, skillsXp.get(SkillType.AXES)-newvalue);
|
|
|
- skillsXp.put(SkillType.FISHING, skillsXp.get(SkillType.FISHING)-newvalue);
|
|
|
- } else {
|
|
|
- skillsXp.put(skillType, skillsXp.get(skillType)-newvalue);
|
|
|
- }
|
|
|
- //save();
|
|
|
- }
|
|
|
- public void acceptInvite()
|
|
|
- {
|
|
|
- party = invite;
|
|
|
- invite = "";
|
|
|
- }
|
|
|
- public void modifyInvite(String invitename)
|
|
|
- {
|
|
|
- invite = invitename;
|
|
|
- }
|
|
|
- public String getInvite() { return invite; }
|
|
|
-
|
|
|
- public void modifyskill(SkillType skillType, int newvalue)
|
|
|
- {
|
|
|
- if(skillType == SkillType.ALL)
|
|
|
- {
|
|
|
- skills.put(SkillType.TAMING, newvalue);
|
|
|
- skills.put(SkillType.MINING, newvalue);
|
|
|
- skills.put(SkillType.WOODCUTTING, newvalue);
|
|
|
- skills.put(SkillType.REPAIR, newvalue);
|
|
|
- skills.put(SkillType.HERBALISM, newvalue);
|
|
|
- skills.put(SkillType.ACROBATICS, newvalue);
|
|
|
- skills.put(SkillType.SWORDS, newvalue);
|
|
|
- skills.put(SkillType.ARCHERY, newvalue);
|
|
|
- skills.put(SkillType.UNARMED, newvalue);
|
|
|
- skills.put(SkillType.EXCAVATION, newvalue);
|
|
|
- skills.put(SkillType.AXES, newvalue);
|
|
|
- skills.put(SkillType.FISHING, newvalue);
|
|
|
-
|
|
|
- skillsXp.put(SkillType.TAMING, 0);
|
|
|
- skillsXp.put(SkillType.MINING, 0);
|
|
|
- skillsXp.put(SkillType.WOODCUTTING, 0);
|
|
|
- skillsXp.put(SkillType.REPAIR, 0);
|
|
|
- skillsXp.put(SkillType.HERBALISM, 0);
|
|
|
- skillsXp.put(SkillType.ACROBATICS, 0);
|
|
|
- skillsXp.put(SkillType.SWORDS, 0);
|
|
|
- skillsXp.put(SkillType.ARCHERY, 0);
|
|
|
- skillsXp.put(SkillType.UNARMED, 0);
|
|
|
- skillsXp.put(SkillType.EXCAVATION, 0);
|
|
|
- skillsXp.put(SkillType.AXES, 0);
|
|
|
- skillsXp.put(SkillType.FISHING, 0);
|
|
|
- } else {
|
|
|
- skills.put(skillType, newvalue);
|
|
|
- skillsXp.put(skillType, newvalue);
|
|
|
- }
|
|
|
- save();
|
|
|
- }
|
|
|
- public Integer getXpToLevel(SkillType skillType)
|
|
|
- {
|
|
|
- return (int) ((1020+(skills.get(skillType) * 20)));
|
|
|
- }
|
|
|
-
|
|
|
- //Store the player's party
|
|
|
- public void setParty(String newParty)
|
|
|
- {
|
|
|
- party = newParty;
|
|
|
- save();
|
|
|
- }
|
|
|
- //Retrieve the player's party
|
|
|
- public String getParty() {return party;}
|
|
|
- //Remove party
|
|
|
- public void removeParty() {
|
|
|
- party = null;
|
|
|
- save();
|
|
|
- }
|
|
|
- //Retrieve whether or not the player is in a party
|
|
|
- public boolean inParty()
|
|
|
- {
|
|
|
- if(party != null && !party.equals("") && !party.equals("null")){
|
|
|
- return true;
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //Retrieve whether or not the player has an invite
|
|
|
- public boolean hasPartyInvite() {
|
|
|
- if(invite != null && !invite.equals("") && !invite.equals("null")){
|
|
|
- return true;
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
- public String getMySpawnWorld()
|
|
|
- {
|
|
|
- if(myspawnworld != null && !myspawnworld.equals("") && !myspawnworld.equals("null")){
|
|
|
- return myspawnworld;
|
|
|
- } else {
|
|
|
- return Bukkit.getServer().getWorlds().get(0).toString();
|
|
|
- }
|
|
|
- }
|
|
|
- //Save a users spawn location
|
|
|
- public void setMySpawn(double x, double y, double z, String myspawnworldlocation){
|
|
|
- myspawn = x+","+y+","+z;
|
|
|
- myspawnworld = myspawnworldlocation;
|
|
|
- save();
|
|
|
- }
|
|
|
- public String getX(){
|
|
|
- if(myspawn != null)
|
|
|
- {
|
|
|
- String[] split = myspawn.split(",");
|
|
|
- return split[0];
|
|
|
- }
|
|
|
- else
|
|
|
- return null;
|
|
|
- }
|
|
|
- public String getY(){
|
|
|
- if(myspawn != null)
|
|
|
- {
|
|
|
- String[] split = myspawn.split(",");
|
|
|
- return split[1];
|
|
|
- }
|
|
|
- else
|
|
|
- return null;
|
|
|
- }
|
|
|
- public String getZ(){
|
|
|
- if(myspawn != null)
|
|
|
- {
|
|
|
- String[] split = myspawn.split(",");
|
|
|
- return split[2];
|
|
|
- }
|
|
|
- else
|
|
|
- return null;
|
|
|
- }
|
|
|
- public boolean isDead(){
|
|
|
- return dead;
|
|
|
- }
|
|
|
- public Location getMySpawn(Player player)
|
|
|
- {
|
|
|
- Location loc = null;
|
|
|
- if(myspawn != null)
|
|
|
- {
|
|
|
- if(m.isDouble(getX()) && m.isDouble(getY()) && m.isDouble(getZ()))
|
|
|
- loc = new Location(player.getWorld(),(Double.parseDouble(getX())), Double.parseDouble(getY()), Double.parseDouble(getZ()));
|
|
|
- else
|
|
|
- return null;
|
|
|
- } else
|
|
|
- return null;
|
|
|
-
|
|
|
- loc.setYaw(0);
|
|
|
- loc.setPitch(0);
|
|
|
- if(loc.getX() != 0 && loc.getY() != 0 && loc.getZ() != 0 && loc.getWorld() != null)
|
|
|
- {
|
|
|
- if(Bukkit.getServer().getWorld(this.getMySpawnWorld()) != null)
|
|
|
- loc.setWorld(Bukkit.getServer().getWorld(this.getMySpawnWorld()));
|
|
|
- else
|
|
|
- loc.setWorld(Bukkit.getServer().getWorlds().get(0));
|
|
|
- return loc;
|
|
|
- } else {
|
|
|
- return null;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+/*
|
|
|
+ This file is part of mcMMO.
|
|
|
+
|
|
|
+ mcMMO is free software: you can redistribute it and/or modify
|
|
|
+ it under the terms of the GNU General Public License as published by
|
|
|
+ the Free Software Foundation, either version 3 of the License, or
|
|
|
+ (at your option) any later version.
|
|
|
+
|
|
|
+ mcMMO is distributed in the hope that it will be useful,
|
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
+ GNU General Public License for more details.
|
|
|
+
|
|
|
+ You should have received a copy of the GNU General Public License
|
|
|
+ along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
|
|
|
+*/
|
|
|
+package com.gmail.nossr50.datatypes;
|
|
|
+
|
|
|
+import java.io.BufferedReader;
|
|
|
+import java.io.BufferedWriter;
|
|
|
+import java.io.FileReader;
|
|
|
+import java.io.FileWriter;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.logging.Level;
|
|
|
+import java.util.logging.Logger;
|
|
|
+
|
|
|
+
|
|
|
+import org.bukkit.Bukkit;
|
|
|
+import org.bukkit.ChatColor;
|
|
|
+import org.bukkit.GameMode;
|
|
|
+import org.bukkit.Location;
|
|
|
+import org.bukkit.entity.Player;
|
|
|
+import com.gmail.nossr50.config.LoadProperties;
|
|
|
+import com.gmail.nossr50.party.Party;
|
|
|
+import com.gmail.nossr50.Users;
|
|
|
+import com.gmail.nossr50.m;
|
|
|
+import com.gmail.nossr50.mcMMO;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+public class PlayerProfile
|
|
|
+{
|
|
|
+ protected final Logger log = Logger.getLogger("Minecraft");
|
|
|
+
|
|
|
+ //HUD
|
|
|
+ private HUDType hud;
|
|
|
+
|
|
|
+ //MISC
|
|
|
+ private String party, myspawn, myspawnworld, invite;
|
|
|
+
|
|
|
+ //TOGGLES
|
|
|
+ private boolean partyhud = true, spoutcraft = false, filling = false, xpbarlocked = false, placedAnvil = false, partyChatMode = false, adminChatMode = false, godMode = false, greenTerraMode, partyChatOnly = false, greenTerraInformed = true, berserkInformed = true, skullSplitterInformed = true, gigaDrillBreakerInformed = true,
|
|
|
+ superBreakerInformed = true, serratedStrikesInformed = true, treeFellerInformed = true, dead, abilityuse = true, treeFellerMode, superBreakerMode, gigaDrillBreakerMode,
|
|
|
+ serratedStrikesMode, hoePreparationMode = false, shovelPreparationMode = false, swordsPreparationMode = false, fistsPreparationMode = false, pickaxePreparationMode = false, axePreparationMode = false, skullSplitterMode, berserkMode;
|
|
|
+
|
|
|
+ //TIMESTAMPS
|
|
|
+ //ATS = (Time of) Activation Time Stamp
|
|
|
+ //DATS = (Time of) Deactivation Time Stamp
|
|
|
+ private int xpGainATS = 0, recentlyHurt = 0, berserkATS = 0, berserkDATS = 0, gigaDrillBreakerATS = 0, gigaDrillBreakerDATS = 0,
|
|
|
+ respawnATS = 0, mySpawnATS = 0, greenTerraATS = 0, greenTerraDATS = 0, superBreakerATS = 0, superBreakerDATS = 0, serratedStrikesATS = 0, serratedStrikesDATS = 0, treeFellerATS = 0, treeFellerDATS = 0,
|
|
|
+ skullSplitterATS = 0, skullSplitterDATS = 0, hoePreparationATS = 0, axePreparationATS = 0, pickaxePreparationATS = 0, fistsPreparationATS = 0, shovelPreparationATS = 0, swordsPreparationATS = 0;
|
|
|
+
|
|
|
+ private SkillType lastgained = null, skillLock = null;
|
|
|
+
|
|
|
+ //MySQL STUFF
|
|
|
+ private int xpbarinc=0, lastlogin=0, userid = 0, bleedticks = 0;
|
|
|
+
|
|
|
+ //MAGIC STUFF
|
|
|
+ private int mana = 0;
|
|
|
+ private int greenDyeCycleSel = 0, greenDyeCycle = 0, blueDyeCycle = 0, blueDyeCycleSel = 0;
|
|
|
+ public boolean dyeChanged = false;
|
|
|
+
|
|
|
+ private String playername;
|
|
|
+
|
|
|
+ //Time to HashMap this shiz
|
|
|
+ HashMap<SkillType, Integer> skills = new HashMap<SkillType, Integer>(); //Skills and XP
|
|
|
+ HashMap<SkillType, Integer> skillsXp = new HashMap<SkillType, Integer>(); //Skills and XP
|
|
|
+
|
|
|
+ String location = "plugins/mcMMO/FlatFileStuff/mcmmo.users";
|
|
|
+
|
|
|
+ public PlayerProfile(Player player)
|
|
|
+ {
|
|
|
+ hud = LoadProperties.defaulthud;
|
|
|
+ //Setup the HashMap for the skills
|
|
|
+ for(SkillType skillType : SkillType.values())
|
|
|
+ {
|
|
|
+ if(skillType != SkillType.ALL)
|
|
|
+ {
|
|
|
+ skills.put(skillType, 0);
|
|
|
+ skillsXp.put(skillType, 0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ playername = player.getName();
|
|
|
+ if (LoadProperties.useMySQL)
|
|
|
+ {
|
|
|
+ if(!loadMySQL(player)) {
|
|
|
+ addMySQLPlayer(player);
|
|
|
+ loadMySQL(player);//This is probably not needed anymore, could just delete
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if(!load()) { addPlayer(); }
|
|
|
+ }
|
|
|
+ lastlogin = ((Long) (System.currentTimeMillis()/1000)).intValue();
|
|
|
+ }
|
|
|
+ public int getLastLogin()
|
|
|
+ {
|
|
|
+ return lastlogin;
|
|
|
+ }
|
|
|
+ public int getMySQLuserId()
|
|
|
+ {
|
|
|
+ return userid;
|
|
|
+ }
|
|
|
+
|
|
|
+ public boolean loadMySQL(Player p)
|
|
|
+ {
|
|
|
+ Integer id = 0;
|
|
|
+ id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + p.getName() + "'");
|
|
|
+ if(id == 0)
|
|
|
+ return false;
|
|
|
+ this.userid = id;
|
|
|
+ if (id > 0) {
|
|
|
+ HashMap<Integer, ArrayList<String>> huds = mcMMO.database.Read("SELECT hudtype FROM "+LoadProperties.MySQLtablePrefix+"huds WHERE user_id = " + id);
|
|
|
+ if(huds.get(1) == null)
|
|
|
+ {
|
|
|
+ mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"huds (user_id) VALUES ("+id+")");
|
|
|
+ } else {
|
|
|
+ if(huds.get(1).get(0) != null)
|
|
|
+ {
|
|
|
+ for(HUDType x : HUDType.values())
|
|
|
+ {
|
|
|
+ if(x.toString().equals(huds.get(1).get(0)))
|
|
|
+ {
|
|
|
+ hud = x;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ hud = LoadProperties.defaulthud;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ HashMap<Integer, ArrayList<String>> users = mcMMO.database.Read("SELECT lastlogin, party FROM "+LoadProperties.MySQLtablePrefix+"users WHERE id = " + id);
|
|
|
+ //lastlogin = Integer.parseInt(users.get(1).get(0));
|
|
|
+ party = users.get(1).get(1);
|
|
|
+ HashMap<Integer, ArrayList<String>> spawn = mcMMO.database.Read("SELECT world, x, y, z FROM "+LoadProperties.MySQLtablePrefix+"spawn WHERE user_id = " + id);
|
|
|
+ myspawnworld = spawn.get(1).get(0);
|
|
|
+ myspawn = spawn.get(1).get(1) + "," + spawn.get(1).get(2) + "," + spawn.get(1).get(3);
|
|
|
+ HashMap<Integer, ArrayList<String>> cooldowns = mcMMO.database.Read("SELECT mining, woodcutting, unarmed, herbalism, excavation, swords, axes FROM "+LoadProperties.MySQLtablePrefix+"cooldowns WHERE user_id = " + id);
|
|
|
+ /*
|
|
|
+ * I'm still learning MySQL, this is a fix for adding a new table
|
|
|
+ * its not pretty but it works
|
|
|
+ */
|
|
|
+ if(cooldowns.get(1) == null)
|
|
|
+ {
|
|
|
+ mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"cooldowns (user_id) VALUES ("+id+")");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ superBreakerDATS = Integer.valueOf(cooldowns.get(1).get(0));
|
|
|
+ treeFellerDATS = Integer.valueOf(cooldowns.get(1).get(1));
|
|
|
+ berserkDATS = Integer.valueOf(cooldowns.get(1).get(2));
|
|
|
+ greenTerraDATS = Integer.valueOf(cooldowns.get(1).get(3));
|
|
|
+ gigaDrillBreakerDATS = Integer.valueOf(cooldowns.get(1).get(4));
|
|
|
+ serratedStrikesDATS = Integer.valueOf(cooldowns.get(1).get(5));
|
|
|
+ skullSplitterDATS = Integer.valueOf(cooldowns.get(1).get(6));
|
|
|
+ }
|
|
|
+ HashMap<Integer, ArrayList<String>> stats = mcMMO.database.Read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM "+LoadProperties.MySQLtablePrefix+"skills WHERE user_id = " + id);
|
|
|
+ skills.put(SkillType.TAMING, Integer.valueOf(stats.get(1).get(0)));
|
|
|
+ skills.put(SkillType.MINING, Integer.valueOf(stats.get(1).get(1)));
|
|
|
+ skills.put(SkillType.REPAIR, Integer.valueOf(stats.get(1).get(2)));
|
|
|
+ skills.put(SkillType.WOODCUTTING, Integer.valueOf(stats.get(1).get(3)));
|
|
|
+ skills.put(SkillType.UNARMED, Integer.valueOf(stats.get(1).get(4)));
|
|
|
+ skills.put(SkillType.HERBALISM, Integer.valueOf(stats.get(1).get(5)));
|
|
|
+ skills.put(SkillType.EXCAVATION, Integer.valueOf(stats.get(1).get(6)));
|
|
|
+ skills.put(SkillType.ARCHERY, Integer.valueOf(stats.get(1).get(7)));
|
|
|
+ skills.put(SkillType.SWORDS, Integer.valueOf(stats.get(1).get(8)));
|
|
|
+ skills.put(SkillType.AXES, Integer.valueOf(stats.get(1).get(9)));
|
|
|
+ skills.put(SkillType.ACROBATICS, Integer.valueOf(stats.get(1).get(10)));
|
|
|
+ skills.put(SkillType.FISHING, Integer.valueOf(stats.get(1).get(11)));
|
|
|
+ HashMap<Integer, ArrayList<String>> experience = mcMMO.database.Read("SELECT taming, mining, repair, woodcutting, unarmed, herbalism, excavation, archery, swords, axes, acrobatics, fishing FROM "+LoadProperties.MySQLtablePrefix+"experience WHERE user_id = " + id);
|
|
|
+ skillsXp.put(SkillType.TAMING, Integer.valueOf(experience.get(1).get(0)));
|
|
|
+ skillsXp.put(SkillType.MINING, Integer.valueOf(experience.get(1).get(1)));
|
|
|
+ skillsXp.put(SkillType.REPAIR, Integer.valueOf(experience.get(1).get(2)));
|
|
|
+ skillsXp.put(SkillType.WOODCUTTING, Integer.valueOf(experience.get(1).get(3)));
|
|
|
+ skillsXp.put(SkillType.UNARMED, Integer.valueOf(experience.get(1).get(4)));
|
|
|
+ skillsXp.put(SkillType.HERBALISM, Integer.valueOf(experience.get(1).get(5)));
|
|
|
+ skillsXp.put(SkillType.EXCAVATION, Integer.valueOf(experience.get(1).get(6)));
|
|
|
+ skillsXp.put(SkillType.ARCHERY, Integer.valueOf(experience.get(1).get(7)));
|
|
|
+ skillsXp.put(SkillType.SWORDS, Integer.valueOf(experience.get(1).get(8)));
|
|
|
+ skillsXp.put(SkillType.AXES, Integer.valueOf(experience.get(1).get(9)));
|
|
|
+ skillsXp.put(SkillType.ACROBATICS, Integer.valueOf(experience.get(1).get(10)));
|
|
|
+ skillsXp.put(SkillType.FISHING, Integer.valueOf(experience.get(1).get(11)));
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public void addMySQLPlayer(Player p) {
|
|
|
+ Integer id = 0;
|
|
|
+ mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"users (user, lastlogin) VALUES ('" + p.getName() + "'," + System.currentTimeMillis() / 1000 +")");
|
|
|
+ id = mcMMO.database.GetInt("SELECT id FROM "+LoadProperties.MySQLtablePrefix+"users WHERE user = '" + p.getName() + "'");
|
|
|
+ mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"cooldowns (user_id) VALUES ("+id+")");
|
|
|
+ mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"spawn (user_id) VALUES ("+id+")");
|
|
|
+ mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"skills (user_id) VALUES ("+id+")");
|
|
|
+ mcMMO.database.Write("INSERT INTO "+LoadProperties.MySQLtablePrefix+"experience (user_id) VALUES ("+id+")");
|
|
|
+ this.userid = id;
|
|
|
+ }
|
|
|
+
|
|
|
+ public boolean load()
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ //Open the user file
|
|
|
+ FileReader file = new FileReader(location);
|
|
|
+ BufferedReader in = new BufferedReader(file);
|
|
|
+ String line = "";
|
|
|
+ while((line = in.readLine()) != null)
|
|
|
+ {
|
|
|
+ //Find if the line contains the player we want.
|
|
|
+ String[] character = line.split(":");
|
|
|
+
|
|
|
+ if(!character[0].equals(playername)){continue;}
|
|
|
+
|
|
|
+ //Get Mining
|
|
|
+ if(character.length > 1 && m.isInt(character[1]))
|
|
|
+ skills.put(SkillType.MINING, Integer.valueOf(character[1]));
|
|
|
+ //Myspawn
|
|
|
+ if(character.length > 2)
|
|
|
+ myspawn = character[2];
|
|
|
+ //Party
|
|
|
+ if(character.length > 3)
|
|
|
+ party = character[3];
|
|
|
+ //Mining XP
|
|
|
+ if(character.length > 4 && m.isInt(character[4]))
|
|
|
+ skillsXp.put(SkillType.MINING, Integer.valueOf(character[4]));
|
|
|
+ if(character.length > 5 && m.isInt(character[5]))
|
|
|
+ skills.put(SkillType.WOODCUTTING, Integer.valueOf(character[5]));
|
|
|
+ if(character.length > 6 && m.isInt(character[6]))
|
|
|
+ skillsXp.put(SkillType.WOODCUTTING, Integer.valueOf(character[6]));
|
|
|
+ if(character.length > 7 && m.isInt(character[7]))
|
|
|
+ skills.put(SkillType.REPAIR, Integer.valueOf(character[7]));
|
|
|
+ if(character.length > 8 && m.isInt(character[8]))
|
|
|
+ skills.put(SkillType.UNARMED, Integer.valueOf(character[8]));
|
|
|
+ if(character.length > 9 && m.isInt(character[9]))
|
|
|
+ skills.put(SkillType.HERBALISM, Integer.valueOf(character[9]));
|
|
|
+ if(character.length > 10 && m.isInt(character[10]))
|
|
|
+ skills.put(SkillType.EXCAVATION, Integer.valueOf(character[10]));
|
|
|
+ if(character.length > 11 && m.isInt(character[11]))
|
|
|
+ skills.put(SkillType.ARCHERY, Integer.valueOf(character[11]));
|
|
|
+ if(character.length > 12 && m.isInt(character[12]))
|
|
|
+ skills.put(SkillType.SWORDS, Integer.valueOf(character[12]));
|
|
|
+ if(character.length > 13 && m.isInt(character[13]))
|
|
|
+ skills.put(SkillType.AXES, Integer.valueOf(character[13]));
|
|
|
+ if(character.length > 14 && m.isInt(character[14]))
|
|
|
+ skills.put(SkillType.ACROBATICS, Integer.valueOf(character[14]));
|
|
|
+ if(character.length > 15 && m.isInt(character[15]))
|
|
|
+ skillsXp.put(SkillType.REPAIR, Integer.valueOf(character[15]));
|
|
|
+ if(character.length > 16 && m.isInt(character[16]))
|
|
|
+ skillsXp.put(SkillType.UNARMED, Integer.valueOf(character[16]));
|
|
|
+ if(character.length > 17 && m.isInt(character[17]))
|
|
|
+ skillsXp.put(SkillType.HERBALISM, Integer.valueOf(character[17]));
|
|
|
+ if(character.length > 18 && m.isInt(character[18]))
|
|
|
+ skillsXp.put(SkillType.EXCAVATION, Integer.valueOf(character[18]));
|
|
|
+ if(character.length > 19 && m.isInt(character[19]))
|
|
|
+ skillsXp.put(SkillType.ARCHERY, Integer.valueOf(character[19]));
|
|
|
+ if(character.length > 20 && m.isInt(character[20]))
|
|
|
+ skillsXp.put(SkillType.SWORDS, Integer.valueOf(character[20]));
|
|
|
+ if(character.length > 21 && m.isInt(character[21]))
|
|
|
+ skillsXp.put(SkillType.AXES, Integer.valueOf(character[21]));
|
|
|
+ if(character.length > 22 && m.isInt(character[22]))
|
|
|
+ skillsXp.put(SkillType.ACROBATICS, Integer.valueOf(character[22]));
|
|
|
+ if(character.length > 23 && m.isInt(character[23]))
|
|
|
+ myspawnworld = character[23];
|
|
|
+ if(character.length > 24 && m.isInt(character[24]))
|
|
|
+ skills.put(SkillType.TAMING, Integer.valueOf(character[24]));
|
|
|
+ if(character.length > 25 && m.isInt(character[25]))
|
|
|
+ skillsXp.put(SkillType.TAMING, Integer.valueOf(character[25]));
|
|
|
+ if(character.length > 26)
|
|
|
+ berserkDATS = Integer.valueOf(character[26]);
|
|
|
+ if(character.length > 27)
|
|
|
+ gigaDrillBreakerDATS = Integer.valueOf(character[27]);
|
|
|
+ if(character.length > 28)
|
|
|
+ treeFellerDATS = Integer.valueOf(character[28]);
|
|
|
+ if(character.length > 29)
|
|
|
+ greenTerraDATS = Integer.valueOf(character[29]);
|
|
|
+ if(character.length > 30)
|
|
|
+ serratedStrikesDATS = Integer.valueOf(character[30]);
|
|
|
+ if(character.length > 31)
|
|
|
+ skullSplitterDATS = Integer.valueOf(character[31]);
|
|
|
+ if(character.length > 32)
|
|
|
+ superBreakerDATS = Integer.valueOf(character[32]);
|
|
|
+ if(character.length > 33)
|
|
|
+ {
|
|
|
+ for(HUDType x : HUDType.values())
|
|
|
+ {
|
|
|
+ if(x.toString().equalsIgnoreCase(character[33]))
|
|
|
+ {
|
|
|
+ hud = x;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(character.length > 34)
|
|
|
+ skills.put(SkillType.FISHING, Integer.valueOf(character[34]));
|
|
|
+ if(character.length > 35)
|
|
|
+ skillsXp.put(SkillType.FISHING, Integer.valueOf(character[35]));
|
|
|
+ in.close();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ in.close();
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.log(Level.SEVERE, "Exception while reading "
|
|
|
+ + location + " (Are you sure you formatted it correctly?)", e);
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void save()
|
|
|
+ {
|
|
|
+ Long timestamp = System.currentTimeMillis()/1000; //Convert to seconds
|
|
|
+ // if we are using mysql save to database
|
|
|
+ if (LoadProperties.useMySQL)
|
|
|
+ {
|
|
|
+ mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"huds SET "
|
|
|
+ +" hudtype = '"+hud.toString()+"' WHERE user_id = "+this.userid);
|
|
|
+ mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET lastlogin = " + timestamp.intValue() + " WHERE id = " + this.userid);
|
|
|
+ mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"users SET party = '"+this.party+"' WHERE id = " +this.userid);
|
|
|
+ mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"spawn SET world = '" + this.myspawnworld + "', x = " +getX()+", y = "+getY()+", z = "+getZ()+" WHERE user_id = "+this.userid);
|
|
|
+ mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"cooldowns SET "
|
|
|
+ +" mining = "+(superBreakerDATS)
|
|
|
+ +", woodcutting = "+(treeFellerDATS)
|
|
|
+ +", unarmed = "+(berserkDATS)
|
|
|
+ +", herbalism = "+(greenTerraDATS)
|
|
|
+ +", excavation = "+(gigaDrillBreakerDATS)
|
|
|
+ +", swords = " +(serratedStrikesDATS)
|
|
|
+ +", axes = "+(skullSplitterDATS)
|
|
|
+ +" WHERE user_id = "+this.userid);
|
|
|
+ mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"skills SET "
|
|
|
+ +" taming = "+skills.get(SkillType.TAMING)
|
|
|
+ +", mining = "+skills.get(SkillType.MINING)
|
|
|
+ +", repair = "+skills.get(SkillType.REPAIR)
|
|
|
+ +", woodcutting = "+skills.get(SkillType.WOODCUTTING)
|
|
|
+ +", unarmed = "+skills.get(SkillType.UNARMED)
|
|
|
+ +", herbalism = "+skills.get(SkillType.HERBALISM)
|
|
|
+ +", excavation = "+skills.get(SkillType.EXCAVATION)
|
|
|
+ +", archery = " +skills.get(SkillType.ARCHERY)
|
|
|
+ +", swords = " +skills.get(SkillType.SWORDS)
|
|
|
+ +", axes = "+skills.get(SkillType.AXES)
|
|
|
+ +", acrobatics = "+skills.get(SkillType.ACROBATICS)
|
|
|
+ +", fishing = "+skills.get(SkillType.FISHING)
|
|
|
+ +" WHERE user_id = "+this.userid);
|
|
|
+ mcMMO.database.Write("UPDATE "+LoadProperties.MySQLtablePrefix+"experience SET "
|
|
|
+ +" taming = "+skillsXp.get(SkillType.TAMING)
|
|
|
+ +", mining = "+skillsXp.get(SkillType.MINING)
|
|
|
+ +", repair = "+skillsXp.get(SkillType.REPAIR)
|
|
|
+ +", woodcutting = "+skillsXp.get(SkillType.WOODCUTTING)
|
|
|
+ +", unarmed = "+skillsXp.get(SkillType.UNARMED)
|
|
|
+ +", herbalism = "+skillsXp.get(SkillType.HERBALISM)
|
|
|
+ +", excavation = "+skillsXp.get(SkillType.EXCAVATION)
|
|
|
+ +", archery = " +skillsXp.get(SkillType.ARCHERY)
|
|
|
+ +", swords = " +skillsXp.get(SkillType.SWORDS)
|
|
|
+ +", axes = "+skillsXp.get(SkillType.AXES)
|
|
|
+ +", acrobatics = "+skillsXp.get(SkillType.ACROBATICS)
|
|
|
+ +", fishing = "+skillsXp.get(SkillType.FISHING)
|
|
|
+ +" WHERE user_id = "+this.userid);
|
|
|
+ } else
|
|
|
+ {
|
|
|
+ // otherwise save to flatfile
|
|
|
+ try {
|
|
|
+ //Open the file
|
|
|
+ FileReader file = new FileReader(location);
|
|
|
+ BufferedReader in = new BufferedReader(file);
|
|
|
+ StringBuilder writer = new StringBuilder();
|
|
|
+ String line = "";
|
|
|
+
|
|
|
+ //While not at the end of the file
|
|
|
+ while((line = in.readLine()) != null)
|
|
|
+ {
|
|
|
+ //Read the line in and copy it to the output it's not the player
|
|
|
+ //we want to edit
|
|
|
+ if(!line.split(":")[0].equalsIgnoreCase(playername))
|
|
|
+ {
|
|
|
+ writer.append(line).append("\r\n");
|
|
|
+
|
|
|
+ //Otherwise write the new player information
|
|
|
+ } else {
|
|
|
+ writer.append(playername + ":");
|
|
|
+ writer.append(skills.get(SkillType.MINING) + ":");
|
|
|
+ writer.append(myspawn + ":");
|
|
|
+ writer.append(party+":");
|
|
|
+ writer.append(skillsXp.get(SkillType.MINING) + ":");
|
|
|
+ writer.append(skills.get(SkillType.WOODCUTTING) + ":");
|
|
|
+ writer.append(skillsXp.get(SkillType.WOODCUTTING) + ":");
|
|
|
+ writer.append(skills.get(SkillType.REPAIR) + ":");
|
|
|
+ writer.append(skills.get(SkillType.UNARMED) + ":");
|
|
|
+ writer.append(skills.get(SkillType.HERBALISM) + ":");
|
|
|
+ writer.append(skills.get(SkillType.EXCAVATION) + ":");
|
|
|
+ writer.append(skills.get(SkillType.ARCHERY) + ":");
|
|
|
+ writer.append(skills.get(SkillType.SWORDS) + ":");
|
|
|
+ writer.append(skills.get(SkillType.AXES) + ":");
|
|
|
+ writer.append(skills.get(SkillType.ACROBATICS) + ":");
|
|
|
+ writer.append(skillsXp.get(SkillType.REPAIR) + ":");
|
|
|
+ writer.append(skillsXp.get(SkillType.UNARMED) + ":");
|
|
|
+ writer.append(skillsXp.get(SkillType.HERBALISM) + ":");
|
|
|
+ writer.append(skillsXp.get(SkillType.EXCAVATION) + ":");
|
|
|
+ writer.append(skillsXp.get(SkillType.ARCHERY) + ":");
|
|
|
+ writer.append(skillsXp.get(SkillType.SWORDS) + ":");
|
|
|
+ writer.append(skillsXp.get(SkillType.AXES) + ":");
|
|
|
+ writer.append(skillsXp.get(SkillType.ACROBATICS) + ":");
|
|
|
+ writer.append(myspawnworld+":");
|
|
|
+ writer.append(skills.get(SkillType.TAMING) + ":");
|
|
|
+ writer.append(skillsXp.get(SkillType.TAMING) + ":");
|
|
|
+ //Need to store the DATS of abilities nao
|
|
|
+ //Berserk, Gigadrillbreaker, Tree Feller, Green Terra, Serrated Strikes, Skull Splitter, Super Breaker
|
|
|
+ writer.append(String.valueOf(berserkDATS)+":");
|
|
|
+ writer.append(String.valueOf(gigaDrillBreakerDATS)+":");
|
|
|
+ writer.append(String.valueOf(treeFellerDATS)+":");
|
|
|
+ writer.append(String.valueOf(greenTerraDATS)+":");
|
|
|
+ writer.append(String.valueOf(serratedStrikesDATS)+":");
|
|
|
+ writer.append(String.valueOf(skullSplitterDATS)+":");
|
|
|
+ writer.append(String.valueOf(superBreakerDATS)+":");
|
|
|
+ writer.append(hud.toString()+":");
|
|
|
+ writer.append(skills.get(SkillType.FISHING) + ":");
|
|
|
+ writer.append(skillsXp.get(SkillType.FISHING) + ":");
|
|
|
+ writer.append("\r\n");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ in.close();
|
|
|
+ //Write the new file
|
|
|
+ FileWriter out = new FileWriter(location);
|
|
|
+ out.write(writer.toString());
|
|
|
+ out.close();
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public void addPlayer()
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ //Open the file to write the player
|
|
|
+ FileWriter file = new FileWriter(location, true);
|
|
|
+ BufferedWriter out = new BufferedWriter(file);
|
|
|
+
|
|
|
+ //Add the player to the end
|
|
|
+ out.append(playername + ":");
|
|
|
+ out.append(0 + ":"); //mining
|
|
|
+ out.append(myspawn+":");
|
|
|
+ out.append(party+":");
|
|
|
+ out.append(0+":"); //XP
|
|
|
+ out.append(0+":"); //woodcutting
|
|
|
+ out.append(0+":"); //woodCuttingXP
|
|
|
+ out.append(0+":"); //repair
|
|
|
+ out.append(0+":"); //unarmed
|
|
|
+ out.append(0+":"); //herbalism
|
|
|
+ out.append(0+":"); //excavation
|
|
|
+ out.append(0+":"); //archery
|
|
|
+ out.append(0+":"); //swords
|
|
|
+ out.append(0+":"); //axes
|
|
|
+ out.append(0+":"); //acrobatics
|
|
|
+ out.append(0+":"); //repairXP
|
|
|
+ out.append(0+":"); //unarmedXP
|
|
|
+ out.append(0+":"); //herbalismXP
|
|
|
+ out.append(0+":"); //excavationXP
|
|
|
+ out.append(0+":"); //archeryXP
|
|
|
+ out.append(0+":"); //swordsXP
|
|
|
+ out.append(0+":"); //axesXP
|
|
|
+ out.append(0+":"); //acrobaticsXP
|
|
|
+ out.append(myspawnworld+":");
|
|
|
+ out.append(0+":"); //taming
|
|
|
+ out.append(0+":"); //tamingXP
|
|
|
+ out.append(0+":"); //DATS
|
|
|
+ out.append(0+":"); //DATS
|
|
|
+ out.append(0+":"); //DATS
|
|
|
+ out.append(0+":"); //DATS
|
|
|
+ out.append(0+":"); //DATS
|
|
|
+ out.append(0+":"); //DATS
|
|
|
+ out.append(0+":"); //DATS
|
|
|
+ out.append(LoadProperties.defaulthud.toString()+":");//HUD
|
|
|
+ out.append(0+":"); //Fishing
|
|
|
+ out.append(0+":"); //FishingXP
|
|
|
+
|
|
|
+ //Add more in the same format as the line above
|
|
|
+
|
|
|
+ out.newLine();
|
|
|
+ out.close();
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.log(Level.SEVERE, "Exception while writing to " + location + " (Are you sure you formatted it correctly?)", e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public void togglePartyHUD()
|
|
|
+ {
|
|
|
+ partyhud = !partyhud;
|
|
|
+ }
|
|
|
+ public boolean getPartyHUD()
|
|
|
+ {
|
|
|
+ return partyhud;
|
|
|
+ }
|
|
|
+ public void toggleSpoutEnabled()
|
|
|
+ {
|
|
|
+ spoutcraft = !spoutcraft;
|
|
|
+ }
|
|
|
+
|
|
|
+ public boolean isFilling()
|
|
|
+ {
|
|
|
+ return filling;
|
|
|
+ }
|
|
|
+ public void toggleFilling()
|
|
|
+ {
|
|
|
+ filling = !filling;
|
|
|
+ }
|
|
|
+ public HUDType getHUDType()
|
|
|
+ {
|
|
|
+ return hud;
|
|
|
+ }
|
|
|
+ public void setHUDType(HUDType type)
|
|
|
+ {
|
|
|
+ hud = type;
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ public boolean getXpBarLocked()
|
|
|
+ {
|
|
|
+ return xpbarlocked;
|
|
|
+ }
|
|
|
+ public void toggleXpBarLocked()
|
|
|
+ {
|
|
|
+ xpbarlocked = !xpbarlocked;
|
|
|
+ }
|
|
|
+ public int getXpBarInc()
|
|
|
+ {
|
|
|
+ return xpbarinc;
|
|
|
+ }
|
|
|
+ public void setXpBarInc(int newvalue)
|
|
|
+ {
|
|
|
+ xpbarinc = newvalue;
|
|
|
+ }
|
|
|
+ public void setSkillLock(SkillType newvalue)
|
|
|
+ {
|
|
|
+ skillLock = newvalue;
|
|
|
+ }
|
|
|
+ public SkillType getSkillLock()
|
|
|
+ {
|
|
|
+ return skillLock;
|
|
|
+ }
|
|
|
+ public void setLastGained(SkillType newvalue)
|
|
|
+ {
|
|
|
+ lastgained = newvalue;
|
|
|
+ }
|
|
|
+ public SkillType getLastGained()
|
|
|
+ {
|
|
|
+ return lastgained;
|
|
|
+ }
|
|
|
+
|
|
|
+ public boolean getAdminChatMode() {return adminChatMode;}
|
|
|
+ public boolean getPartyChatMode() {return partyChatMode;}
|
|
|
+
|
|
|
+ public boolean getGodMode() {return godMode;}
|
|
|
+
|
|
|
+ public void togglePlacedAnvil()
|
|
|
+ {
|
|
|
+ placedAnvil = !placedAnvil;
|
|
|
+ }
|
|
|
+ public Boolean getPlacedAnvil()
|
|
|
+ {
|
|
|
+ return placedAnvil;
|
|
|
+ }
|
|
|
+ public void toggleAdminChat()
|
|
|
+ {
|
|
|
+ adminChatMode = !adminChatMode;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void toggleGodMode()
|
|
|
+ {
|
|
|
+ godMode = !godMode;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void togglePartyChat()
|
|
|
+ {
|
|
|
+ partyChatMode = !partyChatMode;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setMana(int newvalue)
|
|
|
+ {
|
|
|
+ mana = newvalue;
|
|
|
+ }
|
|
|
+
|
|
|
+ public int getCurrentMana()
|
|
|
+ {
|
|
|
+ return mana;
|
|
|
+ }
|
|
|
+ public void setDyeChanged(Boolean bool)
|
|
|
+ {
|
|
|
+ dyeChanged = bool;
|
|
|
+ }
|
|
|
+ public boolean getDyeChanged()
|
|
|
+ {
|
|
|
+ return dyeChanged;
|
|
|
+ }
|
|
|
+ public void setBlueDyeCycle(int newvalue)
|
|
|
+ {
|
|
|
+ blueDyeCycle = newvalue;
|
|
|
+ }
|
|
|
+ public int getBlueDyeCycle()
|
|
|
+ {
|
|
|
+ return blueDyeCycle;
|
|
|
+ }
|
|
|
+ public void setBlueDyeCycleSel(int newvalue)
|
|
|
+ {
|
|
|
+ blueDyeCycleSel = newvalue;
|
|
|
+ }
|
|
|
+ public int getBlueDyeCycleSel()
|
|
|
+ {
|
|
|
+ return blueDyeCycleSel;
|
|
|
+ }
|
|
|
+ public void setGreenDyeCycle(int newvalue)
|
|
|
+ {
|
|
|
+ greenDyeCycle = newvalue;
|
|
|
+ }
|
|
|
+ public int getGreenDyeCycle()
|
|
|
+ {
|
|
|
+ return greenDyeCycle;
|
|
|
+ }
|
|
|
+ public void setGreenDyeCycleSel(int newvalue)
|
|
|
+ {
|
|
|
+ greenDyeCycleSel = newvalue;
|
|
|
+ }
|
|
|
+ public int getGreenDyeCycleSel()
|
|
|
+ {
|
|
|
+ return greenDyeCycleSel;
|
|
|
+ }
|
|
|
+
|
|
|
+ public boolean isPlayer(String player)
|
|
|
+ {
|
|
|
+ return player.equals(playername);
|
|
|
+ }
|
|
|
+ public boolean getPartyChatOnlyToggle(){return partyChatOnly;}
|
|
|
+ public void togglePartyChatOnly(){partyChatOnly = !partyChatOnly;}
|
|
|
+ public boolean getAbilityUse(){
|
|
|
+ return abilityuse;
|
|
|
+ }
|
|
|
+ public void toggleAbilityUse()
|
|
|
+ {
|
|
|
+ abilityuse = !abilityuse;
|
|
|
+ }
|
|
|
+ public long getMySpawnATS(){
|
|
|
+ return mySpawnATS;
|
|
|
+ }
|
|
|
+ public void setMySpawnATS(long newvalue)
|
|
|
+ {
|
|
|
+ mySpawnATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ public void decreaseBleedTicks()
|
|
|
+ {
|
|
|
+ bleedticks--;
|
|
|
+ }
|
|
|
+ public Integer getBleedTicks(){
|
|
|
+ return bleedticks;
|
|
|
+ }
|
|
|
+ public void setBleedTicks(Integer newvalue){
|
|
|
+ bleedticks = newvalue;
|
|
|
+ }
|
|
|
+ public void addBleedTicks(Integer newvalue){
|
|
|
+ bleedticks+=newvalue;
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * EXPLOIT PREVENTION
|
|
|
+ */
|
|
|
+ public long getRespawnATS() {return respawnATS;}
|
|
|
+ public void setRespawnATS(long newvalue) {respawnATS = (int) (newvalue/1000);}
|
|
|
+
|
|
|
+ /*
|
|
|
+ * HOE PREPARATION
|
|
|
+ */
|
|
|
+ public boolean getHoePreparationMode(){
|
|
|
+ return hoePreparationMode;
|
|
|
+ }
|
|
|
+ public void setHoePreparationMode(Boolean bool){
|
|
|
+ hoePreparationMode = bool;
|
|
|
+ }
|
|
|
+ public long getHoePreparationATS(){
|
|
|
+ return hoePreparationATS;
|
|
|
+ }
|
|
|
+ public void setHoePreparationATS(long newvalue){
|
|
|
+ hoePreparationATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * SWORDS PREPARATION
|
|
|
+ */
|
|
|
+ public boolean getSwordsPreparationMode(){
|
|
|
+ return swordsPreparationMode;
|
|
|
+ }
|
|
|
+ public void setSwordsPreparationMode(Boolean bool){
|
|
|
+ swordsPreparationMode = bool;
|
|
|
+ }
|
|
|
+ public long getSwordsPreparationATS(){
|
|
|
+ return swordsPreparationATS;
|
|
|
+ }
|
|
|
+ public void setSwordsPreparationATS(long newvalue){
|
|
|
+ swordsPreparationATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * SHOVEL PREPARATION
|
|
|
+ */
|
|
|
+ public boolean getShovelPreparationMode(){
|
|
|
+ return shovelPreparationMode;
|
|
|
+ }
|
|
|
+ public void setShovelPreparationMode(Boolean bool){
|
|
|
+ shovelPreparationMode = bool;
|
|
|
+ }
|
|
|
+ public long getShovelPreparationATS(){
|
|
|
+ return shovelPreparationATS;
|
|
|
+ }
|
|
|
+ public void setShovelPreparationATS(long newvalue){
|
|
|
+ shovelPreparationATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * FISTS PREPARATION
|
|
|
+ */
|
|
|
+ public boolean getFistsPreparationMode(){
|
|
|
+ return fistsPreparationMode;
|
|
|
+ }
|
|
|
+ public void setFistsPreparationMode(Boolean bool){
|
|
|
+ fistsPreparationMode = bool;
|
|
|
+ }
|
|
|
+ public long getFistsPreparationATS(){
|
|
|
+ return fistsPreparationATS;
|
|
|
+ }
|
|
|
+ public void setFistsPreparationATS(long newvalue){
|
|
|
+ fistsPreparationATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * AXE PREPARATION
|
|
|
+ */
|
|
|
+ public boolean getAxePreparationMode(){
|
|
|
+ return axePreparationMode;
|
|
|
+ }
|
|
|
+ public void setAxePreparationMode(Boolean bool){
|
|
|
+ axePreparationMode = bool;
|
|
|
+ }
|
|
|
+ public long getAxePreparationATS(){
|
|
|
+ return axePreparationATS;
|
|
|
+ }
|
|
|
+ public void setAxePreparationATS(long newvalue){
|
|
|
+ axePreparationATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * PICKAXE PREPARATION
|
|
|
+ */
|
|
|
+ public boolean getPickaxePreparationMode(){
|
|
|
+ return pickaxePreparationMode;
|
|
|
+ }
|
|
|
+ public void setPickaxePreparationMode(Boolean bool){
|
|
|
+ pickaxePreparationMode = bool;
|
|
|
+ }
|
|
|
+ public long getPickaxePreparationATS(){
|
|
|
+ return pickaxePreparationATS;
|
|
|
+ }
|
|
|
+ public void setPickaxePreparationATS(long newvalue){
|
|
|
+ pickaxePreparationATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * GREEN TERRA MODE
|
|
|
+ */
|
|
|
+ public boolean getGreenTerraInformed() {return greenTerraInformed;}
|
|
|
+ public void setGreenTerraInformed(Boolean bool){
|
|
|
+ greenTerraInformed = bool;
|
|
|
+ }
|
|
|
+ public boolean getGreenTerraMode(){
|
|
|
+ return greenTerraMode;
|
|
|
+ }
|
|
|
+ public void setGreenTerraMode(Boolean bool){
|
|
|
+ greenTerraMode = bool;
|
|
|
+ }
|
|
|
+ public long getGreenTerraActivatedTimeStamp() {return greenTerraATS;}
|
|
|
+ public void setGreenTerraActivatedTimeStamp(Long newvalue){
|
|
|
+ greenTerraATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ public long getGreenTerraDeactivatedTimeStamp() {return greenTerraDATS;}
|
|
|
+ public void setGreenTerraDeactivatedTimeStamp(Long newvalue){
|
|
|
+ greenTerraDATS = (int) (newvalue/1000);
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * BERSERK MODE
|
|
|
+ */
|
|
|
+ public boolean getBerserkInformed() {return berserkInformed;}
|
|
|
+ public void setBerserkInformed(Boolean bool){
|
|
|
+ berserkInformed = bool;
|
|
|
+ }
|
|
|
+ public boolean getBerserkMode(){
|
|
|
+ return berserkMode;
|
|
|
+ }
|
|
|
+ public void setBerserkMode(Boolean bool){
|
|
|
+ berserkMode = bool;
|
|
|
+ }
|
|
|
+ public long getBerserkActivatedTimeStamp() {return berserkATS;}
|
|
|
+ public void setBerserkActivatedTimeStamp(Long newvalue){
|
|
|
+ berserkATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ public long getBerserkDeactivatedTimeStamp() {return berserkDATS;}
|
|
|
+ public void setBerserkDeactivatedTimeStamp(Long newvalue){
|
|
|
+ berserkDATS = (int) (newvalue/1000);
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * SKULL SPLITTER
|
|
|
+ */
|
|
|
+ public boolean getSkullSplitterInformed() {return skullSplitterInformed;}
|
|
|
+ public void setSkullSplitterInformed(Boolean bool){
|
|
|
+ skullSplitterInformed = bool;
|
|
|
+ }
|
|
|
+ public boolean getSkullSplitterMode(){
|
|
|
+ return skullSplitterMode;
|
|
|
+ }
|
|
|
+ public void setSkullSplitterMode(Boolean bool){
|
|
|
+ skullSplitterMode = bool;
|
|
|
+ }
|
|
|
+ public long getSkullSplitterActivatedTimeStamp() {return skullSplitterATS;}
|
|
|
+ public void setSkullSplitterActivatedTimeStamp(Long newvalue){
|
|
|
+ skullSplitterATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ public long getSkullSplitterDeactivatedTimeStamp() {return skullSplitterDATS;}
|
|
|
+ public void setSkullSplitterDeactivatedTimeStamp(Long newvalue){
|
|
|
+ skullSplitterDATS = (int) (newvalue/1000);
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * SERRATED STRIKES
|
|
|
+ */
|
|
|
+ public boolean getSerratedStrikesInformed() {return serratedStrikesInformed;}
|
|
|
+ public void setSerratedStrikesInformed(Boolean bool){
|
|
|
+ serratedStrikesInformed = bool;
|
|
|
+ }
|
|
|
+ public boolean getSerratedStrikesMode(){
|
|
|
+ return serratedStrikesMode;
|
|
|
+ }
|
|
|
+ public void setSerratedStrikesMode(Boolean bool){
|
|
|
+ serratedStrikesMode = bool;
|
|
|
+ }
|
|
|
+ public long getSerratedStrikesActivatedTimeStamp() {return serratedStrikesATS;}
|
|
|
+ public void setSerratedStrikesActivatedTimeStamp(Long newvalue){
|
|
|
+ serratedStrikesATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ public long getSerratedStrikesDeactivatedTimeStamp() {return serratedStrikesDATS;}
|
|
|
+ public void setSerratedStrikesDeactivatedTimeStamp(Long newvalue){
|
|
|
+ serratedStrikesDATS = (int) (newvalue/1000);
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * GIGA DRILL BREAKER
|
|
|
+ */
|
|
|
+ public boolean getGigaDrillBreakerInformed() {return gigaDrillBreakerInformed;}
|
|
|
+ public void setGigaDrillBreakerInformed(Boolean bool){
|
|
|
+ gigaDrillBreakerInformed = bool;
|
|
|
+ }
|
|
|
+ public boolean getGigaDrillBreakerMode(){
|
|
|
+ return gigaDrillBreakerMode;
|
|
|
+ }
|
|
|
+ public void setGigaDrillBreakerMode(Boolean bool){
|
|
|
+ gigaDrillBreakerMode = bool;
|
|
|
+ }
|
|
|
+ public long getGigaDrillBreakerActivatedTimeStamp() {return gigaDrillBreakerATS;}
|
|
|
+ public void setGigaDrillBreakerActivatedTimeStamp(Long newvalue){
|
|
|
+ gigaDrillBreakerATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ public long getGigaDrillBreakerDeactivatedTimeStamp() {return gigaDrillBreakerDATS;}
|
|
|
+ public void setGigaDrillBreakerDeactivatedTimeStamp(Long newvalue){
|
|
|
+ gigaDrillBreakerDATS = (int) (newvalue/1000);
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * TREE FELLER STUFF
|
|
|
+ */
|
|
|
+ public boolean getTreeFellerInformed() {return treeFellerInformed;}
|
|
|
+ public void setTreeFellerInformed(Boolean bool){
|
|
|
+ treeFellerInformed = bool;
|
|
|
+ }
|
|
|
+ public boolean getTreeFellerMode(){
|
|
|
+ return treeFellerMode;
|
|
|
+ }
|
|
|
+ public void setTreeFellerMode(Boolean bool){
|
|
|
+ treeFellerMode = bool;
|
|
|
+ }
|
|
|
+ public long getTreeFellerActivatedTimeStamp() {return treeFellerATS;}
|
|
|
+ public void setTreeFellerActivatedTimeStamp(Long newvalue){
|
|
|
+ treeFellerATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ public long getTreeFellerDeactivatedTimeStamp() {return treeFellerDATS;}
|
|
|
+ public void setTreeFellerDeactivatedTimeStamp(Long newvalue){
|
|
|
+ treeFellerDATS = (int) (newvalue/1000);
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * MINING
|
|
|
+ */
|
|
|
+ public boolean getSuperBreakerInformed() {return superBreakerInformed;}
|
|
|
+ public void setSuperBreakerInformed(Boolean bool){
|
|
|
+ superBreakerInformed = bool;
|
|
|
+ }
|
|
|
+ public boolean getSuperBreakerMode(){
|
|
|
+ return superBreakerMode;
|
|
|
+ }
|
|
|
+ public void setSuperBreakerMode(Boolean bool){
|
|
|
+ superBreakerMode = bool;
|
|
|
+ }
|
|
|
+ public long getSuperBreakerActivatedTimeStamp() {return superBreakerATS;}
|
|
|
+ public void setSuperBreakerActivatedTimeStamp(Long newvalue){
|
|
|
+ superBreakerATS = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ public long getSuperBreakerDeactivatedTimeStamp() {return superBreakerDATS;}
|
|
|
+ public void setSuperBreakerDeactivatedTimeStamp(Long newvalue){
|
|
|
+ superBreakerDATS = (int) (newvalue/1000);
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ public long getRecentlyHurt(){
|
|
|
+ return recentlyHurt;
|
|
|
+ }
|
|
|
+ public void setRecentlyHurt(long newvalue){
|
|
|
+ recentlyHurt = (int) (newvalue/1000);
|
|
|
+ }
|
|
|
+ public void skillUp(SkillType skillType, int newvalue)
|
|
|
+ {
|
|
|
+ skills.put(skillType, skills.get(skillType)+newvalue);
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ public Integer getSkillLevel(SkillType skillType)
|
|
|
+ {
|
|
|
+ return skills.get(skillType);
|
|
|
+ }
|
|
|
+ public Integer getSkillXpLevel(SkillType skillType)
|
|
|
+ {
|
|
|
+ return skillsXp.get(skillType);
|
|
|
+ }
|
|
|
+ public void resetSkillXp(SkillType skillType)
|
|
|
+ {
|
|
|
+ skills.put(skillType, 0);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Adds XP to the player, this ignores skill modifiers
|
|
|
+ * @param skillType The skill to add XP to
|
|
|
+ * @param newvalue The amount of XP to add
|
|
|
+ */
|
|
|
+ public void addXPOverride(SkillType skillType, int newvalue)
|
|
|
+ {
|
|
|
+ if(skillType == SkillType.ALL)
|
|
|
+ {
|
|
|
+ for(SkillType x : SkillType.values())
|
|
|
+ {
|
|
|
+ if(x == SkillType.ALL)
|
|
|
+ continue;
|
|
|
+ skillsXp.put(x, skillsXp.get(x)+newvalue);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ int xp = newvalue;
|
|
|
+
|
|
|
+ xp=xp*LoadProperties.xpGainMultiplier;
|
|
|
+ skillsXp.put(skillType, skillsXp.get(skillType)+xp);
|
|
|
+ lastgained = skillType;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * Adds XP to the player, this is affected by skill modifiers
|
|
|
+ * @param skillType The skill to add XP to
|
|
|
+ * @param newvalue The amount of XP to add
|
|
|
+ */
|
|
|
+ public void addXP(SkillType skillType, int newvalue, Player thisplayer)
|
|
|
+ {
|
|
|
+ if(System.currentTimeMillis() < ((xpGainATS*1000)+250) || thisplayer.getGameMode() == GameMode.CREATIVE)
|
|
|
+ return;
|
|
|
+
|
|
|
+ //Setup a timestamp of when xp was given
|
|
|
+ xpGainATS = (int) (System.currentTimeMillis()/1000);
|
|
|
+
|
|
|
+ double bonusModifier = 0;
|
|
|
+ String leaderName = "";
|
|
|
+
|
|
|
+ if(inParty())
|
|
|
+ {
|
|
|
+ for(Player x : Party.getInstance().getPartyMembers(thisplayer))
|
|
|
+ {
|
|
|
+ if(x.isOnline() && !x.getName().equals(thisplayer.getName()) && Party.getInstance().isPartyLeader(x.getName(), this.getParty()))
|
|
|
+ {
|
|
|
+ leaderName = x.getName();
|
|
|
+ if(m.getDistance(thisplayer.getLocation(), x.getLocation()) < 25)
|
|
|
+ {
|
|
|
+ PlayerProfile PartyLeader = Users.getProfile(x);
|
|
|
+ if(PartyLeader.getSkillLevel(skillType) >= this.getSkillLevel(skillType))
|
|
|
+ {
|
|
|
+ int leaderLevel = PartyLeader.getSkillLevel(skillType);
|
|
|
+ int difference = leaderLevel - this.getSkillLevel(skillType);
|
|
|
+ bonusModifier = (difference*0.75D)/100D;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(skillType == SkillType.ALL)
|
|
|
+ {
|
|
|
+ for(SkillType x : SkillType.values())
|
|
|
+ {
|
|
|
+ if(x == SkillType.ALL)
|
|
|
+ continue;
|
|
|
+ skillsXp.put(x, skillsXp.get(x)+newvalue);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ int xp = newvalue;
|
|
|
+
|
|
|
+ switch(skillType)
|
|
|
+ {
|
|
|
+ case TAMING:
|
|
|
+ xp=(int) (xp/LoadProperties.tamingxpmodifier);
|
|
|
+ break;
|
|
|
+ case MINING:
|
|
|
+ xp=(int) (xp/LoadProperties.miningxpmodifier);
|
|
|
+ break;
|
|
|
+ case WOODCUTTING:
|
|
|
+ xp=(int) (xp/LoadProperties.woodcuttingxpmodifier);
|
|
|
+ break;
|
|
|
+ case REPAIR:
|
|
|
+ xp=(int) (xp/LoadProperties.repairxpmodifier);
|
|
|
+ break;
|
|
|
+ case HERBALISM:
|
|
|
+ xp=(int) (xp/LoadProperties.herbalismxpmodifier);
|
|
|
+ break;
|
|
|
+ case ACROBATICS:
|
|
|
+ xp=(int) (xp/LoadProperties.acrobaticsxpmodifier);
|
|
|
+ break;
|
|
|
+ case SWORDS:
|
|
|
+ xp=(int) (xp/LoadProperties.swordsxpmodifier);
|
|
|
+ break;
|
|
|
+ case ARCHERY:
|
|
|
+ xp=(int) (xp/LoadProperties.archeryxpmodifier);
|
|
|
+ break;
|
|
|
+ case UNARMED:
|
|
|
+ xp=(int) (xp/LoadProperties.unarmedxpmodifier);
|
|
|
+ break;
|
|
|
+ case EXCAVATION:
|
|
|
+ xp=(int) (xp/LoadProperties.excavationxpmodifier);
|
|
|
+ break;
|
|
|
+ case AXES:
|
|
|
+ xp=(int) (xp/LoadProperties.axesxpmodifier);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ xp=xp*LoadProperties.xpGainMultiplier;
|
|
|
+
|
|
|
+ if(bonusModifier > 0)
|
|
|
+ {
|
|
|
+ if(bonusModifier >= 2)
|
|
|
+ bonusModifier = 2;
|
|
|
+
|
|
|
+ double trueBonus = bonusModifier * xp;
|
|
|
+ double oldxp = xp;
|
|
|
+ xp+=trueBonus;
|
|
|
+ double percent = (trueBonus/oldxp)*100;
|
|
|
+ thisplayer.sendMessage(ChatColor.GREEN+"XP: "+oldxp+" Bonus XP: "+trueBonus+" Total: "+xp+ChatColor.GOLD+" [Master: "+leaderName+" " +" +"+(int)percent+"%]");
|
|
|
+ }
|
|
|
+ skillsXp.put(skillType, skillsXp.get(skillType)+xp);
|
|
|
+ lastgained = skillType;
|
|
|
+ }
|
|
|
+ //save();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void removeXP(SkillType skillType, int newvalue)
|
|
|
+ {
|
|
|
+ if(skillType == SkillType.ALL)
|
|
|
+ {
|
|
|
+ skillsXp.put(SkillType.TAMING, skillsXp.get(SkillType.TAMING)-newvalue);
|
|
|
+ skillsXp.put(SkillType.MINING, skillsXp.get(SkillType.MINING)-newvalue);
|
|
|
+ skillsXp.put(SkillType.WOODCUTTING, skillsXp.get(SkillType.WOODCUTTING)-newvalue);
|
|
|
+ skillsXp.put(SkillType.REPAIR, skillsXp.get(SkillType.REPAIR)-newvalue);
|
|
|
+ skillsXp.put(SkillType.HERBALISM, skillsXp.get(SkillType.HERBALISM)-newvalue);
|
|
|
+ skillsXp.put(SkillType.ACROBATICS, skillsXp.get(SkillType.ACROBATICS)-newvalue);
|
|
|
+ skillsXp.put(SkillType.SWORDS, skillsXp.get(SkillType.SWORDS)-newvalue);
|
|
|
+ skillsXp.put(SkillType.ARCHERY, skillsXp.get(SkillType.ARCHERY)-newvalue);
|
|
|
+ skillsXp.put(SkillType.UNARMED, skillsXp.get(SkillType.UNARMED)-newvalue);
|
|
|
+ skillsXp.put(SkillType.EXCAVATION, skillsXp.get(SkillType.EXCAVATION)-newvalue);
|
|
|
+ skillsXp.put(SkillType.AXES, skillsXp.get(SkillType.AXES)-newvalue);
|
|
|
+ skillsXp.put(SkillType.FISHING, skillsXp.get(SkillType.FISHING)-newvalue);
|
|
|
+ } else {
|
|
|
+ skillsXp.put(skillType, skillsXp.get(skillType)-newvalue);
|
|
|
+ }
|
|
|
+ //save();
|
|
|
+ }
|
|
|
+ public void acceptInvite()
|
|
|
+ {
|
|
|
+ party = invite;
|
|
|
+ invite = "";
|
|
|
+ }
|
|
|
+ public void modifyInvite(String invitename)
|
|
|
+ {
|
|
|
+ invite = invitename;
|
|
|
+ }
|
|
|
+ public String getInvite() { return invite; }
|
|
|
+
|
|
|
+ public void modifyskill(SkillType skillType, int newvalue)
|
|
|
+ {
|
|
|
+ if(skillType == SkillType.ALL)
|
|
|
+ {
|
|
|
+ skills.put(SkillType.TAMING, newvalue);
|
|
|
+ skills.put(SkillType.MINING, newvalue);
|
|
|
+ skills.put(SkillType.WOODCUTTING, newvalue);
|
|
|
+ skills.put(SkillType.REPAIR, newvalue);
|
|
|
+ skills.put(SkillType.HERBALISM, newvalue);
|
|
|
+ skills.put(SkillType.ACROBATICS, newvalue);
|
|
|
+ skills.put(SkillType.SWORDS, newvalue);
|
|
|
+ skills.put(SkillType.ARCHERY, newvalue);
|
|
|
+ skills.put(SkillType.UNARMED, newvalue);
|
|
|
+ skills.put(SkillType.EXCAVATION, newvalue);
|
|
|
+ skills.put(SkillType.AXES, newvalue);
|
|
|
+ skills.put(SkillType.FISHING, newvalue);
|
|
|
+
|
|
|
+ skillsXp.put(SkillType.TAMING, 0);
|
|
|
+ skillsXp.put(SkillType.MINING, 0);
|
|
|
+ skillsXp.put(SkillType.WOODCUTTING, 0);
|
|
|
+ skillsXp.put(SkillType.REPAIR, 0);
|
|
|
+ skillsXp.put(SkillType.HERBALISM, 0);
|
|
|
+ skillsXp.put(SkillType.ACROBATICS, 0);
|
|
|
+ skillsXp.put(SkillType.SWORDS, 0);
|
|
|
+ skillsXp.put(SkillType.ARCHERY, 0);
|
|
|
+ skillsXp.put(SkillType.UNARMED, 0);
|
|
|
+ skillsXp.put(SkillType.EXCAVATION, 0);
|
|
|
+ skillsXp.put(SkillType.AXES, 0);
|
|
|
+ skillsXp.put(SkillType.FISHING, 0);
|
|
|
+ } else {
|
|
|
+ skills.put(skillType, newvalue);
|
|
|
+ skillsXp.put(skillType, newvalue);
|
|
|
+ }
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ public Integer getXpToLevel(SkillType skillType)
|
|
|
+ {
|
|
|
+ return (int) ((1020+(skills.get(skillType) * 20)));
|
|
|
+ }
|
|
|
+
|
|
|
+ //Store the player's party
|
|
|
+ public void setParty(String newParty)
|
|
|
+ {
|
|
|
+ party = newParty;
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ //Retrieve the player's party
|
|
|
+ public String getParty() {return party;}
|
|
|
+ //Remove party
|
|
|
+ public void removeParty() {
|
|
|
+ party = null;
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ //Retrieve whether or not the player is in a party
|
|
|
+ public boolean inParty()
|
|
|
+ {
|
|
|
+ if(party != null && !party.equals("") && !party.equals("null")){
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //Retrieve whether or not the player has an invite
|
|
|
+ public boolean hasPartyInvite() {
|
|
|
+ if(invite != null && !invite.equals("") && !invite.equals("null")){
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public String getMySpawnWorld()
|
|
|
+ {
|
|
|
+ if(myspawnworld != null && !myspawnworld.equals("") && !myspawnworld.equals("null")){
|
|
|
+ return myspawnworld;
|
|
|
+ } else {
|
|
|
+ return Bukkit.getServer().getWorlds().get(0).toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //Save a users spawn location
|
|
|
+ public void setMySpawn(double x, double y, double z, String myspawnworldlocation){
|
|
|
+ myspawn = x+","+y+","+z;
|
|
|
+ myspawnworld = myspawnworldlocation;
|
|
|
+ save();
|
|
|
+ }
|
|
|
+ public String getX(){
|
|
|
+ if(myspawn != null)
|
|
|
+ {
|
|
|
+ String[] split = myspawn.split(",");
|
|
|
+ return split[0];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ public String getY(){
|
|
|
+ if(myspawn != null)
|
|
|
+ {
|
|
|
+ String[] split = myspawn.split(",");
|
|
|
+ return split[1];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ public String getZ(){
|
|
|
+ if(myspawn != null)
|
|
|
+ {
|
|
|
+ String[] split = myspawn.split(",");
|
|
|
+ return split[2];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ public boolean isDead(){
|
|
|
+ return dead;
|
|
|
+ }
|
|
|
+ public Location getMySpawn(Player player)
|
|
|
+ {
|
|
|
+ Location loc = null;
|
|
|
+ if(myspawn != null)
|
|
|
+ {
|
|
|
+ if(m.isDouble(getX()) && m.isDouble(getY()) && m.isDouble(getZ()))
|
|
|
+ loc = new Location(player.getWorld(),(Double.parseDouble(getX())), Double.parseDouble(getY()), Double.parseDouble(getZ()));
|
|
|
+ else
|
|
|
+ return null;
|
|
|
+ } else
|
|
|
+ return null;
|
|
|
+
|
|
|
+ loc.setYaw(0);
|
|
|
+ loc.setPitch(0);
|
|
|
+ if(loc.getX() != 0 && loc.getY() != 0 && loc.getZ() != 0 && loc.getWorld() != null)
|
|
|
+ {
|
|
|
+ if(Bukkit.getServer().getWorld(this.getMySpawnWorld()) != null)
|
|
|
+ loc.setWorld(Bukkit.getServer().getWorld(this.getMySpawnWorld()));
|
|
|
+ else
|
|
|
+ loc.setWorld(Bukkit.getServer().getWorlds().get(0));
|
|
|
+ return loc;
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|