Giter Site home page Giter Site logo

multitwitchbot's Introduction

MultiTwitchBot - Wolfrickeystonebot

MultiTwitchBot is an IRC based multi-room raffle bot developed to operate with the Twitch network.

  • Raffles across multiple rooms
  • Invite bot to additional rooms - Authorizations required to comply with twitch bot ToS
  • Magic happens

Features!

  • Allow single entries per person, or multiple - one for each room they enter from
  • Internal Mods list (possible future option for any channel mod to perform -some- actions)
  • Good Luck Protection - Host Selectable winner exclude system - exclude X previous winners from draw
  • Sub Luck
  • Bad Luck Protection
  • Roll method is: 1-1000 (streamer selectable) with luck increasing the minimum roll number
    • eg: Sub with 30% bonus plus 20% BLP would roll 501-1000
    • fresh non-sub would roll 1-1000
  • More features to be added by demand...

How to use

MultiTwitchBot is python based, run from cloud based virtual hosting in the US. Access on demand to the web console provided by Wolfric83

It is recommended (but not required) to grant mod permission to the bot to prevent dropped messages.

Typical use:

Streamer invites additional hosts with !invitehost -TwitchName-

Additional participating streamers accept with !acceptinvite (Must be the most recently invited host)

Participating streamer types !startraffle

Viewers on any stream type <Keyword>

... time passes as viewers enter (Bot continues to send notices to channel - these are not new raffles)

Participating streamer types !closeraffle (optional)

Participating streamer types !draw

Bot announces winner into streams

Rinse and Repeat from !startraffle

Viewer Commands:

  • !reportme - Outputs multipliers applied to -your- rolls
  • !announcerooms - Outputs URLs to participating streams

Streamer Commands:

  • !resetrafflebot - Leaves all rooms, and resets raffle bot to listen to only default user's commands
    • Notifies all rooms
  • !invitehost -TwitchName- - posts message to current channel requesting response to invite the bot to -TwitchName-
  • !acceptinvite - Required by additional hosts to bring bot into their channel.
  • !raffleleave - Asks RaffleBot to leave your channel
  • !startraffle - Resets the current Raffle list, listens for saved keyword for entry to raffle
  • !startraffle -NewKeyWord- - Resets the current Raffle list, changes keyword and listens for entries to raffle
  • !closeraffle - Stops listening for raffle keywords. saves everything to DB
  • !draw - Stops listening for raffle keywords. saves everything to DB. Draws one winner and reports to all chats.
  • !clearsession - Resets session list and past winners list
  • !undo - Undos the last !draw, reverting the BLP for the last drawn winner.
  • !redraw - Combines !undo and !draw. reverts previous winners BLP, removes that entry from draw, and Draws one winner and reports to all chats.
  • !reopenraffle - starts accepting additional entries when typed after a !draw.
  • !changekeyword -Keyword- - Changes raffle keyword to -Keyword-
  • !changenotice -NoticeText- - Change the Notice text (what is being raffled)
    • Example: !changenotice Free Gift Sub
    • changes repeating notice to: Now Raffling: Free Gift Sub. Enter by typing: -Keyword-
    • will send initial notice: Next raffle draw: Free Gift Sub. by -yourname-
  • !singleraffle - Turn on Single Entry mode
  • !multiraffle - Turn on Multi entory mode (one per User/Channel combination)
  • !raffleannounceon - Turn on periodic Raffle announcements
  • !raffleannounceoff - Turn off periodic Raffle announcements
  • !enableblp - enables Bad Luck Protection
  • !disableblp - disables Bad Luck Protection
  • !enablesubluck - enables Sub Luck
  • !disablesubluck - disables Sub Luck
  • !setsubluck - Sets subluck to
  • !setblp - Sets Bad Luck Protection bonus to per loss
  • !addblp - Adds Bad Luck Protection the the specified Twitch user
  • !checkblp - Outputs the Base BLP value for a given Twitch user. Does not include Sub Luck.
  • !wolfricversion - Outputs the version number of the currently running instance of WolfricKeystonBot
  • !enableblpoverflow - Enables BLP Overflow - When someone wins with BLP adding up to more than 100, overflow is re-added to them.
  • !disableblpoverflow - Disables BLP Overflow
  • !pastwinnersexclude -Number- - exclude -number- past winners from draws
  • !noticetime -Number- - change notice timeout to -Number- seconds (Minimum 30, default 30)
  • !reportsettings - Outputs to chat configured settings (BLP, Subluck, Max Roll, Notice Time, Past winner exclude settings)
  • !quitrafflebot - Terminates bot completely
  • !savevarstosql - Saves modified settings (Notice Text, keyword, notice time etc.) to database

Default settings

  • Channel list: Wolfric83 (Will be updated to Zatcharygaming when ready for proper use)
    • Additional hosts must be invited by an existing owner of a channel the bot is currently in by !invitehost
  • Keyword: "metime"
  • Entry Type: Multi Entry Mode (each user can enter once from each channel)
  • Past Winners Ignored: 5
  • Notice Text: testing raffle system
  • Notice Time: 30 seconds
  • Draw type: Roll
  • Starting roll: 1-1000
  • BLP: +1% (added to minumum)
  • SubLuck: 30% (added to minimum)

ToDo:

  • change to Rolls instead of random pick
    • Reroll on draw
  • option to add BLP to roll each time someone doesn't win --- in testing
  • RaffleGroups - ability to have multiple raffle groups (far future)
  • Long term storage of BLP (future)
  • Sub Luck --- in testing
  • startup UI?
  • SingleChannel Mode?
  • Change Defaults
    • Roll type Picking
    • Sub luck on
    • past winners ignored 5
    • Multi-Entry Mode
    • BLP Mode

BLP Thoughts (Not Yet Implemented)

Base random roll starts at 1000 --- in testing Optional BLP Factor - Selectable percentage (or add?) - default 1%? Optional Sub Factor - Selectable percentage (or add?) - default 25%?

BLP and Sub factor combine? (5 missed wins for subscriber = 30% added to max roll number?)

multitwitchbot's People

Contributors

wolfric83 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.