Parsing a command in main chat.
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

Parsing a command in main chat.

Started by OpiumVolage, 21 October, 2003, 10:38:51

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

OpiumVolage

This code has been made to parse bot command sent in main chat efficiently, feel free to use it.

-- vim:ts=4:sw=4:noet:syntax=lua
-- Command line parsing test (OpiumVolage 22/09/2003)

function DataArrival(user, data)
	-- call isCommand
	local Action = isCommand(data)
	-- if no command prefix is found exit
	if not Action then return end
	-- Parse the rest of the line to find the command,
	-- the optional sub-command and parameters.
	local s, e, Cmd1, Cmd2, Params =
		strfind(data, "^%b<>%s%"..Action.."(%S+)%s*(%S*)%s*(.*)|$")
	if Action == "!" then tmpMsg = "You pass a hub command: !\r\n"
	elseif Action == "?" then tmpMsg = "You check a config: ?\r\n"
	elseif Action == "=" then tmpMsg = "You change a config: =\r\n"
	end
	tmpMsg = tmpMsg.."Command is: "..Cmd1.."\r\n"
	tmpMsg = tmpMsg.."Sub-command is: "..Cmd2.."\r\n"
	tmpMsg = tmpMsg.."Params are: "..Params
	SendToAll("Commands", tmpMsg)
end

function isCommand(data)
	-- try to find any command prefix (!, ? or =)
	-- return nil or the prefix.
	local s, e, prefix = strfind(data, "%b<>%s([!%?=])%S+")
	return prefix
end

Fangs404

i know this is lua 4, but i can definitely make use of this for lua 5.  giving this a nice bump because this is really important to know how to do.  thanks!

SMF spam blocked by CleanTalk