> For the complete documentation index, see [llms.txt](https://altata01.gitbook.io/dreamnetwork-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://altata01.gitbook.io/dreamnetwork-docs/java-api-for-developers/setup.md).

# Setup

### Step 1: Adding JAR file into the project

{% tabs %}
{% tab title="Maven" %}

```xml
<dependency>
            <groupId>be.alexandre01.dreamnetwork</groupId>
            <artifactId>DreamNetwork-Plugin</artifactId>
            <version>1.3.0-SNAPSHOT</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/libs/DreamNetwork-Plugin-api.jar</systemPath>
</dependency>
```

You need to set the code block in your dependencies inside your pom.xml
{% endtab %}
{% endtabs %}

### Step 2: Create and register a Bukkit/Bungee Listener

Create Listener class

{% tabs %}
{% tab title="Spigot Listener Class" %}

```java
public class InitializeListener implements Listener {
    final MainClass main;
    public InitializeListener(MainClass main){
        this.main = main;
    }
    @EventHandler
    public void onInitialize(ServerAttachedEvent event){
        main.setSpigotAPI((DNSpigotAPI) DNSpigotAPI.getInstance());
    }
}
```

{% endtab %}

{% tab title="Bungee Listener Class" %}

```java
public class InitializeListener implements Listener {
    final MainClass main;
    public InitializeListener(MainClass main){
        this.main = main;
    }
    @EventHandler
    public void onInitialize(ServerAttachedEvent event){
        main.setBungeeAPI((DNBungeeAPI) DNBungeeAPI.getInstance());
    }
}
```

{% endtab %}
{% endtabs %}

Register Listener

{% tabs %}
{% tab title="Spigot Main Class" %}

```java
public final class MainClass extends JavaPlugin {
    private static MainClass instance;
    private DNSpigotAPI dnSpigotAPI;

    @Override
    public void onEnable() {
        instance = this;
        getServer().getPluginManager().registerEvents(new InitializeListener(this),this);
    }

    public DNSpigotAPI getSpigotAPI() {
        return dnSpigotAPI;
    }

    public void setSpigotAPI(DNSpigotAPI dnSpigotAPI) {
        this.dnSpigotAPI = dnSpigotAPI;
    }
    public static MainClass getInstance() {
        return instance;
    }
}

```

{% endtab %}

{% tab title="Bungee Main class" %}

```java
public final class MainClass extends Plugin{
    private static MainClass instance;
    private DNBungeeAPI dnBungeeAPI;

    @Override
    public void onEnable() {
        instance = this;
        getProxy().getPluginManager().registerListener(new InitializeListener(this),this);
    }

    public DNBungeeAPI getBungeeAPI() {
        return dnBungeeAPI;
    }

    public void setBungeeAPI(DNBungee bungeeAPI) {
        this.dnSpigotAPI = dnSpigotAPI;
    }
    public static MainClass getInstance() {
        return instance;
    }
}

```

{% endtab %}
{% endtabs %}
