Betav0.1

Minedachi

Ciudad virtual estilo Tomodachi Life. Los jugadores tienen su propia parcela en un mundo generado, con relaciones y economía interna.


Concepto

Minedachi es un plugin inspirado en Tomodachi Life (Nintendo DS). Cada jugador habita una parcela en una ciudad compartida, puede relacionarse con otros ciudadanos y gestiona una economía interna independiente del servidor principal.

  • Cada jugador tiene un Tomodachi (personaje) con datos persistentes
  • Mundo de ciudad generado con generator propio (isla plana + schemáticas)
  • Parcelas (plots) asignadas y cargadas dinámicamente
  • Sistema de relaciones entre ciudadanos (Relacion.java)
  • Economía con múltiples divisas configurables
  • Desinstalación automática de mundos inactivos

Atención

Minedachi está en fase Beta. La API y la estructura de datos pueden cambiar entre versiones.

Sistema de Mundo

El plugin genera o copia un mundo de ciudad al inicializarse. Usa FolderCopyCityWorldManager para duplicar una plantilla de mundo en lugar de generarla desde cero, lo que permite diseñar la ciudad en el editor.

Descarga por inactividad

El mundo se comprueba cada minuto. Si no hay jugadores activos en la ciudad, se descarga automáticamente para liberar memoria RAM.

java
// Intervalo configurado en Minedachi.java
long checkIntervalTicks = 20L * 60; // cada 60 segundos
Bukkit.getScheduler().runTaskTimer(this,
    cityWorldManager::runIdleUnloadCheck,
    checkIntervalTicks, checkIntervalTicks);

Parcelas

Cada parcela tiene un anchor (coordenadas del origen), tamaño configurable en plot-config.yml y se le asigna a un jugador cuando entra al mundo por primera vez.

yaml
# plot-config.yml
plot-size: 32
plot-height: 48
spawn-offset:
  x: 16
  z: 16

Consejo

Las schemáticas de las casas se colocan automáticamente al asignar una parcela usando SchematicService.

Economía

Minedachi usa su propia divisa interna (definida en Currency.java) separada del vault del servidor principal. El coste de ampliar slots de parcela se calcula dinámicamente con SlotCostCalculator.

yaml
# config.yml
economy:
  base-slot-cost: 500
  cost-multiplier: 1.5
  currency-name: "Monedas Mina"
  currency-symbol: "🪙"