BountyBot

Description

BountyBot is a Discord integration bot which is used for keeping track of the specific and generic wormhole orders. You can interact with @bountybot by issuing commands in the #bounty-bot-info channel or the #wormhole-locators, or #bountybot-config. You cannot message the Discord bot directly.

The commands always start with: !bb_. The arguments within angle brackets <> are mandatory. The arguments within square brackets [] are optional. Note: you don't have to type the brackets; those are there to signify something has to be inserted instead.

NOTE: Adding, editing or removing specific wormholes as an admin will automatically modify Tripwire comments as needed using the name BountyBot. Please do not modify or delete automatically generated comments made by BountyBot in Tripwire, they will be removed once the bounty is claimed automatically.

Commands

Typing !bb_help in a @bountybot channel will output:

!bb_about  -- displays information about BountyBot and the original bo designed by Farshield.
!bb_add <jcode> <watchlist> <comments>  -- add new bounty system to database; <watchlist> must be either true or false
!bb_announce <message> -- Announces a message to the BountyBot channels.
!bb_check <jcode>  -- verify if J-code is in the specific or generic orders list
!bb_destroy [generic/jcode]  -- CAUTION! removes all [generic/jcode] bounty systems
!bb_echo <channel> <message>  -- send a message as Bounty Bot
!bb_edit <jcode> <watchlist> [new_comments] -- modify the comments of a specific wormhole; <watchlist> must be either true or false 
!bb_edit generic <id> <new_description> -- modify the description of a generic wormhole
!bb_hello  -- simple verification which tests if BountyBot is up and running
!bb_info <jcode>  -- displays characteristics of a wormhole
!bb_list [generic/jcode/jcode+] [id]  -- displays current bounty systems (systems with the ~ symbal have kill reports disabled)
!bb_remove <jcode>  -- remove bounty system from Watch List
!bb_remove generic <id>  -- remove generic bounty system
!bb_search <description>  -- displays J-codes which match the description
!bb_test -- simple verification which tests if BountyBot is up and running.
!bb_help [command]-- displays help for commands. You can specify anything after !bb_ in the command section to get info about the command. e.g. !bb_help hello

Example of commands as a normal user:

# check if @bountybot is online
!bb_hello

# listing the current bounty wormholes - systems with symbol * have kill reports enabled:
!bb_list  # display all orders
!bb_list generic  # display only generic orders
!bb_list jcode  # display only specific orders
!bb_list jcode+ # will output a more detailed list of specific wormhole orders
!bb_list generic 33  # display information on generic order 33 (if existing)
!bb_list jcode J123450  # display information on specific order J123450 (if existing)

# check if a wormhole is in specific order or generic order list
!bb_check J123450
!bb_check J123450 J101145  # multiple systems check

# retrieves information about a wormhole: class, effect, statics, radius, planets, moons (also tells if wormhole has perfect P.I.):
!bb_info J000313
!bb_info J123450 J000313 J101145  # multiple systems info

# lists all J-codes which are associated with generic order ID 1 (!bb list generic -- to view generic order list):
!bb_list generic 1

# searches the database for wormholes which have the following characteristics
!bb_search C3; HS static; perfect P.I.
!bb_search C2 or C3 non-shattered; effect Pulsar; LS or NS static; lava-2

# displays information on a wormhole connection (destination, stable time, max jump, max mass)
!bb_search static D385
!bb_search static B735

Example of commands which can be executred by Brokers:

!bb_add J123450 true Contact Apollo Tyrannos when found
!bb_add J000313 false Missing Tripnull  # add a Tripnull to database, but without kill reports
!bb_add generic C3 non-shattered; LS static; no effect

!bb_remove J123450
!bb_remove generic 3    # the Id of the generic can be obtained by listing the generics with !bb list generic

!bb_edit J123450 true New comments
!bb_edit J123450 false System held by X  # disables kill reports for J123450 and update comments
!bb_edit J123450 false   # disables kill reports for J123450 and preserve previous comments
!bb_edit generic 7 C4 or C5; C4 static; Uninhabited

# careful when executing following commands, they clear the database:
!bb_destroy
!bb_destroy generic
!bb_destroy jcode

# send messages as Bounty Bot
!bb_echo general BountyBot will go to sleep
!bb_announce New wormhole added. Start scanning!

Generic Format

The description is split into groups by a delimiter character: ;. The description must contain info about the class. The others are optional: effect, statics, moons, planets, radius, comments. The class group must come in first. The others don't have to be in order. Comments are usually in the last group (if any).

Every group except the class group and the comment group must have the specific keyword: "effect/effects", "static/statics", "moon/moons", "planet/planets/p.i.", "radius". Lower-case or upper-case does not matter.

Optional keywords in the first group (class): "shattered", "non-shattered", "all", "drifter", "tripnull", "sansha". The keyword exclude can be placed in the effects and statics groups to exclude certain characteristics. For the planets group you can specify: "perfect" for perfect P.I. Otherwise you have to name the planets:

lava-1 storm-1 or lava-2 - means find a wormhole with at least (1 lava and 1 storm) or (2 lava planets).

Remember to place the keyword "or" if multiple subgroups are defined. You can also specify how many planets you want by using the range construction:

C3; planets 9-12

Always specify "non-shattered" parameter in the class group if you want a non-shattered wormhole. The parameter "non-shattered" must NOT be specified if there is a moon group or a planet types group.

Planet keywords:

temperate-1 equivalent with t-1
ice-1 equivalent with i-1
gas-1 equivalent with g-1
oceanic-1 equivalent with o-1
lava-1 equivalent with l-1
barren-1 equivalent with b-1
storm-1 equivalent with s-1
plasma-1 equivalent with p-1
shattered-1 equivalent with sh-1

Effect keywords:

black hole
cataclysmic
magnetar
no effect
pulsar
red giant
wolf-rayet

Examples:

# The following 2 commands are equivalent:
!bb_search C2 or C3; effects exclude Magnetar; statics LS or NS; radius 0-14 AU; lava-1 storm-1 barren-1; uninhabited
!bb_search C3, C2; exclude Magnetar effect; statics NS or LS; radius 0-14; l-1 s-1 b-1; uninhabited

# C3 with high-sec or low-sec static, no effect and perfect P.I. (the following 2 commands have the same results):
!bb_search C3; exclude NS static; no effect; perfect P.I.
!bb_search C3; HS or LS static; no effect; perfect P.I.
# Note: Please be aware that saying "HS or LS static" is not the same as "HS, LS static".
# In the last case both HS and LS must be present

# Display all wormholes which have exactly 1 moon
!bb_search class all; moons 1-1

# Display all wormholes which have exactly 1 planet
!bb_search class all; planets 1-1

# display shattered C3's with HS static
!bb_search C3 shattered; HS static

# display drifter wormholes and tripnulls
!bb_search class drifter
!bb_search class tripnull

# display non-shattered wormholes which have at least one shattered planet
!bb_search class all non-shattered; planets shattered-1

Contribute

BountyBot is written in python and is based on Discord's Py Bot and cogs: https://github.com/AlexFlipnote/discord_bot.py and https://discordpy.readthedocs.io/en/stable/ext/commands/cogs.html.

Please send any ideas/suggestions, bug reports to Thaeken Vyvorant or TalisAkijitsu either on Discord or in-game.

Fly safe o7