Temporary Dimension
Descripción general
Temporary Dimension envía a un jugador a una copia nueva de un mundo plantilla. La copia se crea a partir de una plantilla de Advanced SlimeWorld cuando el jugador entra, vive solo en memoria y se descarga en cuanto el jugador se ha ido, por lo que cada visita parte de la plantilla. Está pensada para mazmorras, tutoriales, salas privadas y escenarios de cinemáticas que no deben compartirse ni conservarse.
Describes una dimensión una sola vez con una entrada Temporary Dimension Definition: los mundos plantilla (se elige uno al azar), la zona donde aparecen los jugadores, el permiso para entrar, los comandos bloqueados y lo que se activa al entrar y al salir. Los jugadores entran mediante un comando, una acción de TypeWriter o un comando de administración, y vuelven al lugar exacto del que partieron.
Funciona con la versión BTC de TypeWriter y con BTC Core (Paper/Folia), y también admite servidores AdvancedSlimePaper. La creación, la búsqueda del punto de aparición y el teletransporte son asíncronos y seguros para Folia.
Características
- Mundos instanciados: cada entrada crea un mundo nuevo llamado
tempdim_<uuid>a partir de una plantilla y lo elimina cuando queda vacío. - Varias plantillas: enumera más de un mundo plantilla y se elige uno al azar.
- Aparición aleatoria segura: puntos aleatorios en una caja y después una búsqueda alrededor de su centro, aceptando solo aire sobre un bloque sólido y no peligroso.
- Lista blanca de bloques de aparición: limita la aparición a los tipos de bloque elegidos.
- Lista negra de comandos: bloquea comandos (y sus formas
plugin:) mientras se está dentro. - Vuelta al origen: el jugador regresa a la ubicación, la rotación y el mundo de los que partió.
- Disparadores de entrada y salida: ejecuta cualquier entrada de TypeWriter y envía mensajes MiniMessage al entrar y al salir.
- Permiso por dimensión: un permiso por dimensión, comprobado por el comando y opcionalmente por la acción.
- Hechos y placeholders: sabe si un jugador está en una dimensión, en cuál y quién más está en ella.
Instalación
- Ejecuta el servidor sobre BTC Core, o sobre AdvancedSlimePaper; la extensión busca cualquiera de los dos en tiempo de ejecución.
- Coloca el JAR de Temporary Dimension en
plugins/Typewriter/extensions/y reinicia el servidor. - Prepara tus mundos plantilla como mundos Slime:
- En BTC Core, colócalos donde el cargador Slime
filelee los mundos (slime_worldsen la carpeta del servidor por defecto). - En AdvancedSlimePaper, la plantilla debe ser un mundo Slime cargado con el nombre exacto de la plantilla; se copia desde la memoria.
- En BTC Core, colócalos donde el cargador Slime
- Da a los jugadores el permiso que establezcas en la dimensión.
Primeros pasos
Crea una mazmorra a la que los jugadores puedan entrar con /typewriter tempdim dungeon1.
- Construye tu mazmorra como un mundo Slime llamado
dungeon1_templatey colócalo donde tu servidor espera las plantillas (consulta más arriba). - En el panel web de TypeWriter, abre una página estática y añade una entrada Temporary Dimension Definition.
- Establece
commandNameendungeon1,permissionendimension.dungeon1y añadedungeon1_templateatemplateWorlds. - Establece
spawnZonecon dos esquinas opuestas (x1,y1,z1yx2,y2,z2) alrededor de la entrada. Usa coordenadas de bloque del mundo plantilla. - Opcionalmente, rellena
blacklistedCommands(por ejemplohome,spawn,tpa) y enlaza disparadores enonEnteryonExit. - Publica, da el permiso a un jugador de prueba y ejecuta
/typewriter tempdim dungeon1.
Para entrar desde una misión o un NPC, usa Enter Temporary Dimension y, para salir, Leave Temporary Dimension.
El comando de la dimensión es un subcomando de /typewriter tempdim; la extensión no registra ningún comando de nivel superior. Se puede exponer un comando corto como /dungeon1 con una entrada custom_command de TypeWriter en tu página, lo que mantiene el registro de comandos seguro frente a las recargas.
Cómo funciona
Un jugador solo puede estar en una dimensión temporal a la vez. Si la creación falla (sin plantilla, plantilla no encontrada, ningún punto de aparición seguro en 10 segundos, fallo de teletransporte), el jugador se queda donde está, recibe un mensaje de error y se elimina el mundo a medio construir. Si el jugador se desconecta, se le retira de la instancia sin teletransporte y el mundo se cierra cuando queda vacío. Todas las instancias se cierran cuando TypeWriter se recarga o se detiene.
Comandos
Todos los comandos están bajo /typewriter.
| Comando | Descripción |
|---|---|
/typewriter tempdim <commandName> | Entra en la dimensión cuyo commandName coincide. Requiere el permission de la dimensión (vacío significa abierto a todos). |
/typewriter tempdim enter <dimension> | Entra en cualquier dimensión elegida de la lista de entradas, ignorando su permiso. Requiere typewriter.temporarydimension.admin. |
/typewriter tempdim leave | Sales de tu dimensión actual y vuelves a tu origen. No necesita permiso. |
/typewriter tempdim list | Lista las instancias activas con su número de jugadores y el nombre del mundo. Requiere typewriter.temporarydimension.admin. |
commandName solo admite letras, dígitos, _, - y :, y no puede ser enter, leave ni list. Los comandos se construyen cuando se cargan las entradas, así que publica después de cambiarlo.
Permisos
| Permiso | Concede |
|---|---|
typewriter.temporarydimension.admin | /typewriter tempdim enter y /typewriter tempdim list. |
el campo permission de una definición | /typewriter tempdim <commandName> y, si checkPermission está activado, la acción de entrada. |
Placeholders
Expansión de MiniPlaceholders tempdim, utilizable como etiquetas MiniMessage. Devuelven un valor vacío, 0 o false cuando el jugador no está en una dimensión.
| Placeholder | Devuelve |
|---|---|
<tempdim_in_dimension> | true o false. |
<tempdim_in_dimension_bool> | 1 o 0, para comparaciones numéricas. |
<tempdim_current> | Nombre de la entrada de la dimensión actual. |
<tempdim_current_id> | Id de entrada de la dimensión actual. |
<tempdim_current_world> | Nombre del mundo de la instancia (tempdim_...). |
<tempdim_players> | Número de jugadores en la instancia. |
<tempdim_players_list> | Nombres de los jugadores en la instancia, separados por comas. |
En los mensajes de una definición, <dimension> se sustituye por el nombre de la entrada y <command>, en el mensaje de comando bloqueado, por el comando bloqueado.
Entradas
5 entradas, generadas a partir del código fuente de la extensión.
Acciones2
- Enter Temporary Dimension ActionEnter a temporary dimension
- Leave Temporary Dimension ActionLeave current temporary dimension
Hechos2
- In Specific Dimension FactCheck if player is in a specific dimension
- In Temporary Dimension FactCheck if player is in a temporary dimension
Manifiestos1
- Temporary DimensionTemporary Dimension Definition
Resolución de problemas
Unable to prepare the temporary dimension. No se pudo clonar la plantilla. Comprueba el nombre de la plantilla en templateWorlds frente al nombre del mundo Slime, que el mundo está en slime_worlds (BTC Core) o cargado (AdvancedSlimePaper), y lee la advertencia del registro para conocer la causa. En servidores que no son ni BTC Core ni AdvancedSlimePaper, el registro dice unsupported server platform for SlimeWorld.
No pasa nada y el registro dice no template configured. templateWorlds está vacío o solo contiene nombres en blanco.
No safe spawn was found in the temporary dimension. Ninguno de los puntos probados tenía dos bloques de aire libres sobre un bloque sólido que no fuera lava, fuego, cactus o magma. Amplía la spawnZone, asegúrate de que cubre suelo sólido de la plantilla (incluida la Y) y comprueba que spawnBlockWhitelist contiene el bloque del suelo.
You are already in a temporary dimension. Un jugador solo puede estar en una instancia. Usa antes el comando o la acción de salida.
Un comando sigue funcionando dentro de la dimensión. Escribe el nombre del comando sin la barra en blacklistedCommands. La coincidencia se hace con la primera palabra, sin distinguir mayúsculas, y también bloquea las formas name:command, pero no los alias registrados con otro nombre.
El comando de la dimensión no existe tras editarla. Los comandos de dimensión se generan a partir de las entradas: publica la página y comprueba que commandName solo usa caracteres permitidos y no choca con otra dimensión.