22 Commits

Author SHA1 Message Date
Vgr E. Barry
cdaae22b2f Tell mypy to not care about user-defined modules 2016-08-12 13:11:10 -04:00
skizzerz
10f94de9b3 Initial work splitting off roles
For now, seer and wild child are done. There are some aspects of those
roles that are still incomplete, namely:
- sorcerer and alpha wolf handling of seer/oracle/augur is still in
  wolfgame.py instead of via events
- wild child does not modify !stats
2016-08-08 19:21:05 -05:00
skizzerz
957ab9a17a Begin work splitting roles into their own files 2016-08-08 18:42:40 -05:00
skizzerz
1b7b2f6799 Make discrimination based on case ilegel
All hostmask and account comparisons are now case-insensitive (nicks
still aren't, related to #217 -- changing nick sensitivity would break
everything in numerous places).

Also, refactor some things into other files where it makes sense to do
so, because putting unrelated things into the same commit is fun.
2016-07-27 17:03:34 -05:00
skizzerz
a6ea55a8fe Finish warning system
- fwarn/warn commands to view and manipulate warnings
- fstasis can now only decrease stasis, not add to it
- refreshdb command can sync bot game state with what is in the db
  (including expiring any unexpired stasis or warnings)
- stasis now expires
- tempban is still not implemented and will not be implemented as
  part of the PR (it will come later, if ever)
- sanctions can be automatically applied after warnings cross a
  certain threshold; some defaults are configured
2016-06-07 14:17:21 -05:00
skizzerz
2d2ce6483a Initial work on new schema and warning system
Still very WIP and not completed, bot likely doesn't even run.
2016-06-06 14:35:58 -05:00
skizzerz
6f83a909df Introduce proxies as a means of breaking circular import chains 2015-11-15 13:12:22 -06:00
nyuszika7h
2cf3bfe811 Remove useless DISABLE_DEBUG_MODE option
There is no point in this whatsoever; admins can do !frestart debugmode
but that cannot lead to privilege escalation as !eval and !exec are
owner-only and !fallow won't work on them either.
2015-11-13 20:19:51 +01:00
Vgr E. Barry
b28d4bf6e3 Properly fix the error handler 2015-11-04 12:41:47 -05:00
jacob1
55070fd44b add utilities.py, which contains some functions possibly needed by gamemode events
this also fixes it so priest death events finally happen
2015-10-30 17:03:54 -04:00
jacob1
651c46d6a5 don't stop the game on error 2015-10-03 22:46:02 -04:00
jacob1
4a471d39b1 fix error handler not displaying errors on startup 2015-09-18 00:02:40 -04:00
Vgr E. Barry
c37631e90c Update handling of game modes
This change moves the game modes into their own `src/gamemodes.py`, and
also allows setting game modes via `gamemodes.py`.
2015-09-09 09:57:41 -04:00
Emanuel Barry
b3f30bbd91 Improve error handler
Now it will only pastebin the error when it has finished gathering it
all.
2015-08-27 10:02:56 -04:00
Vgr E.Barry
3534cc7d78 Better handle non-built-in exceptions 2015-08-10 09:49:52 -04:00
Vgr E.Barry
d58a9249ab Update error handler to ignore non-errors 2015-08-10 09:09:33 -04:00
Vgr E.Barry
38b7ef81e2 Add proper error handling. Closes #151
All exceptions, if not caught, are unconditionally sent to `sys.stderr`.
We only need to use our own custom class with some modifications and we
can intercept all errors, even those in threads (which #151 was about).
The only real downside from this practice is that `cli` is not
accessible to us when the errors happen, so I used a hack to set it on
an instance variable. If anyone can find a better solution, please step
forward. For the time being, this will have to do.

If for some obscure reason this class breaks, `sys.__stderr__` holds the
original `sys.stderr`
2015-08-06 12:29:47 -04:00
nyuszika7h
dd2d82392d Reorganize imports 2015-06-15 15:20:27 +02:00
Vgr E.Barry
5c4dcec8e6 Remove \x02 from console and file output 2015-06-14 16:31:29 -04:00
nyuszika7h
599ad45544 Reorganize imports 2015-04-07 12:01:59 +02:00
Vgr E.Barry
0727fb317c Fix faulty import 2015-04-04 07:39:56 -04:00
Vgr E.Barry
378334478c Move files around and update references 2015-04-04 07:39:54 -04:00