DiscordLink 1.2

A Discord companion plugin for your server

  1. Riku32
    Native Minecraft Version:
    1.16
    Tested Minecraft Versions:
    • 1.16
    • 1.17
    Source Code:
    https://github.com/Riku32/DiscordLink
    [​IMG]

    DiscordLink
    A discord to Minecraft interface. Designed primarily for SMP servers. This plugin may interfere with other chat plugins if you have the chat features enabled. This plugin aims to connect your Minecraft and Discord server in a sleek and modern way. Configuration is extremely easy, and you can disable or modify and features you desire.

    Features
    • Linking accounts
    • Cross chat
    • Ban control/sync

    Requirements

    • Spigot 1.16 (minimum)
    • Java 1.11 (minimum)

    Config

    Code (YAML):
    discord:
      token
    :
      server_id
    :
      owner_id
    :

    link
    :
     # Requires link to play on the server
      required
    : false

      # Allow unlinking your minecraft account from discord
      allow_unlink
    : true

    # Should chat be controlled by this plugin
    chat
    :
      enabled
    : true

      # This format will only show in game depending on where the message came from
      # Unlinked format only required if link.required is set to false
      #
      # Variables:
      #   %username% - Minecraft username
      #   %message% - Message contents
      #
      # Linked Only Variables:
      #   %color% - Top role color
      #   %tag% - Discord Tag
      format
    :
       # Message formats for player messages
        player
    :
         # Should chat format should be applied on regular messages?
          enabled
    : true

          linked
    : '&7[&2✎&7] %color%%username% &7(&o%tag%&7) » &r%message%'
          unlinked
    : '&7[&2✎&7] &7%username% » &r%message%'

        # Message formats for discord messages
        # This will never show if CrossChat is disabled
        # This does not have an enabled field as there is nothing else to process chat messages from discord
        discord
    :
          linked
    : '&7[&9✎&7] %color%%username% &7(&o%tag%&7) » &r%message%'
          unlinked
    : '&7[&9✎&7] %color%%tag%&7 » &r%message%'

      # This will allow minecraft and discord chats/events to communicate with each other in a single channel
      crosschat
    :
        enabled
    : true

        # This channel ID must be in the specified server_id server
        channel_id
    :

        # This webhook CAN be a different channel than channel_id but SHOULDN'T
        # If it is different messages will not be relayed in the same place
        webhook
    :

    # Hijack and control player status messages
    # If enabled these message wont be sent until the user has linked their account
    # Unlinked format only required if link.required is set to false
    # tag and color variables are only valid in linked messages
    #
    # Variables:
    #   %username% - Minecraft username
    #
    # Linked Only Variables:
    #   %color% - Top role color
    #   %tag% - Discord Tag
    status_messages
    :
      enabled
    : true
      join
    :
        linked
    : '%color%%username% &7(&o%tag%&7) joined the game'
        unlinked
    : '&7%username% joined the game'

      quit
    :
        linked
    : '%color%%username% &7(&o%tag%&7) left the game'
        unlinked
    : '&7%username% left the game'

      # Variables:
      #   %cause% - Cause of death in game
      death
    :
        linked
    : '%color%%username% &7(&o%tag%&7) %cause%'
        unlinked
    : '&7%username% %cause%'

    kick_messages
    :
     # Only happens if player is linked, link.allow_unlink is false, and player leaves the guild
      not_in_guild
    : |-
        &cYou must be a member of the discord server to play on this Minecraft server
        &cYour Minecraft account is already linked to &e%tag%
        &7&odiscord.gg/invite

      # When user is linked and gets banned from discord
      # In the future this will be an actual ban listener and not a kick and can be disabled
      banned
    : |-
        &cYou have been banned from the discord server
        &7&odiscord.gg/invite

      # If the account was ToS banned or deleted
      # This assumes that you did something bad and shouldn't be able to play
      # In the future this will be an actual listener and not a kick and can be disabled
      tos
    : |-
        &cYour account is ToS banned or deleted
        &7&odiscord.gg/invite

    Install
    • Install the plugin to the server and restart
    • A configuration file should be created
    • Get your Discord user ID and put it at "discord.owner_id"
    • Get your Discord server ID and put it at "discord.server_id"
    • Go to the Discord Developer Portal
    • Click "New application" in the corner
    • Go to your application and click the bot section
    • Click "Add Bot"
    • Click "Copy" under the token section, paste this value at "discord.token" in the config.yml
    • Scroll down to "Privileged Gateway Intents" and click enable on "Server members intent"
    • Go to OAuth2 tab and checkmark "bot" and "application.commands" under Scopes
    • Copy the link at the bottom and open it in a new tab
    • Invite it to your server/guild
    • Read the rest of the config.yml to enable and disable various features
    • Restart the server to apply the new config.yml

    Screenshots
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    [​IMG]

Recent Updates

  1. Hotfix 1.2
  2. Hotfix 1.1

Recent Reviews

  1. noprompam
    noprompam
    3/5,
    Version: 1.2
    [23:20:15] [Server thread/ERROR]: Error occurred while enabling DiscordLink v1.2 (Is it up to date?)
    java.lang.UnsupportedClassVersionError: com/freya02/botcommands/PermissionProvider has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_291]
    at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_291]
    at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:1.8.0_291]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:201) ~[patched_1.16.5.jar:git-Paper-778]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_291]
    at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:119) ~[patched_1.16.5.jar:git-Paper-778]
    at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:114) ~[patched_1.16.5.jar:git-Paper-778]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_291]
    at com.github.riku32.discordlink.DiscordLink.onEnable(DiscordLink.java:65) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.5.jar:git-Paper-778]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[patched_1.16.5.jar:git-Paper-778]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[patched_1.16.5.jar:git-Paper-778]
    at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:518) ~[patched_1.16.5.jar:git-Paper-778]
    at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:432) ~[patched_1.16.5.jar:git-Paper-778]
    at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:270) ~[patched_1.16.5.jar:git-Paper-778]
    at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1069) ~[patched_1.16.5.jar:git-Paper-778]
    at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-778]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_291]
    1. Riku32
      Author's Response
      Are you using Java 11? This plugin needs Java 11 to run
  2. coquette
    coquette
    5/5,
    Version: 1.0
    developer was very kind and helpful! this works very well and the webhook system is super cool! much more modern and clean than competitors
  3. DELTAQUAKE
    DELTAQUAKE
    5/5,
    Version: 1.0
    Very nice plugin for what our Discord server needs. Was looking for something like this but DiscordSRV didn't have the few simple things we needed. Also looks way more modern and offers easy customization.