Placeholders

Placeholders

Por teximexi 18 de enero de 2026
#API#Desarrollo#Hytale#Marcadores de posición#plugins#Servidor

Placeholders Plugin para Hytale

Un plugin que proporciona un sistema de marcadores de posición para Hytale, similar a PlaceholderAPI para Minecraft. Este plugin te permite utilizar marcadores de posición en texto, que serán reemplazados por valores dinámicos.

Características

  • Analiza marcadores de posición en el formato %placeholder%
  • Registra marcadores de posición personalizados de otros plugins
  • Marcadores de posición incorporados para valores comunes
  • API sencilla para desarrolladores

Uso para Propietarios de Servidores

Simplemente instala el plugin en tu servidor de Hytale. El plugin registrará automáticamente los marcadores de posición predeterminados que puedes utilizar en tu servidor.

Marcadores de posición predeterminados:

  • %current_time% – La hora actual
  • %current_date% – La fecha actual
  • %current_year% – El año actual
  • %datetime% – La fecha y hora actuales

Marcadores de posición del servidor:

  • %server_name% – El nombre del servidor
  • %server_motd% – El mensaje del día del servidor
  • %server_password% – La contraseña del servidor
  • %server_max_players% – El límite de jugadores del servidor
  • %server_max_view_radius% – El radio de visión máximo
  • %server_default_world_name% – El nombre del mundo predeterminado
  • %server_default_gamemode% – El modo de juego predeterminado

Marcadores de posición del jugador (cuando se proporciona un objeto jugador como contexto → Debe ser un PlayerRef):

  • %player_uuid% – El UUID del jugador
  • %player_name% – El nombre del jugador
  • %player_fall_distance% – La distancia de caída actual del jugador
  • %player_gamemode% – El modo de juego del jugador
  • %player_language% – El idioma del jugador
  • %player_world_name% – El nombre del mundo actual en el que se encuentra el jugador
  • %player_world_uuid% – El UUID del mundo actual en el que se encuentra el jugador
  • %player_player_is_first_spawn% – Es el primer spawn del jugador
  • %player_x% – La coordenada x del jugador
  • %player_y% – La coordenada y del jugador
  • %player_z% – La coordenada z del jugador
  • %player_health% – La salud del jugador
  • %player_max_health% – La salud máxima del jugador
  • %player_min_health% – La salud mínima del jugador
  • %player_mana% – El maná del jugador
  • %player_max_mana% – El maná máximo del jugador
  • %player_min_mana% – El maná mínimo del jugador
  • %player_oxygen% – El oxígeno del jugador
  • %player_max_oxygen% – El oxígeno máximo del jugador
  • %player_min_oxygen% – El oxígeno mínimo del jugador
  • %player_stamina% – La resistencia del jugador
  • %player_max_stamina% – La resistencia máxima del jugador
  • %player_min_stamina% – La resistencia mínima del jugador
  • %player_ammo% – La munición del jugador
  • %player_max_ammo% – La munición máxima del jugador
  • %player_min_ammo% – La munición mínima del jugador

Uso para Desarrolladores

Añadiendo el Plugin como Dependencia

Añade el plugin como una dependencia en tu archivo build.gradle.kts:

dependencies {
    compileOnly(files("libs/Placeholders-1.0-.jar"))
}

Cambia el nombre al nombre del archivo .jar. El archivo .jar debe estar en la carpeta /libs. Créala si no está presente. La carpeta libs está al mismo nivel que la carpeta src.

Registrando Marcadores de Posición Personalizados

import com.texisoft.plugin.api.PlaceholderAPI;
import com.texisoft.plugin.api.Placeholder;
import com.texisoft.plugin.placeholders.DefaultPlaceholder;

// Obtén la instancia de PlaceholderAPI
PlaceholderAPI api = PlaceholderAPI.getInstance();

// Registra un marcador de posición simple con un valor estático
api.registerPlaceholder(DefaultPlaceholder.ofStatic("my_placeholder", "My Value"));

// Registra un marcador de posición con un valor dinámico
api.registerPlaceholder(new DefaultPlaceholder("my_dynamic_placeholder", context -> {
    // Puedes usar el contexto para determinar el valor
    // Por ejemplo, si el contexto es un jugador, puedes obtener valores específicos del jugador
    return "Dynamic Value";
}));

Analizando Texto con Marcadores de Posición

import com.texisoft.plugin.api.PlaceholderAPI;

// Obtén la instancia de PlaceholderAPI
PlaceholderAPI api = PlaceholderAPI.getInstance();

// Analiza texto con marcadores de posición
String text = "¡Bienvenido a %server_name%!";
String parsed = api.parse(text, null);

// Si tienes marcadores de posición específicos del jugador, puedes pasar el jugador como contexto. Actualmente debe ser un `PlayerRef`
// String parsed = api.parse(text, playerRef);

Creando Implementaciones de Marcadores de Posición Personalizados

Puedes crear tu propia implementación de la interfaz Placeholder:

import com.texisoft.plugin.api.Placeholder;

public class MyCustomPlaceholder implements Placeholder {
    @Override
    public String getIdentifier() {
        return "my_custom_placeholder";
    }

    @Override
    public String getValue(Object context) {
        // Implementa tu lógica personalizada aquí
        return "Custom Value";
    }
}

// Registra tu marcador de posición personalizado
PlaceholderAPI.getInstance().registerPlaceholder(new MyCustomPlaceholder());

Usando PlayerPlaceholder para Extracción Dinámica de Datos

El plugin incluye una clase PlayerPlaceholder que puede extraer datos dinámicamente de objetos jugador utilizando reflexión. Esto es útil cuando deseas acceder a propiedades de objetos jugador sin conocer su estructura exacta de antemano.

import com.texisoft.plugin.placeholders.PlayerPlaceholder;

// Crea un marcador de posición que extrae la propiedad "name" de los objetos jugador
PlayerPlaceholder namePlaceholder = PlayerPlaceholder.of("player_name", "name", "Unknown Player");

// Crea un marcador de posición que extrae una propiedad anidada (por ejemplo, "location.x")
PlayerPlaceholder xPlaceholder = PlayerPlaceholder.of("player_x", "location.x", "0");

// Registra los marcadores de posición
PlaceholderAPI api = PlaceholderAPI.getInstance();
api.registerPlaceholder(namePlaceholder);
api.registerPlaceholder(xPlaceholder);

// Usa los marcadores de posición en texto
String text = "El jugador %player_name% está en X: %player_x%";
String parsed = api.parse(text, playerObject);

La clase PlayerPlaceholder intenta múltiples enfoques para extraer datos:

  • Usando métodos getter (por ejemplo, getName() para la propiedad “name”)
  • Usando métodos “is” para propiedades booleanas (por ejemplo, isOp() para la propiedad “op”)
  • Usando acceso directo a campos si los métodos no están disponibles

También admite propiedades anidadas (por ejemplo, “location.x”) al recorrer la jerarquía de objetos.

Relacionados:

DeathCounter REST API

DeathCounter REST API

#API#API REST de DeathCounter#DeathCounter

API REST para DeathCounter API-REST Obtén todas las muertes en el Universo (o EnablePerWorldTracking está deshabilitado ...

HyVoltz

HyVoltz

#API#electricidad#Hytale

HyVoltz es una API de electricidad ligera para mods de Hytale. La API se llama HyVoltz; la unidad de energía que maneja ...

PlayerInteractLib

PlayerInteractLib

#API#Hytale#Interacción

PlayerInteractLib es una biblioteca ligera del lado del servidor que restaura un evento de interacción de jugador que fa...

Armor Abilties

Armor Abilties

#API#Armadura#habilidades

La API de habilidades de armadura: El plugin de habilidades de armadura está dirigido a creadores de paquetes, permitién...

Mob Spawners

Mob Spawners

#API#Commands#events

Hytale Spawners añade generadores de mobs personalizados al juego para modos de juego complejos o para SMP general Comma...

FoxEconomy

FoxEconomy

#API#Economía#FoxEconomy

FoxEconomy – Plugin de economía todo en uno para Hytale FoxEconomy te permite dar a los jugadores dinero en el jue...