From 2d2e88e0698bfd9123bc923403d04a442b5d2040 Mon Sep 17 00:00:00 2001 From: Ben Date: Thu, 10 Mar 2016 02:47:48 +0000 Subject: [PATCH] some fixes and updates --- .../src/mineplex/game/clans/Recipes.java | 22 ++++++ .../clans/clans/commands/KillCommand.java | 6 ++ .../repository/SiegeWeaponRepository.java | 1 + .../clans/worldevent/EventTerrainFinder.java | 67 ++++--------------- .../items/legendaries/MeridianScepter.java | 2 +- .../game/clans/items/rares/RunedPickaxe.java | 12 +++- 6 files changed, 51 insertions(+), 59 deletions(-) diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Recipes.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Recipes.java index 05dc0d497..8615db3df 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Recipes.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Recipes.java @@ -144,6 +144,28 @@ public class Recipes extends MiniPlugin chainBoots2.setIngredient('S', Material.IRON_INGOT); UtilServer.getServer().addRecipe(chainBoots2); + + ShapedRecipe stonebrick = new ShapedRecipe(new ItemStack(Material.SMOOTH_BRICK, 1)); + stonebrick.shape("SS#", "SS#"); + stonebrick.setIngredient('S', Material.STONE); + UtilServer.getServer().addRecipe(stonebrick); + + stonebrick = new ShapedRecipe(new ItemStack(Material.SMOOTH_BRICK, 1)); + stonebrick.shape("#SS", "#SS"); + stonebrick.setIngredient('S', Material.STONE); + UtilServer.getServer().addRecipe(stonebrick); + + stonebrick = new ShapedRecipe(new ItemStack(Material.SMOOTH_BRICK, 1)); + stonebrick.shape("###", "SS#", "SS#"); + stonebrick.setIngredient('S', Material.STONE); + UtilServer.getServer().addRecipe(stonebrick); + + stonebrick = new ShapedRecipe(new ItemStack(Material.SMOOTH_BRICK, 1)); + stonebrick.shape("###", "#SS", "#SS"); + stonebrick.setIngredient('S', Material.STONE); + UtilServer.getServer().addRecipe(stonebrick); + + } @EventHandler(priority = EventPriority.LOW) diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/commands/KillCommand.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/commands/KillCommand.java index 258902f29..3a66f4910 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/commands/KillCommand.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/commands/KillCommand.java @@ -18,6 +18,12 @@ public class KillCommand extends CommandBase @Override public void Execute(Player caller, String[] args) { + if ((System.currentTimeMillis() - Plugin.GetCombatManager().Get(caller).GetLastDamaged()) >= 30000) + { + UtilPlayer.message(caller, F.main("Clans", "You cannot use this command whilst in combat.")); + return; + } + UtilPlayer.message(caller, F.main("Clans", "You have imploded.")); caller.setHealth(0D); diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/repository/SiegeWeaponRepository.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/repository/SiegeWeaponRepository.java index a7d0ab3cb..5e568fdaa 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/repository/SiegeWeaponRepository.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/repository/SiegeWeaponRepository.java @@ -140,6 +140,7 @@ public class SiegeWeaponRepository extends MinecraftRepository protected void initialize() { executeUpdate(CREATE); + executeUpdate("ALTER TABLE `Account`.`clans` ADD COLUMN `eloRating` INT(11) NOT NULL DEFAULT '1200' AFTER `generatorStock`;"); } @Override diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/EventTerrainFinder.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/EventTerrainFinder.java index ee7e6014d..b815e652b 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/EventTerrainFinder.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/EventTerrainFinder.java @@ -1,19 +1,17 @@ package mineplex.game.clans.clans.worldevent; -import java.util.Arrays; -import java.util.HashSet; import java.util.Set; +import org.bukkit.Chunk; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; +import mineplex.core.common.util.EnclosedObject; import mineplex.core.common.util.UtilBlock; -import mineplex.core.common.util.UtilItem; -import mineplex.core.common.util.UtilItem.ItemCategory; import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilWorld; import mineplex.game.clans.clans.ClansManager; import mineplex.game.clans.clans.regions.ClansRegions; @@ -38,65 +36,24 @@ public class EventTerrainFinder public Location findAreaInBorderlands(World world, int size, int vert) { - int borderlandsDist = 31; - int borderlandsWidth = 47 - borderlandsDist; - - for (int i = 0; i < 20; i++) + for (int i = 0; i < 150; i++) { - int x = 0; - int z = 0; + EnclosedObject loc = new EnclosedObject<>(); - x = (borderlandsDist * 16) + (UtilMath.clamp(UtilMath.random.nextInt(borderlandsWidth), 2, borderlandsWidth - 2) * 16); - z = (borderlandsDist * 16) + (UtilMath.clamp(UtilMath.random.nextInt(borderlandsWidth), 2, borderlandsWidth - 2) * 16); + _clansManager.getClanUtility().getClanByClanName("Borderlands").getClaimSet().stream().filter(claim -> Math.random() > .5).filter(claim -> Math.random() > .5).filter(claim -> Math.random() > .3).filter(claim -> Math.random() > .7).limit(1).forEach(claim -> { + Chunk chunk = UtilWorld.strToChunk(claim); + + loc.Set(UtilBlock.getHighest(chunk.getWorld(), chunk.getBlock(0, 0, 0)).getLocation()); + }); - if (UtilMath.random.nextBoolean()) - { - x = -x; - z = -z; - } - Location loc = UtilBlock.getHighest(world, x, z).getLocation(); - - int blocks = ((size * 2) + 1) * ((size * 2) + 1); - - boolean suitable = true; - - int liquids = 0; - for (x = -size; x < size; x++) - { - for (z = -size; z < size; z++) - { - Block topBlock = loc.getWorld().getBlockAt(loc.getBlockX() + x, UtilBlock.getHighest(loc.getWorld(), loc.getBlockX() + x, loc.getBlockZ() + z, new HashSet(UtilItem.listIn(ItemCategory.BOUNDLESS))).getY(), loc.getBlockZ()); - - if (255 - topBlock.getY() < size) - { - suitable = false; - continue; - } - - if (topBlock.isLiquid()) - { - liquids++; - } - } - } - - if (liquids > 1 && (((double) blocks)) / ((double) liquids) > 0.25) - { - System.out.println("water bad"); - suitable = false; - } - - // If this region is not suitable, try again. - if (!suitable) - { + if (loc.Get() == null) continue; - } System.out.println("Done finding area... [success]"); // Success - return loc; + return loc.Get(); } System.out.println("Done finding area..."); diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/items/legendaries/MeridianScepter.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/items/legendaries/MeridianScepter.java index 824ce5122..c4557b7de 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/items/legendaries/MeridianScepter.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/items/legendaries/MeridianScepter.java @@ -39,7 +39,7 @@ public class MeridianScepter extends LegendaryItem public MeridianScepter() { super("Meridian Scepter", UtilText.splitLinesToArray(new String[] { - C.cWhite + "Legend says " + C.cWhite + "Legend says that this scepter was found, and retrieved from the deepest trench in all of Minecraftia. It is said that the scepter gains it's magical powers from Poseidon himself." + " ", "#" + C.cYellow + "Right-Click" + C.cWhite + " to use Scepter." }, LineFormat.LORE), Material.RECORD_6); diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/items/rares/RunedPickaxe.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/items/rares/RunedPickaxe.java index 0185fee3b..990a21d3d 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/items/rares/RunedPickaxe.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/items/rares/RunedPickaxe.java @@ -16,6 +16,7 @@ import mineplex.core.common.util.UtilEvent; import mineplex.core.common.util.UtilEvent.ActionType; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilText; +import mineplex.core.common.util.UtilTextMiddle; import mineplex.core.common.util.UtilTime; import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; @@ -27,6 +28,7 @@ import mineplex.game.clans.items.PlayerGear; public class RunedPickaxe extends RareItem { private long _instamineEnabled; + private boolean _enabled; static { @@ -50,10 +52,12 @@ public class RunedPickaxe extends RareItem RunedPickaxe pick = (RunedPickaxe) gear.getWeapon(); - if ((System.currentTimeMillis() - pick._instamineEnabled) >= 12000 - && Recharge.Instance.usable(player, "Instant Mine")) + if (pick._enabled + && (System.currentTimeMillis() - pick._instamineEnabled) >= 12000) { Recharge.Instance.use(player, "Instant Mine", 15 * 1000, true, true); + + pick._enabled = false; } }); } @@ -106,9 +110,11 @@ public class RunedPickaxe extends RareItem return; } - if (Recharge.Instance.usable(event.getPlayer(), "Instant Mine", true) && (UtilTime.elapsed(_instamineEnabled, 12000))) + if (Recharge.Instance.usable(event.getPlayer(), "Instant Mine", true)) { + UtilTextMiddle.display("", "Instant mine enabled for " + F.elem("12 Seconds"), 20, 80, 20, event.getPlayer()); _instamineEnabled = System.currentTimeMillis(); + _enabled = true; } super.onInteract(event);