# addEventHandler (Compartilhado)

> Faz uma função ser chamada sempre que o evento acontece no elemento indicado ou, com `propagate`, em qualquer descendente dele.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Função Lua
- **Lado**: Compartilhado
- **Categoria**: Eventos
- **URL**: https://wiki.mymp.gg/pt/addEventHandler

## Sintaxe

```lua
bool addEventHandler(string eventName, element attachedTo, function handler [, bool propagate = true, string priority = "normal"])
```

## Parâmetros

| Nome | Tipo | Descrição |
| --- | --- | --- |
| `eventName` | `string` | Nome de um evento já registrado (embutido ou criado com `addEvent`). |
| `attachedTo` | `element` | Elemento que o handler escuta. Use `root` para ouvir o evento em qualquer elemento. |
| `handler` | `function` | Função chamada com os argumentos do evento. |
| `propagate` | `bool` | Também ser chamado quando o evento acontece num descendente de `attachedTo`. Com `false`, só quando a fonte é o próprio `attachedTo`. *(padrão: `true`)* |
| `priority` | `string` | `"high"`, `"normal"` ou `"low"`. Handlers de prioridade maior rodam antes; entre iguais, na ordem em que foram adicionados. *(padrão: `"normal"`)* |

## Retorno

`true` se adicionou, `false` se o evento não existe ou essa função já está nesse evento desse elemento.

Dentro do handler, as globais `source` (onde o evento aconteceu), `this` (o elemento ao qual o handler está preso), `eventName`, `client` (o jogador que disparou um evento remoto, no servidor) e `sourceResource` dizem de onde o evento veio. Os handlers de um recurso são removidos quando ele para.

## Exemplo

```lua
addEventHandler("onPlayerJoin", root, function()
    outputDebugString(getPlayerName(source) .. " joined")
end, true, "high")
```

### Vindo do MTA

Só os nomes `high`, `normal` e `low` contam. Um ajuste como `"high+5"` vale o mesmo que `"normal"`.

## Veja também

- [removeEventHandler (Compartilhado)](https://wiki.mymp.gg/pt/removeEventHandler.md): Tira uma função de um evento de um elemento, onde ela foi posta com addEventHandler.
- [addEvent (Compartilhado)](https://wiki.mymp.gg/pt/addEvent.md): Registra um evento novo com esse nome. Só depois disso é possível adicionar handlers a ele e dispará-lo.
- [triggerEvent (Compartilhado)](https://wiki.mymp.gg/pt/triggerEvent.md): Dispara um evento neste lado, em source. Os handlers do próprio elemento e os de seus ancestrais que propagam são chamados na hora, antes de a função retornar.
- [getEventHandlers (Compartilhado)](https://wiki.mymp.gg/pt/getEventHandlers.md): Lista as funções que este recurso pôs num evento de um elemento com addEventHandler.
