Skip to content

Commit 109b9cd

Browse files
committed
fix: fix onContainerChange
1 parent 046923f commit 109b9cd

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

src/lse/events/EventHooks.cpp

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -269,17 +269,20 @@ LL_TYPE_INSTANCE_HOOK(
269269
ItemStack const& newItem
270270
) {
271271
IF_LISTENED(EVENT_TYPES::onContainerChange) {
272-
Player* player = ll::memory::dAccess<Player*>(this, 216); // IDA LevelContainerModel::LevelContainerModel
273-
if (player->hasOpenContainer()) {
274-
if (!CallEvent(
275-
EVENT_TYPES::onContainerChange,
276-
PlayerClass::newPlayer(player),
277-
BlockClass::newBlock(ll::memory::dAccess<BlockPos>(this, 224), player->getDimensionId()),
278-
Number::newNumber(slotNumber + this->_getContainerOffset()),
279-
ItemClass::newItem(&const_cast<ItemStack&>(oldItem)),
280-
ItemClass::newItem(&const_cast<ItemStack&>(newItem))
281-
)) {
282-
return;
272+
Actor* actor = _getEntity();
273+
if (actor && actor->isType(ActorType::Player)) {
274+
Player* player = static_cast<Player*>(actor);
275+
if (player->hasOpenContainer()) {
276+
if (!CallEvent(
277+
EVENT_TYPES::onContainerChange,
278+
PlayerClass::newPlayer(player),
279+
BlockClass::newBlock(ll::memory::dAccess<BlockPos>(this, 224), player->getDimensionId()),
280+
Number::newNumber(slotNumber + this->_getContainerOffset()),
281+
ItemClass::newItem(&const_cast<ItemStack&>(oldItem)),
282+
ItemClass::newItem(&const_cast<ItemStack&>(newItem))
283+
)) {
284+
return;
285+
}
283286
}
284287
}
285288
}

0 commit comments

Comments
 (0)