Discord bot for handling Ryujinx moderation tasks and such, (n)ext-(g)en rewrite of Robocop
e148e04a87
containing log channel |
||
---|---|---|
cogs | ||
helpers | ||
.gitignore | ||
config.py.template | ||
LICENSE | ||
README.md | ||
requirements.txt | ||
Robocop.py |
Robocop-ng
Next-gen rewrite of Kurisu/Robocop bot used on ReSwitched bot with discord.py rewrite, designed to be clean, fast and un-bloated.
Code is based on https://gitlab.com/ao/dpybotbase and https://github.com/916253/Kurisu-Reswitched.
How to run
- Copy
config.py.template
toconfig.py
, configure all necessary parts to your server. - Install python3.6+.
- Install python dependencies (
pip3 install -Ur requirements.txt
, you might need to putsudo -H
before that) - If you're moving from Kurisu or Robocop: Follow
Tips for people moving from Kurisu/Robocop
below. - Run
Robocop.py
(python3 Robocop.py
)
To keep the bot running, you might want to use pm2 or a systemd service.
Tips for people moving from Kurisu/Robocop
If you're moving from Kurisu/Robocop, and want to preserve your data, you'll want to do the following steps:
- Copy your
data
folder over. - Rename your
data/warnsv2.json
file todata/userlog.json
. - Edit
data/restrictions.json
and replace role names ("Muted"
etc) with role IDs (526500080879140874
etc). Make sure to have it as int, not as str (don't wrap role id with"
or'
).
TODO
All Kurisu/Robocop features are now supported.
List of added Kurisu/Robocop features
- .py configs
- membercount command
- Meme commands and pegaswitch (honestly the easiest part)
- source command
- robocop command
- Verification: Actual verification system
- Verification: Reset command
- Logging: joins
- Logging: leaves
- Logging: role changes
- Logging: bans
- Logging: kicks
- Moderation: speak
- Moderation: ban
- Moderation: silentban
- Moderation: kick
- Moderation: userinfo
- Moderation: approve-revoke (community)
- Moderation: addhacker-removehacker (hacker)
- Moderation: probate-unprobate (participant)
- Moderation: lock-softlock-unlock (channel lockdown)
- Moderation: mute-unmute
- Moderation: playing
- Moderation: botnickname
- Moderation: nickname
- Moderation: clear/purge
- Moderation: restrictions (people who leave with muted role will get muted role on join)
- Warns: warn
- Warns: listwarns-listwarnsid
- Warns: clearwarns-clearwarnsid
- Warns: delwarnid-delwarn
- .serr and .err (thanks tomger!)
Main goal of this project is to get Robocop functionality done, secondary goal is adding new features. The following entries are secondary, less "urgent" goals:
- Better security, better checks and better guild whitelisting
- New verification feature: Using log module from akbbot for logging attempts and removing old attempts
- New moderation feature: watch-unwatch (using log module from akbbot)
- New feature: Modmail
- New feature: Submiterr (relies on modmail)
- New feature: Highlights (problematic words automatically get posted to modmail channel, relies on modmail)
- A system for running tasks in background with an interval (will be called robocronp)
- New moderation feature: mutetime (mute with time, relies on robocronp)
- New moderation feature: timelock (channel lockdown with time, relies on robocronp)
- New moderation feature: Display of mutes, bans and kicks on listwarns (.userlog now)
- New moderation feature: User notes
- New moderation feature: Reaction removing features (thanks misson20000!)
- New moderation feature: User nickname change
- New self-moderation feature: .mywarns
- Remove sh, remove risky stuff from eval
Thanks to
- ReSwitched community, for being amazing
- ihaveamac and f916253 for the original kurisu/robocop
- tomGER for working hard on rewriting the .err/.serr commands, those were a nightmare
- misson20000 for adding in reaction removal feature and putting up with my many BS requests on PR reviews