現在、サンドボックス Java ゲーム Minecraft で mod を開発しています。右クリックでプレイヤーを空中に飛ばすアイテムを作成しました。残念ながら、これは機能せず、ゲーム内で能力を有効にしようとしても反応がありません。プログラムのコードは次のとおりです。
package net.minecraft.src;
public class PhageWings extends Item{
public PhageWings(int par1){
super(par1);
this.maxStackSize = 1;
this.setCreativeTab(CreativeTabs.tabTransport);
}
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer){
entityplayer.motionY += 1; //fling player up in the air
return itemstack;
}
}
コードも次のようになります。
public class PhageWand extends Item {
public PhageWand(int par1) {
super(par1);
this.maxStackSize = 1;
this.setCreativeTab(CreativeTabs.tabTransport);
}
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
{
if (par3EntityPlayer.capabilities.isCreativeMode)
{
return par1ItemStack;
}
else if (par3EntityPlayer.ridingEntity != null)
{
return par1ItemStack;
}
else
{
--par1ItemStack.stackSize;
par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
if (!par2World.isRemote)
{
par2World.spawnEntityInWorld(new EntityEnderPearl(par2World, par3EntityPlayer));
}
return par1ItemStack;
}
}
}