diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClassManager.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClassManager.java index 4625a6cef..9f8d5d273 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClassManager.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClassManager.java @@ -9,6 +9,9 @@ import mineplex.minecraft.game.classcombat.Class.IPvpClass.ClassType; import mineplex.minecraft.game.classcombat.Class.repository.ClassRepository; import mineplex.minecraft.game.classcombat.Class.repository.token.ClassToken; import mineplex.minecraft.game.classcombat.Class.repository.token.ClientClassTokenWrapper; +import mineplex.minecraft.game.classcombat.Class.repository.token.CustomBuildToken; +import mineplex.minecraft.game.classcombat.Class.repository.token.SlotToken; +import mineplex.minecraft.game.classcombat.Skill.ISkill; import mineplex.minecraft.game.classcombat.Skill.SkillFactory; import mineplex.core.MiniClientPlugin; import mineplex.core.account.CoreClientManager; @@ -32,8 +35,6 @@ public class ClassManager extends MiniClientPlugin implements IClas private HashMap _classes; private HashMap _classSalesPackageIdMap; - private ClassRestore _classRestore; - private Object _clientLock = new Object(); public ClassManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, SkillFactory skillFactory, String webAddress) @@ -77,31 +78,13 @@ public class ClassManager extends MiniClientPlugin implements IClas private void PopulateClasses() { _classes.clear(); - AddClass(new PvpClass(this, -1, ClassType.Knight, - new String[] { "Trained in the arts of melee combat.", "Able to stand his ground against foes."}, - Material.IRON_HELMET, Material.IRON_CHESTPLATE, Material.IRON_LEGGINGS, Material.IRON_BOOTS, - null)); - - AddClass(new PvpClass(this, -1, ClassType.Ranger, - new String[] { "Mastery with a Bow and Arrow.", "Adept in Wilderness Survival" }, - Material.CHAINMAIL_HELMET, Material.CHAINMAIL_CHESTPLATE, Material.CHAINMAIL_LEGGINGS, Material.CHAINMAIL_BOOTS, - null)); - - AddClass(new PvpClass(this, 3, ClassType.Brute, - new String[] { "Uses pure strength to dominate.", "Great at crowd control."}, - Material.DIAMOND_HELMET, Material.DIAMOND_CHESTPLATE, Material.DIAMOND_LEGGINGS, Material.DIAMOND_BOOTS, - null)); - - AddClass(new PvpClass(this, 4, ClassType.Mage, - new String[] { "Trained in the ancient arts.", "Able to adapt to many roles in combat."}, - Material.GOLD_HELMET, Material.GOLD_CHESTPLATE, Material.GOLD_LEGGINGS, Material.GOLD_BOOTS, - null)); - - AddClass(new PvpClass(this, 5, ClassType.Assassin, - new String[] { "Extremely nimble and smart.", "Excels at ambushing and takedowns.", "", "Permanent Speed II" }, - Material.LEATHER_HELMET, Material.LEATHER_CHESTPLATE, Material.LEATHER_LEGGINGS, Material.LEATHER_BOOTS, - null)); + AddKnight(); + AddRanger(); + AddBrute(); + AddMage(); + AddAssassin(); + /* AddClass(new PvpClass(this, 6, ClassType.Shapeshifter, new String[] { "Able to transform into various creatures." }, @@ -131,6 +114,113 @@ public class ClassManager extends MiniClientPlugin implements IClas } } + private void AddAssassin() + { + CustomBuildToken customBuild = new CustomBuildToken(); + customBuild.Name = "Default Build"; + + customBuild.SwordSkillId = _skillFactory.GetSkill("Evade").GetSalesPackageId(); + customBuild.AxeSkillId = _skillFactory.GetSkill("Blink").GetSalesPackageId(); + customBuild.BowSkillId = _skillFactory.GetSkill("Marked for Death").GetSalesPackageId(); + customBuild.ClassPassiveASkillId = _skillFactory.GetSkill("Stealth").GetSalesPackageId(); + customBuild.ClassPassiveBSkillId = _skillFactory.GetSkill("Repeated Strikes").GetSalesPackageId(); + customBuild.GlobalPassiveSkillId = _skillFactory.GetSkill("Break Fall").GetSalesPackageId(); + + AddClass(new PvpClass( + this, + 5, + ClassType.Assassin, + customBuild, + new String[] { "Extremely nimble and smart.", "Excels at ambushing and takedowns.", "", "Permanent Speed II" }, + Material.LEATHER_HELMET, Material.LEATHER_CHESTPLATE, Material.LEATHER_LEGGINGS, Material.LEATHER_BOOTS, + null)); + } + + private void AddMage() + { + CustomBuildToken customBuild = new CustomBuildToken(); + customBuild.Name = "Default Build"; + + customBuild.SwordSkillId = _skillFactory.GetSkill("Blizzard").GetSalesPackageId(); + customBuild.AxeSkillId = _skillFactory.GetSkill("Freezing Blast").GetSalesPackageId(); + customBuild.BowSkillId = -1; + customBuild.ClassPassiveASkillId = _skillFactory.GetSkill("Arctic Armor").GetSalesPackageId(); + customBuild.ClassPassiveBSkillId = _skillFactory.GetSkill("Glacial Blade").GetSalesPackageId(); + customBuild.GlobalPassiveSkillId = _skillFactory.GetSkill("Fitness").GetSalesPackageId(); + + AddClass(new PvpClass(this, + 4, + ClassType.Mage, + customBuild, + new String[] { "Trained in the ancient arts.", "Able to adapt to many roles in combat."}, + Material.GOLD_HELMET, Material.GOLD_CHESTPLATE, Material.GOLD_LEGGINGS, Material.GOLD_BOOTS, + null)); + } + + private void AddBrute() + { + CustomBuildToken customBuild = new CustomBuildToken(); + customBuild.Name = "Default Build"; + + customBuild.SwordSkillId = _skillFactory.GetSkill("Dwarf Toss").GetSalesPackageId(); + customBuild.AxeSkillId = _skillFactory.GetSkill("Seismic Slam").GetSalesPackageId(); + customBuild.BowSkillId = -1; + customBuild.ClassPassiveASkillId = _skillFactory.GetSkill("Stampede").GetSalesPackageId(); + customBuild.ClassPassiveBSkillId = _skillFactory.GetSkill("Crippling Blow").GetSalesPackageId(); + customBuild.GlobalPassiveSkillId = _skillFactory.GetSkill("Recharge").GetSalesPackageId(); + + AddClass(new PvpClass(this, + 3, + ClassType.Brute, + customBuild, + new String[] { "Uses pure strength to dominate.", "Great at crowd control."}, + Material.DIAMOND_HELMET, Material.DIAMOND_CHESTPLATE, Material.DIAMOND_LEGGINGS, Material.DIAMOND_BOOTS, + null)); + } + + private void AddRanger() + { + CustomBuildToken customBuild = new CustomBuildToken(); + customBuild.Name = "Default Build"; + + customBuild.SwordSkillId = _skillFactory.GetSkill("Disengage").GetSalesPackageId(); + customBuild.AxeSkillId = _skillFactory.GetSkill("Agility").GetSalesPackageId(); + customBuild.BowSkillId = _skillFactory.GetSkill("Napalm Shot").GetSalesPackageId(); + customBuild.ClassPassiveASkillId = _skillFactory.GetSkill("Barrage").GetSalesPackageId(); + customBuild.ClassPassiveBSkillId = _skillFactory.GetSkill("Barbed Arrows").GetSalesPackageId(); + customBuild.GlobalPassiveSkillId = _skillFactory.GetSkill("Quick Recovery").GetSalesPackageId(); + + AddClass(new PvpClass(this, + -1, + ClassType.Ranger, + customBuild, + new String[] { "Mastery with a Bow and Arrow.", "Adept in Wilderness Survival" }, + Material.CHAINMAIL_HELMET, Material.CHAINMAIL_CHESTPLATE, Material.CHAINMAIL_LEGGINGS, Material.CHAINMAIL_BOOTS, + null)); + } + + private void AddKnight() + { + CustomBuildToken customBuild = new CustomBuildToken(); + customBuild.Name = "Default Build"; + + customBuild.SwordSkillId = _skillFactory.GetSkill("Hilt Smash").GetSalesPackageId(); + customBuild.AxeSkillId = _skillFactory.GetSkill("Bulls Charge").GetSalesPackageId(); + customBuild.BowSkillId = -1; + customBuild.ClassPassiveASkillId = _skillFactory.GetSkill("Swordsmanship").GetSalesPackageId(); + customBuild.ClassPassiveBSkillId = _skillFactory.GetSkill("Fortitude").GetSalesPackageId(); + customBuild.GlobalPassiveSkillId = _skillFactory.GetSkill("Resistance").GetSalesPackageId(); + + AddClass(new PvpClass( + this, + -1, + ClassType.Knight, + customBuild, + new String[] { "Trained in the arts of melee combat.", "Able to stand his ground against foes."}, + Material.IRON_HELMET, Material.IRON_CHESTPLATE, Material.IRON_LEGGINGS, Material.IRON_BOOTS, + null)); + } + public IPvpClass GetClass(String className) { return _classes.get(className); @@ -172,14 +262,6 @@ public class ClassManager extends MiniClientPlugin implements IClas return _skillFactory; } - public ClassRestore GetRestore() - { - if (_classRestore == null) - _classRestore = new ClassRestore(_plugin, this, _skillFactory); - - return _classRestore; - } - @Override protected ClientClass AddPlayer(String player) { diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClassRestore.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClassRestore.java deleted file mode 100644 index 7ba18aec6..000000000 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClassRestore.java +++ /dev/null @@ -1,259 +0,0 @@ -package mineplex.minecraft.game.classcombat.Class; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.DataInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; - -import mineplex.core.MiniPlugin; -import mineplex.core.common.util.F; -import mineplex.minecraft.game.classcombat.Skill.ISkill; -import mineplex.minecraft.game.classcombat.Skill.SkillFactory; - -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.player.AsyncPlayerPreLoginEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result; -import org.bukkit.plugin.java.JavaPlugin; - -public class ClassRestore extends MiniPlugin -{ - private ClassManager _classManager; - private SkillFactory _skillFactory; - private boolean _active = false; - private String _folder = "data/classbuilds/"; - - private HashMap>> _skills = new HashMap>>(); - - public ClassRestore(JavaPlugin plugin, ClassManager classManager, SkillFactory skillFactory) - { - super("Class Restore", plugin); - - _classManager = classManager; - _skillFactory = skillFactory; - - File file = new File(_folder); - file.mkdirs(); - } - - @EventHandler(priority = EventPriority.HIGHEST) - public void Join(AsyncPlayerPreLoginEvent event) - { - if (!_active) - return; - - if (event.getLoginResult() != Result.ALLOWED) - return; - - ReadBuilds(event.getName()); - } - - @EventHandler - public void Quit(PlayerQuitEvent event) - { - if (!_active) - return; - - WriteBuilds(event.getPlayer().getName()); - _skills.remove(event.getPlayer().getName()); - } - - public Collection GetBuild(String name, IPvpClass gameClass) - { - if (!_active) - return null; - - if (!_skills.containsKey(name)) - return null; - - if (!_skills.get(name).containsKey(gameClass)) - return null; - - return _skills.get(name).get(gameClass); - } - - public void SaveBuild(String name, IPvpClass gameClass, Collection skills) - { - if (!_active) - return; - - if (!_skills.containsKey(name)) - _skills.put(name, new HashMap>()); - - //Replace Old - _skills.get(name).put(gameClass, new ArrayList()); - - //Insert Skills - for (ISkill skill : skills) - _skills.get(name).get(gameClass).add(skill); - } - - public boolean IsActive() - { - return _active; - } - - public void Activate() - { - _active = true; - } - - /* FORMAT - * - * Assassin 5 Bulls Charge - * - */ - - public void WriteBuilds(String player) - { - if (!_skills.containsKey(player)) - return; - - System.out.println("Writing Build: " + player); - - FileWriter fstream = null; - BufferedWriter out = null; - - try - { - fstream = new FileWriter(_folder + player + ".dat"); - out = new BufferedWriter(fstream); - - HashMap> builds = _skills.get(player); - - for (IPvpClass gameClass : builds.keySet()) - for (ISkill skill : builds.get(gameClass)) - out.write(gameClass.GetName() + " " + skill.GetName() + "\n"); - } - catch (Exception e) - { - System.err.println("Build Write Error: " + e.getMessage()); - } - finally - { - if (out != null) - { - try - { - out.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - if (fstream != null) - { - try - { - fstream.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - } - } - - public void ReadBuilds(String player) - { - System.out.println("Reading Build: " + player); - - FileInputStream fstream = null; - DataInputStream in = null; - BufferedReader br = null; - - try - { - File f = new File(_folder + player + ".dat"); - - if (!f.exists()) - return; - - if (!_skills.containsKey(player)) - _skills.put(player, new HashMap>()); - - fstream = new FileInputStream(f); - in = new DataInputStream(fstream); - br = new BufferedReader(new InputStreamReader(in)); - String strLine; - - while ((strLine = br.readLine()) != null) - { - String[] tokens = strLine.split(" "); - - if (tokens.length < 3) - continue; - - try - { - //Class - IPvpClass gameClass = _classManager.GetClass(tokens[0]); - - if (!_skills.get(player).containsKey(gameClass)) - _skills.get(player).put(gameClass, new ArrayList()); - - ISkill skill = _skillFactory.GetSkill(F.combine(tokens, 2, null, false)); - - _skills.get(player).get(gameClass).add(skill); - } - catch (Exception e) - { - System.err.println("Build Parse Error: " + e.getMessage()); - } - } - } - catch (Exception e) - { - System.err.println("Build Read Error: " + e.getMessage()); - } - finally - { - if (br != null) - { - try - { - br.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - if (in != null) - { - try - { - in.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - if (fstream != null) - { - try - { - fstream.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - } - } -} diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClientClass.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClientClass.java index 7ec1a8593..97b099c1b 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClientClass.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClientClass.java @@ -63,6 +63,7 @@ public class ClientClass for (IPvpClass pvpClass : _classFactory.GetAllClasses()) { _customBuilds.put(pvpClass, new HashMap()); + _customBuilds.get(pvpClass).put(0, pvpClass.getDefaultBuild()); } if (token == null) @@ -70,6 +71,9 @@ public class ClientClass for (CustomBuildToken buildToken : token.CustomBuilds) { + if (buildToken.CustomBuildNumber == 0) + continue; + IPvpClass pvpClass = _classFactory.GetClass(buildToken.PvpClassId); ISkill swordSkill = _skillFactory.GetSkillBySalesPackageId(buildToken.SwordSkillId); @@ -413,22 +417,6 @@ public class ClientClass if (_gameClass == null) return; - //Load Saved - if (_classFactory.GetRestore().IsActive()) - { - Collection skills = _classFactory.GetRestore().GetBuild(_client.GetPlayerName(), gameClass); - - if (skills != null) - { - for (ISkill skill : skills) - AddSkill(skill); - - //Inform - UtilPlayer.message(_client.GetPlayer(), F.main("Class", "Armor Class: " + F.oo(_gameClass.GetName(), true))); - return; - } - } - for (ISkill cur : gameClass.GetDefaultSkills().keySet()) { if (cur.GetSkillType() == SkillType.Class) @@ -436,7 +424,7 @@ public class ClientClass } //Inform - UtilPlayer.message(_client.GetPlayer(), F.main("Class", "Armor Class: " + F.oo(_gameClass.GetName(), true))); + //UtilPlayer.message(_client.GetPlayer(), F.main("Class", "Armor Class: " + F.oo(_gameClass.GetName(), true))); } @@ -489,10 +477,6 @@ public class ClientClass _lastSkillMap.put(skill.GetSkillType(), skill); skill.AddUser(_client.GetPlayer()); - - //Save - if (_classFactory.GetRestore().IsActive()) - _classFactory.GetRestore().SaveBuild(_client.GetPlayerName(), _gameClass, GetSkills()); } public void RemoveSkill(ISkill skill) diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/IPvpClass.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/IPvpClass.java index f01858360..1a9211526 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/IPvpClass.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/IPvpClass.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.HashSet; import mineplex.minecraft.game.classcombat.Class.repository.token.ClassToken; +import mineplex.minecraft.game.classcombat.Class.repository.token.CustomBuildToken; import mineplex.minecraft.game.classcombat.Skill.ISkill; import org.bukkit.Material; @@ -38,4 +39,5 @@ public interface IPvpClass void Update(ClassToken classToken); String[] GetDesc(); void ApplyArmor(Player caller); + CustomBuildToken getDefaultBuild(); } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/PvpClass.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/PvpClass.java index 295581f34..9d7519fa9 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/PvpClass.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/PvpClass.java @@ -3,9 +3,7 @@ package mineplex.minecraft.game.classcombat.Class; import java.util.HashMap; import java.util.HashSet; -import mineplex.core.common.util.F; import mineplex.core.common.util.UtilGear; -import mineplex.core.common.util.UtilPlayer; import mineplex.core.itemstack.ItemStackFactory; import mineplex.minecraft.game.classcombat.Class.repository.token.ClassToken; import mineplex.minecraft.game.classcombat.Class.repository.token.CustomBuildToken; @@ -22,6 +20,7 @@ import org.bukkit.inventory.meta.LeatherArmorMeta; public class PvpClass implements IPvpClass { private ClassType _type; + private CustomBuildToken _customBuild; private int _salesPackageId; private String[] _desc; private int _cost; @@ -39,7 +38,7 @@ public class PvpClass implements IPvpClass private ClassManager _classes; - public PvpClass(ClassManager classes, int salesPackageId, ClassType type, String[] desc, Material head, Material chest, Material legs, Material boots, Color leatherColor) + public PvpClass(ClassManager classes, int salesPackageId, ClassType type, CustomBuildToken customBuild, String[] desc, Material head, Material chest, Material legs, Material boots, Color leatherColor) { _classes = classes; _salesPackageId = salesPackageId; @@ -47,6 +46,8 @@ public class PvpClass implements IPvpClass _desc = desc; _type = type; + + _customBuild = customBuild; _head = head; _chest = chest; @@ -230,7 +231,7 @@ public class PvpClass implements IPvpClass { _classes.Get(player).SetGameClass(null); - UtilPlayer.message(player, F.main("Class", "Armor Class: " + F.oo("None", false))); + // UtilPlayer.message(player, F.main("Class", "Armor Class: " + F.oo("None", false))); } @Override @@ -263,6 +264,7 @@ public class PvpClass implements IPvpClass _salesPackageId = classToken.SalesPackage.GameSalesPackageId; _cost = classToken.SalesPackage.Gems; _free = classToken.SalesPackage.Free; + _customBuild.PvpClassId = classToken.SalesPackage.GameSalesPackageId; } @Override @@ -274,7 +276,7 @@ public class PvpClass implements IPvpClass ItemStack boots = ItemStackFactory.Instance.CreateStack(GetBoots(), 1); if (_leatherColor != null) - { + { LeatherArmorMeta meta; //Head @@ -303,4 +305,10 @@ public class PvpClass implements IPvpClass caller.getInventory().setLeggings(legs); caller.getInventory().setBoots(boots); } + + @Override + public CustomBuildToken getDefaultBuild() + { + return _customBuild; + } } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/repository/token/CustomBuildToken.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/repository/token/CustomBuildToken.java index 60114f89d..a40b28c0b 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/repository/token/CustomBuildToken.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/repository/token/CustomBuildToken.java @@ -1,5 +1,6 @@ package mineplex.minecraft.game.classcombat.Class.repository.token; +import java.util.ArrayList; import java.util.List; public class CustomBuildToken @@ -25,7 +26,7 @@ public class CustomBuildToken public int GlobalPassiveSkillId = -1; - public List Slots; + public List Slots = new ArrayList();; public void printInfo() { diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/ClassCombatShop.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/ClassCombatShop.java index 25175c6eb..9ce82a11d 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/ClassCombatShop.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/ClassCombatShop.java @@ -40,7 +40,7 @@ public class ClassCombatShop extends ShopBase return new ArmorPage(Plugin, this, ClientManager, DonationManager, player, Purchasing); } - public boolean attemptShopOpen(Player player, IPvpClass pvpClass) + public boolean attemptShopOpen(Player player) { if (!OpenedShop.contains(player.getName())) { @@ -50,20 +50,12 @@ public class ClassCombatShop extends ShopBase OpenedShop.add(player.getName()); OpenShopForPlayer(player); - - - ClientClass clientClass = Plugin.GetClassManager().Get(player); - - player.getInventory().clear(); - - clientClass.SetGameClass(pvpClass); - pvpClass.ApplyArmor(player); - clientClass.ClearDefaults(); CustomBuildPage buildPage = new CustomBuildPage(Plugin, this, ClientManager, DonationManager, player); if (!PlayerPageMap.containsKey(player.getName())) { + System.out.println("PlayerPageMap doesn't have this player"); PlayerPageMap.put(player.getName(), buildPage); } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/page/CustomBuildPage.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/page/CustomBuildPage.java index d7259f198..3f5f7eb95 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/page/CustomBuildPage.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/shop/page/CustomBuildPage.java @@ -108,9 +108,12 @@ public class CustomBuildPage extends ShopPageBase _points = new ArrayList(); private ArrayList _emerald = new ArrayList(); @@ -75,9 +71,6 @@ public class Dominate extends TeamGame this.PrepareFreeze = false; this.DeathSpectateSecs = 8; - - - _shop = manager.getClassShop(); } @Override @@ -98,31 +91,20 @@ public class Dominate extends TeamGame _emerald.add(new Emerald(this, loc)); } - this.CreatureAllowOverride = true; + CreatureAllowOverride = true; - //Knight - new KitKnight(Manager).SpawnEntity(WorldData.GetDataLocs("RED").get(0)); - new KitKnight(Manager).SpawnEntity(WorldData.GetDataLocs("BLUE").get(0)); + for (int i = 0; i < GetKits().length && i < WorldData.GetDataLocs("RED").size() && i < WorldData.GetDataLocs("BLUE").size(); i++) + { + Entity ent = GetKits()[i].SpawnEntity(WorldData.GetDataLocs("RED").get(i)); + Manager.GetLobby().AddKitLocation(ent, GetKits()[i], WorldData.GetDataLocs("RED").get(i)); + + ent = GetKits()[i].SpawnEntity(WorldData.GetDataLocs("BLUE").get(i)); + Manager.GetLobby().AddKitLocation(ent, GetKits()[i], WorldData.GetDataLocs("BLUE").get(i)); + } - //Ranger - new KitRanger(Manager).SpawnEntity(WorldData.GetDataLocs("RED").get(1)); - new KitRanger(Manager).SpawnEntity(WorldData.GetDataLocs("BLUE").get(1)); - - //Brute - new KitBrute(Manager).SpawnEntity(WorldData.GetDataLocs("RED").get(2)); - new KitBrute(Manager).SpawnEntity(WorldData.GetDataLocs("BLUE").get(2)); - - //Assassin - new KitAssassin(Manager).SpawnEntity(WorldData.GetDataLocs("RED").get(3)); - new KitAssassin(Manager).SpawnEntity(WorldData.GetDataLocs("BLUE").get(3)); - - //Mage - new KitMage(Manager).SpawnEntity(WorldData.GetDataLocs("RED").get(4)); - new KitMage(Manager).SpawnEntity(WorldData.GetDataLocs("BLUE").get(4)); - - this.CreatureAllowOverride = false; + CreatureAllowOverride = false; } - + @EventHandler public void CustomTeamGeneration(GameStateChangeEvent event) { @@ -301,4 +283,10 @@ public class Dominate extends TeamGame { return 1; } + + @Override + public void ValidateKit(Player player, GameTeam team) + { + // NOTHING + } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitAssassin.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitAssassin.java index a141e4480..4242d4b38 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitAssassin.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitAssassin.java @@ -48,13 +48,14 @@ public class KitAssassin extends Kit ClientClass clientClass = _class.get(player); IPvpClass pvpClass = Manager.getClassManager().GetClass("Assassin"); - player.getInventory().clear(); - clientClass.SetGameClass(pvpClass); pvpClass.ApplyArmor(player); clientClass.ClearDefaults(); - Manager.openClassShop(player, Manager.getClassManager().GetClass("Assassin")); + if (!Manager.GetGame().InProgress()) + clientClass.SetActiveCustomBuild(pvpClass, pvpClass.getDefaultBuild()); + + Manager.openClassShop(player); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitBrute.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitBrute.java index 66200f3ed..431480f5c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitBrute.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitBrute.java @@ -48,13 +48,14 @@ public class KitBrute extends Kit ClientClass clientClass = _class.get(player); IPvpClass pvpClass = Manager.getClassManager().GetClass("Brute"); - player.getInventory().clear(); - clientClass.SetGameClass(pvpClass); pvpClass.ApplyArmor(player); clientClass.ClearDefaults(); - Manager.openClassShop(player, Manager.getClassManager().GetClass("Brute")); + if (!Manager.GetGame().InProgress()) + clientClass.SetActiveCustomBuild(pvpClass, pvpClass.getDefaultBuild()); + + Manager.openClassShop(player); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitKnight.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitKnight.java index 34cb14f4a..0be8b1103 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitKnight.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitKnight.java @@ -48,13 +48,14 @@ public class KitKnight extends Kit ClientClass clientClass = _class.get(player); IPvpClass pvpClass = Manager.getClassManager().GetClass("Knight"); - player.getInventory().clear(); - clientClass.SetGameClass(pvpClass); - pvpClass.ApplyArmor(player); + pvpClass.ApplyArmor(player); clientClass.ClearDefaults(); - Manager.openClassShop(player, Manager.getClassManager().GetClass("Knight")); + if (!Manager.GetGame().InProgress()) + clientClass.SetActiveCustomBuild(pvpClass, pvpClass.getDefaultBuild()); + + Manager.openClassShop(player); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitMage.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitMage.java index 72f922f27..5aa07aff1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitMage.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitMage.java @@ -48,13 +48,14 @@ public class KitMage extends Kit ClientClass clientClass = _class.get(player); IPvpClass pvpClass = Manager.getClassManager().GetClass("Mage"); - player.getInventory().clear(); - clientClass.SetGameClass(pvpClass); pvpClass.ApplyArmor(player); clientClass.ClearDefaults(); - Manager.openClassShop(player, Manager.getClassManager().GetClass("Mage")); + if (!Manager.GetGame().InProgress()) + clientClass.SetActiveCustomBuild(pvpClass, pvpClass.getDefaultBuild()); + + Manager.openClassShop(player); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitRanger.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitRanger.java index 3d710add8..3e9181959 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitRanger.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/champions_dominate/kits/KitRanger.java @@ -47,14 +47,15 @@ public class KitRanger extends Kit _class.put(player, Manager.getClassManager().Get(player)); ClientClass clientClass = _class.get(player); IPvpClass pvpClass = Manager.getClassManager().GetClass("Ranger"); - - player.getInventory().clear(); - + clientClass.SetGameClass(pvpClass); pvpClass.ApplyArmor(player); clientClass.ClearDefaults(); - Manager.openClassShop(player, Manager.getClassManager().GetClass("Ranger")); + if (!Manager.GetGame().InProgress()) + clientClass.SetActiveCustomBuild(pvpClass, pvpClass.getDefaultBuild()); + + Manager.openClassShop(player); } @Override diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameManager.java index 9514896d4..4641f326f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameManager.java @@ -473,7 +473,7 @@ public class GameManager implements Listener //Teleport for (GameTeam team : game.GetTeamList()) - team.SpawnTeleport(); + team.SpawnTeleport(); //Save Initial Player Count game.SetPlayerCountAtStart(game.GetPlayers(true).size()); @@ -489,7 +489,8 @@ public class GameManager implements Listener game.ValidateKit(player, game.GetTeam(player)); - game.GetKit(player).ApplyKit(player); + if (game.GetKit(player) != null) + game.GetKit(player).ApplyKit(player); } } diff --git a/Website/LOCWebsite.suo b/Website/LOCWebsite.suo index 5195e1a4d..40be8bf88 100644 Binary files a/Website/LOCWebsite.suo and b/Website/LOCWebsite.suo differ