|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
I'm trying to set different types of bans that I'm missing and that could be useful, but the command is different depending on where you're banning, for example:
Clicking on the nickname list, I get a simple ban on the address:
/ban $$1 2
If the nickname is registered, how do I ban the registered nickname?
Instead, on a script with input, the command is:
if (!kb isin $1) { /ban # $2 2 }
Again, how can I ban a nickname's account if it's registered?
And finally, there's another script that automatically bans, like this:
on @*:TEXT:*add me on*:#Mairel: { .ban $chan $nick 2 }
Since I've set the channel so that only registered nicknames can post, how do I ban the registered account?
|
|
|
|
Joined: Nov 2021
Posts: 160
Vogon poet
|
Vogon poet
Joined: Nov 2021
Posts: 160 |
well that depends on what network this will be used and if they have the option to set bans on accounts rather than on their host or ip and such. lets start with asking on what network are you using this ? and what ircd + services are they using ?
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
Forgive my ignorance, I'm not sure how to respond to the last part of your message, so I at least checked to see if it was possible to ban registered nicknames, and the command is like this:
/mode #channel +b R:
If I do it manually in the channel, it works, but I don't know how to implement it in the situations described above.
If you need any more information, please let me know. Thank you very much
|
|
|
|
Joined: Nov 2021
Posts: 160
Vogon poet
|
Vogon poet
Joined: Nov 2021
Posts: 160 |
the only way i can think of using an extended ban on the account is via whois where the account can be found
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
Try using this:
menu nicklist {
-
$style(1) ADMIN
.Ban $chr(9) *!*@host : ban $chan $$1 2
.Ban $chr(9) $+(R,$chr(58),$$1) : mode $chan +b $+(R:,$$1)
.-
.Ban [Combo] : mode $chan +bb $address($$1,2) $+(R:,$$1)
-
}
on @*:INPUT:#:{
if (/* !iswm $1) {
if (!b == $1) { ban $chan $2 2 }
if (!kb == $1) { ban -k $chan $2 2 You are not welcome here! }
if (!br == $1) { mode $chan +b $+(R:,$2) }
if (!kbr == $1) { mode $chan +b $+(R:,$2) | kick $chan $2 You are not welcome here! }
halt
}
}
on @*:TEXT:*add me on*:#Mairel:{ ban $chan $nick 2 | mode $chan +b $+(R:,$nick) }
Note: You can leave it as is or split it into 3 different scripts. If the code does not work correctly or as you expected, please leave a comment with a detailed report, so that the necessary changes can be made to fix.
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
When I run a whois query, I get, for example:
BestGuest is logged in as TheKing
So if I manually run the command:
/mode #mychan +b R:TheKing
the command works. However, I can't create the command from the other places I mentioned above: by clicking on the nickname list, and from the other two scripts, since they require a different spelling of the command. This is my problem.
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
@Epic, I tried your script. I tried it both split (I prefer it, because I already have three different places set up where these commands are) and loading it whole, and it gives me the same problem for all three codes, whether trying them individually or all at once.
That is, the nickname that gets banned isn't the one of the account they're logged into, but the nickname they're currently using.
For example: if I'm logged in with the nickname TheKing, but I'm using the nickname BestGuest, those commands result in a ban on BestGuest, while the ban should actually be on TheKing.
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
That is, the nickname that gets banned isn't the one of the account they're logged into, but the nickname they're currently using. For example: if I'm logged in with the nickname TheKing, but I'm using the nickname BestGuest, those commands result in a ban on BestGuest, while the ban should actually be on TheKing. Ok, I made additional changes to the code to fix the problem you described. You can test this code:
menu nicklist {
-
$style(1) ADMIN
.Ban $chr(9) *!*@host : ban $chan $$1 2
.Ban $chr(9) $+(R,$chr(58),<account>) : bacc $chan $$1
.-
.Ban [Combo] : set %bcombo $true | bacc $chan $$1
-
}
on @*:INPUT:#:{
if (/* !iswm $1) {
if (!b == $1) { ban $chan $2 2 }
if (!kb == $1) { ban -k $chan $2 2 You are not welcome here! }
if (!br == $1) { bacc $chan $2 }
if (!kbr == $1) { bacc $chan $2 | kick $chan $2 You are not welcome here! }
halt
}
}
on @*:TEXT:*add me on*:#Mairel: ban $chan $nick 2 | bacc $chan $nick
alias -l bacc { .enable #islogged | set %bchan $1 | whois $2 }
alias -l setmode { $iif(%bcombo,mode %bchan +bb $address($1,2) $+(R:,$2),mode %bchan +b $+(R:,$2)) | unset %bchan %bcombo }
#islogged off
raw *:*is logged*: setmode $2 $3 | .disable #islogged
#islogged end
Note: If you are going to split this code up for use in different scripts, remove the switch " -l" in the aliases, to make them global and publicly for visibility in all scripts: alias -l
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
I think at this point I need help breaking them down and adding them to the different scripts, @Epic If I load this entire script, it works, but if I try to split them, I can't get it to work anymore. For the code snippet in the nickname list, I simply have the commands in the script editor, under Popus, like this: ![[Linked Image from i.imgur.com]](https://i.imgur.com/zwZs2gd.jpeg) So, how do I add it to the Popups? For the inputs, the script is like this: on *:INPUT:#: { if (!q === $1) { if ($2 = $null) { /msg chanserv owner # $me } else { /mode $chan +q $2- } } if (!a = $1) { if ($2 = $null) { /msg chanserv protect # $me } else { /mode $chan +aaaaaaaaaa $2- } } if (!o = $1) { if ($2 = $null) { /msg chanserv op # $me } else { /mode $chan +oooooooooo $2- } } if (!kb isin $1) { /ban # $2 2 } if (!k isin $1) { /kick $chan $2 $3- } if ($1 == .k ) { kick # $2 $3- } if ($1 == .b ) { ban # $2 $3- } if (!b == $1 ) { /mode $chan +b $+(*,$2,*),*,!,*,@,*) } } }
on 1:connect: { comandon }
alias comandon { if (%cmd1 != $null) { timer1 1 0 %cmd1 } if (%cmd2 != $null) { timer2 1 0 %cmd2 } if (%cmd3 != $null) { timer3 1 0 %cmd3 } if (%cmd4 != $null) { timer4 1 0 %cmd4 } if (%cmd5 != $null) { timer5 1 0 %cmd5 } I'm lost here too; I can't add it. Finally, in the badwords script, I don't think I added it correctly... it works, but in addition to displaying a whois every time a nickname is banned, the status message says "BACC Unknown command." To add it to the badwords script, I simply added this code under another alias in that script: alias -bacc { .enable #islogged | set %bchan $1 | whois $2 } alias setmode { $iif(%bcombo,mode %bchan +bb $address($1,2) $+(R:,$2),mode %bchan +b $+(R:,$2)) | unset %bchan %bcombo }
#islogged off raw *:*is logged*: setmode $2 $3 | .disable #islogged #islogged end And then of course I put this ban $chan $nick 2 | bacc $chan $nick in every code on text, like this: on @*:TEXT:*this one*:#Mairel: ban $chan $nick 2 | bacc $chan $nick on @*:TEXT:*this one too*:#Mairel: ban $chan $nick 2 | bacc $chan $nick
I hope I explained myself well, I'm sorry for the confusion, if you could tell me how and where they should be added, because I can't do it alone
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
Code snippet for the " Popups" menu:
Punishment
.Ban+Kick : mode $chan +bb $address($$1,2) $address($$1,3) | kick $chan $$1 You are not welcome here!
.-
.Ban $chr(9) *!*@host : ban $chan $$1 2
.Ban $chr(9) $+(R,$chr(58),<account>) : bacc $chan $$1
.-
.Ban $chr(9) Combo : set %bcombo $true | bacc $chan $$1
.Ban+Kick $chr(9) Combo : set %bcombo $true | bacc $chan $$1 | kick $chan $$1 You are not welcome here!
Code snippet with the " ON INPUT" event handler:
on @*:INPUT:#:{
if (!q == $1) {
if ($2 == $null) { msg chanserv owner $chan $me } | else { mode $chan +q $2- }
}
if (!a == $1) {
if ($2 == $null) { msg chanserv protect $chan $me } | else { mode $chan +aaaaaaaaaa $2- }
}
if (!o == $1) {
if ($2 == $null) { msg chanserv op $chan $me } | else { mode $chan +oooooooooo $2- }
}
if (!kb == $1) { ban -k $chan $2 2 You are not welcome here! }
if (!k == $1) { kick $chan $2 $3- }
if (.k == $1) { kick $chan $2 $3- }
if (!b == $1 ) { mode $chan +b $+(*,$2,*!*@*) }
if (.b == $1 ) { ban $chan $2 $3- }
if (!br == $1) { bacc $chan $2 }
if (!kbr == $1) { bacc $chan $2 | kick $chan $2 You are not welcome here! }
halt
}
Code snippet (badwords) with the " ON TEXT" event handler:
on @*:TEXT:*this one*:#Mairel: ban $chan $nick 2
on @*:TEXT:*this too*:#Mairel: ban $chan $nick 2
on @*:TEXT:*i want combo ban*:#Mairel: set %bcombo $true | bacc $chan $nick
alias bacc { .enable #islogged | set %bchan $1 | whois $2 }
alias setmode { $iif(%bcombo,mode %bchan +bb $address($1,2) $+(R:,$2),mode %bchan +b $+(R:,$2)) | unset %bchan %bcombo }
#islogged off
raw *:*is logged*: setmode $2 $3
raw 318:*: .disable #islogged
#islogged end
P.S. Please note that I have made many changes to fix bugs and improve things. You can compare your old code with this update to see what you were doing wrong. Also, never forget to look at the help documentation to see the correct syntax and read information about how to use a particular code element: https://en.wikichip.org/wiki/mirc
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
Oops... looks like I was in a hurry with the publication, and then I couldn't make a correction to the post for a long time and went away on business. 1. I based it on the code snippet you provided with " ON INPUT", but when edited it forgot to add the important condition if (/* !iswm $1) that was present in my previous code. This condition checks whether the entered text is a regular message or a command where the first character in the first word is " /", for example, if you enter the command /echo -a test . Just in case, need to add this condition. 2. Also, the command " halt" at the end of the code will block any sent messages sent to the channel other than the listed commands, so this should be removed or can add inside the curly braces at the very end for each command if (!k == $1) { kick $chan $2 $3- | halt } so that the entered command is not sent to the channel and is not visible to users. 3. And finally, it is better to remove the prefix " @" from the event handler on @*:INPUT:#: since it is assumed that some commands used to obtain the channel operator status will be entered at a time when you do not yet have the channel operator status. During my short rushed testing, everything went smoothly and I didn't notice these bloopers, but in fact these omissions lead to incorrect operation of the script. Replace the previous code snippet with the " ON INPUT" event handler with this one and check:
on *:INPUT:#:{
if (/* !iswm $1) {
if (!q == $1) {
if ($2 == $null) { msg chanserv owner $chan $me } | else { mode $chan +q $2- } | halt
}
if (!a == $1) {
if ($2 == $null) { msg chanserv protect $chan $me } | else { mode $chan +aaaaaaaaaa $2- } | halt
}
if (!o == $1) {
if ($2 == $null) { msg chanserv op $chan $me } | else { mode $chan +oooooooooo $2- } | halt
}
if (!kb == $1) { ban -k $chan $2 2 You are not welcome here! | halt }
if (!k == $1) { kick $chan $2 $3- | halt }
if (.k == $1) { kick $chan $2 $3- | halt }
if (!b == $1 ) { mode $chan +b $+(*,$2,*!*@*) | halt }
if (.b == $1 ) { ban $chan $2 $3- | halt }
if (!br == $1) { bacc $chan $2 | halt }
if (!kbr == $1) { bacc $chan $2 | kick $chan $2 You are not welcome here! | halt }
}
}
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
@Epic I was able to add everything easily like this. Thank you for all the improvements and work you've done, truly.
However, after testing the scripts in all situations, I noticed some malfunctions:
Problem 1: When I set, or automatically trigger, a ban on the registered account, from all three places— namely, the nickname list, the input, and the badwords— an automatic whois query is triggered each time.
So I tried removing this part from the alias code:
| whois $2
But the result is that nothing works anymore. How do you get rid of that whois that keeps appearing without the script stopping working?
Second problem: To the badwords:
on @*:TEXT:*i want combo ban*:#Mairel: set %bcombo $true | bacc $chan $nick
I had to add this:
| .ban $chan $nick 2
Because if someone who doesn't have the registered nickname writes any badwords, the ban won't be triggered, nothing happens.
Now, however, by adding the other ban code, when a ban is triggered, I still get the following message in the Status:
#Mairel *!*@exemple.org b Channel ban list already contains *!*@exemple.org
This is because the type 2 ban is already present in the "combo" ban, so I had to change it by adding the type 3 ban, like this:
| .ban $chan $nick 3
So now, when someone says a bad word, a type 2 ban, an account ban (the combo), and a type 3 ban are triggered.
I only managed to get it to work by doing this, but I think it's forced to work this way, forcing three types of bans. I think it should be fixed so that if the nickname is registered, both the type 2 and account bans are triggered, while if it's not registered, only the type 2 ban is triggered, or at most, a type 2 ban and the ability to add others as needed.
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
Oops... looks like I was in a hurry with the publication, and then I couldn't make a correction to the post for a long time and went away on business. I based it on the code snippet you provided with " ON INPUT", but when edited it forgot to add the important condition if (/* !iswm $1) that was present in my previous code. This condition checks whether the entered text is a regular message or a command where the first character in the first word is " /", for example, if you enter the command: /echo -a test . Just in case, need to add. Also, the command " halt" at the end of the code will block any sent messages sent to the channel other than the listed commands, so this should be removed or can add inside the curly braces at the very end for each command: if (!k == $1) { kick $chan $2 $3- | halt } so that the entered command is not sent to the channel and is not visible to users. And finally, it is better to remove the prefix " @" in the event handler, since it is assumed that some commands used to obtain the channel operator status will be entered at a time when you do not yet have the channel operator status. During my short, rushed testing, everything went smoothly and I didn't notice these bloopers, but these omissions lead to the script not working correctly. Replace the previous code snippet with the " ON INPUT" event handler with this one and check:
on *:INPUT:#:{
if (/* !iswm $1) {
if (!q == $1) {
if ($2 == $null) { msg chanserv owner $chan $me } | else { mode $chan +q $2- } | halt
}
if (!a == $1) {
if ($2 == $null) { msg chanserv protect $chan $me } | else { mode $chan +aaaaaaaaaa $2- } | halt
}
if (!o == $1) {
if ($2 == $null) { msg chanserv op $chan $me } | else { mode $chan +oooooooooo $2- } | halt
}
if (!kb == $1) { ban -k $chan $2 2 You are not welcome here! | halt }
if (!k == $1) { kick $chan $2 $3- | halt }
if (.k == $1) { kick $chan $2 $3- | halt }
if (!b == $1 ) { mode $chan +b $+(*,$2,*!*@*) | halt }
if (.b == $1 ) { ban $chan $2 $3- | halt }
if (!br == $1) { bacc $chan $2 | halt }
if (!kbr == $1) { bacc $chan $2 | kick $chan $2 You are not welcome here! | halt }
}
}
You posted before me while I was posting another message, I won't touch anything so in the meantime you can also read the other message with the problems I found
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
... whois query is triggered each time ... Yes, the script every time uses the command whois $2 to get the required string, for example " BestGuest is logged in as TheKing", so this request will be made constantly. How do you get rid of that whois ... ? Can try to hide the display of all lines received in the " Whois" response about the requested nick by using the command haltdef inside the handler raw . I think it should be fixed so that if the nickname is registered, both the type 2 and account bans are triggered, while if it's not registered, only the type 2 ban is triggered, or at most, a type 2 ban and the ability to add others as needed. Ok, for this I will add two aliases " ban_reg_user" and " ban_noreg_user" to set a ban if the nick is registered or when it is not registered respectively, depending on what data will be received from the " Whois" response, and with the ability to add additional commands with the required types of bans. 〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰Replace the previous code snippet (badwords) with the " ON TEXT" event handler with this one and check:
on @*:TEXT:*just ban me already*:#Mairel: ban $chan $nick 2
on @*:TEXT:*guess my registration*:#Mairel: bacc $chan $nick
on @*:TEXT:*i want to get combo*:#Mairel: set %bcombo $true | bacc $chan $nick
alias bacc { .enable #islogged | set %bchan $1 | whois $2 }
alias -l ban_reg_user {
if (%bcombo) { mode %bchan +bbb $address($1,2) $address($1,3) $+(R:,$2) }
else { mode %bchan +bb $address($1,2) $+(R:,$2)) }
unset %bchan %bcombo
}
alias -l ban_noreg_user {
if (%bcombo) { mode %bchan +bb $address($1,2) $address($1,3) }
else { ban %bchan $1 2 }
unset %bchan %bcombo
}
#islogged off
raw *:*:{
if ($numeric isnum 307-320) || ($numeric isnum 615-617) { haltdef }
if ($istok(301 330 335 338 378 379 671,$numeric,32)) { haltdef }
if (*is logged* iswm $2-) { set %islogged $3 | haltdef }
if ($numeric == 318) {
$iif(%islogged,ban_reg_user $2 $v1,ban_noreg_user $2)
unset %islogged | .disable #islogged
}
}
#islogged end
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
So if I understand correctly, it's possible to hide the whois (that was the goal, if I explained myself correctly; not that there isn't a whois, but just to make it invisible in all three places) only in the badwords code, while for the script input and the popup bans, it's not possible to hide it?
Anyway, I changed the code with the new one, and the ban issue was solved, but the whois still appears.
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
if I understand correctly, it's possible to hide the whois only in the badwords code, while for the script input and the popup bans, it's not possible to hide it? No. Hiding the " Whois" response should work for all three code snippets, when they use the common command bacc that runs the alias of the same name, which in turn runs other commands specified inside its curly braces: alias bacc { .enable #islogged | set %bchan $1 | whois $2 } Catching and hiding incoming " Whois" messages is done in the handler raw . More details here: https://en.wikichip.org/wiki/mirc/raw_eventsAnyway, I changed the code with the new one, and the ban issue was solved, but the whois still appears. Before publishing the code, I usually do some light testing to make sure it works according to the technical specifications in the request, so all of these three codes should work fine. When setting a ban on a user by his account, I don't see not a one displayed lines from " Whois", when the command bacc is used in all three code snippets. But if enter the command /whois nick directly into the input field (editbox), then in this case you should see all the information received from the server in full. That's where all the magic is ✨ For testing, try installing a new/clean mIRC client in a different folder, without any scripts, dlls and third-party add-ons, and then you'll need to load/install only these three code snippets into it, with the latest changes/updates.
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
@Epic I found the problem as to why the Whois was still visible: there's another Whois script that's apparently conflicting. I tried removing it from the script to test it, and now the Whois is no longer visible from any of the three sections (Popups, Input, and Badwords).
The script is this:
menu { — $1 —:whois $$1 $$1 } raw 311:*:{ haltdef echo -a $timestamp [Nick] $2 echo -a $timestamp [Real name] $6- echo -a $timestamp [Ident@Ip] $3 $+ $+ @ $+ $+ $4 var %clone = $kanalclone($2) if (%clone == $null) echo -a $timestamp [Clones] (No clones) else echo -a $timestamp [Clones] ( $+ $numtok(%clone,44) $+ ) user / %clone haltdef } raw 312:*:{ haltdef echo -a $timestamp [Server] $3 / $4 $5 $6 } raw 313:*: { haltdef echo -a $timestamp [Network Inf] $3 $4 $5 $6 $7 $8 $9 } raw 314:*:{ haltdef echo -a $timestamp ¯°--------------------------------------------------------------------------------• echo -a $timestamp [Nick] $2 echo -a $timestamp [Real name] $6- echo -a $timestamp [Ident@Ip] $3 $+ $+ @ $+ $+ $4 var %clone = $kanalclone($2) if (%clone == $null) echo -a $timestamp [Clones] (Nessun clone) else echo -a $timestamp [Clones] ( $+ $numtok(%clone,44) $+ ) user / %clone haltdef } raw 317:*:{ haltdef echo -a $timestamp [Connection time] $asctime($4,dddd dd/mm/yyyy HH:nn:ss) / $duration($calc($ctime - $4)) echo -a $timestamp [Idle]0 $duration($3) } raw 319:*:{ haltdef echo -a $timestamp [Channels] $3- echo -a $timestamp [Com Chan] $ortak_k($2) / Total: $comchan($2,0) Chan(s) } raw 338:*:{ haltdef echo -a $timestamp [Ip] $4 $5 $6 } raw 318:*:{ haltdef echo -a $timestamp [Whois End] } raw 320:*:{ haltdef echo -a $timestamp [Swhois]: $2- } raw 307:*: { haltdef echo -a $timestamp [Registered] Yes } raw 330:*: echo -a $timestamp [NickServ] $2 $4 $5 $6 $7 $3 | halt raw 378:*:{ haltdef echo -a $timestamp [Ip] $3 $4 $5 $6 $7 } raw 344:*:{ haltdef echo -a $timestamp [Country] $2- } raw 350:*:{ haltdef echo -a $timestamp [Webgate] $4- } raw 379:*:{ haltdef echo -a $timestamp [Modes] $6 } raw 671:*:{ haltdef echo -a $timestamp [Connection Time] $3- } raw 276:*:{ haltdef echo -a $timestamp [Client] $3 $4 $5 $6 $7 } raw 327:* { echo -a $timestamp [Client Info] Java User halt } raw 301:*: { haltdef echo -a $timestamp [Away] ( $+ $3- $+ ) } raw 310:*: { haltdef echo -a $timestamp [Ircop] $3 $4 $5 $6 } raw 335:*: { echo -a $timestamp [Bot] Yes (+B). halt } alias kanalclone { if ($ial($address($1,2),0) == 1) return var %nickler = 0 | var %clone = $1 while (%nickler < $ial($address($1,2),0)) { inc %nickler | var %clone = $addtok(%clone,$ial($address($1,2),%nickler).nick, 44) } return %clone }
alias ortak_k { if ($server == $null) { echo -a $timestamp [No such server] } elseif ($chan($me) == 0) { echo -a $timestamp [No such channel] } elseif (!$1) { echo -a $timestamp [No such nick] } elseif ($comchan($1,0) == 0) { echo -a $timestamp [No such nick/channel] } else { var %oid 1 set %orka $comchan($1,0) unset %knms while (%oid <= %orka) { set %knms $comchan($1,%oid) $+ $chr(32) $+ %knms inc %oid } return %knms } }
Can this be fixed so it doesn't conflict with the codes you created?
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
Ok, try replacing the script code you provided with this one and check:
menu nicklist {
— $1 — : .enable #replace_whois | whois $$1 $$1
}
#replace_whois off
raw 311:*:{
haltdef
echo -a $timestamp $+(¯°,$str(-,80),•)
echo -a $timestamp [Nick] $2
echo -a $timestamp [Real name] $6-
echo -a $timestamp [Ident@Ip] $+($3,@,$4)
var %clone $kanalclone($2)
if (%clone == $null) echo -a $timestamp [Clones] (No clones)
else echo -a $timestamp [Clones] ( $+ $numtok(%clone,44) $+ ) user / %clone
}
raw 312:*: haltdef | echo -a $timestamp [Server] $3 / $4 $5 $6
raw 313:*: haltdef | echo -a $timestamp [Network Inf] $3 $4 $5 $6 $7 $8 $9
raw 314:*:{
haltdef
echo -a $timestamp $+(¯°,$str(-,80),•)
echo -a $timestamp [Nick] $2
echo -a $timestamp [Real name] $6-
echo -a $timestamp [Ident@Ip] $+($3,@,$4)
var %clone $kanalclone($2)
if (%clone == $null) echo -a $timestamp [Clones] (Nessun clone)
else echo -a $timestamp [Clones] ( $+ $numtok(%clone,44) $+ ) user / %clone
}
raw 317:*:{
haltdef
echo -a $timestamp [Connection time] $asctime($4,dddd dd/mm/yyyy HH:nn:ss) / $duration($calc($ctime - $4))
echo -a $timestamp [Idle]00 $duration($3)
}
raw 319:*:{
haltdef
echo -a $timestamp [Channels] $3-
echo -a $timestamp [Com Chan] $ortak_k($2) / Total: $comchan($2,0) Chan(s)
}
raw 338:*: haltdef | echo -a $timestamp [Ip] $4 $5 $6
raw 320:*: haltdef | echo -a $timestamp [Swhois]: $2-
raw 307:*: haltdef | echo -a $timestamp [Registered] Yes
raw 330:*: haltdef | echo -a $timestamp [NickServ] $2 $4 $5 $6 $7 $3
raw 378:*: haltdef | echo -a $timestamp [Ip] $3 $4 $5 $6 $7
raw 344:*: haltdef | echo -a $timestamp [Country] $2-
raw 350:*: haltdef | echo -a $timestamp [Webgate] $4-
raw 379:*: haltdef | echo -a $timestamp [Modes] $6
raw 671:*: haltdef | echo -a $timestamp [Connection Time] $3-
raw 276:*: haltdef | echo -a $timestamp [Client] $3 $4 $5 $6 $7
raw 327:*: haltdef | echo -a $timestamp [Client Info] Java User
raw 301:*: haltdef | echo -a $timestamp [Away] ( $+ $3- $+ )
raw 310:*: haltdef | echo -a $timestamp [Ircop] $3 $4 $5 $6
raw 335:*: haltdef | echo -a $timestamp [Bot] Yes (+B).
raw 318:*: haltdef | echo -a $timestamp [Whois End] | .disable #replace_whois
#replace_whois end
alias kanalclone {
if ($ial($address($1,2),0) == 1) return
var %nickler = 0 | var %clone = $1
while (%nickler < $ial($address($1,2),0)) { inc %nickler | var %clone = $addtok(%clone,$ial($address($1,2),%nickler).nick, 44) }
return %clone
}
alias ortak_k {
if ($server == $null) { echo -a $timestamp [No such server] }
elseif ($chan($me) == 0) { echo -a $timestamp [No such channel] }
elseif (!$1) { echo -a $timestamp [No such nick] }
elseif ($comchan($1,0) == 0) { echo -a $timestamp [No such nick/channel] }
else {
var %oid 1
set %orka $comchan($1,0)
unset %knms
while (%oid <= %orka) {
set %knms $comchan($1,%oid) $+ $chr(32) $+ %knms
inc %oid
}
return %knms
}
}
P.S. Please, when publishing large code, instead of the tag [c] for single-line code, use the tag [code] for multi-line code: What UBBCode can I use in my posts
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
Sorry for the tag, I was just trying to figure out why it always came up like this when I entered the code, thanks. Anyway, I tried this whois, and now it doesn't appear anymore. It works fine. There are only two small problems, one graphical, and another, I think, with the script: The script issue is that now when the ban is triggered, from any of the three places (nicklist, script input, and script badwords), this appears in the status window (for example, let's take the nickname BestGuest): BestGuest DE set by is connecting from Germany The second problem, more of a graphical change than a problem, is that before I called the whois from the nickname list with the code in the popups, simply like this: ![[Linked Image from i.imgur.com]](https://i.imgur.com/p3eFYnF.jpeg) The graphical result when clicking on the nickname list was this: [img] https://imgur.com/Hv54mDD[/img] With your new whois, however, from the nickname list it appears like this: ![[Linked Image from i.imgur.com]](https://i.imgur.com/nJOLRBM.jpeg) You could move the new whois from where it is now, below, placing it in place of the previous Popup whois (which I should now delete), among the "Query" and "Notice" entries, as it is in the second image?
|
|
|
|
Joined: May 2022
Posts: 136
Vogon poet
|
Vogon poet
Joined: May 2022
Posts: 136 |
::::::::::::::::
Last edited by Fernet; 03/08/25 02:33 PM.
|
|
|
|
Joined: May 2022
Posts: 136
Vogon poet
|
Vogon poet
Joined: May 2022
Posts: 136 |
You can edit popup.ini:
[bpopup]
nX=Query:/query $$1
nX=Notice:/notice $$1 $$?="Insert msg:"
nX=/whois $$1
nX=Invite:/invite $$1 $$?="Insert channel:"
nX = You can choose where You want it to appear in popup depending on other items
Last edited by Fernet; 03/08/25 02:35 PM.
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
The script issue is that now when the ban is triggered, from any of the three places (nicklist, script input, and script badwords), this appears in the status window: «BestGuest DE set by is connecting from Germany» If the line you specified " BestGuest DE set by is connecting from Germany" appears constantly after each " Whois" request when the command bacc is used, then you can also try to hide it by adding to the code with the handler raw the following line: if (*set by is connecting from* iswm $2-) { haltdef } As a result, the code part from #Post273557 should look like this:
#islogged off
raw *:*:{
if ($numeric isnum 307-320) || ($numeric isnum 615-617) { haltdef }
if ($istok(301 330 335 338 378 379 671,$numeric,32)) { haltdef }
if (*set by is connecting from* iswm $2-) { haltdef }
if (*is logged* iswm $2-) { set %islogged $3 | haltdef }
if ($numeric == 318) {
$iif(%islogged,ban_reg_user $2 $v1,ban_noreg_user $2)
unset %islogged | .disable #islogged
}
}
#islogged end
〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰You could move the new whois from where it is now, below, placing it in place of the previous Popup whois (which I should now delete), among the "Query" and "Notice" entries, as it is in the second image? Yes. Since the menu item and its commands were specified directly in the script, the location of the item when calling the pop-up menu window will be to others, depending on the script's ordinal number in the list of all loaded scripts. At the same time, all menus from the " Popups" tab have priority, so these menu items will always be above the menu items that were created in the " Remote" tab. If you want to control the " Whois" command from the menu in the " Popups" tab, then the part of the code that is responsible for the menu must be removed from the script in the " Remote" tab, and the command .enable #replace_whois must be added before the command whois $$1 $$1 in the " Popups" menu, separating the two commands with the | symbol. So, this part of the code from #Post273563 in the " Remote" tab needs to be removed:
menu nicklist {
— $1 — : .enable #replace_whois | whois $$1 $$1
}
And this is what the code fragment for the " Popups" tab (Nick List) will look like:
Query: query $$1
Notice: notice $$1 $$?="Insert msg:"
Whois: .enable #replace_whois | whois $$1 $$1
Invite: invite $$1 $$?="Insert channel:"
Here you can easily swap/move/juggle the lines to change the position of a particular menu item. P.S. If the problem with displaying strings from " Whois" has not been solved, then leave the name of the IRC network, server and port where you are using the script, so that I can connect to test and solve the problem. You can also contact me by connecting to my IRC server on the #Code channel, my nick is always online thanks to the BNC service and sometimes I go to the chat to provide support/help with code.
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
Okay, the graphics "problem" has been fixed, thanks.
Unfortunately @Epic, bans from the nickname list, input, and badwords still show that message in the status, so I'd say it's not fixed here.
The network I'm most often on is Simosnap, irc.simosnap.com +6697
@Fernet, thanks to you too for the suggestions : )
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
When connecting to your network, I see the following server response about blocking: It appears that access to this network is severely restricted/denied for users with IP addresses from other countries, and only a small circle of people, friends or users from a few permitted countries can connect to the chat. Therefore, I will not be able to help you solve your problem by performing all the necessary script tests while I am directly on your network. The last thing I can suggest is to put this one-line code in a new/clean script file in the " Remote" tab: raw *:*: echo -a 04 $numeric $1- Next, test your scripts, and if you see red lines with numbers at the beginning of the text, then copy them and publish them here for the report. After this, the one-line code will need to be removed so that it does not interfere with the normal display of messages.
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
Okay, I uploaded that code and tested the scripts, in all three, and when the ban kicks in, this is what comes out:
311 Niick BestGuest rulers SimosNap-87ed5q.retail.thanthis.de * ... 312 Niick BestGuest lab.simosnap.com SBG 3 Lab SimosNap IRC Server 344 Niick BestGuest DE is connecting from Germany 330 Niick BestGuest MyNick is logged in as 671 Niick BestGuest is using a secure connection 318 Niick BestGuest End of /WHOIS list.
Also, this keeps appearing in the status:
BestGuest DE set by is connecting from Germany
But it's not in red and there's no number at the beginning.
Last edited by Mairel; 04/08/25 01:01 PM.
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
Here are some more diagnostic methods, that can help determine the source of the problem:
1. Similar to the previous method, place this one-line code in a new/clean script file in the "Remote" tab: on *:PARSELINE:in:*: echo -a 10TEST04 : $parseline
Next, test your scripts, and if you see red lines with the word "TEST" at the beginning of the text, then copy and publish here all these lines or only those that may be related to the problem. Once you've completed your testing or decided it's enough, you'll want to remove this one-line code so it doesn't interfere with the normal display of messages.
2. Try connecting to a few other known IRC networks from mIRC's internal list and do the same testing to make sure this line only appears on your network.
3. If this annoying line appears on all IRC networks, try to make sure it's not being called by some other script, long ago or recently installed, that you forgot about or just didn't know was doing this. You can use the search in the script editor by pressing the key combination "CTRL+F" and indicate the word(s), for example "set by is connecting from".
Note: When testing, it is advisable to be on only one empty or your favorite channel to avoid unnecessary junk messages that will quickly clutter your window.
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
I did this other test, that message appears only on Simosnap. Here's what came out in detail:
TEST : @time=2025-08-05T10:23:05.996Z :resurrection.simosnap.com 311 MyNick OtherNick1 OtherNick2 SimosNap-87ed5q.retail.thenthis.de * :... TEST : @time=2025-08-05T10:23:05.996Z :resurrection.simosnap.com 312 MyNick OtherNick1 lab.simosnap.com :SBG 3 Lab SimosNap IRC Server TEST : @time=2025-08-05T10:23:05.996Z :resurrection.simosnap.com 344 MyNick OtherNick1 DE :is connecting from Germany TEST : @time=2025-08-05T10:23:05.996Z :resurrection.simosnap.com 330 MyNick OtherNick1 OtherNick2 :is logged in as TEST : @time=2025-08-05T10:23:05.996Z :resurrection.simosnap.com 671 MyNick OtherNick1 :is using a secure connection TEST : @time=2025-08-05T10:23:05.996Z :resurrection.simosnap.com 318 MyNick OtherNick1 :End of /WHOIS list. TEST : @account=MyNick;time=2025-08-05T10:23:06.251Z :MyNick!ID@SimosNap-ud3fed.bla.bla.okokok.net MODE #Try123 +bb *!*@SimosNap-87ed5q.retail.thenthis.de :R:OtherNick2 TEST : @time=2025-08-05T10:23:06.264Z :lab.simosnap.com KICK #Try123 OtherNick1 :Banned TEST : @time=2025-08-05T10:23:15.127Z PING :ZNC
While when I tried it on GameSurge this came out:
TEST : :Prothid.NY.US.GameSurge.net 311 MyNick OtherNick1 ~OtherNick1 OtherNick1.user.gamesurge * :... TEST : :Prothid.NY.US.GameSurge.net 319 MyNick OtherNick1 :#Try123 TEST : :Prothid.NY.US.GameSurge.net 312 MyNick OtherNick1 *.GameSurge.net :The GameSurge IRC Network TEST : :Prothid.NY.US.GameSurge.net 330 MyNick OtherNick1 OtherNick1 :is logged in as TEST : :Prothid.NY.US.GameSurge.net 318 MyNick OtherNick1 :End of /WHOIS list. TEST : :MyNick!~R4klbs3o@gamesurge-8fb37c1b.retail.thenthis.de MODE #Try123 +bb *!*@OtherNick1.user.gamesurge *!*@R:OtherNick1
I haven't tried other networks because if I have to do it I have to register the nickname, if necessary I'll do it
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
And more one method is to try entering in the "Editbox" field the command: /debug -p @debug
After this, a window named "@debug" should open to display debugging information. Next, test the scripts again on your network. After testing is complete copy from the "@debug" window and publish here all the lines or only those that may be relevant to your problem.
Explanation: In raw messages the text is displayed in its original unmodified form, along with the numeric value of the event, and in the debug information we can see almost everything that mIRC receives and sends, with the full data set on each line in extended format, depending on the IRCd settings.
The goal is to find the corresponding/similar line in some event or the reason that causes this line to be displayed: "BestGuest DE set by is connecting from Germany".
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
With debugging this comes out:
<- @time=2025-08-05T12:37:55.340Z PING :ZNC -> resurrection.simosnap.com PONG :ZNC <- @account=OtherNick1;time=2025-08-05T12:37:56.721Z :BestGuest!other@SimosNap-86ec5q.retail.thenthis.de PRIVMSG #Try123 :ban1 -> resurrection.simosnap.com WHOIS BestGuest <- @time=2025-08-05T12:37:56.902Z :resurrection.simosnap.com 311 MyNick BestGuest OtherNick1 SimosNap-86ec5q.retail.thenthis.de * :... <- @time=2025-08-05T12:37:56.902Z :resurrection.simosnap.com 312 MyNick BestGuest lab.simosnap.com :SBG 3 Lab SimosNap IRC Server <- @time=2025-08-05T12:37:56.902Z :resurrection.simosnap.com 344 MyNick BestGuest DE :is connecting from Germany <- @time=2025-08-05T12:37:56.902Z :resurrection.simosnap.com 330 MyNick BestGuest OtherNick1 :is logged in as <- @time=2025-08-05T12:37:56.902Z :resurrection.simosnap.com 671 MyNick BestGuest :is using a secure connection <- @time=2025-08-05T12:37:56.902Z :resurrection.simosnap.com 318 MyNick BestGuest :End of /WHOIS list. -> resurrection.simosnap.com MODE #Try123 +bb *!*@SimosNap-86ec5q.retail.thenthis.de R:OtherNick1 <- @account=MyNick;time=2025-08-05T12:37:57.269Z :MyNick!Ok@SimosNap-ud3fed.this.and.this.net MODE #Try123 +bb *!*@SimosNap-86ec5q.retail.thisthen.de :R:OtherNick1 <- @time=2025-08-05T12:37:57.279Z :lab.simosnap.com KICK #Try123 BestGuest :Banned
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
Stop. I looked again attentively/meticulously at the code with the handler raw and found that for some reason it doesn't specify the numeric value " 344" among all the listed ones, so that it would also be hidden. Hmm... I thought I listed all possible numeric values for strings associated with the " Whois" answer. This may be because in my network the string with the name of the country from which the user connected is displayed with a different numeric value, and in your network with this one. Additionally, these values may differ depending on the IRCd and modules used, or due to individual settings that may not match the general standard. Try adding this number to this line of code between other numbers separated by spaces: if ($istok(301 330 335 338 344 378 379 671,$numeric,32)) { haltdef } As a result, the code part from #Post273557 should look like this:
#islogged off
raw *:*:{
if ($numeric isnum 307-320) || ($numeric isnum 615-617) { haltdef }
if ($istok(301 330 335 338 344 378 379 671,$numeric,32)) { haltdef }
if (*is logged* iswm $2-) { set %islogged $3 | haltdef }
if ($numeric == 318) {
$iif(%islogged,ban_reg_user $2 $v1,ban_noreg_user $2)
unset %islogged | .disable #islogged
}
}
#islogged end
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
I updated the code and it works, the message no longer appears.
I didn't notice the missing 344 value either; even if I looked more carefully at the whois, I might have noticed it, damn it.
I'm glad, though, that it wasn't due to other scripts; it would have been a pain to find the cause.
Now I'll start testing the scripts in daily use, I'll see if there's anything else wrong, if everything's ok, if there are any gaps and so on. If so, I'll update this post.
Thank you so much for your effort @Epic, you're great, I really appreciated it.
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
Update: I added another missing value to this code, 350: #islogged off
raw *:*:{
if ($numeric isnum 307-320) || ($numeric isnum 615-617) { haltdef }
if ($istok(301 330 335 338 344 [color:#FF0000]350[/color] 378 379 671,$numeric,32)) { haltdef }
if (*is logged* iswm $2-) { set %islogged $3 | haltdef }
if ($numeric == 318) {
$iif(%islogged,ban_reg_user $2 $v1,ban_noreg_user $2)
unset %islogged | .disable #islogged
}
}
#islogged end Since it caused this writing to appear continuously: "Nick" * * is connected via the webircgateway WebIRC gateway
|
|
|
|
Joined: Jan 2012
Posts: 370
Pan-dimensional mouse
|
Pan-dimensional mouse
Joined: Jan 2012
Posts: 370 |
Yes, you can add to this line of code any numeric values of messages from the " Whois" answer that were not discussed earlier, but appeared later under different circumstances and you want those messages to be hidden as well. Please fix/edit the code in your post, as it contains a color tag [color] that cannot be used inside a multi-line code. If someone copies this piece of code from your post and tries to use it, it may result in the script breaking or an error, or at best, the message with the numerical value " 350" will not be hidden. It should be like this:
#islogged off
raw *:*:{
if ($numeric isnum 307-320) || ($numeric isnum 615-617) { haltdef }
if ($istok(301 330 335 338 344 350 378 379 671,$numeric,32)) { haltdef }
if (*is logged* iswm $2-) { set %islogged $3 | haltdef }
if ($numeric == 318) {
$iif(%islogged,ban_reg_user $2 $v1,ban_noreg_user $2)
unset %islogged | .disable #islogged
}
}
#islogged end
|
|
|
|
Joined: Dec 2024
Posts: 29
Ameglian cow
|
OP
Ameglian cow
Joined: Dec 2024
Posts: 29 |
I didn't realize it came out like that...
It won't let me edit the post anyway, thanks for posting the right one.
|
|
|
|
|