SyncCordСкачатьСкачатьСкачать
ВЕРСИИ (3)
release
SyncCord 1.1
1.15 сент. 2026 г.47Minecraft: 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Что нового
# SyncCord 🚀
**Seamless Discord <-> Minecraft Integration Plugin for Paper & Purpur**
SyncCord is a powerful, modern, and lightweight Minecraft-to-Discord bridge plugin specifically designed for Paper, Purpur, and Spigot servers (1.20 - 1.21+). It features real-time chat synchronization, secure account linking, role synchronization with LuckPerms, bi-directional console relays with interactive command outputs, and deep integration with the **wapeB** moderation suite.
---
## 📋 Version 1.1 (Recent Updates)
### ✨ wapeB v1.0.8 Integration & Staff History Sync
* **Full Staff History Tracking**: Sanctions executed from Discord (e.g. `?mute`, `?ban`, `?kick`, `?warn`) are now completely registered and tracked in wapeB's staff history database!
* **(Console) Tagging**: When inspecting records using `/staffhistory <staff>`, sanctions executed through Discord are clearly formatted with the `(Console)` tag on the target player:
* In-game sanction: `TEMPMUTE ywxlol for: spam (2026-09-04 22:16:34)`
* Discord console sanction: `TEMPMUTE ywxlol (Console) for: spam (2026-09-04 22:16:34)`
* **Linked Staff Executor Override**: Sanctions issued via Discord automatically map to the staff member's linked Minecraft username instead of anonymous "Console" or raw Discord handles.
* **Upgraded API**: Updated to the latest `wapeB v1.0.8` API for maximum stability and compatibility across both SQLite and YAML data storage managers.
* **Customizable Format**: Configurable `wapeBExecutorFormat` setting (default: `{executor} (Console)`).
### ⚡ Dual Engine Command Output Capture
* **Adventure & Spigot Support**: Enhanced console capture engine supporting both Paper's modern Adventure Component format (`net.kyori.adventure`) and legacy Spigot format (`net.md_5.bungee` / `org.bukkit.ChatColor`).
* **Zero Output Loss**: Moderation and administrative commands that output formatted components in Paper 1.21+ now correctly display in Discord command response embeds.
### 🔍 Real-Time Diagnostic & Debug System
* **Deep Diagnostic Logging**: Full tracking of Discord events, channel verifications, command parsing, role permission evaluations, and wapeB event triggers.
* **Toggleable On the Fly**: Enable or disable verbose debug logging via `/synccord debug` or directly in `config.yml` without server restarts.
### 🛡️ Reliability & Reload Stability
* **Safe Shutdown & Reloads**: Improved JDA lifecycle management and OkHttp dispatcher shutdown to prevent `ZipFile closed` exceptions during `/plugman reload` or server stops.
* **Safe Post-Processing**: Thread-safe task scheduling to guarantee database integrity during rapid command execution.
---
## 🌟 Core Features
* **💬 Bi-directional Chat Synchronization**:
* Real-time bridge between Minecraft server chat and Discord channels.
* Markdown and formatting support.
* In-game Discord reply tags showing who replied to whom.
* Rich muted player embed notifications when a muted player attempts to talk.
* **🔗 Secure Account Linking**:
* Easy two-step verification (`/discord link` in-game and `?dclink <code>` on Discord).
* Expirable verification codes with customizable validity length.
* Discord unlink support (`?dcunlink`).
* **🛡️ Interactive Discord Console & Moderation**:
* Execute server commands directly from Discord channels using custom prefixes (e.g. `?ban`, `?mute`, `?kick`).
* Console outputs are captured and returned in styled Discord embeds.
* Granular role permissions (assign specific commands to specific Discord roles or admin roles).
* Automatic chunking for long console outputs exceeding Discord's character limit.
* **📊 Live Channel Topic Status**:
* Automatically updates Discord channel topics with live online/max player counts (`🟢 Online: 12/100`).
* Displays server offline status automatically upon shutdown.
* **⚔️ LuckPerms & wapeB Integration**:
* Real-time rank synchronization with LuckPerms.
* Native punishment hooks for wapeB mute notifications and staff history auditing.
---
## ⚙️ Configuration (`config.yml`)
```yaml
# SyncCord - Minecraft-Discord Integration Plugin
# Created by KAGA
# ----------------------------------
# BOT SETTINGS
# ----------------------------------
BotToken: ""
Debug: false # Detailed console logging for all events (chat, commands, linking, sanctions)
BotStatus:
enabled: true
activityType: "WATCHING"
activityText: "the server"
# ----------------------------------
# CHANNEL SETTINGS
# ----------------------------------
Channels:
chat: "" # Primary channel for Minecraft chat & player events
console: "" # Console log / command channel
# ----------------------------------
# CHANNEL TOPIC UPDATER
# ----------------------------------
ChannelTopicUpdater:
enabled: true
channelId: ""
updateIntervalSeconds: 60
format: "🟢 Online: {online}/{max}"
offlineFormat: "🔴 Server Offline"
# ----------------------------------
# ACCOUNT LINKING
# ----------------------------------
AccountLinking:
database: "yaml"
codeValidityMinutes: 5
codeLength: 6
deleteCommandAfterUse: true
MinecraftMessages:
alreadyLinked: "&cYour account is already linked!"
notLinked: "&cYou do not have a linked account."
linkCodeGenerated: "&aYour code: &e{code}&a. Type on Discord: &e{prefix}dclink {code}"
linkSuccess: "&aSuccessfully linked your account to Discord user &e{discordName}&a!"
unlinkSuccess: "&aSuccessfully unlinked your account."
DiscordMessages:
linkSuccess: "✅ Account linked successfully!"
linkInvalidCode: "❌ Invalid code."
linkExpiredCode: "⌛ Expired code."
unlinkSuccess: "✅ Successfully unlinked your account."
unlinkNotLinked: "❌ Your account is not linked."
# ----------------------------------
# ROLE SYNCHRONIZATION (LuckPerms)
# ----------------------------------
RoleSync:
enabled: false
roles:
default: ""
# ----------------------------------
# CONSOLE RELAY & COMMANDS
# ----------------------------------
ConsoleRelay:
enabled: true
prefix: "?"
levels: ["INFO", "WARN", "ERROR"]
commands:
enabled: true
requireLinkedAccount: true
# When enabled, sanctions issued from Discord override the executor to the linked Minecraft account
overrideWapeBExecutor: true
# Format of the executor name (default: "{executor} (Console)")
wapeBExecutorFormat: "{executor} (Console)"
# Global roles that can run all allowed moderation commands
allowedRoles:
- "ADMIN_ROLE_ID"
# Allowed moderation commands
moderationCommands: ["kick", "ban", "mute", "tempban", "warn", "banip", "muteip", "tempbanip", "unmute", "unban", "unbanip"]
# Role-based command permissions:
roles:
mute:
id: "MUTE_ROLE_ID"
commands: ["mute", "muteip", "unmute"]
ban:
id: "BAN_ROLE_ID"
commands: ["ban", "banip", "unban"]
broadcastPermission: "synccord.seeconsolecommands"
# ----------------------------------
# MESSAGE FORMATS
# ----------------------------------
MessageFormats:
minecraftToDiscord:
plainTextFormat: "**{rank}** {playerName}: {message}"
discordToMinecraft: "&9[Discord] &7({topRole}) &b{userNick}&f: &7{message}"
mutedPlayerToDiscord:
enabled: true
color: "#FF0000"
title: "🔇 Muted Player Message"
description: "**Player attempted to speak while muted:**"
author:
name: "{playerName} ({rank})"
iconUrl: "https://cravatar.eu/helmavatar/{playerUuid}/128.png"
footer:
text: "SyncCord • wapeB Punish"
includeTimestamp: true
fields:
message:
enabled: true
name: "💬 Message"
value: "{message}"
inline: false
player:
enabled: true
name: "👤 Player"
value: "{playerName}"
inline: true
rank:
enabled: true
name: "🛡️ Rank"
value: "{rank}"
inline: true
executor:
enabled: true
name: "🔨 Punished By"
value: "{executor}"
inline: true
reason:
enabled: true
name: "📋 Reason"
value: "{reason}"
inline: true
duration:
enabled: true
name: "⏱️ Remaining"
value: "{duration}"
inline: true
consoleCommandExecuted: "&e[!] Command '{command}' executed by: &c{executorName} (Discord)"
commandNotAllowed: "{userMention}, this command is not allowed from Discord: `{command}`"
noPermissionCommand: "{userMention}, you do not have permission to use `{command}`!"
serverStart:
description: "✅ Server has started!"
color: "#00FF00"
serverStop:
description: "❌ Server has stopped!"
color: "#FF0000"
playerJoin:
description: "➡️ {playerName} joined the server."
color: "#FFFF00"
playerLeave:
description: "⬅️ {playerName} left the server."
color: "#FFA500"
discordReplyFormat: " &8(reply: {repliedTo})"
```
---
## ⌨️ Commands & Permissions
| Command | Description | Permission | Default |
| :--- | :--- | :--- | :--- |
| `/discord link` | Generates a 6-digit verification code to link Discord | None (all players) | Everyone |
| `/discord unlink` | Unlinks your current Minecraft account from Discord | None (all players) | Everyone |
| `/synccord reload` | Reloads `config.yml` | `synccord.reload` | OP |
| `/synccord debug` | Toggles detailed live debug console logging | `synccord.reload` | OP |
### Discord Commands:
* `?dclink <code>`: Enters the link code on Discord to finalize account pairing.
* `?dcunlink`: Unlinks your Discord account.
* `?<command>`: Runs a permitted server moderation command (e.g. `?mute Steve 1h spam`).
beta
beta-1.0
beta-1.029 окт. 2025 г.182Minecraft: 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.10, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9paper, spigot
Что нового
### Version beta-1.0 (Recent Updates)
* ✨ **Interactive Command Responses:**
* **New:** Commands executed from Discord now return the **actual console output** in a formatted embed, instead of a generic "command executed" message. This is crucial for commands like `list` or `checkban`.
* **New:** The command system was completely rewritten to use a stable "Proxy Sender" method, guaranteeing that all command outputs are captured reliably.
* 🚀 **Command & Prefix Flexibility:**
* **New:** The prefix for all Discord commands (e.g., `?`, `!`) is now fully configurable in the `config.yml` under `ConsoleRelay.prefix`.
* **Improved:** All commands, including `dclink` and `dcunlink`, now use the same configurable prefix, creating a consistent user experience.
* **Improved:** Commands can now be executed from **any channel** by users with the appropriate role, not just the console channel.
* 📈 **Dynamic Channel Topic Updater:**
* **New:** The plugin can now automatically update a Discord channel's topic to display the server's live player count (`Online: {online}/{max}`).
* This feature is fully configurable, including the channel ID, update interval, and message format.
* 🛡️ **Enhanced Stability & User Experience:**
* **Fixed:** A critical bug causing a `zip file closed` error during plugin reloads has been resolved. The `/synccord reload` command is now stable.
* **Fixed:** An issue causing duplicate chat messages after a reload has been fixed.
* **Improved:** The `/discord link` command now checks if an account is already linked and provides a clear, configurable message to the user.
* **Improved:** All account linking messages (for both Minecraft and Discord) are now fully customizable in the `config.yml`.
* **Improved:** The plugin now provides detailed diagnostic messages in the server console if a configured channel ID is invalid, making setup and debugging much easier.
alpha
dev-1.0
1.024 окт. 2025 г.40Minecraft: 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.10, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9paper, spigot
Что нового
# A Hungarian made simple, but hopefully better DiscordSRV.
# [DEV Discord server](https://discord.gg/an23S8nnGE)
# Meet SyncCord
## Its a Hungarian made simple easy plugin witch allows you to connect your Discord Server with the Minecraft server 
# Usage:
## Commands:
### - Minecraft command: /discord link - It gives you a 6 number code to connect dicord with minecraft
### - Discord command: ?dclink 6 number code it give you at /discord link command.
### - Minecraft command: /discord unlink - Unlinks the connection with discord
### - Discord command: ?dcunlink Unlinks the connection with minecraft
### - Minecraft command: /synccord reload - Reloads the config.yml file
> ### Permission to /synccore reload: synccore.reload
# Default config.yml
```
# SyncCord - Minecraft-Discord Integration Plugin
# Created by KAGA
# ----------------------------------
# BOT BEÁLLÍTÁSOK
# ----------------------------------
BotToken: ""
BotStatus:
enabled: true
activityType: "WATCHING"
activityText: "a szervert"
# ----------------------------------
# CSATORNA BEÁLLÍTÁSOK
# ----------------------------------
Channels:
chat: ""
console: ""
# ----------------------------------
# FIÓKÖSSZEKAPCSOLÁS
# ----------------------------------
AccountLinking:
database: "yaml"
codeValidityMinutes: 5
codeLength: 6
deleteCommandAfterUse: true
# ----------------------------------
# RANG SZINKRONIZÁLÁS
# ----------------------------------
RoleSync:
enabled: true
roles:
default: ""
# ----------------------------------
# KONZOL RELAY
# ----------------------------------
ConsoleRelay:
enabled: true
prefix: "?"
levels: ["INFO", "WARN", "ERROR"]
commands:
enabled: true
requireLinkedAccount: true
allowedRoles:
- "SZERVER_ADMIN_SZEREPKÖR_ID"
# Azok a parancsok, amik után a plugin külön üzenetet küld a végrehajtóról.
moderationCommands: ["kick", "ban", "mute", "tempban", "warn"]
# ==========================================================================
# ÜZENETFORMÁTUMOK
# ==========================================================================
MessageFormats:
minecraftToDiscord:
useEmbed: false
plainTextFormat: "**{rank}** {playerName}: {message}"
embed:
color: "#00AAAA"
author: "{playerName} | {rank}"
description: "{message}"
discordToMinecraft: "&9[Discord] &7({topRole}) &b{userNick}&f: &7{message}"
# Ez az üzenet jelenik meg, miután egy moderációs parancs lefutott Discordról.
# Placeholder-ek: {command}, {discordName}
consoleCommandExecuted: "&e[!] A(z) '{command}' parancsot végrehajtotta: &c{discordName} (Discord)"
serverStart:
description: "✅ A szerver elindult!"
color: "#00FF00"
serverStop:
description: "❌ A szerver leállt!"
color: "#FF0000"
playerJoin:
description: "➡️ {playerName} csatlakozott a szerverhez."
color: "#FFFF00"
playerLeave:
description: "⬅️ {playerName} elhagyta a szervert."
color: "#FFA500"
```