Compatibility
Minecraft: Java Edition
1.21
1.20.x
1.19.x
1.18.x
1.17.x
1.16.5
Platforms
Fabric
Supported environments
75% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Links
Creators
Details
Licensed CC0-1.0
Published last year
Updated 3 months ago
Quill Notifications
A small Library mod to handle sending notifications to players both online and offline with style!
Usage
This mod requires both Fabric API, and SQLib.
Use of Adventure API is not required but encouraged.
Once the mod is installed on your server, a config will be generated after the first launch. Be sure to edit this config and point it to a file path or a my sql database.
For Developers
Getting Started
To include this mod in your project simply add it as a dependency:
repositories {
maven { url "https://api.modrinth.com/maven" }
// adventure api is not strictly necessary but is helpful and will allow you to use Component messages
maven {
name = "sonatype-oss-snapshots1"
url = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
mavenContent { snapshotsOnly() }
}
}
dependencies {
modImplementation("maven.modrinth:quill:1.2.2")
// adventure api is not strictly necessary but is helpful and allow you to use Component messages
modImplementation include("net.kyori:adventure-platform-fabric:5.14.0")
}
General Usage
Notification notification = NotificationBuilder.Notification(receiverUUID) // Initalize a new notification to be sent
.setMessage(message) // setMessage() accepts String, MutableText, or Component variables (note that the notification will only save the last message set)
.setStyle(Scribe.INFO) // setStyle() only works for String messages
.setMetadata(jsonData) // inject json data into a message to be used with the event system
.setSound(SoundEvents.BLOCK_BELL_USE) // set a soundevent to be played when notification is received
.setCommands(commandString, commandString2) // set commands to be run when the notification is received
.setCommandDelay(10, TimeUnit.SECONDS) // set a delay that your commands will delayed for after the notification is sent (you can also pass in just a number for the ammount of millies to delay by)
.setExpiry(15, TimeUnit.MINUTES) // set a time from a message to expire, if the player doesnt come online before the expiry time elapes the notificaion will not be sent (you can also pass in just a number for the ammount of millies till expiry)
.build();
Pigeon.send(notification); // send the notification to the player
for (Notification message: QuillNotifications.getNotifications(receiverUUID)) { // get all pending notifications for a player (notifications are in order of oldest to newest)
if (notification.getMessage().toString().equals("Test message plz delete")) message.cancel() // cancel a notification before it gets sent to the player
}
Event System
//the event system gives you a notification object to modify the notification data before it gets sent
QuillEvents.PRE_SEND_NOTIFICATION.register((notification) -> {
System.out.println(notification.getPlayerEntity().getName().getString());
//returning true allows the message to be sent, returning false will stop the
//returning false will stop the message from being seen
return true;
// Do cool things with metadata or the other varibles idk the event system is your oyster.
});