Commit Graph

799 Commits

Author SHA1 Message Date
nyuszika7h
2c3aafc101 Improvements to !rules
* RULES is now not defined in settings.py, only in botconfig.py.

* If there are no rules specified, a default message is shown
  instructing users to configure it.

* The "#CHANNEL channel rules: " prefix is now automatically prepended
  (skipped if the string already contains that,
  for backwards-compatibility).

* The prefix and the no-rules message can be customized
  as they are in messages.py now.
2016-11-13 11:54:48 +01:00
skizzerz
64e6a90921 *hic*
Make doctor immunize work against doomsayer sickness and pestilence
totem
2016-11-12 23:46:45 -06:00
jacob1
cd118dbabe allow werecrow to both observe and kill at the same time 2016-11-07 20:52:58 -05:00
jacob1
fde2ce94db fix bot pinging fake players after !fstop 2016-11-05 11:13:35 -04:00
jacob1
5d0021de7d fix possible error when setting flags on users 2016-11-05 00:21:15 -04:00
nyuszika7h
e4f696abe6 Fix villagergame appearing above 9p
In join phase, var.PLAYERS is empty, so var.ALL_PLAYERS needs to be
checked instead.

(While I'm at it, changed it to <= 9 rather than < 10, just for
consistency with the rest of the code.)

Fixes #263.
2016-11-04 21:45:29 +01:00
jacob1
f101c62af8 Fix !fflags +j overwriting flags when account name is uppercase, fixes #254
Also allow setting flags on players that haven't played any games
2016-11-03 22:06:13 -04:00
skizzerz
341cce6a8f Split mayor
Also adjust revealing totem so that it always fires after mayor, in case
someone has both. Before it would depend on the order the files were
imported, which could lead to oddities down the road.

This fixes #256
2016-11-03 16:29:15 -05:00
Vgr E. Barry
a6424605ad Fix error when bot restarting and players were joined
AKA name error
2016-11-03 11:35:17 -04:00
Vgr E. Barry
cce2797e7b Fix name 2016-11-03 11:29:03 -04:00
Vgr E. Barry
851cebdbd7 Remove test function
Oops.
2016-11-03 11:26:39 -04:00
Vgr E. Barry
d090e573b7 Greatly improve channel handling
This also does some more bits of rudimentary user handling, but most of it still remains to be done.

Note: This adds DEV_PREFIX to botconfig and LOG_PREFIX to settings (var), make sure to properly update your bot!
2016-11-02 22:31:54 -04:00
Vgr E. Barry
736d1219ed Fix oversight in account handling 2016-11-01 23:04:47 -04:00
nyuszika7h
dccfd9de38 Require "!leave -force" to quit during a game 2016-11-01 15:34:49 +01:00
Vgr E. Barry
12eab068be Change the user handling calls in wolfgame.py 2016-10-31 20:44:10 -04:00
nyuszika7h
c968e1192a Even better exception printing, like in tracebacks 2016-10-30 20:12:15 +01:00
Vgr E. Barry
e5f922d548 Improve exception printing through !eval and !exec 2016-10-30 14:03:46 -04:00
nyuszika7h
57a628f135 Update help text for !say/!act
No longer requires !f prefix so display the preferred command names
in the help text.
2016-10-29 23:26:35 +02:00
Vgr E. Barry
eef934c433 Custom keys can't fit in lykos. Tsk tsk @laneatomic 2016-10-28 14:37:17 -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
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
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
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
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
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
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
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
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
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
nyuszika7h
67e6d086a2 Add support for CTCP TIME 2016-08-24 23:09:07 +02: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
2e11f67e7e Fix error when 2 people kill each other the same night 2016-08-15 21:22:08 -05:00
skizzerz
32f2a2eb2c Fix !stats for non-players 2016-08-15 19:41:45 -05:00
skizzerz
b5571c82e0 split VG 2016-08-15 18:59:24 -05: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
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
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
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
nyuszika7h
6b90e52aef Add another gif 2016-08-09 11:30:59 +02: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
Ryan Schmidt
f8d953f8ab Don't reply on bad invites
DDoS vector
2016-08-08 15:29:31 -07: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
3fcfa83c43 Really fix pre_restart_state (for real this time) 2016-07-27 23:07:29 -05:00
skizzerz
e6b6383b45 rejigger fdie too 2016-07-27 23:01:28 -05: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
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
nyuszika7h
d59f2ec4a8 Use reply() in !warn/!fwarn instead of hardcoding cli.notice() 2016-07-18 10:28:13 +02: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
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
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
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
nyuszika7h
accd75cfaf Changed winner = "none" to "no_team_wins" 2016-05-01 20:43:48 +02: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
44ca368724 Add !stasis command to view amount of stasis you have without joining 2016-04-19 13:54:57 +02: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
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
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
io
4e41dfe47a Add CTCP VERSION support 2016-04-04 16:18:04 -07: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
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
Vgr E. Barry
05bab1d83f Fix ALL THE THINGS 2016-02-11 13:55:25 -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
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
jacob1
32db6b131d allow using !gstats in alternate channels while a game is going on elsewhere 2016-02-01 20:54:47 -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
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
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
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
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
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
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
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
Vgr E. Barry
c47a84d058 Add the wolf shaman role 2015-11-23 19:36:02 -05: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
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
Emanuel Barry
837cf49c44 Merge pull request #191 from lykoss/proxy
Introduce proxies as a means of breaking circular import chains
2015-11-15 18:08:06 -05:00
skizzerz
737f4e6184 Fix werecrow observe not working in some instances 2015-11-15 16:56:32 -06:00
skizzerz
a26f912f6e Wrap the impl side of implementations in handle_error unconditionally as well 2015-11-15 13:51:46 -06:00
skizzerz
6f83a909df Introduce proxies as a means of breaking circular import chains 2015-11-15 13:12:22 -06:00
skizzerz
4750981b4b Don't fire retribution against self 2015-11-14 23:58:01 -06:00
skizzerz
26f798456e Expand werecrow observe list
Now observes every role that acts at night as "not in bed" EXCEPT:
- matchmaker
- assassin
- clone
- turncoat

matchmaker and clone are night 1-only, and allowing them to be observed
would only serve to reduce werecrow power. assassin and turncoat's night
actions are passive and not anything that would require staying up late
at night or moving around at night for.

In the event that a luck or misdirection totem is applied, wolf-aligned
roles are now also observable as not in bed should they act. This will
also apply if RESTRICT_WOLFCHAT is used to take those roles out of
wolfchat.
2015-11-14 23:45:23 -06:00
skizzerz
d386b76d48 Don't allow spectating deadchat if one is already in it 2015-11-14 23:08:51 -06:00
jacob1
87e387df5f fix error when changing nicks in join phase 2015-11-14 22:58:04 -05:00
skizzerz
d3676948c3 Add !fspectate command
Admin-only command (can be !fallowed) to spectate deadchat or wolfchat.
The person spectating is not revealed to anyone in the chat, however
they can see everyone in that chat.

If used outside of debug mode, it is restricted a la !revealroles where
it cannot be used by an alive player or an active vengeful ghost.
2015-11-14 21:04:43 -06:00
skizzerz
b351cd496f Enhance succubus win message 2015-11-14 19:22:42 -06:00
Lane Farrow
b121d3a2c4 Fix voicing on rejoin at night when devoice during night is enabled 2015-11-13 21:52:34 -06:00
Vgr E. Barry
37ce9ad17c Actually fix ping replies 2015-11-13 14:55:31 -05:00
skizzerz
e54630e902 Don't count night phase towards idle timeouts if DEVOICE_DURING_NIGHT = True 2015-11-12 21:39:41 -06:00
Vgr E. Barry
256d4ae39f Fix !ping randomly erroring out
Blame @laneatomic
2015-11-12 08:39:29 -05:00
jacob1
c072991a71 fix !fwait -1 grammar 2015-11-11 23:41:45 -05:00
jacob1
7184a02d54 use reply() in !wiki 2015-11-11 23:15:16 -05:00
jacob1
a2cd0d15e2 Reapply 217c8ffc8e
Somehow got wiped in a recent push.
2015-11-11 21:30:14 -06:00
skizzerz
e6c36830c4 Fix formatting issues and fgame 2015-11-11 13:10:23 -06:00
Lane Farrow
a4e21aa997 move irc messages to json and allow overriding in custom file 2015-11-10 19:58:50 -06:00
Vgr E. Barry
346af23a5d Fix shooting succubus 2015-11-09 16:43:09 -05:00
Vgr E. Barry
4e7b8ec6bb Fix issue with Python 3.2 2015-11-07 22:22:09 -05:00
jacob1
217c8ffc8e fix player who died last in the previous game being automatically joined to the deadchat the next game 2015-11-06 12:08:03 -05:00
nyuszika7h
6aedc39352 Add some missing periods 2015-11-06 15:23:16 +01:00
nyuszika7h
7d6fab1f01 Refactor calls to reply() to explicitly use 'private' keyword argument 2015-11-06 15:17:28 +01:00
skizzerz
8c4956469e Rejigger vigilante valid targets to make it more clear what does/does not apply 2015-11-05 20:17:40 -06:00
jacob1
aee627b3e2 fix fquit not working in PM (to fquit someone from deadchat) 2015-11-05 21:14:52 -05:00
jacob1
dd45c3ebc0 Revert "force non-!simple for the new roles"
This reverts commit 202dcd33cb.
2015-11-04 22:51:11 -05:00
skizzerz
fdd42a927b meow 2015-11-04 19:19:57 -06:00
Vgr E. Barry
8c0582477e Some tweaks to the error handler 2015-11-04 13:16:35 -05:00
Vgr E. Barry
b28d4bf6e3 Properly fix the error handler 2015-11-04 12:41:47 -05:00
jacob1
154589a748 make "stats type changed" message use botconfig.CMD_CHAR, to avoid actually running !stats on other bots 2015-11-04 12:31:54 -05:00
jacob1
e3c5897f6f add !deadchat help text, and change "chat" to "deadchat" because it confused people 2015-11-04 12:26:29 -05:00
jacob1
818773113b auto complete role names in pstats 2015-11-04 12:19:56 -05:00
jacob1
fb18a6bce8 add function to vote for a game mode called by !game and !join, fixes some issues with !join game mode voting 2015-11-04 12:10:49 -05:00
jacob1
8c73e64b49 fix being able to quit games in PM (must be run in channel) 2015-11-04 11:55:30 -05:00
jacob1
c350603ea0 add reply() command, cleans up some logic with deciding where to send messages
This also easily fixes the bug where commands in alternate channels would be sent to a /notice
2015-11-04 00:07:35 -05:00
skizzerz
44d1173c20 Make !fquit act like !quit
Notably, this will cause the nick to be consdered "dced" so they do not
receive a win, and it applies stasis just as !quit would (preventing the
nick from joining deadchat, among other uses for stasis).

Fixes #183
2015-11-02 21:38:58 -06:00
skizzerz
d67ab56a45 Rework dullahan death
Instead of treating dullahan as if they have a permanent retribution and
desperation totem, they now instead kill a random target in their list
should they die. If all of their targets are dead, nothing special
happens when they die.
2015-11-02 21:26:20 -06:00
Vgr E. Barry
6eb1ce44e1 Special-case lynched fool 2015-11-02 21:33:45 -05:00
Vgr E. Barry
2ee1110e41 Fix !wiki not accounting for PMs 2015-11-02 21:33:45 -05:00
Vgr E. Barry
806097444b Refactor rename_player 2015-11-02 21:33:45 -05:00
skizzerz
f7777649bf Fix /nick allowing one to avoid nightmares 2015-11-02 20:08:17 -06:00
skizzerz
0f5a08f1c7 Add ENABLE_DEADCHAT setting 2015-11-01 17:45:22 -06:00
skizzerz
ac1bfb778f Fix nightmare not tracking paths correctly and fix joining deadchat 2015-10-31 22:46:01 -05:00
skizzerz
10ad9d35a2 Deadchat performance improvements 2015-10-31 15:08:52 -05:00
jacob1
d4f9e59576 add demoniac and succubus wins to gstats
tables should be automaticly converted
2015-10-31 12:13:52 -04:00
jacob1
cb95394dd8 fix error with !help <invalid command> 2015-10-31 02:48:51 -04:00
skizzerz
106e7ed213 Don't retribute people already dying due to something else 2015-10-30 22:06:13 -05:00