📋 Table of Contents
Fusionverse is a discord server I made for a fictional world I am building with my friends. Since we want a very immersive experience, I designed and implemented this discord bot in my favorite language - Java - in order to have a sort of character creation process on first join, and other useful utilities I always found lacking in the past.
This section will walk you through setting up the project locally. You can also consult the Contributing Guide for more information.
Before you can setup the project, you need to have the following installed and/or prepared:
-
Java 21
-
Gradle
-
PostgreSQL Database (Optional)
If you do not have a local PostgreSQL database, you can run a local instance using docker:
docker run -d -p 5432:5432 -e POSTGRES_USER=fvbot -e POSTGRES_PASSWORD=fvbot postgres
-
A discord bot token
If you do not have a token, you can get one here
After you clone the project using git or github cli (concrete commands here), you need to install the project dependencies using the appropriate package manager.
Since this is a gradle project, all you need to do is open it in your IDE
(which supports Gradle), or run gradle in the root directory of the repo.
To build the project, you can follow the steps below:
-
Make sure you are in the root of the repository directory
-
Run the command below
docker build . -t fvBot:latest
Alternatively, if you do not want a docker image, you can run this command:
gradle bootjarTo run unit tests, you can use the command below.
gradle boottestTo run the app without building, you can use the command below.
gradle bootrunYou may need to do a gradle clean first in some cases.
Make sure you have the fvBot jar or docker image on the machine you intend to use for hosting. Also make sure you have your bot token. If you don't, you can get one here.
You can specify a bot token by creating a fvbot.properties file and setting
the fvbot.token property to your token as such:
fvbot.token=your.token.hereThis must be in the directory from which you are running the bot.
- 1.0.0 Release
- Welcome
- Character Creation
- Title System
- Welcome
- 2.0.0 Release
- Math
- Eval
- LaTeX
- Dice
- Probability / Chance
- Math
- 3.0.0 Release
- Currency System
- Item DB
- Equipment
-
GamblingMethod of obtaining items - Item Creator
- Crafting
- Character DB
- Lore DB / Wiki
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated!
-
Fork the project.
-
Create your feature branch:
git checkout -b feature/amazing-feature
-
Commit your changes:
git commit -m "Add some amazing feature" -
Push to the branch:
git push origin feature/amazing-feature
-
Open a pull request.
For more detailed guidelines, check out CONTRIBUTING.md.
If you encounter any issues or have questions, feel free to:
- Open an issue in the Issues tab.
- Open a discussion in the Discussions tab.
- Reach out via email at hyscript7@gmail.com.
- Contact the repository maintainer on discord: @hyscript7
We're here to help!
This project is licensed under the BSD 3-Clause "New" or "Revised" License - feel free to use, modify, and distribute this project in accordance with the license terms.
I would like to express my deepest gratitude to the following individuals and organizations:
- JDA by dv8tion - for the amazing discord API wrapper, which this project wouldn't be possible without.
- Spring.io - for making development easier.
- AngrytrashCZ, Spelis and all my other friends - for their invaluable advice and troubleshooting help.
- @SomeKristi - for reading out every file in this repository out loud like a TTS bot, and catching a bunch of oversights and bugs.