-
Posts
5998 -
Joined
-
Last visited
-
Days Won
17
Content Type
Profiles
Forums
Downloads
Gallery
Events
Articles
Everything posted by chain
-
-
So i was given the chance to try a new script called devilscript. deVilbaT is the Author of the creation and as you can see through his work he loves scripting. He has many features that people are looking for in a script. It has a general dialog which allows for customization to fit your own personal needs, Has a variety of protections and huge kicks and bans list. this script was very well thought out and deVilbaT wanted the best in this IRC script. This script also has its own updates which once deVilbaT has redone or updated anything on the script you will be notify of new updates!! So in my best opinion this script has fantastic dialogs and awsome protections plus various customization features.
-
Simple is the keyword. You don't need any registrations or API keys. Just load the script and it should work in any channel your bot is in. Important: mIRC v7.56+ is required, because of $urlget function. How to install: Let's assume your mIRC is installed in D:\mIRC\ Copy and save the script code in a file. For example: youtube_title.mrc Put the saved file in your scripts folder (example: D:\mIRC\scripts) Open mIRC and do: //load -rs scripts/youtube_title.mrc How to Uninstall: Open mIRC and do: //unload -rs scripts/youtube_title.mrc That's it. No garbage or variables left behind. The script can easily break if YouTube make changes to their website. If it is broken or you find a bug or you have a suggestion - leave a comment below. I will try to keep the script in working condition and fix bugs as soon as possible. ; Simple YouTube Title Announcer v0.1 - MMX 2022 ; Requires mIRC v7.56+ (because of $urlget) ON $*:TEXT:/(https\x3a\/\/|www\.)([\S]*youtube\.com[\S]+v\=|youtu\.be\/)([\S]{11})/Si:#:{ if ($regml(3)) { var %url $+(https://m.youtube.com/watch?persist_app=1&app=m&v=,$regml(3)) var %id $urlget(%url,gbi,&ytdata,yt_get_title $chan) } } alias -l yt_get_title { var %chan $1, %id $2 if ($bfind($urlget(%id).target,1,/title":\{"runs":\[\{"text":"(.*?)"\}/Sig).regex) { msg %chan 01You00,04Tube: $yt_dehex($regml(1)) } } alias -l yt_dehex { var %title $regsubex($1-,/\\u(.{4})/ig,$chr($base(\1,16,10))) return $replace(%title,\",",\\,\,\\\\,\\) }
-
So people have been asking for the website of the tron script so here it is. Just remeber it's in porteguese Tron Script Website
-
Whether you’re selling it, trashing it, or reusing it, your old computer has a bunch of extremely private data stored inside. And there’s a good chance that tossing files in the recycling bin and hitting factory reset won't protect you. If a hacker finds the pattern your computer used to move those 0s and 1s around, they can reverse engineer the original state of your computer and pull out the goods. To stay safe, you need to properly factory reset your computer before it ever changes hands. Follow the steps below, or consider taking things a step further by hiring a professional company to ensure your data has been destroyed. Read More Here
-
Tron Gold Edition - mIRC 7.65 (Portuguese) - version 1.2.22
chain reviewed chain's file in Scripts Portuguese
-
Version 1.2.22
6 downloads
Versão nova do mIRC oferecida: mIRC 7.65 em português. Nota da versão: 1.2.22: Atualizada as listas de comandos, à distância e input, para visualização interna no Tron Script. Obs.: Favor fazer novo download a partir de 12/02/2022, pois é oferecida uma nova atualização com correções. Infelizmente, não foi possível migrar para o mIRC 7.66, e recentemente o mIRC 7.67, já que durante diversas tentativas ao traduzir para o português, no final apresentou um bug, falha no comando control + k, que teria que mostrar painel de cores, o que não aconteceu. Quem for usar a versão em inglês do mIRC 7.66 ou a 7.67, o comando funciona normalmente. -
On Monday, Elon Musk bought Twitter for forty-four billion dollars. Musk, the C.E.O. of Tesla and the richest man on earth, plans to take the social-media company private, and has said that he wants Twitter to adhere more closely to the principles of free speech, which, in a statement, Musk called “the bedrock of a functioning democracy.” (In the same statement, he described Twitter as the “digital town square where matters vital to the future of humanity are debated.”) Musk himself is a frequent tweeter, and it is assumed that he will continue to use the platform, and potentially reinstate the account of former President Donald Trump. He is also thought to be less likely to ban people for violations of the platform’s policies, which themselves may change. Read More Here
-
OMG A real old classic Memory this site is eXyonte's Realm
-
Might need updating as is old shoutcast1.02.txt
-
Welcome to GoodChatting.com, home of the GoodChatting.com IRC network! GoodChatting is a single-server IRC network, running UnrealIRCd and Epona services. This server is owned by Julie Martin ("juliebug") and was created as a private alternative to the Undernet IRC network when it underwent severe denial of service attacks in early 2001. GoodChatting has been running since February of 2001 and has been open to the public since September 25th, 2001. The goal here is to provide a place for you to have a good chatting experience. We here at GoodChatting want you to feel at home on our small server, which already hosts a ton of chatters mostly related to National Novel Writing Month and other writing adventures. We are not looking to join any networks, nor are we looking to add servers to the GoodChatting network at this time. Any and all server updates can be found on the Server News page as well as on Twitter, just follow @goodchatting! link here
-
Chapter 1. Connecting to IRC Introduction: Hacks #1-4 One of the great features about IRC is its accessibility. You can connect to any IRC network using an IRC client (read: application). For many users, the IRC client is the friendly face of IRC, allowing you to chat with individuals or groups of users. IRC clients are available for virtually all operating systems. In fact, several different IRC clients are available for Windows, Linux, and Mac OS X, so you are spoiled for choice if you have time to experiment with all available choices. This chapter will show you how to use some of the most popular IRC clients to connect to IRC. Later hacks will then show you how to go beyond the basics and enhance the functionality of some of these IRC clients by exploiting existing features and writing your own IRC client scripts. Read more here
-
Hundreds of thousands of Twitter users deactivated their accounts in the days after Elon Musk’s takeover deal, the company says, as prominent users including Katy Perry and Barack Obama lost followers. Since Monday, some of the social network’s biggest progressive voices have seen their public follower counts decline, while some rightwing Twitter users have gained followers, according to data from the analytics site Social Blade. Perry, the pop star who is the site’s third biggest user, lost 7,000 followers in a few days, while Obama, whose 132 million followers makes the former US president’s account the most popular on the site, lost 5,000 on Tuesday alone. Followers of the former first lady, Michelle Obama, are down by nearly 20,000. Taylor Swift’s Twitter account also had one of the biggest drops according to Social Blade’s data, losing 15,000 followers in 48 hours. Read More Here
-
Netflix surprised the world this week, saying it plans to finally address the rampant practice of password sharing. More than 100 million households are using a shared password, Netflix said Tuesday, including 30 million in the U.S. and Canada. But the video streamer doesn’t plan to simply freeze those shared accounts. Instead, the company will likely favor the setting of an extra fee for those accounts being used by multiple people outside of the home. Netflix’s plan to capture that lost revenue would start with an alert being sent to account holders whose passwords are being used by other households. The company has already started a test of this feature in Peru, Costa Rica and Chile. For accounts that are sharing a password across addresses, Netflix is charging an additional fee to add “sub accounts” for up to two people outside the home. The pricing is different per country — about $2.13 per month in Peru, $2.99 in Costa Rica, and $2.92 in Chile, based on current exchange rates. Read More Here
-
I recommend you don't run this script on a bot that already has to do alot If the channel you're spying on has alot of users with alot of talking your bot could excess flood # Info # Author : AkTaRuS - #SiamoSoloNoi on IRCserveR Italia https://www.ircwebnet.com/chat # Version: 007.TCL 1.1 set spy(author) "AkTaRuS - #SiamoSoloNoi on IRCserveR Italia https://www.ircwebnet.com/chat" set spy(version) " OO7.tcl 1.1" # Description # This script will relay anything said on one channel to the other channel you configure # I recommend you don't run this script on a bot that already has to do alot # If the channel you're spying on has alot of users with alot of talking your bot could excess flood # Configuration # The channel it reports everything to set spy(home) "#siamosolonoi" # The channel it gets all the data from and then reports it to the homechannel set spy(chan) "#canale spiato" bind PUBM -|- * spychan:chat bind CTCP -|- "ACTION" spychan:action bind SIGN -|- "$spy(chan) *" spychan:sign bind JOIN -|- "$spy(chan) *" spychan:join bind PART -|- "$spy(chan) *" spychan:part bind SPLT -|- "$spy(chan) *" spychan:split bind KICK -|- "$spy(chan) *" spychan:kick bind RAW * "MODE" spychan:mode proc spychan:part { nickname hostname handle channel reason } { global spy if {[string equal -nocase $channel $spy(chan)]} { putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname ($hostname) has left $spy(chan)" } } proc spychan:join { nickname hostname handle channel } { global spy if {[string equal -nocase $channel $spy(chan)]} { putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname ($hostname) has joined $spy(chan)" } } proc spychan:kick { nickname hostname handle channel target reason } { global spy if {[string equal -nocase $channel $spy(chan)]} { putserv "PRIVMSG $spy(home) :\[$channel\] * $target was kicked from $spy(chan) by $nickname ($reason)" } } proc spychan:mode { from key arguments } { global spy set channel [string trim [lindex [split $arguments] 0]] set modechange [string trim [lindex [split $arguments] 1]] set victims [string trim [join [lrange [split $arguments] 2 end]]] set nickname [string trim [lindex [split $from "!"] 0]] set hostname [string trim [lindex [split $from "!"] 1]] if {[string equal -nocase $channel $spy(chan)]} { putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname sets mode: $modechange $victims" } } proc spychan:sign { nickname hostname handle channel reason } { global spy if {[string equal -nocase $channel $spy(chan)]} { putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname ($hostname) has quit IRC ($reason)" } } proc spychan:split { nickname hostname handle channel arguments } { global spy if {[string equal -nocase $channel $spy(chan)]} { putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname has split from the network" } } proc spychan:chat { nickname hostname handle channel arguments } { global spy if {[string equal -nocase $channel $spy(chan)]} { putserv "PRIVMSG $spy(home) :$arguments" } } proc spychan:action { nickname hostname handle channel keyword arguments } { global spy if {[string equal -nocase $channel $spy(chan)]} { putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname $arguments" } } putlog "OO7.tcl version $spy(version) by $spy(author) Loaded!"
-
# +-------------------------------------------------------------------------------------+ # | | # | YouTUBE Script v2.0.0 | # | | # +-------------------------------------------------------------------------------------+ # | | # | *** Website @ http://www.EggdropTCL.com | # | *** GitHub @ http://github.com/MadaliNTCL/eggdrop-tcl | # | | # +-------------------------------------------------------------------------------------+ # | *** IRC Support: | # | #EggdropTCL @ QuakeNET | # | #EggdropTCL @ UnderNET | # | #EggdropTCL @ EfNET | # | | # | *** Contact: | # | Yahoo Messenger/Mail: madalinmen28@yahoo.com | # | Google Mail : madalinmen28@gmail.com | # | Skype Messenger : madalinmen28 | # | | # +-------------------------------------------------------------------------------------+ # + *** Commands *** | # | +---------------+ | # | [ OP - PUBLIC] | # | +---------------+ | # | | # | +++ !youtube on | # | +++ !youtube off | # | | # | IMPORTANT: | # | | # | 500 requests per day | # | You need Google Api Key | # | | # | Updates: | # | * v2 | # | -- It now catches the youtube link from /me and /ame | # +-------------------------------------------------------------------------------------+ bind PUBM - * youtube bind PUBM - * youtube:pubm bind CTCP - ACTION youtube:act package require json package require http package require tls set youtube(api) "youtube api key" set youtube(version) "2.0" setudef flag youtube proc youtube:pubm {nick uhost hand chan arg} { global temp if {[string index $arg 0] in {! . `}} { set temp(cmd) [string range $arg 1 end] set temp(cmd) [lindex [split $temp(cmd)] 0] set arg [join [lrange [split $arg] 1 end]] } elseif {[isbotnick [lindex [split $arg] 0]]} { set temp(cmd) [lindex [split $arg] 1] set arg [join [lrange [split $arg] 2 end]] } else { return 0 } if {[info commands ytpubm:$temp(cmd)] ne ""} { ytpubm:$temp(cmd) $nick $uhost $hand $chan $arg } } proc ytpubm:youtube {nick uhost hand chan arg} { global youtube tempYT switch -exact -- [lindex [split $arg] 0] { on { if {[isop $nick $chan] || [matchattr $hand n]} { channel set $chan +youtube putserv "PRIVMSG $chan :\002$nick\002 - \00302Set channel mode \00306+youtube\0032 on \00304$chan" return } } off { if {[isop $nick $chan] || [matchattr $hand n]} { channel set $chan -youtube putserv "PRIVMSG $chan :\002$nick\002 - \00302Set channel mode \00306-youtube\0032 on \00304$chan" return } } top {} search { ::http::register https 443 [list ::tls::socket -tls1 1] if {[catch {http::geturl "https://www.googleapis.com/youtube/v3/videos?[http::formatQuery key $youtube(api) maxresults 5 part id,snippet type video order viewCount q [lindex [split $arg] 1]]"} tok]} { putlog "Socket error: $tok" return 0 } if {[http::status $tok] ne "ok"} { set status [http::status $tok] putlog "TCP error: $status" return 0 } if {[http::ncode $tok] != 200} { set code [http::code $tok] http::cleanup $tok putlog "HTTP Error: $code" return 0 } set data [http::data $tok] set parse [::json::json2dict $data] set tempYT(video1) "[lindex [dict get [lindex [dict get $parse items] 0] id] 3] [lindex [dict get [lindex [dict get $parse items] 0] snippet] 5]" set tempYT(video2) "[lindex [dict get [lindex [dict get $parse items] 1] id] 3] [lindex [dict get [lindex [dict get $parse items] 1] snippet] 5]" set tempYT(video3) "[lindex [dict get [lindex [dict get $parse items] 2] id] 3] [lindex [dict get [lindex [dict get $parse items] 2] snippet] 5]" set tempYT(video4) "[lindex [dict get [lindex [dict get $parse items] 3] id] 3] [lindex [dict get [lindex [dict get $parse items] 3] snippet] 5]" set tempYT(video5) "[lindex [dict get [lindex [dict get $parse items] 4] id] 3] [lindex [dict get [lindex [dict get $parse items] 4] snippet] 5]" putserv "PRIVMSG $chan :\002\00301,00You\00300,04Tube\002\017 - \00304Top 5\00302 videos based on \00303viewCount\003" set number 0 foreach line [array names tempYT] { if {[llength $line]} { incr number set id "[lindex $tempYT($line) 0]" set title "[join [lrange $tempYT($line) 1 end]]" putserv "PRIVMSG $chan :$number. \00302Title - \00312$title\003 \037\002/\037\002 \00302Link\003: \00304https://www.youtube.com/watch?v=$id" } } } } } proc youtube:act {nick uhost hand dest key arg} { global ytignore youtube if {![channel get $dest youtube]} { return 0 } if {![string match -nocase *yout* $arg]} { return 0 } ## ++ set floodtime 10 ## ++ if {![info exists ytignore($nick)]} { set ytignore($nick) [unixtime] utimer $floodtime [list unset -nocomplain ytignore($nick)] } ## ++ if {[expr [unixtime]-$ytignore($nick)]>$floodtime} { putlog "ignoram"; return 0 } set youtubecheck [regexp -all -nocase {(?:\/watch\?v=|youtu\.be\/)([\d\w-]{11})} $arg match youtubeid] youtube:parse $youtubecheck $match $youtubeid $dest } proc youtube {nick uhost hand chan arg} { global ytignore youtube if {![channel get $chan youtube]} { return 0 } if {![string match -nocase *yout* $arg]} { return 0 } ## ++ set floodtime 10 ## ++ if {![info exists ytignore($nick)]} { set ytignore($nick) [unixtime] utimer $floodtime [list unset -nocomplain ytignore($nick)] } ## ++ if {[expr [unixtime]-$ytignore($nick)]>$floodtime} { putlog "ignoram"; return 0 } set youtubecheck [regexp -all -nocase {(?:\/watch\?v=|youtu\.be\/)([\d\w-]{11})} $arg match youtubeid] youtube:parse $youtubecheck $match $youtubeid $chan } proc youtube:parse {youtubecheck match youtubeid dest} { global ytignore youtube ::http::register https 443 [list ::tls::socket -tls1 1] if {[catch {http::geturl "https://www.googleapis.com/youtube/v3/videos?[http::formatQuery id $youtubeid key $youtube(api) part snippet,contentDetails,statistics,status]"} tok]} { putlog "Socket error: $tok" return 0 } if {[http::status $tok] ne "ok"} { set status [http::status $tok] putlog "TCP error: $status" return 0 } if {[http::ncode $tok] != 200} { set code [http::code $tok] http::cleanup $tok putlog "HTTP Error: $code" return 0 } set data [http::data $tok] set parse [::json::json2dict $data] set playtime [lindex [dict get [lindex [dict get $parse items] 0] snippet] 1] set title [lindex [dict get [lindex [dict get $parse items] 0] snippet] 5] set viewCount [lindex [dict get [lindex [dict get $parse items] 0] statistics] 1] set likeCount [lindex [dict get [lindex [dict get $parse items] 0] statistics] 3] set dislikeCount [lindex [dict get [lindex [dict get $parse items] 0] statistics] 5] set commentCount [lindex [dict get [lindex [dict get $parse items] 0] statistics] 9] set publishedAt [lindex [dict get [lindex [dict get $parse items] 0] snippet] 1] set publishedAt [string map [list "T" " " ".000Z" ""] $publishedAt] set channelTitle [lindex [dict get [lindex [dict get $parse items] 0] snippet] 11] set duration [lindex [dict get [lindex [dict get $parse items] 0] contentDetails] 1] set duration [string map [list "PT" "" "M" "m " "S" "s"] $duration] set definition [string toupper [lindex [dict get [lindex [dict get $parse items] 0] contentDetails] 5]] putserv "PRIVMSG $dest :\002\00301,00You\00300,04Tube\002\017 \00312$title\003 \002\00304$definition\003\002 \037\002/\002\037 \00302Views\003: \00303[youtube:convert $viewCount]\003 \037\002/\002\037 \00302Likes\003: \00310[youtube:convert $likeCount]\003 \037\002/\002\037 \00302Dislikes\003: \00304[youtube:convert $dislikeCount]\003 \037\002/\002\037 \00302Comments\003: \00304[youtube:convert $commentCount]\003 \037\002/\002\037 \00302Duration: \00304$duration\003 \037\002/\002\037 \00302Published at: \00304$publishedAt\003 by \00312$channelTitle" } proc youtube:convert {num} { while {[regsub {^([-+]?\d+)(\d\d\d)} $num "\\1.\\2" num]} {}; return $num } putlog "++ \[ - \00304PUBLIC\003 - \00306loaded\003 * \00303YouTUBE\003 \]"
-
useful tcl that can help you enable your eggdrop scripts chanset.tcl
-
TCL that uses the "sendmail" command from linux to send emails. Command: !mail <email@myemail> <subject> <text> [use ~ between lines to send multiple lines] -- must have "sendmail" installed -- sendmail.tcl
-
Check your compatibility with other users with this fun script. compatibility.tcl
-
Join Counter for users (counts unique joins per day) joincount.tcl
-
Bans users onjoin that reply with specific CTCP version or dont respond to VERSION at all. badversion.tcl
-
set myTriga "!" bind pub - ${myTriga}puff puff:pub proc puff:pub {nick uhost hand chan arg} { global botnick if {[validuser [nick2hand $nick]]} { if {[lindex [split $arg] 0] == ""} { putserv "PRIVMSG $chan :\001ACTION \0033hands $nick a Bag of \0039,3*WeeD*\003\001" putserv "PRIVMSG $chan :\001ACTION \00314( *puff - puff* )\003\001" } else { set givenick [lindex [split $arg] 0] if {[isbotnick $givenick]} {putquick "PRIVMSG $chan :umm, bots don't sm0ke, you f00l!"; return} putserv "PRIVMSG $chan :\001ACTION \0033was asked nicely by $nick to give $givenick a Bag of \0039,3*WeeD*\003\001" putserv "PRIVMSG $chan :\001ACTION \00314( *puff - puff* )\003\001" } return } if {![validuser [nick2hand $nick]]} { if {[lindex [split $arg] 0] == ""} { putserv "PRIVMSG $chan :\001ACTION \0033hands $nick a Bag of \0039,3*WeeD*\003\001" putserv "PRIVMSG $chan :\001ACTION \00314( *puff - puff* )\003\001" set whom $nick set ignoremask *!*@[lindex [split [getchanhost $whom $chan] @] 1] newignore $ignoremask $botnick TempIgnore 1 } else { set givenick [lindex [split $arg] 0] if {[isbotnick $givenick]} {putquick "PRIVMSG $chan :umm, bots don't sm0ke, you f00l!"; return} putserv "PRIVMSG $chan :\001ACTION \0033was asked nicely by $nick to give $givenick a Bag of \0039,3*WeeD*\003\001" putserv "PRIVMSG $chan :\001ACTION \00314( *puff - puff* )\003\001" set whom $nick set ignoremask *!*@[lindex [split [getchanhost $whom $chan] @] 1] newignore $ignoremask $botnick TempIgnore 1 } return } }
-
set pubtrig "!" # Set global|channel flags to trigger commands set sysflags o|m bind pub - ${pubtrig}uptime uptime:pub proc uptime:pub {nick uhost hand chan arg} { global uptime server sysflags if {([matchattr [nick2hand $nick] $sysflags]) && (![regexp c [getchanmode $chan]])} { puthelp "PRIVMSG $chan :\002S\002\037ystem\037: [eval exec uptime]" puthelp "PRIVMSG $chan :\002B\002\037ot\037 ($server): [duration [expr [unixtime] - $uptime]]" } else { if {([matchattr [nick2hand $nick] $sysflags]) && ([regexp c [getchanmode $chan]])} { puthelp "PRIVMSG $chan :System: [eval exec uptime]" puthelp "PRIVMSG $chan :Bot ($server): [duration [expr [unixtime] - $uptime]]" } } } bind pub - ${pubtrig}os osystem:pub proc osystem:pub {nick uhost hand chan arg} { global botnick sysflags if {([matchattr [nick2hand $nick] $sysflags]) && (![regexp c [getchanmode $chan]])} { puthelp "PRIVMSG $chan :\002O\002\037perating\037 \002S\002\037ystem\037: [eval exec uname] [eval exec uname -r]" } else { if {([matchattr [nick2hand $nick] $sysflags]) && ([regexp c [getchanmode $chan]])} { puthelp "PRIVMSG $chan :Operating System: [eval exec uname] [eval exec uname -r]" } } }
-
# $Id: autoreply.tcl,v1.7 18/01/2016 03:33:45am GMT +13 (NZDST) IRCSpeed Exp $ # Commands are; !talkz on|off # /msg botnick talkz #channel on|off # Feel free to edit the trigger, the reply flags and thankstext/complaintext. Add heaps of replies, or have a few, it's up to you. # Feel free to edit this setting. Change the ! to any character you would like as a trigger. set replytrig "!" # Set here what flags you wish to allow and trigger this script (leave it "" for anyone) set replyflags "ovf|ovf" # Set here the text to thank the user who voiced you. set thankstext { "Thanks for the $mode $nick" "wow.. thanks, $nick" "cool, thank you! I _LOVE_ $chan!!" } # Set here the text to complain about being devoiced. set complaintext { "awww, man! why me, $nick?!" "pfft, be that way, /hop" "wait until I tell .." "hmm, stop it." } ########## ----- NO EDITING BELOW ----- ########## proc getReplyTrig {} { global replytrig return $replytrig } setudef flag talkz bind mode - "% +o" op:check bind mode - "% -o" deop:check bind mode - "% +v" voice:check bind mode - "% -v" devoice:check bind pub - ${replytrig}talkz talkz:pub bind msg - talkz talkz:msg proc talkz:pub {nick uhost hand chan arg} { global replyflags if {[matchattr [nick2hand $nick] $replyflags $chan]} { if {[lindex [split $arg] 0] == ""} {putquick "PRIVMSG $chan :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: [getReplyTrig]talkz on|off"; return} if {[lindex [split $arg] 0] == "on"} { if {[channel get $chan talkz]} {putquick "PRIVMSG $chan :\037ERROR\037: This setting is already enabled."; return} channel set $chan +talkz puthelp "PRIVMSG $chan :Enabled Autoreply Thanks System for $chan" return 0 } if {[lindex [split $arg] 0] == "off"} { if {![channel get $chan talkz]} {putquick "PRIVMSG $chan :\037ERROR\037: This setting is already disabled."; return} channel set $chan -talkz puthelp "PRIVMSG $chan :Disabled Autoreply Thanks System for $chan" return 0 } } } proc talkz:msg {nick uhost hand arg} { global botnick replyflags set chan [strlwr [lindex [split $arg] 0]] if {[matchattr [nick2hand $nick] $replyflags $chan]} { if {[lindex [split $arg] 0] == ""} {putquick "NOTICE $nick :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: /msg $botnick talkz #channel on|off"; return} if {[lindex [split $arg] 1] == ""} {putquick "NOTICE $nick :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: /msg $botnick talkz $chan on|off"; return} if {[lindex [split $arg] 1] == "on"} { if {[channel get $chan talkz]} {putquick "NOTICE $nick :\037ERROR\037: This setting is already enabled."; return} channel set $chan +talkz putquick "NOTICE $nick :Enabled Autoreply Thanks System for $chan" return 0 } if {[lindex [split $arg] 1] == "off"} { if {![channel get $chan talkz]} {putquick "NOTICE $nick :\037ERROR\037: This setting is already disabled."; return} channel set $chan -talkz putquick "NOTICE $nick :Disabled Autoreply Thanks System for $chan" return 0 } } } proc op:check {nick uhost hand chan mode {target ""}} { global botnick thankstext if {![channel get $chan talkz]} {return} if {[string match $botnick $target]} { set replyopmsg [lindex $thankstext [rand [llength $thankstext]]] set replyopmsg [subst -nocommands $replyopmsg] puthelp "PRIVMSG $chan :$replyopmsg" return 0 } } proc deop:check {nick uhost hand chan mode {target ""}} { global botnick complaintext if {![channel get $chan talkz]} {return} if {[string match $botnick $target]} { set replydeopmsg [lindex $complaintext [rand [llength $complaintext]]] set replydeopmsg [subst -nocommands $replydeopmsg] puthelp "PRIVMSG $chan :$replydeopmsg" return 0 } } proc voice:check {nick uhost hand chan mode {target ""}} { global botnick thankstext if {![channel get $chan talkz]} {return} if {[string match $botnick $target]} { set replyvoicemsg [lindex $thankstext [rand [llength $thankstext]]] set replyvoicemsg [subst -nocommands $replyvoicemsg] puthelp "PRIVMSG $chan :$replyvoicemsg" return 0 } } proc devoice:check {nick uhost hand chan mode {target ""}} { global botnick complaintext if {![channel get $chan talkz]} {return} if {[string match $botnick $target]} { set replydevoicemsg [lindex $complaintext [rand [llength $complaintext]]] set replydevoicemsg [subst -nocommands $replydevoicemsg] puthelp "PRIVMSG $chan :$replydevoicemsg" return 0 } } putlog ".:autoreply.tcl,v1.7:. Loaded! - istok @ IRCSpeed"
-
# $Id: adduser-joinmodes.tcl,v1.6 04/03/2016 07:00:31am GMT +12 (NZST) IRCSpeed Exp $ # ----- ADDING USERS ----- (Basic User adding) # Commands are: # !addowner nickname # !addmaster nickname # !addgop nickname # !addchanowner nickname # !addsop nickname # !delsop nickname # !addaop nickname # !delaop nickname # !addaov nickname # !delaov nickname # ----- JoinModes ----- (This enforces joinmodes @/+) # JoinModes Public Commands: # Enable: !joinmodes on # Disable: !joinmodes off # JoinModes Message Command: # /msg botnick joinmodes #channel on|off # -----------EDIT BELOW------------ # Set this to whatever trigger you like. (default: !) set addusertrig "!" # You don't need to edit the access flags. They are added like this because each command requires different access. # This is to ensure that user's can't add/del those with more access. If you wish to edit them, edit the proc directly. # ------EDIT COMPLETE!!------ setudef flag joinmode proc addTrigger {} { global addusertrig return $addusertrig } bind join - * join:modes bind pub - ${addusertrig}addowner addowner:pub bind pub - ${addusertrig}addmaster addmaster:pub bind pub - ${addusertrig}addgop addgop:pub bind pub - ${addusertrig}addchanowner addcowner:pub bind pub - ${addusertrig}addsop addsop:pub bind pub - ${addusertrig}delsop delsop:pub bind pub - ${addusertrig}addaop addaop:pub bind pub - ${addusertrig}delaop delaop:pub bind pub - ${addusertrig}addaov addaov:pub bind pub - ${addusertrig}delaov delaov:pub bind pub - ${addusertrig}joinmodes jmode:pub bind msg - joinmodes jmode:msg proc addowner:pub {nick uhost hand chan arg} { if {![matchattr [nick2hand $nick] n]} {return} set owneradd [lindex [split $arg] 0] if {[lindex [split $arg] 0] == ""} {putquick "PRIVMSG $chan :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: [addTrigger]addowner nickname"; return} if {[validuser [nick2hand $owneradd]]} {putquick "PRIVMSG $chan :\037ERROR\037: $owneradd is already a valid user."; return} if {![onchan $owneradd $chan]} {putquick "PRIVMSG $chan :\037ERROR\037: $owneradd is not even on $chan ..."; return} set mask *!*@[lindex [split [getchanhost $owneradd $chan] @] 1] adduser $owneradd $mask chattr $owneradd +n putquick "NOTICE $nick :Added $owneradd to the Global Owner List." putquick "NOTICE $owneradd :$nick ($hand) has added you to the Global Owner List." } proc addmaster:pub {nick uhost hand chan arg} { if {![matchattr [nick2hand $nick] n]} {return} set masteradd [lindex [split $arg] 0] if {[lindex [split $arg] 0] == ""} {putquick "PRIVMSG $chan :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: [addTrigger]addmaster nickname"; return} if {[validuser [nick2hand $masteradd]]} {putquick "PRIVMSG $chan :\037ERROR\037: $masteradd is already a valid user."; return} if {![onchan $masteradd $chan]} {putquick "PRIVMSG $chan :\037ERROR\037: $masteradd is not even on $chan ..."; return} set mask *!*@[lindex [split [getchanhost $masteradd $chan] @] 1] adduser $masteradd $mask chattr $masteradd +m putquick "NOTICE $nick :Added $masteradd to the Global Master List." putquick "NOTICE $masteradd :$nick ($hand) has added you to the Global Master List." } proc addgop:pub {nick uhost hand chan arg} { if {![matchattr [nick2hand $nick] m]} {return} set gopadd [lindex [split $arg] 0] if {[lindex [split $arg] 0] == ""} {putquick "PRIVMSG $chan :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: [addTrigger]addgop nickname"; return} if {[validuser [nick2hand $gopadd]]} {putquick "PRIVMSG $chan :\037ERROR\037: $gopadd is already a valid user."; return} if {![onchan $gopadd $chan]} {putquick "PRIVMSG $chan :\037ERROR\037: $gopadd is not even on $chan ..."; return} set mask *!*@[lindex [split [getchanhost $gopadd $chan] @] 1] adduser $gopadd $mask chattr $gopadd +o putquick "NOTICE $nick :Added $gopadd to the Global OP List." putquick "NOTICE $gopadd :$nick ($hand) has added you to the Global OP List." } proc addcowner:pub {nick uhost hand chan arg} { if {![matchattr [nick2hand $nick] o]} {return} set cowneradd [lindex [split $arg] 0] if {[lindex [split $arg] 0] == ""} {putquick "PRIVMSG $chan :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: [addTrigger]addchanowner nickname"; return} if {[validuser [nick2hand $cowneradd]]} {putquick "PRIVMSG $chan :\037ERROR\037: $cowneradd is already a valid user."; return} if {![onchan $cowneradd $chan]} {putquick "PRIVMSG $chan :\037ERROR\037: $cowneradd is not even on $chan ..."; return} set mask *!*@[lindex [split [getchanhost $cowneradd $chan] @] 1] if {[onchan $cowneradd $chan] && ![isop $cowneradd $chan]} {putquick "MODE $chan +o $cowneradd"} adduser $cowneradd $mask chattr $cowneradd -|n $chan putquick "NOTICE $nick :Added $cowneradd to the Channel Owner List for $chan" putquick "NOTICE $cowneradd :$nick ($hand) has added you to the Channel Owner List for $chan" } proc addsop:pub {nick uhost hand chan arg} { if {![matchattr [nick2hand $nick] o|n $chan]} {return} set sopadd [lindex [split $arg] 0] if {[lindex [split $arg] 0] == ""} {putquick "PRIVMSG $chan :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: [addTrigger]addsop nickname"; return} if {[validuser [nick2hand $sopadd]]} {putquick "PRIVMSG $chan :\037ERROR\037: $sopadd is already a valid user."; return} if {![onchan $sopadd $chan]} {putquick "PRIVMSG $chan :\037ERROR\037: $sopadd is not even on $chan ..."; return} set mask *!*@[lindex [split [getchanhost $sopadd $chan] @] 1] if {[onchan $sopadd $chan] && ![isop $sopadd $chan]} {putquick "MODE $chan +o $sopadd"} adduser $sopadd $mask chattr $sopadd -|m $chan putquick "NOTICE $nick :Added $sopadd to the SOP List for $chan" putquick "NOTICE $sopadd :$nick ($hand) has added you to the SOP List for $chan" } proc delsop:pub {nick uhost hand chan arg} { if {![matchattr [nick2hand $nick] o|n $chan]} {return} set sopdel [lindex [split $arg] 0] if {[lindex [split $arg] 0] == ""} {putquick "PRIVMSG $chan :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: [addTrigger]delsop nickname"; return} if {![validuser [nick2hand $sopdel]]} {putquick "PRIVMSG $chan :\037ERROR\037: $sopdel is not a valid user."; return} if {[onchan $sopdel $chan] && [isop $sopdel $chan]} {putquick "MODE $chan -o $sopdel"} deluser $sopdel putquick "NOTICE $nick :Deleted $sopdel from the SOP List for $chan" putquick "NOTICE $sopdel :$nick ($hand) has deleted you from the SOP List for $chan" } proc addaop:pub {nick uhost hand chan arg} { if {![matchattr [nick2hand $nick] o|m $chan]} {return} set opadd [lindex [split $arg] 0] if {[lindex [split $arg] 0] == ""} {putquick "PRIVMSG $chan :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: [addTrigger]addaop nickname"; return} if {[validuser [nick2hand $opadd]]} {putquick "PRIVMSG $chan :\037ERROR\037: $opadd is already a valid user."; return} if {![onchan $opadd $chan]} {putquick "PRIVMSG $chan :\037ERROR\037: $opadd is not even on $chan ..."; return} set mask *!*@[lindex [split [getchanhost $opadd $chan] @] 1] if {[onchan $opadd $chan] && ![isop $opadd $chan]} {putquick "MODE $chan +o $opadd"} adduser $opadd $mask chattr $opadd -|o $chan putquick "NOTICE $nick :Added $opadd to the AOP List for $chan" putquick "NOTICE $opadd :$nick ($hand) has added you to the AOP List for $chan" } proc delaop:pub {nick uhost hand chan arg} { if {![matchattr [nick2hand $nick] o|m $chan]} {return} set opdel [lindex [split $arg] 0] if {[lindex [split $arg] 0] == ""} {putquick "PRIVMSG $chan :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: [addTrigger]delaop nickname"; return} if {![validuser [nick2hand $opdel]]} {putquick "PRIVMSG $chan :\037ERROR\037: $opdel is not a valid user."; return} if {[onchan $opdel $chan] && [isop $opdel $chan]} {putquick "MODE $chan -o $opdel"} deluser $opdel putquick "NOTICE $nick :Deleted $opdel from the AOP List for $chan" putquick "NOTICE $opdel :$nick ($hand) has deleted you from the AOP List for $chan" } proc addaov:pub {nick uhost hand chan arg} { if {![matchattr [nick2hand $nick] o|o $chan]} {return} set aovadd [lindex [split $arg] 0] if {[lindex [split $arg] 0] == ""} {putquick "PRIVMSG $chan :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: [addTrigger]addaov nickname"; return} if {[validuser [nick2hand $aovadd]]} {putquick "PRIVMSG $chan :\037ERROR\037: $aovadd is already a valid user."; return} set mask *!*@[lindex [split [getchanhost $aovadd $chan] @] 1] if {[onchan $aovadd $chan] && ![isvoice $aovadd $chan]} {putquick "MODE $chan +v $aovadd"} adduser $aovadd $mask chattr $aovadd -|v $chan putquick "NOTICE $nick :Added $aovadd to the AOV List for $chan" putquick "NOTICE $aovadd :$nick ($hand) has added you to the AOV List for $chan" } proc delaov:pub {nick uhost hand chan arg} { if {![matchattr [nick2hand $nick] o|o $chan]} {return} set aovdel [lindex [split $arg] 0] if {[lindex [split $arg] 0] == ""} {putquick "PRIVMSG $chan :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: [addTrigger]delaov nickname"; return} if {![validuser [nick2hand $aovdel]]} {putquick "PRIVMSG $chan :\037ERROR\037: $aovdel is not a valid user."; return} if {[onchan $aovdel $chan] && [isvoice $aovdel $chan]} {putquick "MODE $chan -v $aovdel"} deluser $aovdel putquick "NOTICE $nick :Deleted $aovdel from the AOV List for $chan" putquick "NOTICE $aovdel :$nick ($hand) has deleted you from the AOV List for $chan" } proc jmode:pub {nick uhost hand chan arg} { if {![matchattr [nick2hand $nick] o|n $chan]} {return} if {[lindex [split $arg] 0] == ""} {putquick "PRIVMSG $chan :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: [addTrigger]joinmodes on|off"; return} if {[lindex [split $arg] 0] == "on"} { if {[channel get $chan joinmode]} {putquick "PRIVMSG $chan :\037ERROR\037: This setting is already enabled."; return} channel set $chan +joinmode putquick "PRIVMSG $chan :Enabled Auto @/+ Modes for $chan" return 0 } if {[lindex [split $arg] 0] == "off"} { if {![channel get $chan joinmode]} {putquick "PRIVMSG $chan :\037ERROR\037: This setting is already disabled."; return} channel set $chan -joinmode puthelp "PRIVMSG $chan :Disabled Auto @/+ Modes for $chan" } } proc jmode:msg {nick uhost hand arg} { global botnick set chan [strlwr [lindex $arg 0]] if {![matchattr [nick2hand $nick] o|n $chan]} {return} if {([lindex [split $arg] 0] == "") && ([string match "*#*" $arg])} {putquick "NOTICE $nick :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: /msg $botnick joinmodes #channel on|off"; return} if {([lindex [split $arg] 1] == "") && ([string match "*#*" $arg])} {putquick "NOTICE $nick :\037ERROR\037: Incorrect Parameters. \037SYNTAX\037: /msg $botnick joinmodes $chan on|off"; return} if {([lindex [split $arg] 1] == "on") && ([string match "*#*" $arg])} { if {[channel get $chan joinmode]} {putquick "NOTICE $nick :\037ERROR\037: This setting is already enabled."; return} channel set $chan +joinmode putquick "NOTICE $nick :Enabled Auto @/+ Modes for $chan" return 0 } if {([lindex [split $arg] 1] == "off") && ([string match "*#*" $arg])} { if {![channel get $chan joinmode]} {putquick "NOTICE $nick :\037ERROR\037: This setting is already disabled."; return} channel set $chan -joinmode putquick "NOTICE $nick :Disabled Auto @/+ Modes for $chan" return 0 } } proc join:modes {nick uhost hand chan} { global botnick if {[string tolower $nick] != [string tolower $botnick]} { if {[channel get $chan joinmode] && [botisop $chan]} { if {[matchattr [nick2hand $nick] |n $chan]} { putquick "MODE $chan +o $nick" return 0 } if {[matchattr [nick2hand $nick] |m $chan]} { putquick "MODE $chan +o $nick" return 0 } if {[matchattr [nick2hand $nick] |o $chan]} { putquick "MODE $chan +o $nick" return 0 } if {[matchattr [nick2hand $nick] |v $chan]} { putquick "MODE $chan +v $nick" return 0 } } } } putlog "AddUSER+JoinMODEs: Module LOADED! - istok @ IRCSpeed"