# Welcome to ELDependenci

{% hint style="danger" %}
English translation are not yet finished. Maybe you can try some translator tools?
{% endhint %}

### Introduction <a href="#intro" id="intro"></a>

This framework mimics the extensive use of dependency injection in ASP. NET from instance injection, service injection to yaml mapping object injection. All injected instances can be used through the life cycle, instructions, event listeners, and all injected instances. In addition, service injection provides an API development environment based on interface programming, which facilitates the implementation of SOLID principles and increases scalability and maintainability.

### Advantage <a href="#pros" id="pros"></a>

In the advantage of DI, you don't need to

* create lots of static variable
* initialize instance from another instance
* inject many singletons from your constructor

Moreover, this framework has been designed its own style different with Bukkit API, like

* Extremely easy to create sub commands
* Command argument parsing
* Subscribe event and filter&#x20;
* Extremely easy to manipulate yaml with ORM
* Extremely easy to manipulate multiple yamls inside a folder

### This documentation will bring you to <a href="#index" id="index"></a>

* How to create your first plugin from using the ELD framework
* How to create command, event listener and configuration
* How to register your first singleton
* How to create your first Service (API)
* The API tutorial inside this framework&#x20;

{% hint style="info" %}

#### Before starting the tutorial, you may need to understand

* [what is dependency injection](https://en.wikipedia.org/wiki/Dependency_injection)
* [bukkit plugin development tutorial](https://bukkit.gamepedia.com/Plugin_Tutorial)
* [How to use maven](https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html)

**This framework are using JDK11 to run.**
{% endhint %}
