2016-09-06 14:25:46 -04:00
[ -f functions.sh ] && source functions.sh
2016-09-06 18:17:34 -04:00
who = " $1 "
shift
2016-09-06 14:25:46 -04:00
chan = " $1 "
shift
# each word is stored in an associative array, with the actions to be taken as the array's contents.
2016-09-06 18:17:34 -04:00
# the variable $chan contains the channel that caused the trigger.
# the variable $who contains the nick that caused the trigger.
2016-09-06 14:25:46 -04:00
declare -A keywords
2016-09-08 12:16:59 -04:00
keywords[ linux] = " msg \" $chan \" \"Linux is $( shuf -n1 -e awesome God great wonderful) !\" "
keywords[ chicken] = " msg \" $chan \" \" $who , I'm gonna grab me $( shuf -n1 -e "a case of beer" "a weed eater" "a 5 gallon jug of vaseline" ) and a $( shuf -n1 -e dead frozen live young) chicken, and $( shuf -n1 -e "have fun" "make chicks" "lay it like an egg" "put my beak where it don't belong" ) ALL NIGHT LONG!!!\" "
2016-09-06 22:35:15 -04:00
keywords[ dragonforce] = " msg \" $chan \" \" $who : I love DragonForce!!!\" "
2016-09-06 14:25:46 -04:00
2016-09-06 22:35:15 -04:00
wordList = " $( echo " ${ @,, } " | tr '[:space:]' $'\n' | sort -u) "
2016-09-06 14:25:46 -04:00
for w in ${ wordList //[[ : punct : ]]/ } ; do
if [ [ -n " ${ keywords [ ${ w ,, } ] } " ] ] ; then
eval ${ keywords [ ${ w ,, } ] }
fi
done
2016-09-16 22:00:59 -04:00
# Example of dealing with multi word triggers.
2016-09-25 00:25:52 -04:00
# Reset wordList without sorting it and with spaces removed.
wordList = " $( echo " ${ @,, } " | tr -d '[:space:]' ) "
if [ [ " $wordList " = ~ .*nowplaying:.*-.* ] ] ; then
2016-09-25 00:27:31 -04:00
act " $chan " " $( shuf -n1 -e "cranks the volume up to 11" "got soooo high at that show" "boogies down to the sound of the band" ) ! "
2016-09-16 22:00:59 -04:00
fi