TriviaBot on #scobowl: Rules and help


Thank you for playing on #scobowl. Here are the rules:

  • To start the bot, type in !start, and then type in !join Home or !join Away. See the commands list for a more powerful version of the !start command.

  • TriviaBot will give you toss-up questions sentence by sentence. After it finishes the question you have 15 seconds to answer. If no one answers within 15 seconds, the bot gives out the answer, and nobody scores for that round.

  • To answer a question, post "buzz". After TriviaBot prompts you, answer the question. You will have 8 seconds to type out your answer. Answers are not case-sensitive.

  • If the score is tied by the time the game finishes its final round, the game will go into sudden death until one team gets a question.

  • If there is an error, please use !comment to report it. If it is a problem with the question, please include the question ID.

  • Flooding, trolling, and the like will result in a ban. Don't try it.

  • If you need any additional help, ask one of the ops, or email ncscobowl at gmail.com.

  • You can download the zipped source for TriviaBot here.


    List of user commands:

    CommandsExplanation
    !start Starts a regular 30 round game with a maximum of five people per teams. Default team names are Home and Away.
    !start (String team1, String team2, int rounds, int maxNumberofPlayersPerTeam, String allowedQuestions, String unallowedQuestions, String set) Starts a game. All of the parameters are optional; however, if you only want to modify one parameter (for exapmle, rounds), then you must still put in commas.

    Examples: !start - starts a 30-round game with teams Home and Away. 5 people can play on each team, and all questions are allowed. The set currently loaded is the one played.

    !start Alpha, Beta, 20, 1, .*, Biology, acf - Starts a 20-round game with teams Alpha and Beta. 1 person can play on each team, and all questions except Biology ones are allowed. This game uses the acf set.

    !start ,,,,Literature - Starts a regular game with only Literature questions.

    !join (String teamname) Joins the team. During the joining period, you can switch teams. If you haven't played in the game yet, you can also join a team.
    !random Joins a random team. It has the same restrictions as !join.
    !stop Stops the game. Abuse of this command will result in a ban!
    !score Returns the score of the current game.
    !help Gives you some basic information. Useless if you're reading this.
    !teams Displays the list of teams available to join, and the players on each team.
    !size Returns the size of the question set.
    !size (String category) Returns the size of the question set for that category. Example: !size Art
    !comment (String comment) Comment an error or suggestion. If you are commenting on a question error, please include the question ID in the comment.
    !team (String player) Shows what team a player is on.
    !stats (String player) Shows the overall stats for that particular player. The command is case-sensitive.
    !curstats (String player) Shows the stats for that particular player in the current game. The command is case-sensitive.
    !get (String variableName) Retrieves one of the following variables:
    negs
    rounds
    teams
    delay
    minMVP
    gameswoReload
    limwoReload
    comment
    players
    allPlayers
    allowedQ
    unallowedQ
    version
    breakBtwQ
    showCategory
    answerDelay
    messageDelay
    gamemaster
    playersPerTeam
    askBySent
    numWordsPerLine
    freq (String search_term)
    timeToJoin
    sets
    setsInPlay



    Operator/Gamemaster only commands

    CommandsExplanation
    !reload Reloads the question set.
    !loadset (String theSet) Loads the set theSet. For example, "!loadset acf" will load the acf set.
    !correct (String player) (int score) Gives the player and the team points. Add 10 if they did not neg, 15 if they did neg when negs are turned on.
    !incorrect (String teamname) (int score) Takes away points from the player and the team. Subtract 10 if they would not have negged, and 15 if they would have negged when negs are turned on.
    !clearcom Clears the !comment list.
    !get q (int ID) or !get question (int ID) Retrieves the question in the set with the given ID.
    !set (value) Sets the variable to the new value. The variables that can be affected by this are:
    negs
    delay
    minMVP
    gameswoReload
    limwoReload
    allowedQ
    unallowedQ
    showCategory
    breakBtwQ
    answerDelay
    messageDelay
    askBySent
    rounds
    playersPerTeam
    timeToJoin
    numWordsPerLine
    !exit Forces the bot to quit. Do not use unless it's necessary.



    Version history:

    1.00
    -Release
    
    1.01
    -Fixed the buzzing at the same time bug (use answerDelay)
    -Brought bag MATHRND
    -Trimmed the text for spaces
    -Added response strings to !comment and !request
    -Shows stats at end of game
    -Made an upper boundary for number of questions
    -The "10 seconds left" only happens if answerDelay == 0
    -addToTeam(),deVoiceTeam(), and giveVoice() added
    
    1.02
    -Keeps track of nick changes
    -Doesn't give hints right after a person answers
    -deVoiceTeam() method fixed
    -Added getPlayerFromAllPlayers() and HashSet allPlayers
    -Changed !stats to use allPlayers instead of players
    -Fixed !dummy code
    -Increased answerDelay to 11
    -Added "Parsing error" if the question cannot be parsed correctly
    
    1.03
    -Voicing stopped
    -Allow people to switch between teams during joining period
    -Fixed questionNum bug
    -Fixed joining bug
    -Allow people to join game during gameplay if they have not played in that game yet
    
    1.04
    -Used regular expressions to store answers
    -Got rid of the seconds variable in Question
    -Changed URL in !help
    
    1.05
    -Fixed !stats bug
    -Tells players when there are 5 seconds left.
    -2nd Team doesn't get renamed with !start Team1, Team2 fixed
    -Only shows score when there's a game going on
    -Added !teams/!team commands
    
    1.06
    -Fixed bug where you could buzz in after the round was over if nobody answered.
    -Question automatically adds period to end of question if there is no period/question mark at the end of it.
    -!comment and !request attach the sender to the message.
    
    1.07
    -Added !correct (team) to list of commands.  Somewhat buggy.
    -Fixed "only 1 team can guess" bug in round 1
    -Filename bug gone - abc and ABC will no longer share the same stats file
    -Added MVP/LVP stats
    -Changed Team.setGuessed() so that !correct could work
    
    1.08
    -Saves LVP/MVP stats
    -Clears player stats when they use !stop
    -!teams shows the players on the team
    -Replaced the way the bot calculates MVP/LVP
    -Add !mvp command
    -Fixed !correct
    -Added !remove command, but it does not seem to work in this version.
    -The bot now trims any whitespace before it displays a sentence
    -!delay and !reload now send messages confirming that the desired action occurred.
    -Replaced the Player toString() method: it now only shows the name.
    
    1.09
    -Shows size of set after a reload
    -Fixed exploit in !get (using !get with any number lower than 0 would cause an error)
    -Fixed LVP code
    -Changed MVP/LVP formula to 15 * correct - 5 * guessed
    
    1.10 & 1.11
    -Fixes "still playing if !start fails" bug
    -You can now answer with decimals
    -Questions can now have decimals in them
    -Dummy automatically joins a game if there's only one player playing
    -Changed !dummy code so that it would be more efficient
    -Changed the askQuestion() code so that it could support decimals
    -Added !random command
    -Added !load command
    
    1.12
    -Got rid of "double game" bug
    -!correct code fixed
    -!nummvp added.
    -Changed !load to !loadset, added !loadplayer
    -Buzzing in after question finishes bug should be fixed.
    
    1.13
    -!correct fixed some more
    -!incorrect command added?
    -!start updated (now !start Team1,Team2,numRounds,numPlayersPerRound,allowedQ,unallowedQ )
    -Added !negs and !setnegs command
    -Added negs
    -The set no longer reloads itself after every game; it is now variable.  Default is set to 3.
    -Added code to handle ties (when there are no more questions left in the set)
    
    1.14
    -Changed onDisconnect() code; TriviaBot should now properly reconnect if it's nick still exists on the channel.
    -Made various code changes, such as
    	-Adding write() method so that TriviaBot could log errors disconnect errors (Added Date class to make error-logging easier)
    	-Restructuring code so that it would use for-each loops instead of iterators
    	-Eliminating the Arrays and Iterator import
    	-Making the ArrayList questions only accept questions in the ArrayList
    	-Changed hashCode() method in Player so that players could be added and retrieved more quickly
    	-Various other code-restructuring changes
    -Eliminated !topic, !add, !getreq, !clearreq, and !request commands because it's never used,
    -Eliminated !delay, !mvp, !minMVP, !get, !negs, and !getcom --> now replaced by !get (variable) and !set (variable)
    -Changed !correct and !incorrect to make it much more lenient and flexible
    -Neg bug fixed
    
    1.15
    -Added Gamemaster
    -Ability to hide category title
    -Add answerDelay to !get/!set  [old answerDelay renamed to answerTime to clarify the variables]
    -Add an option file for the default values
    -Got rid of loading the topic at startup
    -No ID on timed-out question fixed.
    -Break between questions now a variable (breakBtwQ)
    -Add a set parameter to !start (so it's now !start Team1, Team2, numRounds, numPlayersPerRound, allowedQ, unallowedQ, set)
    -Fixed bug where set would keep reloading a set that didn't contain a category in allowedQ
    -Fixed "no neg after time runs out" bug
    -Fixed major bug where the last letter of a word was optional (thanks to ikillkenny)
    -Fixed bug where you could make two teams with the same name?
    -Changed code in Question so that you only needed to put things in parantheses to make parts optional (instead of needing ?? at times)
    
    1.160x
    -Added simple prompts
    -Loading sets now very different; each set is built up of smaller sets
    -Added several variables to !get/!set