All Mods Resource Packs Data Packs Shaders Modpacks Plugins
DK KITS

DK KITS

by Unknown • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

DK Kits

What it is: A powerful plugin to create, edit, and give kits via GUI, with per-kit permissions, per-player cooldowns, pagination, hidden kits, and immediate cooldown support. Fully compatible with Minecraft 1.8.8 to 1.21+ (Paper, Spigot, and Folia).

How it works

Creation Wizard

  • Set name via chat
  • Toggle permission requirement
  • Set permission node (if needed)
  • Capture items from your inventory
  • Confirm creation

Editing

  • Rename kit (with conflict checking)
  • Toggle permission and set node
  • Edit items via GUI
  • Set cooldown in seconds
  • Toggle Immediate Cooldown (players must wait before first claim)
  • Toggle Hidden Kit (doesn't appear in /kit GUI)
  • Set custom display name with color codes
  • Set custom display item

Claiming

  • Players open the GUI with /kit or /kit <name>
  • Permission (if enabled) and cooldown are enforced
  • Hidden kits only accessible via command or admin give
  • Paginated interface for many kits

Commands

Player Commands

  • /kit - Opens the kit list GUI (paginated)
  • /kit <name> - Claims a specific kit by name

Admin Commands

  • /dkkit create - Starts the kit creation wizard
  • /dkkit list - Lists all kits (requires admin permission)
  • /dkkit delete <name> - Deletes a kit (requires admin permission)
  • /dkkit edit - Opens selection GUI to choose a kit to edit
  • /dkkit edit <name> - Opens the editor for the specified kit
  • /dkkit give <player> <kit> - Gives a kit to a player (bypasses cooldown and permissions)
  • /dkkit menu - Opens position configuration GUI for kits

Permissions

Admin Permission

dkkits.admin (default: op)

  • Allows /dkkit list, /dkkit delete, /dkkit edit, /dkkit give, /dkkit menu
  • By default, also allows /dkkit create (configurable)
  • Can see and use hidden kits

Per-kit Permission (optional)

Each kit can have a custom node, e.g. dkkits.kit.vip

  • If the kit's permission toggle is ON, players must have this node to claim the kit
  • Works with both GUI and command claiming

Configuration (config.yml)


# Language (pt_br or en)
language: en

# Admin permission node
admin-permission: dkkits.admin

# Allow non-admin players to create kits
# WARNING: Keep false to prevent abuse
allow-player-create: false

# Enable debug logs
debug: false

# GUI Configuration
gui:
  # Create button (anvil) position (0-53)
  create-button-slot: 53

  # Kits per page (max 45 recommended)
  kits-per-page: 45

  # Previous page button position
  previous-page-slot: 48

  # Next page button position
  next-page-slot: 50

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.1.x 1.21.x 1.20.x +12
Bukkit Folia Paper Purpur Spigot
9h ago 1
26.1.x 1.21.x 1.20.x +12
Bukkit Folia Paper Purpur Spigot
9h ago 1
26.1.x 1.21.x 1.20.x +12
Bukkit Folia Paper Purpur Spigot
9h ago 1
26.1.x 1.21.x 1.20.x +12
Folia Paper Purpur Spigot
9h ago 1
26.1.x 1.21.x 1.20.x +12
Bukkit Folia Paper Purpur Spigot
9h ago 1
26.1.x 1.21.x 1.20.x +12
Bukkit Folia Paper Purpur Spigot
9h ago 1
26.1.x 1.21.x 1.20.x +12
Bukkit Folia Paper Purpur Spigot
9h ago 1
26.1.x 1.21.x 1.20.x +12
Bukkit Folia Paper Purpur Spigot
9h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Folia Paper Purpur Spigot
9h ago 1
1.17.x 1.16.x 1.15.x +7
Bukkit Folia Paper Purpur Spigot
9h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Folia Paper Purpur Spigot
9h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Folia Paper Purpur Spigot
9h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Folia Paper Purpur Spigot
9h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Folia Paper Purpur Spigot
9h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Paper Spigot
9h ago 1
1.21.x
Folia Paper
9h ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Paper Purpur Spigot
9h ago 1
1.21.x
Bukkit Paper Purpur Spigot
9h ago 1
1.21.x
Bukkit Paper Purpur Spigot
9h ago 1
1.21.x
Bukkit Paper Purpur Spigot
9h ago 1
1.21.x
Bukkit Paper Purpur Spigot
9h ago 1
1.21.x
Bukkit Paper Purpur Spigot
9h ago 1
1.21.x
Bukkit Paper Purpur Spigot
9h ago 1
The cause was the api-version: ‘26.1’: older servers reject plugins that declare a newer API. The reported Folia implements 1.21.11. This corresponds to the behavior documented by PaperMC.
Added support for 26.x
O problema era: no editor do kit, a ação era decidida pelo material do item clicado. Como o botão de ícone usa o próprio material do ícone atual, quando ele era CHEST caía em “Editar itens”. Agora o editor decide pelo slot fixo do menu.
# 🎉 DKKits - Changelog de Atualizações

## 🔒 Segurança
  • Corrigido exploit crítico**: Jogadores sem permissão dkkits.admin conseguiam criar kits infinitos clicando na bigorna no /kit
  • Bigorna de criar kit agora só aparece para quem tem permissão

## ✨ Novas Funcionalidades

### 1. Sistema de Páginas no /kit
  • Menu de kits agora suporta paginação automática
  • Configurável no config.yml:
  • gui.kits-per-page - Quantos kits por página (padrão: 45)
  • gui.previous-page-slot - Posição do botão "Página Anterior" (padrão: 48)
  • gui.next-page-slot - Posição do botão "Próxima Página" (padrão: 50)
  • Título mostra número da página: "Kits (1)", "Kits (2)", etc.

### 2. Bigorna Configurável
  • Posição da bigorna (botão criar kit) agora é configurável
  • gui.create-button-slot no config.yml (padrão: 53)
  • Bigorna só aparece para quem tem permissão de criar kits

### 3. Cooldown Imediato (First Use Delay)
  • Nova opção no editor de kits (slot 23)
  • Quando ativado, jogador precisa esperar o cooldown ANTES de pegar o kit pela primeira vez
  • Exemplo: Kit com 3600s e cooldown imediato = jogador espera 1 hora antes de pegar pela primeira vez
  • Perfeito para kits diários/semanais
  • Ícone: Esmeralda (ativado) / Redstone (desativado)

### 4. Kits Ocultos/Privados
  • Nova opção no editor de kits (slot 25)
  • Kits ocultos NÃO aparecem no /kit (GUI)
  • Apenas admins podem dar com /dkkit give
  • Jogadores com permissão podem pegar via /kit <nome>
  • Ideal para kits VIP que você não quer mostrar publicamente
  • Ícone: Olho de Ender (oculto) / Pérola de Ender (visível)

### 5. Comando /kit <nome>
  • Agora /kit sem argumentos abre a GUI
  • /kit vip pega o kit "vip" diretamente
  • Funciona com cooldown, permissões e kits ocultos
  • Cooldown imediato também funciona via comando

### 6. Editor Expandido
  • GUI do editor agora tem 36 slots (4 linhas) em vez de 27
  • Novos botões:
  • Slot 23**: Cooldown Imediato (toggle)
  • Slot 25**: Kit Oculto (toggle)
  • Todos os botões antigos mantidos

## 🐛 Correções de Bugs
  • Corrigido: Itens da GUI do editor ficavam "pegáveis" após clicar em qualquer botão
  • Corrigido: Listeners de GUI acumulavam causando conflitos
  • Corrigido: KitItemsEditorGUI não cancelava eventos corretamente
  • Melhorado: Sistema de registro/desregistro de listeners

## 🌍 Internacionalização
  • Todos os novos textos adicionados aos arquivos de mensagens
  • Suporte completo para português e inglês
  • Novas chaves:
  • editor.first-use-delay e variações
  • editor.hidden e variações
  • Todas configuráveis em messages_pt_br.yml e messages_en.yml

## ⚙️ Configurações Novas

``yaml
gui:
# Posição do botão de criar kit (bigorna)
create-button-slot: 53

# Quantos kits por página
kits-per-page: 45

# Posição do botão de página anterior
previous-page-slot: 48

# Posição do botão de próxima página
next-page-slot: 50
`

## 📝 Como Usar as Novas Funcionalidades

  • Criar kit VIP oculto com cooldown imediato:**
1.
/dkkit create vip
2. Configure nome, permissão, itens
3.
/dkkit edit vip
4. Clique no relógio →
86400 (24 horas)
5. Clique na Esmeralda/Redstone (slot 23) → Ativa cooldown imediato
6. Clique no Olho de Ender (slot 25) → Ativa kit oculto
7. Pronto! Kit não aparece no
/kit, mas jogadores com permissão podem pegar com /kit vip após esperar 24h

  • Dar kit oculto:**
`
/dkkit give <jogador> vip
``

## 🎉 Novidades do DKKits

### Novo Comando: /dkkit give

Adicionado o comando /dkkit give <jogador> <kit> (ou /dkkit dar <jogador> <kit>) que permite aos administradores dar kits diretamente para jogadores!

  • Funcionalidades:**
  • ✅ Dá qualquer kit para qualquer jogador online
  • ✅ Verifica automaticamente se o jogador tem espaço no inventário
  • ✅ Se não couber tudo, dropa os itens extras no chão
  • ✅ Mensagens de confirmação tanto para quem deu quanto para quem recebeu
  • ✅ Suporte completo ao **PlaceholderAPI** - você pode usar placeholders no nome do jogador!

  • Exemplos de uso:**
``
/dkkit give Steve starter
/dkkit dar Alex vip
/dkkit give %player_name% iniciante
/dkkit give %vault_rank% premium
`

  • Integração com PlaceholderAPI:**
O comando agora suporta placeholders do PlaceholderAPI no argumento do jogador. Isso significa que você pode usar este comando em outros plugins (como sistemas de recompensa, quests, etc.) e usar placeholders para definir dinamicamente qual jogador vai receber o kit!

  • Permissão necessária:** dkkits.admin` (padrão: op)

  • Mensagens de erro:**
  • Avisa se o jogador não está online
  • Avisa se o kit não existe
  • Avisa se o jogador não tem espaço no inventário

🔒 Bug Crítico Corrigido: Jogadores Sem OP Criando Kits Infinitos
Problema: Jogadores sem permissão dkkits.admin conseguiam clicar na bigorna (ANVIL) na interface /kit e criar kits infinitamente, permitindo abuso do sistema.

Causa: No KitListGUI.java, a verificação de permissão não estava sendo feita quando o jogador clicava na bigorna.
## 📋 Resumo Executivo

O plugin DKKits foi completamente refatorado para funcionar em todas as versões do Minecraft de 1.8.8 até 1.21+, incluindo suporte total para Paper e Folia. As principais mudanças incluem:

  • ✅ Compatibilidade de materiais entre versões
  • ✅ Sistema de detecção de GUI por estrutura (fallback para títulos null)
  • ✅ Correção de bugs de duplicação de kits
  • ✅ Implementação completa do scheduler do Folia
  • ✅ Sistema de debug configurável
  • ✅ Separação correta de eventos entre diferentes GUIs


## 🔧 Atualizações Técnicas Detalhadas

### 1. Configuração do Build (build.gradle)
  • Objetivo**: Permitir compilação com Java 8 para compatibilidade máxima

  • Mudanças**:
  • Java alterado de 21 para 8
  • API do Spigot alterada de 1.21 para 1.16.5
  • Configurado sourceCompatibility e targetCompatibility para Java 8
  • Mantido repositórios Maven para Paper e Spigot

  • Resultado**: Plugin compila com Java 8 e gera bytecode compatível com JVM 8+


### 2. Plugin Metadata (plugin.yml)
  • Objetivo**: Declarar compatibilidade correta com versões antigas

  • Mudanças**:
  • api-version alterado de 1.21 para 1.13
  • folia-supported mantido como true
  • Comandos e permissões preservados

  • Resultado**: Plugin carrega corretamente em servidores 1.8.8 até 1.21+


### 3. Sistema de Compatibilidade de Inventário (InventoryCompat.java)
  • Objetivo**: Resolver problema de títulos nulos em versões 1.8-1.14

  • Problema**: Em versões antigas (especialmente 1.14.1), getTitle() retorna null, impedindo identificação de GUIs

  • Solução**: Criada classe utilitária com múltiplos métodos de fallback

  • Métodos de detecção de título**:
1. getTitle() no InventoryView (1.14+)
2. title() com Adventure API (Paper moderno)
3. getTitle() no Inventory (algumas versões)
4. getName() no Inventory (1.8-1.13)

  • Sistema de detecção por estrutura** (quando título é null):

  • KitListGUI**:
  • Detecta por ANVIL no slot 53
  • Verifica ausência de BARRIER no slot 45
  • Tamanho: 54 slots

  • KitWizardGUI - Tela de Permissão**:
  • Detecta por WOOL nos slots 11 e 15
  • Verifica se sessão não tem itens ainda
  • Tamanho: 27 slots

  • KitWizardGUI - Tela de Itens**:
  • Detecta por BARRIER no slot 45
  • Tamanho: 54 slots

  • KitWizardGUI - Tela de Confirmação**:
  • Detecta por WOOL nos slots 11 e 15
  • Verifica se sessão já tem itens definidos
  • Tamanho: 27 slots

  • KitEditorGUI**:
  • Detecta por NAME_TAG no slot 10
  • Detecta por CHEST no slot 14
  • Detecta por PAPER no slot 20
  • Tamanho: 27 slots

  • Resultado**: Todas as GUIs funcionam perfeitamente mesmo quando getTitle() retorna null


### 4. Compatibilidade de Materiais
  • Objetivo**: Usar nomes corretos de materiais para cada versão

  • Materiais atualizados**:

| Material Moderno | Material Legado (1.8) | Uso |
|-----------------|----------------------|-----|
| REDSTONE_TORCH | REDSTONE_TORCH_ON | Ícone de permissão |
| CLOCK | WATCH | Ícone de cooldown |
| NAME_TAG | NAME_TAG | Ícone de renomear |

  • Lã colorida** (sistema especial):

  • 1.8-1.12**: Usa Material.WOOL com data values (durability)
``java
// Verde (Lime)
ItemStack greenWool = new ItemStack(Material.WOOL, 1, (short) 5);

// Vermelho (Red)
ItemStack redWool = new ItemStack(Material.WOOL, 1, (short) 14);
`

  • 1.13+**: Usa tipos específicos
`java
Material.LIME_WOOL
Material.RED_WOOL
`

  • Método helper**:
`java
private Material getMaterialCompat(String modernName, String legacyName) {
try {
return Material.valueOf(modernName);
} catch (IllegalArgumentException e) {
return Material.valueOf(legacyName);
}
}
`

  • Resultado**: Todos os itens aparecem corretamente em todas as versões


### 5. Remoção de APIs Modernas
  • Objetivo**: Eliminar dependências de Java 9+ e Minecraft 1.13+

  • ItemFlag** (não existe em 1.8):
`java
// ANTES (não funciona em 1.8)
meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);

// DEPOIS (com reflexão)
try {
Class<?> itemFlagClass = Class.forName("org.bukkit.inventory.ItemFlag");
Object hideAttributes = itemFlagClass.getEnumConstants()[0];
meta.getClass().getMethod("addItemFlags", itemFlagClass)
.invoke(meta, hideAttributes);
} catch (Exception ignored) {}
`

  • Lambdas convertidos para classes anônimas**:
`java
// ANTES
requestText(playerId, input -> {
// código
});

// DEPOIS
requestText(playerId, new java.util.function.Consumer<String>() {
public void accept(String input) {
// código
}
});
`

  • List.of() substituído** (só existe em Java 9+):
`java
// ANTES
List<String> list = List.of("item1", "item2");

// DEPOIS
List<String> list = Arrays.asList("item1", "item2");
// ou
List<String> list = new ArrayList<>();
list.add("item1");
list.add("item2");
`

  • Enchantment.UNBREAKING**:
`java
// ANTES (1.13+)
Enchantment.UNBREAKING

// DEPOIS (1.8)
Enchantment.DURABILITY
`

  • Resultado**: Código compila e executa em Java 8 sem erros


### 6. Scheduler Folia (Compatibilidade Completa)
  • Objetivo**: Funcionar tanto em Paper/Spigot quanto em Folia

  • Detecção automática**:
`java
public static boolean isFolia() {
try {
Class.forName("io.papermc.paper.threadedregions.RegionizedServer");
return true;
} catch (ClassNotFoundException e) {
return false;
}
}
`

  • Implementação com múltiplos fallbacks**:

1. **EntityScheduler** (preferencial para Folia):
  • run(plugin, task, null, 0L) - 4 parâmetros
  • run(plugin, task, null) - 3 parâmetros
  • run(plugin, task) - 2 parâmetros
  • execute(plugin, task) - método alternativo

2. **GlobalRegionScheduler** (fallback):
  • run(plugin, task)
  • execute(plugin, task)

3. **BukkitScheduler** (Paper/Spigot):
  • runTask(plugin, task)
  • runTaskLater(plugin, task, delay)

  • Métodos implementados**:
`java
// Executa tarefa imediatamente
runTaskForPlayer(Player player, Runnable task)

// Executa com delay
runTaskLaterForPlayer(Player player, Runnable task, long delay)

// Abre inventário de forma segura
openInventoryForPlayer(Player player, Inventory inventory)
`

  • Resultado**: Plugin funciona perfeitamente em Paper, Spigot e Folia


### 7. Sistema de Debug Configurável
  • Objetivo**: Permitir debug sem poluir logs em produção

  • Configuração** (config.yml):
`yaml
debug: false # Padrão: desativado
`

  • Implementação**:
`java
public boolean isDebugEnabled() {
return getConfig().getBoolean("debug", false);
}

// Uso
if (plugin.isDebugEnabled()) {
plugin.getLogger().info("Debug message");
}
`

  • Logs de debug incluem**:
  • Detecção de métodos do scheduler Folia
  • Passos de criação de kits (nome, permissão, itens)
  • Processamento de eventos de GUI
  • Detecção de títulos de inventário e fallbacks
  • Cliques em lã e detecção de data values
  • Identificação de GUIs por estrutura

  • Resultado**: Logs limpos em produção, debug detalhado quando necessário


### 8. Correção de Bug: Duplicação de Kits
  • Problema**: Kit sendo criado duas vezes ao confirmar wizard
  • Um kit com nome correto
  • Um kit com nome null (falhava)

  • Causa**: Double-click processando evento duas vezes

  • Solução**:
`java
// Verificar se já está processando
if (session.getName() == null) {
// Sessão já foi processada e limpa
player.closeInventory();
return;
}

// Processar criação do kit
Kit kit = new Kit(kitName);
// ... configurar kit ...

// Limpar sessão ANTES de fechar inventário
plugin.clearCreationSession(player.getUniqueId());
creationSessions.remove(player.getUniqueId());

// Enviar mensagem e fechar
player.sendMessage("Kit criado!");
player.closeInventory();
`

  • Resultado**: Kits criados apenas uma vez, sem duplicatas


### 9. Correção de Bug: Wizard não Respondia a Cliques em 1.8.8
  • Problema**: Cliques em lã verde/vermelha não faziam nada na tela de permissão

  • Causa**: GuiUtil.simpleItem() criava novo ItemStack sem durability, então comparação falhava

  • Solução**:
`java
// Criar ItemStack com durability diretamente
Material woolType = getMaterialCompat("LIME_WOOL", "WOOL");
ItemStack greenWool = new ItemStack(woolType, 1, (short) 5);
ItemMeta greenMeta = greenWool.getItemMeta();
if (greenMeta != null) {
greenMeta.setDisplayName("§aYes");
greenWool.setItemMeta(greenMeta);
}

// No click handler, verificar data value
short data = clicked.getDurability();
if (data == 5 || clicked.getType().name().contains("LIME")) {
// Verde clicado
}
`

  • Logs de debug adicionados**:
`
[DKKITS] Permission step - Clicked item: RED_WOOL durability: 14
[DKKITS] Wool clicked! Data value: 14, Type: RED_WOOL
[DKKITS] Red wool detected - setting permission required to false
`

  • Resultado**: Wizard funciona perfeitamente em 1.8.8


### 10. Correção de Bug: KitWizardGUI Processando Eventos do KitEditorGUI
  • Problema**: Ao abrir /dkkit edit inicial em 1.14.1, KitWizardGUI processava os cliques

  • Sintomas**:
`
[DKKITS] KitWizardGUI - Click detected. Title: 'null'
[DKKITS] KitWizardGUI - Raw slot: 16
[DKKITS] KitWizardGUI - Detected permission screen by WOOL...
`

  • Causa**:
  • KitWizardGUI verificava sessão DEPOIS de começar a processar evento
  • Não excluía explicitamente KitEditorGUI
  • Ambas as GUIs têm 27 slots

  • Solução**:

  • 1. Detecção explícita de KitEditorGUI**:
`java
// Verificar se NÃO é KitEditorGUI antes de processar
if (topInv.getSize() == 27) {
ItemStack slot10 = topInv.getItem(10);
ItemStack slot14 = topInv.getItem(14);
ItemStack slot20 = topInv.getItem(20);

Material nameTagMat = getMaterialCompat("NAME_TAG", "NAME_TAG");
if (slot10 != null && slot10.getType() == nameTagMat &&
slot14 != null && slot14.getType() == Material.CHEST &&
slot20 != null && slot20.getType() == Material.PAPER) {
// É KitEditorGUI, não processar aqui
return;
}
}
`

  • 2. Reordenação de checks**:
  • Verificar tipo de GUI PRIMEIRO
  • Verificar sessão DEPOIS

  • 3. Log de debug**:
`java
if (plugin.isDebugEnabled()) {
plugin.getLogger().info("KitWizardGUI - Ignoring KitEditorGUI event");
}
`

  • Resultado**: KitWizardGUI não interfere mais com KitEditorGUI


### 11. Armazenamento de Nome do Kit no KitEditorGUI
  • Problema**: KitEditorGUI dependia do título do inventário para obter nome do kit

  • Causa**: Título era null em 1.14.1

  • Solução**:
`java
public class KitEditorGUI implements Listener {
private final DKKits plugin;
private final String kitName; // Armazenar nome

private KitEditorGUI(DKKits plugin, String kitName) {
this.plugin = plugin;
this.kitName = kitName; // Salvar no construtor
}

@EventHandler
public void onClick(InventoryClickEvent event) {
// Usar kitName em vez de extrair do título
Kit kit = plugin.getKitManager().get(kitName);
}
}
`

  • Resultado**: KitEditorGUI funciona independente do título do inventário


## 🎯 Funcionalidades Testadas e Funcionando

### ✅ Versão 1.8.8 (Paper)
  • Criação de kits via wizard
  • Edição de kits existentes
  • Listagem de kits
  • Uso de kits
  • Sistema de permissões
  • Sistema de cooldown
  • Todas as GUIs funcionando
  • Lã colorida com data values

### ✅ Versão 1.14.1 (Paper)
  • Criação de kits via wizard
  • Edição de kits existentes
  • Listagem de kits
  • Uso de kits
  • Sistema de permissões
  • Sistema de cooldown
  • Detecção de GUI por estrutura (título null)
  • Separação correta de eventos entre GUIs

### ✅ Versão 1.21+ (Paper/Folia)
  • Todas as funcionalidades acima
  • Scheduler Folia funcionando
  • Materiais modernos
  • Adventure API (quando disponível)


## 🛠️ Compilação

### Requisitos
  • Java 8 (JDK 8)
  • Gradle (incluído via wrapper)

### Comandos

  • Windows**:
`cmd
set JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-8.0.472.8-hotspot
gradlew.bat clean build
`

  • Linux/Mac**:
`bash
export JAVA_HOME=/path/to/jdk8
./gradlew clean build
`

### Resultado
  • Arquivo JAR: build/libs/DKKITS-1.0-SNAPSHOT.jar
  • Compatível com Minecraft 1.8.8 até 1.21+
  • Funciona em Paper, Spigot e Folia


## 📝 Configuração

### config.yml
`yaml
# Ativar logs de debug (padrão: false)
debug: false

# Idioma do plugin
language: pt_br
`

### Flags de Inicialização

  • Para 1.8.8 com Java 8**:
`bash
java -jar paper-1.8.8.jar
`

  • Para 1.21+ com Java 21**:
`bash
java -jar paper-1.21.jar
``


## 🐛 Bugs Corrigidos

| # | Bug | Status | Versão Afetada |
|---|-----|--------|----------------|
| 1 | Duplicação de kits ao confirmar wizard | ✅ Corrigido | Todas |
| 2 | Wizard não respondia a cliques em lã | ✅ Corrigido | 1.8.8 |
| 3 | Título null em inventários | ✅ Corrigido | 1.8-1.14 |
| 4 | KitWizardGUI processando eventos do KitEditorGUI | ✅ Corrigido | 1.14.1 |
| 5 | Materiais incompatíveis | ✅ Corrigido | 1.8-1.12 |
| 6 | Scheduler Folia não funcionando | ✅ Corrigido | Folia |


## 📊 Estatísticas do Projeto

  • Versões suportadas**: 1.8.8 até 1.21+ (13+ versões)
  • Servidores compatíveis**: Spigot, Paper, Folia
  • Arquivos modificados**: 12
  • Linhas de código adicionadas**: ~500
  • Bugs corrigidos**: 6
  • Sistemas de compatibilidade**: 4 (Materiais, Inventário, Scheduler, GUI)
  • Tempo de desenvolvimento**: Múltiplas sessões
  • Testes realizados**: 3 versões (1.8.8, 1.14.1, 1.21+)


## 🎉 Conclusão

O plugin DKKits agora é **totalmente compatível** com Minecraft 1.8.8 até 1.21+, funcionando perfeitamente em Paper, Spigot e Folia.

Todos os sistemas foram testados e validados:
  • ✅ Criação de kits
  • ✅ Edição de kits
  • ✅ Listagem de kits
  • ✅ Uso de kits
  • ✅ Sistema de permissões
  • ✅ Sistema de cooldown
  • ✅ Todas as interfaces gráficas
  • ✅ Compatibilidade com Folia

O plugin está pronto para uso em produção em qualquer versão do Minecraft de 1.8.8 em diante.

added support for English and Brazilian Portuguese - version compatible with all versions
added support for English and Brazilian Portuguese
DK KITS Icon
Download DK KITS
Select game version
Select platform