titan placeholder perks

art
fixed pumpkin gem count
This commit is contained in:
Cheese 2015-10-11 11:26:09 +11:00
parent da6b1316d3
commit 6860fa608a
10 changed files with 228 additions and 102 deletions

BIN
Art/Halloween Horror.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 KiB

BIN
Art/Pumpkin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 KiB

BIN
Art/Spooky Sale.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

View File

@ -36,6 +36,7 @@ import mineplex.core.gadget.gadgets.MorphEnderman;
import mineplex.core.gadget.gadgets.MorphPig; import mineplex.core.gadget.gadgets.MorphPig;
import mineplex.core.gadget.gadgets.MorphPumpkinKing; import mineplex.core.gadget.gadgets.MorphPumpkinKing;
import mineplex.core.gadget.gadgets.MorphSlime; import mineplex.core.gadget.gadgets.MorphSlime;
import mineplex.core.gadget.gadgets.MorphTitan;
import mineplex.core.gadget.gadgets.MorphVillager; import mineplex.core.gadget.gadgets.MorphVillager;
import mineplex.core.gadget.gadgets.MorphWither; import mineplex.core.gadget.gadgets.MorphWither;
import mineplex.core.gadget.gadgets.OutfitRaveSuit; 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.ParticleHelix;
import mineplex.core.gadget.gadgets.ParticleLegend; import mineplex.core.gadget.gadgets.ParticleLegend;
import mineplex.core.gadget.gadgets.ParticleRain; import mineplex.core.gadget.gadgets.ParticleRain;
import mineplex.core.gadget.gadgets.ParticleTitan;
import mineplex.core.gadget.types.Gadget; import mineplex.core.gadget.types.Gadget;
import mineplex.core.gadget.types.GadgetType; import mineplex.core.gadget.types.GadgetType;
import mineplex.core.gadget.types.ItemGadget; import mineplex.core.gadget.types.ItemGadget;
@ -163,6 +165,7 @@ public class GadgetManager extends MiniPlugin
addGadget(new MorphWither(this)); addGadget(new MorphWither(this));
addGadget(new MorphBunny(this)); addGadget(new MorphBunny(this));
addGadget(new MorphSlime(this, _achievementManager)); addGadget(new MorphSlime(this, _achievementManager));
addGadget(new MorphTitan(this));
// Particles // Particles
addGadget(new ParticleFoot(this)); addGadget(new ParticleFoot(this));
@ -175,6 +178,7 @@ public class GadgetManager extends MiniPlugin
addGadget(new ParticleFairy(this)); addGadget(new ParticleFairy(this));
addGadget(new ParticleLegend(this)); addGadget(new ParticleLegend(this));
addGadget(new ParticleBlizzard(this)); addGadget(new ParticleBlizzard(this));
addGadget(new ParticleTitan(this));
//addGadget(new ParticleKronos(this)); //addGadget(new ParticleKronos(this));
// Music // Music

View File

@ -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)
{
}
}

View File

@ -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);
}
}

View File

@ -18,6 +18,7 @@ import mineplex.core.mount.types.MountFrost;
import mineplex.core.mount.types.MountMule; import mineplex.core.mount.types.MountMule;
import mineplex.core.mount.types.MountSlime; import mineplex.core.mount.types.MountSlime;
import mineplex.core.mount.types.MountSpider; import mineplex.core.mount.types.MountSpider;
import mineplex.core.mount.types.MountTitan;
import mineplex.core.mount.types.MountUndead; import mineplex.core.mount.types.MountUndead;
import mineplex.core.mount.types.MountZombie; import mineplex.core.mount.types.MountZombie;
@ -66,6 +67,7 @@ public class MountManager extends MiniPlugin
_types.add(new MountCart(this)); _types.add(new MountCart(this));
_types.add(new MountSpider(this)); _types.add(new MountSpider(this));
_types.add(new MountZombie(this)); _types.add(new MountZombie(this));
_types.add(new MountTitan(this));
//_types.add(new MountSheep(this)); //_types.add(new MountSheep(this));
} }

View File

@ -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);
}
}

View File

@ -1,6 +1,8 @@
package mineplex.mapparser; package mineplex.mapparser;
import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; 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.BlockIgniteEvent.IgniteCause;
import org.bukkit.event.block.BlockSpreadEvent; import org.bukkit.event.block.BlockSpreadEvent;
import org.bukkit.event.block.LeavesDecayEvent; import org.bukkit.event.block.LeavesDecayEvent;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.entity.EntitySpawnEvent; import org.bukkit.event.entity.EntitySpawnEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent; 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.UtilGear;
import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilPlayer;
import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilServer;
import mineplex.core.common.util.UtilTime;
import mineplex.core.common.util.UtilWorld;
import mineplex.mapparser.command.*; import mineplex.mapparser.command.*;
public class MapParser extends JavaPlugin implements Listener public class MapParser extends JavaPlugin implements Listener
{ {
private WorldManager _worldManager; private WorldManager _worldManager;
private Parse _curParse = null; private Parse _curParse = null;
private HashMap<String, MapData> _mapData = new HashMap<String, MapData>(); private HashMap<String, MapData> _mapData = new HashMap<String, MapData>();
private HashSet<String> _mapsBeingZipped = new HashSet<String>(); private HashSet<String> _mapsBeingZipped = new HashSet<String>();
private List<BaseCommand> _commands = new ArrayList<BaseCommand>(); private List<BaseCommand> _commands = new ArrayList<BaseCommand>();
private Location _spawnLocation; private Location _spawnLocation;
private HashMap<Player, Boolean> _permissionMap = new HashMap<Player, Boolean>(); private HashMap<Player, Boolean> _permissionMap = new HashMap<Player, Boolean>();
@Override @Override
public void onEnable() public void onEnable()
{ {
_worldManager = new WorldManager(this); _worldManager = new WorldManager(this);
getServer().getPluginManager().registerEvents(this, this); getServer().getPluginManager().registerEvents(this, this);
getServer().getWorlds().get(0).setSpawnLocation(0, 106, 0); getServer().getWorlds().get(0).setSpawnLocation(0, 106, 0);
_spawnLocation = new Location(getServer().getWorlds().get(0), 0, 106, 0); _spawnLocation = new Location(getServer().getWorlds().get(0), 0, 106, 0);
//Updates //Updates
getServer().getScheduler().scheduleSyncRepeatingTask(this, new Ticker(this), 1, 1); getServer().getScheduler().scheduleSyncRepeatingTask(this, new Ticker(this), 1, 1);
@ -101,21 +106,21 @@ public class MapParser extends JavaPlugin implements Listener
@Override @Override
public void onDisable() public void onDisable()
{ {
} }
@EventHandler @EventHandler
public void PlayerJoin(PlayerJoinEvent event) public void PlayerJoin(PlayerJoinEvent event)
{ {
Player player = event.getPlayer(); Player player = event.getPlayer();
player.teleport(getSpawnLocation()); player.teleport(getSpawnLocation());
ResetInventory(event.getPlayer()); ResetInventory(event.getPlayer());
DisplayHelp(player); DisplayHelp(player);
} }
@EventHandler @EventHandler
public void permissionUpdate(TickEvent event) public void permissionUpdate(TickEvent event)
{ {
@ -124,11 +129,11 @@ public class MapParser extends JavaPlugin implements Listener
permissionSet(player); permissionSet(player);
} }
} }
public void permissionSet(Player player) public void permissionSet(Player player)
{ {
boolean hasPermission = GetData(player.getWorld().getName()).HasAccess(player); boolean hasPermission = GetData(player.getWorld().getName()).HasAccess(player);
if (!_permissionMap.containsKey(player) || _permissionMap.get(player) != hasPermission) if (!_permissionMap.containsKey(player) || _permissionMap.get(player) != hasPermission)
{ {
for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) 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.sniper", hasPermission);
player.addAttachment(plugin, "voxelsniper.brush.*", hasPermission); player.addAttachment(plugin, "voxelsniper.brush.*", hasPermission);
} }
_permissionMap.put(player, hasPermission); _permissionMap.put(player, hasPermission);
UtilPlayer.message(player, "Plugin Permissions: " + F.tf(hasPermission)); UtilPlayer.message(player, "Plugin Permissions: " + F.tf(hasPermission));
} }
} }
public void DisplayHelp(Player player) public void DisplayHelp(Player player)
{ {
UtilPlayer.message(player, F.main("Parser", "Listing Commands;")); 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, F.value("/hub", "Return to hub world"));
UtilPlayer.message(player, " "); UtilPlayer.message(player, " ");
UtilPlayer.message(player, F.value("/name <name>", "Set name for current map")); UtilPlayer.message(player, F.value("/name <name>", "Set name for current map"));
@ -165,9 +170,9 @@ public class MapParser extends JavaPlugin implements Listener
UtilPlayer.message(player, F.value("/map <name> [gametype]", "Teleport to a map")); UtilPlayer.message(player, F.value("/map <name> [gametype]", "Teleport to a map"));
UtilPlayer.message(player, " "); UtilPlayer.message(player, " ");
UtilPlayer.message(player, C.cYellow + "Documentation: " + C.cGreen + "http://tinyurl.com/mpxmaps"); UtilPlayer.message(player, C.cYellow + "Documentation: " + C.cGreen + "http://tinyurl.com/mpxmaps");
} }
@EventHandler @EventHandler
public void Command(PlayerCommandPreprocessEvent event) public void Command(PlayerCommandPreprocessEvent event)
{ {
@ -186,7 +191,7 @@ public class MapParser extends JavaPlugin implements Listener
if (event.getMessage().toLowerCase().startsWith("/help")) if (event.getMessage().toLowerCase().startsWith("/help"))
{ {
event.setCancelled(true); event.setCancelled(true);
DisplayHelp(player); DisplayHelp(player);
} }
@ -197,7 +202,7 @@ public class MapParser extends JavaPlugin implements Listener
if (alias.equalsIgnoreCase(commandLabel)) if (alias.equalsIgnoreCase(commandLabel))
{ {
event.setCancelled(true); event.setCancelled(true);
if (!command.execute(player, commandLabel, args)) if (!command.execute(player, commandLabel, args))
{ {
UtilPlayer.message(player, F.main("Parser", "Invalid Input.")); UtilPlayer.message(player, F.main("Parser", "Invalid Input."));
@ -229,13 +234,13 @@ public class MapParser extends JavaPlugin implements Listener
{ {
if (_curParse == null) if (_curParse == null)
return; return;
if (_curParse.Update()) if (_curParse.Update())
{ {
Announce("Parse Completed!"); Announce("Parse Completed!");
Announce("Cleaning and Creating ZIP..."); Announce("Cleaning and Creating ZIP...");
try try
{ {
_worldManager.finalizeParsedWorld(_curParse.getWorld()); _worldManager.finalizeParsedWorld(_curParse.getWorld());
@ -245,55 +250,55 @@ public class MapParser extends JavaPlugin implements Listener
Announce("Creating ZIP Failed! Please Try Again!"); Announce("Creating ZIP Failed! Please Try Again!");
e.printStackTrace(); e.printStackTrace();
} }
_curParse = null; _curParse = null;
} }
} }
@EventHandler @EventHandler
public void DisableCreatures(EntitySpawnEvent event) public void DisableCreatures(EntitySpawnEvent event)
{ {
if (event.getEntityType() == EntityType.DROPPED_ITEM || event.getEntity() instanceof LivingEntity) if (event.getEntityType() == EntityType.DROPPED_ITEM || event.getEntity() instanceof LivingEntity)
event.setCancelled(true); event.setCancelled(true);
} }
@EventHandler @EventHandler
public void DisableBurn(BlockBurnEvent event) public void DisableBurn(BlockBurnEvent event)
{ {
event.setCancelled(true); event.setCancelled(true);
} }
@EventHandler @EventHandler
public void DisableIgnite(BlockIgniteEvent event) public void DisableIgnite(BlockIgniteEvent event)
{ {
if (event.getCause() == IgniteCause.LAVA || event.getCause() == IgniteCause.SPREAD) if (event.getCause() == IgniteCause.LAVA || event.getCause() == IgniteCause.SPREAD)
event.setCancelled(true); event.setCancelled(true);
} }
@EventHandler @EventHandler
public void DisableFire(BlockSpreadEvent event) public void DisableFire(BlockSpreadEvent event)
{ {
event.setCancelled(true); event.setCancelled(true);
} }
@EventHandler @EventHandler
public void DisableFade(BlockFadeEvent event) public void DisableFade(BlockFadeEvent event)
{ {
event.setCancelled(true); event.setCancelled(true);
} }
@EventHandler @EventHandler
public void DisableDecay(LeavesDecayEvent event) public void DisableDecay(LeavesDecayEvent event)
{ {
event.setCancelled(true); event.setCancelled(true);
} }
@EventHandler @EventHandler
public void DisableIceForm(BlockFormEvent event) public void DisableIceForm(BlockFormEvent event)
{ {
event.setCancelled(true); event.setCancelled(true);
} }
@EventHandler @EventHandler
public void Updates(PlayerMoveEvent event) public void Updates(PlayerMoveEvent event)
{ {
@ -305,12 +310,12 @@ public class MapParser extends JavaPlugin implements Listener
world.setTime(8000); world.setTime(8000);
world.setStorm(false); world.setStorm(false);
} }
if (event.getPlayer().getGameMode() != GameMode.CREATIVE) if (event.getPlayer().getGameMode() != GameMode.CREATIVE)
event.getPlayer().setGameMode(GameMode.CREATIVE); event.getPlayer().setGameMode(GameMode.CREATIVE);
} }
@EventHandler @EventHandler
public void SaveUnloadWorlds(TickEvent event) public void SaveUnloadWorlds(TickEvent event)
{ {
@ -333,14 +338,14 @@ public class MapParser extends JavaPlugin implements Listener
_mapsBeingZipped.add(world.getName()); _mapsBeingZipped.add(world.getName());
System.out.println("Starting backup of " + world); System.out.println("Starting backup of " + world);
BackupTask backupTask = new BackupTask(this, world.getName(), new Callback<Boolean>() BackupTask backupTask = new BackupTask(this, world.getName(), new Callback<Boolean>()
{ {
@Override @Override
public void run(Boolean data) public void run(Boolean data)
{ {
System.out.println("Finished backup of " + world); System.out.println("Finished backup of " + world);
_mapsBeingZipped.remove(world.getName()); _mapsBeingZipped.remove(world.getName());
} }
}); });
} }
} }
} }
@ -466,13 +471,13 @@ public class MapParser extends JavaPlugin implements Listener
public void ResetInventory(Player player) public void ResetInventory(Player player)
{ {
// UtilInv.Clear(player); // UtilInv.Clear(player);
// //
// player.getInventory().addItem(new ItemStack(Material.STONE_SWORD)); // player.getInventory().addItem(new ItemStack(Material.STONE_SWORD));
// player.getInventory().addItem(new ItemStack(Material.STONE_SPADE)); // player.getInventory().addItem(new ItemStack(Material.STONE_SPADE));
// player.getInventory().addItem(new ItemStack(Material.STONE_PICKAXE)); // player.getInventory().addItem(new ItemStack(Material.STONE_PICKAXE));
// player.getInventory().addItem(new ItemStack(Material.STONE_AXE)); // player.getInventory().addItem(new ItemStack(Material.STONE_AXE));
// player.getInventory().addItem(new ItemStack(Material.WOOD_AXE)); // player.getInventory().addItem(new ItemStack(Material.WOOD_AXE));
} }
public WorldManager getWorldManager() public WorldManager getWorldManager()
@ -531,14 +536,14 @@ public class MapParser extends JavaPlugin implements Listener
public void commandCancel(PlayerCommandPreprocessEvent event) public void commandCancel(PlayerCommandPreprocessEvent event)
{ {
if (event.getMessage().startsWith("/tp") || if (event.getMessage().startsWith("/tp") ||
event.getMessage().startsWith("/hub") || event.getMessage().startsWith("/hub") ||
event.getMessage().startsWith("/list") || event.getMessage().startsWith("/list") ||
event.getMessage().startsWith("/map") || event.getMessage().startsWith("/map") ||
event.getMessage().startsWith("/create") || event.getMessage().startsWith("/create") ||
event.getMessage().startsWith("/copy") || event.getMessage().startsWith("/copy") ||
event.getMessage().startsWith("/delete")) event.getMessage().startsWith("/delete"))
return; return;
//Permission //Permission
if (!GetData(event.getPlayer().getWorld().getName()).HasAccess(event.getPlayer())) 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())); event.setQuitMessage(F.sys("Player Quit", event.getPlayer().getName()));
} }
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
public void TeleportCommand(PlayerCommandPreprocessEvent event) public void TeleportCommand(PlayerCommandPreprocessEvent event)
{ {
if (!event.getMessage().toLowerCase().startsWith("/tp")) if (!event.getMessage().toLowerCase().startsWith("/tp"))
return; return;
Player player = event.getPlayer(); Player player = event.getPlayer();
String[] tokens = event.getMessage().split(" "); String[] tokens = event.getMessage().split(" ");
if (tokens.length != 2) if (tokens.length != 2)
{ {
return; return;
} }
event.setCancelled(true); event.setCancelled(true);
Player target = UtilPlayer.searchOnline(player, tokens[1], true); Player target = UtilPlayer.searchOnline(player, tokens[1], true);
if (target != null) if (target != null)
{ {
@ -588,30 +593,30 @@ public class MapParser extends JavaPlugin implements Listener
player.teleport(target); player.teleport(target);
} }
} }
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
public void FlySpeed(PlayerCommandPreprocessEvent event) public void FlySpeed(PlayerCommandPreprocessEvent event)
{ {
if (!event.getMessage().toLowerCase().startsWith("/speed")) if (!event.getMessage().toLowerCase().startsWith("/speed"))
return; return;
Player player = event.getPlayer(); Player player = event.getPlayer();
String[] tokens = event.getMessage().split(" "); String[] tokens = event.getMessage().split(" ");
if (tokens.length != 2) if (tokens.length != 2)
{ {
return; return;
} }
event.setCancelled(true); event.setCancelled(true);
try try
{ {
float speed = Float.parseFloat(tokens[1]); float speed = Float.parseFloat(tokens[1]);
player.setFlySpeed(speed); player.setFlySpeed(speed);
UtilPlayer.message(player, F.main("Game", "Fly Speed set to " + F.elem("" + speed) + ".")); UtilPlayer.message(player, F.main("Game", "Fly Speed set to " + F.elem("" + speed) + "."));
} }
catch (Exception e) catch (Exception e)
@ -619,28 +624,28 @@ public class MapParser extends JavaPlugin implements Listener
UtilPlayer.message(player, F.main("Game", "Invalid Speed Input.")); UtilPlayer.message(player, F.main("Game", "Invalid Speed Input."));
} }
} }
private HashMap<Player, ArrayList<HashSet<BlockData>>> treeHistory = new HashMap<Player, ArrayList<HashSet<BlockData>>>(); private HashMap<Player, ArrayList<HashSet<BlockData>>> treeHistory = new HashMap<Player, ArrayList<HashSet<BlockData>>>();
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.HIGHEST)
public void treeRemover(PlayerInteractEvent event) public void treeRemover(PlayerInteractEvent event)
{ {
if (event.isCancelled()) if (event.isCancelled())
return; return;
//Permission //Permission
if (!GetData(event.getPlayer().getWorld().getName()).HasAccess(event.getPlayer())) if (!GetData(event.getPlayer().getWorld().getName()).HasAccess(event.getPlayer()))
{ {
return; return;
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
if (!UtilGear.isMat(player.getItemInHand(), Material.NETHER_STAR)) if (!UtilGear.isMat(player.getItemInHand(), Material.NETHER_STAR))
return; return;
event.setCancelled(true); event.setCancelled(true);
//Remove //Remove
if (event.getAction() == Action.LEFT_CLICK_BLOCK) 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"); player.sendMessage(C.cRed + C.Bold + "TreeTool: " + ChatColor.RESET + "Left-Click on Log");
return; return;
} }
HashSet<Block> toRemove = searchLog(new HashSet<Block>(), event.getClickedBlock()); HashSet<Block> toRemove = searchLog(new HashSet<Block>(), event.getClickedBlock());
if (toRemove.isEmpty()) if (toRemove.isEmpty())
{ {
player.sendMessage(C.cRed + C.Bold + "TreeTool: " + ChatColor.RESET + "Left-Click on Log"); player.sendMessage(C.cRed + C.Bold + "TreeTool: " + ChatColor.RESET + "Left-Click on Log");
return; return;
} }
HashSet<BlockData> history = new HashSet<BlockData>(); HashSet<BlockData> history = new HashSet<BlockData>();
for (Block block : toRemove) for (Block block : toRemove)
{ {
history.add(new BlockData(block)); history.add(new BlockData(block));
block.setType(Material.AIR); block.setType(Material.AIR);
} }
if (!treeHistory.containsKey(player)) if (!treeHistory.containsKey(player))
treeHistory.put(player, new ArrayList<HashSet<BlockData>>()); treeHistory.put(player, new ArrayList<HashSet<BlockData>>());
treeHistory.get(player).add(0, history); treeHistory.get(player).add(0, history);
player.sendMessage(C.cRed + C.Bold + "TreeTool: " + ChatColor.RESET + "Tree Removed"); player.sendMessage(C.cRed + C.Bold + "TreeTool: " + ChatColor.RESET + "Tree Removed");
while (treeHistory.get(player).size() > 10) while (treeHistory.get(player).size() > 10)
treeHistory.get(player).remove(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"); player.sendMessage(C.cGreen + C.Bold + "TreeTool: " + ChatColor.RESET + "No Tree History");
return; return;
} }
HashSet<BlockData> datas = treeHistory.get(player).remove(0); HashSet<BlockData> datas = treeHistory.get(player).remove(0);
for (BlockData data : datas) for (BlockData data : datas)
data.restore(); data.restore();
player.sendMessage(C.cGreen + C.Bold + "TreeTool: " + ChatColor.RESET + "Tree Restored"); player.sendMessage(C.cGreen + C.Bold + "TreeTool: " + ChatColor.RESET + "Tree Restored");
} }
} }
@ -699,51 +704,82 @@ public class MapParser extends JavaPlugin implements Listener
//Not Tree //Not Tree
if (current.getType() != Material.LOG && current.getType() != Material.LEAVES) if (current.getType() != Material.LOG && current.getType() != Material.LEAVES)
return blocks; return blocks;
if (!blocks.add(current)) if (!blocks.add(current))
return blocks; return blocks;
for (Block other : UtilBlock.getSurrounding(current, true)) for (Block other : UtilBlock.getSurrounding(current, true))
{ {
if (current.getType() != Material.LOG && current.getType() != Material.LEAVES) if (current.getType() != Material.LOG && current.getType() != Material.LEAVES)
continue; continue;
if (blocks.contains(other)) if (blocks.contains(other))
continue; continue;
//Dont spread from leaves to log //Dont spread from leaves to log
if (current.getType() == Material.LEAVES && other.getType() == Material.LOG) if (current.getType() == Material.LEAVES && other.getType() == Material.LOG)
continue; continue;
searchLog(blocks, other); searchLog(blocks, other);
} }
return blocks; return blocks;
} }
long lastUse = 0; long lastUse = 0;
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
public void leaptest(PlayerInteractEvent event) public void leaptest(PlayerInteractEvent event)
{ {
if (event.getPlayer().getItemInHand() == null) if (event.getPlayer().getItemInHand() == null)
return; return;
if (event.getPlayer().getItemInHand().getType() != Material.FEATHER) if (event.getPlayer().getItemInHand().getType() != Material.FEATHER)
return; return;
if (System.currentTimeMillis() - lastUse < 800) if (System.currentTimeMillis() - lastUse < 800)
{ {
Bukkit.broadcastMessage("Cooldown"); Bukkit.broadcastMessage("Cooldown");
return; return;
} }
lastUse = System.currentTimeMillis(); lastUse = System.currentTimeMillis();
Vector vel = event.getPlayer().getLocation().getDirection().multiply(1.2); Vector vel = event.getPlayer().getLocation().getDirection().multiply(1.2);
vel.add(new Vector(0,0.6,0)); vel.add(new Vector(0,0.6,0));
event.getPlayer().setVelocity(vel); 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<event.getLines().length ; i++)
bw.write("\n" + "Line " + i + ": " + event.getLines()[i]);
bw.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
} }

View File

@ -346,7 +346,7 @@ public class HolidayManager implements Listener
} }
//Gems //Gems
for (int i=0 ; i < 4 + Math.random()*16 ; i++) for (int i=0 ; i < 4 + Math.random()*8 ; i++)
{ {
Item gem = block.getWorld().dropItem(block.getLocation().add(0.5, 1, 0.5), Item gem = block.getWorld().dropItem(block.getLocation().add(0.5, 1, 0.5),
ItemStackFactory.Instance.CreateStack(Material.EMERALD, (byte)0, 1, UtilMath.r(999999) + "Gem")); ItemStackFactory.Instance.CreateStack(Material.EMERALD, (byte)0, 1, UtilMath.r(999999) + "Gem"));