> For the complete documentation index, see [llms.txt](https://julion-n.gitbook.io/bulb/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://julion-n.gitbook.io/bulb/first-steps/adding-listeners.md).

# Adding listeners

We can create Listeners that have direct access to the GameManager of our minigame, to start we will need to create it.

```java
public class MyListener extends GameInstanceListener<MyMinigame, MyPlugin> {

    public MyListener(GameManager<MyMinigame, MyPlugin> gameManager) {
        super(gameManager);
    }
    
}
```

Once created, we can start adding the events we need, in this case, we are going to add one that detects when a player joined to the server and joins them directly to the minigame.

```java
public class MyListener extends GameInstanceListener<MyMinigame, MyPlugin> {

    public MyListener(GameManager<MyMinigame, MyPlugin> gameManager) {
        super(gameManager);
    }
    
    @EventHandler
    public void onJoin(PlayerJoinEvent event){
        Player player = event.getPlayer();
        this.gameManager.joinPlayer(player);
    }
    
}
```

Now you only need to add it to the GameManager

```java
public final class MyPlugin extends JavaPlugin {

    @Override
    public void onEnable() {
        ...
        minigameManager.registerListeners(
                MyListener::new
        );
    }

}
```

And that's it! You now have a Listener with direct access to the Game Manager to add functionalities to your minigame.
