- 199
- 1
- 17
Всем доброго утра! Ребят, как сделать когда игрок держит чужой предмет в руках то он начинает быстро ломаться? Вот код на персональный предмет:
Java:
private static final String TAG_PLAYER = "player";
private static final String TAG_PLAYERUUID = "uuid";
private static final String TAG_MYTAG = "mytag";
public Sword() {
super(GlClass.gig);
this.setCreativeTab(GlClass.tabItems);
this.setTextureName("excraft:gig");
}
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
String uuid = getNBTTag(par1ItemStack, TAG_PLAYERUUID);
if (uuid.equals("-")){
setNBTData(par1ItemStack, par3EntityPlayer);
} else if (uuid.equals(par3EntityPlayer.getUniqueID().toString())){
} else {
par3EntityPlayer.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Данный предмет не ваш."));
}
return par1ItemStack;
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) {
String name = getPlayerName(par1ItemStack);
par3List.add(EnumChatFormatting.RED + "Владелец: " + getNBTTag(par1ItemStack, TAG_PLAYER));
}
private String getPlayerName(ItemStack par1ItemStack) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreated(ItemStack stack, World world, EntityPlayer player){
setNBTData(stack, player);
}
private void setNBTData(ItemStack stack, EntityPlayer player) {
NBTTagCompound data = new NBTTagCompound();
data.setString(TAG_PLAYER, player.getDisplayName());
data.setString(TAG_PLAYERUUID, player.getUniqueID().toString());
stack.setTagInfo(TAG_MYTAG, data);
}
private static String getNBTTag(ItemStack stack, String tag) {
if (stack.getTagCompound() != null) {
NBTTagCompound data = stack.getTagCompound().getCompoundTag(TAG_MYTAG);
return data.getString(tag);
} else {
return "-";
}
}
}