Mercurial > wow > breuesk
diff Comm.lua @ 86:22b37c800bc4
Database and comm versioning
author | John@Yosemite-PC |
---|---|
date | Sun, 15 Apr 2012 14:42:14 -0400 |
parents | 9e5b0a2368ad |
children | 5ade79caeece |
line wrap: on
line diff
--- a/Comm.lua Sat Apr 14 10:12:06 2012 -0400 +++ b/Comm.lua Sun Apr 15 14:42:14 2012 -0400 @@ -25,7 +25,7 @@ local function SendMessage(str) --commlib:SendCommMessage("BSKADDON",str,"GUILD") - commlib:SendCommMessage("BSKADDON",str,"RAID") + commlib:SendCommMessage("BSKADDON"..commversion,str,"RAID") end local function Send(handler,message) @@ -90,8 +90,29 @@ Comm[packet[1]](Comm,packet[2],sender,isloop) end +alertlist = {} +local function OnOlderCommReceived(prefix, message, distribution, sender) + if not alertlist[sender] then + printf("Received communication from %s, who is using an older version of the addon; ignoring",sender) + alertlist[sender]=true + end +end + +local function OnNewerCommReceived(prefix, message, distribution, sender) + if not alertlist[sender] then + printf("Received communication from %s, who is using a newer version of the addon; ignoring",sender) + alertlist[sender]=true + end +end + function InitializeComm() - commlib:RegisterComm("BSKADDON",OnCommReceived) + for i = 0,commversion-1 do + commlib:RegisterComm("BSKADDON"..i,OnOlderCommReceived) + end + commlib:RegisterComm("BSKADDON"..commversion,OnCommReceived) + for i = commversion+1,commversion+5 do -- some sensible number + commlib:RegisterComm("BSKADDON"..i,OnNewerCommReceived) + end end function DeinitializeComm()