PlayerPresents icon

PlayerPresents -----

Player-to-player gifting made fun and intuitive.




Fixed: Item Duplication Exploit

Fixed an exploit where players could duplicate items using cheat clients or UI utils mods by saving and reloading the gift creation GUI.

  • ✅ Locked all items in gift selection menus to prevent extraction
  • ✅ Automatically detected and closed unauthorized GUI instances
  • ✅ Prevented command abuse during active gift creation
----------, Jun 15, 2026

Version 1.1.0

✨ New Features

Full MiniMessage Support
Lang files now support all MiniMessage tags:
  • Colors: <red>, <blue>, <gold>, <green> and more
  • Formatting: <bold>, <italic>, <underlined>, <strikethrough>, <obfuscated>
  • Hex colors: <color:#FF9100>
  • Gradients: <gradient:#FF9100:#EA1205>text</gradient>
  • Rainbow: <rainbow>text</rainbow>
  • Reset: <reset>

Backward Compatibility with Legacy Formatting
All legacy formats still work simultaneously:
  • &c, &l, &n - classic color codes
  • &#FF9100 - legacy hex format
  • §c, §l, §6 - section (§) format
  • §x§F§F§9§1§0§0 - § hex format

PlaceholderAPI Integration
Placeholders are now automatically expanded when a player is provided:
  • %player_name%, %player_health% - standard PAPI placeholders
  • %nexo_shift_-48%, %nexo_size_36% - Nexo placeholders
  • {from}, {for} - custom plugin placeholders

Gift Creation with MiniMessage + Placeholders
Created gifts now support:
  • MiniMessage tags in name and lore
  • Legacy color codes
  • PlaceholderAPI placeholders that remain dynamic
  • Custom formatting combinations like
    Code (YAML):
    "<b><gradient:#FF9100:#EA1205>gradient</gradient></b> %nexo_shift_-48%§6Select Gift Appearance"

Bug Fixes & Improvements

️ Gift.yml Auto-Update
  • No longer warns about missing base64 for non-PLAYER_HEAD items
  • No longer warns about missing model-data for PLAYER_HEAD items
  • Automatically adds missing Present sections (Present15, Present16, etc.)
  • Preserves user settings and comments during updates

Message Formatting Pipeline
Messages are now processed in this order:

  • [1] Expand PlaceholderAPI placeholders (%placeholder%)
    [2] Replace custom placeholders ({from}, {for})
    [3] Convert § hex to &#RRGGBB
    [4] Convert § codes to & equivalents
    [5] Convert & hex to MiniMessage <color:#RRGGBB>
    [6] Convert & codes to MiniMessage tags
    [7] Parse everything with MiniMessage
    [8] Convert to legacy § format for Minecraft

GUI Improvements
  • All GUI titles now support MiniMessage + legacy colors + PlaceholderAPI
  • Preview items show expanded placeholders
  • Final gifts keep placeholders dynamic for real-time display
  • Text input hints updated with MiniMessage examples
----------, Jun 14, 2026

Version 1.1.0

✨ New Features

Full MiniMessage Support
Lang files now support all MiniMessage tags:
  • Colors: <red>, <blue>, <gold>, <green> and more
  • Formatting: <bold>, <italic>, <underlined>, <strikethrough>, <obfuscated>
  • Hex colors: <color:#FF9100>
  • Gradients: <gradient:#FF9100:#EA1205>text</gradient>
  • Rainbow: <rainbow>text</rainbow>
  • Reset: <reset>

Backward Compatibility with Legacy Formatting
All legacy formats still work simultaneously:
  • &c, &l, &n - classic color codes
  • &#FF9100 - legacy hex format
  • §c, §l, §6 - section (§) format
  • §x§F§F§9§1§0§0 - § hex format

PlaceholderAPI Integration
Placeholders are now automatically expanded when a player is provided:
  • %player_name%, %player_health% - standard PAPI placeholders
  • %nexo_shift_-48%, %nexo_size_36% - Nexo placeholders
  • {from}, {for} - custom plugin placeholders

Gift Creation with MiniMessage + Placeholders
Created gifts now support:
  • MiniMessage tags in name and lore
  • Legacy color codes
  • PlaceholderAPI placeholders that remain dynamic
  • Custom formatting combinations like
    Code (YAML):
    "<b><gradient:#FF9100:#EA1205>gradient</gradient></b> %nexo_shift_-48%§6Select Gift Appearance"

Bug Fixes & Improvements

️ Gift.yml Auto-Update
  • No longer warns about missing base64 for non-PLAYER_HEAD items
  • No longer warns about missing model-data for PLAYER_HEAD items
  • Automatically adds missing Present sections (Present15, Present16, etc.)
  • Preserves user settings and comments during updates

Message Formatting Pipeline
Messages are now processed in this order:

  • [1] Expand PlaceholderAPI placeholders (%placeholder%)
    [2] Replace custom placeholders ({from}, {for})
    [3] Convert § hex to &#RRGGBB
    [4] Convert § codes to & equivalents
    [5] Convert & hex to MiniMessage <color:#RRGGBB>
    [6] Convert & codes to MiniMessage tags
    [7] Parse everything with MiniMessage
    [8] Convert to legacy § format for Minecraft

GUI Improvements
  • All GUI titles now support MiniMessage + legacy colors + PlaceholderAPI
  • Preview items show expanded placeholders
  • Final gifts keep placeholders dynamic for real-time display
  • Text input hints updated with MiniMessage examples
----------, Jun 14, 2026

✅ Fixed an issue where gifts opened from the offhand would not be removed, preventing infinite gift opening exploits.
----------, Apr 27, 2026

✅ Added a privacy-focused enhancement to tab completion for
automatically hiding the names of players who are currently in vanish mode, ensuring a cleaner and more secure admin experience.
----------, Jan 3, 2026

✅ Added full version compatibility support from Minecraft 1.17 up to the latest release 1.21.10+, ensuring seamless operation across all modern server versions.

✅ Fixed skull texture rendering by implementing modern Paper API integration (PlayerProfile and ProfileProperty) compatible with all supported versions.

✅ Replaced legacy reflection-based texture injection with official Bukkit/Paper API methods for improved compatibility and stability across version range.

✅ Ensured custom skull textures display correctly in both GUI previews and created gift items on all supported server versions.

✅ Implemented proper URL extraction from Base64-encoded texture data for seamless texture application across Minecraft 1.17+.

✅ Improved long-term maintainability by using future-proof API methods that align with Minecraft's evolving server architecture and ensure continued support for upcoming versions.

✅ Verified performance and reliability across the entire supported version range (1.17 - 1.21.10+) for production environments.
----------, Dec 22, 2025

  • ✅ Added
    Code (Text):
    $delay$
    placeholder feature for delayed command execution across all command types (TIME, INTERVAL, WEEKLY, MONTHLY_DAY, GAME_TIME).
  • ✅ Implemented cumulative delay system where multiple
    Code (Text):
    $delay$
    commands execute sequentially with customizable delay intervals.
  • ✅ Commands without
    Code (Text):
    $delay$
    before delayed commands execute immediately, while those after delayed commands execute after all delays complete.
  • ✅ Added comprehensive delay support with delay value specified in seconds via the
    Code (Text):
    delay
    configuration field.
  • ✅ Delay feature works seamlessly with all existing placeholder replacements (%day%, %month%, %year%, %hour%, %minute%, PlaceholderAPI, etc.).
  • ✅ Enhanced configuration flexibility with delay parameter available for all command types without any restrictions.
  • ✅ Added detailed logging for delayed command scheduling and execution with timing information.

Example Configuration

Here's a practical example of using the new delay feature for a server restart countdown:

Code (YAML):

restart-countdown
:
  enabled
: true   # Set to true to enable
  type
: "TIME"
  commands
:
   - "say Restart in 10 seconds"
    - "$delay$ say Restart in 9 seconds"
    - "$delay$ say Restart in 8 seconds"
    - "$delay$ say Restart in 7 seconds"
    - "$delay$ say Restart in 6 seconds"
    - "$delay$ say Restart in 5 seconds"
    - "$delay$ say Restart in 4 seconds"
    - "$delay$ say Restart in 3 seconds"
    - "$delay$ say Restart in 2 seconds"
    - "$delay$ say Restart in 1 second"
    - "$delay$ say Restarting server now!"
    - "$delay$ restart"   # Restart command will execute after all delays
  time
: "23:59"   # Execute at 23:59 every day
  delay
: "1"   # 1 second delay between each command
 
----------, Dec 21, 2025

✅ Added particle and sound effects for gift creation and opening with customizable settings.

✅ Implemented separate configuration for creation and opening effects via create-particle-count and open-particle-count.

✅ Fixed bug preventing gifts from being placed into containers (chests, barrels, shulker boxes, etc.).

✅ Gifts can now be stored in containers without restrictions.

✅ Fixed asynchronous gift creation process for more stable and optimized custom name and custom lore functionality.

✅ Prevented players from accidentally clicking existing gifts when selecting gift names and lore.

✅ Config auto-updates on plugin startup with missing keys and values.


Effects Configuration Example:

Code (YAML):

# =====================================
# EFFECTS SETTINGS - SOUNDS AND PARTICLES
# =====================================
# Configure sound and particle effects for gift creation and opening
# All players will experience these unified effects for all gifts

effects
:
  # Sound played when a gift is created
  # List of available sounds: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
  # Examples: ENTITY_PLAYER_LEVELUP, BLOCK_NOTE_BLOCK_XYLOPHONE, ENTITY_FIREWORK_ROCKET, BLOCK_AMETHYST_BLOCK_CHIME
  # Set to "NONE" to disable sound
  create-sound
: "ENTITY_PLAYER_LEVELUP"

  # Sound played when a gift is opened
  # Examples: ENTITY_ITEM_PICKUP, BLOCK_CHEST_OPEN, UI_TOAST_CHALLENGE_COMPLETE, ENTITY_FIREWORK_LAUNCH
  # Set to "NONE" to disable sound
  open-sound
: "BLOCK_CHEST_OPEN"

  # Particle effect displayed when a gift is created
  # List of available particles: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html
  # Examples: FIREWORKS, HAPPY_VILLAGER, EXPLOSION_NORMAL, SPELL_WITCH, CLOUD, DRAGON_BREATH, TOTEM
  # Set to "NONE" to disable particles
  create-particle
: "HAPPY_VILLAGER"

  # Particle effect displayed when a gift is opened
  # Examples: FIREWORK, CRIT, EXPLOSION_LARGE, SPELL_INSTANT, CLOUD, TOTEM
  # Set to "NONE" to disable particles
  open-particle
: "FIREWORK"

  # Number of particles to spawn for creation effect
  # Recommended: 10-30
  create-particle-count
: 25

  # Number of particles to spawn for opening effect
  # Recommended: 20-50
  open-particle-count
: 25
 
----------, Dec 21, 2025

✅ Added particle and sound effects for gift creation and opening with customizable settings.

✅ Implemented separate configuration for creation and opening effects via create-particle-count and open-particle-count.

✅ Fixed bug preventing gifts from being placed into containers (chests, barrels, shulker boxes, etc.).

✅ Gifts can now be stored in containers without restrictions.

✅ Fixed asynchronous gift creation process for more stable and optimized custom name and custom lore functionality.

✅ Prevented players from accidentally clicking existing gifts when selecting gift names and lore.

✅ Config auto-updates on plugin startup with missing keys and values.


Effects Configuration Example:

Code (YAML):

# =====================================
# EFFECTS SETTINGS - SOUNDS AND PARTICLES
# =====================================
# Configure sound and particle effects for gift creation and opening
# All players will experience these unified effects for all gifts

effects
:
  # Sound played when a gift is created
  # List of available sounds: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
  # Examples: ENTITY_PLAYER_LEVELUP, BLOCK_NOTE_BLOCK_XYLOPHONE, ENTITY_FIREWORK_ROCKET, BLOCK_AMETHYST_BLOCK_CHIME
  # Set to "NONE" to disable sound
  create-sound
: "ENTITY_PLAYER_LEVELUP"

  # Sound played when a gift is opened
  # Examples: ENTITY_ITEM_PICKUP, BLOCK_CHEST_OPEN, UI_TOAST_CHALLENGE_COMPLETE, ENTITY_FIREWORK_LAUNCH
  # Set to "NONE" to disable sound
  open-sound
: "BLOCK_CHEST_OPEN"

  # Particle effect displayed when a gift is created
  # List of available particles: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html
  # Examples: FIREWORKS, HAPPY_VILLAGER, EXPLOSION_NORMAL, SPELL_WITCH, CLOUD, DRAGON_BREATH, TOTEM
  # Set to "NONE" to disable particles
  create-particle
: "HAPPY_VILLAGER"

  # Particle effect displayed when a gift is opened
  # Examples: FIREWORK, CRIT, EXPLOSION_LARGE, SPELL_INSTANT, CLOUD, TOTEM
  # Set to "NONE" to disable particles
  open-particle
: "FIREWORK"

  # Number of particles to spawn for creation effect
  # Recommended: 10-30
  create-particle-count
: 25

  # Number of particles to spawn for opening effect
  # Recommended: 20-50
  open-particle-count
: 25
 
----------, Dec 20, 2025

  • ✅ Implemented content filter system with regex-based pattern matching to prevent toxic, offensive, and inappropriate content in gift names and lore.

  • ✅ Added filter.yml with pre-configured filter categories: profanity, racism, homophobia, sexism, religious intolerance, spam, and advertising.
  • ✅ Content filter is fully configurable - enable/disable in config.yml with content-filter.enabled and content-filter.log-violations settings.
  • ✅ Improved logging system: separated logs into three dedicated files in logs/ folder:
    • create.log - Gift creation events with full item details
    • open.log - Gift opening events with received items
    • filter.log - Content filter violations with player info and flagged content
  • ✅ Plugin no longer hard-blocks specific item types in code; only items explicitly listed in blacklist-items are blocked.
  • ✅ Removed hard-coded blocking of armor and other materials — all blocking is now solely controlled by configuration.
  • ✅ Added multi-language support for all filter violation messages in all 6 supported languages (English, Czech, German, Spanish, Japanese, Russian).
  • ✅ Fixed Maven shade plugin configuration to properly handle bstats library merging without MANIFEST conflicts.
----------, Dec 20, 2025

  • ✅ Fixed missing keys in config.yml and language files - plugin now automatically fills in missing settings without overwriting user changes and comments.
  • ✅ Added support for custom lore and custom name for gifts - players can now fully customize the appearance and description of their gifts with support for color codes.
  • ✅ Fixed returning to GUI after entering text in chat.
  • ✅ Multi-line lore with empty lines - custom gift descriptions now support \n for new lines and \n\n to create gaps.
  • ✅ Improved placeholder system - placeholders ({from}, {for}) now work correctly in custom names and descriptions.
  • ✅ Added sync warnings in config.yml.
  • ✅ Fixed duplicate sections in gift.yml - prevented creation of multiple Cost: sections that caused YAML parsing errors.
  • ✅ Better gift.yml validation without risky auto-fixes - plugin now only reports errors instead of attempting automatic fixes that could corrupt data.
----------, Dec 20, 2025

  • ✅ Removed unnecessary generation of names and lore for menu items in the gift selection.
  • ✅ Optimized gift appearance selection.
  • ✅ Fixed bug with inserting armor into gifts.
----------, Dec 20, 2025

Plugin for creating and sending gifts with a lock system and logging

✨ Key Features

Gift Creation
  • Intuitive GUI system - 5 steps to create the perfect gift
  • Appearance selection - various gift templates to choose from
  • Custom name and description - customizable gift name and lore
  • Flexible slots - choose how many slots (how many items fit)
  • Customizable colors - support for color codes, HEX colors, and MiniMessage

Lock System
  • Minute-based lock - gift is locked for a specified number of minutes
  • Scheduled lock - gift opens at a specific date and time
  • Creator bypass - gift creator can always open it without restrictions
  • Admin bypass - administrators can bypass any lock
  • Countdown to opening - players see remaining time (e.g., "5d 2h 30m")

Economy
  • Vault integration - support for any economy plugin
  • Static prices - fixed price per gift
  • Dynamic prices - price based on number of slots
  • Free gifts - option to disable prices

Logging
  • Detailed records - all information about gift contents is recorded
  • Opening logs - who opened what and what they received
  • Item information - names, lore, enchantments, and custom model data
  • Disableable - can be disabled in config.yml
  • Readable format - easy to read in log.log file

Language Support
  • Czech
  • English
  • German
  • Spanish
  • Russian
  • Japanese
  • Customizable

Commands

Main command:
Code (Text):
/present create <recipient>
Example:
Code (Text):
/present create John
Creates a gift for player John.

Admin command:
Code (Text):
/present reload
Reloads configuration, languages, and templates.

Configuration

config.yml - Basic Settings:
Code (YAML):
language : "en"                     # Choose language

vault
: true                       # Vault economy

gift-lock
:
  mode
: "minutes"                 # "none", "minutes", "scheduled"
  duration-minutes
: 1             # Lock duration in minutes
  scheduled-open-date
: "2025-12-25 10:00:00"
  timezone
: "auto"                 # "auto" or specific timezone

logging
:
  enabled
: true                   # Enable/disable logging
Permissions

  • playerpresents.create - Create gifts
  • playerpresents.open - Open gifts
  • playerpresents.open.locked - Bypass gift locks
  • playerpresents.admin - Admin commands

Usage Examples

Example 1: Christmas Gifts
  • Type:
    Code (Text):
    /present create John
  • Choose appearance (Christmas wrapping)
  • Type name: " Christmas Surprise"
  • Type description: "Merry Christmas!"
  • Choose 5 slots
  • Add diamonds, emeralds, and books
  • Confirm and gift is sent!

Example 2: Time-Limited Gift
Code (Text):

gift-lock:
  mode: "minutes"
  duration-minutes: 60
 
Gift can be opened in 60 minutes. Player will see: "Gift opens in 59m 45s!"

Example 3: Scheduled Gift
Code (Text):

gift-lock:
  mode: "scheduled"
  scheduled-open-date: "2025-12-25 10:00:00"
  timezone: "Europe/Prague"
 
Gift opens exactly on December 25th at 10:00 AM CET.

⚙️ Requirements

  • Spigot/Paper 1.21+
  • Java 21+
  • Vault (if using economy)
  • Economy plugin (if you want prices)

✨ Features

  • ✅ Intuitive GUI with multilingual support
  • ✅ Flexible lock system (minute/date)
  • ✅ Detailed logging of all actions
  • ✅ Economy through Vault
  • ✅ Custom gift templates
  • ✅ Color and formatting codes (MiniMessage)
  • ✅ Admin bypass for administrators
  • ✅ Disableable logging
  • ✅ Automatic timezone detection


SUPPORT

For support or feature suggestions, contact me:

[​IMG]
----------, Dec 20, 2025

Resource Information
Author:
----------
Total Downloads: 76
First Release: Dec 19, 2025
Last Update: Jun 15, 2026
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings