Вынеси эту логику в обработчик события TickEvent.PlayerTick. В нем не учитывай количество предметов, просто проверяй факт их присутствияКак сделать так что бы если в инвентаре 2 одинаковых предмета, один из них не работал
Так ведь есть другие способы получить предмет.отменяй эвент подбора или выкидывай его, если нашел второй
Вот как раз и другие способы получение предмета у меня есть, и тут проблема1) отменяй эвент подбора или выкидывай его, если нашел второй.
2)Так ведь есть другие способы получить предмет.
Взять из сундука. Другой игрок дал через какую-то систему обмена.
1. Как сделать так что бы если в инвентаре 2 одинаковых предмета, один из них не работал
Скорее всего автор имел ввиду, что два итем стака одного предмета лежат в инвентареЗАЧЕМ два одинаковых предмета?
Ну, разные люди, разные понятия, да.два итем стака одного предмета
Так тогда вообще никакой не будет хилитьТак через тики игрока проверяй наличие предмета и Хилл делай..
Чем тебе не нравится это решение?Вынеси эту логику в обработчик события TickEvent.PlayerTick. В нем не учитывай количество предметов, просто проверяй факт их присутствия
Если неправильно сделать, то не будеттогда вообще никакой не будет хилить
@SubscribeEvent
public void onHeal(TickEvent.PlayerTickEvent event) {
if(!event.player.worldObj.isRemote) {
if(MinecraftServer.getServer().getTickCounter() % 100 == 0) {
if(event.player.inventory.hasItem(Items.apple)) {
event.player.heal(1F);
}
}
}
}
FMLCommonHandler.instance().bus().register(new твой класс());
event.phase
еще проверять не забывай в этом лисенере, ну и тики можно брать с player.ticksExisted