local A, L = ... local config = L.C --[[=========================== 变量区 ==========================]] -- 是否可移动的标记 local IsMovable = false -- 没事干别动这个,你改成ture那么进入游戏后聊天条就是可以移动的 --[[=============================== END ==============================]] local chatFrame = SELECTED_DOCK_FRAME -- 聊天框架 local inputbox = chatFrame.editBox -- 输入框 COLORSCHEME_BORDER = {0.3, 0.3, 0.3, 1} -- 边框颜色 -- 主框架初始化 local ChatBar = CreateFrame("Frame", nil, UIParent, BackdropTemplateMixin and "BackdropTemplate" or nil) -- rChatBar = ChatBar local function ChannelSay_OnClick() ChatFrame_OpenChat("/s " .. inputbox:GetText(), chatFrame) end local function ChannelYell_OnClick() ChatFrame_OpenChat("/y " .. inputbox:GetText(), chatFrame) end local function ChannelParty_OnClick() ChatFrame_OpenChat("/p " .. inputbox:GetText(), chatFrame) end local function ChannelGuild_OnClick() ChatFrame_OpenChat("/g " .. inputbox:GetText(), chatFrame) end local function ChannelRaid_OnClick() ChatFrame_OpenChat("/raid " .. inputbox:GetText(), chatFrame) end local function ChannelBG_OnClick() ChatFrame_OpenChat("/bg " .. inputbox:GetText(), chatFrame) end local function ChatEmote_OnClick() rChat:ToggleEmoteTable() end local function ChannelWorld_OnClick(self, button) if button == "RightButton" then local _, channelName, _ = GetChannelName("大脚世界频道") if channelName == nil then JoinPermanentChannel("大脚世界频道", nil, 1, 1) ChatFrame_RemoveMessageGroup(chatFrame, "CHANNEL") ChatFrame_AddChannel(chatFrame, "大脚世界频道") print("|cffffe00a<|r|cffff7d0arChat|r|cffffe00a>|r |cff00d200已加入大脚世界频道|r") else LeaveChannelByName("大脚世界频道") print("|cffffe00a<|r|cffff7d0arChat|r|cffffe00a>|r |cffd20000已离开大脚世界频道|r") end else local channel, _, _ = GetChannelName("大脚世界频道") ChatFrame_OpenChat("/" .. channel .. " " .. inputbox:GetText(), chatFrame) end end local function Roll_OnClick() RandomRoll(1, 100) end local function Report_OnClick() local statText = rChat:StatReport() if button == "RightButton" then print("|cffffe00a<|r|cffff7d0arChat|r|cffffe00a>|r |cff00d200我的属性:|r" .. statText) else ChatEdit_ActivateChat(inputbox) inputbox:SetText(statText) end end local function ChatCopy_OnClick() rChat:CopyFunc() end local ChannelButtons = { {name = "say", text = "说", color = {1.00, 1.00, 1.00}, callback = ChannelSay_OnClick}, {name = "yell", text = "喊", color = {1.00, 0.25, 0.25}, callback = ChannelYell_OnClick}, {name = "party", text = "队", color = {0.66, 0.66, 1.00}, callback = ChannelParty_OnClick}, {name = "guild", text = "会", color = {0.25, 1.00, 0.25}, callback = ChannelGuild_OnClick}, {name = "raid", text = "团", color = {1.00, 0.50, 0.00}, callback = ChannelRaid_OnClick}, -- {name = "bg", text = "战", color = {1.00, 0.50, 0.00}, callback = ChannelBG_OnClick}, {name = "world", text = "世", color = {0.78, 1.00, 0.59}, callback = ChannelWorld_OnClick}, {name = "emote", text = "表", color = {1.00, 0.50, 1.00}, callback = ChatEmote_OnClick}, {name = "roll", text = "骰", color = {1.00, 1.00, 0.00}, callback = Roll_OnClick}, -- {name = "report", text = "报", color = {0.80, 0.30, 0.30}, callback = Report_OnClick}, {name = "copy", text = "复", color = {0.20, 0.60, 0.80}, callback = ChatCopy_OnClick} } local function CreateChannelButton(data, index) local button = CreateFrame("Button", nil, ChatBar) button:SetSize(20, 10) -- frame:SetWidth(22) -- 按钮宽度 -- frame:SetHeight(22) -- 按钮高度 button:SetAlpha(config.alpha.leave) button:SetFrameLevel(1) local tex = button:CreateTexture() tex:SetTexture("Interface\\Buttons\\WHITE8x8") tex:SetAllPoints() tex:SetColorTexture(unpack(data.color)) button:SetScript( "OnEnter", function(self) self:SetAlpha(config.alpha.enter) end ) button:SetScript( "OnLeave", function(self) self:SetAlpha(config.alpha.leave) end ) if config.bar.is_vertical then button:SetPoint("TOP", ChatBar, "TOP", 0, (1 - index) * config.bar.padding) else button:SetPoint("LEFT", ChatBar, "LEFT", 10 + (index - 1) * config.bar.padding, 0) end button:RegisterForClicks("AnyUp") button:SetScript("OnClick", data.callback) -- 显示的文字 -- frameText = frame:CreateFontString(data.name .. "Text", "OVERLAY") -- 字体设置 -- frameText:SetFont(STANDARD_TEXT_FONT, 15, "OUTLINE") -- frameText:SetJustifyH("CENTER") -- frameText:SetWidth(26) -- frameText:SetHeight(26) -- frameText:SetText(data.text) -- frameText:SetPoint("CENTER", 0, 0) -- 文字按钮的颜色 -- frameText:SetTextColor(data.color[1], data.color[2], data.color[3]) end ChatBar:SetFrameLevel(0) -- 使用竖直布局 if config.bar.is_vertical then -- 主框体宽度 ChatBar:SetWidth(30) -- 主框体高度 ChatBar:SetHeight(#ChannelButtons * config.bar.padding + 10) else -- 主框体宽度 ChatBar:SetWidth(#ChannelButtons * config.bar.padding + 10) -- 主框体高度 ChatBar:SetHeight(30) end -- 上方聊天输入框 -- if SimpleChat_Config.UseTopInput then -- inputbox:ClearAllPoints() -- inputbox:SetPoint("BOTTOMLEFT", chatFrame, "TOPLEFT", 0, 20) -- inputbox:SetPoint("BOTTOMRIGHT", chatFrame, "TOPRIGHT", 0, 20) -- end -- 位置设定 if config.bar.is_vertical then ChatBar:SetPoint("TOPLEFT", "ChatFrame1", "TOPRIGHT", config.bar.offsetx + 30, config.bar.offsety + 25) else ChatBar:SetPoint("TOPLEFT", "ChatFrame1", "BOTTOMLEFT", config.bar.offsetx, config.bar.offsety - 5) end if GetLocale() ~= 'zhCN' then table.remove(ChannelButtons, 6) end for i = 1, #ChannelButtons do -- 对非战斗记录聊天框的信息进行处理 CreateChannelButton(ChannelButtons[i], i) end --create drag frame rLib:CreateDragFrame(ChatBar, L.dragFrames, -2, true) --create slash commands rLib:CreateSlashCmd(L.addonName, L.addonShortcut, L.dragFrames, L.addonColor)