添加社团邀请列表

This commit is contained in:
milimoe 2025-08-02 05:29:34 +08:00
parent f55fda4c86
commit 9c792ed781
Signed by: milimoe
GPG Key ID: 9554D37E4B8991D0
3 changed files with 28 additions and 3 deletions

View File

@ -1,4 +1,5 @@
using Milimoe.FunGame.Core.Interface.Entity; using Milimoe.FunGame.Core.Interface.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Core.Entity namespace Milimoe.FunGame.Core.Entity
{ {
@ -10,12 +11,19 @@ namespace Milimoe.FunGame.Core.Entity
public bool IsNeedApproval { get; set; } = false; public bool IsNeedApproval { get; set; } = false;
public bool IsPublic { get; set; } = false; public bool IsPublic { get; set; } = false;
public double ClubPoins { get; set; } = 0; public double ClubPoins { get; set; } = 0;
public User? Master { get; set; } public User Master { get; set; } = General.UnknownUserInstance;
public Dictionary<long, User> Admins { get; set; } = []; public Dictionary<long, User> Admins { get; set; } = [];
public Dictionary<long, User> Members { get; set; } = []; public Dictionary<long, User> Members { get; set; } = [];
public Dictionary<long, User> Applicants { get; set; } = []; public Dictionary<long, User> Applicants { get; set; } = [];
public Dictionary<long, User> Invitees { get; set; } = [];
public Dictionary<long, DateTime> MemberJoinTime { get; set; } = []; public Dictionary<long, DateTime> MemberJoinTime { get; set; } = [];
public Dictionary<long, DateTime> ApplicationTime { get; set; } = []; public Dictionary<long, DateTime> ApplicationTime { get; set; } = [];
public Dictionary<long, DateTime> InvitedTime { get; set; } = [];
public override string ToString()
{
return $"{Name} [{Prefix}]";
}
public override bool Equals(IBaseEntity? other) public override bool Equals(IBaseEntity? other)
{ {

View File

@ -73,6 +73,13 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter
result.Applicants[id] = new(id); result.Applicants[id] = new(id);
} }
break; break;
case nameof(Club.Invitees):
List<long> invitees = NetworkUtility.JsonDeserialize<List<long>>(ref reader, options) ?? [];
foreach (long id in invitees)
{
result.Invitees[id] = new(id);
}
break;
case nameof(Club.MemberJoinTime): case nameof(Club.MemberJoinTime):
Dictionary<long, DateTime> memberJoinTime = NetworkUtility.JsonDeserialize<Dictionary<long, DateTime>>(ref reader, options) ?? []; Dictionary<long, DateTime> memberJoinTime = NetworkUtility.JsonDeserialize<Dictionary<long, DateTime>>(ref reader, options) ?? [];
foreach (long id in memberJoinTime.Keys) foreach (long id in memberJoinTime.Keys)
@ -87,6 +94,13 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter
result.ApplicationTime[id] = applicationTime[id]; result.ApplicationTime[id] = applicationTime[id];
} }
break; break;
case nameof(Club.InvitedTime):
Dictionary<long, DateTime> invitedTime = NetworkUtility.JsonDeserialize<Dictionary<long, DateTime>>(ref reader, options) ?? [];
foreach (long id in invitedTime.Keys)
{
result.InvitedTime[id] = invitedTime[id];
}
break;
} }
} }
@ -111,10 +125,14 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter
JsonSerializer.Serialize(writer, value.Members.Keys, options); JsonSerializer.Serialize(writer, value.Members.Keys, options);
writer.WritePropertyName(nameof(Club.Applicants)); writer.WritePropertyName(nameof(Club.Applicants));
JsonSerializer.Serialize(writer, value.Applicants.Keys, options); JsonSerializer.Serialize(writer, value.Applicants.Keys, options);
writer.WritePropertyName(nameof(Club.Invitees));
JsonSerializer.Serialize(writer, value.Invitees.Keys, options);
writer.WritePropertyName(nameof(Club.MemberJoinTime)); writer.WritePropertyName(nameof(Club.MemberJoinTime));
JsonSerializer.Serialize(writer, value.MemberJoinTime, options); JsonSerializer.Serialize(writer, value.MemberJoinTime, options);
writer.WritePropertyName(nameof(Club.ApplicationTime)); writer.WritePropertyName(nameof(Club.ApplicationTime));
JsonSerializer.Serialize(writer, value.ApplicationTime, options); JsonSerializer.Serialize(writer, value.ApplicationTime, options);
writer.WritePropertyName(nameof(Club.InvitedTime));
JsonSerializer.Serialize(writer, value.InvitedTime, options);
writer.WriteEndObject(); writer.WriteEndObject();
} }

View File

@ -35,7 +35,7 @@ namespace Milimoe.FunGame.Core.Model
/// <param name="characters"></param> /// <param name="characters"></param>
public void AddTeam(string teamName, IEnumerable<Character> characters) public void AddTeam(string teamName, IEnumerable<Character> characters)
{ {
if (teamName != "" && characters.Any()) if (teamName != "" && characters.Any(c => c.HP > 0))
{ {
_teams.Add(teamName, new(teamName, characters)); _teams.Add(teamName, new(teamName, characters));
} }
@ -176,7 +176,6 @@ namespace Milimoe.FunGame.Core.Model
if (killTeam != null) if (killTeam != null)
{ {
List<Character> actives = killTeam.GetActiveCharacters(this); List<Character> actives = killTeam.GetActiveCharacters(this);
actives.Add(killer);
int remainCount = actives.Count; int remainCount = actives.Count;
if (remainCount > 0 && MaxRespawnTimes == 0) if (remainCount > 0 && MaxRespawnTimes == 0)
{ {