# Contas e modpacks

O modpack diz ao launcher o que instalar e em qual servidor entrar. As contas ligam o login do
launcher ao login que o seu servidor já usa.

## Modpacks

Um modpack junta o endereço do servidor, a versão do Minecraft e os arquivos que o jogador
precisa ter para entrar. Você cria quantos o seu plano permitir.

![A tela de modpacks com os arquivos de cada um](shots/launcher-modpacks.webp)

### Criar um modpack

1. Em **Launcher > Servidores**, clique em **Novo modpack**.
2. Preencha como no exemplo abaixo.
3. Clique em **Criar modpack**.

![A janela de novo modpack](shots/launcher-modpack-new.webp)

```text Exemplo de modpack
Nome: Survival
Endereço do servidor: jogar.redepixel.com.br
Versão do Minecraft: 1.20.1
Loader: Fabric
Versão do loader: 0.15.11
Java: 17
RAM mínima: 2048 MB
RAM ideal: 4096 MB
```

| Campo | O que faz |
| --- | --- |
| **Loader** | **Vanilla** para jogar sem mods, ou o carregador de mods do seu servidor |
| **Java** | A tela mostra o mínimo para a versão escolhida |
| **RAM mínima** e **RAM ideal** | A mínima não pode ser maior que a ideal |
| **Modpack principal** | É o que abre por padrão. Só um pode ser o principal |
| **Conectar automaticamente** | Entra direto no servidor ao abrir o jogo |

### Enviar os arquivos

No cartão do modpack:

- **Enviar arquivos**: até 5 por vez. `.jar` é mod, `.zip` é recurso, e também vale arquivo de
  configuração;
- **Importar .zip de mods**: para muitos mods de uma vez, junte todos num `.zip`. O painel abre e
  envia um por um, e mostra um relatório do que ficou de fora.

Na lista de arquivos, **Opcional** deixa o jogador escolher se quer aquele arquivo, e **Android**
diz se ele vai também para o celular.

> [!NOTE]
> Um resource pack também é um `.zip`, e sobe inteiro por **Enviar arquivos**. Use **Importar .zip
> de mods** só para o pacote de mods.

Os jogadores recebem no próximo start. O que você muda entra sozinho no changelog.

## Changelog

Em **Launcher > Changelog**, a lista se monta sozinha conforme você mexe nos modpacks.

![O changelog: o que sai na próxima atualização e as versões publicadas](shots/launcher-changelog.webp)

**Na próxima atualização** mostra o que ainda não chegou aos jogadores: entra no changelog no
próximo build publicado. Em cada mudança, escreva se quiser o que ela faz, porque o jogador entende
melhor uma frase do que o nome de um arquivo:

```text Exemplo de descrição
sodium-1.20.1.jar: deixa o jogo mais leve
```

## Contas e login

Se o seu servidor usa nLogin, AuthMe ou um banco próprio, aponte a Hystore para a tabela de contas
dele. Assim o jogador entra no launcher com o mesmo nick e a mesma senha do servidor. Sem isso, o
launcher recusa criar conta: conta de jogador nasce no servidor.

![A tela Contas e login: plugin, banco e colunas](shots/launcher-auth.webp)

1. Em **Launcher > Contas e login**, escolha o **Plugin**. O mapeamento de tabela e colunas é
   preenchido com o padrão dele. Ajuste se mudou algo no seu servidor.
2. Em **Banco do servidor**, preencha **Host**, **Porta**, **Banco**, **Usuário** e **Senha**.
3. Em **Formato do hash**, deixe **AUTO**, que detecta o formato de cada conta.
4. Clique em **Salvar** e depois em **Testar conexão**.

> [!WARNING]
> Um mapeamento errado faz todos os jogadores receberem "senha incorreta". Sempre teste depois de
> salvar: o teste usa a configuração guardada e mostra quantas contas encontrou e quais formatos não
> conseguem entrar.

> [!TIP]
> Crie no banco um usuário só para isso, com o mínimo de permissão. A senha nunca volta da API:
> deixe o campo vazio para manter a que já está guardada.

| Opção | O que faz |
| --- | --- |
| **Login no launcher** | Liga o login com esta configuração |
| **Permitir criar conta pelo launcher** | O jogador cria a conta sem entrar no servidor antes |
| **Criar o jogador na loja no primeiro login** | Cria o jogador na loja quando ele entra pela primeira vez |
| **Permitir que a Hystore grave no banco do servidor** | Trocas de senha e migração de hash fraco escrevem na sua tabela. Deixe desligado se não precisar |
