Browse Source

update to constraints

dev
Jørgen Lien Sellæg 4 months ago
parent
commit
95f5bec324
  1. 19
      TradeSkillMaster_AuctionDB/Modules/ChannelSync.lua

19
TradeSkillMaster_AuctionDB/Modules/ChannelSync.lua

@ -9,11 +9,11 @@
-- Channel sync for sharing AuctionDB scan data between players. -- Channel sync for sharing AuctionDB scan data between players.
local TSM = select(2, ...) local TSM = select(2, ...)
local ChannelSync = TSM:NewModule("ChannelSync", "AceComm-3.0", "AceEvent-3.0") local ChannelSync = TSM:NewModule("ChannelSync", "AceEvent-3.0")
local CHANNEL_NAME = "TSM_AuctionDB" local CHANNEL_NAME = "TSM_AuctionDB"
local COMM_PREFIX = "TSMAuctionDB" local COMM_PREFIX = "TSMAuctionDB"
local CHUNK_SIZE = 220 local CHUNK_SIZE = 180
local BUNDLE_TIMEOUT = 45 local BUNDLE_TIMEOUT = 45
local private = { local private = {
@ -27,7 +27,7 @@ local strbyte = string.byte
local libS = LibStub:GetLibrary("AceSerializer-3.0") local libS = LibStub:GetLibrary("AceSerializer-3.0")
local libC = LibStub:GetLibrary("LibCompress") local libC = LibStub:GetLibrary("LibCompress")
local libCE = libC:GetAddonEncodeTable() local libCE = libC:GetChatEncodeTable("", "\031")
local function HashString(str) local function HashString(str)
local hash = 0 local hash = 0
@ -49,15 +49,15 @@ end
local function ChatFilter(_, _, msg, _, _, _, _, _, channelName) local function ChatFilter(_, _, msg, _, _, _, _, _, channelName)
if channelName ~= CHANNEL_NAME then return end if channelName ~= CHANNEL_NAME then return end
if strsub(msg, 1, #COMM_PREFIX) == COMM_PREFIX then if strsub(msg, 1, #COMM_PREFIX + 1) == COMM_PREFIX .. "|" then
return true return true
end end
end end
function ChannelSync:OnEnable() function ChannelSync:OnEnable()
self:RegisterComm(COMM_PREFIX)
self:RegisterEvent("PLAYER_ENTERING_WORLD", "OnPlayerEnteringWorld") self:RegisterEvent("PLAYER_ENTERING_WORLD", "OnPlayerEnteringWorld")
self:RegisterEvent("CHAT_MSG_CHANNEL_NOTICE", "OnChannelNotice") self:RegisterEvent("CHAT_MSG_CHANNEL_NOTICE", "OnChannelNotice")
self:RegisterEvent("CHAT_MSG_CHANNEL", "OnChannelMessage")
if ChatFrame_AddMessageEventFilter then if ChatFrame_AddMessageEventFilter then
ChatFrame_AddMessageEventFilter("CHAT_MSG_CHANNEL", ChatFilter) ChatFrame_AddMessageEventFilter("CHAT_MSG_CHANNEL", ChatFilter)
end end
@ -105,7 +105,7 @@ function ChannelSync:BroadcastScanData(scanType)
return return
end end
EnsureChannel() EnsureChannel()
if not private.channelName then return end if not private.channelName or not private.channelId then return end
TSM:Serialize() TSM:Serialize()
local payload = { local payload = {
@ -123,7 +123,7 @@ function ChannelSync:BroadcastScanData(scanType)
for i = 1, total do for i = 1, total do
local chunk = strsub(encoded, (i - 1) * CHUNK_SIZE + 1, i * CHUNK_SIZE) local chunk = strsub(encoded, (i - 1) * CHUNK_SIZE + 1, i * CHUNK_SIZE)
local msg = strjoin("|", COMM_PREFIX, hash, i .. "/" .. total, chunk) local msg = strjoin("|", COMM_PREFIX, hash, i .. "/" .. total, chunk)
self:SendCommMessage(COMM_PREFIX, msg, "CHANNEL", private.channelName) SendChatMessage(msg, "CHANNEL", nil, private.channelId)
end end
end end
@ -151,7 +151,10 @@ local function MergeIncomingData(payload)
TSM:Serialize() TSM:Serialize()
end end
function ChannelSync:OnCommReceived(_, msg, _, source) function ChannelSync:OnChannelMessage(_, msg, source, _, _, _, _, _, channelName)
if channelName ~= CHANNEL_NAME then return end
if strsub(msg or "", 1, #COMM_PREFIX + 1) ~= COMM_PREFIX .. "|" then return end
source = ("-"):split(source or "") source = ("-"):split(source or "")
if strlower(source or "") == strlower(UnitName("player") or "") then return end if strlower(source or "") == strlower(UnitName("player") or "") then return end

Loading…
Cancel
Save