Hi! I want to add events to mod RailCraft(6.17.00). It is have API.
package railcraft.common.api.carts.bore;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
/**
* This interface can be implemented by a block class to control whether a block can be
* mined by the bore without having to force the user to edit the configuration file.
*
* If the block is found to implement this class, any setting in the configuration
* is ignored for that block.
*
* Generally, the reason blocks are not minable by default is to prevent you
* from intentionally or accidentally boring through your base.
*
* @author CovertJaguar <railcraft.wikispaces.com>
*/
public interface IMineable
{
/**
* Called when the Bore attempts to mine the block. If it returns false,
* the Bore will halt operation.
*
* @param world The World
* @param i x-Coord
* @param j y-Coord
* @param k z-Coord
* @param bore The Bore entity
* @param head The BoreHead, item implements IBoreHead.
* @return true if mineable
* @see IBoreHead
*/
public boolean canMineBlock(World world, int i, int j, int k, EntityMinecart bore, ItemStack head);
}
How i use it in my mod. If i want add check too all Block.
My first code
package Testmodul;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.block.BlockBreakEvent;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import railcraft.common.api.carts.bore.IMineable;
import railcraft.common.api.core.items.IMinecartItem;
import railcraft.common.carts.ItemTunnelBore;
import railcraft.common.modules.RailcraftModule;
public class ModulMCPC implements IMineable,IMinecartItem {
String owner = "[RailCraft]";
private Player player;
private Block block;
@Override
public boolean canMineBlock(World world, int x, int y, int z,
EntityMinecart var5, ItemStack var6) {
player = this.getPayer(world);
block = this.getBlock(world, x, y, z);
BlockBreakEvent event = this.getEvent(block,player);
world.getServer().getPluginManager().callEvent(event);
if (event.isCancelled())
return false;
return true;
}
public Player getPayer(World world){
return world.getServer().getPlayer(this.owner);
}
public Block getBlock(World world,int x, int y, int z)
{
return world.getWorld().getBlockAt(x, y, z);
}
public BlockBreakEvent getEvent(Block block,Player player)
{
return new org.bukkit.event.block.BlockBreakEvent(block , player);
}
@Override
public boolean canBePlacedByNonPlayer(ItemStack var1) {
return false;
}
@Override
public EntityMinecart placeCart(String ownercrart, ItemStack var2, World var3,
int var4, int var5, int var6) {
// TODO Auto-generated method stub
if(var2.getItem() instanceof ItemTunnelBore)
this.owner = ownercrart;
return null;
}
}
How i load it with forge?