COMPLETE CONFIG FILE:
Code (YAML):
# =====================================================
# TrashCan Plugin - Main Configuration
# Version: 1.0.0
# Author: TheMeanOneDevelopments
# Discord Link: https://discord.gg/pNqEPUzNmz
# All Rights Reserved, TheMeanOneDevelopments - Registered Business
# Do not Copy any source code without permission.
# Commissions can be offered, message the discord for more information.
# =====================================================
# This config controls EVERYTHING for TrashCan:
# - Messages & Language
# - GUI customization
# - Storage & Expiration system
# - Restore cooldowns
# - Achievements & rewards
# - Integration with PlaceholderAPI & DecentHolograms
#
# NOTES:
# - Supports both Legacy Colors (&a, &c, etc.)
# - Supports MiniMessage Formatting (<red>, <bold>, <gradient:#hex1:#hex2>)
# - Use a reload or restart after editing (some options require restart).
# =====================================================
# -------------------------
# LANGUAGE SYSTEM
# -------------------------
# Controls which language file is loaded from /plugins/TrashCan/lang/
# Default: "en"
# Available out of the box: en, de, es, fr, pt, ru, ja, zh
# (Admins can add their own translations too!)
language
: en
# -------------------------
# GUI TITLES
# -------------------------
# These control the titles displayed at the top of GUIs.
# Fully supports MiniMessage gradients, bold, italic, etc.
#
# Example gradient (green → orange → red):
# "<gradient:#00FF00:#FFA500:#FF0000>♻ Trash Bin ♻</gradient>"
#
title
:
"<gradient:#00FF00:#FFA500:#FF0000>♻ Trash Bin ♻</gradient>"
restore-title
:
"<gold>♻ Restore Trash ♻"
leaderboard-title
:
"<dark_green>♻ Trash Leaderboard ♻"
# =====================================================
# STORAGE & EXPIRATION
# =====================================================
# How long trashed items last before permanent deletion.
# Time is in MINUTES.
# Example: 15 = trashed items expire after 15 minutes.
# NOTE: This requires a SERVER RESTART to take effect.
trash-expire-minutes
: 15
# How many trash sessions to store per player.
# Example: 5 = players can restore their last 5 trash sessions.
# Older sessions will be automatically deleted.
max-saves-per-player
: 5
# How often expired sessions are cleaned up.
# Time is in SECONDS.
# Example: 60 = runs cleanup every minute.
cleanup-interval-seconds
: 60
# =====================================================
# RESTORE GUI SETTINGS
# =====================================================
# The icon representing a trash session inside the Restore GUI.
# Must be a valid Bukkit Material (CHEST, BARREL, ENDER_CHEST, etc).
restore-gui-icon
: CHEST
# How many items should be previewed in each trash session’s lore.
# If there are more than this, “... and more” will be shown.
restore-preview-limit
: 5
# =====================================================
# RESTORE COOLDOWN
# =====================================================
# Time (in SECONDS) between uses of /trash restore.
# Prevents spam restores.
# Players with "trashcan.restore.bypass" permission ignore this.
restore-cooldown-seconds
: 60
# =====================================================
# ACHIEVEMENTS
# =====================================================
# Define recycling milestones and rewards here.
# Keys are the total number of items trashed.
#
# Each achievement can include:
# - message: Player message (shown in chat).
# - command: Any console commands. Supports multiple commands.
#
# Placeholders:
# %player% → player’s name
# %amount% → milestone number
#
# Example:
# 5000:
# message: "&a Achievement Unlocked!"
# command:
# - "eco give %player% 500"
# - "tellraw %player% &aYou earned $500!"
#
# Preloaded with 15 but you can add or take away or edit how you'd like!
achievements:
1000:
message
:
"&a Achievement Unlocked: &eRecycler I &7(1,000 items recycled)"
command
:
-
"eco give %player% 100"
-
"give %player% minecraft:emerald 1"
-
"tellraw %player% {\"text\
":\" Psst
... I slipped you 1x Emerald!\
",\"color\
":\"aqua\
"}"
6000:
message
:
"&a Achievement Unlocked: &eRecycler II &7(5,000 items recycled)"
command
:
-
"eco give %player% 500"
-
"give %player% minecraft:diamond 1"
-
"tellraw %player% {\"text\
":\" Don’t tell anyone
... you just got 1x Diamond!\
",\"color\
":\"aqua\
"}"
10000:
message
:
"&a Achievement Unlocked: &eRecycler III &7(10,000 items recycled)"
command
:
-
"eco give %player% 1000"
-
"give %player% minecraft:emerald 3"
-
"tellraw %player% {\"text\
":\" Nice work! Here’s 3x Emeralds for your effort!\
",\"color\
":\"aqua\
"}"
50000:
message
:
"&a Achievement Unlocked: &eRecycler IV &7(50,000 items recycled)"
command
:
-
"eco give %player% 2500"
-
"give %player% minecraft:diamond 3"
-
"tellraw %player% {\"text\
":\" Big recycler vibes! You got 3x Diamonds!\
",\"color\
":\"aqua\
"}"
100000:
message
:
"&a Achievement Unlocked: &eRecycler V &7(100,000 items recycled)"
command
:
-
"eco give %player% 5000"
-
"give %player% minecraft:netherite_scrap 1"
-
"tellraw %player% {\"text\
":\" Legendary recycler! I slipped you 1x Netherite Scrap!\
",\"color\
":\"dark_purple\
"}"
250000:
message
:
"&a Achievement Unlocked: &eRecycler VI &7(250,000 items recycled)"
command
:
-
"eco give %player% 10000"
-
"give %player% minecraft:emerald 10"
-
"tellraw %player% {\"text\
":\" You’re on a roll! Take these 10x Emeralds!\
",\"color\
":\"aqua\
"}"
500000:
message
:
"&a Achievement Unlocked: &eRecycler VII &7(500,000 items recycled)"
command
:
-
"eco give %player% 15000"
-
"give %player% minecraft:diamond 5"
-
"tellraw %player% {\"text\
":\" Shiny reward incoming
... enjoy 5x Diamonds!\
",\"color\
":\"aqua\
"}"
1000000:
message
:
"&a Achievement Unlocked: &eRecycler VIII &7(1,000,000 items recycled)"
command
:
-
"eco give %player% 20000"
-
"give %player% minecraft:nether_star 1"
-
"tellraw %player% {\"text\
":\"⭐ You’re glowing! I slipped you 1x Nether Star!\
",\"color\
":\"gold\
"}"
2500000:
message
:
"&a Achievement Unlocked: &eRecycler IX &7(2,500,000 items recycled)"
command
:
-
"eco give %player% 30000"
-
"give %player% minecraft:emerald_block 5"
-
"tellraw %player% {\"text\
":\" That’s crazy recycling! Take 5x Emerald Blocks!\
",\"color\
":\"aqua\
"}"
5000000:
message
:
"&a Achievement Unlocked: &eRecycler X &7(5,000,000 items recycled)"
command
:
-
"eco give %player% 50000"
-
"give %player% minecraft:diamond_block 5"
-
"tellraw %player% {\"text\
":\" You earned it! 5x Diamond Blocks slipped your way!\
",\"color\
":\"aqua\
"}"
10000000:
message
:
"&a Achievement Unlocked: &eRecycler XI &7(10,000,000 items recycled)"
command
:
-
"eco give %player% 100000"
-
"give %player% minecraft:netherite_ingot 1"
-
"tellraw %player% {\"text\
":\" Rare find! You got 1x Netherite Ingot!\
",\"color\
":\"dark_purple\
"}"
25000000:
message
:
"&a Achievement Unlocked: &eRecycler XII &7(25,000,000 items recycled)"
command
:
-
"eco give %player% 150000"
-
"give %player% minecraft:netherite_ingot 2"
-
"tellraw %player% {\"text\
":\" Even hotter! I handed you 2x Netherite Ingots!\
",\"color\
":\"dark_purple\
"}"
50000000:
message
:
"&a Achievement Unlocked: &eRecycler XIII &7(50,000,000 items recycled)"
command
:
-
"eco give %player% 250000"
-
"give %player% minecraft:netherite_block 1"
-
"tellraw %player% {\"text\
":\" Pure power! You received 1x Netherite Block!\
",\"color\
":\"dark_purple\
"}"
75000000:
message
:
"&a Achievement Unlocked: &eRecycler XIV &7(75,000,000 items recycled)"
command
:
-
"eco give %player% 400000"
-
"give %player% minecraft:diamond_block 10"
-
"tellraw %player% {\"text\
":\" Stacked! You got 10x Diamond Blocks slipped into your pocket!\
",\"color\
":\"aqua\
"}"
100000000:
message
:
"&a Achievement Unlocked: &eRecycler XV &7(100,000,000 items recycled)"
command
:
-
"eco give %player% 1000000"
-
"give %player% minecraft:netherite_block 3"
-
"give %player% minecraft:beacon 1"
-
"tellraw %player% {\"text\
":\" You’re the ULTIMATE Recycler! I handed you 3x Netherite Blocks + 1x Beacon!\
",\"color\
":\"gold\
"}"
# =====================================================
# STORAGE METHOD
# =====================================================
# Where stats are saved.
# Options:
# flatfile → saves to stats.yml (small servers)
# sqlite → saves to trashcan.db (better for large servers / networks)
storage-method
: flatfile
# =====================================================
# EXPIRATION NOTIFICATIONS
# =====================================================
# If true, players will be notified when their oldest trash entry expires.
notify-on-expire
: true
# =====================================================
# TRACK ACHIEVEMENTS
# =====================================================
# If true, unlocked achievements are saved permanently (achievements.yml or DB).
# If false, achievements reset when the server restarts.
track-achievements
: true
# =====================================================
# DEFAULT MESSAGES
# =====================================================
# These are the fallback messages players will see.
# They can also be overridden per-language in /lang/.
messages:
open-message
:
"<yellow>♻ Opened your trash bin!"
destroyed-message
:
"<red>❌ Items trashed and recorded."
restored
:
"<green>✅ Items restored successfully!"
no-trash
:
"<gray>No trash found to restore."
expired
:
"<dark_red>⚠ Your trashed items have expired."
cooldown-message
:
"<red>⌛ You must wait %seconds%s before using restore again."
# =====================================================
# PLACEHOLDERAPI INTEGRATION
# =====================================================
# Requires: PlaceholderAPI
# Download: https://www.spigotmc.org/resources/placeholderapi.6245/
#
# Available placeholders:
# %trash_total% → Player’s total recycled items
# %trash_achievements% → Number of unlocked achievements
# %trash_rank% → Player’s rank on the leaderboard
# %trash_lb_1% … %trash_lb_10% → Leaderboard entries (name - total)
#
# (Optional) Install Player expansion for %player_name%:
# /papi ecloud download Player
# /papi reload
# =====================================================
# =====================================================
# DECENTHOLOGRAMS EXAMPLES
# =====================================================
# Requires: DecentHolograms
# Download: https://www.spigotmc.org/resources/decentholograms-1-8-1-21-8-papi-support-no-dependencies.96927/
#
# Example 1: Personal Recycling Stats
# /dh create trash_stats
# /dh create trash_stats2 "&7&m-----------------------"
# /dh create trash_stats3 "&a&l♻ Recycling Stats ♻"
# /dh createtrash_stats4 "&7&m-----------------------"
# /dh create trash_stats5 "&ePlayer: &f%player_name%"
# /dh create trash_stats6 "&eTotal Trashed: &f%trash_total%"
# /dh create trash_stats7 "&eAchievements: &f%trash_achievements%"
# /dh create trash_stats8 "&eRank: &f%trash_rank%"
#
# Example 2: Top Recycler Leaderboard
# /dh create trash_leaderboard
# /dh create trash_leaderboard2 "&6&lTop Recyclers"
# /dh create trash_leaderboard3 "&71. %trash_lb_1%"
# /dh create trash_leaderboard4 "&72. %trash_lb_2%"
# /dh create trash_leaderboard5 "&73. %trash_lb_3%"
# /dh create trash_leaderboard6 "&74. %trash_lb_4%"
# /dh create trash_leaderboard7 "&75. %trash_lb_5%"
# =====================================================
LANGUAGE FILES:
Code (YAML):
# English Language File for TrashCan
# ==================================
# NOTE:
# GUI Titles (Trash GUI, Restore GUI, Leaderboard) are now configured in config.yml
# using MiniMessage formatting (supports gradients, bold, etc.)
#
# Example in config.yml:
# title: "<gradient:#00FF00:#00E5FF:#FF69B4>♻ Trash Bin ♻</gradient>"
# restore-title: "<gold>Restore Trash"
# leaderboard-title: "<dark_green>♻ Recycling Leaderboard ♻"
messages:
open-message
:
"&7Opened your personal trash can."
destroyed-message
:
"&cItems destroyed forever!"
no-trash
:
"&cYou have no trashed items to restore."
restored
:
"&aRestored items from trash session."
cooldown-message
:
"&cYou must wait %seconds%s before using restore again."
expires-in
:
"⏳ Expires in: %hours%h %minutes%m %seconds%s"
expired
:
"⛔ Trash Expired - will be deleted within %minutes%m"
achievement-unlocked
:
"&a Achievement Unlocked: %message%"
leaderboard-entry
:
"&7%rank%. &a%player% &7- &b%total% items"
leaderboard-empty
:
"&cNo recycling data yet."
notify-expire
:
"&cYour oldest trash entry has expired and was cleared."
Code (YAML):
# Deutsche Sprachdatei für TrashCan
# =================================
# HINWEIS:
# GUI-Titel (Mülleimer, Wiederherstellen, Bestenliste) befinden sich in config.yml
# und verwenden MiniMessage-Formatierung.
messages:
open-message
:
"&7Deinen persönlichen Mülleimer geöffnet."
destroyed-message
:
"&cGegenstände für immer zerstört!"
no-trash
:
"&cDu hast keine gelöschten Gegenstände zum Wiederherstellen."
restored
:
"&aGegenstände aus Mülleimer-Sitzung wiederhergestellt."
cooldown-message
:
"&cDu musst %seconds%s warten, bevor du erneut wiederherstellen kannst."
expires-in
:
"⏳ Läuft ab in: %hours%h %minutes%m %seconds%s"
expired
:
"⛔ Papierkorb abgelaufen - wird in %minutes%m gelöscht"
achievement-unlocked
:
"&a Erfolg freigeschaltet: %message%"
leaderboard-entry
:
"&7%rank%. &a%player% &7- &b%total% Gegenstände"
leaderboard-empty
:
"&cNoch keine Recycling-Daten."
notify-expire
:
"&cDein ältester Mülleimer-Eintrag ist abgelaufen und wurde gelöscht."
Code (YAML):
# Archivo de idioma en Español para TrashCan
# ==========================================
# NOTA:
# Los títulos de las GUIs (Basura, Restaurar, Clasificación) están en config.yml
# y usan formato MiniMessage (gradientes, negrita, etc.)
messages:
open-message
:
"&7Abriste tu papelera personal."
destroyed-message
:
"&c¡Objetos destruidos para siempre!"
no-trash
:
"&cNo tienes objetos en la papelera para restaurar."
restored
:
"&aObjetos restaurados de la sesión de basura ."
cooldown-message
:
"&cDebes esperar %seconds%s antes de usar restaurar de nuevo."
expires-in
:
"⏳ Expira en: %hours%h %minutes%m %seconds%s"
expired
:
"⛔ Papelera expirada - se eliminará en %minutes%m"
achievement-unlocked
:
"&a Logro desbloqueado: %message%"
leaderboard-entry
:
"&7%rank%. &a%player% &7- &b%total% objetos"
leaderboard-empty
:
"&cAún no hay datos de reciclaje."
notify-expire
:
"&cTu entrada de basura más antigua ha expirado y fue eliminada."
Code (YAML):
# Fichier de langue Français - TrashCan
# =====================================
# NOTE :
# Les titres des GUIs sont dans config.yml
# en utilisant le format MiniMessage.
messages:
open-message
:
"&7Vous avez ouvert votre poubelle personnelle."
destroyed-message
:
"&cObjets détruits pour toujours !"
no-trash
:
"&cVous n’avez aucun objet à restaurer."
restored
:
"&aObjets restaurés depuis la session de poubelle."
cooldown-message
:
"&cVous devez attendre %seconds%s avant de restaurer à nouveau."
expires-in
:
"⏳ Expire dans : %hours%h %minutes%m %seconds%s"
expired
:
"⛔ Corbeille expirée - sera supprimée dans %minutes%m"
achievement-unlocked
:
"&a Succès débloqué : %message%"
leaderboard-entry
:
"&7%rank%. &a%player% &7- &b%total% objets"
leaderboard-empty
:
"&cAucune donnée de recyclage pour l’instant."
notify-expire
:
"&cVotre plus ancienne entrée de poubelle a expiré et a été supprimée."
Code (YAML):
# 日本語言語ファイル - TrashCan
# ==============================
# 注意:
# GUIタイトルは config.yml で設定
# MiniMessage フォーマット対応 (グラデーション, 太字など)
messages:
open-message
:
"&7ゴミ箱を開きました。"
destroyed-message
:
"&cアイテムが完全に破棄されました!"
no-trash
:
"&c復元できるゴミはありません。"
restored
:
"&aゴミ箱セッション からアイテムを復元しました。"
cooldown-message
:
"&c復元を再利用するには %seconds% 秒待つ必要があります。"
expires-in
:
"⏳ 有効期限: %hours%時間 %minutes%分 %seconds%秒"
expired
:
"⛔ ゴミ箱の期限切れ - %minutes%m以内に削除されます"
achievement-unlocked
:
"&a 実績解除: %message%"
leaderboard-entry
:
"&7%rank%. &a%player% &7- &b%total% 個"
leaderboard-empty
:
"&cリサイクルデータがまだありません。"
notify-expire
:
"&c最も古いゴミの記録が期限切れになり削除されました。"
Code (YAML):
# Arquivo de idioma Português - TrashCan
# ======================================
# NOTA:
# Os títulos das GUIs estão no config.yml
# usando formatação MiniMessage.
messages:
open-message
:
"&7Você abriu sua lixeira pessoal."
destroyed-message
:
"&cItens destruídos para sempre!"
no-trash
:
"&cVocê não tem itens na lixeira para restaurar."
restored
:
"&aItens restaurados da sessão de lixeira."
cooldown-message
:
"&cVocê deve esperar %seconds%s antes de usar restaurar novamente."
expires-in
:
"⏳ Expira em: %hours%h %minutes%m %seconds%s"
expired
:
"⛔ Lixeira expirada - será excluída em %minutes%m"
achievement-unlocked
:
"&a Conquista desbloqueada: %message%"
leaderboard-entry
:
"&7%rank%. &a%player% &7- &b%total% itens"
leaderboard-empty
:
"&cAinda não há dados de reciclagem."
notify-expire
:
"&cSua entrada de lixeira mais antiga expirou e foi removida."
Code (YAML):
# Русский языковой файл для TrashCan
# ==================================
# ВНИМАНИЕ:
# Заголовки GUI (Корзина, Восстановить, Таблица лидеров) находятся в config.yml
# и используют MiniMessage.
messages:
open-message
:
"&7Вы открыли свою корзину."
destroyed-message
:
"&cПредметы уничтожены навсегда!"
no-trash
:
"&cУ вас нет предметов в корзине для восстановления."
restored
:
"&aПредметы восстановлены из сеанса корзины."
cooldown-message
:
"&cНужно подождать %seconds% сек. перед повторным восстановлением."
expires-in
:
"⏳ Истекает через: %hours%ч %minutes%м %seconds%с"
expired
:
"⛔ Корзина устарела - будет удалена через %minutes%m"
achievement-unlocked
:
"&a Достижение получено: %message%"
leaderboard-entry
:
"&7%rank%. &a%player% &7- &b%total% предметов"
leaderboard-empty
:
"&cНет данных о переработке."
notify-expire
:
"&cСамая старая запись корзины истекла и была удалена."
Code (YAML):
# 中文语言文件 (简体) - TrashCan
# ===============================
# 注意:
# 界面标题在 config.yml 中配置
# 使用 MiniMessage 格式 (渐变, 粗体 等)
messages:
open-message
:
"&7打开了你的垃圾桶。"
destroyed-message
:
"&c物品已永久销毁!"
no-trash
:
"&c没有可恢复的垃圾物品。"
restored
:
"&a已从垃圾会话 恢复物品。"
cooldown-message
:
"&c需要等待 %seconds% 秒后才能再次使用恢复功能。"
expires-in
:
"⏳ 剩余时间: %hours%小时 %minutes%分 %seconds%秒"
expired
:
"⛔ 垃圾桶已过期 - 将在 %minutes%m 内删除"
achievement-unlocked
:
"&a 成就解锁: %message%"
leaderboard-entry
:
"&7%rank%. &a%player% &7- &b%total% 个物品"
leaderboard-empty
:
"&c暂无回收数据。"
notify-expire
:
"&c你最早的垃圾记录已过期并被清除。"