Sueta

NxCodex

1.5.0

Codex is a Minecraft plugin offering an interactive menu of areas to discover, with timed teleportations based on the player's rank. 🔗 Dependency: HeadDatabase ⭐ Recommended: LuckPerms 🧩 Compatibili

·Plugin
  1. 1.5.0latestNxCodex 1.5.0May 24, 2026

    Version 1.5.0 - Latest Release

    🎉 New Features
    #### 🎨 Custom Player Head Support - Base64 Texture Support: Use custom player head textures without any plugin dependency - HeadDatabase Integration: Optional HeadDatabase support with automatic fallback - Priority System: HeadDatabase > Head Texture > Material for maximum flexibility - Native API: Uses Bukkit's PlayerProfile API for better compatibility Configuration:
    zone:
      spawn:
        material: "GRASS_BLOCK"  # Fallback material
        # hdb: "12345"  # HeadDatabase ID (priority 1, requires HeadDatabase plugin)
        # head-texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmFkYzA0OGE3Y2U3OGY3ZGFkNzJhMDdkYTI3ZDg1YzA5MTY4ODFlNTUyMmVlZWQxZTNkYWYyMTdhMzhjMWEifX19"  # Base64 texture (priority 2, no plugin required)
    Priority Order: 1. HeadDatabase (hdb: "id") - If HeadDatabase plugin is installed 2. Head Texture (head-texture: "base64") - Custom texture without plugin 3. Material (material: "STONE") - Standard Minecraft material #### 🧭 Safe Teleportation System - Smart Position Detection: Automatically finds safe teleport locations - Block Collision Prevention: Ensures players don't spawn inside blocks - Ground Validation: Verifies solid ground beneath player - Danger Avoidance: Prevents spawning in lava, magma blocks, or unsafe areas - Auto-Adjustment: Searches up to 3 blocks up/down for safe position - Block Centering: Centers players on blocks (x.5, z.5) for better positioning Safety Checks: - ✅ Feet and head blocks are passable (air or non-solid) - ✅ Ground block is solid and safe - ✅ Avoids lava, magma, and water - ✅ Automatic fallback to nearest safe location #### 🔄 Player Rotation Support (Yaw/Pitch) - Full Rotation Control: Save and restore player facing direction - Automatic Capture: Editor saves current yaw and pitch when setting location - Precise Orientation: Players face the exact direction configured - Visual Feedback: Editor displays current rotation values Configuration:
    cordinates:
      x: 0.5      # X coordinate (centered on block)
      y: 64.0     # Y coordinate
      z: 0.5      # Z coordinate (centered on block)
      world: "world"
      yaw: 0.0    # Horizontal rotation (0-360°)
      pitch: 0.0  # Vertical rotation (-90° to 90°)
    Rotation Guide: - Yaw: 0° = South, 90° = West, 180° = North, 270° = East - Pitch: -90° = Looking up, 0° = Horizon, 90° = Looking down #### ⚙️ Simplified Configuration - Hardcoded Modrinth ID: No need to configure update checker ID - Cleaner Config: Removed modrinth-id from config.yml - Automatic Updates: Update checker works out of the box #### 🔄 Automatic Config Migration - Smart Config Updater: Automatically adds missing configuration options - Zero Downtime: Updates happen on plugin startup - Backward Compatible: Works with old configuration files - Safe Updates: Never overwrites existing values What Gets Updated Automatically: - Missing discovery section in config.yml - Missing yaw and pitch in zone coordinates - Missing chat-prompts and cooldown sections in guis.yml - Missing update-notifier message in lang.yml - Decimal conversion for coordinates (0 → 0.5 for centering) - All new configuration options from version 1.5.0 Example:
    [ConfigUpdater] Added missing 'discovery' section to config.yml
    [ConfigUpdater] codex.yml updated with missing yaw/pitch values
    [ConfigUpdater] Added yaw/pitch to guis.yml teleport lore
    [ConfigUpdater] config.yml updated successfully
    🐛 Bug Fixes
    #### Editor Display Updates - Fixed: Yaw and pitch values now update correctly in the zone editor - Fixed: Multiple config reloads when setting teleport location (now single reload) - Improved: Editor refreshes with updated rotation values immediately - Optimized: Batch coordinate updates for better performance #### Update Checker - Fixed: Update notification now only shows when remote version is actually newer - Fixed: Version comparison using semantic versioning (1.5.0 > 1.3.6) - Fixed: No more false update notifications when running dev/newer versions - Improved: Smart version parsing with support for suffixes (-SNAPSHOT, -beta) #### Gradient System - Fixed: Gradient colors now render correctly with formatting tags - Fixed: <bold>, <italic>, <underline>, <strikethrough> tags properly handled - Fixed: Character counting excludes formatting tags for accurate color distribution - Improved: Support for short tags (<b>, <i>, <u>, <st>) - Improved: Better color interpolation across gradient text #### Teleportation Issues - Fixed: Players no longer spawn inside blocks - Fixed: Teleportation to unsafe locations (lava, void, etc.) - Fixed: Incorrect player positioning on blocks - Improved: Teleportation reliability and safety #### Head/Skull Support - Fixed: HeadDatabase dependency is now optional (softdepend) - Fixed: Plugin works without HeadDatabase installed - Fixed: Proper fallback when HeadDatabase is not available - Improved: Better error handling for custom textures #### Configuration - Fixed: Coordinates now support decimal values for precise positioning - Fixed: Rotation values properly saved and loaded - Improved: Default values for new zones (centered on blocks)
    🔧 Technical Changes
    #### New Classes - SkullUtil: Utility class for managing custom player heads - HeadDatabase API integration - Base64 texture support - Automatic plugin detection - TeleportUtil: Safe teleportation utility - Position validation - Safety checks - Automatic position adjustment - ConfigUpdater: Automatic configuration migration - Adds missing config options - Updates old formats to new ones - Runs on plugin startup - Safe and non-destructive #### Enhanced Classes - CodexZone: Added headTexture field for custom textures - CodexManager: - Enhanced coordinate loading with yaw/pitch support - Added editZoneMultiple() for batch field updates - Optimized reload system for better performance - CodexMenu: Improved item building with head priority system - MenuListener: - Safe teleportation and rotation saving - Batch coordinate updates (x, y, z, world, yaw, pitch) - Improved editor refresh logic - ZoneEditorMenu: Display yaw/pitch in editor GUI with live updates - UpdateChecker: - Hardcoded Modrinth ID for simplicity - Semantic version comparison (major.minor.patch) - Smart version parsing with suffix support - ColorUtil: - Fixed gradient rendering with formatting tags - Support for <bold>, <italic>, <underline>, <strikethrough> - Improved color interpolation algorithm #### Dependencies - HeadDatabase: Changed from depend to softdepend - HeadDatabase API: Added as provided dependency - Bukkit PlayerProfile API: Used for custom head textures
    📝 Configuration Changes
    #### codex.yml Updates Before:
    cordinates:
      x: 0
      y: 64
      z: 0
      world: "world"
    After:
    cordinates:
      x: 0.5      # Centered on block
      y: 64.0
      z: 0.5      # Centered on block
      world: "world"
      yaw: 0.0    # New: Horizontal rotation
      pitch: 0.0  # New: Vertical rotation
    New Head Options:
    # Option 1: HeadDatabase (requires plugin)
    hdb: "12345"
    
    # Option 2: Base64 Texture (no plugin required)
    head-texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmFkYzA0OGE3Y2U3OGY3ZGFkNzJhMDdkYTI3ZDg1YzA5MTY4ODFlNTUyMmVlZWQxZTNkYWYyMTdhMzhjMWEifX19"
    
    # Option 3: Standard Material (fallback)
    material: "GRASS_BLOCK"
    #### config.yml Updates Removed:
    update-notifier:
      modrinth-id: "RuKNgtS0"  # No longer needed
    Current: ```yaml update-notifier: enabled: true on-join
    60 downloads
  2. 1.3.6NxCodex 1.3.6May 23, 2026
    Added a setting in the discovery settings to set the discovery status as unblocked by default.
    12 downloads
  3. 1.3.5NxCodex 1.3.5May 23, 2026

    Version 1.3.5 - Latest Release

    🎉 New Features
    #### 🎨 Fully Configurable GUI System (guis.yml) - New Configuration File: guis.yml for complete GUI customization - Zone Editor GUI: Fully configurable editor menu with custom items, slots, and messages - No Hardcoded Values: All GUI elements are now configurable - Dynamic Item Building: Items are built dynamically from configuration - Custom Placeholders: Support for zone-specific placeholders in GUI items New File Structure:
    guis.yml
    ├── zone-editor          # Zone editor GUI configuration
    │   ├── title           # Menu title with placeholders
    │   ├── size            # Inventory size
    │   └── items           # All GUI items
    │       ├── filler      # Background items
    │       ├── material    # Material editor
    │       ├── display-name # Name editor
    │       ├── lore        # Lore display
    │       ├── teleport    # Location setter
    │       ├── region      # Region editor
    │       ├── rewards     # Rewards display
    │       ├── slot        # Slot editor
    │       └── close       # Close button
    ├── chat-prompts        # Chat input messages
    └── cooldown            # Cooldown messages
    #### 🔧 GuiManager System - Centralized GUI Management: New GuiManager class for all GUI operations - Dynamic Loading: GUIs are loaded from configuration at runtime - Easy Customization: Server owners can customize without code changes - Placeholder Support: Rich placeholder system for dynamic content - Color Support: Full hex color and gradient support in all GUI elements Available Placeholders: - %zone_name% - Zone identifier - %material% - Zone material name - %display_name% - Zone display name - %zone_lore% - Zone lore lines - %world%, %x%, %y%, %z% - Teleport coordinates - %region% - WorldGuard region name - %rewards% - Reward commands list - %slot% - GUI slot number - %time% - Cooldown time #### 📝 Configurable Chat Messages - Chat Prompts: All chat input prompts moved to guis.yml - Success Messages: Configurable success messages for editor actions - Error Messages: Customizable error messages with placeholders - Cooldown Messages: Fully configurable cooldown notification Chat Prompts Configuration:
    chat-prompts:
      material: "&eTapez le nom du matériau (ex: DIAMOND_BLOCK) dans le chat :"
      name: "&eTapez le nouveau nom de la zone dans le chat :"
      region: "&eTapez le nom de la région WorldGuard dans le chat :"
      slot: "&eTapez le numéro de slot (0-53) dans le chat :"
      location-updated: "&aPosition de téléportation mise à jour."
      invalid-material: "&cMatériau invalide : &f%input%"
      invalid-slot: "&cSlot invalide. Entrez un nombre entre 0 et 53."
    #### 🎯 Enhanced Zone Editor - Configurable Layout: Customize item positions, materials, and messages - Dynamic Item Display: Items show current zone values with placeholders - Flexible Design: Easy to add or remove editor features - Multi-language Support: All text is configurable for any language - Custom Styling: Full control over colors, formatting, and layout
    🐛 Bug Fixes
    #### GUI System - Fixed: Hardcoded GUI titles and messages removed - Fixed: Editor menu now properly detects zone from title - Fixed: Item slots are now configurable instead of hardcoded - Improved: GUI item building with better error handling #### Message System - Fixed: All hardcoded messages moved to configuration files - Fixed: Cooldown messages now use configured format - Fixed: Chat prompts properly support color codes - Improved: Message consistency across the plugin
    🔧 Technical Changes
    #### New Classes - GuiManager: Manages all GUI configurations and operations - Enhanced ZoneEditorMenu: Rebuilt to use configuration-based system - Improved MenuListener: Uses GuiManager for all GUI interactions #### Code Improvements - Removed Hardcoded Values: All GUI elements now configurable - Better Separation: GUI logic separated from configuration - Improved Maintainability: Easier to add new GUI features - Enhanced Flexibility: Server owners have full control #### Configuration System - New File: guis.yml for GUI configurations - Automatic Generation: File is created on first run - Hot Reload: Changes apply with /codex reload - Validation: Proper fallbacks for missing values
    📝 Configuration Changes
    #### New Configuration File guis.yml (complete new file):
    # Zone Editor GUI
    zone-editor:
      title: "§6§lEditor: %zone_name%"
      size: 27
      items:
        filler:
          material: "BLACK_STAINED_GLASS_PANE"
          name: " "
          slots: [0,1,2,3,4,5,6,7,8,18,19,20,21,23,24,25,26]
        material:
          slot: 10
          material: "STONE"
          name: "&eMaterial: &f%material%"
          lore:
            - "&7Click to change the material."
        # ... (see full config in guis.yml)
    
    # Chat Prompts
    chat-prompts:
      material: "&eType the material name (ex: DIAMOND_BLOCK) in chat:"
      name: "&eType the new zone name in chat:"
      # ... (see full config in guis.yml)
    
    # Cooldown Messages
    cooldown:
      message: "&cPlease wait &f%time%s &cbefore teleporting again."
    13 downloads
  4. 1.2.5NxCodex 1.2.5May 23, 2026

    Version 1.2.5 - Latest Release

    🎉 New Features
    #### 🔄 Modrinth Update Checker - Modrinth API Integration: Now uses the official Modrinth API instead of Spigot - Configurable Project ID: Set your Modrinth project ID in config.yml - Customizable Messages: Update notification message is now fully customizable in lang.yml - Smart Caching: Update messages are cached and shown to admins when they join - Color Support: Full hex color and gradient support in update messages Configuration:
    update-notifier:
      enabled: true
      on-join: true
      modrinth-id: "RuKNgtS0"
    Customizable Message (lang.yml):
    update-notifier: "&#ffc84dA new version of NxCodex is available! &#DDDDDD(&#FFFFFFcurrent: &#FF0D0D%current% &#DDDDDD| &#FFFFFFlatest: &#00FF00%latest%&#DDDDDD)"
    #### 🎛️ Configurable Discovery System - Toggle Discovery Mode: Enable or disable the zone discovery system - Flexible Gameplay: Choose between exploration-based or instant access gameplay - Per-Server Configuration: Perfect for different server types (survival vs creative) Configuration:
    discovery:
      # If true, zones must be discovered by entering the region
      # If false, all zones are unlocked by default
      enabled: true
    Discovery Enabled (true) - Default: - Players must enter WorldGuard regions to discover zones - Discovery messages and rewards are given on first entry - Zones appear locked in the menu until discovered - Perfect for survival/adventure servers Discovery Disabled (false): - All zones are unlocked by default for all players - No discovery messages or rewards - Players can teleport to any zone immediately - Perfect for creative/hub servers
    🐛 Bug Fixes
    #### Region Detection Improvements - Fixed: Region detection now properly checks if player is inside the specific region - Fixed: Empty or _global_ regions are now properly ignored - Fixed: Discovery system respects the discovery.enabled configuration - Optimized: Region checks only occur when player changes block position #### Player Data Loading - Fixed: Players now properly receive all unlocked zones when discovery.enabled = false - Fixed: Zone unlocking works correctly for both new and existing players - Improved: Player data caching for better performance
    🔧 Technical Changes
    #### Dependencies - Added: Gson 2.10.1 for JSON parsing (Modrinth API) - Relocated: Gson to fr.noxuwt.nxcodex.libs.gson to avoid conflicts #### Code Improvements - Refactored: UpdateChecker to use Modrinth API v2 - Improved: PlayerListener with cached update messages - Enhanced: CodexManager with discovery mode support - Optimized: Region detection logic for better performance
    12 downloads
  5. 1.2.0NxCodex 1.2.0May 23, 2026
    Redesign of code and .yml files New config.yml lang.yml codex.yml
    22 downloads
  6. 1.1.0NxCodex 1.1.0Mar 18, 2026

    Fixes to Codex plugin code

    Configuration files

    - config.yml: Updated to match the content provided (teleport delays, headdb, menu, areas with itemsadder). - messages.yml: Updated to match the content provided (messages in French, removing obsolete messages for delete and no_selection).

    Java code changes

    CodexZone.java
    - Added itemsadder field to read the value from the config. - Changed getIcon() to prioritize ItemsAdder > HeadDatabase > Material by default.
    HeadUtil.java
    - Added support for the "itemsadder:" prefix in getHead(). - Added internal class IAHelper to manage ItemsAdder items via dev.lone.itemsadder.api.CustomStack.
    ZoneManager.java
    - The attached file shows the saveZone() method which sets default values, including skull: "headdb:1234", but not itemsadder. If necessary, add sec.set("itemsadder", null); for consistency.

    Features added

    - Full support for ItemsAdder: zones can now use custom items via the itemsadder field in the config. - Other features (HeadDatabase, teleportation with delays, menu) were already implemented. ##Notes - The compilation errors shown are due to the absence of the external dependencies (Bukkit API, HeadDatabase, ItemsAdder) in the IDE, but the code will work correctly at runtime with the correct dependencies. - Make sure to add the ItemsAdder dependencies in the plugin.yml or pom.xml if necessary.
    21 downloads
  7. 1.0.0Codex 1.0.0Feb 2, 2026
    22 downloads

Similar projects

Plugin →