[Help] Triggerbot
 

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

[Help] Triggerbot

Started by Snooze, 27 July, 2004, 04:03:32

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Snooze

I'm trying to make a trigger bot where users can add their own triggers ..

This is what I've done so far.

BotName = "Honey"
BotPrefix = "+"

Trigger1 = "addtrigger"
Trigger2 = "viewtriggers"
Trigger3 = "deltrigger"

FilePath = "Triggers/"
assert(dofile(FilePath.."Triggers.lua"), "Trigger.lua not found or error in script")

function Main()
frmHub:RegBot(BotName)
end

function DataArrival(user,data)
	if strsub(data, 1, 1) == "<" then
		local data=strsub(data,1,strlen(data)-1)
		s,e,cmd = strfind(data,"%b<>%s+(%S+)")
		if cmd == BotPrefix..Trigger1 then 
			addTrigger(user, data)
			return 1
		elseif cmd == BotPrefix..Trigger2 then 
			viewTrigger(user,data)
			return 1
		elseif cmd == BotPrefix..Trigger3 then 
			delTrigger(user,data)
			return 1
		elseif tTriggers[cmd] ~= nil then
			TriggerReply(user,data)
		end
	end
end

function addTrigger(user,data)
	if not user.bOperator then
		user:SendData(Bot, "You are not allowed to add triggers.")
		return 1
	end
	GetArg(data)
	if arg == nil then
		user:SendPM(Bot, "You need to enter a trigger and a reply. Type "..BotPrefix.."triggerhelp to see howto add a new trigger.")
		return 1
	else
	local _,_,sTrigger, sReply = strfind( arg, "(%S+)%s+(.+)" )
	tTriggers[sTrigger] = {sReply}
	SaveTrigger()
	SendToAll(BotName, "Done.\r\n\r\nTrigger: '"..sTrigger.."'\r\nReply: '"..sReply.."'\r\n\r\nSuccessfully added.")
	end
end

function delTrigger(user,data)
	if not user.bOperator then
		user:SendPM(Bot, "You are not allowed to delete triggers.")
		return 1
	end
	GetArg(data)
	if arg == nil then
		user:SendPM(Bot, "You need to tell me what trigger to delete.")
		return 1
	else
		if tTriggers[arg] == nil then
			user:SendPM(Bot, "I can't find any trigger called '"..arg.."'. Are you sure you spelled it right ?")
			return 1
		else
			tTriggers[arg] = nil
			SaveTrigger()
			user:SendPM(Bot, "The trigger '"..arg.."' has been removed.")
		end
	end
end

function TriggerReply(user,data)
	GetArg(data)
	if arg == nil then 
		user:SendData(BotName, "You need to enter a username.")
		return 1
	end
		local _,_,msg1,msg2 = strfind(tTriggers[cmd][1], "(.*)%s+#user#%s+(.*)")
		if msg1 == nil then 
			msg1 = "" 
		end
		if msg2 == nil then
			msg2 = ""
		end
	SendToAll("*** "..BotName.." "..msg1.." "..arg.." "..msg2)
end

	
	
	
function SaveTrigger()
	local sline = "------------------------------------------------------------------"
	local handle = openfile(FilePath.."Triggers.lua","w")		
	write(handle,sline.."\r\n--\t*** Triggers ***\t--\r\n"..sline.."\r\n\r\n")
	Serialize(tTriggers,"tTriggers",handle)
	closefile(handle)
end

function Serialize(tTable,sTableName,hFile,sTab)
	sTab = sTab or "";
	write(hFile,sTab..sTableName.." = {\n");
	for key,value in tTable do
		local sKey = (type(key) == "string") and format("[%q]",key) or format("[%d]",key);
		if(type(value) == "table") then
			Serialize(value,sKey,hFile,sTab.."\t");
		else
			local sValue = (type(value) == "string") and format("%q",value) or tostring(value);
			write(hFile,sTab.."\t"..sKey.." = "..sValue);
		end
		write(hFile,",\n");
	end
	write(hFile,sTab.."}");
end

function GetArg(data) 
   s,e,cmd,arg = strfind( data, "%b<>%s+(%S+)%s+(.+)" ) 
   return arg 
end

I need to find a better way to resolve the #user# from the string .. any suggestions/ideas would be great.

A new trigger is added like this:
Ex:
+addtrigger makes #user# write better code as this shit sux.

The reply would be:

*** Honey makes Snooze write better code as this shit sux.


Thanks,

Snooze



Troubadour

Regards,

Troubadour

** Guardian Forum **

hubaddy:   nederfun.no-ip.com


Troubadour

yw m8.
Keep it up, your doing great so far.
Regards,

Troubadour

** Guardian Forum **

hubaddy:   nederfun.no-ip.com

Snooze

#6
I find myself in lag of time atm, so I'm turning this into a REQUEST.

Should anyone have the time to create this script, please do so :)


Thanks,

Snooze

SMF spam blocked by CleanTalk