> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/contributor/contributor-pt/runtime-da-scene/modulos-de-runtime/restricted-actions.md).

# Ações Restritas

O `RestrictedActions` módulo permite que cenas acessem funcionalidades sensíveis (e portanto restritas). Está ligado ao [`permission`](https://github.com/decentraland/docs/blob/main/contributor/content/entity-types/scenes/README.md#permissions) sistema, que as cenas usam para solicitar o uso de métodos individuais.

```ts
const RestrictedActions = require("~system/RestrictedActions");
```

{% hint style="info" %}
Como implementador do World Explorer, seu runtime pode não aplicar permissões. Nós **fortemente** aconselhamos contra isso, pois coloca os jogadores em perigo.
{% endhint %}

A maior parte da funcionalidade restrita é fornecida por este módulo, mas também existem [global functions](https://github.com/decentraland/docs/blob/main/contributor/globals/README.md).

O módulo contém os seguintes métodos e tipos:

* [`function movePlayerTo`](#movePlayerTo)
* [`function teleportTo`](#teleportTo)
* [`function triggerEmote`](#triggerEmote)
* [`function changeRealm`](#changeRealm)
* [`function openExternalUrl`](#openExternalUrl)
* [`function openNftDialog`](#openNftDialog)
* [`function setCommunicationsAdapter`](#setCommunicationsAdapter)
* [`interface Vector3`](#Vector3)

### Methods

Cada um dos métodos abaixo está associado a uma [permission](https://github.com/decentraland/docs/blob/main/contributor/content/entity-types/scenes/README.md#permissions) que pode ser solicitada no manifesto da cena.

**`movePlayerTo`**

Desloca o jogador para uma nova posição relativa à atual e, opcionalmente, define o alvo da câmera com [vectors](#Vector3).

Exige a [`ALLOW_TO_MOVE_PLAYER_INSIDE_SCENE`](https://github.com/decentraland/docs/blob/main/contributor/content/entity-types/scenes/README.md#permissions) permission.

```ts
interface Request {
  newRelativePosition: Vector3;
  cameraTarget?: Vector3;
}

interface Response {
    // Uma vez que o jogador tenha se movido para a nova posição, e se o jogador não interrompeu o movimento, isto será verdadeiro.
  success: boolean;
}

function movePlayerTo(Request): Promise<Response>;
```

**`teleportTo`**

Reposiciona o jogador para uma localização absoluta no mundo dada por um [vectors](#Vector3).

Em vez de exigir uma permissão pré-aprovada, cada chamada a `teleportTo` deve ser aprovada pelo jogador.

```ts
interface Request {
  worldPosition: Vector3;
}

interface Response {}

function teleportTo(Request): Promise<Response>;
```

**`triggerEmote`**

Faz o avatar do jogador exibir uma animação de emote, usando um dos nomes predefinidos.

Exige a [`ALLOW_TO_TRIGGER_AVATAR_EMOTE`](https://github.com/decentraland/docs/blob/main/contributor/content/entity-types/scenes/README.md#permissions) permission.

```ts
interface Request {
  predefinedEmote: string;
}

interface Response {}

function triggerEmote(Request): Promise<Response>;
```

**`openExternalUrl`**

Oferece mostrar um site ao jogador, usando uma UI apropriada (que pode ser outra aplicação).

Exige a [`OPEN_EXTERNAL_LINK`](https://github.com/decentraland/docs/blob/main/contributor/content/entity-types/scenes/README.md#permissions) permission.

```ts
interface Request {
  url: string;
}

interface Response {
  // Se o jogador autorizou a abertura do link.
  success: boolean;
}

function openExternalUrl(Request): Promise<Response>;
```

**`openNftDialog`**

Mostra informações sobre um NFT ao jogador, usando uma UI apropriada.

```ts
interface Request {
  // O URN do NFT.
  urn: string;
}

interface Response {
  // Se o NFT foi localizado com sucesso e referenciou uma imagem ou vídeo.
  success: boolean;
}

function openNftDialog(Request): Promise<Response>;
```

**`changeRealm`**

Altera o World Explorer para outro servidor de conteúdo, usando sua URL base.

```ts
interface Request {
  // A URL do novo realm.
  realm: string;

  // Uma mensagem opcional para mostrar aos usuários quando eles tiverem que aprovar a mudança.
  message?: string;
}

interface Response {
  // Se a mudança de realm foi autorizada e bem-sucedida.
  success: boolean;
}

function changeRealm(Request): Promise<Response>;
```

### Types

O único tipo adicional usado pelos métodos deste módulo é o `Vector3`.

**`Vector3`**

Mantém uma posição 3D relativa ou absoluta.

```ts
interface Vector3 {
  x: number;
  y: number;
  z: number;
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.decentraland.org/contributor/contributor-pt/runtime-da-scene/modulos-de-runtime/restricted-actions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
