From 2d996888786cace5faf7802414ae704628e6cd5b Mon Sep 17 00:00:00 2001 From: CvCN <876247638@qq.com> Date: Sat, 5 Oct 2024 00:07:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9B=B4=E6=96=B0=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- InputInput/API.lua | 33 +++++-- InputInput/InIt.lua | 2 +- InputInput/InputInput_Cata.toc | 4 +- InputInput/InputInput_Classic.toc | 6 +- InputInput/InputInput_Mainline.toc | 4 +- InputInput/InputInput_Vanilla.toc | 4 +- InputInput/InputInput_Wrath.toc | 6 +- InputInput/Locales/Init.lua | 13 ++- InputInput/Locales/enUS.lua | 4 +- InputInput/Locales/zhCN.lua | 4 +- InputInput/Locales/zhTW.lua | 4 +- InputInput/Main.lua | 36 ++++++- InputInput/Utils.lua | 94 +++++++++++++------ .../InputInput_Libraries_zh_Classic.toc | 2 +- .../InputInput_Libraries_zh_Wrath.toc | 2 +- README.md | 7 +- 16 files changed, 164 insertions(+), 61 deletions(-) diff --git a/InputInput/API.lua b/InputInput/API.lua index cef6eeb..87df68d 100644 --- a/InputInput/API.lua +++ b/InputInput/API.lua @@ -2,9 +2,14 @@ local W, M, U, D, G, L, E, API, LOG = unpack((select(2, ...))) local version, buildVersion, buildDate, uiVersion = GetBuildInfo() +-- 斩断 ctr+shift+m -local function getVersion(v) - local expansion, majorPatch, minorPatch = (v or "5.0.0"):match("^(%d+)%.(%d+)%.(%d+)") + +-- 版本信息 +-- @param v 版本号 +-- @return 版本号(number) +function W:getVersion(v) + local expansion, majorPatch, minorPatch = (v or "1.0.0"):match("^(%d+)%.(%d+)%.(%d+)") return (expansion or 0) * 10000 + (majorPatch or 0) * 100 + (minorPatch or 0) end @@ -27,18 +32,18 @@ local function sortTableByKey(t, comp) return sortedTable end -local clientVersion = getVersion(version) +local clientVersion = W:getVersion(version) local function Fun(funTable) for name, t in pairs(funTable) do if t then - t = sortTableByKey(t, function (a1, a2) + t = sortTableByKey(t, function(a1, a2) -- LOG:Debug(a1) - return getVersion(a1) < getVersion(a2) + return W:getVersion(a1) < W:getVersion(a2) end) for v, f in pairs(t) do -- LOG:Debug(name, clientVersion, getVersion(v)) - if clientVersion >= getVersion(v) then + if clientVersion >= W:getVersion(v) then API[name] = f break end @@ -240,5 +245,21 @@ Fun({ -- Returns the game client locale. GetLocale = { ['1.0.0'] = GetLocale + }, + C_ChatInfo_SendAddonMessage = { + ['1.0.0'] = C_ChatInfo and C_ChatInfo.SendAddonMessage + }, + C_ChatInfo_RegisterAddonMessagePrefix = { + ['1.0.0'] = C_ChatInfo and C_ChatInfo.RegisterAddonMessagePrefix + }, + C_AddOns_GetAddOnMetadata = { + ['1.0.0'] = C_AddOns and C_AddOns.GetAddOnMetadata + }, + C_Timer_After = { + ['1.0.0'] = C_Timer and C_Timer.After } }) + + +local C_AddOns_GetAddOnMetadata = API.C_AddOns_GetAddOnMetadata +W.version = C_AddOns_GetAddOnMetadata('InputInput', 'Version') diff --git a/InputInput/InIt.lua b/InputInput/InIt.lua index 9032c09..8a77129 100644 --- a/InputInput/InIt.lua +++ b/InputInput/InIt.lua @@ -7,7 +7,7 @@ local Data = {} local Locale = {} local API = {} local LOG = {} -local Environment = 'PRO' +local Environment = 'PRO' -- DEV PRO Widget.defaultFontName = GameFontHighlightSmall:GetFont() AddOnesTable[1] = Widget diff --git a/InputInput/InputInput_Cata.toc b/InputInput/InputInput_Cata.toc index df70053..aadae34 100644 --- a/InputInput/InputInput_Cata.toc +++ b/InputInput/InputInput_Cata.toc @@ -5,8 +5,8 @@ ## Notes-zhCN: 输入框增强 ## Notes-zhTW: 輸入框增強 ## Author: York -## Version: 1.0.9 -## X-Date: 2024-08-18 +## Version: 1.0.11 +## X-Date: 2024-10-03 ## X-Category: Interface Enhancements ## X-Curse-Project-ID: 1076615 diff --git a/InputInput/InputInput_Classic.toc b/InputInput/InputInput_Classic.toc index 018c43b..514f512 100644 --- a/InputInput/InputInput_Classic.toc +++ b/InputInput/InputInput_Classic.toc @@ -1,12 +1,12 @@ -## Interface: 11503 +## Interface: 11504, 11503 ## Title: |cff409EFF|cffF56C6Ci|rnput|cffF56C6Ci|rnput|r ## Notes: Input box enhancement ## Notes-zhCN: 输入框增强 ## Notes-zhTW: 輸入框增強 ## Author: York -## Version: 1.0.9 -## X-Date: 2024-08-18 +## Version: 1.0.11 +## X-Date: 2024-10-03 ## X-Category: Interface Enhancements ## X-Curse-Project-ID: 1076615 diff --git a/InputInput/InputInput_Mainline.toc b/InputInput/InputInput_Mainline.toc index 7f365eb..5575430 100644 --- a/InputInput/InputInput_Mainline.toc +++ b/InputInput/InputInput_Mainline.toc @@ -6,8 +6,8 @@ ## Notes-zhCN: 输入框增强 ## Notes-zhTW: 輸入框增強 ## Author: York -## Version: 1.0.9 -## X-Date: 2024-08-18 +## Version: 1.0.11 +## X-Date: 2024-10-03 ## X-Category: Interface Enhancements ## X-Curse-Project-ID: 1076615 diff --git a/InputInput/InputInput_Vanilla.toc b/InputInput/InputInput_Vanilla.toc index c6a062d..514f512 100644 --- a/InputInput/InputInput_Vanilla.toc +++ b/InputInput/InputInput_Vanilla.toc @@ -5,8 +5,8 @@ ## Notes-zhCN: 输入框增强 ## Notes-zhTW: 輸入框增強 ## Author: York -## Version: 1.0.9 -## X-Date: 2024-08-18 +## Version: 1.0.11 +## X-Date: 2024-10-03 ## X-Category: Interface Enhancements ## X-Curse-Project-ID: 1076615 diff --git a/InputInput/InputInput_Wrath.toc b/InputInput/InputInput_Wrath.toc index ed49a36..246e6f9 100644 --- a/InputInput/InputInput_Wrath.toc +++ b/InputInput/InputInput_Wrath.toc @@ -1,12 +1,12 @@ -## Interface: 30403 +## Interface: 30405, 30403 ## Title: |cff409EFF|cffF56C6Ci|rnput|cffF56C6Ci|rnput|r ## Notes: Input box enhancement ## Notes-zhCN: 输入框增强 ## Notes-zhTW: 輸入框增強 ## Author: York -## Version: 1.0.9 -## X-Date: 2024-08-18 +## Version: 1.0.11 +## X-Date: 2024-10-03 ## X-Category: Interface Enhancements ## X-Curse-Project-ID: 1076615 diff --git a/InputInput/Locales/Init.lua b/InputInput/Locales/Init.lua index 561d111..02bc5f7 100644 --- a/InputInput/Locales/Init.lua +++ b/InputInput/Locales/Init.lua @@ -2,4 +2,15 @@ local N, T = ... local W, M, U, D, G, L, E, API, LOG = unpack((select(2, ...))) local GetLocale = API.GetLocale local locale = GetLocale() or 'enUS' -T[6] = L[locale] +T[6] = L[locale] or {} + +-- 定义元表,重写 __index +local mt = { + -- 定制下标取值的逻辑 + __index = function(table, key) + return rawget(table, key) or rawget(L['enUS'], key) -- 如果没有值,返回缺省值 + end +} + +-- 设置元表 +setmetatable(T[6], mt) diff --git a/InputInput/Locales/enUS.lua b/InputInput/Locales/enUS.lua index a735aec..0d4643e 100644 --- a/InputInput/Locales/enUS.lua +++ b/InputInput/Locales/enUS.lua @@ -93,4 +93,6 @@ L['Chinese word processing module can make input prompts more intelligent'] = 'C L['Login Information 1'] = "You are using the %s Input Enhancement addon. If you encounter any issues during use, you can provide feedback via %s or on the addon website %s" L['Login Information 2'] = "Enter %s or %s to open the settings panel" -L['Not enabled, enter/ii to enable'] = 'Not enabled, enter%s to enable' \ No newline at end of file +L['Not enabled, enter/ii to enable'] = 'Not enabled, enter%s to enable' + +L['New Version Discovered'] = '%s Discovered a new version %s' \ No newline at end of file diff --git a/InputInput/Locales/zhCN.lua b/InputInput/Locales/zhCN.lua index 90c6b3d..6f7b51c 100644 --- a/InputInput/Locales/zhCN.lua +++ b/InputInput/Locales/zhCN.lua @@ -95,4 +95,6 @@ L['Chinese word processing module can make input prompts more intelligent'] = ' L['Login Information 1'] = "您正在使用%s输入框增强插件, 使用过程中的任何问题都可以通过 %s 或者 到插件网站 %s 进行反馈" L['Login Information 2'] = "输入 %s 或者 %s 打开设置面板" -L['Not enabled, enter/ii to enable'] = '未启用,输入%s启用' \ No newline at end of file +L['Not enabled, enter/ii to enable'] = '未启用,输入%s启用' + +L['New Version Discovered'] = '%s 发现新版本 %s' \ No newline at end of file diff --git a/InputInput/Locales/zhTW.lua b/InputInput/Locales/zhTW.lua index a8c4c52..22f848c 100644 --- a/InputInput/Locales/zhTW.lua +++ b/InputInput/Locales/zhTW.lua @@ -93,4 +93,6 @@ L['Chinese word processing module can make input prompts more intelligent'] = ' L['Login Information 1'] = "您正在使用%s輸入框增強插件,使用過程中的任何問題都可以透過 %s 或到插件網站 %s 進行反饋" L['Login Information 2'] = "輸入 %s 或 %s 打開設定面板" -L['Not enabled, enter/ii to enable'] = '未開啟,輸入%s開啟' \ No newline at end of file +L['Not enabled, enter/ii to enable'] = '未開啟,輸入%s開啟' + +L['New Version Discovered'] = '%s 發現新版本 %s' \ No newline at end of file diff --git a/InputInput/Main.lua b/InputInput/Main.lua index e1b4c8a..ea720f2 100644 --- a/InputInput/Main.lua +++ b/InputInput/Main.lua @@ -22,6 +22,7 @@ local IsLeftShiftKeyDown = API.IsLeftShiftKeyDown local C_AddOns_GetAddOnEnableState = API.C_AddOns_GetAddOnEnableState local C_AddOns_EnableAddOn = API.C_AddOns_EnableAddOn local C_AddOns_DisableAddOn = API.C_AddOns_DisableAddOn +local C_ChatInfo_RegisterAddonMessagePrefix = API.C_ChatInfo_RegisterAddonMessagePrefix local measureFontString = UIParent:CreateFontString(nil, "ARTWORK", "GameFontNormal") @@ -1138,6 +1139,7 @@ frame:RegisterEvent("PLAYER_LOGIN") frame:RegisterEvent("PLAYER_ENTERING_WORLD") frame:RegisterEvent("CVAR_UPDATE") frame:RegisterEvent("ADDON_LOADED") +frame:RegisterEvent("CHAT_MSG_ADDON") frame:RegisterEvent("ZONE_CHANGED") frame:RegisterEvent("ZONE_CHANGED_INDOORS") @@ -1153,11 +1155,14 @@ for _, event in pairs(ChatTypeGroup["WHISPER"]) do frame:RegisterEvent(event); end local editBox, bg, border, backdropFrame2, resizeButton, resizeBtnTexture, channel_name, II_TIP, II_LANG, bg3 - +local SendRecieveGroupSize = 0 +local SendMessageWaiting = nil +local versionUpdateMsg = nil frame:HookScript("OnEvent", function(self_f, event, ...) if not isInit then editBox, bg, border, backdropFrame2, resizeButton, resizeBtnTexture, channel_name, II_TIP, II_LANG, bg3 = MAIN:Init() + C_ChatInfo_RegisterAddonMessagePrefix('INPUTINPUT_V') end if event == 'PLAYER_ENTERING_WORLD' or strfind(event, "WHISPER", 0, true) then for _, chatFrameName in pairs(CHAT_FRAMES) do @@ -1191,6 +1196,9 @@ frame:HookScript("OnEvent", function(self_f, event, ...) end end) U:InitZones() + if not SendMessageWaiting then + SendMessageWaiting = U:Delay(10, U.SendVersionMsg) + end elseif event == 'CVAR_UPDATE' then local cvarName, value = ... if cvarName == 'chatStyle' or cvarName == 'whisperMode' then @@ -1241,6 +1249,26 @@ frame:HookScript("OnEvent", function(self_f, event, ...) U:InitZones() elseif event == 'GROUP_ROSTER_UPDATE' or event == 'RAID_ROSTER_UPDATE' then U:InitGroupMembers() + local num = GetNumGroupMembers() + if num ~= SendRecieveGroupSize then + if num > 1 and num > SendRecieveGroupSize then + if not SendMessageWaiting then + SendMessageWaiting = U:Delay(10, U.SendVersionMsg) + end + end + SendRecieveGroupSize = num + end + elseif event == 'CHAT_MSG_ADDON' then + local prefix, text, channel, sender, target, zoneChannelID, localID, name, instanceID = ... + if prefix == "INPUTINPUT_V" and (not versionUpdateMsg or time() - versionUpdateMsg > 60 * 30) then + local ver, msg, inCombat = W:getVersion(W.version), W:getVersion(text), InCombatLockdown() + LOG:Debug(ver, msg, text) + if msg and (msg > ver) and not inCombat then + LOG:Info(string.format(L['New Version Discovered'], W.colorName, + '|cFFFFFFFF' .. text .. '|r|cFF909399 (' .. W.version .. ')|r')) + versionUpdateMsg = time() + end + end else if (C_AddOns_IsAddOnLoaded("ElvUI") or ElvUI == nil) and (C_AddOns_IsAddOnLoaded("NDui") or NDui == nil) then @@ -1249,16 +1277,16 @@ frame:HookScript("OnEvent", function(self_f, event, ...) optionSetup(backdropFrame2) - C_Timer.After(5, function(cb) + U:Delay(5, function(cb) LOG:Info(string.format(L['Login Information 1'], W.colorName, "|cff409EFFDiscord|r |cFFFFFFFF[https://discord.gg/qC9RAdXN]|r", "|cff409EFFCurseForge|r |cFFFFFFFF[https://www.curseforge.com/wow/addons/inputinput/comments]|r")) end) - C_Timer.After(6, function(cb) + U:Delay(6, function(cb) LOG:Info(string.format(L['Login Information 2'], "|cff409EFF/ii|r", "|cff409EFF/inputinput|r")) end) - C_Timer.After(7, function(cb) + U:Delay(7, function(cb) local isLoad = C_AddOns_GetAddOnEnableState("InputInput_Libraries_zh") == 2 if GetLocale() == 'zhCN' or GetLocale() == 'zhTW' then if not (C_AddOns_GetAddOnEnableState("InputInput_Libraries_zh") == 2) then diff --git a/InputInput/Utils.lua b/InputInput/Utils.lua index 530ef24..63219e0 100644 --- a/InputInput/Utils.lua +++ b/InputInput/Utils.lua @@ -11,6 +11,8 @@ local IsInRaid = API.IsInRaid local GetNumGroupMembers = API.GetNumGroupMembers local GetZoneText = API.GetZoneText local GetSubZoneText = API.GetSubZoneText +local C_ChatInfo_SendAddonMessage = API.C_ChatInfo_SendAddonMessage +local C_Timer_After = API.C_Timer_After -- 格式化时间戳函数 -- @param currentTime 当前时间,通常为系统当前时间 @@ -243,27 +245,27 @@ function U:BTagFilter(text) local patt = '%|?%|BTag:.-%|?%|BTag' -- 定义不符合要求的BTag标记的正则表达式模式 local notpatt = '%|%|BTag:.-%|%|BTag' - + -- 如果文本为空或不包含BTag标记,则直接返回原文本 if text == nil or #text <= 0 or not text:find(patt) then return text end - + -- 使用正则表达式替换所有符合要求的BTag标记 return gsub(text, patt, function(str) -- 如果当前BTag标记不符合要求,则保持不变 if str:find(notpatt) then return str end - + -- 提取BTag标记中的账号信息 local BTag, _ = str:match('%|BTag:(.-)%|BTag') -- 通过BTag获取对应的账号信息 local accountInfo = U:GetAccountInfoByBattleTag(BTag) - + -- 如果找到了对应的账号信息 if accountInfo then -- 获取账号的游戏信息 local gameFriend = accountInfo.gameAccountInfo - + -- 如果游戏信息包含职业名称 if gameFriend and gameFriend.className then -- 根据职业名称获取对应的颜色 @@ -273,7 +275,7 @@ function U:BTagFilter(text) -- 返回带有颜色代码的账号名称 return '|c' .. classColor.colorStr .. accountInfo.accountName .. '|r' end - + -- 如果没有游戏信息,直接返回账号名称 return accountInfo.accountName else @@ -391,7 +393,7 @@ function U:AddOrMoveToEnd(array, element) end -- 获取表的元素数量 --- +-- ---@param t table 要计算大小的表 ---@return integer 表中元素的数量 local function getTableSize(t) @@ -409,7 +411,7 @@ end function U:UnitColor(unitName, color) -- 从数据库读取单位颜色缓存,如果不存在,则初始化为空表,避免每次都读取数据库 local UNIT_COLOR_CACHE = D:ReadDB('UNIT_COLOR_CACHE', {}, true) - + -- 如果缓存表的大小超过200,为了防止表过大影响性能,删除第一个元素 if getTableSize(UNIT_COLOR_CACHE) >= 200 then -- 找到第一个键并删除,这里使用break实现只删除一个元素 @@ -418,10 +420,10 @@ function U:UnitColor(unitName, color) break end end - + -- 如果提供了颜色,则直接缓存该颜色,否则尝试从缓存中获取 UNIT_COLOR_CACHE[unitName] = color or UNIT_COLOR_CACHE[unitName] - + -- 如果缓存中没有该单位的颜色,尝试根据单位名称获取战斗网账号信息并设置颜色 if UNIT_COLOR_CACHE[unitName] == nil then local accountInfo = BNet_GetAccountInfoFromAccountName(unitName) @@ -432,10 +434,10 @@ function U:UnitColor(unitName, color) [lcoalClassToEnglishClass(accountInfo.gameAccountInfo.className)].colorStr end end - + -- 将更新后的缓存保存回数据库 D:SaveDB('UNIT_COLOR_CACHE', UNIT_COLOR_CACHE, true) - + -- 返回单位的颜色,可能为nil return UNIT_COLOR_CACHE[unitName] end @@ -506,14 +508,14 @@ end function U:CutWord(str) -- 检查输入是否为空或空字符串,如果是,则直接返回 if not str or str == '' then return {} end - + -- 尝试从缓存中获取切割结果,如果存在缓存则直接返回 local cache = wordCache[str] if cache then return cache end - + -- 初始化一个空表,用于存储最终的切割结果 local re = {} - + -- 使用jieba分词库对输入字符串进行分词,不使用模糊模式,使用HMM模式 for _, i in ipairs(jieba.lcut(str, false, true)) do -- 过滤掉所有的空白词(如空格、换行等) @@ -522,10 +524,10 @@ function U:CutWord(str) tinsert(re, i) end end - + -- 将最终的切割结果缓存起来,用于后续相同输入的快速返回 wordCache[str] = re - + -- 返回切割后的单词列表 return re end @@ -649,10 +651,10 @@ function U:InitGroupMembers() local unitID = "party" .. i -- 对于小队成员 -- 如果在团队中,则使用团队的单位ID if IsInRaid() then - unitID = "raid" .. i -- 对于团队成员 - -- 如果是小队成员的最后一个,并且不在团队中,则设置为玩家自己 + unitID = "raid" .. i -- 对于团队成员 + -- 如果是小队成员的最后一个,并且不在团队中,则设置为玩家自己 elseif i == numGroupMembers and not IsInRaid() then - unitID = "player" -- 自己作为小队成员的最后一个 + unitID = "player" -- 自己作为小队成员的最后一个 end -- 获取成员的名字和服务器 @@ -738,16 +740,52 @@ function U:PlayerTip(inpall, inp) end end +-- INPUTINPUT_V +-- 发送版本信息 +function U:SendVersionMsg() + if IsInRaid() then + C_ChatInfo_SendAddonMessage('INPUTINPUT_V', W.version, + (not IsInRaid(LE_PARTY_CATEGORY_HOME) and IsInRaid(LE_PARTY_CATEGORY_INSTANCE)) and 'INSTANCE_CHAT' or 'RAID') + elseif IsInGroup() then + C_ChatInfo_SendAddonMessage('INPUTINPUT_V', W.version, + (not IsInGroup(LE_PARTY_CATEGORY_HOME) and IsInGroup(LE_PARTY_CATEGORY_INSTANCE)) and 'INSTANCE_CHAT' or + 'PARTY') + elseif IsInGuild() then + C_ChatInfo_SendAddonMessage('INPUTINPUT_V', W.version, 'GUILD') + end +end + +do + -- 创建一个闭包函数,用于将可变参数传递给目标函数 + local function CreateClosure(func, data) + return function() func(unpack(data)) end + end + + -- 延迟执行函数 + -- @param delay: 延迟时间,单位为秒 + -- @param func: 要延迟执行的函数 + -- @param ...: 可变参数,传递给要延迟执行的函数 + -- @return: 返回一个布尔值,表示是否成功创建延迟执行任务 + function U:Delay(delay, func, ...) + if type(delay) ~= 'number' or type(func) ~= 'function' then return false end + + local args = { ... } -- delay: Restrict to the lowest time that the API allows us + C_Timer_After(delay < 0.01 and 0.01 or delay, (#args <= 0 and func) or CreateClosure(func, args)) + + return true + end +end + -- 定义一个静态提示框,用于在用户需要重新加载UI时提供确认提示 StaticPopupDialogs["InputInput_RELOAD_UI_CONFIRMATION"] = { text = L['Do you want to reload the addOnes'], -- 提示框的文本内容,询问用户是否想要重新加载插件 - button1 = L['Yes'], -- 提示框的第一个按钮,提供“是”的选项 - button2 = L['No'], -- 提示框的第二个按钮,提供“否”的选项 - OnAccept = function() -- 当用户点击“是”时的回调函数 - ReloadUI() -- 执行重载UI的操作 + button1 = L['Yes'], -- 提示框的第一个按钮,提供“是”的选项 + button2 = L['No'], -- 提示框的第二个按钮,提供“否”的选项 + OnAccept = function() -- 当用户点击“是”时的回调函数 + ReloadUI() -- 执行重载UI的操作 end, - timeout = 10, -- 提示框显示的超时时间,0表示不自动消失 - whileDead = true, -- 在玩家死亡时是否显示该提示框,true表示显示 - hideOnEscape = true, -- 当用户按下ESC键时是否隐藏该提示框,true表示隐藏 - preferredIndex = 3, -- 设置提示框的显示优先级,避免与其他静态提示框冲突 + timeout = 10, -- 提示框显示的超时时间,0表示不自动消失 + whileDead = true, -- 在玩家死亡时是否显示该提示框,true表示显示 + hideOnEscape = true, -- 当用户按下ESC键时是否隐藏该提示框,true表示隐藏 + preferredIndex = 3, -- 设置提示框的显示优先级,避免与其他静态提示框冲突 } diff --git a/InputInput_Libraries_zh/InputInput_Libraries_zh_Classic.toc b/InputInput_Libraries_zh/InputInput_Libraries_zh_Classic.toc index 7c6c6ad..ad47686 100644 --- a/InputInput_Libraries_zh/InputInput_Libraries_zh_Classic.toc +++ b/InputInput_Libraries_zh/InputInput_Libraries_zh_Classic.toc @@ -1,4 +1,4 @@ -## Interface: 11503 +## Interface: 11504, 11503 ## Title: |cff409EFF|cffF56C6Ci|rnput|cffF56C6Ci|rnput|r_Libraries_|cffF56C6Czh|r ## Notes: InputInput Libraries ZH diff --git a/InputInput_Libraries_zh/InputInput_Libraries_zh_Wrath.toc b/InputInput_Libraries_zh/InputInput_Libraries_zh_Wrath.toc index 8f76239..b66f114 100644 --- a/InputInput_Libraries_zh/InputInput_Libraries_zh_Wrath.toc +++ b/InputInput_Libraries_zh/InputInput_Libraries_zh_Wrath.toc @@ -1,4 +1,4 @@ -## Interface: 30403 +## Interface: 30405, 30403 ## Title: |cff409EFF|cffF56C6Ci|rnput|cffF56C6Ci|rnput|r_Libraries_|cffF56C6Czh|r ## Notes: InputInput Libraries ZH diff --git a/README.md b/README.md index 4ed67ec..a2c298b 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,15 @@ # 关于插件 Features: -- 重写了游戏内默认的输入框,位于角色下方,习惯了你就会爱上它 Rewrite the default input box in the game, located below the character. Once you get used to it, you will fall in love with it +- 重写了游戏内默认的输入框,将其显示在角色下方,习惯了你就会爱上它 Rewrite the default input box in the game, located below the character. Once you get used to it, you will fall in love with it - 支持移动(Shift+左键)、缩放(Shift+右边箭头)、重置(Shift+右键)Support movement (Shift+left button), zoom (Shift+right arrow), reset (Shift+right button) -- 频道颜色、Tab切换 Channel color, Tab switching +- 频道颜色、Tab切换频道 Channel color, Tab to switch channel - 历史记录(⬆️⬇️) Historical records - 输入提示、自动补充(Control+Enter) Input prompts, automatic supplementation - 撤销(Control+Z)反撤销(Control+Shift+Z) undo、redo - 最近消息 Recent chat messages -- 聊天过滤器 Chat filter # 设置 Options: -- /ii or /InputInput or Esc->选项->插件->InputInput +- /ii or /InputInput or Esc->选项(options)->插件(addOnes)->InputInput # 支持的游戏版本 Supported WOW Versions: - 地心之战(TWW) 110000, 110002