mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-11-25 10:51:47 +00:00
Invoke AbilityManager#onSkillStart
and AbilityManager#onSkillEnd
This commit is contained in:
parent
6420428660
commit
7df41f616b
@ -11,20 +11,23 @@ import emu.grasscutter.utils.Utils;
|
||||
|
||||
@Opcodes(PacketOpcodes.ClientAbilityInitFinishNotify)
|
||||
public class HandlerClientAbilityInitFinishNotify extends PacketHandler {
|
||||
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
ClientAbilityInitFinishNotify notif = ClientAbilityInitFinishNotify.parseFrom(payload);
|
||||
|
||||
Player player = session.getPlayer();
|
||||
|
||||
// Call skill end in the player's ability manager.
|
||||
player.getAbilityManager().onSkillEnd(player);
|
||||
|
||||
for (AbilityInvokeEntry entry : notif.getInvokesList()) {
|
||||
player.getAbilityManager().onAbilityInvoke(entry);
|
||||
player.getClientAbilityInitFinishHandler().addEntry(entry.getForwardType(), entry);
|
||||
}
|
||||
|
||||
|
||||
if (notif.getInvokesList().size() > 0) {
|
||||
session.getPlayer().getClientAbilityInitFinishHandler().update(session.getPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -12,10 +12,16 @@ public class HandlerEvtDoSkillSuccNotify extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
EvtDoSkillSuccNotify notify = EvtDoSkillSuccNotify.parseFrom(payload);
|
||||
|
||||
var player = session.getPlayer();
|
||||
int skillId = notify.getSkillId();
|
||||
int casterId = notify.getCasterId();
|
||||
|
||||
session.getPlayer().getStaminaManager().handleEvtDoSkillSuccNotify(session, skillId, casterId);
|
||||
session.getPlayer().getEnergyManager().handleEvtDoSkillSuccNotify(session, skillId, casterId);
|
||||
// Call skill perform in the player's ability manager.
|
||||
player.getAbilityManager().onSkillStart(session.getPlayer(), skillId, casterId);
|
||||
|
||||
// Handle skill notify in other managers.
|
||||
player.getStaminaManager().handleEvtDoSkillSuccNotify(session, skillId, casterId);
|
||||
player.getEnergyManager().handleEvtDoSkillSuccNotify(session, skillId, casterId);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user