boolean isValidItem, isPrevValidItem;
Entity entity;
@SubscribeEvent
public void onTickPlayer(TickEvent.PlayerTickEvent event)
{
if (event.side == Side.SERVER)
{
//чисто для примера проверяется слот кирасы
isValidItem = (event.player.inventory.armorInventory[2] != null && event.player.inventory.armorInventory[2].getItem().equals(/*предмет*/));
if (isValidItem != isPrevValidItem)
{
if(entity == null)
{
entity = new Питомец(/*здесь может быть ваш конструктор*/);
event.player.worldObj.spawnEntityInWorld(entity) //спавним питомца
}
else entity.setDead();
}
isPrevValidItem = isValidItem;
}
}
А если будет рестарт на сервере,то ентити поменяет свой ид и будет удален? Или нетГлобальные переменные
public boolean hasItem(Item item) {
int i = this.func_146029_c(item);
return i >= 0;
}
private int func_146029_c(Item item) {
for (int i = 0; i < this.mainInventory.length; ++i) {
if (this.mainInventory[i] != null && this.mainInventory[i].getItem() == item) {
return i;
}
}
return - 1;
}
BiomeGenBase[] allBiomes = Arrays.stream(BiomeGenBase.biomeList).filter(b -> b != null).toArray(BiomeGenBase[]::new);
EntityRegistry.addSpawn(EntityHCZombie.class, 10, 4, 4, EnumCreatureType.monster, allBiomes);