From 1f3c98312cfabcd935454de033661dcebe4734a8 Mon Sep 17 00:00:00 2001 From: Yogurt Date: Wed, 29 May 2019 23:20:15 -0700 Subject: [PATCH] Fix World getting stuck in group packet loop for real --- FFXIVClassic World Server/DataObjects/Group/Group.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/FFXIVClassic World Server/DataObjects/Group/Group.cs b/FFXIVClassic World Server/DataObjects/Group/Group.cs index c771d1a8..43ce5b77 100644 --- a/FFXIVClassic World Server/DataObjects/Group/Group.cs +++ b/FFXIVClassic World Server/DataObjects/Group/Group.cs @@ -105,13 +105,14 @@ namespace FFXIVClassic_World_Server.DataObjects.Group while (true) { - if (GetMemberCount() - currentIndex >= 64) + int memberCount = Math.Min(GetMemberCount(), members.Count); + if (memberCount - currentIndex >= 64) session.clientConnection.QueuePacket(GroupMembersX64Packet.buildPacket(session.sessionId, session.currentZoneId, time, members, ref currentIndex)); - else if (GetMemberCount() - currentIndex >= 32) + else if (memberCount - currentIndex >= 32) session.clientConnection.QueuePacket(GroupMembersX32Packet.buildPacket(session.sessionId, session.currentZoneId, time, members, ref currentIndex)); - else if (GetMemberCount() - currentIndex >= 16) + else if (memberCount - currentIndex >= 16) session.clientConnection.QueuePacket(GroupMembersX16Packet.buildPacket(session.sessionId, session.currentZoneId, time, members, ref currentIndex)); - else if (GetMemberCount() - currentIndex > 0) + else if (memberCount - currentIndex > 0) session.clientConnection.QueuePacket(GroupMembersX08Packet.buildPacket(session.sessionId, session.currentZoneId, time, members, ref currentIndex)); else break;