I'm going to be releasing a new version of PQR in the next couple days (v2.0.20 or 2.1... whatever I decide) after some testing with a couple minor changes:
New: PQR_ItemAvailable(itemID) - Returns true if the item is available for use (equipped and off CD if armor, just off CD if an item in bag), nil otherwise.
New: PQR_ItemSlot(itemID) - Returns the slot ID for the specified item.
New: PQR_ItemCooldown(itemID) - Returns the time in seconds before an item will be available.
These 3 functions should make item use far easier to implement.
I am also going to be adding a new "Legacy Cast Mode" option in the Rotations Config. By default, for existing profiles, this will be enabled. New profiles will have this disabled. This should prevent any rotations from breaking.
This being disabled will cause PQR to translate the spell ID to spell name then use CastSpellByName() instead of directly using CastSpellByID(), avoiding the UI lockup issue that Blizzard has. This should remove the need to use CastSpellByName() on replacement spells, so you can go back to using the spell ID in the ability like before for replacement spells.