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.
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 COMM_PREFIX = "TSMAuctionDB"
local CHUNK_SIZE = 220
local CHUNK_SIZE = 180
local BUNDLE_TIMEOUT = 45
local private = {
@ -27,7 +27,7 @@ local strbyte = string.byte
local libS = LibStub:GetLibrary("AceSerializer-3.0")
local libC = LibStub:GetLibrary("LibCompress")
local libCE = libC:GetAddonEncodeTable()
local libCE = libC:GetChatEncodeTable("", "\031")
local function HashString(str)
local hash = 0
@ -49,15 +49,15 @@ end
local function ChatFilter(_, _, msg, _, _, _, _, _, channelName)
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
end
end
function ChannelSync:OnEnable()
self:RegisterComm(COMM_PREFIX)
self:RegisterEvent("PLAYER_ENTERING_WORLD", "OnPlayerEnteringWorld")
self:RegisterEvent("CHAT_MSG_CHANNEL_NOTICE", "OnChannelNotice")
self:RegisterEvent("CHAT_MSG_CHANNEL", "OnChannelMessage")
if ChatFrame_AddMessageEventFilter then
ChatFrame_AddMessageEventFilter("CHAT_MSG_CHANNEL", ChatFilter)
end
@ -105,7 +105,7 @@ function ChannelSync:BroadcastScanData(scanType)
return
end
EnsureChannel()
if not private.channelName then return end
if not private.channelName or not private.channelId then return end
TSM:Serialize()
local payload = {
@ -123,7 +123,7 @@ function ChannelSync:BroadcastScanData(scanType)
for i = 1, total do
local chunk = strsub(encoded, (i - 1) * CHUNK_SIZE + 1, i * CHUNK_SIZE)
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
@ -151,7 +151,10 @@ local function MergeIncomingData(payload)
TSM:Serialize()
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 "")
if strlower(source or "") == strlower(UnitName("player") or "") then return end

Loading…
Cancel
Save