mIRC Remote (SwiftIRC Only)

Platform:  mIRC
Published  May 25, 2011
Updated  May 25, 2011
I wrote this because a lot of times I'm at a computer away from home and would like to have some control over mIRC.

This only works on swiftIRC (or another server with /ns status <nick>)
-Note: to use another network you have to change line 31. Only recommended for those experienced in mSL, as entering the wrong server could be a major security flaw.

This script uses NickServ to authenticate. you (not your home computer) must be using a nick in line 1 and be identified for this to work.

For the ~list command, I recommend first using ~list servers to find out what number your server is, and then moving on to ~list chans <number>

WARNING: ~kill will cause mIRC to quit all servers, but not close the application. This is irreversible until you get access to said computer.

Command list:
In channel:
~part
~list servers
~list chans <server number>
~com <command>
~kill
In PM:
~part <#channel>
~join <#channel>
both ~list commands
~com <command>
~kill alias -l names { return NICK1 NICK2 NICK3 }
on *:TEXT:~kill:*:{
if ($istok($names,$nick,32)) {
msg NickServ status $nick
set -u3 %killorder $nick
set -u3 %command scon -at1 quit
}
}
on *:TEXT:~part:*:{
if ($istok($names,$nick,32)) {
msg NickServ status $nick
set -u3 %killorder $nick
set -u3 %command part $iif($2 == $null,$chan,$$2)
}
}
on *:TEXT:~join*:*:{
if ($istok($names,$nick,32)) {
msg NickServ status $nick
set -u3 %killorder $nick
set -u3 %command join $$2
}
}
on *:TEXT:~com*:*:{
if ($istok($names,$nick,32)) {
msg NickServ status $nick
set -u3 %killorder $nick
set -u3 %command $$2-
}
}
on *:NOTICE:*:?:{
if ($nick == NickServ) && ($network == SwiftIRC) && ($$1 == STATUS) && ($$2 == %killorder) && ($$3 == 3) {
%command
}
}
on *:TEXT:~list*:*:{
if ($istok($names,$nick,32)) {
msg nickserv status $nick
set -u3 %killorder $nick
set -u3 %type $$2
set -u3 %thing $3
set -u3 %cid $cid
set -u3 %command sendlist
}
}
alias -l sendlist {
if (%type == servers) {
var %temp 1
var %total $scon(0)
msg %killorder Server List:
while (%temp <= %total) {
msg %killorder $chr(45) %temp $chr(45) $scon(%temp).network $chr(45) $scon(%temp).server
inc %temp
}
msg %killorder Done.
}
elseif (%type == chans) || (%type == channels) {
if (%thing isnum) {
scon %thing chanreturn
}
}
}
alias -l chanreturn {
var %temp 1
var %total $chan(0)
scid %cid msg %killorder Channel List for $network $+ :
while (%temp <= %total) {
scid %cid msg %killorder - %temp - $chan(%temp)
inc %temp
}
scid %cid msg %killorder Done.
}

Comments

Sign in to comment.
Jethro   -  May 26, 2011
Shut up and bite my dust, napa. :P All of a sudden I sound like a savage. lol

Our good old brainy friend jaytea has spoken with his matter-of-fact analogy upon this so-called accused "repetitive" snippet. Thanks for your time as usual. ^^ It ain't hurt to learn.
 Respond  
napa182   -  May 26, 2011
edited... it posted twice =/
 Respond  
napa182   -  May 26, 2011
well if you read what i wrote right you would have seen I was calling Jethro_ a smart-ass an not Savage_CL
 Respond  
jaytea   -  May 26, 2011

less repetition? looks neater? looks better? better coding habits?


less repetition? you've replaced text events with if conditions and kept the contents of those groups of commands the same. you are 'repeating' if statements in the same way that the OP was 'repeating' text events. each of those events do different things, why must we try to take away from its simplicity by combining them?

the purpose of combining code is not to just eliminate any and all repeated code - this is a mechanical process that anyone can learn to do and does not require a great deal of thought - what is more important is deciding what to combine and why.

in this case, every text event contains 3 identical lines of code that can be abstracted and put into a single alias. but not just for the sake of it: those 3 lines together constitute a clear identifiable function, namely 'validate the user and memorize his nick'. it is a function that is the same regardless of where it appears in the code, and becomes easier to manage if its kept in one place:

Code
 


now, if the validation method ever changes, or the variable/identifier names should be changed, only one portion of code needs to be modified.



I don't use regex

lol i was referring to that smart-ass =P


he doesn't want to use a bit of code he doesn't understand, i think that's perfectly reasonable. he may have a certain unwillingness to learn it, but that doesn't make him a smart ass. in his place, i wouldn't be sold either if all i'm shown is that regex has the ability to eliminate a few very basic if statements for me ;P in a day where regex is used for all the wrong reasons, can you really blame him for his POV?
 Respond  
Jethro   -  May 25, 2011
To me, doing goto is better than doing if conditions, cause it takes less doing passing the if comparison, ya know? It's long and spaghetti-like. For some reason, me sounds promiscuous. lol
 Respond  
napa182   -  May 25, 2011
true, but as most people say goto's look like crap lol I guess its all a matter of preference.
 Respond  
Jethro   -  May 25, 2011
You can do goto too:
Code
 
 Respond  
napa182   -  May 25, 2011
Savage_CL Wrote:
I don't use regex

lol i was referring to that smart-ass =P
 Respond  
Jethro   -  May 25, 2011
LOL I don't "do" regex. What do you "do" then?
 Respond  
napa182   -  May 25, 2011
Code
 

an so on.. I know you don't do regexs but it does look cleaner.. tbh
 Respond  
blackvenomm666   -  May 25, 2011
and your right jeth fixed :D
 Respond  
blackvenomm666   -  May 25, 2011
oh yea and less lines of code
 Respond  
Jethro   -  May 25, 2011
Oh guys, you only need one
if ($istok($names,$nick,32)) {
and
msg nickserv status $nick
instead of one per each if you fancy one text event with the if condition.
 Respond  
Jethro   -  May 25, 2011
I think it looks less noob-ish. lol
 Respond  
blackvenomm666   -  May 25, 2011
less repetition? looks neater? looks better? better coding habits?
 Respond  
Savage_CL   -  May 25, 2011
You're right, I could. but what do I gain doing that?
 Respond  
blackvenomm666   -  May 25, 2011
you can get rid of all the on text events and group it into one event like so
Code
 
 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.