1. --- Core_old.lua 2018-03-09 05:55:16.000000000 +0700
  2. +++ Core.lua 2018-04-21 20:41:16.497000000 +0700
  3. @@ -87,13 +87,14 @@
  4. ------------------------------------------------------------------------
  5. local CHANNEL_LINK = "|Hchannel:%1$s|h" .. format(STRING_STYLE, CHANNEL_STYLE) .. "|h"
  6. +local CHANNEL_LINK_VERBOSE = "|Hchannel:%1$s|h" .. "%3$s %4$s" .. "|h"
  7. local PLAYER_LINK = "|Hplayer:%s|h" .. PLAYER_STYLE .. "|h"
  8. local PLAYER_BN_LINK = "|HBNplayer:%s|h" .. PLAYER_STYLE .. "%s|h"
  9. -- |Hchannel:channel:2|h[2. Trade]|h |Hplayer:Konquered:1281:CHANNEL:2|h|cffbf8cffKonquered|r|h: lf 2s partner
  10. -local CHANNEL_PATTERN = "|Hchannel:(.-)|h%[(%d+)%.%s?([^:%-%]]+)%s?[:%-]?%s?[^|%]]*%]|h%s?"
  11. -local CHANNEL_PATTERN_PLUS = CHANNEL_PATTERN .. ".+"
  12. +local CHANNEL_PATTERN = "|Hchannel:(.-)|h%[(%d+)%.%s?([^:%-%]]+)%s?[:%-]?%s?([^|%]]*)%]|h%.?%s?"
  13. +local CHANNEL_PATTERN_PLUS = CHANNEL_PATTERN .. "(.*)"
  14. local PLAYER_PATTERN = "|Hplayer:(.-)|h%[(.-)%]|h"
  15. @@ -125,10 +126,15 @@
  16. local AddMessage = function(frame, message, ...)
  17. if type(message) == "string" then
  18. - local channelData, channelID, channelName = strmatch(message, CHANNEL_PATTERN_PLUS)
  19. + local channelData, channelID, channelName, channelInfo, rest = strmatch(message, CHANNEL_PATTERN_PLUS)
  20. if channelData and db.ShortenChannelNames then
  21. - local shortName = ChannelNames[channelName] or ChannelNames[strlower(channelName)] or strsub(channelName, 1, 2)
  22. - message = gsub(message, CHANNEL_PATTERN, format(CHANNEL_LINK, channelData, channelID, shortName))
  23. + local isSystemMessage = rest == ""
  24. + if isSystemMessage then
  25. + message = gsub(message, CHANNEL_PATTERN, format(CHANNEL_LINK_VERBOSE, channelData, channelID, channelName, channelInfo))
  26. + else
  27. + local shortName = ChannelNames[channelName] or ChannelNames[strlower(channelName)] or strsub(channelName, 1, 2)
  28. + message = gsub(message, CHANNEL_PATTERN, format(CHANNEL_LINK, channelData, channelID, shortName))
  29. + end
  30. end
  31. local playerData, playerName = strmatch(message, PLAYER_PATTERN)