comparison AskMrRobot-Serializer/AskMrRobot-Serializer.lua @ 69:69db1c3025ac v27

fixed some bugs with 6.2 item link format changes, added bib overwolf support
author yellowfive
date Mon, 06 Jul 2015 17:39:57 -0700
parents 932885bb1a6f
children 6abc0858b45e
comparison
equal deleted inserted replaced
68:6c523f147709 69:69db1c3025ac
1 -- AskMrRobot-Serializer will serialize and communicate character data between users. 1 -- AskMrRobot-Serializer will serialize and communicate character data between users.
2 -- This is used primarily to associate character information to logs uploaded to askmrrobot.com. 2 -- This is used primarily to associate character information to logs uploaded to askmrrobot.com.
3 3
4 local MAJOR, MINOR = "AskMrRobot-Serializer", 26 4 local MAJOR, MINOR = "AskMrRobot-Serializer", 27
5 local Amr, oldminor = LibStub:NewLibrary(MAJOR, MINOR) 5 local Amr, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
6 6
7 if not Amr then return end -- already loaded by something else 7 if not Amr then return end -- already loaded by something else
8 8
9 -- event and comm used for player snapshotting on entering combat 9 -- event and comm used for player snapshotting on entering combat
577 577
578 ---------------------------------------------------------------------------------------- 578 ----------------------------------------------------------------------------------------
579 -- Public Utility Methods 579 -- Public Utility Methods
580 ---------------------------------------------------------------------------------------- 580 ----------------------------------------------------------------------------------------
581 581
582 -- item link format: |cffa335ee|Hitem:itemID:enchant:gem1:gem2:gem3:gem4:suffixID:uniqueID:level:unknown:upgradeId:instanceDifficultyID:numBonusIDs:bonusID1:bonusID2...|h[item name]|h|r 582 -- item link format: |cffa335ee|Hitem:itemID:enchant:gem1:gem2:gem3:gem4:suffixID:uniqueID:level:unknown:unknown:instanceDifficultyID:numBonusIDs:bonusID1:bonusID2...|h[item name]|h|r
583 -- get an object with all of the parts of the item link format that we care about 583 -- get an object with all of the parts of the item link format that we care about
584 function Amr.ParseItemLink(itemLink) 584 function Amr.ParseItemLink(itemLink)
585 if not itemLink then return nil end 585 if not itemLink then return nil end
586 586
587 local str = string.match(itemLink, "|Hitem:([\-%d:]+)|") 587 local str = string.match(itemLink, "|Hitem:([\-%d:]+)|")
595 item.gemIds = { tonumber(parts[3]), tonumber(parts[4]), tonumber(parts[5]), tonumber(parts[6]) } 595 item.gemIds = { tonumber(parts[3]), tonumber(parts[4]), tonumber(parts[5]), tonumber(parts[6]) }
596 item.suffixId = math.abs(tonumber(parts[7])) -- convert suffix to positive number, that's what we use in our code 596 item.suffixId = math.abs(tonumber(parts[7])) -- convert suffix to positive number, that's what we use in our code
597 --item.uniqueId = tonumber(parts[8]) 597 --item.uniqueId = tonumber(parts[8])
598 --item.level = tonumber(parts[9]) 598 --item.level = tonumber(parts[9])
599 -- part 10 is unknown atm 599 -- part 10 is unknown atm
600 item.upgradeId = tonumber(parts[11]) 600 -- part 11 is unknown atm
601 --item.difficultyId = tonumber(parts[12]) 601 --item.difficultyId = tonumber(parts[12])
602 602
603 local numBonuses = tonumber(parts[13]) 603 local numBonuses = tonumber(parts[13])
604 if numBonuses and numBonuses > 0 then 604 if numBonuses and numBonuses > 0 then
605 item.bonusIds = {} 605 item.bonusIds = {}
606 for i = 14, 13 + numBonuses do 606 for i = 14, 13 + numBonuses do
607 table.insert(item.bonusIds, tonumber(parts[i])) 607 table.insert(item.bonusIds, tonumber(parts[i]))
608 end 608 end
609 table.sort(item.bonusIds) 609 table.sort(item.bonusIds)
610 end 610 end
611
612 -- if numBonuses is 0 and there is a number after it, that is the upgrade id for old items now I guess?
613 if numBonuses == 0 then
614 local upgradeId = tonumber(parts[14])
615 item.upgradeId = upgradeId and upgradeId or 0
616 else
617 item.upgradeId = 0
618 end
611 619
612 return item 620 return item
613 end 621 end
614 622
615 -- returns true if this is an instance that AskMrRobot supports for logging 623 -- returns true if this is an instance that AskMrRobot supports for logging