mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-08-09 14:32:25 +00:00
fix disenchanting when dropping item from inv
This commit is contained in:
parent
b97fe888d1
commit
f364a5bb07
|
|
@ -260,15 +260,18 @@ shared_ptr<ItemInstance> AbstractContainerMenu::clicked(int slotIndex, int butto
|
||||||
{
|
{
|
||||||
int outId = carried->id, outCount = carried->count, outAux = carried->getAuxValue();
|
int outId = carried->id, outCount = carried->count, outAux = carried->getAuxValue();
|
||||||
if (FourKitBridge::FirePlayerDropItem(
|
if (FourKitBridge::FirePlayerDropItem(
|
||||||
player->entityId, carried->id, carried->count, carried->getAuxValue(),
|
player->entityId, carried->id, carried->count, carried->getAuxValue(),
|
||||||
&outId, &outCount, &outAux))
|
&outId, &outCount, &outAux))
|
||||||
dropAllowed = false;
|
dropAllowed = false;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player->drop(std::make_shared<ItemInstance>(outId, outCount, outAux));
|
carried->id = outId;
|
||||||
inventory->setCarried(nullptr);
|
carried->count = outCount;
|
||||||
dropAllowed = false;
|
carried->setAuxValue(outAux);
|
||||||
}
|
player->drop(carried);
|
||||||
|
inventory->setCarried(nullptr);
|
||||||
|
dropAllowed = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (dropAllowed)
|
if (dropAllowed)
|
||||||
{
|
{
|
||||||
|
|
@ -290,16 +293,19 @@ shared_ptr<ItemInstance> AbstractContainerMenu::clicked(int slotIndex, int butto
|
||||||
{
|
{
|
||||||
int outId = carried->id, outCount = 1, outAux = carried->getAuxValue();
|
int outId = carried->id, outCount = 1, outAux = carried->getAuxValue();
|
||||||
if (FourKitBridge::FirePlayerDropItem(
|
if (FourKitBridge::FirePlayerDropItem(
|
||||||
player->entityId, carried->id, 1, carried->getAuxValue(),
|
player->entityId, carried->id, 1, carried->getAuxValue(),
|
||||||
&outId, &outCount, &outAux))
|
&outId, &outCount, &outAux))
|
||||||
dropAllowed = false;
|
dropAllowed = false;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
carried->remove(1);
|
shared_ptr<ItemInstance> dropped = carried->remove(1);
|
||||||
if (carried->count == 0) inventory->setCarried(nullptr);
|
if (carried->count == 0) inventory->setCarried(nullptr);
|
||||||
player->drop(std::make_shared<ItemInstance>(outId, outCount, outAux));
|
dropped->id = outId;
|
||||||
dropAllowed = false;
|
dropped->count = outCount;
|
||||||
}
|
dropped->setAuxValue(outAux);
|
||||||
|
player->drop(dropped);
|
||||||
|
dropAllowed = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (dropAllowed)
|
if (dropAllowed)
|
||||||
{
|
{
|
||||||
|
|
@ -548,7 +554,10 @@ shared_ptr<ItemInstance> AbstractContainerMenu::clicked(int slotIndex, int butto
|
||||||
{
|
{
|
||||||
shared_ptr<ItemInstance> item = slot->remove(dropCount);
|
shared_ptr<ItemInstance> item = slot->remove(dropCount);
|
||||||
slot->onTake(player, item);
|
slot->onTake(player, item);
|
||||||
player->drop(std::make_shared<ItemInstance>(outId, outCount, outAux));
|
item->id = outId;
|
||||||
|
item->count = outCount;
|
||||||
|
item->setAuxValue(outAux);
|
||||||
|
player->drop(item);
|
||||||
dropAllowed = false;
|
dropAllowed = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue