diff --git a/Plugins/Mineplex.Core/src/mineplex/core/database/column/ColumnByte.java b/Plugins/Mineplex.Core/src/mineplex/core/database/column/ColumnByte.java new file mode 100644 index 000000000..40464a318 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/database/column/ColumnByte.java @@ -0,0 +1,43 @@ +package mineplex.core.database.column; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class ColumnByte extends Column +{ + public ColumnByte(String name) + { + super(name); + Value = (byte)0; + } + + public ColumnByte(String name, Byte value) + { + super(name, value); + } + + @Override + public String getCreateString() + { + return Name + " TINYINT"; + } + + @Override + public Byte getValue(ResultSet resultSet) throws SQLException + { + return resultSet.getByte(Name); + } + + @Override + public void setValue(PreparedStatement preparedStatement, int columnNumber) throws SQLException + { + preparedStatement.setLong(columnNumber, Value); + } + + @Override + public ColumnByte clone() + { + return new ColumnByte(Name, Value); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/database/column/ColumnDouble.java b/Plugins/Mineplex.Core/src/mineplex/core/database/column/ColumnDouble.java new file mode 100644 index 000000000..1163df926 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/database/column/ColumnDouble.java @@ -0,0 +1,43 @@ +package mineplex.core.database.column; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class ColumnDouble extends Column +{ + public ColumnDouble(String name) + { + super(name); + Value = 0.0; + } + + public ColumnDouble(String name, Double value) + { + super(name, value); + } + + @Override + public String getCreateString() + { + return Name + " DOUBLE"; + } + + @Override + public Double getValue(ResultSet resultSet) throws SQLException + { + return resultSet.getDouble(Name); + } + + @Override + public void setValue(PreparedStatement preparedStatement, int columnNumber) throws SQLException + { + preparedStatement.setDouble(columnNumber, Value); + } + + @Override + public ColumnDouble clone() + { + return new ColumnDouble(Name, Value); + } +} diff --git a/Plugins/Mineplex.Game.Clans/.classpath b/Plugins/Mineplex.Game.Clans/.classpath new file mode 100644 index 000000000..dbcbd71a8 --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/.classpath @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Plugins/Mineplex.Game.Clans/.externalToolBuilders/ClansBuilder.launch b/Plugins/Mineplex.Game.Clans/.externalToolBuilders/ClansBuilder.launch new file mode 100644 index 000000000..71b1d0ddd --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/.externalToolBuilders/ClansBuilder.launch @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/Plugins/Mineplex.Game.Clans/.project b/Plugins/Mineplex.Game.Clans/.project new file mode 100644 index 000000000..f5ddd40a1 --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/.project @@ -0,0 +1,27 @@ + + + Mineplex.Game.Clans + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/ClansBuilder.launch + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Plugins/Mineplex.Game.Clans/.settings/org.eclipse.jdt.core.prefs b/Plugins/Mineplex.Game.Clans/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..7341ab168 --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/Field.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/Field.java new file mode 100644 index 000000000..05b34120f --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/Field.java @@ -0,0 +1,41 @@ +package me.chiss.Core.Field; + +import org.bukkit.plugin.java.JavaPlugin; + +import me.chiss.Core.Field.repository.FieldRepository; +import mineplex.core.MiniPlugin; +import mineplex.core.creature.Creature; +import mineplex.core.energy.Energy; +import mineplex.minecraft.game.core.condition.ConditionFactory; + +public class Field extends MiniPlugin +{ + private FieldBlock _block; + private FieldOre _ore; + private FieldMonster _mob; + + public Field(JavaPlugin plugin, Creature creature, ConditionFactory condition, Energy energy, String serverName) + { + super("Field Factory", plugin); + + FieldRepository repository = new FieldRepository(plugin); + _block = new FieldBlock(plugin, condition, energy, repository, serverName); + _ore = new FieldOre(plugin, repository, serverName); + _mob = new FieldMonster(plugin, repository, creature, serverName); + } + + public FieldBlock GetBlock() + { + return _block; + } + + public FieldOre GetOre() + { + return _ore; + } + + public FieldMonster GetMonster() + { + return _mob; + } +} diff --git a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldBlock.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldBlock.java similarity index 60% rename from Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldBlock.java rename to Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldBlock.java index 72d0d1d47..726ddb4d9 100644 --- a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldBlock.java +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldBlock.java @@ -4,8 +4,6 @@ import java.util.HashMap; import java.util.HashSet; import java.util.WeakHashMap; -import nautilus.minecraft.core.webserver.token.Server.FieldBlockToken; - import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.Material; @@ -17,19 +15,26 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.plugin.java.JavaPlugin; -import me.chiss.Core.Module.AModule; -import mineplex.core.server.IRepository; +import me.chiss.Core.Field.repository.FieldBlockToken; +import me.chiss.Core.Field.repository.FieldRepository; +import mineplex.core.MiniPlugin; import mineplex.core.updater.event.UpdateEvent; import mineplex.core.updater.UpdateType; import mineplex.core.common.Rank; import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilEvent; +import mineplex.core.common.util.UtilGear; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilWorld; import mineplex.core.common.util.UtilEvent.ActionType; +import mineplex.core.energy.Energy; +import mineplex.minecraft.game.core.condition.ConditionFactory; -public class FieldBlock extends AModule +public class FieldBlock extends MiniPlugin { + private ConditionFactory _conditionFactory; + private Energy _energy; + private FieldRepository _repository; private HashMap _blocks; private HashSet _active = new HashSet(); @@ -44,183 +49,25 @@ public class FieldBlock extends AModule private String _serverName; - public FieldBlock(JavaPlugin plugin, IRepository repository, String serverName) + public FieldBlock(JavaPlugin plugin, ConditionFactory conditionFactory, Energy energy, FieldRepository repository, String serverName) { - super("Field Block", plugin, repository); - + super("Field Block", plugin); + + _conditionFactory = conditionFactory; + _energy = energy; + _repository = repository; _blocks = new HashMap(); _serverName = serverName; load(); } - - //Module Functions - @Override - public void enable() - { - - } - - @Override - public void disable() - { - clean(); - } - - @Override - public void config() - { - - } - - @Override - public void commands() - { - AddCommand("fb"); - } - - @Override - public void command(Player caller, String cmd, String[] args) - { - if (!Clients().Get(caller).Rank().Has(Rank.ADMIN, true)) - return; - - if (args.length == 0) - { - showSettings(caller); - return; - } - - if (args[0].equalsIgnoreCase("toggle")) - { - if (!_active.remove(caller.getName())) - _active.add(caller.getName()); - - UtilPlayer.message(caller, F.main(GetName(), "Interact Active: " + F.tf(_active.contains(caller.getName())))); - } - - else if (args[0].equalsIgnoreCase("load")) - { - load(); - UtilPlayer.message(caller, F.main(_moduleName, "Reloaded Field Blocks from Database.")); - } - - else if (args[0].equalsIgnoreCase("wipe")) - { - wipe(caller); - } - - else if (args[0].equalsIgnoreCase("help")) - { - help(caller); - } - - else if (args.length <= 1) - { - help(caller); - } - - else if (args[0].equalsIgnoreCase("title")) - { - _title.put(caller, args[1]); - showSettings(caller); - } - - else if (args[0].equalsIgnoreCase("stock")) - { - try - { - int count = Integer.parseInt(args[1]); - if (count < 1) count = 1; - _stock.put(caller, count); - showSettings(caller); - } - catch (Exception e) - { - UtilPlayer.message(caller, F.main(_moduleName, "Invalid Stock Max.")); - } - } - - else if (args[0].equalsIgnoreCase("regen")) - { - try - { - double regen = Double.parseDouble(args[1]); - if (regen < 0) regen = 0; - _regen.put(caller, UtilMath.trim(1, regen)); - showSettings(caller); - } - catch (Exception e) - { - UtilPlayer.message(caller, F.main(_moduleName, "Invalid Stock Regeneration Time.")); - } - } - - else if (args[0].equalsIgnoreCase("empty")) - { - try - { - String[] toks = args[1].split(":"); - - int id = Integer.parseInt(toks[0]); - byte data = Byte.parseByte(toks[1]); - - _emptyId.put(caller, id); - _emptyData.put(caller, data); - showSettings(caller); - } - catch (Exception e) - { - UtilPlayer.message(caller, F.main(_moduleName, "Invalid Empty Block.")); - } - } - - - else if (args[0].equalsIgnoreCase("loot")) - { - boolean error = false; - for (String cur : args[1].split(",")) - { - String[] loot = cur.split(":"); - - if (loot.length != 5) - { - error = true; - break; - } - - try - { - Integer.parseInt(loot[0]); - Byte.parseByte(loot[1]); - Integer.parseInt(loot[2]); - Integer.parseInt(loot[3]); - Integer.parseInt(loot[4]); - } - catch (Exception e) - { - error = true; - break; - } - } - - if (error) - { - UtilPlayer.message(caller, F.main(_moduleName, "Invalid Loot String.")); - return; - } - - _lootString.put(caller, args[1]); - showSettings(caller); - } - } - - private void showSettings(Player caller) + + public void showSettings(Player caller) { populateSettings(caller); - UtilPlayer.message(caller, F.main(_moduleName, "Field Addition Settings;")); + UtilPlayer.message(caller, F.main(GetName(), "Field Addition Settings;")); UtilPlayer.message(caller, F.desc("Title", _title.get(caller))); UtilPlayer.message(caller, F.desc("Stock", _stock.get(caller)+"")); UtilPlayer.message(caller, F.desc("Regen", _regen.get(caller)+"")); @@ -257,34 +104,31 @@ public class FieldBlock extends AModule if (event.getPlayer().getItemInHand() != null && event.getPlayer().getItemInHand().getType().toString().contains("PICKAXE")) { - if (Util().Event().isAction(event, ActionType.R_BLOCK)) + if (UtilEvent.isAction(event, ActionType.R_BLOCK)) showBlock(event.getPlayer(), event); } - else if (Util().Gear().isMat(event.getPlayer().getItemInHand(), Material.GLOWSTONE_DUST)) + else if (UtilGear.isMat(event.getPlayer().getItemInHand(), Material.GLOWSTONE_DUST)) { - if (Util().Event().isAction(event, ActionType.L_BLOCK)) + if (UtilEvent.isAction(event, ActionType.L_BLOCK)) addBlock(event.getPlayer(), event); - else if (Util().Event().isAction(event, ActionType.R)) + else if (UtilEvent.isAction(event, ActionType.R)) glowBlocks(event.getPlayer(), event); } - else if (Util().Gear().isMat(event.getPlayer().getItemInHand(), Material.REDSTONE)) + else if (UtilGear.isMat(event.getPlayer().getItemInHand(), Material.REDSTONE)) { - if (Util().Event().isAction(event, ActionType.L_BLOCK)) + if (UtilEvent.isAction(event, ActionType.L_BLOCK)) delBlock(event.getPlayer(), event); - else if (Util().Event().isAction(event, ActionType.R)) + else if (UtilEvent.isAction(event, ActionType.R)) glowBlocks(event.getPlayer(), event); } } private void glowBlocks(Player player, PlayerInteractEvent event) { - if (!Clients().Get(player).Rank().Has(Rank.ADMIN, false)) - return; - load(); for (FieldBlockData cur : _blocks.values()) @@ -293,12 +137,12 @@ public class FieldBlock extends AModule event.setCancelled(true); } - private void wipe(Player player) + public void wipe(Player player) { for (FieldBlockData cur : _blocks.values()) { cur.setEmpty(); - GetRepository().DeleteFieldBlock(_serverName, UtilWorld.locToStr(cur.getLocation())); + _repository.deleteFieldBlock(_serverName, UtilWorld.locToStr(cur.getLocation())); } _blocks.clear(); @@ -308,10 +152,7 @@ public class FieldBlock extends AModule private void delBlock(Player player, PlayerInteractEvent event) { - if (!Clients().Get(player).Rank().Has(Rank.ADMIN, false)) - return; - - GetRepository().DeleteFieldBlock(_serverName, UtilWorld.locToStr(event.getClickedBlock().getLocation())); + _repository.deleteFieldBlock(_serverName, UtilWorld.locToStr(event.getClickedBlock().getLocation())); //Inform event.getClickedBlock().getWorld().playEffect(event.getClickedBlock().getLocation(), Effect.STEP_SOUND, 42); @@ -322,9 +163,6 @@ public class FieldBlock extends AModule private void addBlock(Player player, PlayerInteractEvent event) { - if (!Clients().Get(player).Rank().Has(Rank.ADMIN, false)) - return; - populateSettings(player); showSettings(player); @@ -340,7 +178,7 @@ public class FieldBlock extends AModule token.StockRegenTime = _regen.get(player); token.Loot = _lootString.get(player); - GetRepository().AddFieldBlock(token); + _repository.addFieldBlock(token); //Inform event.getClickedBlock().getWorld().playEffect(event.getClickedBlock().getLocation(), Effect.STEP_SOUND, 41); @@ -388,7 +226,7 @@ public class FieldBlock extends AModule { clean(); - for (FieldBlockToken token : GetRepository().GetFieldBlocks(_serverName)) + for (FieldBlockToken token : _repository.getFieldBlocks(_serverName)) { Location loc = UtilWorld.strToLoc(token.Location); _blocks.put(token.Location, new FieldBlockData(this, loc, token.BlockId, token.BlockData, token.EmptyId, token.EmptyData, token.StockMax, token.StockRegenTime, token.Loot)); @@ -409,5 +247,50 @@ public class FieldBlock extends AModule return _blocks.get(UtilWorld.locToStr(block.getLocation())); return null; + } + + public Energy getEnergy() + { + return _energy; + } + + public HashSet getActive() + { + return _active; + } + + public WeakHashMap getLootString() + { + return _lootString; + } + + public WeakHashMap getEmptyId() + { + return _emptyId; + } + + public WeakHashMap getEmptyData() + { + return _emptyData; + } + + public WeakHashMap getRegen() + { + return _regen; + } + + public WeakHashMap getStock() + { + return _stock; + } + + public WeakHashMap getTitle() + { + return null; + } + + public ConditionFactory getCondition() + { + return _conditionFactory; } } diff --git a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldBlockData.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldBlockData.java similarity index 94% rename from Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldBlockData.java rename to Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldBlockData.java index 8dc5afe28..8fd91b4af 100644 --- a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldBlockData.java +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldBlockData.java @@ -53,7 +53,7 @@ public class FieldBlockData if (loot.length != 5) { - Field.Log("Loot Failure: " + cur); + System.out.println("Loot Failure: " + cur); continue; } @@ -68,7 +68,7 @@ public class FieldBlockData } catch (Exception e) { - Field.Log("Loot Failure: " + cur); + System.out.println("Loot Failure: " + cur); } } @@ -129,7 +129,7 @@ public class FieldBlockData public void handleMined(Player player) { - if (!Field.Energy().use(player, "Mine Field Block", 60, true, true)) + if (!Field.getEnergy().Use(player, "Mine Field Block", 60, true, true)) return; //Set Break Time - Avoid Instant Regen @@ -151,7 +151,7 @@ public class FieldBlockData } //Slow - Field.Condition().Factory().Slow("Field Slow", player, player, 6, 1, false, true, false); + Field.getCondition().Slow("Field Slow", player, player, 6, 1, false, true, false, false); } public boolean tryMine() diff --git a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldBlockLootData.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldBlockLootData.java similarity index 100% rename from Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldBlockLootData.java rename to Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldBlockLootData.java diff --git a/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldMonster.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldMonster.java new file mode 100644 index 000000000..417e3e353 --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldMonster.java @@ -0,0 +1,174 @@ +package me.chiss.Core.Field; + +import java.util.HashSet; +import java.util.WeakHashMap; + +import org.bukkit.Location; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; +import org.bukkit.plugin.java.JavaPlugin; + +import mineplex.core.MiniPlugin; +import mineplex.core.common.Rank; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilEnt; +import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilWorld; +import mineplex.core.creature.Creature; +import me.chiss.Core.Field.Monsters.FieldMonsterBase; +import me.chiss.Core.Field.repository.FieldMonsterToken; +import me.chiss.Core.Field.repository.FieldRepository; + +public class FieldMonster extends MiniPlugin +{ + private Creature _creature; + private FieldRepository _repository; + private HashSet _pits; + private String _serverName; + + private WeakHashMap _input = new WeakHashMap(); + + public FieldMonster(JavaPlugin plugin, FieldRepository repository, Creature creature, String serverName) + { + super("Field Monster", plugin); + + _repository = repository; + _creature = creature; + _pits = new HashSet(); + _serverName = serverName; + + Load(); + } + + public void Help(Player caller) + { + UtilPlayer.message(caller, F.main(GetName(), "Commands List;")); + UtilPlayer.message(caller, F.help("/fm type ", "Set Monster Type", Rank.ADMIN)); + UtilPlayer.message(caller, F.help("/fm max <#>", "Set Monster Limit", Rank.ADMIN)); + UtilPlayer.message(caller, F.help("/fm rate ", "Set Monster Rate", Rank.ADMIN)); + UtilPlayer.message(caller, F.help("/fm radius <#>", "Set Area Radius", Rank.ADMIN)); + UtilPlayer.message(caller, F.help("/fm height <#>", "Set Area Height", Rank.ADMIN)); + UtilPlayer.message(caller, F.help("/fm create ", "Create at your Location", Rank.ADMIN)); + UtilPlayer.message(caller, F.help("/fm delete ", "Delete Field", Rank.ADMIN)); + UtilPlayer.message(caller, F.help("/fm list", "List Monster Fields", Rank.ADMIN)); + UtilPlayer.message(caller, F.help("/fm info ", "Display Monster Field", Rank.ADMIN)); + UtilPlayer.message(caller, F.help("/fm kill", "Kills all Field Monsters", Rank.ADMIN)); + UtilPlayer.message(caller, F.help("/fm wipe", "Delete All Monster Field (Database)", Rank.ADMIN)); + } + + public void Create(Player caller, String name) + { + FieldMonsterInput input = _input.get(caller); + + if (input.type == null) + { + UtilPlayer.message(caller, F.main(GetName(), "You have not set Monster Type.")); + return; + } + + for (FieldMonsterBase pit : _pits) + { + if (name.equalsIgnoreCase(pit.GetName())) + { + UtilPlayer.message(caller, F.main(GetName(), "Monster Field with this name already exists.")); + return; + } + } + + FieldMonsterBase pit = new FieldMonsterBase(this, name, _serverName, input.type, input.mobMax, input.mobRate, caller.getLocation(), input.radius, input.height); + Add(pit, true); + + UtilPlayer.message(caller, F.main(GetName(), "You created Monster Field.")); + pit.Display(caller); + } + + private void Add(FieldMonsterBase pit, boolean repo) + { + UtilServer.getServer().getPluginManager().registerEvents(pit, GetPlugin()); + _pits.add(pit); + + if (repo) + _repository.addFieldMonster(pit.GetToken()); + } + + public void Delete(Player caller, String name) + { + HashSet remove = new HashSet(); + + for (FieldMonsterBase pit : _pits) + if (pit.GetName().equalsIgnoreCase(name)) + remove.add(pit); + + int i = remove.size(); + + for (FieldMonsterBase pit : remove) + Delete(pit, true); + + UtilPlayer.message(caller, F.main(GetName(), "Deleted " + i + " Monster Field(s).")); + } + + private void Delete(FieldMonsterBase pit, boolean repo) + { + _pits.remove(pit); + pit.RemoveMonsters(); + HandlerList.unregisterAll(pit); + + if (repo) + _repository.deleteFieldMonster(_serverName, pit.GetToken().Name); + } + + public void Wipe(Player player, boolean repo) + { + HashSet remove = new HashSet(); + + for (FieldMonsterBase pit : _pits) + remove.add(pit); + + _pits.clear(); + + for (FieldMonsterBase pit : remove) + Delete(pit, repo); + + UtilPlayer.message(player, F.main(_moduleName, "Field Monsters Wiped.")); + } + + private void Load() + { + Wipe(null, false); + + for (FieldMonsterToken token : _repository.getFieldMonsters(_serverName)) + { + EntityType type = UtilEnt.searchEntity(null, token.Type, false); + if (type == null) continue; + + Location loc = UtilWorld.strToLoc(token.Centre); + if (loc == null) continue; + + FieldMonsterBase pit = new FieldMonsterBase(this, token.Name, _serverName, type, token.MobMax, token.MobRate, loc, token.Radius, token.Height); + Add(pit, false); + } + } + + private void Clean() + { + for (FieldMonsterBase pit : _pits) + pit.RemoveMonsters(); + } + + public WeakHashMap getInput() + { + return _input; + } + + public HashSet getPits() + { + return _pits; + } + + public Creature getCreature() + { + return _creature; + } +} diff --git a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldMonsterInput.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldMonsterInput.java similarity index 100% rename from Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldMonsterInput.java rename to Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldMonsterInput.java diff --git a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldOre.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldOre.java similarity index 73% rename from Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldOre.java rename to Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldOre.java index c64bf2609..e6a510ff9 100644 --- a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldOre.java +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldOre.java @@ -3,8 +3,6 @@ package me.chiss.Core.Field; import java.util.ArrayList; import java.util.HashSet; -import nautilus.minecraft.core.webserver.token.Server.FieldOreToken; - import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.Material; @@ -16,20 +14,24 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.plugin.java.JavaPlugin; -import me.chiss.Core.Module.AModule; -import mineplex.core.server.IRepository; +import me.chiss.Core.Field.repository.FieldOreToken; +import me.chiss.Core.Field.repository.FieldRepository; +import mineplex.core.MiniPlugin; import mineplex.core.updater.event.UpdateEvent; import mineplex.core.updater.UpdateType; import mineplex.core.common.Rank; import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilEvent; +import mineplex.core.common.util.UtilGear; import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilTime; import mineplex.core.common.util.UtilWorld; import mineplex.core.common.util.UtilEvent.ActionType; -public class FieldOre extends AModule +public class FieldOre extends MiniPlugin { + private FieldRepository _repository; private HashSet _active = new HashSet(); private ArrayList _oreInactive = new ArrayList(); @@ -42,86 +44,15 @@ public class FieldOre extends AModule private String _serverName; - public FieldOre(JavaPlugin plugin, IRepository repository, String serverName) + public FieldOre(JavaPlugin plugin, FieldRepository repository, String serverName) { - super("Field Ore", plugin, repository); + super("Field Ore", plugin); + _repository = repository; _serverName = serverName; load(); } - - @Override - public void enable() - { - - } - - @Override - public void disable() - { - clean(); - } - - @Override - public void config() - { - - } - - @Override - public void commands() - { - AddCommand("fo"); - } - - @Override - public void command(Player caller, String cmd, String[] args) - { - if (!Clients().Get(caller).Rank().Has(Rank.ADMIN, true)) - return; - - if (args.length == 0) - { - help(caller); - return; - } - - if (args[0].equalsIgnoreCase("toggle")) - { - if (!_active.remove(caller.getName())) - _active.add(caller.getName()); - - UtilPlayer.message(caller, F.main(GetName(), "Interact Active: " + F.tf(_active.contains(caller.getName())))); - } - - else if (args[0].equalsIgnoreCase("help")) - { - help(caller); - } - - else if (args[0].equalsIgnoreCase("reset")) - { - reset(caller); - } - - else if (args[0].equalsIgnoreCase("fill")) - { - fill(caller); - } - - else if (args[0].equalsIgnoreCase("list")) - { - list(caller); - } - - else if (args[0].equalsIgnoreCase("wipe")) - { - wipe(caller); - } - - - } public void help(Player caller) { @@ -139,17 +70,17 @@ public class FieldOre extends AModule if (!_active.contains(event.getPlayer().getName())) return; - if (Util().Gear().isMat(event.getPlayer().getItemInHand(), Material.DIAMOND)) + if (UtilGear.isMat(event.getPlayer().getItemInHand(), Material.DIAMOND)) { - if (Util().Event().isAction(event, ActionType.L)) + if (UtilEvent.isAction(event, ActionType.L)) addBlock(event.getPlayer(), event); - else if (Util().Event().isAction(event, ActionType.R_BLOCK)) + else if (UtilEvent.isAction(event, ActionType.R_BLOCK)) delBlock(event.getPlayer(), event); } } - private void reset(Player player) + public void reset(Player player) { for (FieldOreData ore : _oreActive) { @@ -162,7 +93,7 @@ public class FieldOre extends AModule UtilPlayer.message(player, F.main(_moduleName, "Field Ore Reset.")); } - private void fill(Player player) + public void fill(Player player) { while (!_oreInactive.isEmpty()) _oreInactive.get(UtilMath.r(_oreInactive.size())).StartVein(2 + UtilMath.r(5)); @@ -170,20 +101,20 @@ public class FieldOre extends AModule UtilPlayer.message(player, F.main(_moduleName, "Field Ore Generated.")); } - private void list(Player player) + public void list(Player player) { UtilPlayer.message(player, F.main(_moduleName, F.value("Total", ""+_oreLocations.size()))); UtilPlayer.message(player, F.main(_moduleName, F.value("Active", ""+_oreActive.size()))); UtilPlayer.message(player, F.main(_moduleName, F.value("Inactive", ""+_oreInactive.size()))); } - private void wipe(Player player) + public void wipe(Player player) { reset(player); for (Location loc : _oreLocations) { - GetRepository().DeleteFieldOre(_serverName, UtilWorld.locToStr(loc)); + _repository.deleteFieldOre(_serverName, UtilWorld.locToStr(loc)); } _oreInactive.clear(); @@ -194,9 +125,6 @@ public class FieldOre extends AModule private void addBlock(Player player, PlayerInteractEvent event) { - if (!Clients().Get(player).Rank().Has(Rank.ADMIN, false)) - return; - Block block = player.getTargetBlock(null, 0); if (Get(block.getLocation()) != null) @@ -209,7 +137,7 @@ public class FieldOre extends AModule FieldOreToken token = new FieldOreToken(); token.Server = _serverName; token.Location = UtilWorld.locToStr(block.getLocation()); - GetRepository().AddFieldOre(token); + _repository.addFieldOre(token); //Memory _oreInactive.add(new FieldOreData(this, block.getLocation())); @@ -223,9 +151,6 @@ public class FieldOre extends AModule private void delBlock(Player player, PlayerInteractEvent event) { - if (!Clients().Get(player).Rank().Has(Rank.ADMIN, false)) - return; - event.setCancelled(true); FieldOreData ore = Get(event.getPlayer().getTargetBlock(null, 0).getLocation()); @@ -236,7 +161,7 @@ public class FieldOre extends AModule return; } - GetRepository().DeleteFieldOre(_serverName, UtilWorld.locToStr(event.getClickedBlock().getLocation())); + _repository.deleteFieldOre(_serverName, UtilWorld.locToStr(event.getClickedBlock().getLocation())); ore.GetLocation().getBlock().setType(Material.STONE); @@ -320,7 +245,7 @@ public class FieldOre extends AModule { clean(); - for (FieldOreToken token : GetRepository().GetFieldOres(_serverName)) + for (FieldOreToken token : _repository.getFieldOres(_serverName)) { Location loc = UtilWorld.strToLoc(token.Location); @@ -337,4 +262,9 @@ public class FieldOre extends AModule _oreActive.clear(); _oreLocations.clear(); } + + public HashSet getActivePlayers() + { + return _active; + } } diff --git a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldOreData.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldOreData.java similarity index 100% rename from Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldOreData.java rename to Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/FieldOreData.java diff --git a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/Monsters/FieldMonsterBase.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/Monsters/FieldMonsterBase.java similarity index 93% rename from Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/Monsters/FieldMonsterBase.java rename to Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/Monsters/FieldMonsterBase.java index 766fc4c5d..3ec4965ba 100644 --- a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/Monsters/FieldMonsterBase.java +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/Monsters/FieldMonsterBase.java @@ -6,6 +6,7 @@ import java.util.HashSet; import me.chiss.Core.Field.FieldMonster; import me.chiss.Core.Field.UtilField; +import me.chiss.Core.Field.repository.FieldMonsterToken; import mineplex.core.updater.event.UpdateEvent; import mineplex.core.updater.UpdateType; import mineplex.core.common.util.F; @@ -14,13 +15,12 @@ import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilTime; import mineplex.core.common.util.UtilWorld; -import nautilus.minecraft.core.webserver.token.Server.FieldMonsterToken; -import net.minecraft.server.v1_6_R3.EntityCreature; -import net.minecraft.server.v1_6_R3.Navigation; +import net.minecraft.server.v1_7_R4.EntityCreature; +import net.minecraft.server.v1_7_R4.Navigation; import org.bukkit.Location; import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_6_R3.entity.CraftCreature; +import org.bukkit.craftbukkit.v1_7_R4.entity.CraftCreature; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; @@ -84,7 +84,7 @@ public class FieldMonsterBase implements Listener _mobLast = System.currentTimeMillis(); - Entity ent = Manager.Creature().SpawnEntity(SelectLocation(), _type); + Entity ent = Manager.getCreature().SpawnEntity(SelectLocation(), _type); _mobs.put(ent, 0); } diff --git a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/UtilField.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/UtilField.java similarity index 100% rename from Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/UtilField.java rename to Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/UtilField.java diff --git a/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/commands/FieldBlockCommand.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/commands/FieldBlockCommand.java new file mode 100644 index 000000000..1b3fdbfff --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/commands/FieldBlockCommand.java @@ -0,0 +1,145 @@ +package me.chiss.Core.Field.commands; + +import org.bukkit.entity.Player; + +import me.chiss.Core.Field.FieldBlock; +import mineplex.core.command.CommandBase; +import mineplex.core.common.Rank; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilPlayer; + +public class FieldBlockCommand extends CommandBase +{ + public FieldBlockCommand(FieldBlock plugin) + { + super(plugin, Rank.ADMIN, "fb"); + } + + @Override + public void Execute(Player caller, String[] args) + { + if (args[0].equalsIgnoreCase("toggle")) + { + if (!Plugin.getActive().remove(caller.getName())) + Plugin.getActive().add(caller.getName()); + + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Interact Active: " + F.tf(Plugin.getActive().contains(caller.getName())))); + } + + else if (args[0].equalsIgnoreCase("load")) + { + Plugin.load(); + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Reloaded Field Blocks from Database.")); + } + + else if (args[0].equalsIgnoreCase("wipe")) + { + Plugin.wipe(caller); + } + + else if (args[0].equalsIgnoreCase("help")) + { + Plugin.help(caller); + } + + else if (args.length <= 1) + { + Plugin.help(caller); + } + + else if (args[0].equalsIgnoreCase("title")) + { + Plugin.getTitle().put(caller, args[1]); + Plugin.showSettings(caller); + } + + else if (args[0].equalsIgnoreCase("stock")) + { + try + { + int count = Integer.parseInt(args[1]); + if (count < 1) count = 1; + Plugin.getStock().put(caller, count); + Plugin.showSettings(caller); + } + catch (Exception e) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Invalid Stock Max.")); + } + } + + else if (args[0].equalsIgnoreCase("regen")) + { + try + { + double regen = Double.parseDouble(args[1]); + if (regen < 0) regen = 0; + Plugin.getRegen().put(caller, UtilMath.trim(1, regen)); + Plugin.showSettings(caller); + } + catch (Exception e) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Invalid Stock Regeneration Time.")); + } + } + + else if (args[0].equalsIgnoreCase("empty")) + { + try + { + String[] toks = args[1].split(":"); + + int id = Integer.parseInt(toks[0]); + byte data = Byte.parseByte(toks[1]); + + Plugin.getEmptyId().put(caller, id); + Plugin.getEmptyData().put(caller, data); + Plugin.showSettings(caller); + } + catch (Exception e) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Invalid Empty Block.")); + } + } + + + else if (args[0].equalsIgnoreCase("loot")) + { + boolean error = false; + for (String cur : args[1].split(",")) + { + String[] loot = cur.split(":"); + + if (loot.length != 5) + { + error = true; + break; + } + + try + { + Integer.parseInt(loot[0]); + Byte.parseByte(loot[1]); + Integer.parseInt(loot[2]); + Integer.parseInt(loot[3]); + Integer.parseInt(loot[4]); + } + catch (Exception e) + { + error = true; + break; + } + } + + if (error) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Invalid Loot String.")); + return; + } + + Plugin.getLootString().put(caller, args[1]); + Plugin.showSettings(caller); + } + } +} diff --git a/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/commands/FieldMonsterCommand.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/commands/FieldMonsterCommand.java new file mode 100644 index 000000000..c313ebd79 --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/commands/FieldMonsterCommand.java @@ -0,0 +1,170 @@ +package me.chiss.Core.Field.commands; + +import org.bukkit.entity.Player; + +import me.chiss.Core.Field.FieldMonster; +import me.chiss.Core.Field.FieldMonsterInput; +import me.chiss.Core.Field.Monsters.FieldMonsterBase; +import mineplex.core.command.CommandBase; +import mineplex.core.common.Rank; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilEnt; +import mineplex.core.common.util.UtilPlayer; + +public class FieldMonsterCommand extends CommandBase +{ + public FieldMonsterCommand(FieldMonster plugin) + { + super(plugin, Rank.ADMIN, "fm"); + } + + @Override + public void Execute(Player caller, String[] args) + { + if (!Plugin.getInput().containsKey(caller)) + Plugin.getInput().put(caller, new FieldMonsterInput()); + + FieldMonsterInput input = Plugin.getInput().get(caller); + + if (args.length == 0) + { + Plugin.getInput().get(caller).Display(caller); + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Type " + F.elem("/fm help") + " for commands.")); + } + + else if (args[0].equalsIgnoreCase("help")) + { + Plugin.Help(caller); + } + + else if (args[0].equalsIgnoreCase("type")) + { + try + { + input.type = UtilEnt.searchEntity(caller, args[1], true); + if (input.type != null) + input.Display(caller); + } + catch (Exception e) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Invalid Monster Type.")); + } + } + + else if (args[0].equalsIgnoreCase("max")) + { + try + { + int value = Integer.parseInt(args[1]); + if (value < 1) value = 1; + input.mobMax = value; + input.Display(caller); + } + catch (Exception e) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Invalid Monster Max.")); + } + } + + else if (args[0].equalsIgnoreCase("rate")) + { + try + { + double value = Double.parseDouble(args[1]); + if (value < 0) value = 0; + input.mobRate = value; + input.Display(caller); + } + catch (Exception e) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Invalid Monster Rate.")); + } + } + + else if (args[0].equalsIgnoreCase("radius")) + { + try + { + int integer = Integer.parseInt(args[1]); + if (integer < 1) integer = 1; + input.radius = integer; + input.Display(caller); + } + catch (Exception e) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Invalid Area Radius.")); + } + } + + else if (args[0].equalsIgnoreCase("height")) + { + try + { + int integer = Integer.parseInt(args[1]); + if (integer < 1) integer = 1; + input.height = integer; + input.Display(caller); + } + catch (Exception e) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Invalid Area Height.")); + } + } + + else if (args[0].equalsIgnoreCase("create")) + { + if (args.length < 2) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Missing Monster Field Name.")); + } + else + { + Plugin.Create(caller, args[1]); + } + } + + else if (args[0].equalsIgnoreCase("delete")) + { + if (args.length < 2) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Missing Monster Field Name.")); + } + else + { + Plugin.Delete(caller, args[1]); + } + } + + else if (args[0].equalsIgnoreCase("list")) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Listing Monster Fields;")); + + for (FieldMonsterBase pit : Plugin.getPits()) + pit.Display(caller); + } + + else if (args[0].equalsIgnoreCase("info")) + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Listing Monster Fields;")); + + for (FieldMonsterBase pit : Plugin.getPits()) + pit.Display(caller); + } + + else if (args[0].equalsIgnoreCase("wipe")) + { + Plugin.Wipe(caller, true); + } + + else if (args[0].equalsIgnoreCase("kill")) + { + for (FieldMonsterBase pit : Plugin.getPits()) + pit.RemoveMonsters(); + } + + else + { + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Invalid Command.")); + } + } +} diff --git a/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/commands/FieldOreCommand.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/commands/FieldOreCommand.java new file mode 100644 index 000000000..9a129fa97 --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/commands/FieldOreCommand.java @@ -0,0 +1,60 @@ +package me.chiss.Core.Field.commands; + +import org.bukkit.entity.Player; + +import me.chiss.Core.Field.FieldOre; +import mineplex.core.command.CommandBase; +import mineplex.core.common.Rank; +import mineplex.core.common.util.F; +import mineplex.core.common.util.UtilPlayer; + +public class FieldOreCommand extends CommandBase +{ + public FieldOreCommand(FieldOre plugin) + { + super(plugin, Rank.ADMIN, "fo"); + } + + @Override + public void Execute(Player caller, String[] args) + { + if (args.length == 0) + { + Plugin.help(caller); + return; + } + + if (args[0].equalsIgnoreCase("toggle")) + { + if (!Plugin.getActivePlayers().remove(caller.getName())) + Plugin.getActivePlayers().add(caller.getName()); + + UtilPlayer.message(caller, F.main(Plugin.GetName(), "Interact Active: " + F.tf(Plugin.getActivePlayers().contains(caller.getName())))); + } + + else if (args[0].equalsIgnoreCase("help")) + { + Plugin.help(caller); + } + + else if (args[0].equalsIgnoreCase("reset")) + { + Plugin.reset(caller); + } + + else if (args[0].equalsIgnoreCase("fill")) + { + Plugin.fill(caller); + } + + else if (args[0].equalsIgnoreCase("list")) + { + Plugin.list(caller); + } + + else if (args[0].equalsIgnoreCase("wipe")) + { + Plugin.wipe(caller); + } + } +} diff --git a/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/repository/FieldBlockToken.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/repository/FieldBlockToken.java new file mode 100644 index 000000000..5e14a9575 --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/repository/FieldBlockToken.java @@ -0,0 +1,14 @@ +package me.chiss.Core.Field.repository; + +public class FieldBlockToken +{ + public String Server; + public String Location; + public int BlockId; + public byte BlockData; + public int EmptyId; + public byte EmptyData; + public int StockMax; + public double StockRegenTime; + public String Loot; +} diff --git a/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/repository/FieldMonsterToken.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/repository/FieldMonsterToken.java new file mode 100644 index 000000000..4af6f408a --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/repository/FieldMonsterToken.java @@ -0,0 +1,13 @@ +package me.chiss.Core.Field.repository; + +public class FieldMonsterToken +{ + public String Name; + public String Server; + public String Type; + public int MobMax; + public double MobRate; + public String Centre; + public int Radius; + public int Height; +} diff --git a/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/repository/FieldOreToken.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/repository/FieldOreToken.java new file mode 100644 index 000000000..ca8724762 --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/repository/FieldOreToken.java @@ -0,0 +1,7 @@ +package me.chiss.Core.Field.repository; + +public class FieldOreToken +{ + public String Server; + public String Location; +} diff --git a/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/repository/FieldRepository.java b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/repository/FieldRepository.java new file mode 100644 index 000000000..55d8e538f --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/src/me/chiss/Core/Field/repository/FieldRepository.java @@ -0,0 +1,182 @@ +package me.chiss.Core.Field.repository; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.plugin.java.JavaPlugin; + +import mineplex.core.database.RepositoryBase; +import mineplex.core.database.ResultSetCallable; +import mineplex.core.database.column.ColumnByte; +import mineplex.core.database.column.ColumnDouble; +import mineplex.core.database.column.ColumnInt; +import mineplex.core.database.column.ColumnVarChar; + +public class FieldRepository extends RepositoryBase +{ + private static String CREATE_FIELD_BLOCK_TABLE = "CREATE TABLE IF NOT EXISTS fieldBlock (id INT NOT NULL AUTO_INCREMENT, server VARCHAR(100), location VARCHAR(100), blockId INT, blockData TINYINT, emptyId INT, emptyData TINYINT, stockMax INT, stockRegenTime DOUBLE, loot VARCHAR(100) PRIMARY KEY (id), INDEX serverLocation (server, location));"; + private static String CREATE_FIELD_ORE_TABLE = "CREATE TABLE IF NOT EXISTS fieldOre (id INT NOT NULL AUTO_INCREMENT, server VARCHAR(100), location VARCHAR(100), PRIMARY KEY (id), INDEX serverLocation (server, location));"; + private static String CREATE_FIELD_MONSTER_TABLE = "CREATE TABLE IF NOT EXISTS fieldMonster (id INT NOT NULL AUTO_INCREMENT, server VARCHAR(100), name VARCHAR(100), type VARCHAR(100), mobMax INT, mobRate DOUBLE, center VARCHAR(100), radius INT, height INT PRIMARY KEY (id), INDEX serverName (server, name));"; + private static String RETRIEVE_FIELD_BLOCKS = "SELECT server, location, blockId, blockData, emptyId, emptyData, stockMax, stockRegen, loot FROM fieldBlock WHERE server = ?;"; + private static String ADD_FIELD_BLOCK = "INSERT INTO fieldBlock (server, location, blockId, blockData, emptyId, emptyData, stockMax, stockRegen, loot) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);"; + private static String DEL_FIELD_BLOCK = "DELETE FROM fieldBlock WHERE server = ? AND location = ?;"; + private static String RETRIEVE_FIELD_ORES = "SELECT server, location FROM fieldOre WHERE server = ?;"; + private static String ADD_FIELD_ORE = "INSERT INTO fieldBlock (server, location) VALUES (?, ?);"; + private static String DEL_FIELD_ORE = "DELETE FROM fieldOre WHERE server = ? AND location = ?;"; + private static String RETRIEVE_FIELD_MONSTERS = "SELECT server, name, type, mobMax, mobRate, center, radius, height FROM fieldMonster WHERE server = ?;"; + private static String ADD_FIELD_MONSTER = "INSERT INTO fieldBlock (server, name, type, mobMax, mobRate, center, radius, height) VALUES (?, ?, ?, ?, ?, ?, ?, ?);"; + private static String DEL_FIELD_MONSTER = "DELETE FROM fieldBlock WHERE server = ? AND name = ?;"; + + public FieldRepository(JavaPlugin plugin) + { + super(plugin, "jdbc:mysql://db.mineplex.com:3306/Account?autoReconnect=true&failOverReadOnly=false&maxReconnects=10", "root", "tAbechAk3wR7tuTh"); + } + + public List getFieldBlocks(String server) + { + final List fieldBlocks = new ArrayList(); + + this.executeQuery(RETRIEVE_FIELD_BLOCKS, new ResultSetCallable() + { + @Override + public void processResultSet(ResultSet resultSet) throws SQLException + { + while (resultSet.next()) + { + FieldBlockToken token = new FieldBlockToken(); + token.Server = resultSet.getString(1); + token.Location = resultSet.getString(2); + token.BlockId = resultSet.getInt(3); + token.BlockData = resultSet.getByte(4); + token.EmptyId = resultSet.getInt(5); + token.EmptyData = resultSet.getByte(6); + token.StockMax = resultSet.getInt(7); + token.StockRegenTime = resultSet.getLong(8); + token.Loot = resultSet.getString(9); + + fieldBlocks.add(token); + } + } + }, new ColumnVarChar("server", 100, server)); + + return fieldBlocks; + } + + public void addFieldBlock(FieldBlockToken token) + { + executeUpdate(ADD_FIELD_BLOCK, + new ColumnVarChar("server", 100, token.Server), + new ColumnVarChar("location", 100, token.Location), + new ColumnInt("blockId", token.BlockId), + new ColumnByte("blockData", token.BlockData), + new ColumnInt("emptyId", token.EmptyId), + new ColumnByte("emptyData", token.EmptyData), + new ColumnInt("stockMax", token.StockMax), + new ColumnDouble("stockRegen", token.StockRegenTime), + new ColumnVarChar("loot", 100, token.Loot) + ); + } + + public void deleteFieldBlock(String server, String location) + { + executeUpdate(DEL_FIELD_BLOCK, new ColumnVarChar("server", 100, server), new ColumnVarChar("location", 100, location)); + } + + public List getFieldOres(String server) + { + final List fieldOres = new ArrayList(); + + this.executeQuery(RETRIEVE_FIELD_ORES, new ResultSetCallable() + { + @Override + public void processResultSet(ResultSet resultSet) throws SQLException + { + while (resultSet.next()) + { + FieldOreToken token = new FieldOreToken(); + token.Server = resultSet.getString(1); + token.Location = resultSet.getString(2); + + fieldOres.add(token); + } + } + }, new ColumnVarChar("server", 100, server)); + + return fieldOres; + } + + public void addFieldOre(FieldOreToken token) + { + executeUpdate(ADD_FIELD_ORE, + new ColumnVarChar("server", 100, token.Server), + new ColumnVarChar("location", 100, token.Location) + ); + } + + public void deleteFieldOre(String server, String location) + { + executeUpdate(DEL_FIELD_ORE, new ColumnVarChar("server", 100, server), new ColumnVarChar("location", 100, location)); + } + + public List getFieldMonsters(String server) + { + List fieldMonsters = new ArrayList(); + + this.executeQuery(RETRIEVE_FIELD_MONSTERS, new ResultSetCallable() + { + @Override + public void processResultSet(ResultSet resultSet) throws SQLException + { + while (resultSet.next()) + { + FieldMonsterToken token = new FieldMonsterToken(); + token.Name = resultSet.getString(1); + token.Server = resultSet.getString(2); + token.Type = resultSet.getString(3); + token.MobMax = resultSet.getInt(4); + token.MobRate = resultSet.getDouble(5); + token.Centre = resultSet.getString(6); + token.Radius = resultSet.getInt(7); + token.Height = resultSet.getInt(8); + } + } + }, new ColumnVarChar("server", 100, server)); + + return fieldMonsters; + } + + public void addFieldMonster(FieldMonsterToken token) + { + executeUpdate(ADD_FIELD_MONSTER, + new ColumnVarChar("server", 100, token.Server), + new ColumnVarChar("name", 100, token.Name), + new ColumnVarChar("blockId", 100, token.Type), + new ColumnInt("mobMax", token.MobMax), + new ColumnDouble("mobRate", token.MobRate), + new ColumnVarChar("center", 100, token.Centre), + new ColumnInt("redius", token.Radius), + new ColumnInt("height", token.Height) + ); + } + + public void deleteFieldMonster(String server, String name) + { + executeUpdate(DEL_FIELD_MONSTER, new ColumnVarChar("server", 100, server), new ColumnVarChar("name", 100, name)); + } + + @Override + protected void initialize() + { + executeUpdate(CREATE_FIELD_BLOCK_TABLE); + executeUpdate(CREATE_FIELD_ORE_TABLE); + executeUpdate(CREATE_FIELD_MONSTER_TABLE); + } + + @Override + protected void update() + { + } + +} diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java new file mode 100644 index 000000000..0a580d70d --- /dev/null +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java @@ -0,0 +1,147 @@ +package mineplex.game.clans; + +import java.io.File; + +import mineplex.core.CustomTagFix; +import mineplex.core.account.CoreClientManager; +import mineplex.core.antihack.AntiHack; +import mineplex.core.antistack.AntiStack; +import mineplex.core.blockrestore.BlockRestore; +import mineplex.core.command.CommandCenter; +import mineplex.core.common.util.FileUtil; +import mineplex.core.cosmetic.CosmeticManager; +import mineplex.core.creature.Creature; +import mineplex.core.disguise.DisguiseManager; +import mineplex.core.donation.DonationManager; +import mineplex.core.friend.FriendManager; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.inventory.InventoryManager; +import mineplex.core.itemstack.ItemStackFactory; +import mineplex.core.logger.Logger; +import mineplex.core.memory.MemoryFix; +import mineplex.core.message.MessageManager; +import mineplex.core.monitor.LagMeter; +import mineplex.core.mount.MountManager; +import mineplex.core.npc.NpcManager; +import mineplex.core.packethandler.PacketHandler; +import mineplex.core.pet.PetManager; +import mineplex.core.portal.Portal; +import mineplex.core.preferences.PreferencesManager; +import mineplex.core.projectile.ProjectileManager; +import mineplex.core.punish.Punish; +import mineplex.core.recharge.Recharge; +import mineplex.core.serverConfig.ServerConfiguration; +import mineplex.core.spawn.Spawn; +import mineplex.core.status.ServerStatusManager; +import mineplex.core.teleport.Teleport; +import mineplex.core.updater.FileUpdater; +import mineplex.core.updater.Updater; +import mineplex.minecraft.game.core.combat.CombatManager; +import mineplex.minecraft.game.core.damage.DamageManager; +import net.minecraft.server.v1_7_R4.MinecraftServer; + +import org.bukkit.plugin.java.JavaPlugin; + +public class Clans extends JavaPlugin +{ + private String WEB_CONFIG = "webServer"; + + //Modules + private CoreClientManager _clientManager; + private DonationManager _donationManager; + private DamageManager _damageManager; + + private ServerConfiguration _serverConfiguration; + + @Override + public void onEnable() + { + //Delete Old Games Folders + DeleteFolders(); + + //Configs + getConfig().addDefault(WEB_CONFIG, "http://accounts.mineplex.com/"); + getConfig().set(WEB_CONFIG, getConfig().getString(WEB_CONFIG)); + saveConfig(); + + String webServerAddress = getConfig().getString(WEB_CONFIG); + + Logger.initialize(this); + + //Static Modules + CommandCenter.Initialize(this); + _clientManager = new CoreClientManager(this, webServerAddress); + CommandCenter.Instance.setClientManager(_clientManager); + + ItemStackFactory.Initialize(this, false); + Recharge.Initialize(this); + + _donationManager = new DonationManager(this, webServerAddress); + + _serverConfiguration = new ServerConfiguration(this); + + PreferencesManager preferenceManager = new PreferencesManager(this, _clientManager, _donationManager); + new MessageManager(this, _clientManager, preferenceManager); + + AntiStack antistack = new AntiStack(this); + Creature creature = new Creature(this); + Spawn spawn = new Spawn(this); + Teleport teleport = new Teleport(this, _clientManager, spawn); + ServerStatusManager serverStatusManager = new ServerStatusManager(this, new LagMeter(this, _clientManager)); + Portal portal = new Portal(this, serverStatusManager.getCurrentServerName()); + new FileUpdater(this, portal); + PacketHandler packetHandler = new PacketHandler(this); + + DisguiseManager disguiseManager = new DisguiseManager(this, packetHandler); + + _damageManager = new DamageManager(this, new CombatManager(this), new NpcManager(this, creature), disguiseManager); + + Punish punish = new Punish(this, webServerAddress, _clientManager); + AntiHack.Initialize(this, punish, portal, preferenceManager, _clientManager); + AntiHack.Instance.setKick(false); + + BlockRestore blockRestore = new BlockRestore(this); + + ProjectileManager projectileManager = new ProjectileManager(this); + + //Inventory + InventoryManager inventoryManager = new InventoryManager(this); + PetManager petManager = new PetManager(this, _clientManager, _donationManager, creature, webServerAddress); + MountManager mountManager = new MountManager(this, _clientManager, _donationManager, blockRestore, disguiseManager); + GadgetManager gadgetManager = new GadgetManager(this, _clientManager, _donationManager, inventoryManager, mountManager, petManager, preferenceManager, disguiseManager, blockRestore, projectileManager); + CosmeticManager cosmeticManager = new CosmeticManager(this, _clientManager, _donationManager, inventoryManager, gadgetManager, mountManager, petManager, true); + cosmeticManager.setInterfaceSlot(7); + + new MemoryFix(this); + new CustomTagFix(this, packetHandler); + + new FriendManager(this, _clientManager, preferenceManager); + + //Updates + getServer().getScheduler().scheduleSyncRepeatingTask(this, new Updater(this), 1, 1); + + MinecraftServer.getServer().getPropertyManager().setProperty("debug", true); + } + + private void DeleteFolders() + { + File curDir = new File("."); + + File[] filesList = curDir.listFiles(); + for(File file : filesList) + { + if (!file.isDirectory()) + continue; + + if (file.getName().length() < 4) + continue; + + if (!file.getName().substring(0, 4).equalsIgnoreCase("Game")) + continue; + + FileUtil.DeleteFolder(file); + + System.out.println("Deleted Old Game: " + file.getName()); + } + } +} diff --git a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/Field.java b/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/Field.java deleted file mode 100644 index 8a1fb481c..000000000 --- a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/Field.java +++ /dev/null @@ -1,69 +0,0 @@ -package me.chiss.Core.Field; - - -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -import me.chiss.Core.Module.AModule; -import mineplex.core.server.IRepository; - -public class Field extends AModule -{ - private FieldBlock _block; - private FieldOre _ore; - private FieldMonster _mob; - - public Field(JavaPlugin plugin, IRepository repository, String serverName) - { - super("Field Factory", plugin, repository); - - _block = new FieldBlock(plugin, repository, serverName); - _ore = new FieldOre(plugin, repository, serverName); - _mob = new FieldMonster(plugin, repository, serverName); - } - - @Override - public void enable() - { - - } - - @Override - public void disable() - { - - } - - @Override - public void config() - { - - } - - @Override - public void commands() - { - - } - - @Override - public void command(Player caller, String cmd, String[] args) - { - - } - - public FieldBlock GetBlock() - { - return _block; - } - - public FieldOre GetOre() - { - return _ore; - } - - public FieldMonster GetMonster() - { - return _mob; - } -} diff --git a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldMonster.java b/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldMonster.java deleted file mode 100644 index 9f9dc5886..000000000 --- a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/FieldMonster.java +++ /dev/null @@ -1,332 +0,0 @@ -package me.chiss.Core.Field; - -import java.util.HashSet; -import java.util.WeakHashMap; - -import nautilus.minecraft.core.webserver.token.Server.FieldMonsterToken; - -import org.bukkit.Location; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.event.HandlerList; -import org.bukkit.plugin.java.JavaPlugin; - -import mineplex.core.server.IRepository; -import mineplex.core.common.Rank; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilEnt; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.common.util.UtilServer; -import mineplex.core.common.util.UtilWorld; -import me.chiss.Core.Field.Monsters.FieldMonsterBase; -import me.chiss.Core.Module.AModule; - -public class FieldMonster extends AModule -{ - private HashSet _pits; - private String _serverName; - - private WeakHashMap _input = new WeakHashMap(); - - public FieldMonster(JavaPlugin plugin, IRepository repository, String serverName) - { - super("Field Monster", plugin, repository); - - _pits = new HashSet(); - _serverName = serverName; - - Load(); - } - - @Override - public void enable() - { - - } - - @Override - public void disable() - { - Clean(); - } - - @Override - public void config() - { - - } - - @Override - public void commands() - { - AddCommand("fm"); - } - - @Override - public void command(Player caller, String cmd, String[] args) - { - if (!Clients().Get(caller).Rank().Has(Rank.ADMIN, true)) - return; - - if (!_input.containsKey(caller)) - _input.put(caller, new FieldMonsterInput()); - - FieldMonsterInput input = _input.get(caller); - - if (args.length == 0) - { - _input.get(caller).Display(caller); - UtilPlayer.message(caller, F.main(_moduleName, "Type " + F.elem("/fm help") + " for commands.")); - } - - else if (args[0].equalsIgnoreCase("help")) - { - Help(caller); - } - - else if (args[0].equalsIgnoreCase("type")) - { - try - { - input.type = UtilEnt.searchEntity(caller, args[1], true); - if (input.type != null) - input.Display(caller); - } - catch (Exception e) - { - UtilPlayer.message(caller, F.main(_moduleName, "Invalid Monster Type.")); - } - } - - else if (args[0].equalsIgnoreCase("max")) - { - try - { - int value = Integer.parseInt(args[1]); - if (value < 1) value = 1; - input.mobMax = value; - input.Display(caller); - } - catch (Exception e) - { - UtilPlayer.message(caller, F.main(_moduleName, "Invalid Monster Max.")); - } - } - - else if (args[0].equalsIgnoreCase("rate")) - { - try - { - double value = Double.parseDouble(args[1]); - if (value < 0) value = 0; - input.mobRate = value; - input.Display(caller); - } - catch (Exception e) - { - UtilPlayer.message(caller, F.main(_moduleName, "Invalid Monster Rate.")); - } - } - - else if (args[0].equalsIgnoreCase("radius")) - { - try - { - int integer = Integer.parseInt(args[1]); - if (integer < 1) integer = 1; - input.radius = integer; - input.Display(caller); - } - catch (Exception e) - { - UtilPlayer.message(caller, F.main(_moduleName, "Invalid Area Radius.")); - } - } - - else if (args[0].equalsIgnoreCase("height")) - { - try - { - int integer = Integer.parseInt(args[1]); - if (integer < 1) integer = 1; - input.height = integer; - input.Display(caller); - } - catch (Exception e) - { - UtilPlayer.message(caller, F.main(_moduleName, "Invalid Area Height.")); - } - } - - else if (args[0].equalsIgnoreCase("create")) - { - if (args.length < 2) - { - UtilPlayer.message(caller, F.main(_moduleName, "Missing Monster Field Name.")); - } - else - { - Create(caller, args[1]); - } - } - - else if (args[0].equalsIgnoreCase("delete")) - { - if (args.length < 2) - { - UtilPlayer.message(caller, F.main(_moduleName, "Missing Monster Field Name.")); - } - else - { - Delete(caller, args[1]); - } - } - - else if (args[0].equalsIgnoreCase("list")) - { - UtilPlayer.message(caller, F.main(_moduleName, "Listing Monster Fields;")); - - for (FieldMonsterBase pit : _pits) - pit.Display(caller); - } - - else if (args[0].equalsIgnoreCase("info")) - { - UtilPlayer.message(caller, F.main(GetName(), "Listing Monster Fields;")); - - for (FieldMonsterBase pit : _pits) - pit.Display(caller); - } - - else if (args[0].equalsIgnoreCase("wipe")) - { - Wipe(caller, true); - } - - else if (args[0].equalsIgnoreCase("kill")) - { - for (FieldMonsterBase pit : _pits) - pit.RemoveMonsters(); - } - - else - { - UtilPlayer.message(caller, F.main(GetName(), "Invalid Command.")); - } - } - - private void Help(Player caller) - { - UtilPlayer.message(caller, F.main(GetName(), "Commands List;")); - UtilPlayer.message(caller, F.help("/fm type ", "Set Monster Type", Rank.ADMIN)); - UtilPlayer.message(caller, F.help("/fm max <#>", "Set Monster Limit", Rank.ADMIN)); - UtilPlayer.message(caller, F.help("/fm rate ", "Set Monster Rate", Rank.ADMIN)); - UtilPlayer.message(caller, F.help("/fm radius <#>", "Set Area Radius", Rank.ADMIN)); - UtilPlayer.message(caller, F.help("/fm height <#>", "Set Area Height", Rank.ADMIN)); - UtilPlayer.message(caller, F.help("/fm create ", "Create at your Location", Rank.ADMIN)); - UtilPlayer.message(caller, F.help("/fm delete ", "Delete Field", Rank.ADMIN)); - UtilPlayer.message(caller, F.help("/fm list", "List Monster Fields", Rank.ADMIN)); - UtilPlayer.message(caller, F.help("/fm info ", "Display Monster Field", Rank.ADMIN)); - UtilPlayer.message(caller, F.help("/fm kill", "Kills all Field Monsters", Rank.ADMIN)); - UtilPlayer.message(caller, F.help("/fm wipe", "Delete All Monster Field (Database)", Rank.ADMIN)); - } - - private void Create(Player caller, String name) - { - FieldMonsterInput input = _input.get(caller); - - if (input.type == null) - { - UtilPlayer.message(caller, F.main(GetName(), "You have not set Monster Type.")); - return; - } - - for (FieldMonsterBase pit : _pits) - { - if (name.equalsIgnoreCase(pit.GetName())) - { - UtilPlayer.message(caller, F.main(GetName(), "Monster Field with this name already exists.")); - return; - } - } - - FieldMonsterBase pit = new FieldMonsterBase(this, name, _serverName, input.type, input.mobMax, input.mobRate, caller.getLocation(), input.radius, input.height); - Add(pit, true); - - UtilPlayer.message(caller, F.main(GetName(), "You created Monster Field.")); - pit.Display(caller); - } - - private void Add(FieldMonsterBase pit, boolean repo) - { - UtilServer.getServer().getPluginManager().registerEvents(pit, Plugin()); - _pits.add(pit); - - if (repo) - GetRepository().AddFieldMonster(pit.GetToken()); - } - - private void Delete(Player caller, String name) - { - HashSet remove = new HashSet(); - - for (FieldMonsterBase pit : _pits) - if (pit.GetName().equalsIgnoreCase(name)) - remove.add(pit); - - int i = remove.size(); - - for (FieldMonsterBase pit : remove) - Delete(pit, true); - - UtilPlayer.message(caller, F.main(GetName(), "Deleted " + i + " Monster Field(s).")); - } - - private void Delete(FieldMonsterBase pit, boolean repo) - { - _pits.remove(pit); - pit.RemoveMonsters(); - HandlerList.unregisterAll(pit); - - if (repo) - GetRepository().DeleteFieldMonster(_serverName, pit.GetToken().Name); - } - - private void Wipe(Player player, boolean repo) - { - HashSet remove = new HashSet(); - - for (FieldMonsterBase pit : _pits) - remove.add(pit); - - _pits.clear(); - - for (FieldMonsterBase pit : remove) - Delete(pit, repo); - - UtilPlayer.message(player, F.main(_moduleName, "Field Monsters Wiped.")); - } - - private void Load() - { - Wipe(null, false); - - for (FieldMonsterToken token : GetRepository().GetFieldMonsters(_serverName)) - { - EntityType type = UtilEnt.searchEntity(null, token.Type, false); - if (type == null) continue; - - Location loc = UtilWorld.strToLoc(token.Centre); - if (loc == null) continue; - - FieldMonsterBase pit = new FieldMonsterBase(this, token.Name, _serverName, type, token.MobMax, token.MobRate, loc, token.Radius, token.Height); - Add(pit, false); - } - } - - private void Clean() - { - for (FieldMonsterBase pit : _pits) - pit.RemoveMonsters(); - } -} diff --git a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/repository/FieldRepository.java b/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/repository/FieldRepository.java deleted file mode 100644 index 55722da6b..000000000 --- a/Plugins/Nautilus.Game.PvP/src/me/chiss/Core/Field/repository/FieldRepository.java +++ /dev/null @@ -1,72 +0,0 @@ -package me.chiss.Core.Field.repository; - -public class FieldRepository -{ - public List GetFieldBlocks(String server) - { - return new JsonWebCall(WebServerAddress + "Fields/GetFieldBlocks").Execute(new TypeToken>(){}.getType(), server); - } - - @Override - public void AddFieldBlock(FieldBlockToken token) - { - new AsyncJsonWebCall(WebServerAddress + "Fields/AddFieldBlock").Execute(token); - } - - @Override - public void DeleteFieldBlock(String server, String location) - { - FieldBlockToken token = new FieldBlockToken(); - token.Server = server; - token.Location = location; - - new AsyncJsonWebCall(WebServerAddress + "Fields/DeleteFieldBlock").Execute(token); - } - - //Field Ore - @Override - public List GetFieldOres(String server) - { - return new JsonWebCall(WebServerAddress + "Fields/GetFieldOres").Execute(new TypeToken>(){}.getType(), server); - } - - @Override - public void AddFieldOre(FieldOreToken token) - { - new AsyncJsonWebCall(WebServerAddress + "Fields/AddFieldOre").Execute(token); - } - - @Override - public void DeleteFieldOre(String server, String location) - { - FieldOreToken token = new FieldOreToken(); - token.Server = server; - token.Location = location; - - new AsyncJsonWebCall(WebServerAddress + "Fields/DeleteFieldOre").Execute(token); - } - - //Field Monster - @Override - public List GetFieldMonsters(String server) - { - return new JsonWebCall(WebServerAddress + "Fields/GetFieldMonsters").Execute(new TypeToken>(){}.getType(), server); - } - - @Override - public void AddFieldMonster(FieldMonsterToken token) - { - new AsyncJsonWebCall(WebServerAddress + "Fields/AddFieldMonster").Execute(token); - } - - @Override - public void DeleteFieldMonster(String server, String name) - { - FieldMonsterToken token = new FieldMonsterToken(); - token.Server = server; - token.Name = name; - - new AsyncJsonWebCall(WebServerAddress + "Fields/DeleteFieldMonster").Execute(token); - } - -} diff --git a/Website/LOCWebsite.suo b/Website/LOCWebsite.suo index 0f4dc2361..8a659d60e 100644 Binary files a/Website/LOCWebsite.suo and b/Website/LOCWebsite.suo differ