API: Announcements
Methods for creating and broadcasting order announcements.
Announcement Methods
areAnnouncementsEnabled
Check if order announcements are enabled.
Signature:
boolean areAnnouncementsEnabled()
Returns: true if announcements are enabled
Example:
if (!ordersAPI.areAnnouncementsEnabled()) {
return; // Announcements disabled
}
createOrderAnnouncement
Create a clickable order announcement TextComponent.
Signature:
TextComponent createOrderAnnouncement(
String playerName,
int orderId,
Material material,
int quantity,
double pricePerItem
)
Parameters:
playerName- Name of player who created orderorderId- Order IDmaterial- Item materialquantity- Quantity orderedpricePerItem- Price per item
Returns: TextComponent that opens /orders GUI when clicked
Example:
TextComponent announcement = ordersAPI.createOrderAnnouncement(
"PlayerName",
1,
Material.DIAMOND,
64,
100.0
);
player.spigot().sendMessage(announcement);
broadcastOrderAnnouncement
Broadcast order announcement to all players (respects config).
Signature:
void broadcastOrderAnnouncement(
String playerName,
int orderId,
Material material,
int quantity,
double pricePerItem
)
Parameters: Same as createOrderAnnouncement
Behavior:
- Respects
notifications.order-announcements.broadcast-to-allconfig - Respects permission if broadcast-to-all is false
- Sends clickable announcement
Example:
ordersAPI.broadcastOrderAnnouncement(
"PlayerName",
1,
Material.DIAMOND,
64,
100.0
);
sendOrderAnnouncement
Send announcement to specific player.
Signature:
void sendOrderAnnouncement(
Player player,
String playerName,
int orderId,
Material material,
int quantity,
double pricePerItem
)
Parameters:
player- Player to send to- Other parameters same as above
Example:
ordersAPI.sendOrderAnnouncement(
targetPlayer,
"PlayerName",
1,
Material.DIAMOND,
64,
100.0
);
Complete Example
// Create order
CompletableFuture<Order> future = ordersAPI.createOrder(...);
future.thenAccept(order -> {
if (order == null) {
return;
}
OrderItem item = order.getItems().get(0);
// Broadcast announcement
if (ordersAPI.areAnnouncementsEnabled()) {
ordersAPI.broadcastOrderAnnouncement(
order.getPlayerName(),
order.getId(),
item.getMaterial(),
item.getAmount(),
item.getPricePerItem()
);
}
// Or send to specific players
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
if (onlinePlayer.hasPermission("sigmaorders.announcement")) {
ordersAPI.sendOrderAnnouncement(
onlinePlayer,
order.getPlayerName(),
order.getId(),
item.getMaterial(),
item.getAmount(),
item.getPricePerItem()
);
}
}
});
Best Practices
- Check Enabled: Always check if announcements are enabled
- Respect Config: Use broadcast method to respect config
- Permission Checks: Check permissions if sending manually
- Error Handling: Handle null/errors gracefully
Related Documentation
- Order Management - Order operations
- Notifications Configuration - Notification settings