From ad08dc46b4e4d520516edd1c810867c47a01d17c Mon Sep 17 00:00:00 2001 From: TimtyG <36088127+TimtyG@users.noreply.github.com> Date: Fri, 17 Jan 2025 00:17:21 +0100 Subject: [PATCH] Fix party disbanding logic when last player leaves --- Intersect.Server.Core/Entities/Player.cs | 25 +++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/Intersect.Server.Core/Entities/Player.cs b/Intersect.Server.Core/Entities/Player.cs index b5724d5dc8..f25a3b84eb 100644 --- a/Intersect.Server.Core/Entities/Player.cs +++ b/Intersect.Server.Core/Entities/Player.cs @@ -5265,19 +5265,30 @@ public void LeaveParty() string partyMessage = currentParty.Count > 1 ? Strings.Parties.MemberLeft.ToString(Name) - : Strings.Parties.Disbanded; + : Strings.Parties.Disbanded.ToString(); // Update all members of the party with the new list foreach (var partyMember in currentParty) { partyMember.Party = currentParty.ToList(); PacketSender.SendParty(partyMember); - PacketSender.SendChatMsg( - partyMember, - partyMessage, - ChatMessageType.Party, - CustomColors.Alerts.Error - ); + if (partyMessage != Strings.Parties.Disbanded.ToString()) + { + PacketSender.SendChatMsg( + partyMember, + partyMessage, + ChatMessageType.Party, + CustomColors.Alerts.Error + ); + } + } + // If theres only one player left, lets disband the party + if (currentParty.Count == 1) + { + var remainingMember = currentParty[0]; + remainingMember.Party.Clear(); + PacketSender.SendParty(remainingMember); + PacketSender.SendChatMsg(remainingMember, Strings.Parties.Disbanded, ChatMessageType.Party, CustomColors.Alerts.Error); } Party = new List();