A powerful Minecraft plugin that integrates with Layeredy Announce to display announcements as customizable boss bars in your server.
Developed by plasma.services
- Features
- Installation
- Configuration
- Commands
- Permissions
- API Integration
- Boss Bar Customization
- Troubleshooting
- Building from Source
- Contributing
- Support
- License
- ๐ Real-time Announcements: Automatically fetches announcements from Layeredy Announce API
- ๐ Boss Bar Display: Shows announcements as eye-catching, customizable boss bars
- โ๏ธ Flexible Configuration: Fully configurable colors, styles, durations, and check intervals
- ๐ฏ Permission System: Control who can see announcements and manage the plugin
- ๐ Smart Caching: Respects
showOnceflags and prevents duplicate announcements - ๐ ๏ธ Admin Commands: Comprehensive command suite for testing and management
- ๐ Debug Mode: Detailed logging for troubleshooting and monitoring
- โก Performance Optimized: Asynchronous API calls with minimal server impact
- ๐ Direct Integration: Works seamlessly with the Layeredy Announce web service
- Minecraft server running Spigot 1.20.4+, Paper, or compatible software
- Java 17 or higher
- Active Layeredy Announce account
- Download the latest plugin JAR from Releases
- Place the JAR file in your server's
pluginsfolder - Restart your server
- Configure the plugin (see Configuration)
- Reload with
/layeredyannounce reload
The plugin creates plugins/LayeredyAnnounce/config.yml with the following options:
# Enable or disable the plugin functionality
enabled: true
# Your Layeredy Announce user ID
# Get this from your dashboard at https://announce.layeredy.com/
# Format: usr_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
user-id: "usr_db00e0d23c07d1b4b2d243c9702c896d"
# How often to check for new announcements (in seconds)
# Minimum: 30 seconds to avoid rate limiting
check-interval: 60
# Layeredy Announce API URL
# Default endpoint - usually no need to change
api-url: "https://announce.layeredy.com/api/announce"
# Boss bar display settings
bossbar:
# How long to display each announcement (in seconds)
# Minimum: 5 seconds
duration: 10
# Boss bar color options:
# BLUE, GREEN, PINK, PURPLE, RED, WHITE, YELLOW
color: "BLUE"
# Boss bar style options:
# SOLID, SEGMENTED_6, SEGMENTED_10, SEGMENTED_12, SEGMENTED_20
style: "SOLID"
# Enable detailed debug logging
debug: false- Visit announce.layeredy.com
- Sign up or log in to your account
- Find your User ID in the dashboard
- Copy the ID (format:
usr_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) - Paste it into your
config.yml
All commands support tab completion and require appropriate permissions.
| Command | Description | Permission |
|---|---|---|
/layeredyannounce reload |
Reload plugin configuration | layeredyannounce.admin |
/layeredyannounce status |
Show detailed plugin status | layeredyannounce.admin |
/layeredyannounce test |
Test API connection & display sample boss bar | layeredyannounce.admin |
/layeredyannounce check |
Manually check for new announcements | layeredyannounce.admin |
/layeredyannounce clear |
Clear all active boss bars and cache | layeredyannounce.admin |
/layeredyannounce debug <on|off> |
Toggle debug mode | layeredyannounce.admin |
/layeredyannounce help |
Show command help | layeredyannounce.admin |
Aliases: /announce, /lannounce
| Permission | Description | Default |
|---|---|---|
layeredyannounce.admin |
Access to all admin commands | op |
layeredyannounce.see |
Can see announcement boss bars | true |
The plugin connects to:
https://announce.layeredy.com/api/announce/{user_id}
The API returns a single announcement object:
{
"hasAnnouncement": true,
"id": "ann_b612aa26149b0db0b6648b755dca4de2",
"content": "50% off all products! https://plasma.services",
"theme": "default",
"customColor": "#3b82f6",
"customTextColor": "#ffffff",
"opacity": 1,
"position": "top",
"showOnce": false,
"allowDismissal": true,
"linkUrl": "",
"linkText": "",
"userPlan": "plus"
}hasAnnouncement: Boolean indicating if there's an active announcementid: Unique announcement identifier (format:ann_xxxxx)content: The message displayed in the boss barshowOnce: If true, announcement is only shown once per sessioncustomColor: Hex color for future styling features
- BLUE (default) - Professional blue
- GREEN - Success/positive messages
- YELLOW - Warnings/attention
- RED - Urgent/important
- PURPLE - Special events
- PINK - Fun/casual
- WHITE - Neutral/clean
- SOLID (default) - Clean, continuous bar
- SEGMENTED_6 - 6 distinct segments
- SEGMENTED_10 - 10 segments for progress-like appearance
- SEGMENTED_12 - 12 segments
- SEGMENTED_20 - 20 segments for fine detail
-
Verify User ID
# Check your config.yml has the correct format user-id: "usr_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
-
Test API Manually
# Visit in browser or curl: https://announce.layeredy.com/api/announce/YOUR_USER_ID # Should return JSON with "hasAnnouncement": true/false
-
Check Permissions
# Ensure players have permission to see announcements /lp user <player> permission set layeredyannounce.see true
-
Enable Debug Mode
/layeredyannounce debug on /layeredyannounce check # Check console for detailed logs
-
Test Connectivity
# From server console or in-game /layeredyannounce test
-
Check Firewall
- Ensure outbound HTTPS (port 443) is allowed
- Whitelist
announce.layeredy.comif needed
-
Verify Configuration
/layeredyannounce status # Check that the full endpoint URL is correct
-
Check Player Permissions
/layeredyannounce test # This should show a test boss bar
-
Verify Duration Settings
# In config.yml, ensure duration is reasonable bossbar: duration: 10 # At least 5 seconds
-
Test with Different Colors/Styles
bossbar: color: "RED" # More visible style: "SOLID" # Simpler style
| Issue | Solution |
|---|---|
| "Connection test failed" | Check internet connectivity and firewall |
| "Invalid user ID format" | Ensure ID starts with usr_ and is 32 chars |
| "No permission" | Grant layeredyannounce.see to players |
| "Boss bar disappears immediately" | Increase bossbar.duration in config |
| "Announcements repeat" | Check if showOnce is false in Layeredy dashboard |
- Java 17 or higher
- Maven 3.6+
- Git
# Clone the repository
git clone https://github.com/plasma-services/layeredy-announce-plugin.git
cd layeredy-announce-plugin
# Build with Maven
mvn clean package
# Find compiled JAR in target/
ls target/layeredy-announce-*.jar# Install dependencies
mvn clean install
# Run tests
mvn test
# Generate documentation
mvn javadoc:javadocWe welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Java conventions
- Add JavaDoc comments for public methods
- Include unit tests for new features
- Update documentation as needed
- Issues: GitHub Issues
- Discord: plasma.services Discord
- Website: announce.layeredy.com
- Support: Layeredy Forum
- Documentation: Layeredy Docs
This project is licensed under the MIT License - see the LICENSE file for details.
- Developer: plasma.services
- Layeredy Announce Service: Layeredy Software
- Inspired by: The Blueprint extension for Pterodactyl
- Built with: Spigot API, Gson, Maven
- Supported Minecraft Versions: 1.20.4+
- API Calls: Configurable interval (min 30s)
- Memory Usage: ~2MB
- Performance Impact: Minimal (async operations)
โญ If you find this plugin useful, please consider starring the repository! โญ
Made with โค๏ธ by plasma.services