config.yml
tickets.yml# ╔══════════════════════════════════════════════════════════════╗
# ║ NetherTickets v1.0.0 ║
# ║ Premium Nether Access Control System ║
# ╚══════════════════════════════════════════════════════════════╝
# ─────────────────────────────────────────────────────────────
# General Settings
# ─────────────────────────────────────────────────────────────
# Prefix shown before all plugin messages.
# Supports MiniMessage formatting (hex colors, gradients).
prefix: "<gradient:#FF6B35:#FF3333>NetherTickets</gradient> <dark_gray>» "
# The world players are teleported to when their time expires
# or when they attempt to enter the Nether without time.
fallback-world: "world"
# Entry Policy
# block-portal-creation: prevents creating a Nether portal in non-Nether worlds
# block-portal-entry: prevents portal travel into the Nether without time
# block-teleport-entry: prevents non-portal teleports into the Nether without time
# allow-command-teleport-entry: lets COMMAND-cause teleports bypass NetherTickets entry checks
entry-policy:
block-portal-creation: true
block-portal-entry: true
block-teleport-entry: true
allow-command-teleport-entry: false
# ─────────────────────────────────────────────────────────────
# Data Storage
# ─────────────────────────────────────────────────────────────
# Supported types: sqlite, mysql
storage:
type: sqlite
# MySQL/MariaDB configuration (only used when type is 'mysql')
mysql:
host: localhost
port: 3306
database: nethertickets
username: root
password: ""
# Maximum connections in the pool (recommended: 10)
pool-size: 10
# ─────────────────────────────────────────────────────────────
# Timer Behavior
# ─────────────────────────────────────────────────────────────
timer:
# Pause the timer when the player is AFK.
# Requires EssentialsX to be installed on the server.
pause-on-afk: true
# Pause the timer when the player is dead (respawn screen).
pause-on-death: true
# How often the timer decrements, in server ticks.
# 20 ticks = 1 second. Lower values = more precision but more CPU.
tick-interval: 20
# ─────────────────────────────────────────────────────────────
# Sound & Particle Effects
# ─────────────────────────────────────────────────────────────
# Premium effects played during various events.
# Set 'enabled' to false to disable all effects.
# Set any sound or particle to 'NONE' to skip that specific effect.
#
# Sound names: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
# Particle names: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Particle.html
effects:
enabled: true
# Effects when a player uses a ticket (right-click)
ticket-use:
sound: ENTITY_PLAYER_LEVELUP
sound-volume: 0.8
sound-pitch: 1.5
particle: VILLAGER_HAPPY
particle-count: 30
# Effects when a time warning is triggered
warning:
sound: BLOCK_NOTE_BLOCK_PLING
sound-volume: 1.0
sound-pitch: 0.5
# Effects when time expires and player is teleported
expired:
sound: ENTITY_WITHER_SPAWN
sound-volume: 0.6
sound-pitch: 1.2
particle: SMOKE_LARGE
particle-count: 50
# Effects when player enters the Nether with a valid ticket
nether-entry:
sound: BLOCK_PORTAL_TRAVEL
sound-volume: 0.4
sound-pitch: 1.0
# ─────────────────────────────────────────────────────────────
# Ticket Cooldown
# ─────────────────────────────────────────────────────────────
# Global cooldown (in seconds) between ticket uses.
# Prevents players from rapidly consuming multiple tickets.
# Per-tier cooldowns can override this in tickets.yml.
# Set to 0 to disable cooldown.
ticket-cooldown: 3
# ─────────────────────────────────────────────────────────────
# Notifications
# ─────────────────────────────────────────────────────────────
notifications:
# BossBar displayed at the top of the screen while in the Nether.
bossbar:
enabled: true
color: RED
style: SEGMENTED_10
# Format for the BossBar title. {time} is replaced with remaining time.
format: "<gradient:#FF6B35:#FF3333>⏱ Nether Time:</gradient> <white>{time}</white>"
# ActionBar displayed above the hotbar while in the Nether.
actionbar:
enabled: true
format: "<gradient:#FF6B35:#FF3333>⏱</gradient> <gray>Nether Time: <white>{time}</white>"
# Warning messages sent at these remaining times (in seconds).
# List of seconds remaining when a warning is sent.
warnings:
- 300
- 60
- 30
- 10
- 5
# The warning message format. {time} is replaced with remaining time.
warning-message: "<gradient:#FF6B35:#FF3333>⚠ Warning!</gradient> <gray>You have <white>{time}</white> remaining in the Nether!"
# Message sent when time expires and the player is teleported out.
expired-message: "<gradient:#FF3333:#CC0000>Time Expired!</gradient> <gray>You have been removed from the Nether."
# ─────────────────────────────────────────────────────────────
# Messages
# ─────────────────────────────────────────────────────────────
# All messages support MiniMessage formatting.
# Available placeholders vary per message (see comments).
messages:
# No permission for a command.
no-permission: "<red>You don't have permission to do this."
# Player tries to enter the Nether without time.
# No placeholders.
no-time: "<red>You need a Nether Ticket to enter the Nether!"
# Player successfully uses a ticket.
# {time} = time added, {total} = new total time.
ticket-used: "<green>✓ Added <white>{time}</white> of Nether time! Total: <white>{total}</white>"
# Player is on cooldown after using a ticket.
# {cooldown} = remaining cooldown time.
ticket-cooldown: "<red>Please wait <white>{cooldown}</white> before using another ticket."
# Player data is still loading from storage.
data-loading: "<yellow>Your Nether data is still loading. Please try again in a moment."
# Admin adds time to a player.
# {time} = time added, {player} = target player, {total} = new total.
time-added: "<green>✓ Added <white>{time}</white> to <white>{player}</white>. New total: <white>{total}</white>"
# Admin removes time from a player.
# {time} = time removed, {player} = target player, {total} = new total.
time-removed: "<yellow>✓ Removed <white>{time}</white> from <white>{player}</white>. New total: <white>{total}</white>"
# Admin sets a player's remaining time exactly.
# {time} = new time, {player} = target player, {total} = new total.
time-set: "<green>Set <white>{player}</white> to <white>{time}</white> of Nether time."
# Player checks their own remaining time.
# {time} = remaining time.
time-check-self: "<gray>Your remaining Nether time: <white>{time}</white>"
# Admin checks another player's remaining time.
# {player} = target player, {time} = remaining time.
time-check-other: "<gray>{player}'s remaining Nether time: <white>{time}</white>"
# Config reloaded successfully.
reload: "<green>✓ Configuration reloaded successfully."
# Target player not found.
player-not-found: "<red>Player not found."
# Invalid ticket tier specified.
invalid-ticket: "<red>Invalid ticket tier. Use /nt help for valid tiers."
# Tickets given to a player.
# {amount} = number of tickets, {ticket} = tier display name, {player} = target.
ticket-given: "<green>✓ Gave <white>{amount}x {ticket}</white> to <white>{player}</white>."
# Invalid amount or time value.
invalid-number: "<red>Invalid number. Please provide a valid positive integer."
# Help header.
help-header: "<gradient:#FF6B35:#FF3333>━━━ NetherTickets Help ━━━</gradient>"
# Help command format.
# {command} = command syntax, {description} = command description.
help-entry: " <gradient:#FF6B35:#FFAA00>{command}</gradient> <dark_gray>- <gray>{description}"
# ╔══════════════════════════════════════════════════════════════╗
# ║ NetherTickets — Ticket Tiers ║
# ║ Define unlimited custom ticket tiers here. ║
# ╚══════════════════════════════════════════════════════════════╝
#
# Each ticket tier has the following properties:
# display-name: The name shown on the item (MiniMessage format).
# lore: List of lore lines (MiniMessage format).
# material: The Bukkit Material name (e.g., PAPER, NETHER_STAR).
# custom-model-data: CustomModelData value for resource packs (integer).
# time: Time granted in seconds when consumed.
# glow: Whether the item has an enchantment glow effect.
# cooldown: Per-tier cooldown in seconds (overrides global).
# Set to -1 to use the global cooldown from config.yml.
#
# To add a new tier, simply copy one of the examples below and modify it.
# The tier ID (e.g., 'common', 'rare') is used in commands: /nt give <player> <tier_id>
tickets:
common:
display-name: "<gradient:#AAAAAA:#FFFFFF>Common Nether Ticket</gradient>"
lore:
- ""
- "<gray>Grants <white>5 minutes</white> of Nether access."
- ""
- "<dark_gray>▸ Right-click to use"
material: PAPER
custom-model-data: 1001
time: 300
glow: false
cooldown: -1
rare:
display-name: "<gradient:#55FFFF:#00AAFF>Rare Nether Ticket</gradient>"
lore:
- ""
- "<gray>Grants <white>30 minutes</white> of Nether access."
- ""
- "<dark_gray>▸ Right-click to use"
material: PAPER
custom-model-data: 1002
time: 1800
glow: true
cooldown: 5
legendary:
display-name: "<gradient:#FFAA00:#FF5555>★ Legendary Nether Ticket ★</gradient>"
lore:
- ""
- "<gray>Grants <white>2 hours</white> of Nether access."
- ""
- "<dark_gray>▸ Right-click to use"
material: PAPER
custom-model-data: 1003
time: 7200
glow: true
cooldown: 10
