Commit Graph

1071 Commits

Author SHA1 Message Date
skizzerz
21fc1f81c0 Fix error on attempting to warn with invalid expiration value 2016-10-28 17:19:12 -05:00
Vgr E. Barry
eef934c433 Custom keys can't fit in lykos. Tsk tsk @laneatomic 2016-10-28 14:37:17 -04:00
Vgr E. Barry
f3e1273dbc Add a new hooks.py file 2016-10-27 19:15:33 -04:00
Ryan Schmidt
af96a2544e Merge pull request #248 from lykoss/context-base-stuff
New IRCContext, Channel and User classes
2016-10-27 15:26:45 -07:00
Vgr E. Barry
317a5edab9 @skizzerz must *obviously* be an op! 2016-10-27 18:15:29 -04:00
nyuszika7h
5eba188607 Also fix idols when wild child itself changes nick 2016-10-27 20:49:56 +02:00
nyuszika7h
a0092b981f Update wild child's idol when they change nick
Closes #249.
2016-10-27 20:42:11 +02:00
Vgr E. Barry
349433c9ab Do a direct lookup for hostmasks for stasis. 2016-10-27 09:13:07 -04:00
Vgr E. Barry
2877abea55 Update as per @skizzerz's comments 2016-10-26 20:06:29 -04:00
skizzerz
430b73ef33 Re-do 85972db5 to not be utterly idiotic 2016-10-25 21:29:53 -05:00
Vgr E. Barry
85972db5b1 Update Event to allow arbitrary keyword arguments
Comments are on the same line as the possibly-failing line; if it fails,
the traceback will include that line (so it will be obvious what the
error is without looking at the source).
2016-10-25 21:25:33 -04:00
Vgr E. Barry
5ec273c6e0 New IRCContext, Channel and User classes
Right now these don't do anything, but in the future they will be how
we'll do channel and user handling.
2016-10-25 18:20:31 -04:00
nyuszika7h
0ad4af4240 Change !fstop back to require prefix
Per @skizzerz's comment on IRC, you're forcing the game to stop,
as it would also stop on its own when it ends normally.
2016-10-25 21:42:28 +02:00
nyuszika7h
281ac8e21e Don't require !f prefix for admin commands where unambiguous
I didn't change !fflags to !flags as it may be a good idea to add
a !flags command to allow users to view their own flags.
2016-10-25 21:07:47 +02:00
nyuszika7h
6ac05fb3e6 Make !update not pull if a game is running
The reason we defer pulling is because if an error happens before
restarting, the line numbers in the traceback may not reflect the
actual line numbers since the code has changed.
2016-10-25 17:49:10 +02:00
nyuszika7h
946e84cbd3 Add !update command 2016-10-25 17:00:50 +02:00
nyuszika7h
797d95fac8 Fixes to !fpull and !frestart 2016-10-25 16:38:46 +02:00
jacob1
1d664fae6b fix error when doing 'kill and', 'kill and 7' will try killing 'and' and '7' 2016-10-25 08:27:28 -04:00
jacob1
24c5e845d3 prevent bodyguard from guarding self, this shouldn't be possible 2016-10-24 23:04:02 -04:00
nyuszika7h
0580915150 Allow specifying lover wins with fool in !fgame roles 2016-10-24 17:25:51 +02:00
jacob1
430fa3c7c7 really fix role_attribution argument order in random 2016-10-22 22:16:56 -04:00
nyuszika7h
d0c19357df Fix wrong order of arguments 2016-10-22 17:59:21 +02:00
skizzerz
c2fd50a33e Fix piper !pass breaking the bot
Piper shouldn't be able to !pass anyway, so let's just remove that
entirely.
2016-10-20 16:47:26 -05:00
jacob1
ab8a05ac1b log errors to errors.log again 2016-10-19 21:01:41 -04:00
skizzerz
c8a5f804da Fix wolfteam VG killing protected people 2016-10-19 19:25:52 -05:00
nyuszika7h
684abf58b4 Minor code style fixes to previous commit
Making this a separate commit to avoid invalidating the PGP signature,
though it doesn't really matter for lykos anyway.
2016-10-19 21:48:41 +02:00
Lukas Martini
a6c6236e4f Stop start vote timer if player leaving is the only one who voted 2016-10-19 21:44:19 +02:00
skizzerz
55c70570af Switch param order of role_attribution event
Standardizing on first two params for event handlers to be cli, var
2016-10-18 21:56:56 -05:00
nyuszika7h
95133160ab Tell dullahan their role at night even if targets dead 2016-10-18 15:06:33 +02:00
jacob1
9c041e253c fix "you are a cursedtraitor"
also add tags support to all the other wolf roles in case we do that sometime
2016-10-15 22:16:35 -04:00
Ryan Schmidt
4e8f083dc2 Make !refreshdb expire stasis and tempbans
It was slightly annoying that there was no way to do this via a command. Should also have these expire if someone !quits to end a game, someone should work on that :)
2016-10-13 15:04:30 -07:00
Vgr E. Barry
6b9453afa1 Use more specific OS exceptions
Python 3.3 added some more specific exceptions for OS-related
operations, specifically to help mitigate this kind of hard-to-read
boilerplate. See
https://docs.python.org/3/whatsnew/3.3.html#pep-3151-reworking-the-os-and-io-exception-hierarchy
for reference.
2016-10-08 08:47:23 -04:00
nyuszika7h
36b5543d24 Remove !wiki title check as it is too restrictive
It didn't allow user pages or pages with disambiguation suffixes.
I think it's fine for it to just return "not found" for invalid titles.
2016-09-26 16:32:18 +02:00
Vgr E. Barry
925819e517 Remove stray cat from busy street 2016-09-26 07:11:12 -04:00
jacob1
5ef750aa2e Update !wiki to use the new wiki 2016-09-25 23:39:38 -04:00
skizzerz
2dac49f741 Fix dullahan spine whip breaking due to FA split 2016-09-25 19:39:52 -05:00
nyuszika7h
12edbdfb43 Make "!gstats <num>" also show total of all gamemodes
Also capitalized the role names and "Total wins" for consistency with
!pstats and upgraded the schema to create a new index for game lookups
without specifying the game mode.
2016-09-24 23:22:33 +02:00
jacob1
3ce7e1d72f fix error in !gamestats # 2016-09-24 15:31:46 -04:00
nyuszika7h
e0bf47c182 Make !gstats show totals for all game modes by default 2016-09-24 12:27:45 +02:00
skizzerz
810433b656 Revamp alpha
Make 10+ because it's pointless otherwise.

Revamp low counts because it was too punishing towards village, if they
made a single mistake then alpha could win with a successful bite. This
reduces overall wolf count making that situation more difficult (and
until crow joins in 12p requires that alpha turns a lycan before being
able to bite). Higher counts rejiggered a bit too to be a bit more
interesting, although may still need further adjustment.
2016-09-23 23:28:28 -05:00
skizzerz
bfc675e953 Split fallen angel
Also fixes some bugs with using stop_propagation instead of
stop_processing in events (the former does absolutely nothing).

Added a skeleton file to assist with adding new roles, contains the
needed imports on top and vim modeline on the bottom.

Yes, these are all related and need to go in the same commit, stop
throwing things at me.
2016-09-23 20:10:04 -05:00
skizzerz
9f21eb65c3 Fix gstats reporting 'foo wins' 2016-09-23 18:52:21 -05:00
nyuszika7h
5a20801209 Mention game mode in !gstats output
This is to make it clear that !gstats without arguments returns stats
only for the default game mode.
2016-09-23 15:14:27 +02:00
skizzerz
1bce120e1c Remove cursed and mayor from evilvillage
Both templates serve to make life miserable for village team, who
already have it rough as-is. Cursed makes it so that hunter's sole shot
misses half the time, and mayor makes it so that fakeclaiming has less
of a chance of working out (and wolf kills the fakeclaimer the next
night thus ending any confusion).
2016-09-17 13:29:17 -05:00
nyuszika7h
4ab6acee09 Always use pipe separator for notes in warning log
Warning reasons might contain parentheses so it may be ambiguous, and
deletions are already logged with the pipe character, which is also used
when setting the warning, anyway.
2016-09-15 15:20:41 +02:00
skizzerz
cc7138eb44 Fix cursed villager not being seen as wolf 2016-09-13 16:42:54 -05:00
skizzerz
01dfdc7ac4 Split blessed and cursed villager 2016-09-13 16:35:54 -05:00
skizzerz
f5d510374a Fix !warn ack duplicating stasis, remove !fquit warning 2016-09-13 10:55:52 -05:00
nyuszika7h
9ea822d7d8 Lowercase account in !fflags with single argument 2016-09-13 12:42:34 +02:00
skizzerz
0a763b64e5 Fix previous commit to ACTUALLY set the stasis 2016-09-12 23:42:42 -05:00
skizzerz
b23f17cd75 Delay stasis until warning is acked 2016-09-12 23:39:11 -05:00
skizzerz
cd9e436bc2 Fix error when VG is driven off by retribution totem
Error only manifests if it was a wolf-side VG, or if it was a
village-side VG and no wolf-side VGs also attempted to kill that person
(in other words, the VG was given lead credit for the kill).
2016-09-12 14:05:32 -05:00
nyuszika7h
01b7cea83c Use regular lowercase for hosts + minor code cleanup 2016-09-11 19:59:46 +02:00
nyuszika7h
037065b40c Don't let dead players with same account/host rejoin in maelstrom 2016-09-11 17:40:39 +02:00
jacob1
cae1df1423 Fix !swap and !fsync voicing players during night if DEVOICE_DURING_NIGHT is set 2016-09-10 23:28:20 -04:00
skizzerz
446d77b452 Split GA and bodyguard 2016-09-10 11:22:10 -05:00
skizzerz
87e8b57745 Adjust warnings track 2016-09-10 11:00:04 -05:00
nyuszika7h
ecbf32c9ad Add an explanatory message for pings after bot restart
Just like when a game is canceled due to taking too long to start,
although in this case players may notice that the bot restarted, it
doesn't hurt to make it clear to them.
2016-09-09 21:41:45 +02:00
nyuszika7h
21c3931b7b Reply in private at night if DEVOICE_DURING_NIGHT is on 2016-09-09 21:29:02 +02:00
skizzerz
0adee06b40 Fix voting mayor 2016-09-08 19:07:22 -05:00
nyuszika7h
20d5ede0f2 Fix !ftemplate 2016-09-08 22:07:00 +02:00
nyuszika7h
8dddd4c3b0 Move other nicks to be kicked to guest nick pattern 2016-09-08 22:02:45 +02:00
jacob1
f51833d4c4 fix error when day times out with a tie vote 2016-09-03 14:28:39 -04:00
skizzerz
0287b05bcd Split shaman
This has a number of related changes in other files due to needing to
re-prioritize events and fixing other bits of code to play more nicely
with split-off totems. Alpha wolf handling was moved after protection
handling because it should've been that way to begin with, and as part
of splitting off protection totem it needed to be split at the same
time. Same with fallen angel changes with how protection now adjusts the
killers lists.
2016-09-02 13:56:26 -05:00
nyuszika7h
8bd98b9e5c Make guest nick pattern configurable
Closes #247.
2016-08-29 00:55:51 +02:00
nyuszika7h
1082736d2e Check for actual guest nicks rather than anything starting with "Guest" 2016-08-27 17:11:17 +02:00
skizzerz
2dd19f3277 Fix death totems not triggering VG correctly 2016-08-26 13:19:19 -05:00
skizzerz
e816f4b436 Fix issue where sometimes the bot didn't recognize someone returning to the village 2016-08-25 21:47:54 -05:00
jacob1
2f0d299903 Fix !fwarn del log message, modify colors 2016-08-25 21:59:43 -04:00
skizzerz
b950060285 Fxi tpyo 2016-08-25 13:17:31 -05:00
nyuszika7h
67e6d086a2 Add support for CTCP TIME 2016-08-24 23:09:07 +02:00
skizzerz
55fa1cbb88 Fix error when wolves attack monster 2016-08-23 12:05:50 -05:00
skizzerz
cd0423deb0 Fix wild child 2016-08-21 21:11:12 -05:00
skizzerz
411d8a6509 Revert "Disable wild child in random"
This reverts commit b089a6eee8.
2016-08-21 14:10:43 -05:00
jacob1
b089a6eee8 Disable wild child in random
role is buggy, needs further testing
2016-08-21 15:09:14 -04:00
skizzerz
1fdd9250d6 Fix tempban sanction not working 2016-08-19 23:46:13 -05:00
skizzerz
ac78e46e91 Fix VG win attribution 2016-08-19 23:46:04 -05:00
jacob1
f222c9ab16 fix dullahan spine whip 2016-08-18 23:06:12 -04:00
jacob1
ead74e0fe5 log !fwarn add/set/del to LOG_CHANNEL, if set 2016-08-17 23:55:22 -04:00
skizzerz
3479b72ce7 Let mystic know of all unsplit special roles too 2016-08-17 17:22:00 -05:00
skizzerz
d5d30eb6ae Squash error on fdie/frestart
oyoyo already closes the socket as part of a finally block, we don't
need to also do that.
2016-08-17 17:14:53 -05:00
skizzerz
af2fef5ea9 Fix exchange totem not firing 2016-08-17 17:06:27 -05:00
skizzerz
ebb3bdccfb Split mystic/wolf mystic 2016-08-17 16:52:37 -05:00
skizzerz
32dc611acf Split detective 2016-08-17 16:07:01 -05:00
skizzerz
457feb92de Split off doomsayer's sickness too 2016-08-17 12:46:16 -05:00
skizzerz
f66a1502dc Split doomsayer 2016-08-17 11:46:40 -05:00
skizzerz
3eccf32765 Use a non-discriminatory variable name #WolfSphereLivesMatter 2016-08-16 10:34:16 -05:00
Vgr E. Barry
9333588126 Modify the decorators so that nicks may be used for commands
Also add framework so that custom roles can modify what roles are part
of a pack of tetrahedron wolves more easily, but no other part has been
done to help that.
2016-08-15 23:38:33 -04:00
skizzerz
2e11f67e7e Fix error when 2 people kill each other the same night 2016-08-15 21:22:08 -05:00
skizzerz
781c1bfb99 Rebuild indexes after schema updates
Also bump schema version to 4 to force a reindex
2016-08-15 21:10:03 -05:00
skizzerz
32f2a2eb2c Fix !stats for non-players 2016-08-15 19:41:45 -05:00
skizzerz
28ba8e2175 Fix missing import in warnings 2016-08-15 19:08:51 -05:00
skizzerz
b5571c82e0 split VG 2016-08-15 18:59:24 -05:00
Vgr E. Barry
fe4ccc3ca7 Add __all__ to src/utilities.py 2016-08-13 13:03:03 -04:00
Vgr E. Barry
6460eb6804 Define methods in IRCClient instead of using a decorator
Mypy doesn't like it.
2016-08-13 12:33:20 -04:00
Vgr E. Barry
273db4b553 Move local import globally
This used to be needed since there used to be a circular import. Guess
it's gone now!
2016-08-13 12:09:19 -04:00
Vgr E. Barry
ecec9bf4a8 Nice things are not allowed
Also imports should go below the module docstring.
2016-08-13 11:39:41 -04:00
Vgr E. Barry
cdaae22b2f Tell mypy to not care about user-defined modules 2016-08-12 13:11:10 -04:00
skizzerz
f96d73a8af Make commands that only work while playing fail silently if the person isn't playing 2016-08-11 22:36:37 -05:00
nyuszika7h
3f5e3fce78 Add syntax highlighting to the pastebin error URLs 2016-08-11 20:31:19 +02:00
skizzerz
052a2b2823 fix crow 2016-08-10 23:17:27 -05:00
skizzerz
23f27b088a Split dullahan
Also fix the del_player event to be more sane, and fix some suicide bugs
in hunter/vigilante kills.
2016-08-10 18:06:37 -05:00
Vgr E.Barry
10dff4a73d Tweak some seer's event listener 2016-08-10 18:08:41 -04:00
nyuszika7h
3f3b5bf1d7 Use ptpb.pw as pastebin with vanity IDs 2016-08-10 23:43:14 +02:00
skizzerz
35ad6c2766 Fix error in !stats introduced by RESTRICT_WOLFCHAT modifications 2016-08-10 15:29:22 -05:00
skizzerz
67f698a701 Add vigilante 2016-08-10 13:16:17 -05:00
skizzerz
ac2f28e6ed Fix totem display glitch in maelstrom 2016-08-10 12:56:48 -05:00
skizzerz
4011707c10 Finish up RESTRICT_WOLFCHAT settings
All settings are now fully armed and operational.
2016-08-10 12:46:46 -05:00
skizzerz
b25f6186ec Fix hunter autocomplete
Also make debugging easier by exposing src
2016-08-10 10:58:08 -05:00
skizzerz
09d90fd7e2 Revert "Revert last 3 commits - broken code"
This reverts commit 5e91556426.
2016-08-10 10:40:47 -05:00
nyuszika7h
5e91556426 Revert last 3 commits - broken code 2016-08-10 16:29:46 +02:00
skizzerz
8e02e5933b Split hunter 2016-08-09 21:52:58 -05:00
skizzerz
97c0981e2a Split off wolf (WIP) 2016-08-09 17:10:56 -05:00
skizzerz
3855c54c35 Split villager/cultist 2016-08-09 12:44:30 -05:00
skizzerz
eb64f5dc45 Only check silence for role commands, and only after they have the right role 2016-08-09 12:44:30 -05:00
Vgr E.Barry
cd11ace8a2 Tweak reset listeners 2016-08-09 12:10:46 -04:00
nyuszika7h
6b90e52aef Add another gif 2016-08-09 11:30:59 +02:00
skizzerz
215bc7d241 Fix myrole issue 2016-08-08 21:45:43 -05:00
Ryan Schmidt
672c01ef96 flog ALL the errors 2016-08-08 18:44:10 -07: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
jacob1
f9c4ef6b28 don't allow users not in the channel to run commands 2016-08-08 18:48:23 -04:00
Ryan Schmidt
f8d953f8ab Don't reply on bad invites
DDoS vector
2016-08-08 15:29:31 -07:00
jacob1
05fbedd0e2 Fix sql syntax error when setting stasis 2016-08-06 12:39:25 -04:00
jacob1
75b386917e Fix var.CASEMAPPING error during db upgrade 2016-08-06 12:38:59 -04:00
nyuszika7h
fe9877f471 Restore OrderedDict hack, still needed in 3.3 2016-08-05 22:07:22 +02:00
Vgr E.Barry
f38735d5a1 Allow everyone dying in {rapid,drunk}fire to make them all win
I could have avoided the two-liner in src/wolfgame.py, but it's much
more cleaner that way, even if it's not in src/gamemodes.py

To have the code in src/gamemodes.py means we'd have duplicated code
(and thus increased the chance of random bugs, as well as maintenance
burden). And practicality beats purity.
2016-08-03 14:12:47 -04:00
Vgr E.Barry
b76b214374 Roll back the 3.2-compatibility hack with OrderedDict.keys 2016-08-03 14:10:27 -04:00
Vgr E.Barry
5b22bdd18a Prevent winners duplication in stop_game 2016-08-03 14:09:38 -04:00
Vgr E.Barry
5db2a5d0f2 Fix local variable name clashing with global function 2016-08-03 12:07:28 -04:00
Ryan Schmidt
cd3f9fc345 Add tempban sanction (#238)
Can be either time-based or points-based. Also, made fwarn a bit smarter
at guessing what the user actually wanted to do based on the parameters
given to it. Warnings now always require acknowledgement, because that
paves the way for a future commit only beginning stasis once a warning
is acknowledged.

Warnings also split off into their own file to declutter wolfgame.py a
bit (now only 9k lines, wooooo! >_>)

Does not play nice with eir, that functionality isn't going to be in the
bot itself but rather some custom code in lykos (hooking into privmsg).
2016-08-02 17:57:09 -04:00
nyuszika7h
c3698539c1 Revert "Don't show villagergame in !help game"
This reverts commit 7de19cd7a6.
2016-08-01 16:46:00 +02:00
nyuszika7h
cd13f8626d Fix turncoat side display bug 2016-08-01 16:45:07 +02:00
nyuszika7h
7de19cd7a6 Don't show villagergame in !help game 2016-07-31 11:29:55 +02:00
skizzerz
700ccc2629 Revert nobody wins to allow non-team wins to happen, fix messages 2016-07-28 18:22:22 -05:00
skizzerz
b8aef06ba7 Fix "nobody wins" to actually mean nobody wins
Before a winner of "" indicated abnormal game stop, so it wasn't logged;
add a new log parameter to account for those so we can free up "" for
games wherein nobody should win but the game should still be logged.
Also make the everyone dying condition use that.
2016-07-28 16:35:43 -05:00
Vgr E. Barry
616bcf624f Fix invalid name 2016-07-28 16:02:57 -04:00
skizzerz
f3eef86db5 Fix casing (again) 2016-07-28 11:36:36 -05:00
nyuszika7h
965e0481ec Remove redundant ALPHA_WOLF_NIGHTS definition for random
Alpha's target now turns immediately, this variable was not being used
by the code anymore.
2016-07-28 10:39:43 +02:00
skizzerz
598c994e43 Allow Iciloo to successfully !vote alpha 2016-07-27 23:22:14 -05:00
skizzerz
e95fb49a70 Really fix pre_restart_state for real for real (once more, with feeling) 2016-07-27 23:09:46 -05:00
skizzerz
3fcfa83c43 Really fix pre_restart_state (for real this time) 2016-07-27 23:07:29 -05:00
skizzerz
45930c3ffd <insert commit message here> 2016-07-27 23:05:14 -05:00
skizzerz
e6b6383b45 rejigger fdie too 2016-07-27 23:01:28 -05:00
Vgr E. Barry
ebaca56c92 Improve string formatting 2016-07-27 23:49:55 -04:00
Vgr E. Barry
0cd5c9dd7c Fix syntax error 2016-07-27 23:48:00 -04:00
skizzerz
218d01088d wat 2016-07-27 22:47:26 -05:00
skizzerz
e47a348f22 Remove old db calls 2016-07-27 22:45:43 -05:00
skizzerz
0c0268e1b7 Report overall winrate 2016-07-27 21:37:37 -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
862111be9e I'm the best at space 2016-07-27 11:45:45 -05:00
skizzerz
b5ae34804d Make 0 point warnings no-op 2016-07-27 11:42:22 -05:00
Ryan Schmidt
22aa7af5c6 Merge pull request #235 - Schema upgrade by skizzerz
Fix FK deferrable status, ensure that FKs are always enforced in the
bot, and redo how fool wins are stored/tracked. Drop unneded table.
2016-07-27 12:38:23 -04:00
nyuszika7h
0caaba9152 Make !refreshdb reply with "Done." 2016-07-26 23:26:39 +02:00
nyuszika7h
73f99b4ae4 Use separate warning for /quit than for /part 2016-07-26 22:32:57 +02:00
jacob1
dc1b1e7f6a add back DISABLED_GAMEMODES
can be used by bot operators to disable & hide a gamemode entirely
2016-07-25 00:06:38 -04:00
skizzerz
265a1cc442 Revert "Clearly indicate not enough players for game mode"
This reverts commit aedf39efce.
See comment in github on that commit for reasoning.
2016-07-22 21:45:15 -05:00
jacob1
89b38794e1 fix !swap, blame nyuszika7h
don't remove all the returns in the sanity checks
2016-07-22 20:36:20 -04:00
jacob1
bc8e7e6da1 fix !revealroles working during games 2016-07-22 20:26:37 -04:00
nyuszika7h
aedf39efce Clearly indicate not enough players for game mode 2016-07-22 23:58:26 +02:00
nyuszika7h
db519a6827 Notice players instead of silence when already voted game mode
This accidentally ended up partially being in an earlier commit, but now
here it is...
2016-07-22 10:36:44 +02:00
skizzerz
b556e74fd8 Revert "Fix use of chan where not defined"
This reverts commit 4301ba4c48.
2016-07-21 22:03:00 -05:00
skizzerz
e14c3f1d9c Make alpha bite turn target immediately
RIP long bitten messages, you shall be missed :(
2016-07-21 18:20:29 -05:00
skizzerz
07e3018d06 Fix 4301ba4 properly 2016-07-21 17:05:38 -05:00
nyuszika7h
4301ba4c48 Fix use of chan where not defined 2016-07-21 23:56:44 +02:00
nyuszika7h
7c7facdd7d Fix commit e04410e
I don't know when I wrote that code...
2016-07-21 23:22:46 +02:00
skizzerz
d45a54179b alpha wolf QoL adjustments
- alpha wolf can now both bite and kill during the same night
- any wolf death (instead of just one during day) is counted towards
  activating alpha wolf
- fix role message to be more in line with other wolfteam messages
2016-07-21 16:17:12 -05:00
nyuszika7h
bc9f27c6d5 Don't require -force for !fdie and !frestart in debug mode 2016-07-21 23:07:01 +02:00
nyuszika7h
e04410ecaa Ignore !notice in PM if called with arguments
This command is sometimes accidentally called in wolfchat by a message
starting with "notice". It doesn't take any arguments anyway.
2016-07-21 23:03:09 +02:00
nyuszika7h
b6d07a9707 Simplify code to use reply() where possible 2016-07-21 23:03:09 +02:00
skizzerz
81263bd822 Fix guardian winconds; now a game will always end with a team winning 2016-07-21 14:05:28 -05:00
nyuszika7h
d59f2ec4a8 Use reply() in !warn/!fwarn instead of hardcoding cli.notice() 2016-07-18 10:28:13 +02:00
Ryan Schmidt
dd05f5e6d8 make MS always skip over dead players in rapidfire 2016-07-16 23:29:32 -07:00
skizzerz
00bf10f6c0 Fix giving warnings to new players 2016-07-16 22:55:56 -05:00
skizzerz
d2dc4d2deb Remove care/kill color/bold/startspam settings 2016-07-16 22:48:18 -05:00
skizzerz
9d827b95be I hate python 2016-07-11 15:34:05 -05:00
nyuszika7h
e2469c342f Make !ping actually goat the user when they win a goat 2016-07-09 10:32:29 +02:00
Ryan Schmidt
8aede6d01d Let's go with NOT trying to be clever 2016-07-07 12:28:32 -07:00
Ryan Schmidt
f6f05db7cc Disable succubus in maelstrom 2016-07-06 14:14:49 -07:00
skizzerz
7a0c9b87e1 Expiration date fixes for fwarn
- Always use UTC (time issued was already UTC, but expiration was not)
- Remove some duplicate code about parsing expiration date
- Round dates to the nearest minute
2016-06-28 12:53:10 -05:00
nyuszika7h
f8ed5c7dbd Fix pluralization of warning points 2016-06-28 10:30:20 +02:00
skizzerz
137408d1f4 Allow # in front of warning numbers for warn view/ack 2016-06-26 12:42:59 -05:00
skizzerz
454afca1b3 Various fixes
- fflags no longer says things were modified on account "*" when they
  weren't
- don't give an autowarning on kick anymore; if an op is kicking chances
  are they'll be giving their own warning anyway
- attempt to make a backup copy of the database before migrating to new
  schema
2016-06-26 12:37:22 -05:00
nyuszika7h
e83e6caac3 Remove bureaucrat
Closes #220.
2016-06-23 22:20:33 +02:00
skizzerz
9009304db0 fix fwarn list 2016-06-22 00:08:01 -05:00
skizzerz
ef4e60bc37 Make fwarn +F instead of +A since it can be used to deny commands 2016-06-21 23:51:52 -05:00
skizzerz
c6bd24aea7 Fix fool wins and auto warning expirations 2016-06-21 23:10:19 -05:00
skizzerz
7980b13ba4 Add missing warning messages 2016-06-21 22:02:09 -05:00
skizzerz
79614a0719 Use thread-local storage to hold sqlite connection 2016-06-21 17:02:18 -05:00
Ryan Schmidt
c08cd3efbc Merge pull request #225 from lykoss/newdb
- new schema, including stats tracking
- 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
- fflags/ftemplate for permissions revamp
2016-06-21 13:28:18 -07:00
skizzerz
79c70fdeb3 Adjust messages 2016-06-20 13:44:09 -05:00
skizzerz
16a0a28e36 Re-add botconfig.ADMINS and ADMINS_ACCOUNTS
Still considered legacy/backwards-compat code, so giving out +F flags
should be preferred, but now wildcard admins are possible again.
2016-06-14 17:05:05 -05:00
skizzerz
1bf468224e Update syntax descriptions 2016-06-14 16:47:13 -05:00
skizzerz
b39828be7f Remove !join
bug. Now it should actually work even if the user has no warnings.
Also don't list expired/deleted warnings as unacknowledged.
Warning expiration can now be modified via !fwarn set, and the default
expiration is now 30d instead of never (never can be manually specified
along with a handful of aliases that mean the same thing).
2016-06-14 12:02:54 -05:00
skizzerz
2f62c4a867 Fix some embarassing typos 2016-06-13 16:40:57 -05:00
skizzerz
adea98e3ed Fix some derps
Need to move module init code after the functions it calls, also forgot
the sanction definitions for 11-14 points.
2016-06-12 23:03:47 -05:00
Vgr E. Barry
75447310f3 Tweak definition of is_fake_nick
Doesn't change much, just avoids compiling a regex pattern everytime,
and it only calls one function.
2016-06-12 14:37:33 -04:00
skizzerz
2151df4fef Add !fflags and !ftemplate
These allow for access control, and work pretty much exactly like they
do in atheme's ChanServ (the /cs flags and /cs template commands).

Also remove unused things from botconfig.py.example.
2016-06-07 17:02:12 -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
bba5ab745e Make bot run and fwarn partially work 2016-06-06 18:59:28 -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
nyuszika7h
9ea9a1a317 Fix modelines in other files 2016-05-11 16:09:19 +02:00
Ryan Schmidt
6c166d4fb0 meow
Add !cat command, a la !coin and !pony. Because we really needed another
one and because kitties are adorable.
2016-05-10 16:17:45 -07:00
Ryan Schmidt
fe451962cd Fix spurious error when ending night as shaman and dying.
An artifact of how we run commands means that we try to run the rest of
the "give" command handlers even after the first (shaman) one ended night.
As such, check the phase and if it's different, stop trying to execute
command handlers.

This has a small race condition where the error this fixes can happen
anyway, but since it's purely a visual error I think that's fine. Better
than happening all of the time, at least.
2016-05-10 15:37:57 -07:00
nyuszika7h
accd75cfaf Changed winner = "none" to "no_team_wins" 2016-05-01 20:43:48 +02:00
Ryan Schmidt
6bc2d40a64 Use defaultdict for event callback lists 2016-05-01 10:51:17 -07:00
nyuszika7h
108fe19278 Skip quit safeguard for Ctrl-C in console 2016-04-30 22:42:12 +02:00
nyuszika7h
1f0a1e1303 Add a safeguard to !fdie and !frestart when a game is running 2016-04-19 16:16:59 +02:00
nyuszika7h
4ecfead19e !stasis: Use reply() 2016-04-19 15:50:51 +02:00
nyuszika7h
dfb23a1892 reply(): Add prefix_nick option
This will prefix the nickname of the user if the bot replies in-channel.
2016-04-19 15:49:54 +02:00
nyuszika7h
44ca368724 Add !stasis command to view amount of stasis you have without joining 2016-04-19 13:54:57 +02:00
Vgr E. Barry
a65b371111 Blacklist wild child from maelstrom 2016-04-18 22:50:35 -04:00
nyuszika7h
29d2a1f83e Add an option for the pony to land on the tosser 2016-04-16 15:34:06 +02:00
Ryan Schmidt
f564a7a01e Don't rename functions, ever. 2016-04-11 12:44:30 -07:00
nyuszika7h
7fa7f8564f Pony tweaks 2016-04-10 22:10:47 +02:00
Vgr E. Barry
7fc0ab9f39 Fix missing message
Also remove some useless parens
2016-04-10 12:14:49 -04:00
Vgr E. Barry
952081d300 Make oracle not see through wild child's disguise 2016-04-09 17:11:07 -04:00
Vgr E. Barry
f8e1d96994 Make !myrole tell the wild child who their idol is 2016-04-09 17:05:02 -04:00
Vgr E. Barry
7b2cc43a50 Run, Forrest, Run! 2016-04-09 16:57:11 -04:00
Vgr E. Barry
4d03ed03cf Spread out "give" to the commands 2016-04-09 14:08:02 -04:00
Vgr E. Barry
e8aff5d0c3 Small change to allow stacking of cmd decorators 2016-04-09 14:07:39 -04:00
Ryan Schmidt
d9b5c0fd55 Don't add extra cursed to villagergame 2016-04-08 14:53:29 -07:00
Bryce Roesner
71ff8c34e8 Notify players in deadchat when the game ends 2016-04-07 20:50:56 +02:00
jacob1
4d480e32c6 ensure player is added to var.PLAYERS upon midgame join in maelstrom
fixes wolfchat / !simple / maybe other stuff
2016-04-06 22:55:07 -04:00
nyuszika7h
1aa18af5cb Tell players to use !join if they try to !start when no game is running 2016-04-06 18:31:44 +02:00
Ryan Schmidt
949fe168bf Fix villagergame to actually make nobody win if they fail 2016-04-06 09:24:55 -07:00
Ryan Schmidt
63e6c7eab5 Kill var.WOLF_GUNNERS with fire
Wolf gunners are now added to var.GUNNERS. To facilitate !revealroles,
they are also automatically given the gunner template if they were not
already a gunner or sharpshooter (otherwise their bullet count was not
listed in !revealroles, although night role messages and !myrole worked
just fine).
2016-04-05 22:40:37 -07:00
Ryan Schmidt
2973decce8 aleatoire balance tweaks
12p aleatoire was too heavily skewed towards wolves, while 14+ was heavily
skewed towards village. The following changes hope to rectify this
(although there probably isn't enough for 14+ to be fixed yet).

- Guardian Angel moved from 13p to 12p
- 2nd Assassin moved from 12p to 13p
- Bureaucrat removed
- Turncoat replaces Lycan at 14p
2016-04-05 22:03:00 -07:00
io
4e41dfe47a Add CTCP VERSION support 2016-04-04 16:18:04 -07:00
jacob1
5108822594 use var.GAME_PLASES for reply() in utilities.py 2016-04-03 22:47:28 -04:00
jacob1
db43486fa8 make sure admins always prints to alternate channels even when a game is running 2016-04-03 22:26:53 -04:00
skizzerz
4f1d9d8920 One slipped through 2016-04-01 10:40:12 -05:00
skizzerz
b369a0d4b3 Nothing to see here, move along. 2016-03-31 23:46:43 -05:00
Ryan Schmidt
c32b9031d3 Make use of botconfig vars for chanserv
Missed these the first time around...
2016-02-26 14:49:55 -07:00
nyuszika7h
602c99a6ff Detect op status on joining empty channel 2016-02-26 22:39:28 +01:00
Ryan Schmidt
73030424cd Blacklist monster and demoniac in maelstrom 2016-02-25 15:13:57 -07:00
skizzerz
8a49977318 Derp 2016-02-19 16:41:40 -06:00
skizzerz
6fff851350 Add event framework to allow for injecting phases 2016-02-19 15:54:02 -06:00
skizzerz
f0663d7aa4 Add var.GAME_PHASES to track when a game is in progress instead of hardcoding night/day 2016-02-19 15:04:26 -06:00
Ryan Schmidt
997b2c3c89 Default balance fix
12p default is horribly skewed towards wolves (11 and 13 are pretty well balanced though), move det from 13p to 12p to combat this
2016-02-17 16:25:44 -07:00
Vgr E. Barry
05bab1d83f Fix ALL THE THINGS 2016-02-11 13:55:25 -05:00
Vgr E. Barry
fb3e7eb8b6 woof 2016-02-11 13:26:23 -05:00
Vgr E. Barry
beb5ffd54c derp 2016-02-11 13:26:15 -05:00
Vgr E. Barry
edb9df50ea Fix error when lynching person with revealing totem 2016-02-11 12:00:04 -05:00
Vgr E. Barry
4a969f729a Fix nicks not being tracked in join phase 2016-02-09 15:25:11 -05:00
Vgr E. Barry
a10f6052a6 Track players nicks after death
Prevents horrible breakage in maelstrom
2016-02-09 12:16:29 -05:00
skizzerz
610874c5a1 Fix chained deaths on lynch and also prophet 2016-02-08 17:37:48 -06:00
skizzerz
c4cfbfca83 Prophet QOL improvements
- Redo prophet messages so that they don't split into multiple lines
- If prophet never reveals, don't bother making them pray twice
- Split prophet messages into different messages based on reveal setting
  instead of putting it together piecemeal -- this allows for easier
  customization/translation down the road.
2016-02-08 09:40:49 -06:00
nyuszika7h
00e976d1e0 Notify players in PM if they part the channel during a game 2016-02-08 08:47:01 +01:00
skizzerz
fc815c1549 Fix midgame role attribution in maelstrom 2016-02-05 21:53:29 -06:00
skizzerz
48b5db2d9c Maelstrom fixes
- Don't allow dead players to re-join
- Don't end game via a midgame join (e.g. ensure that numbers are good
  after the join)
2016-02-03 23:11:58 -06:00
skizzerz
805ee7e18a Fix mm being able to be assigned n2+ in mael 2016-02-03 22:10:38 -06:00
skizzerz
dbad8d1f09 Part 2 of 2
And as thus we sat in darkness,
Each one busy in his prayers,
“We are lost!” the captain shouted,
As he staggered down the stairs.

But his little daughter whispered,
As she took his icy hand,
“Isn’t God upon the ocean,
Just the same as on the land?”

Then we kissed the little maiden,
And we spoke in better cheer;
And we anchored safe in harbor
When the morn was shining clear.
2016-02-03 22:04:29 -06:00
skizzerz
69f72499ef Make frole only work during game 2016-02-03 20:30:15 -06:00
skizzerz
abc90530d8 Partial revert of 56827a2, rm unneeded (and horrific) code 2016-02-01 21:05:01 -06:00
jacob1
32db6b131d allow using !gstats in alternate channels while a game is going on elsewhere 2016-02-01 20:54:47 -05:00
jacob1
56827a2ce2 lycan balance adjustments
lycan#2 moved down from 10 to 9p
wolf#2 swapped for wolf shaman
GA swapped for bodyguard
2016-02-01 20:54:15 -05:00
skizzerz
6738acc82c Add disabled-by-default start spam killer
Like the color/bold killers, this can be configured to kick people if
they spam !start while it is being ratelimited for them.
2016-02-01 17:32:02 -06:00
skizzerz
f3a7be45d4 Relay wolf shaman and do prefix hiding in wolfchat
Commands starting with ! will no longer be relayed regardless of if one
is in wolfchat or deadchat. All wolf roles that issue commands now have
their commands properly relayed, so hiding commands this way isn't
really any issue.
2016-02-01 10:33:43 -06:00
skizzerz
344b7b108b Don't time out night if dullahan can't do anything 2016-01-29 13:48:21 -06:00
skizzerz
587b03a970 Fix lingering entries in var.ORIGINAL_ROLES due to roleswaps in maelstrom 2016-01-27 21:45:19 -06:00
skizzerz
29e5873104 Don't show original roles in maelstrom in listings 2016-01-27 21:31:32 -06:00
skizzerz
3f9bf7468b Fix clone taking on the role of someone when they're also dying
This only happens for simultaneous deaths (e.g. night deaths), as
chained deaths are resolved in a fashion that makes it impossible for
the clone to know he is also dying until after he inherits the new role.

Closes #214
2016-01-27 21:15:20 -06:00
skizzerz
16a8a86e4a Persist templates in maelstrom 2016-01-14 17:46:50 -06:00
skizzerz
b29701782f Maelstrom fixes
- Correctly assign random roles upon game start
- Let people know if they're villager/cultist or whatever even on nights
  2 and beyond
2016-01-14 01:08:49 -06:00
jacob1
7de3fbb324 ok, I actually tested the fix this time (fix maelstrom) 2016-01-13 23:50:02 -05:00
jacob1
6bbd4b0ae1 Fix error with maelstrom game mode
Tested about as much as woffle apparently tested originally
2016-01-13 23:44:09 -05:00
skizzerz
6e22cd860c Part 1 of 2
We were crowded in the cabin;
Not a soul would dare to sleep:
It was midnight on the waters,
And a storm was on the deep.

’Tis a fearful thing in winter
To be shattered by the blast,
And to hear the rattling trumpet
Thunder, “Cut away the mast!”

So we shuddered there in silence,
For the stoutest held his breath,
While the hungry sea was roaring,
And the breakers threatened death.
2016-01-13 22:07:51 -06:00
skizzerz
9d8f77c1e1 Fix stasis messages (both display for adding stasis as well as internal message keys) 2016-01-11 22:56:04 -06:00
skizzerz
281beda634 Fix wonky message ordering if a lynch is forced 2016-01-11 19:14:42 -06:00
jacob1
9f64b13489 fix crash when trying to !swap to someone not in var.USERS (fake nicks in debug mode) 2016-01-02 01:21:45 -05:00
jacob1
9ef0696da8 fix minor issues preventing pull request #184 from being merged, closes #184 2016-01-02 01:16:34 -05:00
William Maduno | Diitto
f552a6e86e Fixes #184 (!swap, when targeting someone, should be case insensitive) 2016-01-02 01:10:02 -05:00
jacob1
00ddf27e23 fix crash when trying to fstart 4/5p random games, fixes #181 2016-01-02 00:51:51 -05:00
jacob1
cd8a3de8b3 fix being unable to join fake players in debug mode
It said they were in stasis for -1 games ... This change should only affect fake nicks, since if the user isn't in var.USERS they can't join anyway
2016-01-02 00:25:19 -05:00
jacob1
356368d7bb fix idle players not having loss logged in stats (they aren't in var.DCED_PLAYERS) 2016-01-02 00:11:15 -05:00
Ryan Schmidt
0250f59fed Fix deceit totems not canceling out properly for seer
If both seer and target have deceit totem, the result should be printed normally (e.g. the totems cancel out). They were not doing that previously, as it would route all non-village non-wolf roles into villager (e.g. harlot -> villager). Let's fix that.
2015-12-31 15:36:40 -07:00
Ryan Schmidt
48547972e9 Make is_user_stasised return a truthy value if the user is not found
This ensures that code paths that should not be run if the user is stasised are not run if we don't know the user's status. Generally we don't know the user's status because they are not in the main channel, and therefore allowing them to effectively bypass stasis by not being around is a bad thing. We return -1 to differentiate between actual stasis, and because -1 is still True when cast to boolean. This may have the effect of giving some very odd-looking error messages but that's a very minor issue.
2015-12-31 15:06:19 -07:00
Ryan Schmidt
8a71c839a9 Increase night timer for valentines 2015-12-29 14:01:09 -07:00
skizzerz
8845dd8d7c Revert "Fix issue with !quit at the beginning of the game"
This reverts commit b342c6c53e.
2015-12-27 22:53:49 -06:00
Vgr E. Barry
b342c6c53e Fix issue with !quit at the beginning of the game 2015-12-27 23:23:40 -05:00
Ryan Schmidt
57e5aec9cd Increase quit grace time to 60s
Rejoining an IRC server after quitting can take a bunch of time for slow connections or if a lot of channels are to be joined. Additionally, quits could be indicative of temporary internet issues, want to make sure we give sufficient time to reconnect in case of a DHCP lease expiring or whatnot.
2015-12-20 14:54:22 -07:00
Vgr E. Barry
a5c9541543 Make sure handle_error(im) is failproof 2015-12-13 10:32:58 -05:00
jacob1
06cea36c97 fix typo causing error when you abstain after previously abstaining another day 2015-12-06 15:35:40 -05:00
Ryan Schmidt
81da5cb789 Merge pull request #202 from lutoma/hide-deadchat-commands
Hide commands in deadchat
2015-12-04 07:09:21 -07:00
Lukas Martini
2ef78a9783 Hide commands in deadchat 2015-12-04 08:33:44 +01:00
Lukas Martini
b8b61a0c8d Only allow retracting start votes in the main channel 2015-12-04 04:22:18 +01:00
Vgr E. Barry
548d212435 Fix 'random' not keeping template ordering 2015-12-02 08:38:08 -05:00
nyuszika7h
c6a5cea715 Log connection, end of MOTD and joining channels in normal mode 2015-11-27 17:37:04 +01:00
jacob1
d72eadf34f fix players not becoming unentranced if succubus dying ends game 2015-11-25 18:59:16 -05:00
Ryan Schmidt
99c8845118 Merge pull request #198 from lykoss/wolf-shaman
Add the new wolf shaman
2015-11-23 17:47:17 -07:00
Vgr E. Barry
c47a84d058 Add the wolf shaman role 2015-11-23 19:36:02 -05:00
skizzerz
32d91ec3a4 Enable team stats for random (sometimes) 2015-11-23 18:27:08 -06:00
skizzerz
747249991e Add botconfig.OWNERS_ONLY_COMMANDS to further restrict commands 2015-11-16 12:11:52 -07:00
jacob1
be4421dd59 fix fquit "not_playing" message 2015-11-16 10:56:23 -05:00
jacob1
cd44f2384f !frole: add to ORIGINAL_ROLES or FINAL_ROLES to fix end of game output 2015-11-16 10:51:43 -05:00
jacob1
3fd1360fed fix !stats for wolves in PM being out of order
should be in player join order, not randomly shuffled
2015-11-16 10:17:45 -05:00
skizzerz
debf9c78ff Horrible hacky error fix to make pm available in proxy/decorators 2015-11-15 18:42:20 -06:00
Vgr E. Barry
c24ae0bb8f Make deadchat preferences actually matter
derpidy derpidoo da
2015-11-15 19:24:59 -05:00
Vgr E. Barry
aa1af8dea8 Fix debug logging of totems. Closes #196 2015-11-15 19:24:33 -05:00