server-master/srcs/WingsAPI.Game/Characters/Events/CharacterLoadEvent.cs
2026-02-10 18:21:30 +01:00

54 lines
No EOL
1.3 KiB
C#

// WingsEmu
//
// Developed by NosWings Team
using System;
using System.Threading.Tasks;
using WingsEmu.Game._packetHandling;
using WingsEmu.Game.Networking;
namespace WingsEmu.Game.Characters.Events;
public static class CharacterEventsExtensions
{
public static async Task CharacterDisconnect(this IClientSession session)
{
await session.EmitEventAsync(new CharacterDisconnectedEvent
{
DisconnectionTime = DateTime.UtcNow
});
}
public static async Task RestAsync(this IClientSession session, bool restTeamMemberMates = false, bool force = false)
{
await session.EmitEventAsync(new PlayerRestEvent
{
RestTeamMemberMates = restTeamMemberMates,
Force = force
});
}
}
public class CharacterPreLoadEvent : PlayerEvent
{
public CharacterPreLoadEvent(byte slot) => Slot = slot;
public byte Slot { get; }
}
public class CharacterLoadEvent : PlayerEvent
{
}
public class CharacterDisconnectedEvent : PlayerEvent
{
public DateTime DisconnectionTime { get; set; }
}
/// <summary>
/// Forces the save of A Character
/// Will be removed when we fully manage saveable data through microservices
/// </summary>
public class SessionSaveEvent : PlayerEvent
{
}