Home›Java›Mods›NexDiscordLink - Advanced Discord Link Plugin
NexDiscordLink - Advanced Discord Link Plugin
ModsJava

NexDiscordLink - Advanced Discord Link Plugin

Java mod listed for Minecraft 1.16–1.21. Download on the author's site.

⬇ Download on Spigot

NexDiscordLink
Secure Minecraft ↔ Discord account linking, synchronization, 2FA, rewards, chat and network automation.

Spigot/Paper 1.16.5+ • Java 17+ • English & Turkish

Download latest release • Source & documentation • Türkçe dokümantasyon
​

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​
More than a chat bridge
NexDiscordLink connects Discord to the complete Minecraft account lifecycle. It combines secure account linking, authentication, role and nickname synchronization, configurable rewards, rich event messages, auditing and proxy-network support in one production-oriented plugin.

Account Linking & Security

Synchronization & Rewards

Discord Messages & Chat

Automatic Config Doctor & Lang Doctor
Every startup and plugin reload checks the active configuration and language files automatically—no doctor command is needed.

Storage & Network Support

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​
Commands
Minecraft
Code (Text):

/link        /eşle /hesapeşle /esle /hesapesle
/unlink      /eşlemesil /eslemesil /hesapayır /hesapayir
/linkstatus  /eşledurum /esledurum /hesabım /hesabim
/linkreward  /eşleödül /esleodul /ödül /odul
/2fa setup|login|disable
/nexdiscord reload|status|sync|resetreward
 
Discord
Code (Text):

/link or /eşle
/profile or /hesap
/unlink or /eşlemeyi-kaldır
/help or /yardım
/setup-link
/console (optional; disabled by default)
 
Requirements

Quick Installation
  1. Download the shaded fat JAR from GitHub Releases.
  2. Place it in the server's plugins folder and start once.
  3. Stop the server and configure the bot token, channels and role IDs in plugins/NexDiscordLink/config.yml.
  4. Enable the required Discord intents and permissions.
  5. Start the server, review the automatic Doctor report and run /nexdiscord status.
  6. If modal linking is enabled, run /setup-link on Discord.

Upgrade safely
Stop the server completely and back up the old JAR, configuration, database and secret.key before replacing the plugin. Do not use a global /reload for JAR updates.

Security notice
Never publish a live bot token, database password, webhook URL, secret.key or production configuration. Losing the encryption key makes existing encrypted TOTP secrets unreadable.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​
Configuration & Language Files
The following files are the bundled defaults for NexDiscordLink 1.0.5. Expand a section to view or copy it. Never paste production tokens, passwords, webhooks or secret keys into public posts.

Spoiler: config.yml
Code (Text):
# _____                                             _____
#( ___ )                                           ( ___ )
# |   |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|   |
# |   |                      _          __          |   |
# |   |    _______  ______  (_)  ______/ /__ _   __ |   |
# |   |   / ___/ / / / __ \/ / |/_/ __  / _ \ | / / |   |
# |   |  / /  / /_/ / / / / />  </ /_/ /  __/ |/ /  |   |
# |   | /_/   \__, /_/ /_/_/_/|_|\__,_/\___/|___/   |   |
# |   |      /____/                                 |   |
# |___|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|___|
#(_____)                                           (_____)

# NexDiscordLink Configuration File

bot-token: "YOUR_BOT_TOKEN_HERE" # Replace with your Discord Bot Token

settings:
  language: "en" # Options: en, tr
  update-checker: true

proxy:
  enabled: false
  server-id: "survival-1" # Must be unique for each backend
  bot-enabled: true # Enable on one backend; shared MySQL codes work across all backends
  link-check-interval-ticks: 40 # Worker notification/reward polling interval (2 seconds)

database-settings:
  type: "sqlite" # Options: sqlite, mysql
  host: "localhost"
  port: 3306
  database: "nexdiscordlink"
  username: "root"
  password: ""

channels:
  log-channel-id: "123456789012345678"
  console-channel-id: "" # Optional fallback when console-webhook-url is empty
  console-webhook-url: "" # Optional: Use Webhook for console logs (Faster & Works during startup)

audit-log:
  enabled: true
  channel-id: "" # Empty uses channels.log-channel-id
  console: false

rewards:
  salary-interval: 60 # In minutes
  commands:
    - "eco give {player} 1000"
  boost-commands:
    - "eco give {player} 5000"
    - "give {player} diamond 5"
  link-rewards:
    enabled: true
    limit: 1 # How many times a player can receive link rewards (0 = unlimited)
    commands:
      - "eco give {player} 2000"
      - "give {player} golden_apple 2"
    first-link-commands:
      - "experience add {player} 250 points"
    relink-commands: []
    discord-role-commands:
      "YOUR_SUPPORTER_ROLE_ID":
        - "eco give {player} 1000"
    preview:
      - "&8&m--------------------------------"
      - "&b&lDiscord Eşleme Ödülleri"
      - "&7• &f2.000 oyun parası"
      - "&7• &f2 altın elma"
      - "&7• &fİlk eşlemede 250 XP"
      - "&8&m--------------------------------"

link-system:
  type: "BOTH" # Options: DM, MODAL, BOTH
  account-policy: "ONE_TO_ONE" # One Minecraft account per Discord account and vice versa
  code-length: 6
  code-expiry-minutes: 5
  modal:
    channel-id: "YOUR_LINK_CHANNEL_ID"
    button-label: "Link Account"
    button-style: "PRIMARY" # PRIMARY (blue), SECONDARY (grey), SUCCESS (green), DANGER (red)
    modal-title: "Link Your Account"
    input-label: "Link Code"
    input-placeholder: "Enter your link code"

unlink-security:
  require-confirmation: true # Uses 2FA when enabled, otherwise sends a Discord DM approval

security-settings:
  enabled: true

console-command:
  enabled: false # Enable /console slash command on Discord (DANGEROUS - allows full server access!)
  # Only root commands listed here can be executed. An empty list denies every command.
  whitelist:
    - "say"
    - "list"
    - "tps"

sync:
  nickname:
    enabled: true
    format: "%name%"
  ban:
    enabled: false
  linked-role:
    enabled: true
    role-id: "YOUR_LINKED_ROLE_ID"
  role-sync:
    enabled: true
    direction: "MINECRAFT_TO_DISCORD" # MINECRAFT_TO_DISCORD, DISCORD_TO_MINECRAFT, BIDIRECTIONAL
    interval-minutes: 5
    vault-groups:
      vip: "123456789012345678"
      mvp: "123456789012345678"

chat-bridge:
  enabled: true
  channel-id: "YOUR_CHAT_CHANNEL_ID"
  webhook-url: "" # Optional: If set, uses webhook for Game -> Discord (Better visuals)
  discord-to-game-format: "&8[&bDiscord&8] &f{user}: &7{message}"

# Discord embed and Game -> Discord message customization.
# Empty title/description values use the active language file.
# Colors accept names, #RRGGBB, or "R, G, B". Image URLs must use http/https.
# Supported common placeholders: {player}, {uuid}. Event-specific placeholders are shown below.
discord-messages:
  defaults:
    color: "" # Empty keeps each message's built-in color
    timestamp: true
    author:
      enabled: false
      text: "{player}"
      url: ""
      icon-url: "https://mc-heads.net/avatar/{player}"
    thumbnail:
      enabled: false
      url: "https://mc-heads.net/avatar/{player}"
    image:
      enabled: false
      url: ""
    footer:
      enabled: false
      text: "NexDiscordLink"
      icon-url: ""

  events:
    join:
      enabled: true
      channel-id: "" # Empty uses channels.log-channel-id
      title: ""
      description: "" # {player}, {uuid}
      color: "#2ECC71"
      author:
        enabled: true
      thumbnail:
        enabled: true
    quit:
      enabled: true
      channel-id: ""
      title: ""
      description: "" # {player}, {uuid}
      color: "#E74C3C"
      author:
        enabled: true
      thumbnail:
        enabled: true
    death:
      enabled: true
      channel-id: ""
      title: ""
      description: "" # {player}, {uuid}, {death_message}
      color: "#000000"
      author:
        enabled: true
      thumbnail:
        enabled: true
    advancement:
      enabled: true
      channel-id: ""
      title: ""
      description: "" # {player}, {uuid}, {advancement}
      color: "#F1C40F"
      author:
        enabled: true
      thumbnail:
        enabled: true

  link-panel:
    enabled: true
    channel-id: "" # Empty uses link-system.modal.channel-id
    title: ""
    description: ""
    button-label: "" # Empty uses link-system.modal.button-label
    button-style: "" # Empty uses link-system.modal.button-style
    color: "#2ECC71"
    timestamp: false
    footer:
      enabled: true
      text: "" # Empty uses discord.modal.embed.footer from the active language file
      icon-url: ""

  security-login:
    title: ""
    description: "" # {player}, {uuid}, {ip}
    button-label: ""
    button-style: "SUCCESS" # PRIMARY, SECONDARY, SUCCESS, DANGER
    color: "#E74C3C"
    author:
      enabled: true
    thumbnail:
      enabled: true

  unlink-confirmation:
    content: "" # {player}, {uuid}; empty uses the active language file
    button-label: ""
    button-style: "DANGER" # PRIMARY, SECONDARY, SUCCESS, DANGER

  profile:
    title: ""
    color: "#00FFFF"
    field-player: ""
    field-uuid: ""
    field-status: ""
    author:
      enabled: true
    thumbnail:
      enabled: true

  audit:
    enabled: true
    channel-id: "" # Empty uses audit-log.channel-id, then channels.log-channel-id
    title: ""
    field-event: ""
    field-actor: ""
    field-detail: ""
    event-colors:
      account_linked: "#2ECC71"
      account_unlinked: "#F1C40F"
      two_factor_enabled: "#3498DB"
      two_factor_disabled: "#E67E22"
      two_factor_verified: "#2ECC71"
      verification_failed: "#E74C3C"
      ip_challenge: "#E74C3C"
      ip_verified: "#2ECC71"
      role_sync: "#9B59B6"
      admin_action: "#34495E"

  chat:
    minecraft-to-discord-format: "**{player}**: {message}"
    webhook-username: "{player}"
    webhook-avatar-url: "https://mc-heads.net/avatar/{player}"

Spoiler: messages_en.yml — English
Code (Text):
prefix: "&8[&bNexDiscordLink&8] &7"
console:
  enabled: "Plugin enabled successfully!"
  disabled: "Plugin disabled successfully!"
  loading_config: "Loading configuration..."
  loading_lang: "Loading language files..."
  database_connected: "Database connected successfully."
  database_error: "Failed to connect to database!"
  database_fatal: "Database initialization failed. NexDiscordLink has been disabled to prevent data loss."
  security_storage_fatal: "Sensitive data protection could not be initialized. NexDiscordLink has been disabled."
  bot_starting: "Starting Discord bot..."
  bot_started: "Discord bot started as {bot_name}!"
  bot_error: "Failed to start Discord bot: {error}"
  bot_skipped_proxy: "Discord bot is disabled on this proxy node; shared MySQL link codes will be used."
  startup_config_loaded: "&a [✔] &fConfig Loaded"
  startup_lang_loaded: "&a [✔] &fLanguage Loaded"
  startup_database_connected: "&a [✔] &fDatabase Connected"
  startup_bot_started: "&a [✔] &fDiscord Bot Started"
  startup_proxy_worker: "&a [✔] &fProxy Worker Node Ready"
  startup_ready: "&e Plugin is ready to use!"

doctor:
  started: "&8[&bNexDiscordLink Doctor&8] &7Automatic config and language checks started."
  severity_error: "&cERROR"
  severity_warning: "&eWARNING"
  finding: "&8[&bDoctor&8] [{severity}&8] &7{message}"
  result_healthy: "&8[&bDoctor&8] &a{name} is healthy."
  result_summary: "&8[&bDoctor&8] &f{name}: &c{errors} error(s)&7, &e{warnings} warning(s)&7."
  file_missing: "The required {file} file is missing."
  yaml_invalid: "{file} contains invalid YAML and could not be inspected."
  bundled_resource_missing: "The bundled {file} resource could not be read."
  config_missing_keys: "The user config is missing {count} setting(s); bundled defaults are active. Examples: {examples}"
  config_unknown_keys: "The user config contains {count} unknown setting(s), possibly typos. Examples: {examples}"
  config_wrong_type: "{path} must be {expected}, but is {actual}."
  bot_token_missing: "bot-token is empty or still uses the example value. Its value was not printed."
  invalid_enum: "{path} has an unsupported option."
  invalid_number: "{path} is not a number in the supported range."
  invalid_discord_id: "{path} is not a valid 17-20 digit Discord ID."
  example_discord_id: "{path} still uses an example Discord ID."
  invalid_reward_role_id: "A key under rewards.link-rewards.discord-role-commands is not a configured Discord role ID."
  invalid_url: "{path} is not a valid HTTP/HTTPS URL. Its value was not printed."
  invalid_color: "{path} is not a supported color name, HEX, or RGB value."
  proxy_requires_mysql: "proxy.enabled requires database-settings.type: mysql."
  required_setting_empty: "{path} is required for the selected database mode."
  mysql_password_empty: "The MySQL password is empty. Its value was not printed."
  chat_destination_missing: "chat-bridge is enabled but neither channel-id nor webhook-url is configured."
  console_whitelist_empty: "The Discord console command is enabled with an empty whitelist, so every command will be denied."
  language_file_missing: "The selected language file {file} is missing; runtime fallback may hide this problem."
  language_yaml_invalid: "The selected language file {file} contains invalid YAML."
  fallback_file_missing: "The English fallback file {file} is missing."
  fallback_yaml_invalid: "The English fallback file {file} contains invalid YAML."
  language_missing_keys: "The language file is missing {count} key(s); bundled fallback text is active. Examples: {examples}"
  language_unknown_keys: "The language file contains {count} unknown key(s), possibly typos. Examples: {examples}"
  language_wrong_type: "Language key {path} has the wrong value type."
  language_missing_placeholders: "Language key {path} is missing required placeholder(s): {placeholders}"
  language_extra_placeholders: "Language key {path} has unexpected placeholder(s): {placeholders}"

security:
  player_not_online: "Player is not online!"
  frozen_message: "&cYour IP has changed! Please verify your login via Discord DM."
  dm_verify_title: "Login Verification"
  dm_verify_desc: "A login attempt was made from IP: {ip}. Click the button below to verify."
  dm_verify_button: "Verify Login"
  verified_success: "&aLogin verified! You can now play."
  verified_dm: "You have successfully verified your login."
  verification_invalid: "This verification request is invalid or is no longer active."
  verification_expired: "Login verification expired. Reconnect to request a new verification."
  verification_wrong_user: "This verification request belongs to a different Discord account."
  verification_ip_changed: "The player's IP changed again. Reconnect to request a new verification."
  verification_save_failed: "The verified IP could not be saved. Please try again."
  discord_unavailable: "&cDiscord verification could not be delivered. Please try again later."
  kick_not_verified: "&cYou must verify your login on Discord!"
  2fa_required: "&cTwo-Factor Authentication is enabled. Please use /2fa login <code> to verify."
  2fa_already_setup: "&cYou already have 2FA enabled."
  2fa_setup_instructions: "&aScan the QR code or use this secret key: &b{secret}"
  2fa_map_given: "&aA map with the QR code has been added to your inventory."
  2fa_setup_success: "&a2FA setup successful! Your account is now secured."
  2fa_verified: "&a2FA verification successful. Welcome back!"
  2fa_setup_expired: "&cThe 2FA setup expired. Run /2fa setup again."
  2fa_rate_limited: "&cToo many invalid 2FA attempts. Wait one minute and try again."
  2fa_storage_error: "&cThe 2FA setting could not be saved. Please contact an administrator."
  2fa_not_setup: "&cYou do not have 2FA enabled."
  2fa_disabled: "&a2FA has been disabled."
  2fa_disable_usage: "&cUsage: /2fa disable <code>"
  invalid_code: "&cInvalid code. Please try again."
  unlink_dm_request: "Confirm below to remove your Minecraft account link. This request is valid for 2 minutes."
  unlink_dm_button: "Remove Account Link"
  unlink_dm_failed: "&cDiscord approval could not be delivered. The link was kept for your security."
  unlink_confirmation_invalid: "This unlink request is invalid, expired, or belongs to another account."
  unlink_confirmed: "Your Minecraft account link was securely removed."

rewards:
  salary_received: "&aYou received your salary for being linked!"
  boost_received: "&d&lBOOST! &fThank you for boosting! You received a reward."
  link_reward_received: "&aYou received a reward for linking your account!"
  link_reward_limit_reached: "&cYou have already claimed the maximum number of link rewards."

sync:
  ban_reason: "Banned from Minecraft Server: {reason}"
  kick_reason: "Kicked from Minecraft Server: {reason}"

events:
  join_title: "Player Joined"
  join_desc: "**{player}** has joined the server."
  quit_title: "Player Left"
  quit_desc: "**{player}** has left the server."
  death_title: "Player Died"
  death_desc: "{death_message}"
  advancement_title: "Advancement Made"
  advancement_desc: "**{player}** has made the advancement **{advancement}**."

audit:
  title: "NexDiscordLink Audit Log"
  field_event: "Event"
  field_actor: "Account/Player"
  field_detail: "Detail"
  event:
    account_linked: "Account linked"
    account_unlinked: "Account unlinked"
    two_factor_enabled: "2FA enabled"
    two_factor_disabled: "2FA disabled"
    two_factor_verified: "2FA verified"
    verification_failed: "Verification failed"
    ip_challenge: "New network verification requested"
    ip_verified: "Network verified"
    role_sync: "Role synchronized"
    admin_action: "Administrator action"

commands:
  player_only: "&cOnly players can use this command."
  help: "&bNexDiscordLink &7v{version} - Use &b/nexdiscord reload &7to reload config."
  link_usage: "Usage: /link"
  link_already_linked: "&cYou are already linked!"
  link_code_failed: "&cA link code could not be generated. Please try again."
  link_code_generated_dm: "&aYour link code is: &b{code}&a. Send this code to the bot via DM."
  link_code_generated_modal: "&aYour link code is: &b{code}&a. Enter it in the Discord link modal."
  link_code_generated_both: "&aYour link code is: &b{code}&a. Send it to the bot via DM or enter it in the Discord link modal."
  unlink_success: "&aSuccessfully unlinked your account."
  unlink_failed: "&cThe account link could not be removed. Please try again."
  unlink_2fa_required: "&eUse &b/unlink <2FA code> &eto remove your account link."
  unlink_confirmation_sent: "&eAn unlink approval was sent to your linked Discord account."
  unlink_not_linked: "&cYou are not linked!"
  reload_success: "&aConfiguration reloaded."
  reload_started: "&eReloading configuration, database, reward scheduler, and Discord bot..."
  reload_failed: "&cReload failed. NexDiscordLink has been disabled to prevent an inconsistent state."
  no_permission: "&cYou do not have permission."
  link_success_player: "&aSuccessfully linked to Discord account: &b{discord}"
  2fa_usage: "&cUsage: /2fa <setup|login|disable> (Turkish: <kur|giris|kapat>)"
  reset_reward_success: "&aSuccessfully reset link reward count for &b{player}&a."
  reset_reward_usage: "&cUsage: /nexdiscord resetreward <player|all>"
  reset_reward_all_success: "&aSuccessfully reset link reward count for &ball players&a."
  player_not_found: "&cPlayer not found."
  role_sync_all: "&aRole synchronization started for {count} online players."
  role_sync_player: "&aRole synchronization started for {player}."
  reward_preview_header: "&bLink reward status: &7Claimed &f{claimed}&7, remaining &f{remaining}"
  status_unknown: "Unknown"
  status_enabled: "&aEnabled"
  status_disabled: "&cDisabled"
  status_ok: "&aReady"
  status_unavailable: "&cUnavailable"
  status_standalone: "Standalone"
  account_status:
    - "&8&m--------------------------------"
    - "&b&lDiscord Account Status"
    - "&7Discord: &f{discord}"
    - "&7Linked at: &f{linked_at}"
    - "&72FA: {two_factor}"
    - "&8&m--------------------------------"
  admin_status:
    - "&8&m--------------------------------"
    - "&b&lNexDiscordLink System Status"
    - "&7Version: &f{version}"
    - "&7Database: &f{database_type} &8- {database_status}"
    - "&7Discord bot: {bot_status} &8(&f{guild_count} guilds&8)"
    - "&7Sensitive data protection: {security_status}"
    - "&7Runtime mode: &f{proxy_mode}"
    - "&8&m--------------------------------"

update:
  notification:
    - "&8&m--------------------------------------------------"
    - "&bNexDiscordLink &7update available!"
    - "&7Current Version: &c{current_version}"
    - "&7New Version: &a{new_version}"
    - "&7Download: &b{link}"
    - "&8&m--------------------------------------------------"

link:
  success: "Successfully linked to **{player}**!"
  invalid_code: "Invalid or expired code."
  already_linked: "You are already linked to a Minecraft account."
  minecraft_already_linked: "That Minecraft account is already linked. Generate a new code if needed."
  failed: "The account link could not be saved. Please try again."
  code_in_use: "That code is already being verified. Please wait a moment."
  rate_limited: "Too many invalid attempts. Wait one minute and try again."

discord:
  modal:
    disabled: "Modal linking is disabled on this server."
    embed:
      title: "Link Your Account"
      description: "Click the button below to link your Minecraft account with Discord."
      footer: "NexDiscordLink System"
    setup_sent: "Link message sent!"
    success: "Successfully linked!"
    fail: "Linking failed."
  command:
    no_dm: "This command cannot be used in DMs."
    link:
      description: "Link your Minecraft account with a code"
      option: "Link code generated on the Minecraft server"
      missing_code: "You must provide a link code."
    unlink:
      description: "Remove your Minecraft account link"
      success: "Your Minecraft account link has been removed."
      failed: "The Minecraft account link could not be removed. Please try again."
    help:
      description: "Show NexDiscordLink commands"
      content: "**NexDiscordLink**\n`/link code:<code>` — link your account\n`/profile` — show the linked profile\n`/unlink` — remove the link\n`/help` — show this message"
    console:
      disabled: "Console command is disabled in config."
      invalid: "That command is not valid."
      not_allowed: "That command is not in the configured whitelist."
      success: "Command executed: `/{command}`"
      fail: "Failed to execute command: `/{command}`"
    profile:
      description: "View your linked profile"
      not_linked: "You are not linked to any Minecraft account!"
      embed:
        title: "Player Profile"
        field_player: "Player"
        field_uuid: "UUID"
        field_status: "Status"
        status_online: "Online"
        status_offline: "Offline"

Spoiler: messages_tr.yml — Türkçe
Code (Text):
prefix: "&8[&bNexDiscordLink&8] &7"
console:
  enabled: "Eklenti başarıyla etkinleştirildi!"
  disabled: "Eklenti başarıyla devre dışı bırakıldı!"
  loading_config: "Yapılandırma yükleniyor..."
  loading_lang: "Dil dosyaları yükleniyor..."
  database_connected: "Veritabanı bağlantısı başarılı."
  database_error: "Veritabanına bağlanılamadı!"
  database_fatal: "Veritabanı başlatılamadı. Veri kaybını önlemek için NexDiscordLink devre dışı bırakıldı."
  security_storage_fatal: "Hassas veri koruması başlatılamadı. NexDiscordLink devre dışı bırakıldı."
  bot_starting: "Discord botu başlatılıyor..."
  bot_started: "Discord botu {bot_name} olarak başlatıldı!"
  bot_error: "Discord botu başlatılamadı: {error}"
  bot_skipped_proxy: "Bu proxy node'unda Discord botu devre dışı; ortak MySQL eşleme kodları kullanılacak."
  startup_config_loaded: "&a [✔] &fYapılandırma Yüklendi"
  startup_lang_loaded: "&a [✔] &fDil Dosyaları Yüklendi"
  startup_database_connected: "&a [✔] &fVeritabanı Bağlandı"
  startup_bot_started: "&a [✔] &fDiscord Botu Başlatıldı"
  startup_proxy_worker: "&a [✔] &fProxy Çalışan Node'u Hazır"
  startup_ready: "&e Eklenti kullanıma hazır!"

doctor:
  started: "&8[&bNexDiscordLink Doctor&8] &7Otomatik yapılandırma ve dil kontrolleri başladı."
  severity_error: "&cHATA"
  severity_warning: "&eUYARI"
  finding: "&8[&bDoctor&8] [{severity}&8] &7{message}"
  result_healthy: "&8[&bDoctor&8] &a{name} sağlıklı."
  result_summary: "&8[&bDoctor&8] &f{name}: &c{errors} hata&7, &e{warnings} uyarı&7."
  file_missing: "Gerekli {file} dosyası bulunamadı."
  yaml_invalid: "{file} geçersiz YAML içerdiği için incelenemedi."
  bundled_resource_missing: "Eklenti içindeki {file} kaynağı okunamadı."
  config_missing_keys: "Kullanıcı yapılandırmasında {count} ayar eksik; eklenti içi varsayılanlar kullanılıyor. Örnekler: {examples}"
  config_unknown_keys: "Kullanıcı yapılandırmasında yazım hatası olabilecek {count} bilinmeyen ayar var. Örnekler: {examples}"
  config_wrong_type: "{path} değeri {expected} türünde olmalı, mevcut tür: {actual}."
  bot_token_missing: "bot-token boş veya hâlâ örnek değeri kullanıyor. Değer güvenlik için yazdırılmadı."
  invalid_enum: "{path} desteklenmeyen bir seçenek içeriyor."
  invalid_number: "{path} desteklenen aralıkta bir sayı değil."
  invalid_discord_id: "{path} geçerli bir 17-20 haneli Discord kimliği değil."
  example_discord_id: "{path} hâlâ örnek Discord kimliğini kullanıyor."
  invalid_reward_role_id: "rewards.link-rewards.discord-role-commands altındaki bir anahtar yapılandırılmış Discord rol kimliği değil."
  invalid_url: "{path} geçerli bir HTTP/HTTPS adresi değil. Değer güvenlik için yazdırılmadı."
  invalid_color: "{path} desteklenen bir renk adı, HEX veya RGB değeri değil."
  proxy_requires_mysql: "proxy.enabled ayarı için database-settings.type: mysql kullanılmalıdır."
  required_setting_empty: "Seçilen veritabanı modu için {path} zorunludur."
  mysql_password_empty: "MySQL parolası boş. Değer güvenlik için yazdırılmadı."
  chat_destination_missing: "chat-bridge açık ancak channel-id veya webhook-url yapılandırılmamış."
  console_whitelist_empty: "Discord konsol komutu boş izin listesiyle açık; bütün komutlar reddedilecektir."
  language_file_missing: "Seçili {file} dil dosyası bulunamadı; çalışma zamanı geri dönüşü bu sorunu gizleyebilir."
  language_yaml_invalid: "Seçili {file} dil dosyasında geçersiz YAML var."
  fallback_file_missing: "İngilizce geri dönüş dosyası {file} bulunamadı."
  fallback_yaml_invalid: "İngilizce geri dönüş dosyası {file} geçersiz YAML içeriyor."
  language_missing_keys: "Dil dosyasında {count} anahtar eksik; eklenti içi geri dönüş metinleri kullanılıyor. Örnekler: {examples}"
  language_unknown_keys: "Dil dosyasında yazım hatası olabilecek {count} bilinmeyen anahtar var. Örnekler: {examples}"
  language_wrong_type: "{path} dil anahtarı yanlış değer türünde."
  language_missing_placeholders: "{path} dil anahtarında zorunlu yer tutucular eksik: {placeholders}"
  language_extra_placeholders: "{path} dil anahtarında beklenmeyen yer tutucular var: {placeholders}"

security:
  player_not_online: "Oyuncu çevrimiçi değil!"
  frozen_message: "&cIP adresiniz değişti! Lütfen Discord DM üzerinden girişinizi doğrulayın."
  dm_verify_title: "Giriş Doğrulama"
  dm_verify_desc: "Şu IP adresinden bir giriş denemesi yapıldı: {ip}. Doğrulamak için aşağıdaki butona tıklayın."
  dm_verify_button: "Girişi Doğrula"
  verified_success: "&aGiriş doğrulandı! Artık oynayabilirsiniz."
  verified_dm: "Girişinizi başarıyla doğruladınız."
  verification_invalid: "Bu doğrulama isteği geçersiz veya artık etkin değil."
  verification_expired: "Giriş doğrulamasının süresi doldu. Yeni doğrulama almak için tekrar bağlanın."
  verification_wrong_user: "Bu doğrulama isteği farklı bir Discord hesabına ait."
  verification_ip_changed: "Oyuncunun IP adresi tekrar değişti. Yeni doğrulama almak için tekrar bağlanın."
  verification_save_failed: "Doğrulanan IP kaydedilemedi. Lütfen tekrar deneyin."
  discord_unavailable: "&cDiscord doğrulaması gönderilemedi. Lütfen daha sonra tekrar deneyin."
  kick_not_verified: "&cDiscord üzerinden girişinizi doğrulamanız gerekiyor!"
  2fa_required: "&cİki Aşamalı Doğrulama etkin. Lütfen /2fa login <kod> komutunu kullanarak doğrulayın."
  2fa_already_setup: "&cZaten 2FA etkinleştirilmiş."
  2fa_setup_instructions: "&aQR kodunu taratın veya bu gizli anahtarı kullanın: &b{secret}"
  2fa_map_given: "&aQR kodunu içeren bir harita envanterinize eklendi."
  2fa_setup_success: "&a2FA kurulumu başarılı! Hesabınız artık güvende."
  2fa_verified: "&a2FA doğrulaması başarılı. Hoş geldiniz!"
  2fa_setup_expired: "&c2FA kurulumunun süresi doldu. /2fa setup komutunu yeniden kullanın."
  2fa_rate_limited: "&cÇok fazla hatalı 2FA denemesi yaptınız. Bir dakika bekleyip tekrar deneyin."
  2fa_storage_error: "&c2FA ayarı kaydedilemedi. Lütfen bir yöneticiyle iletişime geçin."
  2fa_not_setup: "&c2FA etkin değil."
  2fa_disabled: "&a2FA devre dışı bırakıldı."
  2fa_disable_usage: "&cKullanım: /2fa disable <kod>"
  invalid_code: "&cGeçersiz kod. Lütfen tekrar deneyin."
  unlink_dm_request: "Minecraft hesap eşlemeni kaldırmak için aşağıdaki düğmeyle işlemi onayla. Bu istek 2 dakika geçerlidir."
  unlink_dm_button: "Eşlemeyi Kaldır"
  unlink_dm_failed: "&cDiscord onayı gönderilemedi. Eşleme güvenlik amacıyla kaldırılmadı."
  unlink_confirmation_invalid: "Bu eşleme kaldırma isteği geçersiz, süresi dolmuş veya başka bir hesaba ait."
  unlink_confirmed: "Minecraft hesap eşlemen güvenli şekilde kaldırıldı."

rewards:
  salary_received: "&aHesabınız bağlı olduğu için maaşınızı aldınız!"
  boost_received: "&d&lBOOST! &fTakviye yaptığınız için teşekkürler! Ödül kazandınız."
  link_reward_received: "&aHesabınızı bağladığınız için ödül kazandınız!"
  link_reward_limit_reached: "&cBağlantı ödülünü alma sınırına ulaştınız."

sync:
  ban_reason: "Minecraft Sunucusundan Yasaklandı: {reason}"
  kick_reason: "Minecraft Sunucusundan Atıldı: {reason}"

events:
  join_title: "Oyuncu Katıldı"
  join_desc: "**{player}** sunucuya katıldı."
  quit_title: "Oyuncu Ayrıldı"
  quit_desc: "**{player}** sunucudan ayrıldı."
  death_title: "Oyuncu Öldü"
  death_desc: "{death_message}"
  advancement_title: "Başarım Kazanıldı"
  advancement_desc: "**{player}** şu başarımı kazandı: **{advancement}**."

audit:
  title: "NexDiscordLink Denetim Kaydı"
  field_event: "İşlem"
  field_actor: "Hesap/Oyuncu"
  field_detail: "Ayrıntı"
  event:
    account_linked: "Hesap eşlendi"
    account_unlinked: "Hesap eşlemesi kaldırıldı"
    two_factor_enabled: "2FA etkinleştirildi"
    two_factor_disabled: "2FA kapatıldı"
    two_factor_verified: "2FA doğrulandı"
    verification_failed: "Doğrulama başarısız"
    ip_challenge: "Yeni ağ doğrulaması istendi"
    ip_verified: "Ağ doğrulandı"
    role_sync: "Rol senkronize edildi"
    admin_action: "Yönetici işlemi"

commands:
  player_only: "&cBu komutu sadece oyuncular kullanabilir."
  help: "&bNexDiscordLink &7v{version} - Yapılandırmayı yenilemek için &b/nexdiscord reload &7kullanın."
  link_usage: "Kullanım: /link"
  link_already_linked: "&cZaten hesabınız bağlı!"
  link_code_failed: "&cEşleme kodu oluşturulamadı. Lütfen tekrar deneyin."
  link_code_generated_dm: "&aBağlantı kodunuz: &b{code}&a. Bu kodu bota DM üzerinden gönderin."
  link_code_generated_modal: "&aBağlantı kodunuz: &b{code}&a. Kodu Discord bağlantı penceresine girin."
  link_code_generated_both: "&aBağlantı kodunuz: &b{code}&a. Kodu bota DM üzerinden gönderin veya Discord bağlantı penceresine girin."
  unlink_success: "&aHesap bağlantısı başarıyla kaldırıldı."
  unlink_failed: "&cHesap bağlantısı kaldırılamadı. Lütfen tekrar deneyin."
  unlink_2fa_required: "&eEşlemeyi kaldırmak için &b/eşlemesil <2FA kodu> &ekomutunu kullanın."
  unlink_confirmation_sent: "&eEşleme kaldırma onayı bağlı Discord hesabınıza gönderildi."
  unlink_not_linked: "&cHesabınız bağlı değil!"
  reload_success: "&aYapılandırma yeniden yüklendi."
  reload_started: "&eYapılandırma, veritabanı, ödül zamanlayıcısı ve Discord botu yeniden yükleniyor..."
  reload_failed: "&cYeniden yükleme başarısız oldu. Tutarsız durumu önlemek için NexDiscordLink devre dışı bırakıldı."
  no_permission: "&cBuna yetkiniz yok."
  link_success_player: "&aDiscord hesabına başarıyla bağlandınız: &b{discord}"
  2fa_usage: "&cKullanım: /2fa <kur|giris|kapat> veya <setup|login|disable>"
  reset_reward_success: "&b{player} &aadlı oyuncunun ödül hakkı sıfırlandı."
  reset_reward_usage: "&cKullanım: /nexdiscord resetreward <oyuncu|all>"
  reset_reward_all_success: "&aTüm oyuncuların ödül hakları sıfırlandı."
  player_not_found: "&cOyuncu bulunamadı."
  role_sync_all: "&a{count} çevrimiçi oyuncu için rol senkronizasyonu başlatıldı."
  role_sync_player: "&a{player} için rol senkronizasyonu başlatıldı."
  reward_preview_header: "&bEşleme ödülü durumu: &7Alınan &f{claimed}&7, kalan &f{remaining}"
  status_unknown: "Bilinmiyor"
  status_enabled: "&aEtkin"
  status_disabled: "&cKapalı"
  status_ok: "&aHazır"
  status_unavailable: "&cKullanılamıyor"
  status_standalone: "Tek sunucu"
  account_status:
    - "&8&m--------------------------------"
    - "&b&lDiscord Hesap Durumu"
    - "&7Discord: &f{discord}"
    - "&7Eşleme tarihi: &f{linked_at}"
    - "&72FA: {two_factor}"
    - "&8&m--------------------------------"
  admin_status:
    - "&8&m--------------------------------"
    - "&b&lNexDiscordLink Sistem Durumu"
    - "&7Sürüm: &f{version}"
    - "&7Veritabanı: &f{database_type} &8- {database_status}"
    - "&7Discord botu: {bot_status} &8(&f{guild_count} sunucu&8)"
    - "&7Güvenli veri koruması: {security_status}"
    - "&7Çalışma modu: &f{proxy_mode}"
    - "&8&m--------------------------------"

update:
  notification:
    - "&8&m--------------------------------------------------"
    - "&bNexDiscordLink &7güncellemesi mevcut!"
    - "&7Mevcut Sürüm: &c{current_version}"
    - "&7Yeni Sürüm: &a{new_version}"
    - "&7İndir: &b{link}"
    - "&8&m--------------------------------------------------"

link:
  success: "**{player}** hesabına başarıyla bağlandınız!"
  invalid_code: "Geçersiz veya süresi dolmuş kod."
  already_linked: "Zaten bir Minecraft hesabına bağlısınız."
  minecraft_already_linked: "Bu Minecraft hesabı zaten bağlı. Gerekirse yeni bir kod oluşturun."
  failed: "Hesap bağlantısı kaydedilemedi. Lütfen tekrar deneyin."
  code_in_use: "Bu kod şu anda doğrulanıyor. Lütfen kısa bir süre bekleyin."
  rate_limited: "Çok fazla hatalı deneme yaptınız. Bir dakika bekleyip tekrar deneyin."

discord:
  modal:
    disabled: "Modal ile hesap eşleme bu sunucuda devre dışı."
    embed:
      title: "Hesabını Bağla"
      description: "Minecraft hesabını Discord ile eşleştirmek için aşağıdaki butona tıkla."
      footer: "NexDiscordLink Sistemi"
    setup_sent: "Bağlantı mesajı gönderildi!"
    success: "Başarıyla eşleşti!"
    fail: "Eşleşme başarısız."
  command:
    no_dm: "Bu komut DM üzerinden kullanılamaz."
    link:
      description: "Minecraft hesabını bir kodla eşleştir"
      option: "Minecraft sunucusunda oluşturduğun eşleme kodu"
      missing_code: "Bir eşleme kodu girmelisin."
    unlink:
      description: "Minecraft hesap eşlemesini kaldır"
      success: "Minecraft hesap eşlemen kaldırıldı."
      failed: "Minecraft hesap eşlemesi kaldırılamadı. Lütfen tekrar deneyin."
    help:
      description: "NexDiscordLink komutlarını göster"
      content: "**NexDiscordLink**\n`/eşle kod:<kod>` — hesabını eşleştir\n`/hesap` — eşlenen profili göster\n`/eşlemeyi-kaldır` — eşlemeyi kaldır\n`/yardım` — bu mesajı göster"
    console:
      disabled: "Konsol komutu yapılandırmada devre dışı."
      invalid: "Bu komut geçerli değil."
      not_allowed: "Bu komut yapılandırılmış izin listesinde değil."
      success: "Komut yürütüldü: `/{command}`"
      fail: "Komut yürütülemedi: `/{command}`"
    profile:
      description: "Bağlı profilinizi görüntüleyin"
      not_linked: "Herhangi bir Minecraft hesabına bağlı değilsiniz!"
      embed:
        title: "Oyuncu Profili"
        field_player: "Oyuncu"
        field_uuid: "UUID"
        field_status: "Durum"
        status_online: "Çevrimiçi"
        status_offline: "Çevrimdışı"

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​
Open source under the MIT License
GitHub • Issue tracker • Support Discord

Made with care by Nexuby​
Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

NexDiscordLink - Advanced Discord Link Plugin is a free Minecraft Java mod. Compatible with Minecraft 1.16, 1.17, 1.18, 1.19 and newer. Downloaded 488 times (via Spigot). Download it and open it directly in the game.

Explore more