LinkBlocks - Advanced Teleport Blocks [1.21+] icon

LinkBlocks - Advanced Teleport Blocks [1.21+] -----

Create public, private, and personal teleport links with GUIs, effects, and more!




✦ LinkBlocks ✦
Update v1.3.0 - New Features & Improvements!

✨ What's New? ✨

  • Idle Particles: Blocks placed by players now display idle particles, making them visually appealing and easier to locate. This applies to both Personal Links and Private Global Links.
    Cooldown Display: The cooldown timer is now displayed dynamically in the ActionBar (above the XP bar), providing clear feedback to players without the need for commands.
    Hologram Information: Each LinkBlock now features a hologram above it with essential details, including:
    • ID or Name: Identifier of the block. Owner: Name of the player who placed the block. Cooldown: Remaining time before the block can be used again.

️ Improvements & Fixes ️
  • Performance Optimizations: Reduced resource usage for particles and hologram updates. Fixed Bugs: Addressed minor bugs related to block placement and teleportation handling.

How to Update?

  1. Backup your server files.
  2. Replace the previous version of the plugin with the new LinkBlocks-v1.3.0.jar.
  3. Restart your server.
Note: For holograms, ensure you have a compatible hologram library installed (DecentHolograms).

Feedback & Suggestions
We’d love to hear your feedback! Share your thoughts, ideas, or report any bugs in the comentaries
----------, Apr 13, 2025

LinkBlocks v1.2.0
¡Nuevas Características, Mejoras de Seguridad y Correcciones!
New Features, Security Improvements & Fixes!


English below / Español abajo
✨ Novedades
  • Añadido comando `/lbs pgive <id> <jugador>` para que admins devuelvan items de bloques personales ya comprados.
  • Añadido sistema de amigos para Bloques Personales con comandos `/lbs padd <id> <jugador>` y `/lbs premove <id> <jugador>`. ¡Ahora los amigos también pueden usar tus enlaces personales!
  • Añadido comando `/lbs myblocks` que abre una GUI mostrando los bloques globales privados colocados y los personales poseídos por el jugador, con sus ubicaciones.
  • Información de Dueño: Los items LinkBlock (privados/personales) ahora guardan y muestran el UUID y nombre del dueño (NBT/Lore).
  • Restricción de Dropeo: Ya no se pueden tirar los items LinkBlock al suelo (Tecla 'Q' o inventario).
  • Seguridad en Cofres:
    • Impide que jugadores tomen LinkBlocks de otros de cofres/contenedores (bypass con permiso `linkblocks.admin.bypass.chest`).
    • Al romper un contenedor, los LinkBlocks dentro van a `/lbs lostblocks` de sus dueños.

✅ Mejoras
  • Comprobación de Inventario: Las GUIs de tienda ahora comprueban si hay espacio suficiente ANTES de cobrar al jugador.
  • Retorno Contextual: Verificado y asegurado el funcionamiento del retorno desde `set2` al bloque global privado específico usado previamente.
  • Costos de Recuperación Individuales: Implementado sistema para definir `recovery_cost` por bloque en `config.yml` y un `default_lost_block_recovery_cost`.

Correcciones
  • Solucionado el problema donde la teletransportación podía seguir funcionando brevemente después de romper un bloque debido a caché desactualizado.
  • Asegurada la limpieza completa de datos del jugador al romper bloques personales.
  • (Implícito) Corregidos posibles errores que impedían el teletransporte en versiones de desarrollo recientes.

Nota: ¡Recuerda revisar la página principal del plugin para ver las nuevas configuraciones, mensajes y permisos necesarios para esta versión!

✨ New Features
  • Added `/lbs pgive <id> <player>` command for admins to give back items for already purchased personal blocks.
  • Added friend system for Personal Blocks with `/lbs padd <id> <player>` and `/lbs premove <id> <player>` commands. Friends can now use your personal links!
  • Added `/lbs myblocks` command opening a GUI showing the player's placed private global blocks and owned personal blocks with their locations.
  • Owner Info: LinkBlock items (private/personal) now store and display the owner's UUID and Name (NBT/Lore).
  • Drop Restriction: LinkBlock items can no longer be dropped on the ground ('Q' key or inventory).
  • Chest Security:
    • Prevents players from taking LinkBlocks belonging to others from containers (bypass permission: `linkblocks.admin.bypass.chest`).
    • When a container with LinkBlocks is broken, the blocks are sent to their owner's `/lbs lostblocks` instead of dropping.

✅ Improvements
  • Inventory Check: Shop GUIs now check for sufficient inventory space BEFORE charging the player.
  • Context-Sensitive Return: Verified and ensured the logic works for returning from `set2` to the specific private global block previously used.
  • Individual Recovery Costs: Implemented system to define `recovery_cost` per block in `config.yml` and a `default_lost_block_recovery_cost`.

Fixes
  • Fixed issue where teleportation could still work briefly after breaking a block due to outdated cache.
  • Ensured complete removal of player data entry when personal blocks are broken.
  • (Implicit) Fixed potential errors that were preventing teleports in recent development versions.

Note: Remember to check the main plugin page for necessary new configuration options, language keys, and permissions for this version!
----------, Apr 1, 2025

LinkBlocks Version 1.1.0 Update

This is a significant feature update for LinkBlocks! Thank you for your feedback during development.

>>> IMPORTANT - PLEASE READ! <<<
This update introduces new configuration options and requires new keys in your language files.
  • Add the new settings under the `settings:` section in your `config.yml` (see details below or on the main resource page).
  • Add the new message keys to your `messages_en.yml` and `messages_es.yml` files (see details below or on the main resource page).
  • Add the new permission nodes to your permissions plugin setup (see main resource page).
[HR][/HR]
✨ New Features
  • Public Global Blocks: Create direct teleport links between two admin-defined coordinates (`set1` <-> `set2`) usable by anyone! Use `/lbs public create <name>`, define points with `/lbs set1/set2 <name>`, then reload with `/lbs reload`. They don't use items and won't appear in `/lbs globalblocks`.
  • Permission-Based Limits: Control how many different personal block types players can own using permissions (e.g., `linkblocks.personal.limit.3`, `linkblocks.personal.limit.5`). Configurable default and maximum check range in `config.yml`.
  • Permission-Based Cooldowns: Assign different personal block cooldowns based on permissions (e.g., `linkblocks.cooldown.personal.5` for 5s, `linkblocks.cooldown.personal.0` for none). Configurable default and minimum check value in `config.yml`.
  • Global Block Cooldown: Added a configurable cooldown (default 5s) for using *all* global blocks (private and public) to prevent spam/loops (`settings.global_block_cooldown` in `config.yml`).
  • `/lbs help` Command: Displays available commands based on player permissions, with descriptions loaded from language files.
  • `/lbs leave` Command: Allows players who were added as friends to a private global block to remove their own access (`linkblocks.command.leave` permission).
  • Owner Info on Items: Private Global and Personal LinkBlock items now store and display the owner's name and UUID in NBT/Lore (added when given/bought).
  • No Dropping Items: Players can no longer drop LinkBlock items on the ground (`error.cannot_drop` message).
  • Chest Security:
    • Prevents players from taking LinkBlocks belonging to others from containers (Chests, Barrels, etc.) unless they have bypass permission (`linkblocks.admin.bypass.chest`). (`error.cannot_take_others_block` message).
    • When a container holding LinkBlocks is broken, the LinkBlocks inside are now sent to their owner's `/lbs lostblocks` instead of dropping (requires Owner NBT on the item). (`break.notification_chest_lost` message).

✅ Improvements & Fixes
  • **Context-Sensitive Return:** Returning from a global private `set2` location now correctly teleports the player back to the specific block instance they last used to reach `set1`.
  • **Language File System:** All user-facing messages are now loaded from `messages_en.yml` or `messages_es.yml` based on `settings.lang` in `config.yml`. (Removed `messages:` section from `config.yml`).
  • **Cache Reliability:** Fixed issues where the internal cache was not properly updated/cleared after breaking blocks, preventing teleports from stopping correctly.
  • **Public Block Logic:** Refined public block implementation (no item, uses fixed coordinates, ignored by `/give` and `/lbs globalblocks`).
  • **Lost Blocks Sync:** Fixed issue where lost blocks sometimes required a restart to appear in the GUI (`LostBlocksManager` now reloads file on get).
  • **Data Deletion:** Fixed issue where breaking blocks didn't fully remove all associated data from player files.
  • **Compilation Errors:** Fixed various compile errors related to method signatures (`createGlobalBlockEntry`, etc.).
  • General code cleanup and minor optimizations.

Required Configuration Changes
In `config.yml` -> `settings:` section, ADD/ENSURE these lines:

Code (YAML):

  lang
: "en" # Or "es" - Language to use
  # Default cooldown if no perm (personal blocks)
  personal_block_cooldown
: 10
  # Min cooldown value to check perms for (e.g., check for .cooldown.0)
  min_cooldown_check
: 0
  # Default limit if no perm (personal blocks)
  default_personal_block_limit
: 3
  # Max limit value to check perms for (e.g., check up to .limit.10)
  max_limit_check
: 10
  # Default recovery cost if not set per-block
  default_lost_block_recovery_cost
: 50.0
  # Cooldown for ALL global blocks (public/private)
  global_block_cooldown
: 5

[B ] [SIZE=4 ] New Message Keys [/SIZE ] [/B ]
Ensure your `messages_en.yml` and `messages_es.yml` contain the new keys added recently, including
: `usage.public_create`, `public_block_created`, `give.public_not_giveable`, `friend.public_no_friends`, `teleport_global_cooldown`, `buy.global.already_placed`, `error.cannot_drop`, `error.cannot_take_others_block`, `break.notification_chest_lost`, `usage.leave`, `leave.success`, `leave.notification`, `help.command_list_header`, and all `help.description.*` keys. (See previous responses or the default files in the JAR ).

[B ] [SIZE=4 ] New Permissions [/SIZE ] [/B ]
[LIST ]
[* ] `linkblocks.admin.public.create`
[* ] `linkblocks.command.leave`
[* ] `linkblocks.admin.bypass.chest` (Optional )
[* ] `linkblocks.personal.limit.X` (e.g., linkblocks.personal.limit.5 )
[* ] `linkblocks.cooldown.personal.X` (e.g., linkblocks.cooldown.personal.5 )
[/LIST ]

As always, please report any bugs or issues on the [URL=' [Link to your support page ]' ]resource discussion page or issue tracker [/URL ]. Thanks for using LinkBlocks!
----------, Mar 30, 2025

Resource Information
Author:
----------
Total Downloads: 56
First Release: Mar 28, 2025
Last Update: Apr 13, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings