Giter VIP home page Giter VIP logo

obsidian's Introduction

Obsidian

Obsidian is a multipurpose discord bot made using the nyxx discord API wrapper in the dart language.

Features

  1. Moderation
  2. Fun
  3. Utilities

Read TODO.md for a list of commands and the completeness of each.

Dev Installation

  • Normal installation

    • Downloading the repository

      • Open your terminal and run the following:

        $ git clone https://github.com/dhzdhd/Obsidian.git
        $ cd Obsidian
    • Make a .env in the working directory as per .env-example

    • (Optional) Install and run Lavalink server for music

      • Install latest Java JDK

      • Add java-JDK-13 to PATH environment variable as JAVA_HOME

      • Change the directory to lavalink_server and run the Lavalink.jar file

        $ cd lavalink_server
        $ java -jar Lavalink.jar
    • Running the bot

      • Open a new terminal window/tab.

      • Install Dart and necessary plugins for your editor. Make sure you are running the latest version of dart.

      • Run the following:

        $ cd Obsidian   # If you are not already in the directory
        $ dart pub upgrade
        $ dart pub get
      • Run the bot:

        $ dart run
  • With docker

    • Download the repository as given in step 1 in the above section.

    • Make a .env file as per step 2

    • Install docker and docker-compose

    • Run docker-compose to build and run.

      $ docker-compose -f docker-compose.yml up --build -d

Self Hosting

You can self host the bot easily using docker

  • Install docker and docker-compose from docker website for Windows/MacOS and from your preferred package manager in Linux.
  • Download the docker-compose-host.yml file.
  • Make an .env file and populate as given in .env-example
  • Run the bot and music server docker-compose -f docker-compose-host.yml up
  • Add a -d flag to the above command to run it in the detached mode (No logs).

Contributing

Note: If you want to contribute you can open a new issue. The issue should be discussed and accepted before you start working on the issue. Do not open a pull request if you aren't assigned to the issue.

  1. Create a new branch using git checkout -b <name of new local branch> master. Make sure the branch name is related to the feature or fix you are working for.

  2. Don't forget to write good commits. Please try to avoid making minor commits.

  3. Lint and format your code properly and push the changes using git push -u origin <name of new remote branch>.

obsidian's People

Contributors

akulb42 avatar arnav-2004 avatar dhzdhd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

arnav-2004

obsidian's Issues

Perms error embeds

The current mod/admin/owner permission error message is not a embed, an errorEmbed would be better in its place.

Github pages

Implement documentation for every command in gh-pages

Timed messages

Add a timer - deleteMessageWithTimer() for every error/success embed.

[DOCS] Contributing Guide

Adding a contributing guide would help people to better understand how to contribute to this repository properly.

Migrate to sveltekit

Migrate to sveltekit for bot dashboard + docs for easier development and flexibility.

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.