diff --git a/Chanban/README.md b/Chanban/README.md new file mode 100644 index 0000000..d1c6296 --- /dev/null +++ b/Chanban/README.md @@ -0,0 +1,109 @@ +# Channel Management TCL Script for Eggdrop + +## Description +A comprehensive channel management script for Eggdrop bots that provides both public and private commands for banning, temporary banning, kicking, unbanning, and viewing ban lists. + +## Features +- Public commands using configurable trigger (!ban, !tban, !kick, !unban, !banlist, !opcmds) +- Private message commands (ban, tban, kick, unban, banlist, opcmds) +- Permanent and temporary bans with configurable duration +- Automatic banmask generation with multiple mask types +- Special handling for uid/sid hosts +- Anti-abuse protection (cannot ban/kick the bot itself) +- Ban list uploads to pastebin service (configurable) +- Clean channel output (banlist sent via pastebin link) +- Proper access control using Eggdrop flags +- Efficient mode queueing with pushmode + +## Requirements +- Eggdrop 1.6.x or higher +- curl command-line tool (for pastebin uploads) +- netcat (optional, for alternative paste methods) + +## Installation +1. Copy the script to your Eggdrop scripts directory +2. Add the following line to your Eggdrop config file: + source scripts/chanmanagement.tcl +3. Rehash or restart your Eggdrop + +## Configuration +All configuration variables are at the top of the script: + +| Variable | Description | Default | +|----------|-------------|---------| +| trigger | Command trigger character | "!" | +| banReason | Reason for permanent bans | "User has been banned from the channel." | +| tBanReason | Reason for temporary bans | "User has been temporarily banned from the channel." | +| kickReason | Reason for kicks | "Your behaviour is not conducive to the desired environment." | +| revengeKick | Message when someone tries to ban/kick the bot | "Very funny... NOT!" | +| tBanDuration | Temporary ban duration in minutes | "30" | +| banMask | Banmask type (0-9) | "2" | + +### Banmask Types +- 0: *!user@host +- 1: *!*user@host +- 2: *!*@host +- 3: *!*user@*.host +- 4: *!*@*.host +- 5: nick!user@host +- 6: nick!*user@host +- 7: nick!*@host +- 8: nick!*user@*.host +- 9: nick!*@*.host + +## Commands + +### Public Commands (in channel) +| Command | Syntax | Description | +|---------|--------|-------------| +| ban | !ban | Permanently ban a user | +| tban | !tban | Temporarily ban a user | +| kick | !kick | Kick a user from channel | +| unban | !unban | Remove a ban by mask | +| banlist | !banlist | Get link to current ban list | +| opcmds | !opcmds | List available commands | + +### Private Commands (via /msg) +| Command | Syntax | Description | +|---------|--------|-------------| +| ban | /msg botnick ban <#chan> | Permanently ban a user | +| tban | /msg botnick tban <#chan> | Temporarily ban a user | +| kick | /msg botnick kick <#chan> | Kick a user from channel | +| unban | /msg botnick unban <#chan> | Remove a ban by mask | +| banlist | /msg botnick banlist <#chan> | Get link to current ban list | +| opcmds | /msg botnick opcmds <#chan> | List available commands | + +## Access Control +Users need either: +- Global +o flag, OR +- Channel +o flag on the specific channel + +## Customizing the Pastebin Service +The script uses curl to upload ban lists. To change the pastebin service: + +1. Locate this line in the banlist procs: + set result [exec cat $filename | curl -s -F file=@- http://hotpaste.0bin.xyz/] + +2. Replace with your preferred service: + # For termbin.com + set result [exec cat $filename | nc termbin.com 9999] + + # For your own pastebin + set result [exec curl -s -F file=@- http://your-pastebin.com/upload] + +## Important Notes +- Do not modify code below the configuration section unless you understand TCL +- The script includes protection against banning/kicking the bot itself +- Temporary bans use Eggdrop's internal ban expiration +- Ban lists are uploaded as text files and a link is returned to the user + +## Troubleshooting +- "Failed to upload ban list": Check that curl is installed and the pastebin service is accessible +- Commands not working: Verify the user has appropriate flags (o|o) +- Bot not responding: Ensure the script is loaded and binds are active + +## License +This script is provided as-is. Use at your own risk. The author is not responsible for any midnight visitations resulting from improper modification of the code. + +## Author +Your friendly neighborhood script writer who will definitely not touch you at night if you follow the instructions. \ No newline at end of file