Quill
Quill is a comprehensive utility library for Paper plugins, providing a wide range of tools and systems to simplify plugin development. It offers everything from configuration management to advanced item creation, all with a clean and intuitive API.
Features
- 🔧 Configuration System - Annotation-based configuration with automatic updating
- 💬 Chat System - Advanced message handling with MiniMessage support
- 💾 JSON Storage - Flexible and type-safe data storage system
- 📦 Item Management - Powerful item creation and manipulation
- 📋 Scoreboard System - Simple yet flexible scoreboard creation
- 🎮 Events System - Streamlined event handling with filtering
- 🛠️ Utility Classes - Comprehensive collection of utility methods
- 🔌 Plugin Hooks - Built-in integration with PlaceholderAPI and Vault
Installation
1. Server Installation
First, download and install the Quill plugin on your server:
- Download the latest version from Releases
- Place the JAR file in your server's
plugins
folder - Restart your server
2. Development Integration
Gradle (Kotlin DSL)
repositories {
maven("https://jitpack.io")
}
dependencies {
compileOnly("com.github.xLevitate:Quill:2.6.0")
}
Gradle (Groovy)
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
compileOnly 'com.github.xLevitate:Quill:2.6.0'
}
Maven
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.xLevitate</groupId>
<artifactId>Quill</artifactId>
<version>2.6.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
Quick Start
Chat System
// Send formatted message
Chat.sendMessage(player, "<gradient:green:blue>Welcome to the server!</gradient>");
// Send title
Chat.sendTitle(player, "<gold>Welcome!", "<gray>Enjoy your stay");
Configuration
@Configuration("config.yml")
public class MyConfig {
@Comment("Enable or disable the plugin")
private boolean enabled = true;
@Comment("Custom message")
private String message = "<green>Hello!</green>";
}
Item Creation
ItemStack item = new ItemWrapper()
.plugin(plugin)
.material(Material.DIAMOND_SWORD)
.name("<gradient:blue:purple>Mystic Blade</gradient>")
.lore(Arrays.asList(
"<gray>A legendary weapon",
"<blue>Damage: +50</blue>"
))
.build();
Event Handling
Events.listen(plugin, PlayerJoinEvent.class)
.filter(event -> !event.getPlayer().hasPlayedBefore())
.handle(event -> {
Player player = event.getPlayer();
Chat.sendMessage(player, "<green>Welcome to the server!");
});
Documentation
For detailed documentation, please visit our Wiki.
Requirements
- Java 17 or higher
- Paper 1.20.4 or higher
- (Optional) PlaceholderAPI for placeholder support
- (Optional) Vault for economy support
Support
If you encounter any issues or have questions:
External resources
Project members
levitatedev
Member
Technical information
License
GPL-3.0-only
Project ID