Repository navigation
API and Integrations
Plot System ships a standalone plot-system-api Java library for external plugins (reminders, Discord bots, dashboards, etc.). The main plugin implements the API and publishes Bukkit events / a service at runtime.
Included in Plot System v5.3+. The API artifact is published with core releases.
Repository: https://mvn.alps-bte.com/repository/alps-bte/
<dependency>
<groupId>com.alpsbte</groupId>
<artifactId>plot-system-api</artifactId>
<version>5.3.0</version> <!-- match your Plot System version -->
<scope>provided</scope>
</dependency>Gradle:
repositories {
maven("https://mvn.alps-bte.com/repository/alps-bte/")
}
dependencies {
compileOnly("com.alpsbte:plot-system-api:5.3.0")
}Observe-only (not cancellable). Tutorial plots are out of scope.
| Event | When |
|---|---|
PlotCreatedEvent |
Plot claimed / created |
PlotSubmittedEvent |
Submitted for review |
PlotSubmissionUndoneEvent |
Submission undone |
PlotReviewedEvent |
Accepted |
PlotRejectedEvent |
Rejected |
PlotReviewUndoneEvent |
Review undone |
PlotFeedbackUpdatedEvent |
Feedback edited |
PlotAbandonedEvent |
Abandoned |
PlotArchivedEvent |
Archived (with abandon) |
PlotStatusChangedEvent |
Status change |
PlotActivityChangedEvent |
Owner activity / last-visit update |
PlotNotificationIntentEvent is cancellable. Plot System does not fire it — integrations that send notifications should fire it on the server thread immediately before delivery and skip sending when cancelled. Use this so other plugins can veto spam without cancelling plot work.
Reasons include submitted, inactivity, abandoned, created, etc. (PlotNotificationReason).
There is no PlotInactivityWarningEvent. Inactivity reminders are owned by integrations; config inactivity-interval only controls abandonment eligibility.
Registered on Bukkit ServicesManager:
PlotSnapshotProvider provider = Bukkit.getServicesManager()
.load(PlotSnapshotProvider.class);
Optional<PlotSnapshot> plot = provider.getPlotSnapshot(id);
List<PlotSnapshot> unfinished = provider.getPlotSnapshots(PlotStatus.UNFINISHED);Lookups are blocking DB reads — call them off the main thread. Use them to reconcile reminder schedules on startup and before delivery; re-fetch after activity/status events. Models include PlotSnapshot, ReviewSnapshot, PlotStatus, PlotType, PlotDifficulty, PlotAbandonReason, PlotReviewOutcome.
- Register listeners before enumerating snapshots on startup.
- Persist your own reminder schedules; do not rely on Plot System for delivery timing.
- Reschedule on
PlotActivityChangedEvent/PlotStatusChangedEvent. - Fire
PlotNotificationIntentEventbefore any player-facing notification you own.