local _, u = ... -- https://wowpedia.fandom.com/wiki/BindingID local myBinds = { -- Movement ['A'] = 'STRAFELEFT', ['D'] = 'STRAFERIGHT', -- Character and bag toggles, since c and b are used for strafing ['F1'] = 'OPENALLBAGS', ['F2'] = 'TOGGLECHARACTER0', -- Action Bar 1 ['1'] = 'ACTIONBUTTON1', ['2'] = 'ACTIONBUTTON2', ['3'] = 'ACTIONBUTTON3', ['4'] = 'ACTIONBUTTON4', ['5'] = 'ACTIONBUTTON5', ['6'] = 'ACTIONBUTTON6', ['SHIFT-1'] = 'ACTIONBUTTON7', ['SHIFT-2'] = 'ACTIONBUTTON8', ['SHIFT-3'] = 'ACTIONBUTTON9', ['SHIFT-4'] = 'ACTIONBUTTON10', ['SHIFT-5'] = 'ACTIONBUTTON11', ['SHIFT-6'] = 'ACTIONBUTTON12', -- Action Bar 2 ['BUTTON5'] = 'MULTIACTIONBAR1BUTTON1', ['BUTTON4'] = 'MULTIACTIONBAR1BUTTON2', ['SHIFT-BUTTON5'] = 'MULTIACTIONBAR1BUTTON3', ['SHIFT-BUTTON4'] = 'MULTIACTIONBAR1BUTTON4', ['CTRL-BUTTON5'] = 'MULTIACTIONBAR1BUTTON5', ['CTRL-BUTTON4'] = 'MULTIACTIONBAR1BUTTON6', ['BUTTON3'] = 'MULTIACTIONBAR1BUTTON7', ['SHIFT-BUTTON3'] = 'MULTIACTIONBAR1BUTTON8', ['CTRL-BUTTON3'] = 'MULTIACTIONBAR1BUTTON9', ['§'] = 'MULTIACTIONBAR1BUTTON10', ['SHIFT-§'] = 'MULTIACTIONBAR1BUTTON11', ['CTRL-§'] = 'MULTIACTIONBAR1BUTTON12', -- Action Bar 3 ['Q'] = 'MULTIACTIONBAR2BUTTON1', ['E'] = 'MULTIACTIONBAR2BUTTON2', ['R'] = 'MULTIACTIONBAR2BUTTON3', ['T'] = 'MULTIACTIONBAR2BUTTON4', ['F'] = 'MULTIACTIONBAR2BUTTON5', ['G'] = 'MULTIACTIONBAR2BUTTON6', ['SHIFT-Q'] = 'MULTIACTIONBAR2BUTTON7', ['SHIFT-E'] = 'MULTIACTIONBAR2BUTTON8', ['SHIFT-R'] = 'MULTIACTIONBAR2BUTTON9', ['SHIFT-T'] = 'MULTIACTIONBAR2BUTTON10', ['SHIFT-F'] = 'MULTIACTIONBAR2BUTTON11', ['SHIFT-G'] = 'MULTIACTIONBAR2BUTTON12', -- Action Bar 4 ['S'] = 'MULTIACTIONBAR3BUTTON1', ['Z'] = 'MULTIACTIONBAR3BUTTON2', ['X'] = 'MULTIACTIONBAR3BUTTON3', ['C'] = 'MULTIACTIONBAR3BUTTON4', ['V'] = 'MULTIACTIONBAR3BUTTON5', ['B'] = 'MULTIACTIONBAR3BUTTON6', ['SHIFT-S'] = 'MULTIACTIONBAR3BUTTON7', ['SHIFT-Z'] = 'MULTIACTIONBAR3BUTTON8', ['SHIFT-X'] = 'MULTIACTIONBAR3BUTTON9', ['SHIFT-C'] = 'MULTIACTIONBAR3BUTTON10', ['SHIFT-V'] = 'MULTIACTIONBAR3BUTTON11', ['SHIFT-B'] = 'MULTIACTIONBAR3BUTTON12', -- Action Bar 5 ['CTRL-Q'] = 'MULTIACTIONBAR4BUTTON1', ['CTRL-E'] = 'MULTIACTIONBAR4BUTTON2', ['CTRL-R'] = 'MULTIACTIONBAR4BUTTON3', ['CTRL-T'] = 'MULTIACTIONBAR4BUTTON4', ['CTRL-F'] = 'MULTIACTIONBAR4BUTTON5', ['CTRL-G'] = 'MULTIACTIONBAR4BUTTON6', ['CTRL-1'] = 'MULTIACTIONBAR4BUTTON7', ['CTRL-2'] = 'MULTIACTIONBAR4BUTTON8', ['CTRL-3'] = 'MULTIACTIONBAR4BUTTON9', ['CTRL-4'] = 'MULTIACTIONBAR4BUTTON10', ['CTRL-5'] = 'MULTIACTIONBAR4BUTTON11', ['CTRL-6'] = 'MULTIACTIONBAR4BUTTON12', } local cameraBinds = { -- Remove zoom from mousewheel ['-'] = 'CAMERAZOOMOUT', ['+'] = 'CAMERAZOOMIN', ['MOUSEWHEELUP'] = 'STARTAUTORUN', ['MOUSEWHEELDOWN'] = 'FOLLOWTARGET', } -- Unsets a binding, if it exists local function unsetBinding(action) local key1, key2 = GetBindingKey(action) if key1 then SetBinding(key1, nil) end if key2 then SetBinding(key2, nil) end end -- Same as SetBinding, but removes the old binding first local function setBindingRM(key, action) unsetBinding(action) if SetBinding(key, action) then u.success(key .. ' -> ' .. action) else u.error('Failed to set binding ' .. key .. ' to ' .. action) end end local function applyBindingSet(set) for key, action in pairs(set) do setBindingRM(key, action) end u.info 'Bindings set!' u.warn 'Dont forget to reload your UI.' end local function enableBars() SetActionBarToggles(1, 1, 1, 1) SHOW_MULTI_ACTIONBAR_1 = 1 --Bottom Left Bar SHOW_MULTI_ACTIONBAR_2 = 1 --Bottom Right Bar SHOW_MULTI_ACTIONBAR_3 = 1 --Right Bar SHOW_MULTI_ACTIONBAR_4 = 1 --Right Bar 2 MultiActionBar_Update() SetCVar('alwaysShowActionBars', 1) SetCVar('lockActionBars', 1) SetCVar('countdownForCooldowns', 1) SetCVar('cameraDistanceMaxZoomFactor', 2) SetCVar('instantQuestText', 1) SetCVar('nameplateShowAll', 1) SetCVar('nameplateShowEnemies', 1) SetCVar('nameplateMaxDistance', 35) SetCVar('enableFloatingCombatText', 1) end local function BindsHandler(msg, editbox) u.guards() if msg == '' then applyBindingSet(myBinds) enableBars() end if msg == 'camera' then applyBindingSet(cameraBinds) end SaveBindings(1) u.guards() end -- Register the /hello command SLASH_BINDS1 = '/binds' SlashCmdList['BINDS'] = BindsHandler