All Projects → Mantaro → Mantarobot

Mantaro / Mantarobot

Licence: gpl-3.0
Multipurpose Discord bot made in Java using JDA.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Mantarobot

Bastion
🚀 Get an enhanced Discord experience!
Stars: ✭ 234 (-17.02%)
Mutual labels:  bot, discord-bot, discord
Lenoxbot
🖥️ LenoxBot is a Discord bot that offers many cool new features to your Discord server!
Stars: ✭ 163 (-42.2%)
Mutual labels:  bot, discord-bot, discord
Amongcord
Among Us Discord Bot | Discord bot for controlling voice channels during Among Us matches
Stars: ✭ 144 (-48.94%)
Mutual labels:  bot, discord-bot, discord
Sidekick
Dice and LFG bot for Discord.
Stars: ✭ 254 (-9.93%)
Mutual labels:  bot, discord-bot, discord
Livebot
An app that allows you to be inside a bot!
Stars: ✭ 271 (-3.9%)
Mutual labels:  bot, discord-bot, discord
Poketwo
A Discord bot.
Stars: ✭ 139 (-50.71%)
Mutual labels:  bot, discord-bot, discord
Carl Bot
Bot for discord using discord.py (outdated code)
Stars: ✭ 160 (-43.26%)
Mutual labels:  bot, discord-bot, discord
Modmail
A feature-rich Discord bot for easy communication between server staff and users.
Stars: ✭ 115 (-59.22%)
Mutual labels:  bot, discord-bot, discord
Master Bot
A Discord music bot with playlist support, music quiz, saved playlists, lyrics, gifs and more
Stars: ✭ 204 (-27.66%)
Mutual labels:  bot, discord-bot, discord
Discord Spam Bots
Discord spam bots with multiple account support, account creator, auto-join, proxies, mass direct message and more.
Stars: ✭ 173 (-38.65%)
Mutual labels:  bot, discord-bot, discord
Calypsobot
A fully customizable bot built with discord.js
Stars: ✭ 131 (-53.55%)
Mutual labels:  bot, discord-bot, discord
Nostrum
Elixir Discord Library
Stars: ✭ 274 (-2.84%)
Mutual labels:  bot, discord-bot, discord
Discord.js
discord.js is a powerful Node.js module that allows you to easily interact with the Discord API.
Stars: ✭ 16,432 (+5726.95%)
Mutual labels:  bot, discord-bot, discord
Mirai
The core for Mirai Bot v4 [Deprecated]
Stars: ✭ 142 (-49.65%)
Mutual labels:  bot, discord-bot, discord
Bot
An open-source and self-hosted ticket management bot for Discord - a free alternative to the premium and white-label plans of other popular ticketing bots.
Stars: ✭ 122 (-56.74%)
Mutual labels:  bot, discord-bot, discord
Octave
Discord bot written in Java and Kotlin using JDA.
Stars: ✭ 156 (-44.68%)
Mutual labels:  bot, discord-bot, discord
Discord.js Musicbot Addon
This DOES NOT WORK any more. This repo only serves as an archive for is anyone wants to pickup my work. You may still join the discord however.
Stars: ✭ 109 (-61.35%)
Mutual labels:  bot, discord-bot, discord
Discord Panel
📊 User friendly dashboard/tool for discord bot developpers to manage servers
Stars: ✭ 116 (-58.87%)
Mutual labels:  bot, discord-bot, discord
Discord.ts
🤖 Create your discord bot by using TypeScript and decorators!
Stars: ✭ 172 (-39.01%)
Mutual labels:  bot, discord-bot, discord
Mathbot
Discord bot for mathematics
Stars: ✭ 207 (-26.6%)
Mutual labels:  bot, discord-bot, discord
Mantaro Complete and configurable music, currency and games multipurpose Discord bot

Using the Official Mantaro Bot

Just one click and you can add Mantaro to your own server and enjoy its full feature set!

You can see more information about the bot itself by reading the summary on here. This is the file we use to publish our bots on bot lists, too. You're welcome to use it as a guide for your own. Our webpage is hosted in Github Pages and outlines most features of the bot, alongside some useful links.

Building your own Mantaro

Read before attempting

The owners of Mantaro do not recommend compiling Mantaro as it is not documented, and most builds here will be extremely unstable and (probably) untested, probably including unfinished features. There's no stable branch, all the features are immediately added to upstream.
You will however sometimes see a legacy branch, a branch we create before publishing larger update containing working code, it is highly recommended basing your building process from the legacy branch, as the master branch will very likely contain broken and non-working code, at least in a case where a legacy branch exist.

We will not provide any support whatsoever in selfhosting or building the bot by yourself. The reason for this is not only that the builds in here can be highly unstable, but also that there are very few people (two) who could actually help with questions regarding this, most of which are busy and not available to answer said questions. Most of the build process is pretty straightforward and outlined below, though.

Building the Bot

Prerequisite:

You will need the following to utilize all of Mantaro's features when building your own instance (items marked with a star are optional):

  • RethinkDB, at least version 2.4
  • Java Development Kit, version 15 (not lower!)
  • Redis, at least version 6
  • Wolke's Weeb API (For most of the action commands)*

We will not provide any support whatsoever in obtaining any of the above.

Note: The bot does not necessarily need the Weeb API key to function, but some functionality might be limited by the lack of them (no action commands). Due to the closed nature of that API, we encourage you to submit a patch that would allow custom images to be used on self-hosted instances if you'd like (ex. by pushing your own -local- API server), but keep them in line with the rest of the code.

Editing Code:

Mantaro isn't a modular bot (sadly), but removing features is fairly easy. You can just remove the respective command or the Module file on the commands directory and everything should still work. The exception are some Modules that are required by other Modules. Make sure you pay close attention to the license as you will be required to disclose your source as well as state any changes made.

Steps for building:

Please do note that you will not receive any help whatsoever while trying to make your own Mantaro build (see above).

  1. Make sure you have the prerequisites installed and running.
  2. Clone this repository (you can also fork this repo and clone your fork).
  3. Open a terminal (cmd.exe or any linux terminal) in the folder where you cloned this on.
  4. Run gradlew shadowJar
  5. Grab the jar from build/libs
  6. Install rethinkdb and redis
  7. On rethinkdb, create the mantaro database with the following tables: mantaro, players, marriages, playerstats, users, guilds, keys, commands, seasonalplayers
  8. Run it, wait a little for the bot to generate a file called config.json
  9. Prepare yourself to start filling in some config values. You don't need to fill all values, though. The token and the user id are necessary to start up, you wanna set the owner IDs aswell to be able to use owner commands. Values you need to fill: token clientId, values you need to change: "bucketFactor" : 1 "isSelfHost" : true.
  10. In config.json, you might want set the value needApi to false, or clone and run the API)

Extra runtime options:

This are java arguments that Mantaro parses outside of config.json at startup and that can be dynamically adjusted using a script, a systemd service or similar:

  • -Dmantaro.node-number=x - Specify the number of this node (important if you use more than once instance)
  • -Dmantaro.shard-count=x - Specify the amount of shards Mantaro will be starting up. (for all nodes, see below for subsets)
  • -Dmantaro.from-shard=x - Start Shard Manager from shard X. (inclusive)
  • -Dmantaro.to-shard=y- Start Shard Manager up to shard Y. (exclusive)
  • -Dmantaro.verbose - Log all the things.
  • -Dmantaro.verbose_shard_logs - Show all shard status changes.
  • -Dmantaro.debug - Start Mantaro with two shards and some extra logging, regardless of the settings above.
  • -Dmantaro.debug_logs - Use debug logs.
  • -Dmantaro.trace_logs - Spam your logs.
  • -Dmantaro.log_db_access - Log all db access. (spams your logs aswell)
  • -Dmantaro.disable-non-allocating-buffer - Disable LP's non-allocating buffer.

The above options can also be used as environment variables by removing -D, and replacing . with _, for example, -Dmantaro.node-number=x becomes environment variable MANTARO_NODE_NUMBER=x

Tools and Contributors

Tools Mantaro uses

Important Contributors

Many thanks to

  • @natanbc - A lot of backend improvements and developing. Active.
  • @haxiz - Responsible for maintaining user-facing documentation.
  • @mrlar - Wrote most of the user-facing documentation (no longer maintaining it). Responsible for maintaining/running the Support-Server.
  • @adriantodt - Backend development on the early stages of the bot. Was crucial to the development and thanks to him this bot is what it is now. Inactive.

And a lot more people. Check the Contributors tab!

Want to contribute? Join our server and ask in the support channel for what we need help with (you may need to wait with receiving an answer.).
Alternatively send us a Pull Request with what you see fit/think we need. However, this process may end in a rejected PR more easily.

Thanks to Crowdin for providing our project with a free OSS license to continue our localization efforts.

Legal Stuff

Using our code

Give credit where credit is due. If you wish to use our code in a project, please credit us, and take your time to read our full license. We don't mind you using Mantaro code, as it is open-source for a reason, as long as you don't blatantly copy it or refrain from crediting us. Take special care of following the license aswell.

License

Copyright (C) 2016-2021 David Rubio Escares / Kodehawa

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

The full license can be found here.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].