- 1,031
- 19
- 87
Доброго времени суток. С событиями дело имею впервые, так что не судите строго. Задумка состоит вот в чем: когда умирает конкретный моб от конкретного оружия, при наличии у игрока в инвентаре (будь то хотбар или вторая рука) конкретного предмета, его убрать (если несколько то уменьшить, но это я умею) и в инвентарь игрока добавить другой предмет. По логике представляю себе это так: умирает сущность, если умирает от конкретного оружия продолжить, получить её ID, в соответствии с полученным, получить инвентарь игрока, проверить его на наличие ItemStack-а нужного предмета, по необходимости его уменьшить и в инвентарь игрока добавить новый или добавить в старый ItemStack другого предмета. Опять же, могу ошибаться, ибо первый раз делаю событие и прошу не разводить тут как обычно. Вот тестовая безрезультатная попытка:
Код:
public class EventScytheUsed extends Event {
public LivingDeathEvent getLivingDeathEvent(EntityMob mob, EntityPlayer player) {
ItemStack stack = new ItemStack(Items.GLASS_BOTTLE);
if (player.inventory.getItemStack() == stack) {
if (!player.capabilities.isCreativeMode) {
stack.shrink(1);
}
player.addItemStackToInventory(new ItemStack(Items.EXPERIENCE_BOTTLE));
}
return this.getLivingDeathEvent(mob, player);
}
}
Код:
public class EventsInit {
public static void registerEvents() {
MinecraftForge.EVENT_BUS.register(EventScytheUsed.class);
}
}
Код:
public class CommonProxy {
public void preInit(FMLPreInitializationEvent event) {
ItemsInit.registerItems();
BlocksInit.registerBlocks();
}
public void init(FMLInitializationEvent event) {
RecipesInit.registerRecipes();
GeneratorsInit.registerGenerators();
EventsInit.registerEvents();
}
}