Fire bug fix
This commit is contained in:
parent
f5ecb69722
commit
8a4f99065d
@ -18,6 +18,7 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Enderman;
|
import org.bukkit.entity.Enderman;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
@ -1464,6 +1465,35 @@ public class EngineMain extends EngineAbstract
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check for punching out fires where players should not be able to
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
@EventHandler(priority = EventPriority.NORMAL)
|
||||||
|
public void blockBuild(PlayerInteractEvent event)
|
||||||
|
{
|
||||||
|
// ... if it is a left click on block ...
|
||||||
|
if (event.getAction() != Action.LEFT_CLICK_BLOCK) return;
|
||||||
|
|
||||||
|
// .. and the clicked block is not null ...
|
||||||
|
if (event.getClickedBlock() == null) return;
|
||||||
|
|
||||||
|
Block potentialBlock = event.getClickedBlock().getRelative(BlockFace.UP, 1);
|
||||||
|
|
||||||
|
// .. and the potential block is not null ...
|
||||||
|
if (potentialBlock == null) return;
|
||||||
|
|
||||||
|
// ... and we're only going to check for fire ... (checking everything else would be bad performance wise)
|
||||||
|
if (potentialBlock.getType() != Material.FIRE) return;
|
||||||
|
|
||||||
|
// ... check if they can build ...
|
||||||
|
if (canPlayerBuildAt(event.getPlayer(), PS.valueOf(potentialBlock), true)) return;
|
||||||
|
|
||||||
|
// ... nope, cancel it
|
||||||
|
event.setCancelled(true);
|
||||||
|
|
||||||
|
// .. and compensate for client side prediction
|
||||||
|
event.getPlayer().sendBlockChange(potentialBlock.getLocation(), potentialBlock.getType(), potentialBlock.getState().getRawData());
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// ASSORTED BUILD AND INTERACT
|
// ASSORTED BUILD AND INTERACT
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
Loading…
Reference in New Issue
Block a user