- Баллы
- 68
Вообщем такая проблема нужно накинуть ивенты на мод RailCraft1.4.7(6.17.0.0).
Местные на форуме ответели что это можно реализовать по средствам апи. Сам по себе мод не компелируется. Так-же он сертифицирован. При внесении именений мгновенный краш.
Работаю над фиксом EntityTunnelBore
К нему есть в RailCraft api
Примерно должно применяться так:
Вот код примерно который хочу внедрить
теперь его как-то нужно прикрепить к основному классу Block
Вопрос как это сделать?
Вопрос как по части форжда так и разработке плагинов
Местные на форуме ответели что это можно реализовать по средствам апи. Сам по себе мод не компелируется. Так-же он сертифицирован. При внесении именений мгновенный краш.
Работаю над фиксом EntityTunnelBore
К нему есть в RailCraft 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);
}
Примерно должно применяться так:
Код:
public class newBlock extends Block implements IMineable
Вот код примерно который хочу внедрить
Код:
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;
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;
}
}
теперь его как-то нужно прикрепить к основному классу Block
Вопрос как это сделать?
Вопрос как по части форжда так и разработке плагинов