NuvikShop Keys
1.9.0⚡ Fast Shop Keys | SellAuth Auto-Sync | Instant Delivery | Multi-Database | Discord
⚡ NUVIKSHOP KEYS v1.9.0 ⚡
Sistema Profesional de Keys para Minecraft

Genera • Vende • ⚡ Entrega Instantánea
DESCRIPCIÓN
NuvikShop Keys es el plugin definitivo para gestionar keys de productos en tu servidor de Minecraft. Integración completa con tiendas online, entrega instantánea, múltiples bases de datos y seguridad de nivel empresarial.
✨ Perfecto para:
- Servidores con tienda online
- Venta de rangos VIP/MVP
- Venta de coins y kits
- Permisos y comandos personalizados
- Automatización completa de ventas
✨ CARACTERÍSTICAS PRINCIPALES
Sistema de Keys
- Generación masiva - Genera hasta 100 keys por comando
- Formato personalizable - NUVIK-XXXXX-XXXXX o el que quieras
- Expiración configurable - Por producto, días específicos o sin expiración
- Múltiples usos - Keys de un solo uso o reutilizables
- Anti-duplicación - Sistema automático para evitar keys duplicadas
- Batch inserts - 10-50x más rápido que otros plugins
Integración con Tiendas
- SellAuth - API completa + Webhooks + Auto-sync
RECOMENDADO
- Shoppy.gg - Webhooks + Mapeo de productos
- SellHub.cs - Webhooks + Soporte completo NUEVO
- Tebex - Compatible con webhooks genéricos
- Genérico - Cualquier tienda con webhooks
⚡ Entrega Instantánea (v1.8.0+)
- Entrega automática cuando el jugador entra al servidor
- Sin necesidad de /redeem - El producto se entrega automáticamente
- Compatible con plugins de auth: AuthMe, nLogin, OpeNLogin, LoginSecurity
- Firmas SHA-256 para máxima seguridad
- Sistema de cola para entregas pendientes si el jugador está offline
⚠️ IMPORTANTE: La entrega instantánea SOLO funciona con webhooks, no con keys manuales.
Tiendas compatibles:
SellAuth - Requiere configurar webhook + nombre de jugador en custom fields
Shoppy.gg - Requiere configurar webhook + campo de username
SellHub.cs - Requiere configurar webhook + campo de player_name
Genérico - Requiere enviar player_name en el JSON del webhook
Keys manuales - NO soportado (el jugador debe usar /redeem)
️ Bases de Datos
- SQLite - Local, sin configuración (por defecto)
- MySQL - Remoto con HikariCP
- H2 - Embebido ultra-rápido
- Supabase - PostgreSQL en la nube
- Migración automática entre bases de datos
Seguridad Empresarial
- Rate limiting - 1 request/segundo por IP NUEVO
- Secretos obligatorios en webhooks NUEVO
- Protección SQL injection NUEVO
- Constant-time comparison contra timing attacks NUEVO
- Firmas criptográficas SHA-256
- Logs de seguridad detallados
⌨️ COMANDOS
Para Jugadores:
/redeem <key> Canjear una key
Para Administradores:
/keygen <tipo> [cantidad] Generar keys
/keygen all [cantidad] Generar keys de todos los tipos
/keygen <tipo> <cantidad> sync Generar y subir a SellAuth
/gift <jugador> <tipo> Regalar producto directamente
/keylist [página] Ver todas las keys
/keyinfo <key> Ver información de una key
/keydelete <key> Eliminar una key
/nuvikimport <file> <tipo> Importar keys desde TXT
/nsk setup Asistente de configuración
/nsk reload Recargar configuración
/nsk stats Ver estadísticas
/nsk sync test Probar conexión SellAuth
/nsk sync products Crear productos en SellAuth
/nsk sync keys <tipo> Subir keys a SellAuth
/nsk sync all Sincronizar todo
/nsk migrate <db> <filtro> Migrar base de datos
/nsk test-webhook Probar Discord webhook
PERMISOS
nuvikshop.redeem Permite canjear keys (default: true)
nuvikshop.admin Acceso a comandos admin (default: op)
nuvikshop.* Acceso completo (default: op)
INSTALACIÓN RÁPIDA
Paso 1: Instalación Básica
- Descarga NuvikShopKeys.jar
- Colócalo en plugins/
- Reinicia el servidor
- Ejecuta /nsk setup
- ¡Listo!
Paso 2: Configurar tu Tienda
Opción 1: SellAuth (Recomendado) ⭐
¿Por qué SellAuth?
- API completa para automatización
- Webhooks en tiempo real
- Panel profesional
- Múltiples métodos de pago
Configuración:
- Ve a https://sellauth.com y crea una cuenta
- Copia tu API Key y Shop ID
- En el servidor ejecuta: /nsk setup
- Sigue el asistente interactivo
- Ejecuta: /nsk sync products
- Genera keys: /keygen vip 100 sync
¡Automático! Las keys se suben a SellAuth automáticamente.
Opción 2: Shoppy.gg
Configuración:
- Panel de Shoppy → Settings → Webhooks
- URL: http://tu-ip:8080/webhook/shoppy
- Secret: Genera uno seguro (32 caracteres)
- Edita config.yml sección webhooks.shoppy
- Genera keys: /keygen vip 100
- Copia keys de plugins/NuvikShopKeys/generated-keys/
- Pega en tu producto de Shoppy
Opción 3: SellHub.cs
Configuración:
- Panel de SellHub → Webhooks
- URL: http://tu-ip:8080/webhook/sellhub
- Secret: Genera uno seguro (32 caracteres)
- Edita config.yml sección webhooks.sellhub
- Genera keys: /keygen vip 100
- Copia keys de plugins/NuvikShopKeys/generated-keys/
- Pega en tu producto de SellHub
Opción 4: Webhook Genérico
Compatible con cualquier tienda que soporte webhooks personalizados.
Endpoint: http://tu-ip:8080/webhook/generic
Formato JSON esperado:
{
"product_id": "vip",
"email": "[email protected]",
"order_id": "12345",
"player_name": "Steve"
}EJEMPLO DE PRODUCTOS
predefined-commands:
vip:
command: "lp user %player% parent set vip"
description: "Rango VIP"
price: 9.99
key-expiration-days: 0
max-uses: 1
vip-plus:
command: "lp user %player% parent set vip-plus"
description: "Rango VIP+"
price: 14.99
key-expiration-days: 0
max-uses: 1
coins-1000:
command: "eco give %player% 1000"
description: "1000 Coins"
price: 0.99
key-expiration-days: 30
max-uses: 1
fly:
command: "lp user %player% permission set essentials.fly true"
description: "Permiso de vuelo"
price: 4.99
key-expiration-days: 0
max-uses: 1
Variables disponibles:
- %player% - Nombre del jugador
- %uuid% - UUID del jugador
- %key% - Código de la key
FLUJO DE TRABAJO
Con SellAuth (Automático):
Opción A: Con Entrega Instantánea (Recomendado) ⚡
- /nsk setup → Configura SellAuth con API Key y Shop ID
- Habilita entrega instantánea en config.yml:
instant-delivery: enabled: true - /nsk sync products → Crea productos automáticamente
- En SellAuth, añade custom field "player_name" a tus productos
- Cliente compra → Ingresa su nombre de Minecraft en el campo player_name
- Jugador entra al servidor → ¡Recibe el VIP automáticamente sin hacer nada!
Opción B: Con Keys Tradicionales
- /nsk setup → Configura SellAuth con API Key y Shop ID
- /nsk sync products → Crea productos automáticamente
- /keygen vip 100 sync → Genera 100 keys VIP y las sube
- Cliente compra → Recibe la key por email
- Jugador: /redeem NUVIK-XXXXX → Recibe el VIP
Con Otras Tiendas (Shoppy, SellHub, etc.):
Opción A: Con Entrega Instantánea (Recomendado) ⚡
- Habilita entrega instantánea en config.yml:
instant-delivery: enabled: true - Configura webhook en tu tienda:
URL: http://tu-ip:8080/webhook/shoppy (o /sellhub) Secret: Tu secreto seguro - Añade campo "username" o "player_name" en tu producto
- Cliente compra → Ingresa su nombre de Minecraft
- Jugador entra al servidor → ¡Recibe el producto automáticamente!
Opción B: Con Keys Tradicionales
- /keygen vip 100 → Genera 100 keys VIP
- Copia keys de generated-keys/
- Pega en tu tienda (Shoppy, SellHub, etc)
- Configura webhook apuntando a tu servidor
- Cliente compra → Recibe key → /redeem → ¡Listo!
CARACTERÍSTICAS AVANZADAS
⚡ Entrega Instantánea - Cómo Funciona
¿Qué es la entrega instantánea?
En lugar de que el jugador tenga que usar /redeem <key>, el producto se entrega automáticamente cuando entra al servidor después de comprar.
Flujo de trabajo:
- Cliente compra en tu tienda (SellAuth, Shoppy, etc.)
- Tienda envía webhook a tu servidor con el nombre del jugador
- Plugin guarda la compra en la tabla pending_deliveries
- Jugador entra al servidor
- Si hay plugin de auth (AuthMe, etc.):
- Plugin espera a que el jugador se autentique
- Después de autenticarse, entrega el producto - Si NO hay plugin de auth:
- Espera 3 segundos (configurable)
- Entrega el producto automáticamente - Jugador recibe el producto sin hacer nada
Configuración:
instant-delivery:
enabled: true # Activar entrega instantánea
delivery-delay-seconds: 3 # Delay si no hay plugin de auth
auth-timeout-seconds: 60 # Timeout para autenticación
secret-key: "auto-generado" # Clave para firmas SHA-256
cleanup-days: 30 # Limpiar entregas antiguasPlugins de autenticación soportados:
AuthMe
nLogin
OpeNLogin
LoginSecurity
Sin plugin de auth: Usa delay de 3 segundos
⚠️ REQUISITOS IMPORTANTES:
- Webhooks configurados - La entrega instantánea SOLO funciona con webhooks
- Nombre de jugador - La tienda debe enviar el nombre del jugador en el webhook
- Puerto abierto - El puerto 8080 (o el configurado) debe estar accesible desde internet
Configuración por tienda:
SellAuth:
# En tu producto de SellAuth, añade un custom field:
# Campo: player_name
# Tipo: text
# Requerido: Sí
# El cliente ingresará su nombre de Minecraft al comprarShoppy.gg:
# En tu producto de Shoppy, añade un campo personalizado:
# Nombre: username
# Tipo: text
# El cliente ingresará su nombre de Minecraft al comprarSellHub.cs:
# En tu producto de SellHub, añade un campo:
# Campo: player_name
# Tipo: text
# El cliente ingresará su nombre de Minecraft al comprarWebhook Genérico:
{
"product_id": "vip",
"email": "[email protected]",
"order_id": "12345",
"player_name": "Steve" // ← REQUERIDO para entrega instantánea
}¿Qué pasa si el jugador está offline?
- La compra se guarda en pending_deliveries
- Cuando el jugador entre al servidor, recibirá su producto automáticamente
- Las entregas pendientes se guardan hasta que se completen
- Se limpian automáticamente después de 30 días (configurable)
¿Qué pasa si no configuro el nombre de jugador?
- La entrega instantánea NO funcionará
- El sistema generará una key normal
- El jugador deberá usar /redeem <key> manualmente
- La key se enviará por email al cliente
Notificaciones Discord
discord:
enabled: true
webhook-url: "https://discord.com/api/webhooks/xxx/xxx"
notifications:
key-generated: true
key-redeemed: true
gift-sent: true
suspicious-activity: true
purchase: trueSeguridad
security:
redeem-cooldown: 5
max-failed-attempts: 5
lockout-duration: 10
log-attempts: trueNuevas características de seguridad v1.9.0:
- Rate limiting (1 req/seg por IP)
- Secretos obligatorios en webhooks
- Protección SQL injection
- Constant-time token comparison
️ Migración de Base de Datos
/nsk migrate supabase all Migrar todo a Supabase
/nsk migrate mysql ranks Migrar solo rangos a MySQL
/nsk migrate sqlite economy Migrar solo economy a SQLiteFiltros disponibles: all, ranks, kits, economy, perms, fly
⚠️ Se crea un backup automático antes de migrar.
RENDIMIENTO
- Operaciones asíncronas - No bloquea el servidor
- Batch inserts - 10-50x más rápido que la competencia
- HikariCP - Connection pooling profesional
- Bukkit Scheduler - Optimizado para hostings limitados
- Memory cleanup - Sin memory leaks
- Compatible con hostings de bajo costo
REQUISITOS
- Minecraft: 1.17+
- Java: 17+
- Servidor: Spigot, Paper, Purpur
- Opcional: LuckPerms, Vault, PlaceholderAPI
CHANGELOG v1.9.0
Añadido
- SellHub.cs Integration - Soporte completo para webhooks
- Rate Limiting - Protección contra abuso (1 req/seg por IP)
- Security Hardening - Secretos obligatorios por defecto
- SQL Injection Protection - Validación de nombres de tabla
- Constant-Time Comparison - Prevención de timing attacks
- Configurable Key Limit - Límite máximo configurable
- Automatic Cleanup - Limpieza programada cada 24h
- Enhanced Logging - Logs de seguridad detallados
Mejorado
- Seguridad en webhooks (secretos obligatorios)
- Mensajes de error más descriptivos
- Validación de configuración mejorada
- Limpieza automática de rate limits
- Calidad de código y mantenibilidad
Seguridad
- CRÍTICO: Secretos de webhook obligatorios
- ALTO: Comparación constant-time
- ALTO: Validación contra SQL injection
- MEDIO: Rate limiting en webhooks
- MEDIO: Logs de actividad sospechosa
SOPORTE
⭐ VALORACIONES
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta