Mascotas
Compañeros coleccionables que suben de nivel con los bloques que mina su dueño y dan bonus pasivos. Solo una mascota está activa a la vez.
| Configuración | pets.yml |
| Datos | data/pets.yml |
| Clave de módulo | pets |
Por qué una sola mascota activa
Los jugadores desbloquean muchas mascotas pero solo aprovechan una. Cambiar de compañero no borra el progreso, pero los niveles de la anterior quedan sin uso. Esa única restricción convierte la colección en una decisión y evita que los bonus se acumulen hasta romper la economía.
Cómo se ven
Por defecto la mascota activa es una cabeza flotando en diagonal detrás del dueño, que lo sigue suavemente con un leve balanceo y muestra su nombre y nivel. display.mode en pets.yml permite elegir:
| Modo | Visual |
|---|---|
HEAD | Cabeza flotante |
PARTICLES | Pequeña estela de partículas, sin entidad |
BOTH | Cabeza y partículas |
NONE | Solo los bonus |
La cabeza es un armor stand marcador invisible por jugador con mascota activa: sin hitbox, sin IA, sin físicas y nunca se guarda en el mundo.
display:
mode: HEAD
update-ticks: 2
offset:
side: 0.8
back: 0.6
height: 1.9
bob: 0.12
show-name: true
particles:
enabled: true
type: HAPPY_VILLAGERCabeza de cada mascota
Cada mascota elige su cabeza en pets.yml; se usa la primera opción que exista:
head.database-id: un id de HeadDatabase, si el plugin está instaladohead.texture: un valor de textura base64 de cualquier web de cabezashead.owner: el nombre de un jugador cuya skin se usa
Las mascotas incluidas usan las cabezas oficiales MHF_ de Mojang.
Comandos
| Comando | Descripción |
|---|---|
/pets | Abrir el menú de colección |
/pet list | Mascotas desbloqueadas, con niveles |
/pet equip <mascota> | Sacar una mascota |
/pet unequip | Guardar la mascota activa |
/pet info [mascota] | Nivel, experiencia y bonus exactos |
/pet types | Todas las mascotas del juego y su rareza |
/pet give <jugador> <mascota> | Admin: desbloquear una mascota para alguien |
/pet addxp <jugador> <mascota> <cantidad> | Admin: dar experiencia |
Aliases: /pets, /mascota, /mascotas.
| Permiso | Default | Otorga |
|---|---|---|
pulseprison.pets | todos | La colección y todos los subcomandos de jugador |
pulseprison.pets.admin | op | /pet give y /pet addxp |
De dónde salen las mascotas
No hay una fuente de drop integrada, así el módulo es compatible con cualquier plugin de crates, votos o tienda. Se entregan con un comando de consola:
/pet give <jugador> <mascota>
Ponelo en una recompensa de crate, en execute-on-rankup de ranks.yml, en reward-commands de rebirths.yml o en un listener de votos.
Si el jugador ya tiene esa mascota, se convierte en experiencia (duplicate-experience, por defecto 250), así los duplicados siguen siendo una recompensa.
Mascotas incluidas
| ID | Rareza | Efecto por nivel | Cabeza |
|---|---|---|---|
rocky | COMMON | SELL_BONUS +0.4% | MHF_Golem |
sparky | UNCOMMON | TOKEN_BONUS +0.5% | MHF_Slime |
glimmer | RARE | GEM_BONUS +0.6% | MHF_Enderman |
scholar | EPIC | EXP_BONUS +0.6% | MHF_Villager |
bolt | LEGENDARY | ROBOT_OUTPUT +0.6% | MHF_Blaze |
vault | MYTHIC | SELL_BONUS +0.4% y TOKEN_BONUS +0.3% | MHF_Chest |
Todas llegan hasta nivel 25.
Niveles
La mascota activa gana experience-per-block (por defecto 1) por cada bloque que mina su dueño. Cada nivel cuesta experience.base × growth^(nivel-1), configurado por mascota. Una mascota rara debería tener base y crecimiento mayores que una común.
Efectos
| Efecto | Hace |
|---|---|
SELL_BONUS | Más dinero por cada bloque vendido |
TOKEN_BONUS | Más tokens de los encantamientos |
GEM_BONUS | Más gemas de los encantamientos |
EXP_BONUS | El pico sube de nivel más rápido |
ROBOT_OUTPUT | Más producción de los robots del dueño |
Los valores son por nivel, en fracción decimal: 0.004 es +0.4% por nivel, así una mascota nivel 25 da +10%. Los bonus se pagan de verdad en cada bloque, no solo se muestran.
Placeholders
| Placeholder | Devuelve |
|---|---|
%pulseprison_pet_name% | Nombre de la mascota activa, o None |
%pulseprison_pet_display% | Lo mismo, con el color de la rareza |
%pulseprison_pet_level% | Nivel de la mascota activa |
%pulseprison_pet_rarity% | Rareza de la mascota activa |
%pulseprison_pet_count% | Mascotas desbloqueadas |
%pulseprison_pet_total% | Mascotas que existen |
%pulseprison_pet_bonus_<efecto>% | Bonus actual de ese efecto, en porcentaje |
API
PetService pets = PulsePrisonProvider.get().pets();
pets.grant(player, "glimmer");
pets.setActive(player.getUniqueId(), "glimmer");
double bonus = pets.getBonus(player.getUniqueId(), PetEffect.SELL_BONUS);Eventos: PetUnlockEvent (cancelable) y PetLevelUpEvent. Ver Eventos.