server-master/srcs/WingsAPI.Game.Extensions/Families/FamilyEventExtensions.cs
2026-02-10 18:21:30 +01:00

48 lines
No EOL
1.4 KiB
C#

// WingsEmu
//
// Developed by NosWings Team
using System;
using System.Threading.Tasks;
using WingsAPI.Data.Families;
using WingsEmu.Game.Families.Enum;
using WingsEmu.Game.Families.Event;
using WingsEmu.Game.Networking;
using WingsEmu.Packets.Enums.Families;
namespace WingsAPI.Game.Extensions.Families
{
public static class FamilyEventExtensions
{
public static async Task FamilyAddLogAsync(this IClientSession session, FamilyLogType familyLogType, string actor, string firstArg = null, string secondArg = null, string thirdArg = null)
{
if (!session.PlayerEntity.IsInFamily())
{
return;
}
var familyLog = new FamilyLogDto
{
FamilyId = session.PlayerEntity.Family.Id,
FamilyLogType = familyLogType,
Actor = actor,
Argument1 = firstArg,
Argument2 = secondArg,
Argument3 = thirdArg,
Timestamp = DateTime.UtcNow
};
await session.EmitEventAsync(new FamilyAddLogEvent(familyLog));
}
public static async Task FamilyAddExperience(this IClientSession session, int experience, FamXpObtainedFromType type)
{
if (!session.PlayerEntity.IsInFamily())
{
return;
}
await session.EmitEventAsync(new FamilyAddExperienceEvent(experience, type));
}
}
}