Skip to main content

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 order
  • orderId - Order ID
  • material - Item material
  • quantity - Quantity ordered
  • pricePerItem - 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-all config
  • 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

  1. Check Enabled: Always check if announcements are enabled
  2. Respect Config: Use broadcast method to respect config
  3. Permission Checks: Check permissions if sending manually
  4. Error Handling: Handle null/errors gracefully