Correção de bugs: - Corrigido: Duplicação ao mover itens além do disponível

- Corrigido: Itens renomeados perdendo nome
- Corrigido: Shulker boxes mesclando incorretamente
This commit is contained in:
2025-12-11 19:04:38 -03:00
parent 4e549d8d7d
commit ac26b22379
16 changed files with 204 additions and 53 deletions

View File

@@ -1,47 +1,75 @@
[![Arch Linux](https://img.shields.io/badge/Arch_Linux-1793D1?style=for-the-badge&logo=arch-linux&logoColor=white)](https://archlinux.org)
# Backpack Infinita
🧳 **Backpack Infinita**
Plugin para Minecraft que adiciona uma mochila infinita ao servidor, permitindo armazenar itens ilimitados com paginação e controle preciso de quantidades.
Um plugin simples e eficiente para servidores **Spigot/Paper/Purpur**, que adiciona **mochilas infinitas** ao Minecraft.
Os jogadores podem armazenar itens em mochilas virtuais, salvas automaticamente no banco de dados — sem limite físico de inventário!
## Funcionalidades
---
- **Mochila Infinita**: Armazenamento ilimitado com paginação (45 itens por página)
- **Comando**: `/backpack` ou `/bp` para abrir a mochila
- **Controle de Quantidades**:
- Clique esquerdo: Move 1 item para o cursor (permite escolher onde colocar)
- Clique direito no inventário: Coloca 1 item do cursor no slot
- Shift + clique esquerdo: Move o stack todo diretamente
- **Suporte a Itens Renomeados**: Preserva nomes customizados
- **Shulker Boxes**: Tratamento especial - não mesclam para evitar duplicação de conteúdo
- **Limites de Segurança**: Máximo 1000 itens por mochila, validação contra itens inválidos
- **Persistência**: Dados salvos em SQLite, sobrevive reinícios
- **Sistema de Cursor**: Controle preciso ao mover itens entre mochila e inventário
**Funcionalidades**
## Instalação
- 🎒 Mochila virtual infinita (sem limite de páginas físicas)
- 💾 Salvamento automático via **SQLite**
- 🔄 Itens persistem após reiniciar o servidor
- 🔐 Dados atrelados ao **UUID** do jogador
- ⚙️ Compatível com Minecraft 1.20+
1. Baixe o JAR mais recente do plugin
2. Coloque o arquivo no diretório `plugins` do seu servidor Minecraft
3. Reinicie o servidor ou use `/reload`
4. Configure permissões se necessário
---
## Como Usar
📦 **Comandos**
1. Digite `/backpack` no chat para abrir sua mochila
2. **Para tirar itens da mochila**:
- Clique esquerdo: Pega 1 item no cursor
- Shift + clique esquerdo: Move stack todo diretamente pro inventário
3. **Para colocar itens no inventário** (com item no cursor):
- Clique esquerdo no slot vazio: Coloca stack todo
- Clique direito no slot vazio: Coloca 1 item
4. **Para mover itens pro mochila**:
- Shift + clique esquerdo no item: Move diretamente
- Clique esquerdo no item: Move pro cursor
5. **Shulker Boxes**: Sempre ficam separadas na mochila para preservar conteúdo
| Comando | Descrição | Permissão |
|----------|------------|-----------|
| `/backpack` | Abre a mochila infinita do jogador | `backpack.use` |
| `/backpack reload` | Recarrega as configurações | `backpack.admin` |
## Permissões
---
- `backpack.use`: Permite usar o comando /backpack (padrão: todos os jogadores)
🧠 **Como funciona**
## Desenvolvimento
O plugin cria uma mochila virtual personalizada para cada jogador.
Os itens são serializados em **Base64** e armazenados no banco de dados `backpack.db` localizado na pasta do plugin.
Quando o jogador entra ou usa o comando `/backpack`, o inventário é carregado instantaneamente.
### Pré-requisitos
- Java 21
- Maven
---
### Compilação
```bash
mvn clean package
```
⚙️ **Instalação**
O JAR será gerado em `target/backpack-infinita-1.1.jar`
1. Baixe o arquivo `.jar` do plugin.
2. Coloque-o na pasta `plugins/` do servidor.
3. Reinicie o servidor.
4. Use `/backpack` dentro do jogo!
### Estrutura do Projeto
- `src/main/java/`: Código fonte
- `src/main/resources/`: Configurações (plugin.yml)
- `pom.xml`: Dependências Maven
---
## Bugs Conhecidos e Fixes
📁 **Estrutura do projeto**
- Corrigido: Duplicação ao mover itens além do disponível
- Corrigido: Itens renomeados perdendo nome
- Corrigido: Shulker boxes mesclando incorretamente
- Corrigido: Problemas com sistema de cursor
## Suporte
Para bugs ou sugestões, abra uma issue no repositório.
## Licença
Este projeto está sob a licença GNU Lesser General Public License v3.0. Veja LICENSE para detalhes.