All pastes #920759 Raw Edit

Awwu

public lua v1 · immutable
#920759 ·published 2008-02-27 16:17 UTC
rendered paste body
echoNick = "mybotname"function irc_onRaw( text )	--outputServerLog( "irc_onRaw( " .. text .. " )" )	local irc_echo_action = gettok( text, 2, 32 )		if irc_echo_action == "PRIVMSG" then		local irc_echo_user = gettok( gettok( text, 1, 32 ), 2, string.byte('!') )		local irc_echo_nick = string.sub( gettok( gettok( text, 1, 32 ), 1, string.byte('!') ), 2 )		local irc_echo_channel = gettok( text, 3, 32 )		local posS,posE = string.find( text, " :", 1 )		local irc_echo_text = string.sub( text, posE+1 )		if string.find( irc_echo_text, "\001*\001" ) == 1 then			if gettok( string.gsub( irc_echo_text, "\001", "" ), 1, 32 ) == "ACTION" then				if irc_echo_channel == echoNick then					triggerEvent( "ircecho_onUserAction", getRootElement(), false, irc_echo_nick, irc_echo_user, string.gsub( string.gsub( irc_echo_text, "\001ACTION ", "" ), "\001", "" ) )				else					triggerEvent( "ircecho_onUserAction", getRootElement(), irc_echo_channel, irc_echo_nick, irc_echo_user, string.gsub( string.gsub( irc_echo_text, "\001ACTION ", "" ), "\001", "" ) )				end			else				if irc_echo_channel == echoNick then					triggerEvent( "ircecho_onCTCP", getRootElement(), false, irc_echo_nick, irc_echo_user, string.gsub( irc_echo_text, "\001", "" ) )				else					triggerEvent( "ircecho_onCTCP", getRootElement(), irc_echo_channel, irc_echo_nick, irc_echo_user, string.gsub( irc_echo_text, "\001", "" ) )				end			end		else			if irc_echo_channel == echoNick then				triggerEvent( "ircecho_onPrivMessage", getRootElement(), false, irc_echo_nick, irc_echo_user, irc_echo_text )			else				triggerEvent( "ircecho_onPrivMessage", getRootElement(), irc_echo_channel, irc_echo_nick, irc_echo_user, irc_echo_text )			end		end	elseif irc_echo_action == "NOTICE" then		local irc_echo_user = gettok( gettok( text, 1, 32 ), 2, string.byte('!') )		local irc_echo_nick = string.sub( gettok( gettok( text, 1, 32 ), 1, string.byte('!') ), 2 )		local irc_echo_channel = gettok( text, 3, 32 )		local posS,posE = string.find( text, " :", 1 )		local irc_echo_text = string.sub( text, posE+1 )		if irc_echo_channel == echoNick then			triggerEvent( "ircecho_onNotice", getRootElement(), false, irc_echo_nick, irc_echo_user, irc_echo_text )		else			triggerEvent( "ircecho_onNotice", getRootElement(), irc_echo_channel, irc_echo_nick, irc_echo_user, irc_echo_text )		end	elseif irc_echo_action == "JOIN" then		local irc_echo_user = gettok( gettok( text, 1, 32 ), 2, string.byte('!') )		local irc_echo_nick = string.sub( gettok( gettok( text, 1, 32 ), 1, string.byte('!') ), 2 )		local irc_echo_channel = string.sub( gettok( text, 3, 32 ), 2 )		triggerEvent( "ircecho_onUserJoin", getRootElement(), irc_echo_nick, irc_echo_user, irc_echo_channel )	elseif irc_echo_action == "PART" then		local irc_echo_user = gettok( gettok( text, 1, 32 ), 2, string.byte('!') )		local irc_echo_nick = string.sub( gettok( gettok( text, 1, 32 ), 1, string.byte('!') ), 2 )		local irc_echo_channel = string.sub( gettok( text, 3, 32 ), 1 )		local posS,posE = string.find( text, " :", 1 )		if posE ~= nil then			local irc_echo_reason = string.sub( text, posE+1 )			triggerEvent( "ircecho_onUserPart", getRootElement(), irc_echo_nick, irc_echo_user, irc_echo_channel, irc_echo_reason )		else			triggerEvent( "ircecho_onUserPart", getRootElement(), irc_echo_nick, irc_echo_user, irc_echo_channel, false )		end	elseif irc_echo_action == "QUIT" then		local irc_echo_user = gettok( gettok( text, 1, 32 ), 2, string.byte('!') )		local irc_echo_nick = string.sub( gettok( gettok( text, 1, 32 ), 1, string.byte('!') ), 2 )		local posS,posE = string.find( text, " :", 1 )		local irc_echo_reason = string.sub( text, posE+1 )		triggerEvent( "ircecho_onUserQuit", getRootElement(), irc_echo_nick, irc_echo_user, irc_echo_reason )	elseif irc_echo_action == "NICK" then		local irc_echo_user = gettok( gettok( text, 1, 32 ), 2, string.byte('!') )		local irc_echo_oldNick = string.sub( gettok( gettok( text, 1, 32 ), 1, string.byte('!') ), 2 )		local irc_echo_newNick = string.sub( gettok( text, 3, 32 ), 2 )		triggerEvent( "ircecho_onUserNickChange", getRootElement(), irc_echo_oldNick, irc_echo_user, irc_echo_newNick )	elseif gettok( text, 1, 32 ) == "PING" then		local irc_echo_pingerServ = string.sub( gettok( text, 2, 32 ), 2 )		triggerEvent( "ircecho_onServerPing", getRootElement(), irc_echo_pingerServ )	endendaddEvent( "ircecho_onPrivMessage" )addEvent( "ircecho_onNotice" )addEvent( "ircecho_onUserJoin" ) -- also triggered when the bot itself joinsaddEvent( "ircecho_onUserPart" ) -- can't say if toggled when bot itself parts, has no use then anyway =paddEvent( "ircecho_onUserQuit" )addEvent( "ircecho_onUserNickChange" )addEvent( "ircecho_onUserAction" )addEvent( "ircecho_onServerPing" )addEvent( "ircecho_onCTCP" )function privateMessageHandler( theChannel, theNick, theHost, theText )	if theChannel == false then		outputServerLog( "<" .. theNick .. "> (" .. theHost .. ") said on PM: " .. theText )	else			outputServerLog( "<" .. theNick .. "> (" .. theHost .. ") said on " .. theChannel .. ": " .. theText )	endendaddEventHandler( "ircecho_onPrivMessage", getRootElement(), privateMessageHandler )function ctcpHandler( theChannel, theNick, theHost, theText )	if theChannel == false then		outputServerLog( "<" .. theNick .. "> (" .. theHost .. ") sent CTCP private: " .. theText )	else			outputServerLog( "<" .. theNick .. "> (" .. theHost .. ") sent CTCP to " .. theChannel .. ": " .. theText )	endendaddEventHandler( "ircecho_onCTCP", getRootElement(), ctcpHandler )function userActionHandler( theChannel, theNick, theHost, theText )	if theChannel == false then		outputServerLog( "(ACTION) * " .. theNick .. " (" .. theHost .. ") on PM: " .. theText )	else			outputServerLog( "(ACTION) * " .. theNick .. " (" .. theHost .. ") on " .. theChannel .. ": " .. theText )	endendaddEventHandler( "ircecho_onUserAction", getRootElement(), userActionHandler )function noticeHandler( theChannel, theNick, theHost, theText )	if theChannel == false then		outputServerLog( "<" .. theNick .. "> (" .. theHost .. ") notices me: " .. theText )	else			outputServerLog( "<" .. theNick .. "> (" .. theHost .. ") notices " .. theChannel .. ": " .. theText )	endendaddEventHandler( "ircecho_onNotice", getRootElement(), noticeHandler )function userJoinHandler( theNick, theHost, theChannel )	outputServerLog( "** " .. theNick .. " (" .. theHost .. ") joined " .. theChannel )endaddEventHandler( "ircecho_onUserJoin", getRootElement(), userJoinHandler )function userPartHandler( theNick, theHost, theChannel, theReason )	if theReason == false then		outputServerLog( "** " .. theNick .. " (" .. theHost .. ") parted " .. theChannel )	else		outputServerLog( "** " .. theNick .. " (" .. theHost .. ") parted " .. theChannel .. " (" .. theReason .. ")" )	endendaddEventHandler( "ircecho_onUserPart", getRootElement(), userPartHandler )function userQuitHandler( theNick, theHost, theReason )	outputServerLog( "** " .. theNick .. " (" .. theHost .. ") quit IRC (" .. theReason .. ")" )endaddEventHandler( "ircecho_onUserQuit", getRootElement(), userQuitHandler )function userNickChangeHandler( oldNick, theHost, newNick )	outputServerLog( "** " .. oldNick .. " (" .. theHost .. ") changed their nick to " .. newNick )endaddEventHandler( "ircecho_onUserNickChange", getRootElement(), userNickChangeHandler )function pingHandler( pinger )	outputServerLog( "** " .. pinger .. " sent a ping request" )end--addEventHandler( "ircecho_onServerPing", getRootElement(), pingHandler )