projectmoon
620bea0521
Only use one instance of state instead of cloning it everywhere.
2020-09-27 09:44:59 +00:00
projectmoon
624c748583
Add useful logging of skipping commands.
...
This commit lays the groundwork for a stateful dicebot, instead of one
that only responds to commands. It now maintains a simple state
machine, used to store the current state of the bot. Currently, it
only cares about whether or not the message about skipping old
messages was logged.
2020-09-27 09:44:59 +00:00
projectmoon
6d49c9e16c
Fall back to 15 minutes if oldest message age not specified.
...
This makes the oldest message age setting optional, in additon to the
entire bot config (for now). If the oldest message age is not
specified (or if the entire bot config is missing), it will default to
15 minutes.
2020-09-27 09:44:59 +00:00
projectmoon
fabda911fd
Ignore messages that are too old.
2020-09-27 09:44:59 +00:00
projectmoon
92e4a7c29b
Rote die roll now respects dice pool success_on property.
...
Fixes #5 .
2020-09-26 14:04:12 +00:00
projectmoon
06ff6562c1
Add more tests for handling weird input.
2020-09-01 08:17:59 +00:00
projectmoon
f3f5846826
Fix command parser returning non-commands/empty messages as errors.
...
This behavior became broken again after switching away from the
macro-based command parsing. The bot would return any non !command
message as an error, which would cause it to read more messages, and
return those as errors, until finally the matrix SDK would throw up.
Command parser now more properly handles empty messages and
non-commands, but we also simply abort processing if the incoming
message doesn't start with an exclamation point.
2020-08-31 23:33:46 +00:00
projectmoon
8803b83ddb
Remove useless trim function and unnecessary uses of eat_whitespace.
2020-08-31 20:16:43 +00:00
projectmoon
da0819745a
Switch to non-macro nom parser with better text handling.
...
By using the alpha1 function in complete mode, we are able to handle
arbitrary single-word commands (e.g. "!help") and proprly map the
remaining input to an empty string.
2020-08-31 00:07:56 +00:00
projectmoon
1f5c6d7553
Actually only trim the start and end of the string.
...
Be careful what you find on Stack Overflow, kids.
2020-08-31 00:05:40 +00:00
projectmoon
531844fbb7
Implement basic, not-well-formatted help.
2020-08-30 21:54:01 +00:00
projectmoon
8484e9ffde
Allow extraneous whitespace at the end of command input.
2020-08-30 21:45:42 +00:00
projectmoon
16b5a3a51a
Chance die should only succeed on 10. Added no-explode rolls.
2020-08-28 21:47:09 +00:00
projectmoon
5983592eb3
Limit large the display of large dice pools.
2020-08-28 00:30:28 +00:00
projectmoon
54a3cc0880
Add basic logging to the dice bot.
2020-08-28 00:13:04 +00:00
projectmoon
f0a1fe53fc
Move CofD dice rolling into dice.rs file under cofd/
2020-08-27 23:56:19 +00:00
projectmoon
18a05ebd7c
Add auto-join, adapted from matrix SDK examples.
2020-08-27 23:50:32 +00:00
projectmoon
e8ce058e5d
Properly format dramatic failures.
2020-08-27 19:49:21 +00:00
jeff
0eb181a7a9
Clean up dependencies and upgrade to 0.3.0 after matrix SDK port.
2020-08-27 00:05:19 +00:00
jeff
6572e1d04e
Port dice bot to use matrix-rust-sdk.
...
This gives us many things for free, like automated state management,
no need to declare special API structs and use HTTP requests directly,
and most importantly: ENCRYPTION!
2020-08-26 23:53:30 +00:00
jeff
a62727070a
Update Cargo files for fork.
2020-08-23 21:24:04 +00:00
projectmoon
2c08eb41ad
Implement Chronicles of Darkness dice system, improve error handling.
...
Adds the Chronicles of Darkness 2E dice system to the bot, and also
somewhat improves the error handling when weird commands are received.
2020-08-23 21:24:04 +00:00
Taylor C. Richberger
6cb88a566c
get everything working and slightly documented
2020-04-21 22:30:00 -06:00
Taylor C. Richberger
8e50218c03
cargo fix
2020-04-21 22:20:05 -06:00
Taylor C. Richberger
6d180734d5
make actually work with messages
2020-04-21 22:19:15 -06:00
Taylor C. Richberger
81b8b2c0cc
simplify the code, and invert Result and Option
2020-04-21 00:22:31 -06:00
Taylor C. Richberger
4e72498181
format
2020-04-21 00:15:18 -06:00
Taylor C. Richberger
1a34a390d4
cargo fix again
2020-04-21 00:11:52 -06:00
Taylor C. Richberger
319e016bc3
remove unneeded
2020-04-21 00:11:25 -06:00
Taylor C. Richberger
e7458c12ad
cargo fix and fmt
2020-04-21 00:09:43 -06:00
Taylor C. Richberger
198f0bd43f
remove unnecessary annotation
2020-04-21 00:08:29 -06:00
Taylor C. Richberger
649aec531e
implement command parser fully
2020-04-21 00:07:03 -06:00
Taylor C. Richberger
90ae9c142c
lay command groundwork. Maybe need to make parsing more ergonomic.
2020-04-20 21:15:13 -06:00
Taylor C. Richberger
d0f3ec7ad2
handle matrix message handling
2020-04-20 15:09:38 -06:00
Taylor C. Richberger
087e20c261
get roller working correctly
2020-04-20 13:44:18 -06:00
Taylor C. Richberger
a9e1ccbf2e
restructure into dice module
2020-04-20 11:19:50 -06:00
Taylor C. Richberger
9121497d17
fmt
2020-04-20 10:02:26 -06:00
Taylor C. Richberger
1ce4b54417
Make sure all parsers are complete
2020-04-20 09:19:24 -06:00
Taylor C. Richberger
56de3d34f1
write out nom-based parser
2020-04-20 00:32:57 -06:00
Taylor C. Richberger
59cb407eae
Add dicebot-roll dice expression parser
2020-04-19 16:07:33 -06:00
Taylor C. Richberger
b4ccae581a
improve documentation
2020-04-18 17:12:25 -06:00
Taylor C. Richberger
7cc29ddf8f
get things cleaned up a little bit more
2020-04-18 17:09:55 -06:00
Taylor C. Richberger
f129f45864
add TODO
2020-04-17 16:54:07 -06:00
Taylor C. Richberger
b30eec72b3
modularize things
2020-04-17 16:53:27 -06:00
Taylor C. Richberger
61ec4e5fa7
cargo fmt
2020-04-16 23:25:13 -06:00
Taylor C. Richberger
1196bebb92
get initial stuff working
2020-04-16 23:20:54 -06:00