WoW:USERAPI RunSlashCmd: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
(New page: Thanks to cladhaire and Josh_Borke for all the effort in coming up with this code that allows you to pass a /command to wow from a lua script. The following code is cladhaire's final produ...)
 
m (winner)
Line 24: Line 24:


RunSlashCmd("/addon do this")
RunSlashCmd("/addon do this")
Try
local t={}; t.GetText = function(self) return self.text end; local function RunSlash(slash) t.text = slash; ChatEdit_ParseText(t) end

Revision as of 21:35, 19 December 2007

Thanks to cladhaire and Josh_Borke for all the effort in coming up with this code that allows you to pass a /command to wow from a lua script. The following code is cladhaire's final product


function RunSlashCmd(cmd)
  local slash,rest = cmd:match("^(%S+)%s*(.-)$")
  for name in pairs(SlashCmdList) do
     local i = 1
     local slashCmd
     repeat
        slashCmd = getglobal("SLASH_"..name..i)
        
        if slashCmd == slash then
           -- Call the handler
           SlashCmdList[name](rest)
           return true
        end
        i = i + 1
     until slashCmd == nil
  end
  return false
end 

RunSlashCmd("/help")

RunSlashCmd("/addon do this")

Try

local t={}; t.GetText = function(self) return self.text end; local function RunSlash(slash) t.text = slash; ChatEdit_ParseText(t) end