Fix clans water exploit and ruined pickaxe duping exploit
This commit is contained in:
parent
0dca2e9d46
commit
2ac7f72327
@ -86,8 +86,6 @@ public class Gameplay extends MiniPlugin
|
|||||||
private WeightSet<Boolean> _foodDecrease; // Weighted probability sets for
|
private WeightSet<Boolean> _foodDecrease; // Weighted probability sets for
|
||||||
// food decrease event outcomes
|
// food decrease event outcomes
|
||||||
|
|
||||||
private Map<Block, Long> _bucketWater = new HashMap<Block, Long>();
|
|
||||||
|
|
||||||
public Gameplay(JavaPlugin plugin, ClansManager clansManager, BlockRestore blockRestore, DamageManager damageManager)
|
public Gameplay(JavaPlugin plugin, ClansManager clansManager, BlockRestore blockRestore, DamageManager damageManager)
|
||||||
{
|
{
|
||||||
super("PvP Gameplay", plugin);
|
super("PvP Gameplay", plugin);
|
||||||
@ -179,29 +177,6 @@ public class Gameplay extends MiniPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@EventHandler
|
|
||||||
public void BucketEmpty(PlayerBucketEmptyEvent event)
|
|
||||||
{
|
|
||||||
event.setCancelled(true);
|
|
||||||
|
|
||||||
Block block = event.getBlockClicked().getRelative(event.getBlockFace());
|
|
||||||
|
|
||||||
if (event.getBucket() == Material.WATER_BUCKET)
|
|
||||||
{
|
|
||||||
block.setTypeIdAndData(8, (byte) 1, true);
|
|
||||||
_blockRestore.add(event.getBlockClicked().getRelative(event.getBlockFace()), 8, (byte) 0, 1000);
|
|
||||||
_bucketWater.put(block, System.currentTimeMillis());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event.getBucket() == Material.LAVA_BUCKET)
|
|
||||||
{
|
|
||||||
block.setTypeIdAndData(10, (byte) 6, true);
|
|
||||||
_blockRestore.add(event.getBlockClicked().getRelative(event.getBlockFace()), 10, (byte) 0, 2000);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.getPlayer().setItemInHand(ItemStackFactory.Instance.CreateStack(Material.BUCKET));
|
|
||||||
UtilInv.Update(event.getPlayer());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decreases the hunger rate decrease speed by arbitrarily canceling a
|
* Decreases the hunger rate decrease speed by arbitrarily canceling a
|
||||||
@ -222,30 +197,6 @@ public class Gameplay extends MiniPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void BucketFill(PlayerBucketFillEvent event)
|
|
||||||
{
|
|
||||||
event.setCancelled(true);
|
|
||||||
|
|
||||||
if (event.getItemStack().getType() == Material.WATER_BUCKET) if (!_bucketWater.containsKey(event.getBlockClicked())) event.getPlayer().setItemInHand(ItemStackFactory.Instance.CreateStack(Material.WATER_BUCKET));
|
|
||||||
|
|
||||||
UtilInv.Update(event.getPlayer());
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void BucketWaterExpire(UpdateEvent event)
|
|
||||||
{
|
|
||||||
if (event.getType() != UpdateType.FAST) return;
|
|
||||||
|
|
||||||
HashSet<Block> remove = new HashSet<Block>();
|
|
||||||
|
|
||||||
for (Block cur : _bucketWater.keySet())
|
|
||||||
if (UtilTime.elapsed(_bucketWater.get(cur).longValue(), 2000)) remove.add(cur);
|
|
||||||
|
|
||||||
for (Block cur : remove)
|
|
||||||
_bucketWater.remove(cur);
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
public void ObsidianCancel(BlockPlaceEvent event)
|
public void ObsidianCancel(BlockPlaceEvent event)
|
||||||
{
|
{
|
||||||
|
@ -87,12 +87,15 @@ public class RunedPickaxe extends RareItem
|
|||||||
if (territory != null && !territory.Owner.equals(playerClan))
|
if (territory != null && !territory.Owner.equals(playerClan))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (event.getBlock().getType() == Material.BEDROCK)
|
if (event.getBlock().getType() == Material.BEDROCK || event.getBlock().getType() == Material.BARRIER)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (ClansManager.getInstance().getNetherManager().getNetherWorld().equals(event.getBlock().getWorld()))
|
if (ClansManager.getInstance().getNetherManager().getNetherWorld().equals(event.getBlock().getWorld()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (ClansManager.getInstance().getBlockRestore().contains(event.getBlock()))
|
||||||
|
return;
|
||||||
|
|
||||||
if (!UtilTime.elapsed(pick._instamineEnabled, 12000))
|
if (!UtilTime.elapsed(pick._instamineEnabled, 12000))
|
||||||
{
|
{
|
||||||
event.getBlock().breakNaturally();
|
event.getBlock().breakNaturally();
|
||||||
|
Loading…
Reference in New Issue
Block a user