[Collections] - A Customizable Collection Plugin icon

[Collections] - A Customizable Collection Plugin -----

Can you collect them all?



Welcome to Collections, a versatile Minecraft plugin that turns item gathering into an exciting adventure! Whether you’re a server owner looking to engage players with unique challenges or a player hunting for treasures, Collections offers a robust, customizable system to track and display collectibles in-game. Built with flexibility and user experience in mind, this plugin is perfect for survival or RPG servers


Key Features

Dynamic Collection Tracking

  • Instant Updates: Collect items like emeralds, tools, or custom items, and see them logged in real-time as you pick them up—no delays!
  • Unique Item IDs: Uses composite keys (e.g., gems.emerald) to ensure every collectible is distinct across categories, avoiding conflicts.
Customizable GUIs
  • Flexible Sizes: Adjust the main and category GUI sizes (9, 18, 27, 36, 45, 54 slots) to fit your server’s style, with the last row always reserved for pagination.
  • Personalized Titles: Configure GUI titles with placeholders like {player} and {category} (e.g., "Steve’s Treasures" or "Gems for Steve") using MiniMessage formatting for vibrant text.
  • Intuitive Navigation: Pagination buttons ("Previous" and "Next") stay consistent in the last row, dynamically adjusting to your chosen GUI size.
Dual Database Support
  • SQLite by Default: No setup needed—data saves locally to collections.db for easy deployment.
  • Optional MySQL: Toggle to MySQL with a simple use-mysql: true in the config, perfect for multi-server setups or larger networks.
PlaceholderAPI Integration
  • Dynamic Placeholders: Use %collections_<category>_amount% to show items collected (e.g., "2" for 2/3 gems) and %collections_<category>_completed% for true/false completion status in chat, scoreboards, or GUIs.
⚙️ User-Friendly Configuration
  • Detailed Config: Comes with a well-commented config.yml explaining every option, complete with example categories ("Gems" and "Tools") to get you started.
  • Slot Management: Easily place categories and items in specific slots, with validation to keep content above the pagination row.
Completion Rewards
  • Custom Commands: Run commands when a category is completed.
  • Celebratory Messages: Send personalized messages to collection completion

Screenshots
(Add your own screenshots here! Suggested shots: Main GUI with categories, a category GUI with items, a completion message in chat.)
upload_2025-3-23_20-55-0.png
upload_2025-3-23_21-18-50.png

Code (YAML):
# Collections Plugin Configuration

# This file controls the database, GUI placeholders, pagination, and collectible categories.
# All sections are optional unless specified otherwise.

# GUI Titles
# Customize the titles of the GUIs. Supports MiniMessage formatting (https://docs.adventure.kyori.net/minimessage).
# Placeholders: {player} = player's name, {category} = category display name (category GUI only).
gui-titles
:
  main
: "Collections"   # Title for the main GUI showing all categories.
  category
: "{player}'s {category}"   # Title for individual category GUIs.

# Database Configuration
# Controls how player collection data is stored.
database
:
  # Set to true to use MySQL, false to use SQLite (default).
  # If true, fill in the details below. If false, data saves to 'collections.db' in the plugin folder.
  use-mysql
: false
  # MySQL connection details (only used if use-mysql is true).
  host
: "localhost"   # MySQL server address (e.g., "localhost" or "192.168.1.100").
  port
: 3306         # MySQL server port (default is 3306).
  database
: "minecraft"   # Name of the MySQL database.
  username
: "root"   # MySQL username.
  password
: ""       # MySQL password (leave empty if none).

# Placeholder Settings
# Defines the appearance of uncollected items in the GUI.
placeholder
:
  material
: GRAY_DYE   # Material for uncollected item slots (e.g., GRAY_DYE, STONE).
  display-name
: "<gray>Not Collected"   # Name shown in the GUI (supports MiniMessage formatting).
  lore
:               # Description lines for uncollected items.
    - "<gray>Find this item!"
  custom-model-data
: 0   # Custom model data for resource packs (0 = default).

# Pagination Settings
# Controls the Previous/Next buttons in the GUI.
pagination
:
  previous
:
    material
: ARROW   # Material for the Previous Page button.
    display-name
: "<green>Previous Page"   # Button name.
    lore
:             # Button description.
      - "<gray>Go to the previous page"
    custom-model-data
: 0   # Custom model data.
    slot
: 27           # Slot in the GUI (0-35, as inventory size is 36).
  next
:
    material
: ARROW   # Material for the Next Page button.
    display-name
: "<green>Next Page"   # Button name.
    lore
:             # Button description.
      - "<gray>Go to the next page"
    custom-model-data
: 0   # Custom model data.
    slot
: 35           # Slot in the GUI (0-35).

# Categories
# Define collections of items for players to gather.
# Each category appears in the main GUI and can have multiple items across pages.
categories
:
  # Example Category: Gems
  gems
:
    display-name
: "<blue>Gems"   # Name shown in the main GUI.
    icon
: EMERALD               # Material for the category icon in the main GUI.
    custom-model-data
: 0       # Custom model data for the icon.
    size
: 18                   # Inventory size for this category’s GUI (9, 18, 27, 36, 45, 54).
    title
: "{player}'s Gems"   # Title of the category GUI ({player} is replaced with the player’s name).
    slot
: 12                   # Slot in the main GUI (0-26, pages calculated as slot / 27).
    items
:
      emerald
:
        material
: EMERALD       # Material of the collectible item.
        display-name
: "<green>Emerald"   # Name shown when collected.
        lore
:                 # Description when collected.
          - "<gray>Collected
: <white> {amount } "
        custom-model-data: 0   # Custom model data.
        slot: 4                # Slot in the category GUI (0-26).
        page: 0                # Page in the category GUI (0-based).
      diamond:
        material: DIAMOND
        display-name: "
<aqua>Diamond "
        lore:
          - "
<gray>A shiny treasure! "
        custom-model-data: 0
        slot: 5
        page: 0
    complete-command: "
give {player } emerald 10 "  # Command to run when all items are collected ({player} is the player’s name).
    complete-message: "
<green>Congratulations, {player }! You've completed the Gems collection! "  # Message sent on completion.

  # Example Category: Tools
  tools:
    display-name: "
<gold>Tools "
    icon: IRON_PICKAXE
    custom-model-data: 0
    size: 9
    title: "
{player }'s Tools "
    slot: 14
    items:
      pickaxe:
        material: IRON_PICKAXE
        display-name: "
<yellow>Iron Pickaxe "
        lore:
          - "
<gray>A sturdy tool. "
        custom-model-data: 0
        slot: 3
        page: 0
    complete-command: "
xp give {player } 50 "
    complete-message: "
<green>Well done, {player }! You've collected all Tools! "



Installation

  1. Download the latest JAR
  2. Drop it into your plugins/ folder.
  3. Restart your server—SQLite works out of the box, or configure MySQL in config.yml.
  4. Type /collections to start collecting!
Resource Information
Author:
----------
Total Downloads: 2
First Release: Mar 25, 2025
Last Update: Mar 25, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings