From wowdev
Jump to navigation Jump to search

≥ Wrath

This DBC is used to ban addons. In addition to the DBC, there is also the baddons.wcf file, which is an early form of hotfixing when there was no hotfixing tech.

Upon connecting to the server,

  • DB/BannedAddOns is loaded
  • baddons.wcf is loaded
  • the maximum m_lastModified over both files is determined
  • GetAddOnInfoRequest is sent with other data and the timestamp
  • SetAddOnInfoRequest is received with new banned addons and other data
  • new ban data is merged with existing data
  • baddons.wcf is written with the updated data
  • loaded addons are checked if they match and if they do, they are refused loading


Column Field Type Notes
1 ID Integer
2 NameMD5 char[0x10] MD5 of the toc Title tag
3 VersionMD5 char[0x10] MD5 of the toc Version tag
4 LastModified Integer In unix time
5 Flags Integer


struct BannedAddOnsRec {
  uint32_t m_ID;
  uint32_t m_nameMD5_[4];
  uint32_t m_versionMD5_[4]; // md5("") to ban all addons just matching name
  uint32_t m_lastModified;   // seconds since epoch (unix time)
  enum {
    flag_is_banned = 1,      // entries without this flag are ignored in FindBannedAddOn
  uint32_t m_flags;
}; +


Column Field Type Notes
1 ID Integer
2 Name string The toc Title tag
3 Version string The toc Version tag
4 Flags Byte Same as above


The cache file has the exact same format as the DB entries. This file is generated by the client from the SMSG_ADDON_INFO packet. There is no header or anything. It is just a plain array of entries:

BannedAddOnsRec cached_banned_addons[];