Commit Graph

2597 Commits

Author SHA1 Message Date
Vgr E. Barry
ef6758e14b Remove unused function (nick variant is still used in a few places) 2018-04-13 16:55:12 -04:00
Vgr E. Barry
7154a7d092 Move automatic mode syncing to hooks.py 2018-04-13 16:54:34 -04:00
Em Barry
28f26e181b Add the new User containers (#316)
- Add the new User containers for easier handling of users throughout the codebase
- Remove the swap_player event (replaced by User.swap, made possible thanks to the containers)
- Remove the cli argument from several events
- Remove !frole (a replacement will follow)
- Remove the ALLOWED_NORMAL_MODE_COMMANDS config option

Plus a couple of small fixes here and there.
2018-04-13 13:37:04 -07:00
skizzerz
c121c0f08f Mudkip balance fix and bugfix
Fix balance in mudkip, it was skewed too much towards village winning.

Also, if day ended in mudkip and nobody was being voted, it would error.
Let's make that not error.
2018-04-04 17:06:03 -05:00
Ryan Schmidt
8dc1cf4556
Merge pull request #315 from lykoss/convert-chk-win
Remove the cli argument from chk_win
2018-02-05 19:16:03 -07:00
Vgr E. Barry
a8790b439a Remove the cli argument from chk_win 2018-02-04 17:26:40 -05:00
Bradley Haljendi
a42da38e8e Do not ping players with unacked warnings
This fixes issue #255 by preventing unacked warnings from being pinged entirely (whether or not they would cause stasis).
2018-01-19 08:37:43 -07:00
skizzerz
965b230f64 Fix mudkip day timeouts breaking things if game ends during them 2018-01-11 11:08:57 -07:00
skizzerz
4a7dd390e5 Don't try to voice/devoice fakenicks
There were a few places where we still tried to do this.
Also get rid of the FEATURES checking for what voice corresponds to,
+v is defined to be the channel mode for voice per RFC so we can
safely hardcode it. A few places weren't changed over because it may
be better to expand those places to handle the other status modes as
well.
2018-01-11 10:26:43 -07:00
skizzerz
0fa7664526 Voting fixes for mudkip and succubus
- Remove short-circuit in chk_decision event on day timeout. No idea why
  I put that there to begin with...
- Don't make succubus remove voters from the list, rather just set their
  weight to 0. This causes their vote to not count while still letting
  stuff interact with the fact they voted succ (such as desperation totem)
- Ensure that mudkip's vote change works on day timeout as well
2018-01-11 10:02:05 -07:00
skizzerz
1989be5c8d Convert !quit to new command API 2018-01-10 15:26:20 -07:00
skizzerz
c9e1845fbb Convert get_reveal_role to use Users 2018-01-10 15:18:41 -07:00
skizzerz
7e7d4db1ae Downgrade from modern to intermediate compatibility
Some ircds (*cough*freenode*cough*) don't support any of the modern ciphersuites.
The default should therefore be useful to connect to such outdated ircds.
2018-01-10 13:55:28 -07:00
skizzerz
5af0f4ae82 Fix !update 2018-01-10 13:42:01 -07:00
Em Barry
f7a2ad5cc7
Merge pull request #313 from lykoss/tls_validation
Support for TLS certificate verification and client certificates
2018-01-10 15:15:12 -05:00
skizzerz
f988293f42 rm extraneous nonlocals 2018-01-10 12:30:03 -07:00
Vgr E. Barry
270a356e76 Make a logging with error level meaningful 2018-01-10 14:14:49 -05:00
skizzerz
916d476ca5 Fix SASL support for ircds which don't advertise SASL types in CAP 2018-01-10 12:14:02 -07:00
skizzerz
9190a4c859 Rework TLS validation a bit and support SASL EXTERNAL
- Move the config comments to botconfig.py.example where they will be more useful,
  and move the bits in settings.py near the other IRC-related settings.
- Removed support for hash types that aren't SHA-256 as we perform all the hashing on
  our end (doesn't matter what the server does or does not support), and this greatly
  simplifies the code while leaving things secure enough.
- Hardcode a default cipher suite according to mozilla modern standards, as the
  builtin ciphersuite in python may be less secure for older python versions.
- Add support for EXTERNAL auth in SASL, if a client certificate is provided. If this
  fails, it will fall back to PLAIN auth (to account for the case where a cert is added
  to the bot, but has not yet been added to NickServ, so that the bot can connect and add
  it to NickServ via !fsend)
- Redact passwords from console/log output so that asking people to pastebin their
  --verbose output when reporting issues in #lykos is less fraught with peril.
2018-01-10 12:09:10 -07:00
Samuel Hoffman
532386a2b9 Support for TLS certificate verification and client certificates. (#301)
If a TLS certificate fingerprint is provided, the client will check it against the SHA256 hex digest of the server's certificate. Different hash algorithms can be specified, and multiple fingerprints can be specified for networks with more than one server.
2018-01-10 07:58:19 -07:00
Em Barry
a2be87b85a Convert succubus (#311)
Convert succubus to new API along with (un)related fixes.
2018-01-10 07:51:45 -07:00
jacob1
cac893fd14 record stats for "roles" gamemode 2018-01-09 23:20:38 -05:00
skizzerz
f4876d254e Convert some things to new command API+users
MessageDispatcher, sleepy mode, warnings, and the latency command,
to be exact. Sleepy also benefits from some code deduplication in
addition to now operating on users.

The warnings code could use a more comprehensive overhaul too, but
that's going to be harder to achieve.
2018-01-09 16:06:40 -07:00
skizzerz
6d401fd461 Don't try to add new users if we're changing usermodes on ourselves.
The actor in this case will either be ourself (in which case users.Bot
already exists), or a services nick (which may not have a full hostmask,
and therefore cause hashing errors). Only try to add a user if we're
changing a channel mode. This may still break on chanmodes, needs more
testing in that regard.
2018-01-05 13:04:42 -07:00
Vgr E. Barry
08a81fbc09 Properly handle CAP LS lines with name=value items in them 2018-01-05 14:23:58 -05:00
Vgr E. Barry
cdcc65c9b8 Add a timestamp to users 2017-12-30 10:35:43 -05:00
Vgr E. Barry
ebd7f24f41 Updating the event_hosthidden handler 2017-12-30 09:51:59 -05:00
jacob1
aa8e7006b4 fix time lord 2017-12-30 00:08:20 -05:00
jacob1
b11333cac0 allow setting amnesiac role in frole 2017-12-29 20:31:31 -05:00
skizzerz
e8408214f5 Kill proxy with fire
It's not needed since we can import at function scope. Also make
chk_nightdone implicit for role commands executed during night, so we
can remove tons of redundant calls.
2017-12-29 16:49:09 -06:00
skizzerz
b677400ce4 General cleanup
- Expand skel.py to be more useful
- Remove circular dependency from utilities.py. It *CANNOT* globally
  import users.
- Remove unused functions from utilities.py and make some others proxy
  through to user-aware functions to ensure functionality stays the
  same.
- Remove duplicate event listener.
- Clarify some comments about stats.
2017-12-29 16:10:32 -06:00
jacob1
15e0d9f503 convert most botconfig.NICK usages to users.Bot.nick 2017-12-29 11:30:04 -05:00
Vgr E. Barry
b3687268c2 Handle the bot itself changing nicks 2017-12-29 10:10:11 -05:00
skizzerz
6dcf2f513c Fix idling out not triggering dc loss 2017-12-28 15:24:51 -06:00
jacob1
8ed4b37633 fix mudkip again 2017-12-26 19:42:24 -05:00
skizzerz
7ba8290ece Mael and mudkip bugfixes
In mael, when giving wolflist to someone who joined midday, I assumed
that pl was a player list when it was already finessed into a list of
strings.

In mudkip, it is possible for the lynch logic to try to lynch someone
twice due to how chk_decision works (if you're forcing someone and
someone ELSE has a majority vote, who actually gets voted depends on the
order in which the dict keys are iterated over). As a result, ensure
that the only possible choice to lynch is the person we're interested in
lynching.
2017-12-22 12:49:55 -06:00
moonheart08
7d7aa78ce2 Adds 3 more "No Victim" Messages (#312)
Add a few more "No Victim" messages.
2017-12-20 09:52:43 -05:00
skizzerz
910d495f19 Balance changes
Swap cultist with minion so wolf can collab with them better and not
screw themselves over n1, and make shaman always get dt n1 to make
things more interesting.
2017-12-19 14:11:00 -06:00
jacob1
96aceb42be fix maelstrom midgame join 2017-12-17 20:01:11 -05:00
skizzerz
7fb0022928 Fix amnesiac 2017-12-16 21:51:25 -06:00
skizzerz
33cdeb2380 Only make retribution kill wolves who actually did the kill 2017-12-16 21:41:55 -06:00
jacob1
bd66621a43 fix ORIGINAL_ROLES not being updated on player swaps 2017-12-16 21:11:56 -05:00
jacob1
141bab2624 fix pony in a way that matches slightly better 2017-12-14 00:20:48 -05:00
jacob1
697ac58ef3 fix pony 2017-12-14 00:19:26 -05:00
skizzerz
0cc497111f Fix roleswap wins 2017-12-13 22:49:18 -06:00
skizzerz
7a66275bcc Fixes for role change 2017-12-13 22:04:08 -06:00
skizzerz
95da346344 Fix mudkip 2017-12-13 21:06:56 -06:00
Em Barry
4ee52e3f1d
Merge pull request #309 from lykoss/yolo
Convert var.ROLES and var.ORIGINAL_ROLES to Users
2017-12-13 21:29:44 -05:00
skizzerz
7d0dc29af1 Fix traitor 2017-12-13 20:10:44 -06:00
skizzerz
efe4f538bb Fixes 2017-12-13 16:32:51 -06:00