Skip to content

Commit 97e4ceb

Browse files
committed
fix: fix onSetArmor, onEffectAdded and onEffectRemoved #299
1 parent 9f59507 commit 97e4ceb

File tree

1 file changed

+39
-33
lines changed

1 file changed

+39
-33
lines changed

src/lse/events/PlayerEvents.cpp

Lines changed: 39 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -537,23 +537,25 @@ LL_TYPE_INSTANCE_HOOK(ConsumeTotemHook, HookPriority::Normal, Player, &Player::$
537537
LL_TYPE_INSTANCE_HOOK(
538538
SetArmorHook,
539539
HookPriority::Normal,
540-
ServerPlayer,
541-
&ServerPlayer::$setArmor,
540+
Actor,
541+
&Actor::$setArmor,
542542
void,
543543
SharedTypes::Legacy::ArmorSlot const armorSlot,
544544
ItemStack const& item
545545
) {
546-
IF_LISTENED(EVENT_TYPES::onSetArmor) {
547-
if (!CallEvent(
548-
EVENT_TYPES::onSetArmor,
549-
PlayerClass::newPlayer(this),
550-
Number::newNumber((int)armorSlot),
551-
ItemClass::newItem(&const_cast<ItemStack&>(item))
552-
)) {
553-
return;
546+
if (isPlayer()) {
547+
IF_LISTENED(EVENT_TYPES::onSetArmor) {
548+
if (!CallEvent(
549+
EVENT_TYPES::onSetArmor,
550+
PlayerClass::newPlayer(reinterpret_cast<Player*>(this)),
551+
Number::newNumber((int)armorSlot),
552+
ItemClass::newItem(&const_cast<ItemStack&>(item))
553+
)) {
554+
return;
555+
}
554556
}
557+
IF_LISTENED_END(EVENT_TYPES::onSetArmor);
555558
}
556-
IF_LISTENED_END(EVENT_TYPES::onSetArmor);
557559
origin(armorSlot, item);
558560
}
559561

@@ -583,44 +585,48 @@ LL_TYPE_INSTANCE_HOOK(
583585
LL_TYPE_INSTANCE_HOOK(
584586
AddEffectHook,
585587
HookPriority::Normal,
586-
Player,
587-
&Player::addEffect,
588+
Actor,
589+
&Actor::addEffect,
588590
void,
589591
::MobEffectInstance const& effect
590592
) {
591-
IF_LISTENED(EVENT_TYPES::onEffectAdded) {
592-
if (!CallEvent(
593-
EVENT_TYPES::onEffectAdded,
594-
PlayerClass::newPlayer(this),
595-
String::newString(MobEffect::mMobEffects()[effect.mId]->mComponentName->getString()),
596-
Number::newNumber(effect.mAmplifier),
597-
Number::newNumber(effect.mDuration->mValue)
598-
)) {
599-
return;
593+
if (isPlayer()) {
594+
IF_LISTENED(EVENT_TYPES::onEffectAdded) {
595+
if (!CallEvent(
596+
EVENT_TYPES::onEffectAdded,
597+
PlayerClass::newPlayer(reinterpret_cast<Player*>(this)),
598+
String::newString(MobEffect::mMobEffects()[effect.mId]->mComponentName->getString()),
599+
Number::newNumber(effect.mAmplifier),
600+
Number::newNumber(effect.mDuration->mValue)
601+
)) {
602+
return;
603+
}
600604
}
605+
IF_LISTENED_END(EVENT_TYPES::onEffectAdded);
601606
}
602-
IF_LISTENED_END(EVENT_TYPES::onEffectAdded);
603607
origin(effect);
604608
}
605609

606610
LL_TYPE_INSTANCE_HOOK(
607611
RemoveEffectHook,
608612
HookPriority::Normal,
609-
Player,
610-
&Player::$onEffectRemoved,
613+
Actor,
614+
&Actor::$onEffectRemoved,
611615
void,
612616
::MobEffectInstance& effect
613617
) {
614-
IF_LISTENED(EVENT_TYPES::onEffectRemoved) {
615-
if (!CallEvent(
616-
EVENT_TYPES::onEffectRemoved,
617-
PlayerClass::newPlayer(this),
618-
String::newString(MobEffect::mMobEffects()[effect.mId]->mComponentName->getString())
619-
)) {
620-
return;
618+
if (isPlayer()) {
619+
IF_LISTENED(EVENT_TYPES::onEffectRemoved) {
620+
if (!CallEvent(
621+
EVENT_TYPES::onEffectRemoved,
622+
PlayerClass::newPlayer(reinterpret_cast<Player*>(this)),
623+
String::newString(MobEffect::mMobEffects()[effect.mId]->mComponentName->getString())
624+
)) {
625+
return;
626+
}
621627
}
628+
IF_LISTENED_END(EVENT_TYPES::onEffectRemoved);
622629
}
623-
IF_LISTENED_END(EVENT_TYPES::onEffectRemoved);
624630
origin(effect);
625631
}
626632

0 commit comments

Comments
 (0)