mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-02-13 13:13:32 +08:00
Add PlayerFinishDungeonEvent
This commit is contained in:
parent
4f34970005
commit
bdd3cbbcd9
@ -3,34 +3,26 @@ package emu.grasscutter.game.dungeons;
|
|||||||
import emu.grasscutter.Grasscutter;
|
import emu.grasscutter.Grasscutter;
|
||||||
import emu.grasscutter.data.GameData;
|
import emu.grasscutter.data.GameData;
|
||||||
import emu.grasscutter.data.common.ItemParamData;
|
import emu.grasscutter.data.common.ItemParamData;
|
||||||
import emu.grasscutter.data.excels.dungeon.DungeonData;
|
import emu.grasscutter.data.excels.dungeon.*;
|
||||||
import emu.grasscutter.data.excels.dungeon.DungeonPassConfigData;
|
|
||||||
import emu.grasscutter.game.activity.trialavatar.TrialAvatarActivityHandler;
|
import emu.grasscutter.game.activity.trialavatar.TrialAvatarActivityHandler;
|
||||||
import emu.grasscutter.game.dungeons.dungeon_results.BaseDungeonResult;
|
import emu.grasscutter.game.dungeons.dungeon_results.BaseDungeonResult;
|
||||||
import emu.grasscutter.game.dungeons.enums.DungeonPassConditionType;
|
import emu.grasscutter.game.dungeons.enums.DungeonPassConditionType;
|
||||||
import emu.grasscutter.game.inventory.GameItem;
|
import emu.grasscutter.game.inventory.GameItem;
|
||||||
import emu.grasscutter.game.player.Player;
|
import emu.grasscutter.game.player.Player;
|
||||||
import emu.grasscutter.game.props.ActionReason;
|
import emu.grasscutter.game.props.*;
|
||||||
import emu.grasscutter.game.props.ActivityType;
|
import emu.grasscutter.game.quest.enums.*;
|
||||||
import emu.grasscutter.game.props.WatcherTriggerType;
|
import emu.grasscutter.game.world.*;
|
||||||
import emu.grasscutter.game.quest.enums.LogicType;
|
|
||||||
import emu.grasscutter.game.quest.enums.QuestContent;
|
|
||||||
import emu.grasscutter.game.world.Position;
|
|
||||||
import emu.grasscutter.game.world.Scene;
|
|
||||||
import emu.grasscutter.scripts.constants.EventType;
|
import emu.grasscutter.scripts.constants.EventType;
|
||||||
import emu.grasscutter.scripts.data.ScriptArgs;
|
import emu.grasscutter.scripts.data.ScriptArgs;
|
||||||
import emu.grasscutter.server.packet.send.PacketDungeonWayPointNotify;
|
import emu.grasscutter.server.event.player.PlayerFinishDungeonEvent;
|
||||||
import emu.grasscutter.server.packet.send.PacketGadgetAutoPickDropInfoNotify;
|
import emu.grasscutter.server.packet.send.*;
|
||||||
import emu.grasscutter.utils.Utils;
|
import emu.grasscutter.utils.Utils;
|
||||||
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
import it.unimi.dsi.fastutil.ints.*;
|
||||||
import it.unimi.dsi.fastutil.ints.IntSet;
|
import lombok.*;
|
||||||
import java.util.*;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import java.util.stream.IntStream;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import lombok.Getter;
|
import java.util.*;
|
||||||
import lombok.NonNull;
|
import java.util.stream.*;
|
||||||
import lombok.val;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO handle time limits TODO handle respawn points TODO handle team wipes and respawns TODO check
|
* TODO handle time limits TODO handle respawn points TODO handle team wipes and respawns TODO check
|
||||||
@ -288,6 +280,12 @@ public final class DungeonManager {
|
|||||||
public void finishDungeon() {
|
public void finishDungeon() {
|
||||||
this.notifyEndDungeon(true);
|
this.notifyEndDungeon(true);
|
||||||
this.endDungeon(BaseDungeonResult.DungeonEndReason.COMPLETED);
|
this.endDungeon(BaseDungeonResult.DungeonEndReason.COMPLETED);
|
||||||
|
|
||||||
|
// Call PlayerFinishDungeonEvent.
|
||||||
|
new PlayerFinishDungeonEvent(
|
||||||
|
this.getScene().getPlayers(),
|
||||||
|
this.getScene(), this
|
||||||
|
).call();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void quitDungeon() {
|
public void quitDungeon() {
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
package emu.grasscutter.server.event.player;
|
||||||
|
|
||||||
|
import emu.grasscutter.game.dungeons.DungeonManager;
|
||||||
|
import emu.grasscutter.game.player.Player;
|
||||||
|
import emu.grasscutter.game.world.Scene;
|
||||||
|
import emu.grasscutter.server.event.Event;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public final class PlayerFinishDungeonEvent extends Event {
|
||||||
|
private final List<Player> players;
|
||||||
|
private final Scene dungeon;
|
||||||
|
private final DungeonManager manager;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user