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

56 lines
No EOL
2.4 KiB
C#

using WingsAPI.Data.Families;
using WingsAPI.Packets.Enums.Families;
using WingsEmu.Game.Networking;
using WingsEmu.Packets.Enums.Families;
namespace WingsAPI.Game.Extensions.Families
{
public static class FamilyWarehouseExtensions
{
public static bool CheckLogHistoryPermission(this IClientSession session)
{
return session.PlayerEntity.GetFamilyAuthority() switch
{
FamilyAuthority.Keeper => session.PlayerEntity.Family.AssistantCanGetHistory,
FamilyAuthority.Member => session.PlayerEntity.Family.MemberCanGetHistory,
_ => true
};
}
public static bool CheckLogHistoryPermission(this FamilyMembershipDto membershipDto, FamilyDTO family)
{
return membershipDto.Authority switch
{
FamilyAuthority.Keeper => family.AssistantCanGetHistory,
FamilyAuthority.Member => family.MemberCanGetHistory,
_ => true
};
}
public static bool CheckPutWithdrawPermission(this IClientSession session, FamilyWarehouseAuthorityType authorityRequested)
{
FamilyWarehouseAuthorityType memberAuthority = session.PlayerEntity.GetFamilyAuthority() switch
{
FamilyAuthority.Member => session.PlayerEntity.Family.MemberWarehouseAuthorityType,
FamilyAuthority.Keeper => session.PlayerEntity.Family.AssistantWarehouseAuthorityType,
_ => FamilyWarehouseAuthorityType.PutAndWithdraw
};
return memberAuthority.CheckPutWithdrawPermission(authorityRequested);
}
public static bool CheckPutWithdrawPermission(this FamilyMembershipDto membershipDto, FamilyDTO family, FamilyWarehouseAuthorityType authorityRequested)
{
FamilyWarehouseAuthorityType memberAuthority = membershipDto.Authority switch
{
FamilyAuthority.Member => family.MemberWarehouseAuthorityType,
FamilyAuthority.Keeper => family.AssistantWarehouseAuthorityType,
_ => FamilyWarehouseAuthorityType.PutAndWithdraw
};
return memberAuthority.CheckPutWithdrawPermission(authorityRequested);
}
public static bool CheckPutWithdrawPermission(this FamilyWarehouseAuthorityType memberAuthority, FamilyWarehouseAuthorityType authorityRequested) => authorityRequested <= memberAuthority;
}
}