Уважаемые люди, помогите с проблемой.
Я написал следующее кодище
Суть происходящего в следующем: как только игрок что-то скрафтил, в поля класса saveItem и saveSlot запоминается в какой слот и какие итемы положил игрок для крафта. Можно сказать, что мод запомнил последний используемый рецепт.
Теперь требуется сделать тоже самое, но при торговле с НПЦ, т.е. запомнить, что положил игрок в слоты для торговли. Метод сохранения есть, и по нажатию на забинденную кнопку он отрабатывает:
А хочется сделать автоматическое запоминание, как при крафте, но я не знаю какой Event обработать, и есть ли он.
Вобщем как отловить факт совершения сделки с НПЦ?
Я написал следующее кодище
Код:
@SubscribeEvent
public void craftEvent(PlayerEvent.ItemCraftedEvent event)
{
if (event.player.worldObj.isRemote)
{
saveTemplate(event.craftMatrix, event.player.openContainer);
}
}
private void saveTemplate(IInventory inv, Container container)
{
saveItem.clear();
saveSlot.clear();
for (int i = 0; i < inv.getSizeInventory(); i++)
{
Slot slot = container.getSlotFromInventory(inv, i);
Integer idSlot = slot.slotNumber;
ItemStack stack = slot.getStack();
saveItem.add(stack);
saveSlot.add(idSlot);
}
}
Суть происходящего в следующем: как только игрок что-то скрафтил, в поля класса saveItem и saveSlot запоминается в какой слот и какие итемы положил игрок для крафта. Можно сказать, что мод запомнил последний используемый рецепт.
Теперь требуется сделать тоже самое, но при торговле с НПЦ, т.е. запомнить, что положил игрок в слоты для торговли. Метод сохранения есть, и по нажатию на забинденную кнопку он отрабатывает:
Код:
private saveMerchant (Container container)
{
ContainerMerchant conMerchant = (ContainerMerchant)container;
saveTemplate(conMerchant.getMerchantInventory(), container);
}
А хочется сделать автоматическое запоминание, как при крафте, но я не знаю какой Event обработать, и есть ли он.
Вобщем как отловить факт совершения сделки с НПЦ?