mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-02 20:26:03 +08:00
add some plugin event
im crazy
This commit is contained in:
@@ -4,6 +4,7 @@ using EggLink.DanhengServer.Internationalization;
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Util;
|
||||
using Spectre.Console;
|
||||
using static EggLink.DanhengServer.GameServer.Plugin.Event.PluginEvent;
|
||||
|
||||
namespace EggLink.DanhengServer.Command.Command;
|
||||
|
||||
@@ -173,6 +174,7 @@ public class CommandManager
|
||||
}
|
||||
else
|
||||
{
|
||||
InvokeOnPlayerUseCommand(sender, input);
|
||||
// player
|
||||
tempTarget = Listener.GetActiveConnection(sender.GetSender());
|
||||
if (tempTarget == null)
|
||||
|
||||
@@ -11,6 +11,7 @@ using EggLink.DanhengServer.GameServer.Server.Packet.Send.Lineup;
|
||||
using EggLink.DanhengServer.GameServer.Server.Packet.Send.Scene;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
using EggLink.DanhengServer.Util;
|
||||
using static EggLink.DanhengServer.GameServer.Plugin.Event.PluginEvent;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Game.Battle;
|
||||
|
||||
@@ -188,6 +189,8 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player)
|
||||
hitMonsterInstance.AddRange(targetList.Where(x => !x.IsAlive).Select(entityMonster =>
|
||||
new HitMonsterInstance(entityMonster.EntityID, MonsterBattleType.DirectDieSkipBattle)));
|
||||
|
||||
InvokeOnPlayerEnterBattle(player, battleInstance);
|
||||
|
||||
await Player.SendPacket(new PacketSceneCastSkillScRsp(req.CastEntityId, battleInstance,
|
||||
hitMonsterInstance));
|
||||
Player.SceneInstance?.ClearSummonUnit();
|
||||
@@ -236,6 +239,8 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player)
|
||||
|
||||
Player.BattleInstance = battleInstance;
|
||||
|
||||
InvokeOnPlayerEnterBattle(player, battleInstance);
|
||||
|
||||
await Player.SendPacket(new PacketSceneEnterStageScRsp(battleInstance));
|
||||
Player.SceneInstance?.ClearSummonUnit();
|
||||
}
|
||||
@@ -293,6 +298,8 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player)
|
||||
Player.BattleInstance = battleInstance;
|
||||
Player.QuestManager!.OnBattleStart(battleInstance);
|
||||
|
||||
InvokeOnPlayerEnterBattle(player, battleInstance);
|
||||
|
||||
await Player.SendPacket(new PacketStartCocoonStageScRsp(battleInstance, cocoonId, wave));
|
||||
Player.SceneInstance?.ClearSummonUnit();
|
||||
}
|
||||
@@ -328,6 +335,8 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player)
|
||||
|
||||
public async ValueTask EndBattle(PVEBattleResultCsReq req)
|
||||
{
|
||||
InvokeOnPlayerQuitBattle(player, req);
|
||||
|
||||
if (Player.BattleInstance == null)
|
||||
{
|
||||
await Player.SendPacket(new PacketPVEBattleResultScRsp());
|
||||
|
||||
@@ -5,6 +5,7 @@ using EggLink.DanhengServer.Database.Inventory;
|
||||
using EggLink.DanhengServer.GameServer.Game.Player;
|
||||
using EggLink.DanhengServer.GameServer.Server.Packet.Send.Challenge;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
using static EggLink.DanhengServer.GameServer.Plugin.Event.PluginEvent;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Game.Challenge;
|
||||
|
||||
@@ -119,6 +120,8 @@ public class ChallengeManager(PlayerInstance player) : BasePlayerManager(player)
|
||||
instance.BossBuffs.Add((int)bossBuffs.BuffTwo);
|
||||
}
|
||||
|
||||
InvokeOnPlayerEnterChallenge(player, instance);
|
||||
|
||||
// Send packet
|
||||
await Player.SendPacket(new PacketStartChallengeScRsp(Player));
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ using EggLink.DanhengServer.GameServer.Server.Packet.Send.Scene;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
using EggLink.DanhengServer.Util;
|
||||
using LineupInfo = EggLink.DanhengServer.Database.Lineup.LineupInfo;
|
||||
using static EggLink.DanhengServer.GameServer.Plugin.Event.PluginEvent;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Game.Lineup;
|
||||
|
||||
@@ -43,7 +44,9 @@ public class LineupManager : BasePlayerManager
|
||||
|
||||
public LineupInfo? GetCurLineup()
|
||||
{
|
||||
return GetLineup(LineupData.GetCurLineupIndex());
|
||||
LineupInfo? lineup = GetLineup(LineupData.GetCurLineupIndex());
|
||||
InvokeOnPlayerSyncLineup(Player, lineup);
|
||||
return lineup;
|
||||
}
|
||||
|
||||
public List<AvatarSceneInfo> GetAvatarsFromTeam(int index)
|
||||
@@ -226,6 +229,7 @@ public class LineupManager : BasePlayerManager
|
||||
if (sendPacket)
|
||||
{
|
||||
if (lineupIndex == LineupData.GetCurLineupIndex()) Player.SceneInstance?.SyncLineup();
|
||||
InvokeOnPlayerSyncLineup(Player, lineup);
|
||||
await Player.SendPacket(new PacketSyncLineupNotify(lineup));
|
||||
}
|
||||
}
|
||||
@@ -264,6 +268,7 @@ public class LineupManager : BasePlayerManager
|
||||
if (sendPacket)
|
||||
{
|
||||
Player.SceneInstance?.SyncLineup();
|
||||
InvokeOnPlayerSyncLineup(Player, lineup);
|
||||
await Player.SendPacket(new PacketSyncLineupNotify(lineup));
|
||||
}
|
||||
}
|
||||
@@ -283,6 +288,7 @@ public class LineupManager : BasePlayerManager
|
||||
if (sendPacket)
|
||||
{
|
||||
if (lineupIndex == LineupData.GetCurLineupIndex()) Player.SceneInstance?.SyncLineup();
|
||||
InvokeOnPlayerSyncLineup(Player, lineup);
|
||||
await Player.SendPacket(new PacketSyncLineupNotify(lineup));
|
||||
}
|
||||
}
|
||||
@@ -313,6 +319,7 @@ public class LineupManager : BasePlayerManager
|
||||
foreach (var avatar in lineupSlotList) await AddAvatar(index, avatar, false);
|
||||
|
||||
if (index == LineupData.GetCurLineupIndex()) Player.SceneInstance?.SyncLineup();
|
||||
InvokeOnPlayerSyncLineup(Player, lineup);
|
||||
await Player.SendPacket(new PacketSyncLineupNotify(lineup));
|
||||
}
|
||||
|
||||
@@ -336,6 +343,7 @@ public class LineupManager : BasePlayerManager
|
||||
foreach (var avatar in req.LineupSlotList) await AddAvatar(index, (int)avatar.Id, false);
|
||||
|
||||
if (index == LineupData.GetCurLineupIndex()) Player.SceneInstance?.SyncLineup();
|
||||
InvokeOnPlayerSyncLineup(Player, lineup);
|
||||
await Player.SendPacket(new PacketSyncLineupNotify(lineup));
|
||||
}
|
||||
|
||||
|
||||
@@ -643,6 +643,7 @@ public class PlayerInstance(PlayerData data)
|
||||
Data.Rot = rot;
|
||||
var notSendMove = true;
|
||||
SceneInstance instance = new(this, plane, floorId, entryId);
|
||||
InvokeOnPlayerLoadScene(this, instance);
|
||||
if (planeId != Data.PlaneId || floorId != Data.FloorId || entryId != Data.EntryId)
|
||||
{
|
||||
Data.PlaneId = planeId;
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
using EggLink.DanhengServer.GameServer.Game.Player;
|
||||
using EggLink.DanhengServer.Command;
|
||||
using EggLink.DanhengServer.GameServer.Game.Battle;
|
||||
using EggLink.DanhengServer.GameServer.Game.Challenge;
|
||||
using EggLink.DanhengServer.GameServer.Game.Player;
|
||||
using EggLink.DanhengServer.GameServer.Game.Scene;
|
||||
using EggLink.DanhengServer.GameServer.Game.Scene.Entity;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Plugin.Event;
|
||||
|
||||
@@ -35,6 +40,35 @@ public static class PluginEvent
|
||||
OnPlayerInteract?.Invoke(player, prop);
|
||||
}
|
||||
|
||||
public static void InvokeOnPlayerLoadScene(PlayerInstance player, SceneInstance scene)
|
||||
{
|
||||
OnPlayerLoadScene?.Invoke(player, scene);
|
||||
}
|
||||
public static void InvokeOnPlayerEnterBattle(PlayerInstance player, BattleInstance battle)
|
||||
{
|
||||
OnPlayerEnterBattle?.Invoke(player, battle);
|
||||
}
|
||||
public static void InvokeOnPlayerQuitBattle(PlayerInstance player, PVEBattleResultCsReq result)
|
||||
{
|
||||
OnPlayerQuitBattle?.Invoke(player, result);
|
||||
}
|
||||
public static void InvokeOnPlayerEnterChallenge(PlayerInstance player, ChallengeInstance? challenge)
|
||||
{
|
||||
OnPlayerEnterChallenge?.Invoke(player, challenge);
|
||||
}
|
||||
public static void InvokeOnPlayerQuitChallenge(PlayerInstance player, ChallengeInstance? challenge)
|
||||
{
|
||||
OnPlayerQuitChallenge?.Invoke(player, challenge);
|
||||
}
|
||||
public static void InvokeOnPlayerSyncLineup(PlayerInstance player, Database.Lineup.LineupInfo? lineup)
|
||||
{
|
||||
OnPlayerSyncLineup?.Invoke(player, lineup);
|
||||
}
|
||||
public static void InvokeOnPlayerUseCommand(ICommandSender sender, string command)
|
||||
{
|
||||
OnPlayerUseCommand?.Invoke(sender, command);
|
||||
}
|
||||
|
||||
#region Player
|
||||
|
||||
public delegate void OnPlayerHeartBeatHandler(PlayerInstance player);
|
||||
@@ -49,6 +83,20 @@ public static class PluginEvent
|
||||
|
||||
public delegate void OnPlayerInteractHandler(PlayerInstance player, EntityProp prop);
|
||||
|
||||
public delegate void OnPlayerLoadSceneHandler(PlayerInstance player, SceneInstance scene);
|
||||
|
||||
public delegate void OnPlayerEnterBattleHandler(PlayerInstance player, BattleInstance battle);
|
||||
|
||||
public delegate void OnPlayerQuitBattleHandler(PlayerInstance player, PVEBattleResultCsReq result);
|
||||
|
||||
public delegate void OnPlayerEnterChallengeHandler(PlayerInstance player, ChallengeInstance? challenge);
|
||||
|
||||
public delegate void OnPlayerQuitChallengeHandler(PlayerInstance player, ChallengeInstance? challenge);
|
||||
|
||||
public delegate void OnPlayerSyncLineupHandler(PlayerInstance player, Database.Lineup.LineupInfo? lineup);
|
||||
|
||||
public delegate void OnPlayerUseCommandHandler(ICommandSender sender, string command);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Common
|
||||
@@ -63,6 +111,13 @@ public static class PluginEvent
|
||||
public static event OnPlayerFinishSubMissionHandler? OnPlayerFinishSubMission;
|
||||
public static event OnPlayerFinishMainMissionHandler? OnPlayerFinishMainMission;
|
||||
public static event OnPlayerInteractHandler? OnPlayerInteract;
|
||||
public static event OnPlayerLoadSceneHandler? OnPlayerLoadScene;
|
||||
public static event OnPlayerEnterBattleHandler? OnPlayerEnterBattle;
|
||||
public static event OnPlayerEnterChallengeHandler? OnPlayerEnterChallenge;
|
||||
public static event OnPlayerQuitBattleHandler? OnPlayerQuitBattle;
|
||||
public static event OnPlayerQuitChallengeHandler? OnPlayerQuitChallenge;
|
||||
public static event OnPlayerSyncLineupHandler? OnPlayerSyncLineup;
|
||||
public static event OnPlayerUseCommandHandler? OnPlayerUseCommand;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
using EggLink.DanhengServer.Util;
|
||||
using static EggLink.DanhengServer.GameServer.Plugin.Event.PluginEvent;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.Challenge;
|
||||
|
||||
@@ -21,6 +22,8 @@ public class HandlerLeaveChallengeCsReq : Handler
|
||||
player.LineupManager!.SetExtraLineup(ExtraLineupType.LineupChallenge, []);
|
||||
player.LineupManager.SetExtraLineup(ExtraLineupType.LineupChallenge2, []);
|
||||
|
||||
InvokeOnPlayerQuitChallenge(player, player.ChallengeManager!.ChallengeInstance);
|
||||
|
||||
player.ChallengeManager!.ChallengeInstance = null;
|
||||
player.ChallengeManager!.ClearInstance();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user