GUI Configuration
The gui.yml
file controls all aspects of PrimeChat's Admin GUI interface, including panel titles, item materials, slot positions, and visual feedback.
File Location
plugins/PrimeChat/gui.yml
GUI Structure Overview
PrimeChat's Admin GUI consists of multiple interconnected panels:
Main Panel: Entry point with Actions and Settings buttons
Actions Panel: Quick chat management (lock/unlock, clear, games)
Settings Panel: Category selection for different settings types
Chat Settings Panel: Chat-specific configuration options
Security Settings Panel: Security features configuration
Detection Settings Panel: Detection system configuration
Panel Titles
titles:
main-panel: "&#FF6347&lPrimeChat D4D4D- &#E0E0E0Admin Panel"
actions-panel: "&#FF6347&lPrimeChat D4D4D- &#E0E0E0Actions"
settings-panel: "&#FF6347&lPrimeChat D4D4D- &#E0E0E0Settings"
chat-settings-panel: "&#FF6347&lPrimeChat D4D4D- &#E0E0E0Chat Settings"
security-settings-panel: "&#FF6347&lPrimeChat D4D4D- &#E0E0E0Security Settings"
detection-settings-panel: "&#FF6347&lPrimeChat D4D4D- &#E0E0E0Detection Settings"
Main Panel Configuration
Actions Button
main-panel:
actions:
material: DIAMOND_SWORD
slot: 11
name: " CD32&lActions"
lore:
- "󙀸Click to access chat actions"
- "󙀸• Toggle chat lock/unlock"
- "󙀸• Clear chat"
Settings Button
main-panel:
settings:
material: REDSTONE
slot: 15
name: "&#FFA500&lSettings"
lore:
- "󙀸Click to configure plugin settings"
- "󙀸• Toggle features on/off"
- "󙀸• Adjust numeric values"
Actions Panel Configuration
Chat Lock Toggle
actions-panel:
chat-lock:
slot: 11
locked:
material: GREEN_WOOL
name: " CD32&lUnlock Chat"
lore:
- "󙀸Current status: &#FF4747Locked"
- "󙀸Click to unlock the chat"
unlocked:
material: RED_WOOL
name: "&#FF4747&lLock Chat"
lore:
- "󙀸Current status:  CD32Unlocked"
- "󙀸Click to lock the chat"
Clear Chat Action
actions-panel:
clear-chat:
material: BUCKET
slot: 13
name: "&#FFA500&lClear Chat"
lore:
- "󙀸Click to clear the chat for all players"
Chat Games Action
actions-panel:
chat-games:
material: BOOK
slot: 15
name: " CD32&lSend Chat Game"
lore:
- "󙀸Click to send a random chat game question"
- "󙀸Players can answer to win rewards"
Back Button
actions-panel:
back-button:
material: ARROW
slot: 22
name: "&#FF4747&lBack"
lore:
- "󙀸Click to go back"
Settings Panel Configuration
Category Selection
settings-panel:
chat-category:
material: PAPER
slot: 11
name: " CD32&lChat Settings"
lore:
- "󙀸Configure chat-related settings"
- "󙀸• Message centering"
- "󙀸• Chat hover effects"
security-category:
material: SHIELD
slot: 13
name: "&#FF4747&lSecurity Settings"
lore:
- "󙀸Configure security features"
- "󙀸• Anti-spam protection"
- "󙀸• Blocked words filter"
- "󙀸• Anti-advertising system"
detection-category:
material: COMPASS
slot: 15
name: "&#FFA500&lDetection Settings"
lore:
- "󙀸Configure detection systems"
- "󙀸• Chat detection"
- "󙀸• Command detection"
- "󙀸• Sign detection"
Chat Settings Panel
chat-settings-panel:
center-messages:
material: COMPASS
slot: 11
name: "&#E0E0E0&lCenter Messages"
config-path: "settings.center-messages.enabled"
chat-hover:
material: ITEM_FRAME
slot: 13
name: "&#E0E0E0&lChat Hover"
config-path: "chat.hover.enabled"
Security Settings Panel
security-settings-panel:
anti-spam:
material: CLOCK
slot: 10
name: "&#E0E0E0&lAnti-Spam"
config-path: "security.anti-spam.enabled"
anti-spam-cooldown:
material: HOPPER
slot: 19
name: "&#E0E0E0&lAnti-Spam Cooldown"
config-path: "security.anti-spam.cooldown"
unit: "seconds"
type: "number"
blocked-words:
material: BARRIER
slot: 12
name: "&#E0E0E0&lBlocked Words"
config-path: "security.blocked-words.enabled"
anti-advertising:
material: SHIELD
slot: 14
name: "&#E0E0E0&lAnti-Advertising"
config-path: "security.anti-advertising.enabled"
block-ipv4:
material: IRON_BARS
slot: 16
name: "&#E0E0E0&lBlock IPv4"
config-path: "security.anti-advertising.block-ipv4"
block-domains:
material: IRON_DOOR
slot: 21
name: "&#E0E0E0&lBlock Domains"
config-path: "security.anti-advertising.block-domains"
block-links:
material: CHAIN
slot: 23
name: "&#E0E0E0&lBlock Links"
config-path: "security.anti-advertising.block-links"
Detection Settings Panel
detection-settings-panel:
detect-chat:
material: PAPER
slot: 11
name: "&#E0E0E0&lDetect in Chat"
config-path: "security.anti-advertising.detection.chat"
detect-commands:
material: COMMAND_BLOCK
slot: 13
name: "&#E0E0E0&lDetect in Commands"
config-path: "security.anti-advertising.detection.commands"
detect-signs:
material: OAK_SIGN
slot: 15
name: "&#E0E0E0&lDetect on Signs"
config-path: "security.anti-advertising.detection.signs"
Item Templates
Toggle Item Template
toggle-item:
enabled:
material: LIME_DYE
status-text: " CD32Enabled"
action-text: "disable"
disabled:
material: GRAY_DYE
status-text: "&#FF4747Disabled"
action-text: "enable"
lore-template:
- "󙀸Status: %status%"
- "󙀸Click to %action%"
- "&#FFC447Config: 󙀸%config-path%"
Number Item Template
number-item:
lore-template:
- "󙀸Current value:  CD32%value% %unit%"
- "󙀸Left click: +1"
- "󙀸Right click: -1"
- "󙀸Shift + Left click: +5"
- "󙀸Shift + Right click: -5"
- "&#FFC447Config: 󙀸%config-path%"
Action Messages
messages:
chat-locked: "&#FF4747✖ Chat has been locked."
chat-unlocked: " CD32✔ Chat has been unlocked."
chat-cleared: " CD32✔ Chat was cleared by &#E0E0E0%player%&r CD32."
setting-enabled: " CD32✔ %setting% has been enabled"
setting-disabled: " CD32✔ %setting% has been disabled"
value-updated: " CD32✔ Updated %setting% to %value%"
Panel Sizes
sizes:
main-panel: 27
actions-panel: 27
settings-panel: 27
chat-settings-panel: 27
security-settings-panel: 27
detection-settings-panel: 27
GUI Features
Dynamic Updates
Current configuration values are displayed in real-time
Settings show current enabled/disabled status
Number values display current configuration
Click Controls
Left Click: Toggle settings or increment values
Right Click: Decrement numerical values
Shift + Click: Make larger adjustments (±5)
Back Buttons: Navigate between panels
Real-Time Configuration
Changes apply immediately when clicked
No need to restart server for most settings
Visual feedback shows current states
Customization Options
Visual Customization
# Custom materials for different states
toggle-item:
enabled:
material: EMERALD # Custom enabled material
disabled:
material: REDSTONE # Custom disabled material
# Custom colors in titles
titles:
main-panel: "&#YOUR_COLOR&lCustom Title"
Layout Customization
# Adjust slot positions
main-panel:
actions:
slot: 10 # Move to different slot
settings:
slot: 16 # Move to different slot
# Change panel sizes
sizes:
main-panel: 54 # Larger panel (6 rows)
Message Customization
messages:
chat-locked: "&#FF0000Custom lock message"
setting-enabled: "�FF00%setting% is now active!"
value-updated: "&#FFFF00%setting% changed to %value%"
Advanced Features
Conditional Items
Items can be configured to show/hide based on conditions:
Permission-based: Show items only for specific permissions
Config-dependent: Show items only when related features are enabled
Dynamic Materials: Change materials based on complex conditions
Sound Integration
The GUI integrates with the sound system:
Click Sounds: Different sounds for different actions
Success Sounds: Audio feedback for successful changes
Error Sounds: Audio feedback for failed actions
Multi-Language Support
GUI text can be localized:
Title Translation: Support for multiple languages
Lore Translation: Localized descriptions
Message Translation: Localized feedback messages
Best Practices
Performance Considerations
Efficient Updates: Only refresh changed items
Async Operations: Heavy config operations off main thread
Memory Management: Clean up unused GUI sessions
Event Handling: Efficient click event processing
User Experience
Clear Navigation: Obvious back buttons and breadcrumbs
Visual Feedback: Immediate response to clicks
Consistent Design: Same look and feel across panels
Informative Tooltips: Clear descriptions in lore text
Security Considerations
Permission Checks: Verify permissions before showing items
Input Validation: Validate numeric inputs and ranges
Config Validation: Ensure config changes are valid
Access Control: Limit GUI access to authorized users
Last updated