DearU
๐ก Updated this year๐ Analysis
- ๐ #55 of 137 folia mods in this game by downloads
๐ About This Mod
<div align="center"> # ๐ฌ DearU ### A modern mailbox plugin for Paper/Folia servers (https://img.shields.io/badge/Kotlin-2.3.10-blue?style=flat-square&logo=kotlin)](https://kotlinlang.org/) (https://img.shields.io/badge/Java-21-orange?style=flat-square&logo=openjdk)](https://openjdk.org/) (https://img.shields.io/badge/Paper-API-green?style=flat-square&logo=papermc)](https://papermc.io/) (https://img.shields.io/badge/License-MIT-yellow?style=flat-square)](LICENSE) </div> ## โจ Features - ๐ฎ **Mailbox System** - Players can receive and manage their mail through a beautiful GUI - ๐ฆ **Package Support** - Send single items or multi-item packages to players - ๐พ **Database Abstraction** - Built-in support for SQLite and MySQL - โก **Async Operations** - Non-blocking mail operations using `CompletableFuture` - ๐จ **Modern API** - Clean Java interface for plugin developers - ๐ ๏ธ **Command Aliases** - Customizable command aliases ## ๐ Project Structure ``` DearU/ โโโ api/ # Java module with public interfaces โ โโโ DearU # Main plugin interface โ โโโ Mailbox # Async mailbox operations โ โโโ Mail # Sealed interface for mail types โ โ โโโ SingleMail # Single item mail โ โ โโโ PackageMail # Multi-item package โ โโโ MailSender # Mail sender representation โ โโโ MailboxManager # Mailbox instance manager โ โโโ core/ # Kotlin module with implementations โโโ DearUPlugin # Main plugin class โโโ DearUConfiguration # Config system โโโ DatabaseManager # Database abstraction โโโ MailboxManagerImpl # Mailbox implementation โโโ MailboxGui # GUI implementation ``` ## ๐ Getting Started ### Requirements - **Java 21** or higher - **Paper/Folia** server (latest version) ### Installation 1. Build the plugin: ```bash ./gradlew build ``` 2. Find the JAR in `core/build/libs/` 3. Place it in your server's `plugins/` folder 4. Restart your server ### Configuration Edit `plugins/DearU/config.yml` to customize: ```yaml # Database settings (SQLite/MySQL) database: sql: type: SQLITE # or MYSQL mysql: host: localhost port: 3306 database: dearu username: root password: password # Command aliases commands: mailbox: aliases: - mail - ์ฐํธํจ ``` ## ๐ป Development ### Build Commands ```bash # Build the project ./gradlew build # Run test server (Paper) ./gradlew runServer # Run Folia test server ./gradlew runFolia # Clean build artifacts ./gradlew clean ``` ### API Usage #### Sending Mail ```java import com.bindglam.dearu.DearU; import com.bindglam.dearu.mail.*; // Get plugin instance DearU dearU = DearUProvider.get(); // Send single item mail Mail singleMail = Mail.single( MailSender.server(), itemStack, "Welcome to our server!" ); dearu.mailboxManager().getMailbox(playerUUID) .putMail(singleMail); // Send package mail PackageMail.Body body = PackageMail.bodyBuilder() .name("Welcome Package") .content(itemStack1) .content(itemStack2) .build(); Mail packageMail = Mail.packaged( MailSender.player(senderUUID), body, "Here's your starter kit!" ); dearu.mailboxManager().getMailbox(playerUUID) .putMail(packageMail); ``` #### Reading Mail ```java import com.bindglam.dearu.Mailbox; import java.util.concurrent.CompletableFuture; Mailbox mailbox = dearU.mailboxManager().getMailbox(playerUUID); // Get all mail (async) CompletableFuture<List<Mailbox.IdentifiedMail>> future = mailbox.mails(); future.thenAccept(mails -> { for (Mailbox.IdentifiedMail identified : mails) { Mail mail = identified.mail(); // Process mail... } }); // Get specific mail by ID CompletableFuture<Mailbox.IdentifiedMail> mailFuture = mailbox.mail(mailId); mailFuture.thenAccept(identified -> { if (identified != null) { Mail mail = identified.mail(); // Process mail... } }); ``` ## ๐๏ธ Architecture ### Managerial Pattern All managers implement the `Managerial` interface: ```kotlin interface Managerial { fun start(context: Context) fun end(context: Context) } ``` Managers are initialized in plugin lifecycle: ```kotlin val managers = listOf(DatabaseManager, MailboxManagerImpl) managers.forEach { it.start(Context(this, dearUConfig)) } ``` ### Database Abstraction Uses `DatabaseLib` for unified SQL operations: - **SQLite** - Default, uses `database.db` in plugin data folder - **MySQL** - Configurable for production use ### Configuration System Nested class-based configuration using `ConfigLib`: ```kotlin class Commands { val mailbox = createExtendedComplexField { CommandField("mailbox") } } ``` ## ๐ง Dependencies ### Runtime Dependencies - **ConfigLib** (1.0.0) - Configuration system - **DatabaseLib** (1.0.4) - Database abstraction - **semver4j** (6.0.0) - Version comparison ### Build Dependenc
### A modern mailbox plugin for Paper/Folia servers
[!(https://img.shields.io/badge/Kotlin-2. 3. 10-blue?style=flat-square&logo=kotlin)](https://kotlinlang.org/) [!(https://img.shields.io/badge/Java-21-orange?style=flat-square&logo=openjdk)](https://openjdk.org/) [!(https://img.shields.io/badge/Paper-API-green?style=flat-square&logo=papermc)](https://papermc.io/) [!(https://img.shields.io/badge/License-MIT-yellow?style=flat-square)](LICENSE)
## โจ Features
- ๐ฎ Mailbox System - Players can receive and manage their mail through a beautiful GUI
- ๐ฆ Package Support - Send single items or multi-item packages to players
- ๐พ Database Abstraction - Built-in support for SQLite and MySQL
- โก Async Operations - Non-blocking mail operations using `CompletableFuture`
- ๐จ Modern API - Clean Java interface for plugin developers
- ๐ ๏ธ Command Aliases - Customizable command aliases
## ๐ Project Structure
``` DearU/ โโโ api/ # Java module with public interfaces โ โโโ DearU # Main plugin interface โ โโโ Mailbox # Async mailbox operations โ โโโ Mail # Sealed interface for mail types โ โ โโโ SingleMail # Single item mail โ โ โโโ PackageMail # Multi-item package โ โโโ MailSender # Mail sender representation โ โโโ MailboxManager # Mailbox instance manager โ โโโ core/ # Kotlin module with implementations โโโ DearUPlugin # Main plugin class โโโ DearUConfiguration # Config system โโโ DatabaseManager # Database abstraction โโโ MailboxManagerImpl # Mailbox implementation โโโ MailboxGui # GUI implementation ```
## ๐ Getting Started
### Requirements
- Java 21 or higher
- Paper/Folia server (latest version)
### Installation
1. Build the plugin: ```bash ./gradlew build ```
2. Find the JAR in `core/build/libs/`
3. Place it in your server's `plugins/` folder
4. Restart your server
### Configuration
Edit `plugins/DearU/config.yml` to customize:
```yaml # Database settings (SQLite/MySQL) database: sql: type: SQLITE # or MYSQL mysql: host: localhost port: 3306 database: dearu username: root password: password
# Command aliases commands: mailbox: aliases: - mail - ์ฐํธํจ ```
## ๐ป Development
### Build Commands
```bash # Build the project ./gradlew build
# Run test server (Paper) ./gradlew runServer
# Run Folia test server ./gradlew runFolia
# Clean build artifacts ./gradlew clean ```
### API Usage
#### Sending Mail
```java import com.bindglam.dearu. DearU; import com.bindglam.dearu.mail.*;
// Get plugin instance DearU dearU = DearUProvider.get();
// Send single item mail Mail singleMail = Mail.single( MailSender.server(), itemStack, "Welcome to our server!" ); dearu.mailboxManager().getMailbox(playerUUID) .putMail(singleMail);
// Send package mail PackageMail. Body body = PackageMail.bodyBuilder() .name("Welcome Package") .content(itemStack1) .content(itemStack2) .build();
Mail packageMail = Mail.packaged( MailSender.player(senderUUID), body, "Here's your starter kit!" ); dearu.mailboxManager().getMailbox(playerUUID) .putMail(packageMail); ```
#### Reading Mail
```java import com.bindglam.dearu. Mailbox; import java.util.concurrent. CompletableFuture;
Mailbox mailbox = dearU.mailboxManager().getMailbox(playerUUID);
// Get all mail (async)
CompletableFuture> future = mailbox.mails();
future.thenAccept(mails -> {
for (Mailbox. IdentifiedMail identified : mails) {
Mail mail = identified.mail();
// Process mail...
}
});
// Get specific mail by ID
CompletableFuture
## ๐๏ธ Architecture
### Managerial Pattern
All managers implement the `Managerial` interface:
```kotlin interface Managerial { fun start(context: Context) fun end(context: Context) } ```
Managers are initialized in plugin lifecycle: ```kotlin val managers = listOf(DatabaseManager, MailboxManagerImpl) managers.forEach { it.start(Context(this, dearUConfig)) } ```
### Database Abstraction
Uses `DatabaseLib` for unified SQL operations:
- SQLite - Default, uses `database.db` in plugin data folder
- MySQL - Configurable for production use
### Configuration System
Nested class-based configuration using `ConfigLib`: ```kotlin class Commands { val mailbox = createExtendedComplexField { CommandField("mailbox") } } ```
## ๐ง Dependencies
### Runtime Dependencies - ConfigLib (1. 0. 0) - Configuration system - DatabaseLib (1. 0. 4) - Database abstraction - semver4j (6. 0. 0) - Version comparison
### Build Dependenc
๐ Mod Details
- Game
- Minecraft Plugins
- Author
- bindglam
- Version
- 1.0.0
- Downloads
- 57
- Endorsements
- 0
- Category
- folia
- Created
- 3/12/2026
- Updated
- 3/8/2026
- Game Versions
- 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4
- Tags
- game-mechanics, management, storage
๐ง How to Install Minecraft Plugins Mods
Download from Modrinth. Use Prism Launcher or drop into your mods folder.
๐ Full step-by-step install guide for Minecraft Plugins โ
Visit the official mod page for specific installation instructions for this mod.
๐ฎ Need cheat codes or console commands? Check ur gaming wiki for Minecraft Plugins commands, item IDs, and more.
โ Frequently Asked Questions
Which Minecraft Plugins versions does DearU support?
The author lists 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5. Other versions may work but are untested by the author.
What is the latest version of DearU?
Version 1.0.0, published 2026-03-08 with 57 downloads recorded at the source.
Keep browsing โ more Minecraft Plugins mods await