summaryrefslogtreecommitdiffstats
path: root/wat
Commit message (Collapse)AuthorAgeFilesLines
* Prevent dice overflowGeorg Pfuetzenreuter2024-10-102-21/+110
| | | | | | | | | | rand.Int() would panic when the max value is <= 0, which happens when big.NewInt() was fed with a too large number. Avoid this by validating the big.NewInt() return beforehand. Add error handling to all callers to both gracefully return to IRC and to log an error message. Rename the shadowed "max" variable whilst at it to avoid confusion. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* Configurable database pathGeorg Pfuetzenreuter2024-10-102-3/+4
| | | | | | | Allow the database file to reside in a user defined location instead of requiring it to be in the working directory. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* Lower nickname in Jeopardy cashoutGeorg Pfuetzenreuter2024-10-091-1/+1
| | | | | | | Align with GetTarget() which is used in games to have consistent handling of nicknames regardless of their casing. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* Improve Jeopardy cashout messageGeorg Pfuetzenreuter2024-10-031-4/+36
| | | | | | | | | | | | Print only a single message instead of one per winner to reduce chat clutter. Skip cashout to users who won less than the possible cashout value as limited by the division value to avoid congratulating someone who only gets 0. Abort should a regression cause the logic to process an empty set of finishers to prevent unexpected behavior. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* Change host lookup to be optionalGeorg Pfuetzenreuter2024-10-022-2/+6
| | | | | | | | | | | Some parts of the logic do not make use of the host column in the players table, allow the field to be empty and do not query for an empty value (which might return bogus entries) if no value is passed to the lookup function. This additionally avoids the need for the hardcoded initial host when configuring the bot player. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* Strip formatting codesGeorg Pfuetzenreuter2024-10-021-1/+2
| | | | | | | | To allow for correct parsing of messages containing formatting codes and to avoid exploitation of unparseable messages, strip all formatting codes from a message when entering the parsing chain. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* Explain Jeopardy finishers parsingGeorg Pfuetzenreuter2024-10-021-0/+11
| | | | | | Elaborate as the convoluted logic can be difficult to understand. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* Refactor integrationsGeorg Pfuetzenreuter2024-10-022-57/+87
| | | | | | | Move to a separate file for better code structure and to avoid huge branching inside Msg(). Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* Implement Jeopardy cashoutGeorg Pfuetzenreuter2024-09-291-0/+62
| | | | | | | | | | | | | | | | | This adds integration between Watbot and the Limnoria Jeopardy plugin. If a game of Jeopardy ends, Watbot will parse the finishers message and pay a small share of the Jeopardy price money in the form of Watcoins. To avoid abuse, only Jeopardy finishing messages from authorized bots are considered. An IRC user is considered an authorized bot if the hostmask matches one of the configured bot hostmasks, and if the nickname is configured for "jeopardy" in the newly introduced bot games configuration. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net> Add sample message to Jeopardy logic Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* Implement automatic channel joiningGeorg Pfuetzenreuter2024-09-281-1/+14
| | | | | | | | Avoid the need for an administrator to join the bot to channels by implementing a configuration option allowing the passing of channels the bot should always join to by itself upon startup. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* Replace redundant logic in Admin()Georg Pfuetzenreuter2024-09-281-7/+1
| | | | | | | The Allowed() function already implements this loop, use it to reduce redundant code. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* Implement configuration fileGeorg Pfuetzenreuter2024-09-281-2/+3
| | | | | | | | Abstract settings which commonly differ between instances to a YAML based configuration file to allow for easy administration without the need for modifying the source code. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* Add myself as adminGeorg Pfuetzenreuter2024-09-211-1/+7
| | | | | | | For some administrative operations, such as joining channels, it would be useful if I could "imp"ersonate the bot. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
* initial commitmogad0n2021-03-103-12/+12
|
* fixes #8alex2019-09-221-1/+8
|
* fixes #9alex2019-09-221-1/+1
|
* fixes #5alex2019-07-102-0/+16
|
* fixes #6alex2019-06-281-2/+2
|
* fixes #7alex2019-06-282-31/+63
|
* moved config around somewhatalex2019-01-041-10/+25
|
* Added time limited bankrupcy, steroids for benching (don't persist across ↵alex2019-01-042-14/+84
| | | | restarts), removed aliases from command list, ping, strongest, don't allow vlk to roll.
* int64 -> uint64 for coins, disable noisy logging, turned off wattery (it was ↵alex2018-12-033-20/+15
| | | | quickly abused), made anarchy less likely to win and time limited
* CanAct func, used in Riot and Liftalex2018-11-162-2/+15
|
* added actions table, makes it easier to add time based commandsalex2018-11-152-42/+74
| | | | | | | | reactivated bench with a 2400 limit help command just outputs command structs because that's easier lower all commands to account for caps mistakes some hardcoded nick bits :\ removed disused db structs
* changed coins to uint64 and started using uints all over the placealex2018-11-143-35/+54
| | | | | added toplost removed an ignore
* formatting changes from goimportalex2018-11-083-103/+186
| | | | | | | | | added a link to source, healing parse ints through one function and return helpful errors that can be used as return values added more error checking improved some output made some more joke methods lazily added more if conditions for people i'm sick of
* nmalex2018-10-271-3/+5
|
* fixed rand to use crypto randalex2018-10-263-30/+52
| | | | | fixed imp with imps but should go back to privmsg detection give the bot money when people lose lel
* misc improvementsalex2018-10-252-28/+40
| | | | | | | added self reference, allowing the bot to accrue currency messed about with some messages (removed swears, changed 'schlorped', etc) improved send output regular wattery to make 'wat' interesting
* added resting, messed about with stuffalex2018-10-232-20/+104
|
* fixed some bugs, fixed some debug behaviour, changed over to a command -> ↵alex2018-10-233-56/+101
| | | | method map to avoid sending spurious messages
* added admin command for impersonating any irc commandalex2018-10-211-14/+23
| | | | remove db
* Reimplemented python bot in golang, skipped a few featuresalex2018-10-213-0/+482