
# Magicbane Open-Source MMO Project
### *The Community written Shadowbane emulator*
[Magicbane](http://www.magicbane.com)
[Public Repository](http://repo.magicbane.com)
> Magicbane is an emulator for the long dead but much beloved Ubisoft MMO, [Shadowbane](https://en.wikipedia.org/wiki/Shadowbane).
The project was founded in 2013 with the concept of free availability of gameplay; players unencumbered by any factor other than a desire to again play a game they once loved. A game where the developers do not play is guaranteed to be the fairest game.
The Magicbane Team has wanted to open source Shadowbane for half a decade. We are excited to now finally have the opportunity, along with some new technology, to truly democratize Shadowbane.
- Written in some 80k lines of Java 8 and bash.
- Project with real infrastructure; Production and development servers supporting multiple containerized apps.
- MagicBox container technology enables _instant deployment_ and trouble free development on modest hardware.
- MagicBox plugin capability allows for new and interesting player experiences.
## Contributing
- Inbound == Outbound.
- IntelliJ is the supported IDE.
- Write code today see it running on the Magicbane production server tomorrow.
## Project setup
**Prerequisites**:
- Git
- IntelliJ
- Java 8 JDK
- Account on the Magicbane [Public Repository](http://repo.magicbane.com)
Copy the HTTP link if you haven't yet installed a public key:

- Clone the Magicbane public repo to your local machine using the copied URL.

- Under Settings->VersionControl->Git make sure to turn off these two settings.

- Select the Project Structure settings within the IDE.

- Select Java 8 as the IDE target as shown.

- Delete and recreate content root pointing at the **Server** directory.
- Make sure the Language Level still reflects Java 8.
- The IDE should now autodetect the cloned source.

Magicbane currently has the following dependencies.
- [EnumBitSet](https://github.com/claudemartin/enum-bit-set)
- [HikariCP](https://github.com/brettwooldridge/HikariCP)
- [JDA](https://github.com/DV8FromTheWorld/JDA)
- [JodaTime](https://github.com/JodaOrg/joda-time)
- [TinyLog](https://github.com/tinylog-org/tinylog/tree/v1.3)
- [MySqlConnector](https://dev.mysql.com/downloads/connector/j/)
They are all directly obtainable from a running MagicBox instance.
``` docker cp magicbox:/usr/share/java/EnumBitSet.jar Dependencies/```
Add the jar files as project libraries as shown.

You should now be able to build the game!

### What now?
Support is available through the repo Wiki or in the Magicbane Discord server. Feel free to come in and pick MagicBot's brain!