I have a question pls. How to kick Nickname when i banned IP ?
Example:
When i type this command in channel: !ban 10.20.30.40
Then Bot kick ALL Nicknames using that IP address.
[indent=0.8,0.5]
Please help me create such a script.
Thanks alots.
EpicNet.Ru - Форум IRC Чата |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » EpicNet.Ru - Форум IRC Чата » CREATE NEW SCRIPT - Создать новый mIRC скрипт » Kick all nicks using banned IP
I have a question pls. How to kick Nickname when i banned IP ?
Example:
When i type this command in channel: !ban 10.20.30.40
Then Bot kick ALL Nicknames using that IP address.
[indent=0.8,0.5]
Please help me create such a script.
Thanks alots.
How to kick Nickname when i banned IP ?
When i type this command in channel: !ban 10.20.30.40
Then Bot kick ALL Nicknames using that IP address.
Я создал небольшой скрипт для Бота, который должен делать то, что вы просите.
Синтаксис команды: !ban <host/ip>
После того как вы напишите команду на канале, Бот установит "Ban" на указанный хост, а также выполнит "Kick" для всех присутствующих ников пользователей, чей "Host/IP" совпадает с указанным адресом в команде.
Для ограничения прав доступа вы должны заполнить файл "admins.txt", указав в столбик все ники пользователей, которым разрешено использовать эту команду.
Примечание: Все файлы, с которыми работает скрипт должны находиться в той же папке, где находится сам скрипт.
[indent=0.8,0.5]
Итак, вы можете попробовать использовать этот код скрипта:
on @*:TEXT:!ban*:#:{ if (!$read($file_admins,ntw,$nick)) { return } if (!$2) { .notice $nick Syntax:12 !ban <host/ip> | return } mode $chan +b $+(*!*@,$2) | .enable #kicknicks | who $chan $+($chr(37),cn) $2 } alias -l file_admins { return $scriptdir $+ admins.txt } alias -l kick_reason { return You have been banned! } #kicknicks off raw 354:*: kick $2 $3 $kick_reason | haltdef raw 315:*: .disable #kicknicks | haltdef #kicknicks end
Обязательно оставьте свои отзывы и комментарии по результатам тестирования данного скрипта.
[html]<style>img {vertical-align:middle;}.hnet{color:#FFFFFF;}.hstar{color:#DE0000;}.htext{font-family:Verdana;font-size:13px;color:#6E1E00;}.heading{font-family:Verdana;font-size:13px;font-weight:bold;background-color:#4897E7;}.stitle{font-family:Verdana;font-size:12px;}.dot{color:#808000;}.desc{color:#ADADAD;}a .curl{font-family:Verdana;font-size:13px;color:#3A92CD;}</style><table><tr><td width="20px" height="20px"><img src="https://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="https://forum.epicnet.ru/viewtopic.php?id=234"><span class="heading"> <span class="hstar">★</span> <span class="hnet">EpicNet.Ru</span> <span class="hstar">★</span> </span><span class="htext"> - IRC Чат © 2008</span></a></td></tr><tr><td></td><td><div class="stitle"><span class="dot">•</span> <span class="desc">Вход через вебгейт:</span> <a href="http://irc.epicnet.ru"><span class="curl">http://irc.epicnet.ru</span></a><br><span class="dot">•</span> <span class="desc">Сервер:</span> irc.epicnet.ru <span class="desc">Порты:</span> 6667, 6668 (ssl)<br><div></td></tr></table>[/html]
Thanks for your quick answer, my friend.
Here is my real code i need help:
alias -l txt17 { return $mircdir $+ botadmin.txt } ON @*:TEXT:*:#: { tokenize 32 $strip($1-) if ($1 == ~adminbotdel) || ($1 == .adminbotdel) || ($1 == !adminbotdel) || ($1 == adminbotdel) { var %host $ial($nick).host if (!$read(botadmin.txt,ntw,%host)) { .notice $nick Access denied. Only Bot Admin can use this command! | return } if (!$2) { .notice $nick SYNTAX: ~adminbotdel/.adminbotdel/!adminbotdel Ip/hostmask Example: ~adminbotdel 10.22.33.44 or ~adminbotdel Nick.users.undernet.org | return } var %r = $read($txt17,nw,* $+ $2- $+ *) var %rn = $readn if (!%r) || (!%rn) { .notice $nick Sorry, Ip/host $+ $2- $+ does NOT exists on the list of $txt17 database. | return } if (%r) && (%rn) { write -dl $+ %rn $qt($txt17) | .ban -ku10800 $chan $ialchan($1,#,1).nick 2 4Sorry, You are not permitted to join #botadmins anymore } .notice $nick Deleted $+ $2- $+ from 1 line on the list of $txt17 successfull. } }
When I delete a user's ip/host in any channel via MyBot by command: ~adminbotdel <ip/host> , Example: !adminbotdel 10.20.30.40
I want code do this:
1. Bot will deleted ip/host from file "botadmin.txt". (IT WORKS OK)
2. Bot will kick and ban all the Nicknames using that IP-address on channel. (DOES NOT WORK)
Help me solve problem on number 2 above.
Thanks and hope receive help soon!
Отредактировано Robert (24.10.2023 13:05)
Ок. Я изменил ваш код с учётом описанной вами просьбы, чтобы он делал то, что вы просите.
К тому же, как я понимаю скрипт должен удалять по команде только пользователей из специального списка с IP/Хост адресами, а не самих администраторов, которые имеют доступ управления ботом, иначе в этом нет смысла, т.к. в этом случае любой администратор бота сможет удалить другого администратора бота из общего списка, после чего выполнится "Ban+Kick". Поэтому было бы логичнее переименовать команду "adminbotdel" на "userbotdel". Если я неправильно понимаю идею и логику вашего скрипта, то объясните подробнее.
Итак, вы можете попробовать использовать этот код скрипта:
on @*:TEXT:*:#:{ tokenize 32 $strip($1-) if ($com_prefixes($1,adminbotdel,~.!)) { var %host $ial($nick).host, %file_botadmins $read($file_botadmins,ntw,%host) if (!%file_botadmins) { .notice $nick Access denied. Only Bot Admin can use this command! | return } if (!$2) { .notice $nick Syntax: 12~adminbotdel/.adminbotdel/!adminbotdel <ip/host>. Example: 12~adminbotdel 10.20.30.40 or 12~adminbotdel Nick.users.undernet.org | return } var %file_botusers $read($file_botusers,ntw,$2)), %line $readn if (!%file_botusers) { .notice $nick Sorry, ip/host $+(",,$2,,") does NOT exists on the list of $qt($file_botusers) database. | return } else { write -dl $+ %line $qt($file_botusers) | ban $+(-u,$ban_timer) $chan $2 2 | .enable #kicknicks | who $chan $+($chr(37),cn) $2 .notice $nick Deleted $+(",04,$2,,") from $+(04,%line,) line on the list of $qt($file_botusers) successfull. } } } alias -l file_botadmins { return $scriptdir $+ botadmins.txt } alias -l file_botusers { return $scriptdir $+ botusers.txt } alias -l ban_timer { return $rand(3600,10800) } alias -l kick_reason { return 04You are not permitted to join $1 anymore! } alias -l com_prefixes { if ($1 == $2) || ($2 isin $1 && $left($1,1) isin $3) { return $true } } #kicknicks off raw 354:*: kick $2 $3 $kick_reason($2) | haltdef raw 315:*: .disable #kicknicks | haltdef #kicknicks end
Описание настроек:
Алиас "file_botadmins" возвращает путь к файлу "botadmins.txt", который должен содержать список IP/Хостов пользователей, перечисленных в столбик, которые имеют право доступа для использования команды "adminbotdel".
Алиас "file_botusers" возвращает путь к файлу "botusers.txt", который может содержать список IP/Хостов пользователей, перечисленных в столбик, которые имеют некие права на канале, и о которых должен знать Бот для обеспечения контроля безопасности. Например Бот сможет устанавливать для всех пользователей этого списка право голоса "Voice" (+v) на канале, когда на нём установлен режим модерации (+m). Вы можете реализовать это самостоятельно и дополнить весь необходимый вам функционал на своё усмотрение.
Алиас "ban_timer" возвращает случайное (рандомное) числовое значение в секундах для установки времени таймера, по истечению которого Бан должен быть снят. Вы можете изменить это значение на постоянное целое число, которое измеряется в секундах.
Алиас "kick_reason" возвращает текстовое сообщение для установки причины Кика пользователя на канале.
Алиас "com_prefixes" делает проверку, какие префиксы - из передаваемых в параметрах символов "~.!" могут использоваться вместе с командой "adminbotdel" и возвращает "$true", если используется один из этих символов или если ничего не используется в качестве префикса команды.
Примечание: Все файлы, с которыми работает скрипт должны находиться в той же папке, где находится сам скрипт.
[html]<style>img {vertical-align:middle;}.hnet{color:#FFFFFF;}.hstar{color:#DE0000;}.htext{font-family:Verdana;font-size:13px;color:#6E1E00;}.heading{font-family:Verdana;font-size:13px;font-weight:bold;background-color:#4897E7;}.stitle{font-family:Verdana;font-size:12px;}.dot{color:#808000;}.desc{color:#ADADAD;}a .curl{font-family:Verdana;font-size:13px;color:#3A92CD;}</style><table><tr><td width="20px" height="20px"><img src="https://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="https://forum.epicnet.ru/viewtopic.php?id=234"><span class="heading"> <span class="hstar">★</span> <span class="hnet">EpicNet.Ru</span> <span class="hstar">★</span> </span><span class="htext"> - IRC Чат © 2008</span></a></td></tr><tr><td></td><td><div class="stitle"><span class="dot">•</span> <span class="desc">Вход через вебгейт:</span> <a href="http://irc.epicnet.ru"><span class="curl">http://irc.epicnet.ru</span></a><br><span class="dot">•</span> <span class="desc">Сервер:</span> irc.epicnet.ru <span class="desc">Порты:</span> 6667, 6668 (ssl)<br><div></td></tr></table>[/html]
In my CONTROL BOT code, there are about 40-50 commands in ONE file, structure like this:
on @*:TEXT:*:#:{ tokenize 32 $strip($1-) if ($1 == COMMAND ADD) { .....do command 1 here..... } if ($1 == COMMAND DEL) { .....do command 2 here..... } if ($1 == COMMAND FIND) { .....do command 3 here..... } if ($1 == COMMAND LIST) { .....do command 4 here..... } .....etc..... }
I like the way you wrote your code very much!!!
Your code is a part of my fullcode, and I can use your code above to rewrite all my codes snippets. Thanks for your help, Epic!
Отредактировано Robert (27.10.2023 10:14)
Вы здесь » EpicNet.Ru - Форум IRC Чата » CREATE NEW SCRIPT - Создать новый mIRC скрипт » Kick all nicks using banned IP