CREATE A MINECRAFT PAPER 1.21.11 PLUGIN CALLED "PlayerSettings"
The plugin must be made for PAPER 1.21.11 and coded professionally with clean, optimized, modular Java code.
MAIN FEATURES:
* Command: /setting
* Command: /setting %player_name%
* Opens a 36-slot GUI (4 rows)
* Every setting must have ENABLE/DISABLE toggle
* Player data must save permanently using YAML or SQLite
* Each player has separate settings
* GUI items and materials must be customizable in config.yml
* GUI title customizable
* Messages customizable
* Sounds customizable
* Permission support
* PlaceholderAPI support if possible
* Fully async safe
* No laggy repeating tasks
---
## COMMANDS
/setting
* Opens own settings GUI
/setting <player>
* Opens another player's settings GUI
* Permission: playersettings.admin
/settingsreload
* Reload config
* Permission: playersettings.reload
---
## GUI SYSTEM
GUI SIZE:
* 36 slots
TITLE:
* "&8Player Settings"
Every setting item must:
* Show current status
* Green lore for ENABLED
* Red lore for DISABLED
* Left click toggles setting
* Play configurable sound
Use:
* GREEN DYE = enabled
* RED DYE = disabled
Glass panes fill empty slots.
---
## GUI SLOT LAYOUT
SLOTS 1-9 (CHAT SETTINGS)
1. PUBLIC CHAT
* If disabled:
* Player does not see public/global chat messages
* Private messages still visible
2. PRIVATE MESSAGE
* If disabled:
* Player cannot receive private messages
3. CHAT SERVER MESSAGE
* If disabled:
* Player does not receive server broadcast/chat messages
4. HOTBAR SERVER MESSAGE
* If disabled:
* ActionBar/hotbar messages hidden
5. PAY ALERTS
* If disabled:
* Player cannot receive money/pay notifications
* Payments blocked to this player
6. BOUNTY ALERTS
* If disabled:
* No bounty notifications shown
7. AUCTION ALERTS
* If disabled:
* No auction listing notifications
---
SLOTS 10-18 (GAMEPLAY SETTINGS)
10. FAST CRYSTALS
* Enable optimized crystal placement handling
* API hook ready for CrystalPvP plugins
11. TOTEM PARTICLES
* If disabled:
* Hide totem pop particles/effects
12. EXPLOSION PARTICLES
* If disabled:
* Hide TNT/Anchor explosion particles
13. QUICK AUCTION BUY
* If enabled:
* Skip confirmation menu when buying auctions
14. CHAINMAIL ON RESPAWN
* If enabled:
* On respawn or first join:
* Give chainmail armor
* Remove 1000 money using Vault
* Configurable armor
* Configurable cost
15. DISABLE MOB SPAWNS
* If enabled:
* Prevent hostile/passive mob spawning near player
* Radius configurable
---
SLOTS 19-27 (VISUAL & UTILITY SETTINGS)
19. PLAYER VISIBILITY
* If disabled:
* Hide all players globally using Player#hidePlayer()
20. SCOREBOARD
* If enabled:
* Hide scoreboard from player
* If disabled:
* Restore scoreboard
21. TPA CONFIRM MENUS
* If enabled:
* Automatically accept TPA confirmations
* Skip confirmation GUI
22. SOUND NOTIFICATION
* If disabled:
* Disable plugin notification sounds
23. ORDER NOTIFICATIONS
* If disabled:
* Hide order/shop notifications
24. RANDOM COORDS
* If enabled:
* RTP coordinates hidden from chat/messages
---
SLOTS 28-36 (SOCIAL SETTINGS)
28. DUEL REQUESTS
* If disabled:
* Block all duel requests
29. TPA REQUESTS
* If enabled:
* Automatically accept incoming TPA requests
30. TPA HERE REQUESTS
* If enabled:
* Automatically accept incoming TPAHERE requests
31. TEAM INVITES
* If disabled:
* Block team invites
32. PAYMENTS
* If disabled:
* Prevent receiving payments
33. TEAM CHAT
* If disabled:
* Hide team chat messages
34. WORTH DISPLAY
* If enabled:
* Show item worth/sell price in lore
35. AFTER DUEL SONGS
* If disabled:
* Mute duel/song/music sounds
36. QUIET SPAWN
* If enabled:
* Teleport to spawn silently
* No messages/sounds/effects
---
## CONFIGURATION
config.yml must support:
* GUI title
* GUI size
* Item materials
* Item names
* Item lore
* Enabled/disabled colors
* Sounds
* Spawn radius
* Costs
* Messages
* Permissions
* Blacklisted worlds
* Disabled worlds
Example:
gui:
title: "&8Player Settings"
items:
public_chat:
material: PAPER
slot: 0
name: "&aPublic Chat"
---
## DATA STORAGE
Store all player settings persistently.
Recommended:
* SQLite
OR
* playerdata/<uuid>.yml
Data must save:
* On quit
* On toggle
* On shutdown
---
## PERMISSIONS
playersettings.use
playersettings.admin
playersettings.reload
---
## PLUGIN REQUIREMENTS
* Use Java 21
* Maven project
* Paper API 1.21.11
* Clean package structure
* Listener-based system
* Config manager
* GUI manager
* Data manager
* Setting enum system
* Fully optimized
* No memory leaks
* Support PlaceholderAPI
* Support Vault
---
## EXTRA FEATURES
* Add /settings reset command
* Add cooldown protection
* Add anti-spam clicks
* Add configurable sounds
* Add disabled-world support
* Add update checker
* Add metrics support
---
## OUTPUT REQUIRED
Generate:
* Full source code
* plugin.yml
* pom.xml
* config.yml
* GUI manager
* Listener classes
* Setting enum
* Data storage system
* Command classes
* Utility classes
* Build-ready Maven structure
The final plugin should compile without errors and work directly on Paper 1.21.11 servers.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }