Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.gamerforea.bukkit;
- import java.lang.reflect.Method;
- import org.bukkit.Bukkit;
- import org.bukkit.block.Block;
- import org.bukkit.entity.Player;
- import org.bukkit.event.block.BlockBreakEvent;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.player.EntityPlayer;
- public class EventUtils
- {
- private static final Method getBukkitEntity;
- public static final boolean cantBreak(EntityPlayer player, int x, int y, int z)
- {
- try
- {
- Block blockBukkit = Bukkit.getWorld(player.worldObj.getWorldInfo().getWorldName()).getBlockAt(x, y, z);
- Player playerBukkit = (Player) toBukkitEntity(player);
- BlockBreakEvent event = new BlockBreakEvent(blockBukkit, playerBukkit);
- Bukkit.getPluginManager().callEvent(event);
- return event.isCancelled();
- }
- catch (Throwable throwable)
- {
- System.err.println(String.format("Failed call BlockBreakEvent: %s has break on X:%d, Y:%d, Z:%d", player.toString(), x, y, z));
- return true;
- }
- }
- public static final org.bukkit.entity.Entity toBukkitEntity(Entity entity) throws Exception
- {
- return (org.bukkit.entity.Entity) getBukkitEntity.invoke(entity);
- }
- static
- {
- try
- {
- getBukkitEntity = Entity.class.getDeclaredMethod("getBukkitEntity");
- }
- catch (Throwable throwable)
- {
- throw new RuntimeException("Failed hooking Entity.getBukkitEntity() method!", throwable);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement