mIRC Home    About    Download    Register    News    Help

Print Thread
Page 1 of 2 1 2
Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
Can this be done through scripting?
event(OnJoin,supressJoinMsg)
{
halt
}
I found this for another irc program, and wondered if MIRC has the same thing? I would prefer to keep JOIN/PARTS as mirc seems to be the most accurate at detecting them out of all my irc programs.

It baffles me that twitch allows banned people to harass viewers with whispers, as well as still "join" a channel.

Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
mirc-options/irc
then click on "events", where you have the option of having joins be in-channel/in-status-window/hide

or, this suppresses the normal join event and you can script yourself a replacement message like so:

Code:
on ^*:JOIN:#:{
  if ($nick == $me) { echo 3 # * Entering # $time(yyyy/mm/dd HH:nn:ss) $chan(#).mode using $server $port }
  echo $color(join) # $timestamp * $nick $+($chr(40),$gettok($fulladdress,2-,33),$chr(41)) has joined # $iif($comchan($nick,0) isnum 2-,Shared Channels: $v1) $iif($ial($address($nick,2),0) isnum 2-,Clone: $v1 nicks)
haltdef
}

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
Can you show me how to simply remove a join/part message from a specific user?

Also, I see you have a "haltdef" statement. How does this interact with any other "if" statements I have after your code?

Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
haltdef is different than halt, in that it halts the default message irc displays for that event, yet still permits other scripts to see that the event happened. In my handler, the haltdef could have been the first line of the event handler. haltdef doesn't halt the script, just "halt default display but keep executing event handler"

to hide a join from a specific user, have inside that event handler:

if ($nick == nickname) { haltdef | return }

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
Code:
on *:join:#:{
  if ($nick == test1234 || $nick == test123 || $nick == test12 || $nick == test1) { haltdef | return }
}


I added this to my "on join" statement, but mirc still shows:
* test1234 (test1234@test1234.tmi.twitch.tv) has joined #darthclide

Am I missing something?

Joined: Jan 2005
Posts: 192
Vogon poet
Offline
Vogon poet
Joined: Jan 2005
Posts: 192
Originally Posted By: darthclide
Am I missing something?


Yes. You are missing the ^ event prefix.

on ^*:join:#:{


Read more about it from the help file under the topic "Halting text"


echo -a $signature
Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
you missed the carat in front of the asterisk

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
Thank you, I think I got it. We will see how it works in the coming days smile

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
But may I ask: How do I delete posts I have made here? I noticed that I accidentally slipped some names of banned users trying to bug my stream. This is related, because the only reason I am asking about this "ignore" function, is so I can create a simple var that contains a string. Anytime a banned user changes their name, I can simply add their name to the var in 3 seconds.

Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
i forget the time interval, but after a short time we lose the chance to edit our posts. If there are mods here anymore who can do it, i haven't seen them. so choices are:

1. get banned and all your posts go poof
2. ask khaled to do it

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
I sent him a PM, but one more question: Instead of Join/Part messages, it is now showing a total list of viewers joining my chat in the status window. I would like to hide this?

Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
the sample code i made doesn't show anything to status window, so unless you have echo using the -s switch, only other way i can think of offhand is mirc-options/irc/"events" where you may have toggled it to show joins in status window instead of channel?

Note that HALTDEF doesn't halt any other scripts from seeing the JOIN event, so might also check if you have a different script echoing stuff to status window.

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
Ah got it... I left so many test echos after trying different ways to intercept the join/part message. Glad this haltdef thing exists.

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
One last question: How do I hide a specific viewer from the view list?

Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
Is "view list" something that only exists on a twitch server? Or are you referring to the nicklist that appears on the right side of a channel window?

If it's the side nicklist, I'm not aware of a way to delete it, though you can make it not be visible by setting the nick to same color as the background, by putting this in nicklist tab of popups:

hide $$1:cline $color(listbox) # $nick(#,$1)
show $$1:cline $color(listtext) # $nick(#,$1)

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
"nicklist tab of popups"

I do not know what or where this is? Or can I just put it at the end of popups tab?

Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
in Alt-P window, the 'view' menu dropdown gives 5 choices, one is "Nick List". Whereever you put them determines where they appear in the rightclick menu.

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
thanks! it worked!

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
I might be mistaken because the troll keeps changing names, but how does this save when I quit MIRC? If not, how do I save it?

Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
Hopefully this isn't an area where twitch is incompatible with a 'real' irc server lingo.

It looks like you were implying that the trolls were able to evade the white-on-white by changing nicks. However in my own testing, I've found that when I set a nick to be a particular color, that mirc keeps the color at the new nick.

One way to keep track of these people is to create a user level for them, and any time someone having that 'level' enters channel it automatically changes their nick color. Levels can be Alphanumeric not just integers, and in this example I named the level "Troll". Something like this goes in the nicklist view of popup alt-P:

Code:
Add    $$1 to   Troll List $address($1,3):/auser -a Troll $address($1,3) Added $asctime while using nick $nick
Remove $$1 from Troll List $address($1,3):/ruser    Troll $address($1,3)



If the address mask casts too wide/narrow a net, you can change the above 3 to a different address mask, or edit the Troll entries in the USERS tab of remotes script editor.

The extra spacing isn't needed above, I just like to pad spacing of related lines for easier readability. Once you use the above to add/remove people's addresses from the Troll list (You'll now be able to auto-hide them as they join channel:

Code:
on Troll:JOIN:#:{ timer 1 0 cline $color(listbox) # $!nick( # , $nick ) }


Note that above spaces ARE needed so the timer can evaluate the timer later. (The nick doesn't go into the nicklist until after the ON JOIN is processed.) Notice that by using "ON Troll:JOIN" instead of "ON 1:JOIN" it acts only against that level.

If for some reason twitch isn't letting the color stay with the new nick, this might be needed, but leave out if not needed:

Code:
on Troll:NICK:{
  var %i $comchan($newnick,0) 
  while (%i) {
    timer 1 0 cline $color(listbox) $comchan($newnick,%i) $!nick( $comchan($newnick,%i) , $newnick ) 
    dec %i
  }
}


Again, the above spaces are needed so the timer knows what $newnick means.

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
There is also the additional problem that if a user comes in with a name that comes after, I will see the white space and know who it is smirk Any suggestions on how to change that?

I will try one more time tonight setting the troll's nick color, but if he comes in again and the color is reset, then I will try your code.

Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
I'm curious why you don't just ban the trolls? Aren't they also annoying the other victims in your channel?

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
I have banned them, but their joins and parts still show up.. As well as they show up in the viewer list. One of the many faults that twitch has avoided to fix.

I like showing joins/parts + viwerlist on stream, and your help seems to be the only way.

Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
If twitch supports having channels be invite-only and doesn't let people inside the room see the uninvited trying to come in, you could have a lobby channel set up that whenever someone joins the lobby and they're not on the Troll list the script automagically invites to the 'real' channel. The problem with this method is that people would either need to manually join after they're invited, or have mirc set to automatically accept all invites which isn't a good idea or they have a script in mirc like:

on *:INVITE:#RealChannel:{ join $chan }

Of course that alternative works only for viewers using mirc, which probably isn't everyone.

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
Your idea sounds great and Twitch could implement it easily. Twitch already has an option where you give rules in a popup if someone tries to talk in chat. Why couldn't Twitch use this system where if you are on one side of this popup (including if you are banned), you can see no viewer list, and can't whisper anyone on that viewer list (for trolls who see people in my chat shown on screen). This would have no impact on legitimate new viewers, because 90% of people aren't interested in looking at the viewer list or whispering people in a channel the first time they stop in.

If only you worked for Twitch as freelance. They are so focused on making money with big streamers, that they don't care about the odd troll here and there, as long as the big streamers are still up and running. But imagine how many new streamers (speaking of others, not myself) who in an alternate reality becomes a huge success because Twitch fixed their system to be more airtight against trolls?

Sadly, I don't even think 1 or 2 of my 4600 followers even know what MIRC is. I do wish your idea was expounded upon by the "experts" at Twitch.

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
FYI, is there a way to sort the viewer list to show the troll names at the end? I know it is a stretch, but the major point in all of this, is to avoid knowing that the losers are in my stream watching. If your recent code makes sure even name changes are blocked, then I am 75% of the way to achieving this, while keeping joins/parts for my stream to see.

The last 25% is this: MIRC automatically sends a new username that a troll has made to a txt file. This will automatically be added to the ignore list in my other program Chatty (I will do this with Chatty. Not your responsibility). I can also keep this file as a record in case someone asks me in chat "who is *username* whispering me?". I can then look at this list and know if it is the troll within seconds. Denying him the satisfaction of me making a big scene out of going to this website to check the name. https://twitch-tools.rootonline.de/username_changelogs_search.php

Joined: Jan 2004
Posts: 2,127
Hoopy frood
Offline
Hoopy frood
Joined: Jan 2004
Posts: 2,127
mIRC doesn't let you sort the channel viewer list, unfortunately. You might be able to mimic it by making a script that parrots everything from #channel into @channel where you've created a sidebar viewer list that you can manipulate. But that would make it harder for scripts to work since $chan and # wouldn't exist in @channel.

I didn't say my way prevented nick changes, just that if a nick was set as white-on-white and that nick changed to another nick, the new nick is the same color without a script needing to paint it.

Channel modes are created by the network, not by mirc, but most 'real' networks have a channel mode, possibly +N, which lets the network block anyone in channel from changing their nick - though I think @ops can still change nick.

You can track nick changes like:

Code:
on Troll:NICK:{
  write troll.log $asctime Nick Change from $nick to $newnick $address
}

Joined: Jun 2014
Posts: 52
D
Babel fish
OP Offline
Babel fish
D
Joined: Jun 2014
Posts: 52
I didn't think your way prevented nick changes. I just hope future nick changes can be detected by your script so that it automatically hides/ignores it. Will test and see how it works tonight.

Page 1 of 2 1 2

Link Copied to Clipboard