+ Added abillity to become solid in water!

This commit is contained in:
Steffion 2013-08-11 12:36:47 +02:00
parent b5d7019301
commit b8e062f720
2 changed files with 54 additions and 20 deletions

View File

@ -12,12 +12,10 @@ import nl.Steffion.BlockHunt.Listeners.OnFoodLevelChangeEvent;
import nl.Steffion.BlockHunt.Listeners.OnInventoryClickEvent; import nl.Steffion.BlockHunt.Listeners.OnInventoryClickEvent;
import nl.Steffion.BlockHunt.Listeners.OnInventoryCloseEvent; import nl.Steffion.BlockHunt.Listeners.OnInventoryCloseEvent;
import nl.Steffion.BlockHunt.Listeners.OnPlayerCommandPreprocessEvent; import nl.Steffion.BlockHunt.Listeners.OnPlayerCommandPreprocessEvent;
import nl.Steffion.BlockHunt.Listeners.OnPlayerDeathEvent;
import nl.Steffion.BlockHunt.Listeners.OnPlayerDropItemEvent; import nl.Steffion.BlockHunt.Listeners.OnPlayerDropItemEvent;
import nl.Steffion.BlockHunt.Listeners.OnPlayerInteractEvent; import nl.Steffion.BlockHunt.Listeners.OnPlayerInteractEvent;
import nl.Steffion.BlockHunt.Listeners.OnPlayerMoveEvent; import nl.Steffion.BlockHunt.Listeners.OnPlayerMoveEvent;
import nl.Steffion.BlockHunt.Listeners.OnPlayerQuitEvent; import nl.Steffion.BlockHunt.Listeners.OnPlayerQuitEvent;
import nl.Steffion.BlockHunt.Listeners.OnPlayerRespawnEvent;
import nl.Steffion.BlockHunt.Listeners.OnSignChangeEvent; import nl.Steffion.BlockHunt.Listeners.OnSignChangeEvent;
import nl.Steffion.BlockHunt.Managers.CommandC; import nl.Steffion.BlockHunt.Managers.CommandC;
import nl.Steffion.BlockHunt.Managers.ConfigC; import nl.Steffion.BlockHunt.Managers.ConfigC;
@ -25,6 +23,7 @@ import nl.Steffion.BlockHunt.Managers.MessageM;
import nl.Steffion.BlockHunt.Serializables.LocationSerializable; import nl.Steffion.BlockHunt.Serializables.LocationSerializable;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
@ -68,8 +67,6 @@ public class BlockHunt extends JavaPlugin implements Listener {
new OnInventoryCloseEvent(), this); new OnInventoryCloseEvent(), this);
getServer().getPluginManager().registerEvents( getServer().getPluginManager().registerEvents(
new OnPlayerCommandPreprocessEvent(), this); new OnPlayerCommandPreprocessEvent(), this);
getServer().getPluginManager().registerEvents(new OnPlayerDeathEvent(),
this);
getServer().getPluginManager().registerEvents( getServer().getPluginManager().registerEvents(
new OnPlayerDropItemEvent(), this); new OnPlayerDropItemEvent(), this);
getServer().getPluginManager().registerEvents( getServer().getPluginManager().registerEvents(
@ -78,14 +75,12 @@ public class BlockHunt extends JavaPlugin implements Listener {
this); this);
getServer().getPluginManager().registerEvents(new OnPlayerQuitEvent(), getServer().getPluginManager().registerEvents(new OnPlayerQuitEvent(),
this); this);
getServer().getPluginManager().registerEvents(
new OnPlayerRespawnEvent(this), this);
getServer().getPluginManager().registerEvents(new OnSignChangeEvent(), getServer().getPluginManager().registerEvents(new OnSignChangeEvent(),
this); this);
ConfigurationSerialization.registerClass(LocationSerializable.class, ConfigurationSerialization.registerClass(LocationSerializable.class,
"Location"); "BlockHuntLocation");
ConfigurationSerialization.registerClass(Arena.class, "Arena"); ConfigurationSerialization.registerClass(Arena.class, "BlockHuntArena");
W.newFiles(); W.newFiles();
@ -216,10 +211,13 @@ public class BlockHunt extends JavaPlugin implements Listener {
} }
arenaPlayer.teleport(arena.hidersWarp); arenaPlayer.teleport(arena.hidersWarp);
ItemStack sword = new ItemStack(
Material.WOOD_SWORD, 1);
sword.addUnsafeEnchantment(
Enchantment.KNOCKBACK, 1);
arenaPlayer.getInventory().addItem(sword);
arenaPlayer.getInventory().addItem(
new ItemStack(Material.GOLD_SWORD,
1));
ItemStack blockCount = new ItemStack(block ItemStack blockCount = new ItemStack(block
.getType(), 5); .getType(), 5);
blockCount.setDurability(block blockCount.setDurability(block
@ -363,7 +361,23 @@ public class BlockHunt extends JavaPlugin implements Listener {
Block pBlock = player.getLocation() Block pBlock = player.getLocation()
.getBlock(); .getBlock();
if (pBlock.getType().equals( if (pBlock.getType().equals(
Material.AIR)) { Material.AIR)
|| pBlock.getType().equals(
Material.WATER)
|| pBlock
.getType()
.equals(Material.STATIONARY_WATER)) {
if (pBlock.getType().equals(
Material.WATER)
|| pBlock
.getType()
.equals(Material.STATIONARY_WATER)) {
W.hiddenLocWater.put(
player, true);
} else {
W.hiddenLocWater.put(
player, false);
}
if (W.dcAPI.isDisguised(player)) { if (W.dcAPI.isDisguised(player)) {
W.dcAPI.undisguisePlayer(player); W.dcAPI.undisguisePlayer(player);
for (Player pl : Bukkit for (Player pl : Bukkit
@ -441,10 +455,29 @@ public class BlockHunt extends JavaPlugin implements Listener {
for (Player pl : Bukkit for (Player pl : Bukkit
.getOnlinePlayers()) { .getOnlinePlayers()) {
if (!pl.equals(player)) { if (!pl.equals(player)) {
pl.sendBlockChange(pBlock if (W.hiddenLocWater
.getLocation(), .get(player) != null) {
Material.AIR, if (W.hiddenLocWater
(byte) 0); .get(player) == true) {
pl.sendBlockChange(
pBlock.getLocation(),
Material.STATIONARY_WATER,
(byte) 0);
} else {
pl.sendBlockChange(
pBlock.getLocation(),
Material.AIR,
(byte) 0);
}
} else {
pl.sendBlockChange(
pBlock.getLocation(),
Material.AIR,
(byte) 0);
}
W.hiddenLocWater
.remove(player);
} }
} }
@ -482,6 +515,7 @@ public class BlockHunt extends JavaPlugin implements Listener {
for (Player pl : arena.playersInArena) { for (Player pl : arena.playersInArena) {
pl.setLevel(arena.timer); pl.setLevel(arena.timer);
pl.setGameMode(GameMode.SURVIVAL);
} }
ScoreboardHandler.doScoreboard(arena); ScoreboardHandler.doScoreboard(arena);

View File

@ -1,7 +1,6 @@
package nl.Steffion.BlockHunt.Listeners; package nl.Steffion.BlockHunt.Listeners;
import nl.Steffion.BlockHunt.Arena; import nl.Steffion.BlockHunt.Arena;
import nl.Steffion.BlockHunt.Arena.ArenaState;
import nl.Steffion.BlockHunt.W; import nl.Steffion.BlockHunt.W;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
@ -10,6 +9,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
public class OnEntityDamageEvent implements Listener { public class OnEntityDamageEvent implements Listener {
@ -20,9 +20,9 @@ public class OnEntityDamageEvent implements Listener {
if (ent instanceof Player) { if (ent instanceof Player) {
Player player = (Player) event.getEntity(); Player player = (Player) event.getEntity();
for (Arena arena : W.arenaList) { for (Arena arena : W.arenaList) {
if (arena.gameState.equals(ArenaState.WAITING) if (arena.playersInArena.contains(player)) {
|| arena.gameState.equals(ArenaState.STARTING)) { if (event.getCause().equals(DamageCause.FALL)
if (arena.playersInArena.contains(player)) { || event.getCause().equals(DamageCause.DROWNING)) {
event.setCancelled(true); event.setCancelled(true);
} }
} }