diff --git a/Art/Halloween Horror.jpg b/Art/Halloween Horror.jpg new file mode 100644 index 000000000..b82bc42a3 Binary files /dev/null and b/Art/Halloween Horror.jpg differ diff --git a/Art/Pumpkin.png b/Art/Pumpkin.png new file mode 100644 index 000000000..81ea7c47e Binary files /dev/null and b/Art/Pumpkin.png differ diff --git a/Art/Spooky Sale.png b/Art/Spooky Sale.png new file mode 100644 index 000000000..75ea457d6 Binary files /dev/null and b/Art/Spooky Sale.png differ diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java index 1693f642a..7494e9fa6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java @@ -36,6 +36,7 @@ import mineplex.core.gadget.gadgets.MorphEnderman; import mineplex.core.gadget.gadgets.MorphPig; import mineplex.core.gadget.gadgets.MorphPumpkinKing; import mineplex.core.gadget.gadgets.MorphSlime; +import mineplex.core.gadget.gadgets.MorphTitan; import mineplex.core.gadget.gadgets.MorphVillager; import mineplex.core.gadget.gadgets.MorphWither; import mineplex.core.gadget.gadgets.OutfitRaveSuit; @@ -51,6 +52,7 @@ import mineplex.core.gadget.gadgets.ParticleHeart; import mineplex.core.gadget.gadgets.ParticleHelix; import mineplex.core.gadget.gadgets.ParticleLegend; import mineplex.core.gadget.gadgets.ParticleRain; +import mineplex.core.gadget.gadgets.ParticleTitan; import mineplex.core.gadget.types.Gadget; import mineplex.core.gadget.types.GadgetType; import mineplex.core.gadget.types.ItemGadget; @@ -163,6 +165,7 @@ public class GadgetManager extends MiniPlugin addGadget(new MorphWither(this)); addGadget(new MorphBunny(this)); addGadget(new MorphSlime(this, _achievementManager)); + addGadget(new MorphTitan(this)); // Particles addGadget(new ParticleFoot(this)); @@ -175,6 +178,7 @@ public class GadgetManager extends MiniPlugin addGadget(new ParticleFairy(this)); addGadget(new ParticleLegend(this)); addGadget(new ParticleBlizzard(this)); + addGadget(new ParticleTitan(this)); //addGadget(new ParticleKronos(this)); // Music diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java new file mode 100644 index 000000000..864faf781 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/MorphTitan.java @@ -0,0 +1,35 @@ +package mineplex.core.gadget.gadgets; + +import org.bukkit.Material; +import org.bukkit.entity.Player; + +import mineplex.core.common.util.C; +import mineplex.core.gadget.GadgetManager; +import mineplex.core.gadget.types.MorphGadget; + +public class MorphTitan extends MorphGadget +{ + public MorphTitan(GadgetManager manager) + { + super(manager, "Titans Morph", new String[] + { + C.cWhite + "Coming Soon...", + " ", + C.cRed + "Unlocked with Titan Rank", + }, + -1, + Material.REDSTONE_BLOCK, (byte)0); + } + + @Override + public void EnableCustom(Player player) + { + + } + + @Override + public void DisableCustom(Player player) + { + + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ParticleTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ParticleTitan.java new file mode 100644 index 000000000..5b714143e --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/ParticleTitan.java @@ -0,0 +1,22 @@ +package mineplex.core.gadget.gadgets; + +import org.bukkit.Material; + +import mineplex.core.common.util.C; +import mineplex.core.gadget.types.ParticleGadget; +import mineplex.core.gadget.GadgetManager; + +public class ParticleTitan extends ParticleGadget +{ + public ParticleTitan(GadgetManager manager) + { + super(manager, "Titans Particle", new String[] + { + C.cWhite + "Coming Soon...", + " ", + C.cRed + "Unlocked with Titan Rank", + }, + -1, + Material.REDSTONE_BLOCK, (byte)0); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/MountManager.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/MountManager.java index 895fa4f27..78d19c59a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/mount/MountManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/MountManager.java @@ -18,6 +18,7 @@ import mineplex.core.mount.types.MountFrost; import mineplex.core.mount.types.MountMule; import mineplex.core.mount.types.MountSlime; import mineplex.core.mount.types.MountSpider; +import mineplex.core.mount.types.MountTitan; import mineplex.core.mount.types.MountUndead; import mineplex.core.mount.types.MountZombie; @@ -66,6 +67,7 @@ public class MountManager extends MiniPlugin _types.add(new MountCart(this)); _types.add(new MountSpider(this)); _types.add(new MountZombie(this)); + _types.add(new MountTitan(this)); //_types.add(new MountSheep(this)); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitan.java b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitan.java new file mode 100644 index 000000000..040acb5c4 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/mount/types/MountTitan.java @@ -0,0 +1,27 @@ +package mineplex.core.mount.types; + +import org.bukkit.Material; +import org.bukkit.entity.Horse.Color; +import org.bukkit.entity.Horse.Style; +import org.bukkit.entity.Horse.Variant; + +import mineplex.core.common.util.C; +import mineplex.core.mount.HorseMount; +import mineplex.core.mount.MountManager; + +public class MountTitan extends HorseMount +{ + public MountTitan(MountManager manager) + { + super(manager, "Titans Mount", new String[] + { + C.cWhite + "Coming Soon...", + " ", + C.cRed + "Unlocked with Titan Rank", + }, + Material.REDSTONE_BLOCK, + (byte)0, + -1, + Color.BLACK, Style.BLACK_DOTS, Variant.UNDEAD_HORSE, 0.8, null); + } +} diff --git a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/MapParser.java b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/MapParser.java index 622e7516c..e929d625d 100644 --- a/Plugins/Mineplex.MapParser/src/mineplex/mapparser/MapParser.java +++ b/Plugins/Mineplex.MapParser/src/mineplex/mapparser/MapParser.java @@ -1,6 +1,8 @@ package mineplex.mapparser; +import java.io.BufferedWriter; import java.io.File; +import java.io.FileWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -29,6 +31,7 @@ import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockIgniteEvent.IgniteCause; import org.bukkit.event.block.BlockSpreadEvent; import org.bukkit.event.block.LeavesDecayEvent; +import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.entity.EntitySpawnEvent; import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; @@ -50,30 +53,32 @@ import mineplex.core.common.util.UtilEvent.ActionType; import mineplex.core.common.util.UtilGear; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilTime; +import mineplex.core.common.util.UtilWorld; import mineplex.mapparser.command.*; public class MapParser extends JavaPlugin implements Listener { private WorldManager _worldManager; - + private Parse _curParse = null; private HashMap _mapData = new HashMap(); private HashSet _mapsBeingZipped = new HashSet(); private List _commands = new ArrayList(); private Location _spawnLocation; - + private HashMap _permissionMap = new HashMap(); - + @Override public void onEnable() { _worldManager = new WorldManager(this); - + getServer().getPluginManager().registerEvents(this, this); - + getServer().getWorlds().get(0).setSpawnLocation(0, 106, 0); _spawnLocation = new Location(getServer().getWorlds().get(0), 0, 106, 0); - + //Updates getServer().getScheduler().scheduleSyncRepeatingTask(this, new Ticker(this), 1, 1); @@ -101,21 +106,21 @@ public class MapParser extends JavaPlugin implements Listener @Override public void onDisable() { - + } - + @EventHandler public void PlayerJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); - + player.teleport(getSpawnLocation()); - + ResetInventory(event.getPlayer()); - + DisplayHelp(player); } - + @EventHandler public void permissionUpdate(TickEvent event) { @@ -124,11 +129,11 @@ public class MapParser extends JavaPlugin implements Listener permissionSet(player); } } - + public void permissionSet(Player player) { boolean hasPermission = GetData(player.getWorld().getName()).HasAccess(player); - + if (!_permissionMap.containsKey(player) || _permissionMap.get(player) != hasPermission) { for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) @@ -137,18 +142,18 @@ public class MapParser extends JavaPlugin implements Listener player.addAttachment(plugin, "voxelsniper.sniper", hasPermission); player.addAttachment(plugin, "voxelsniper.brush.*", hasPermission); } - + _permissionMap.put(player, hasPermission); - + UtilPlayer.message(player, "Plugin Permissions: " + F.tf(hasPermission)); } } - - + + public void DisplayHelp(Player player) { UtilPlayer.message(player, F.main("Parser", "Listing Commands;")); - UtilPlayer.message(player, F.value("Parameters", "Parameters: = Required, [?] = Optional")); + UtilPlayer.message(player, F.value("Parameters", "Parameters: = Required, [?] = Optional")); UtilPlayer.message(player, F.value("/hub", "Return to hub world")); UtilPlayer.message(player, " "); UtilPlayer.message(player, F.value("/name ", "Set name for current map")); @@ -165,9 +170,9 @@ public class MapParser extends JavaPlugin implements Listener UtilPlayer.message(player, F.value("/map [gametype]", "Teleport to a map")); UtilPlayer.message(player, " "); UtilPlayer.message(player, C.cYellow + "Documentation: " + C.cGreen + "http://tinyurl.com/mpxmaps"); - + } - + @EventHandler public void Command(PlayerCommandPreprocessEvent event) { @@ -186,7 +191,7 @@ public class MapParser extends JavaPlugin implements Listener if (event.getMessage().toLowerCase().startsWith("/help")) { event.setCancelled(true); - + DisplayHelp(player); } @@ -197,7 +202,7 @@ public class MapParser extends JavaPlugin implements Listener if (alias.equalsIgnoreCase(commandLabel)) { event.setCancelled(true); - + if (!command.execute(player, commandLabel, args)) { UtilPlayer.message(player, F.main("Parser", "Invalid Input.")); @@ -229,13 +234,13 @@ public class MapParser extends JavaPlugin implements Listener { if (_curParse == null) return; - + if (_curParse.Update()) { Announce("Parse Completed!"); - + Announce("Cleaning and Creating ZIP..."); - + try { _worldManager.finalizeParsedWorld(_curParse.getWorld()); @@ -245,55 +250,55 @@ public class MapParser extends JavaPlugin implements Listener Announce("Creating ZIP Failed! Please Try Again!"); e.printStackTrace(); } - + _curParse = null; } } - + @EventHandler public void DisableCreatures(EntitySpawnEvent event) { if (event.getEntityType() == EntityType.DROPPED_ITEM || event.getEntity() instanceof LivingEntity) event.setCancelled(true); } - + @EventHandler public void DisableBurn(BlockBurnEvent event) { event.setCancelled(true); } - + @EventHandler public void DisableIgnite(BlockIgniteEvent event) { if (event.getCause() == IgniteCause.LAVA || event.getCause() == IgniteCause.SPREAD) event.setCancelled(true); } - + @EventHandler public void DisableFire(BlockSpreadEvent event) { event.setCancelled(true); } - + @EventHandler public void DisableFade(BlockFadeEvent event) { event.setCancelled(true); } - + @EventHandler public void DisableDecay(LeavesDecayEvent event) { event.setCancelled(true); } - + @EventHandler public void DisableIceForm(BlockFormEvent event) { event.setCancelled(true); } - + @EventHandler public void Updates(PlayerMoveEvent event) { @@ -305,12 +310,12 @@ public class MapParser extends JavaPlugin implements Listener world.setTime(8000); world.setStorm(false); } - - + + if (event.getPlayer().getGameMode() != GameMode.CREATIVE) event.getPlayer().setGameMode(GameMode.CREATIVE); } - + @EventHandler public void SaveUnloadWorlds(TickEvent event) { @@ -333,14 +338,14 @@ public class MapParser extends JavaPlugin implements Listener _mapsBeingZipped.add(world.getName()); System.out.println("Starting backup of " + world); BackupTask backupTask = new BackupTask(this, world.getName(), new Callback() - { + { @Override public void run(Boolean data) { System.out.println("Finished backup of " + world); _mapsBeingZipped.remove(world.getName()); } - }); + }); } } } @@ -466,13 +471,13 @@ public class MapParser extends JavaPlugin implements Listener public void ResetInventory(Player player) { -// UtilInv.Clear(player); -// -// player.getInventory().addItem(new ItemStack(Material.STONE_SWORD)); -// player.getInventory().addItem(new ItemStack(Material.STONE_SPADE)); -// player.getInventory().addItem(new ItemStack(Material.STONE_PICKAXE)); -// player.getInventory().addItem(new ItemStack(Material.STONE_AXE)); -// player.getInventory().addItem(new ItemStack(Material.WOOD_AXE)); + // UtilInv.Clear(player); + // + // player.getInventory().addItem(new ItemStack(Material.STONE_SWORD)); + // player.getInventory().addItem(new ItemStack(Material.STONE_SPADE)); + // player.getInventory().addItem(new ItemStack(Material.STONE_PICKAXE)); + // player.getInventory().addItem(new ItemStack(Material.STONE_AXE)); + // player.getInventory().addItem(new ItemStack(Material.WOOD_AXE)); } public WorldManager getWorldManager() @@ -531,14 +536,14 @@ public class MapParser extends JavaPlugin implements Listener public void commandCancel(PlayerCommandPreprocessEvent event) { if (event.getMessage().startsWith("/tp") || - event.getMessage().startsWith("/hub") || - event.getMessage().startsWith("/list") || - event.getMessage().startsWith("/map") || - event.getMessage().startsWith("/create") || - event.getMessage().startsWith("/copy") || - event.getMessage().startsWith("/delete")) + event.getMessage().startsWith("/hub") || + event.getMessage().startsWith("/list") || + event.getMessage().startsWith("/map") || + event.getMessage().startsWith("/create") || + event.getMessage().startsWith("/copy") || + event.getMessage().startsWith("/delete")) return; - + //Permission if (!GetData(event.getPlayer().getWorld().getName()).HasAccess(event.getPlayer())) { @@ -563,24 +568,24 @@ public class MapParser extends JavaPlugin implements Listener { event.setQuitMessage(F.sys("Player Quit", event.getPlayer().getName())); } - + @EventHandler(priority = EventPriority.LOWEST) public void TeleportCommand(PlayerCommandPreprocessEvent event) { if (!event.getMessage().toLowerCase().startsWith("/tp")) return; - + Player player = event.getPlayer(); - + String[] tokens = event.getMessage().split(" "); - + if (tokens.length != 2) { return; } - + event.setCancelled(true); - + Player target = UtilPlayer.searchOnline(player, tokens[1], true); if (target != null) { @@ -588,30 +593,30 @@ public class MapParser extends JavaPlugin implements Listener player.teleport(target); } } - + @EventHandler(priority = EventPriority.LOWEST) public void FlySpeed(PlayerCommandPreprocessEvent event) { if (!event.getMessage().toLowerCase().startsWith("/speed")) return; - + Player player = event.getPlayer(); - + String[] tokens = event.getMessage().split(" "); - + if (tokens.length != 2) { return; } - + event.setCancelled(true); - + try { float speed = Float.parseFloat(tokens[1]); - + player.setFlySpeed(speed); - + UtilPlayer.message(player, F.main("Game", "Fly Speed set to " + F.elem("" + speed) + ".")); } catch (Exception e) @@ -619,28 +624,28 @@ public class MapParser extends JavaPlugin implements Listener UtilPlayer.message(player, F.main("Game", "Invalid Speed Input.")); } } - + private HashMap>> treeHistory = new HashMap>>(); - + @EventHandler(priority = EventPriority.HIGHEST) public void treeRemover(PlayerInteractEvent event) { if (event.isCancelled()) return; - + //Permission if (!GetData(event.getPlayer().getWorld().getName()).HasAccess(event.getPlayer())) { return; } - + Player player = event.getPlayer(); - + if (!UtilGear.isMat(player.getItemInHand(), Material.NETHER_STAR)) return; - + event.setCancelled(true); - + //Remove if (event.getAction() == Action.LEFT_CLICK_BLOCK) { @@ -649,31 +654,31 @@ public class MapParser extends JavaPlugin implements Listener player.sendMessage(C.cRed + C.Bold + "TreeTool: " + ChatColor.RESET + "Left-Click on Log"); return; } - + HashSet toRemove = searchLog(new HashSet(), event.getClickedBlock()); - + if (toRemove.isEmpty()) { player.sendMessage(C.cRed + C.Bold + "TreeTool: " + ChatColor.RESET + "Left-Click on Log"); return; } - + HashSet history = new HashSet(); - + for (Block block : toRemove) { history.add(new BlockData(block)); - + block.setType(Material.AIR); } - + if (!treeHistory.containsKey(player)) treeHistory.put(player, new ArrayList>()); - + treeHistory.get(player).add(0, history); - + player.sendMessage(C.cRed + C.Bold + "TreeTool: " + ChatColor.RESET + "Tree Removed"); - + while (treeHistory.get(player).size() > 10) treeHistory.get(player).remove(10); } @@ -684,12 +689,12 @@ public class MapParser extends JavaPlugin implements Listener player.sendMessage(C.cGreen + C.Bold + "TreeTool: " + ChatColor.RESET + "No Tree History"); return; } - + HashSet datas = treeHistory.get(player).remove(0); - + for (BlockData data : datas) data.restore(); - + player.sendMessage(C.cGreen + C.Bold + "TreeTool: " + ChatColor.RESET + "Tree Restored"); } } @@ -699,51 +704,82 @@ public class MapParser extends JavaPlugin implements Listener //Not Tree if (current.getType() != Material.LOG && current.getType() != Material.LEAVES) return blocks; - + if (!blocks.add(current)) return blocks; - + for (Block other : UtilBlock.getSurrounding(current, true)) { if (current.getType() != Material.LOG && current.getType() != Material.LEAVES) continue; - + if (blocks.contains(other)) continue; - + //Dont spread from leaves to log if (current.getType() == Material.LEAVES && other.getType() == Material.LOG) continue; - + searchLog(blocks, other); } - + return blocks; } - + long lastUse = 0; @EventHandler(priority = EventPriority.LOWEST) public void leaptest(PlayerInteractEvent event) { - + if (event.getPlayer().getItemInHand() == null) return; - + if (event.getPlayer().getItemInHand().getType() != Material.FEATHER) return; - + if (System.currentTimeMillis() - lastUse < 800) { Bukkit.broadcastMessage("Cooldown"); return; } - - + + lastUse = System.currentTimeMillis(); - + Vector vel = event.getPlayer().getLocation().getDirection().multiply(1.2); vel.add(new Vector(0,0.6,0)); - + event.getPlayer().setVelocity(vel); } + + @EventHandler + public void signChangeLog(SignChangeEvent event) + { + if (GetData(event.getPlayer().getWorld().getName()).HasAccess(event.getPlayer())) + { + try + { + File file = new File(event.getPlayer().getWorld().getName() + "/" + "sign_log.txt"); + + if (!file.exists()) + file.createNewFile(); + + FileWriter fw = new FileWriter(file.getAbsoluteFile(), true); + BufferedWriter bw = new BufferedWriter(fw); + + bw.write("\n\n"); + bw.write("\n" + "Date: " + UtilTime.now()); + bw.write("\n" + "Player: " + event.getPlayer().getName()); + bw.write("\n" + "Location: " + UtilWorld.locToStrClean(event.getBlock().getLocation())); + for (int i=0 ; i