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:

Synapse

Synapse

#API#Desarrollo#Hytale

Synapse v1.3.0 — API moderna de marcadores de posición (¡Ahora con soporte para Hytale!) Synapse es un poderoso y modern...

Bridge

Bridge

#API#gestión#Hytale

Una poderosa biblioteca de plugins de Hytale para crear, gestionar y orquestar mundos temporales con facilidad. Bridge p...

HyDB

HyDB

#API#Base de datos#Desarrollo

HyDB – API de Base de Datos SQLite Profesional para Hytale 📊 Resumen HyDB es un plugin base profesional para Hyta...

Advanced Parties

Advanced Parties

#AdvancedParties#API#grupos

⚠️ Trabajo en Progreso ⚠️AdvancedParties está en desarrollo activo. Se planean características como la interfaz gráfica ...

Cassaforte

Cassaforte

#API#Cassaforte#Desarrollo

Una API de abstracción de plataforma para plugins de Hytale, que proporciona interfaces de economía, permisos y chat. De...

Coins

Coins

#API#Economía#Hytale

Hytale Coins Mod Un sencillo mod de economía para Hytale que añade monedas físicas y un sistema de cartera digital. Cara...