1.0.0
Compatibility
Changes
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)
- PUBLIC CHAT
-
If disabled:
- Player does not see public/global chat messages
- Private messages still visible
- PRIVATE MESSAGE
-
If disabled:
- Player cannot receive private messages
- CHAT SERVER MESSAGE
-
If disabled:
- Player does not receive server broadcast/chat messages
- HOTBAR SERVER MESSAGE
-
If disabled:
- ActionBar/hotbar messages hidden
- PAY ALERTS
-
If disabled:
- Player cannot receive money/pay notifications
- Payments blocked to this player
- BOUNTY ALERTS
-
If disabled:
- No bounty notifications shown
- AUCTION ALERTS
-
If disabled:
- No auction listing notifications
SLOTS 10-18 (GAMEPLAY SETTINGS)
- FAST CRYSTALS
- Enable optimized crystal placement handling
- API hook ready for CrystalPvP plugins
- TOTEM PARTICLES
-
If disabled:
- Hide totem pop particles/effects
- EXPLOSION PARTICLES
-
If disabled:
- Hide TNT/Anchor explosion particles
- QUICK AUCTION BUY
-
If enabled:
- Skip confirmation menu when buying auctions
- CHAINMAIL ON RESPAWN
-
If enabled:
-
On respawn or first join:
- Give chainmail armor
- Remove 1000 money using Vault
-
-
Configurable armor
-
Configurable cost
- DISABLE MOB SPAWNS
-
If enabled:
- Prevent hostile/passive mob spawning near player
- Radius configurable
SLOTS 19-27 (VISUAL & UTILITY SETTINGS)
- PLAYER VISIBILITY
-
If disabled:
- Hide all players globally using Player#hidePlayer()
- SCOREBOARD
-
If enabled:
- Hide scoreboard from player
-
If disabled:
- Restore scoreboard
- TPA CONFIRM MENUS
-
If enabled:
- Automatically accept TPA confirmations
- Skip confirmation GUI
- SOUND NOTIFICATION
-
If disabled:
- Disable plugin notification sounds
- ORDER NOTIFICATIONS
-
If disabled:
- Hide order/shop notifications
- RANDOM COORDS
-
If enabled:
- RTP coordinates hidden from chat/messages
SLOTS 28-36 (SOCIAL SETTINGS)
- DUEL REQUESTS
-
If disabled:
- Block all duel requests
- TPA REQUESTS
-
If enabled:
- Automatically accept incoming TPA requests
- TPA HERE REQUESTS
-
If enabled:
- Automatically accept incoming TPAHERE requests
- TEAM INVITES
-
If disabled:
- Block team invites
- PAYMENTS
-
If disabled:
- Prevent receiving payments
- TEAM CHAT
-
If disabled:
- Hide team chat messages
- WORTH DISPLAY
-
If enabled:
- Show item worth/sell price in lore
- AFTER DUEL SONGS
-
If disabled:
- Mute duel/song/music sounds
- 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.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:DuEH7wQR:sN5oTeFb"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:DuEH7wQR:sN5oTeFb"
}

