Coder Social home page Coder Social logo

markozajc / libot Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 741 KB

[mirror] A multi-purpose Discord bot

Home Page: https://libot.eu.org/

Shell 0.57% Java 99.43%
akinator blackjack-game discord-bot discord-music-bot jda-bot pandorabots qalculate uno-game urbandictionary

libot's Introduction

LiBot ==========

LiBot (https://libot.eu.org/) is a multi-purpose Discord bot. This is the
parent artifact encompassing all other Maven modules.

Get LiBot: . . . . . . . . . . . .  https://libot.eu.org/get
Or try it out in the support guild: https://discord.gg/asDUrbR


Building LiBot --------------
    Prerequisites:
       - Maven 3.2.5 or up (https://maven.apache.org/download.cgi)
       - JDK 17 or up (https://adoptium.net/)
       - qalculate-helper (https://git.zajc.eu.org/libot/qalculate-helper.git,
         optional if you want *calculator from module-utilities to work)

    Building:
       Building LiBot should be rather easy:
       
          $ git clone git://git.zajc.eu.org/libot/authoritative.git libot
          $ cd libot
          $ mvn clean package -DoutputLocation=/output/path

       (change /output/path to your preferred output destination) 
       If you would only like to build one module:
       
          ...
          $ mvn clean package -DoutputLocation=/output/path -pl 'module' -am

    Setting up the environment:
       LiBot takes configuration from environment variables, which means they
       need to be set up before running it. The following variables are
       required:
          - BOT_PREFIX: the default command prefix used by the bot
          - DATA_TYPE: the way LiBot stores runtime data. "file" for
                       persistent storage or "memory" to keep data in RAM.
          - DATA_PATH: a directory where persistent data is kept if DATA_TYPE
                       is "file"
          - SHRED_TOKEN_name: discord API tokens for shreds. You can define
                              multiple shreds by changing "name" to the
                              desired shred name, eg. SHRED_TOKEN_APOLLO for a
                              shred named APOLLO
       The following environment variables are optional:
         - BOT_SYSADMINS: a comma-separated list of discord user IDs for the
                          bot's administrators. Administrators are permitted
                          to run commands from 'module-administrative'. They
                          are also sent any uncaught exception stacktraces.
         - RESOURCE_GUILDS: a comma-separated list of "resource guilds", guilds
                            containing emoji used by other commands. Resource
                            guilds exempt from shred clash resolution, and
                            warning messages are issued if any of the shreds is
                            not in a particular resource guild.
         - QALCULATE_HELPER_PATH: path to the built qalculate-helper binary.
                                  Required for *calculator from module-utils to
                                  work.
         - QALCULATE_HOME_PATH: path to the home of the user running
                                qalculate-helper. Required for exchange rate
                                updating to work.
         - GOOGLE_TOKENS: google search API tokens. Required for *google of
                          module-search to work.
         - YOUTUBE_EMAIL: a youtube account's email. LiBot may not play
                          age-restricted youtube videos without this, but for
                          some reason it works for me, so it may be geolocked.
         - YOUTUBE_PASSWORD: a youtube account's password. Same reason as for
                             YOUTUBE_EMAIL.
         - MANAGEMENT_PORT: the port that LiBot's read-only management server
                            should run on. It has a couple of functions such
                            as choosing the best shred ID to authorize and
                            giving out stats.

    Running LiBot:
       The easiest way to run LiBot is to run it directly with Maven:
       
          $ ./run
          
       This will also take care of building LiBot and setting up the
       environment by reading it from .env in key=value pairs (so make sure you
       create that file first).
       If you would instead like to run built module jars, you need to put them
       on the classpath and run the libot.Main class:
       
          $ java -cp \
             /modules/core.jar:\
             /modules/module-first.jar:\
             /modules/module-second.jar:\
             /modules/module-last.jar\
             libot.Main

       You can specify as many modules as you want, while core.jar is mandatory.

libot's People

Contributors

markozajc 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.