mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-14 16:04:40 +01:00
Add PlayerLevelStatueEvent & PlayerUseSkillEvent
This commit is contained in:
@@ -18,12 +18,14 @@ import emu.grasscutter.net.proto.AbilityMetaSetKilledStateOuterClass.AbilityMeta
|
||||
import emu.grasscutter.net.proto.AbilityScalarTypeOuterClass.AbilityScalarType;
|
||||
import emu.grasscutter.net.proto.AbilityScalarValueEntryOuterClass.AbilityScalarValueEntry;
|
||||
import emu.grasscutter.net.proto.ModifierActionOuterClass.ModifierAction;
|
||||
import emu.grasscutter.server.event.player.PlayerUseSkillEvent;
|
||||
import io.netty.util.concurrent.FastThreadLocalThread;
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.*;
|
||||
import lombok.Getter;
|
||||
import org.reflections.Reflections;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.*;
|
||||
|
||||
public final class AbilityManager extends BasePlayerManager {
|
||||
private static final HashMap<AbilityModifierAction.Type, AbilityActionHandler> actionHandlers =
|
||||
new HashMap<>();
|
||||
@@ -263,7 +265,8 @@ public final class AbilityManager extends BasePlayerManager {
|
||||
}
|
||||
|
||||
// Check if the caster matches the player.
|
||||
if (player.getTeamManager().getCurrentAvatarEntity().getId() != casterId) {
|
||||
var currentAvatar = player.getTeamManager().getCurrentAvatarEntity();
|
||||
if (currentAvatar == null || currentAvatar.getId() != casterId) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -272,6 +275,11 @@ public final class AbilityManager extends BasePlayerManager {
|
||||
return;
|
||||
}
|
||||
|
||||
// Invoke PlayerUseSkillEvent.
|
||||
var event = new PlayerUseSkillEvent(player,
|
||||
skillData, currentAvatar.getAvatar());
|
||||
if (!event.call()) return;
|
||||
|
||||
// Check if the skill is an elemental burst.
|
||||
if (skillData.getCostElemVal() <= 0) {
|
||||
return;
|
||||
|
||||
@@ -15,6 +15,7 @@ import emu.grasscutter.game.props.PlayerProperty;
|
||||
import emu.grasscutter.game.quest.enums.QuestContent;
|
||||
import emu.grasscutter.net.proto.ChangeHpReasonOuterClass.ChangeHpReason;
|
||||
import emu.grasscutter.net.proto.PropChangeReasonOuterClass.PropChangeReason;
|
||||
import emu.grasscutter.server.event.player.PlayerLevelStatueEvent;
|
||||
import emu.grasscutter.server.packet.send.PacketEntityFightPropChangeReasonNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketLevelupCityRsp;
|
||||
@@ -303,5 +304,8 @@ public class SotSManager extends BasePlayerManager {
|
||||
player.sendPacket(
|
||||
new PacketLevelupCityRsp(
|
||||
sceneId, cityInfo.getLevel(), cityId, cityInfo.getNumCrystal(), areaId, 0));
|
||||
|
||||
// Call PlayerLevelStatueEvent.
|
||||
new PlayerLevelStatueEvent(this.getPlayer(), cityInfo, sceneId, areaId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user