Skip to content
Discord Bot for Moderation and Nintendo Switch Hacking - Komet C(rash) L(anding)
Python
Branch: master
Clone or download
#8 Compare This branch is 42 commits ahead, 29 commits behind reswitched:master.
Latest commit 33a97a4 Aug 19, 2019

README.md

Robocop-ng

Next-gen rewrite of Kurisu/Robocop/Komet bot used by AtlasNX, ReSwitched and Nintendo Homebrew with discord.py rewrite, designed to be relatively clean, consistent 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 to config.py, configure all necessary parts to your server.
  • Install python3.6+.
  • Install python dependencies (pip3 install -Ur requirements.txt, you might need to put sudo -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 to data/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 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!)


The main goal of this project, to get Robocop functionality done, is complete.

Secondary goal is adding new features:

  • Purge: On purge, send logs in form of txt file to server logs
  • New feature: Modmail
  • New feature: Submiterr (relies on modmail)
  • Feature creep: Shortlink completion (gl/ao/etc)
  • New moderation feature: timelock (channel lockdown with time, relies on robocronp)
Completed features

  • Better security, better checks and better guild whitelisting
  • Feature creep: Reminds
  • A system for running jobs in background with an interval (will be called robocronp)
  • Commands to list said jobs and remove them
  • New moderation feature: timemute (mute with time, relies on robocronp)
  • New moderation feature: timeban (ban with expiry, relies on robocronp)
  • Improvements to lockdown to ensure that staff can talk
  • 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 moderation feature: watch-unwatch
  • New moderation feature: tracking suspicious keywords
  • New moderation feature: tracking invites posted
  • New self-moderation feature: .mywarns
  • New feature: Highlights (problematic words automatically get posted to modmail channel, relies on modmail)

TODO for robocronp

  • Reduce code repetition on mod_timed.py
  • Allow non-hour values on timed bans

the following require me to rethink some of the lockdown code, which I don't feel like

  • lockdown in helper
  • timelock command
  • working cronjob for unlock


Credits

Robocop-NG is currently developed and maintained by @aveao and @tumGER. The official bot is hosted by @yuukieve.

I (ave) would like to thank the following, in no particular order:

  • Ave, writing most code
  • ReSwitched community, for being amazing
  • ihaveamac/ihaveahax and f916253 for the original kurisu/robocop
  • misson20000 for adding in reaction removal feature and putting up with my many BS requests on PR reviews
  • Everyone who contributed to robocop-ng in any way (reporting a bug, sending a PR, forking and hosting their own at their own guild, etc).
You can’t perform that action at this time.