Skip to content

Nixill/JoltBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c94dbce · Dec 29, 2024

History

74 Commits
Aug 22, 2024
Dec 29, 2024
Aug 11, 2024
Sep 23, 2024
Jul 31, 2024
Dec 29, 2024
Aug 23, 2024
Aug 11, 2024
Aug 21, 2024
Sep 4, 2024
Aug 22, 2024
Jul 31, 2024

Repository files navigation

Jolt is a custom-built livestream bot for NixillShadosFox's Twitch streams. It is all of the following working together in harmony:

  • A Twitch IRC websocket chatbot, API client, and event consumer using TwitchLib
  • An OBS Websocket client using OBSWS
  • A named pipe server to receive commands sent from Stream Deck via a small client
  • A Discord webhook client via DSharpPlus

It is coded in C# as a console app. While the source code is available here, it is not in a state anywhere near "plug-and-play" for other setups. Pieces of it may be made available for general use in the future, however.

Commands

If you're looking for a list of commands usable in Nixill's streams, click here.

Code of interest

The parts of the code that I think are the most interesting (and are most likely to receive separate releases for general use) are:

  • the End Screen Manager, which updates a list of upcoming streams as well as automatically showing an upcoming raid target
  • the Twitch Command Dispatcher, which takes command input from a Twitch chat message and resolves it to a method with parsed parameters.
  • the Twitch Reward Dispatcher, which takes rewards defined with a name in code and turns them into on-site channel points rewards, as well as dispatching events to methods as necessary.

Third-party libraries

Jolt makes use of the following open-source libraries not linked above:

  • Nixill, a utilities library that you'd never guess I made! 😄
  • Ical.Net to read my calendar for the end stream manager.
  • NodaTime, because I'm a Java expat and Joda/Noda handle time classes so much better than Microsoft does.
  • NReco.Logging.File, because I lost days trying to make my own combined file-and-console logger and not even succeeding.
  • Quartz for scheduling tasks like Super Hexagon Break timers.
  • Websocket.Client, because while I'm gonna make my own OBS library from scratch, I did at least want the thread-help that this gives.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published