From 88ff22e55ee87b16afccf6904a7259342841f04c Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 2 Jun 2019 17:32:08 -0400 Subject: [PATCH] Added checks before creating the trade group so that a character couldn't be invited twice to trade. --- FFXIVClassic Map Server/WorldManager.cs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/FFXIVClassic Map Server/WorldManager.cs b/FFXIVClassic Map Server/WorldManager.cs index 9f623103..e1b6de5d 100644 --- a/FFXIVClassic Map Server/WorldManager.cs +++ b/FFXIVClassic Map Server/WorldManager.cs @@ -1218,7 +1218,25 @@ namespace FFXIVClassic_Map_Server } public TradeGroup CreateTradeGroup(Player inviter, Player invitee) - { + { + //Sanity Checks + if (inviter.Equals(invitee)) + { + inviter.SendGameMessage(GetActor(), 25043, 0x20, (object)invitee); //You cannot trade with yourself. + return null; + } + else if (GetTradeGroup(inviter.actorId) != null) + { + inviter.SendGameMessage(GetActor(), 25045, 0x20, (object)invitee); //You may only trade with one person at a time. + return null; + } + else if (GetTradeGroup(invitee.actorId) != null) + { + inviter.SendGameMessage(GetActor(), 25044, 0x20, (object)invitee); //Your target is unable to trade. + return null; + } + + //Create a trade group between these two players lock (groupLock) { groupIndexId = groupIndexId | 0x0000000000000000;