1.0.0
Compatibility
Changes
NorrionProject Discord Plugin - Changelog v1.0.0
๐ Initial Release โ Minecraft โ Discord Integration
NPDiscord v1.0.0 is the official Discord integration plugin for the NorrionProject server. It bridges your Minecraft server with a Discord bot, automating rank synchronization, account linking, and server monitoring.
Designed for server administrators and community managers who want a seamless DiscordโMinecraft experience without manual role management.
โจ Key Features for Server Admins
1. Automatic Rank Synchronization (Discord โ LuckPerms)
Never manually assign Discord roles again. The plugin watches both directions in real time:
| Direction | Trigger | Action |
|---|---|---|
| Minecraft โ Discord | Player gets a LuckPerms group (rank) | Bot adds the matching Discord role |
| Minecraft โ Discord | Player loses a LuckPerms group | Bot removes the matching Discord role |
| Discord โ Minecraft | Admin adds/removes role on Discord | Bot updates the player's LuckPerms group |
How it works:
- Configure rankโrole mappings in
plugins/NorrionProject/discord-config.yml(grouping + priority system) - Supports mutually exclusive groups โ e.g., only one "Staff" role at a time (Mod / Admin / Owner)
- Default fallback role โ players without a mapped rank get a default role (e.g., "Player")
- Powered by LuckPerms API events โ instant, no polling, no lag
2. Secure Player Account Linking
Players link their Minecraft account to Discord themselves โ no admin intervention needed.
Flow:
- Player clicks "Link Account" button in a Discord channel (created via
/ndiscord create-link <channel-id>) - Bot sends them a unique 10-digit code (ephemeral, only they see it)
- Player runs
/ndiscord link <code>in-game - Accounts are paired โ Discord ID stored in player data
- (Optional) Bot removes an "Unlinked" role on success
Security:
- Codes expire after use (single-use)
- Ephemeral Discord replies โ codes never visible to others
- Prevents duplicate linking (one Minecraft account = one Discord account)
3. Server Monitoring โ Discord Channel
Stream critical server logs directly to a Discord channel as rich embeds.
Configure what you see:
- Log levels:
ERROR,WARN,INFO,DEBUG, etc. (pick any combination) - Smart startup filter: Optionally suppress boot-time spam (enable
monitoringAfterServerDone: true) - Color-coded embeds: ๐ด ERROR / ๐ก WARN / ๐ต INFO / โซ FATAL
- Stack traces included for exceptions (truncated to Discord limits)
- Runs asynchronously โ zero impact on main server thread
4. Multilingual Support (FR / EN)
All player-facing messages are translatable via JSON files in plugins/NorrionProject/language/NPDiscord:
messages_en.jsonmessages_fr.json
๐ฎ Player Commands
| Command | Permission | Description |
|---|---|---|
/ndiscord link <code> |
ndiscord.link |
Link Minecraft account to Discord using code from button |
๐ง Admin Commands
| Command | Permission | Description |
|---|---|---|
/ndiscord create-link <channel-id> |
ndiscord.admin |
Posts the "Link Account" button embed in the current Discord channel (bot must have perms) |
Usage:
- Go to your Discord
#verificationchannel - Run
/ndiscord create-link <channel-id>in-game (or via console) - Bot posts an embed with a "Link Account" button
- Players click โ get code โ run
/ndiscord link <code>in-game
Made with โค๏ธ for the NorrionProject community.
Questions? Open an issue on our Discord.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:TTWzuWC2:Jq2y87ll"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:TTWzuWC2:Jq2y87ll"
}

