Skip to content
forked from jmslagle/novabot

A Discord bot that uses data from RocketMap to provide a complete, configurable package for Pokemon Go communities.

Notifications You must be signed in to change notification settings

Falaris01/novabot

Repository files navigation

novabot

novabot is a Discord bot that uses data from RocketMap to provide a complete, configurable package for Pokemon Go communities. novabot's features include:

  • Personalised pokemon and raid notifications, delivered by DM.
  • Filter settings based on geofence, suburb, or IV.
  • Automated posting of pokemon/raids to Discord channels.
  • Unique raid coordination system.
  • Optional tiered donator/supporter system using Discord roles to reward members of your community.

You can download the latest release here (Just download the .jar file)

  1. Installation Guides
    1. Windows Installation
    2. Linux Installation
    3. Mac Installation
  2. Configuration
  3. Usage
    1. Basic Examples
  4. FAQ
  5. Discord Support Server
  6. Wiki - WIP

Prerequisites

That's it!

Installation Guides

Windows

Install prerequisites

Java JRE 64-bit

Download and run the offline 64-bit installer from https://java.com/en/download/manual.jsp. Make sure you select the 64-bit installer or novabot will not work correctly.

MariaDB

https://mariadb.org/download/

Create a discord bot, add it to your server, and get the bot token

Follow this guide to create a discord bot, add it to your server, and get its bot token.

Create a new database

In your MariaDB/MySQL terminal, use the below command to create a new database, where name is the desired name of the new database.

create database name;

Once you've created the database, select the database:

use name;

Next, run the DB creation script that can be found here, either by copy and posting the contents of the file into the terminal, or with the source command like so:

source /path/to/file/create-db.sql;

Running novabot

There a two ways of running novabot.

Starting it from cmd.exe (or alternative shell) with:

java -jar novabot.jar

Or simply double clicking the .jar file in Windows Explorer.

You can find the .jar file here.

### Linux

Tested on Ubuntu 16.04

Install prerequisites

Java JRE

Install Java8 through terminal with

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Create a discord bot, add it to your server, and get the bot token

Follow this guide to create a discord bot, add it to your server, and get its bot token.

Create a new database

In your MariaDB/MySQL terminal, use the below command to create a new database, where name is the desired name of the new database.

create database name;

Once you've created the database, select the database:

use name;

Next, run the DB creation script that can be found here, either by copy and posting the contents of the file into the terminal, or with the source command like so:

source /path/to/file/create-db.sql;

Running novabot

There a two ways of running novabot.

Starting it from cmd.exe (or alternative shell) with:

java -jar novabot.jar

Or simply double clicking the .jar file in Windows Explorer.

You can find the .jar file here.

Mac

Detailed instructions not written yet, however, if you install the following dependencies, it should work:

Create a discord bot, add it to your server, and get the bot token

Follow this guide to create a discord bot, add it to your server, and get its bot token.

Create a new database

In your MariaDB/MySQL terminal, use the below command to create a new database, where name is the desired name of the new database.

create database name;

Once you've created the database, select the database:

use name;

Next, run the DB creation script that can be found here, either by copy and posting the contents of the file into the terminal, or with the source command like so:

source /path/to/file/create-db.sql;

Running novabot

There a two ways of running novabot.

Starting it from cmd.exe (or alternative shell) with:

java -jar novabot.jar

Or simply double clicking the .jar file in Windows Explorer.

You can find the .jar file here.

Configuration

Main files

config.ini

example file

geofences.txt

The geofences.txt file is formatted in blocks like this:

[name,alias1,alias2,etc]
lat,lng
lat,lng
lat,lng

These blocks can then be stacked so all your geofences are in the same file like so:

[fence1]
lat,lng
lat,lng
lat,lng
[fence2]
lat,lng
lat,lng
lat,lng
[fence3]
lat,lng
lat,lng
lat,lng

example file

suburbs.txt

suburbs.txt is one suburb per line, for example:

suburb1
suburb2
suburb3
suburb4

example file

formatting.ini

example file

gkeys.txt

gkeys.txt is one Google API key per line

example file

supporterlevels.txt

supporterlevels.txt is formatted like this:

roleId = [max pokemon limit, max raid limit]

example file

raidchannels.ini

raidchannels.ini is formatted in blocks like this:

[channelId]
geofences = all OR a single geofence name (references geofences.txt) OR a list like [geofence1, geofence2]
filter = filename of filter eg: raidfilter.json

Optionally, a formatting parameter can be added:

formatting = filename of formatting file eg: specialformat.ini

example file

raidchats.txt

example file

pokechannels.ini

pokechannels.ini is formatted in blocks like this:

[channelId]
geofences = all OR a single geofence name (references geofences.txt) OR a list like [geofence1, geofence2]
filter = filename of filter eg: pokefilter.json

Optionally, a formatting parameter can be added:

formatting = filename of formatting file eg: specialformat.ini

example file

config.ini variables

token

blacklist

raidBosses

useRmDb

standardRaidTable

googleSuburbField

pokemon

raids

raidChannels

geofences

raidOrganisation

pokePollingRate

pokemonThreads

raidPollingRate

raidThreads

startupMessage

footerText

stats

timezone

countLocationsInLimits

nonSupporterLimit

adminRole

novabotRole

supporterRolees

commandChannel

logging

roleLogChannel

userUpdatesChannel]

Filters

Pokemon filters

Examples:

All 100iv pokemon
{
  "Default": {
    "min_iv": "100"
  }
}
All pokemon above 90 IV; dragonair above 80iv; and all unown
{
  "Default": {
    "min_iv": "90"
  },
  "Dragonair": {
    "min_iv": "80"
  },
  "Unown": "True"
}

Raid filters

Examples:

All eggs and nothing else
{
  "Egg1": "True",
  "Egg2": "True",
  "Egg3": "True",
  "Egg4": "True",
  "Egg5": "True"
}
All raids and eggs
{
  "Level1": "True",
  "Level2": "True",
  "Level3": "True",
  "Level4": "True",
  "Level5": "True"
}
Specific raid bosses only
{
  "Tyranitar": "True",
  "Lugia": "True",
  "Magikarp": "True"
}
Level 3 raid bosses, and level 4+ eggs and bosses
{
  "Machamp": "True",
  "Alakazam": "True",
  "Gengar": "True",
  "Ninetales": "True",
  "Scyther": "True",
  "Omastar": "True",
  "Porygon": "True",
  "Level4": "True",
  "Level5": "True"
}

Usage

Basic Examples

FAQ

How do I get the ID of a channel?

How do I get the ID of a role?

About

A Discord bot that uses data from RocketMap to provide a complete, configurable package for Pokemon Go communities.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%