Skip to content

Commit 80625d7

Browse files
committed
fix: fix onEffectUpdated
1 parent 389d66b commit 80625d7

3 files changed

Lines changed: 22 additions & 37 deletions

File tree

src/legacy/api/EventAPI.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,7 @@ void EnableEventListener(int eventId) {
560560
lse::events::player::RemoveEffectEvent();
561561
break;
562562
case EVENT_TYPES::onEffectUpdated:
563-
lse::events::entity::EffectUpdateEvent();
563+
lse::events::player::AddEffectEvent();
564564
break;
565565

566566
case EVENT_TYPES::onUseRespawnAnchor:

src/lse/events/EntityEvents.cpp

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -373,33 +373,6 @@ LL_TYPE_STATIC_HOOK(
373373
origin(owner, sourcePlayer, actionIndex, sceneName);
374374
}
375375

376-
LL_TYPE_STATIC_HOOK(
377-
EffectUpdateHook,
378-
HookPriority::Normal,
379-
MinecraftEventing,
380-
&MinecraftEventing::fireEventMobEffectChanged,
381-
void,
382-
::Mob& mob,
383-
::MobEffectInstance const& effectInstance,
384-
::MinecraftEventing::ChangeType change
385-
) {
386-
IF_LISTENED(EVENT_TYPES::onEffectUpdated) {
387-
if (isServerThread() && mob.isPlayer()) {
388-
if (!CallEvent(
389-
EVENT_TYPES::onEffectUpdated,
390-
PlayerClass::newPlayer(&reinterpret_cast<Player&>(mob)),
391-
String::newString(MobEffect::mMobEffects()[effectInstance.mId]->mComponentName->getString()),
392-
Number::newNumber(effectInstance.mAmplifier),
393-
Number::newNumber(effectInstance.mDuration->mValue)
394-
)) {
395-
return;
396-
}
397-
}
398-
}
399-
IF_LISTENED_END(EVENT_TYPES::onEffectUpdated);
400-
origin(mob, effectInstance, change);
401-
}
402-
403376
namespace Transformation {
404377
std::pair<EntityId, Actor*> currentActor = {{}, nullptr};
405378
LL_TYPE_INSTANCE_HOOK(
@@ -504,7 +477,6 @@ void ProjectileHitBlockEvent() { static ll::memory::HookRegistrar<ProjectileHitB
504477
void MobHurtEvent() { static ll::memory::HookRegistrar<MobHurtHook> reg; }
505478
void NpcCommandEvent() { static ll::memory::HookRegistrar<NpcCommandHook> reg; }
506479
void EndermanTakeBlockEvent() { static ll::memory::HookRegistrar<EndermanTakeBlockHook> reg; }
507-
void EffectUpdateEvent() { static ll::memory::HookRegistrar<EffectUpdateHook> reg; }
508480
void TransformationEvent() {
509481
static ll::memory::HookRegistrar<Transformation::addEntityHook, Transformation::TransformedActorHook> reg;
510482
}

src/lse/events/PlayerEvents.cpp

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -609,14 +609,26 @@ LL_TYPE_INSTANCE_HOOK(
609609
) {
610610
IF_LISTENED(EVENT_TYPES::onEffectAdded) {
611611
if (isServerThread() && isPlayer()) {
612-
if (!CallEvent(
613-
EVENT_TYPES::onEffectAdded,
614-
PlayerClass::newPlayer(reinterpret_cast<Player*>(this)),
615-
String::newString(MobEffect::mMobEffects()[effect.mId]->mComponentName->getString()),
616-
Number::newNumber(effect.mAmplifier),
617-
Number::newNumber(effect.mDuration->mValue)
618-
)) {
619-
return;
612+
if (getEffect(effect.mId)) {
613+
if (!CallEvent(
614+
EVENT_TYPES::onEffectUpdated,
615+
PlayerClass::newPlayer(reinterpret_cast<Player*>(this)),
616+
String::newString(MobEffect::mMobEffects()[effect.mId]->mComponentName->getString()),
617+
Number::newNumber(effect.mAmplifier),
618+
Number::newNumber(effect.mDuration->mValue)
619+
)) {
620+
return;
621+
}
622+
} else {
623+
if (!CallEvent(
624+
EVENT_TYPES::onEffectAdded,
625+
PlayerClass::newPlayer(reinterpret_cast<Player*>(this)),
626+
String::newString(MobEffect::mMobEffects()[effect.mId]->mComponentName->getString()),
627+
Number::newNumber(effect.mAmplifier),
628+
Number::newNumber(effect.mDuration->mValue)
629+
)) {
630+
return;
631+
}
620632
}
621633
}
622634
}
@@ -701,4 +713,5 @@ void InteractEntityEvent() { static ll::memory::HookRegistrar<InteractEntityHook
701713
void AddEffectEvent() { static ll::memory::HookRegistrar<AddEffectHook> reg; }
702714
void RemoveEffectEvent() { static ll::memory::HookRegistrar<RemoveEffectHook> reg; }
703715
void BlockInteractedEvent() { static ll::memory::HookRegistrar<BlockInteractedHook> reg; }
716+
void EffectUpdateEvent() { AddEffectEvent(); }
704717
} // namespace lse::events::player

0 commit comments

Comments
 (0)