Making assumptions on how I think your system coded currently, you may be able to easily add queuing clans on the login script and only add 1 more variable to the player data.
Something like this...
(please forgive the mixed syntax, trying to make it easy to read)
Assumed Existing Code
New Code
Comments
...
Dim PlayerData as Struct
Dim ClanData as Struct
Dim Clan as Int
integer value of clan id, where 0 is not in a clan
Dim ClanCooldown as Date
or another type representing a date
Dim StillInClan as Boolean
Dim QueuedClan as Int
integer value of clan id
PlayerData = LoadPlayerData(PlayerID)
Clan = PlayerData.Clan
ClanCooldown = PlayerData.ClanCooldown
QueuedClan = PlayerData.QueuedClan
StillInClan = IsPlayerInClan(Clan, PlayerID)
if(Clan Not 0 And StillInClan) Then
ClanData = LoadClanData(Clan)
Elseif(Clan Not 0 And Not StillInClan) Then
EditPlayerData("ClanCooldown", Today())
hence why it is 7 days from when they return, not sure there is a solution to this yet
Elseif(Clan = 0 And QueuedClan Not 0) Then
If(today()-ClanCooldown>=7) Then
EditPlayerData("Clan", QueuedClan)
ClanData = LoadClanData(QueuedClan)
Else
JoinClanGuestChat(QueuedClan)
Endif
Endif
...
This would theoretically leave the following to be Tweaked/QAed:
Logon(all clan conditions)
Leaving Clan
Joining Clan off cooldown (Should be QAed from previous update)
Queing Clan on cooldown
Joining Guest Clan Chat (conflicts with current guest clan chat reconnect/connecting to clan chats with guesting off/ECT)
Things this would not do:
Give a list or rank of queued members to clan
Instantly join when off cooldown, will require lobby and back
Wont fix the 7 day on return rather than when kicked
Whitelist guests to get past having guesting turned off
Things this would do:
Alleviate recruiter's workload