Introducing Discord Integrator!
- Seamless discord integration with Atlas


Features:
  • Safely Multi-Threaded plugin!
  • C++ Discord Bot using web sockets
  • Now works on as many servers as you have !
  • Adds player that register with the Bot to the "Discord" permission group, also grants them permission "Discord". (automatically created)
  • Seamless management of in-game Discord permission group as players leave/enter the Discord server.
  • Ability to automatically give Discord users roles based on in-game permission groups they have.
  • Ability to send a Discord warning message to players as their in-game structures are under attack. (only warns when they are offline. And in private discord message)
  • Each player can individually set how often a Raid Warning would be sent.
  • Seamless 2-way integration of a Discord text channel with the in-game General channel. With spam protection.
  • !players on your Discord channel will make the bot post list of online players.
  • Colorable tags for users.
  • Ability to color nicknames and chat messages based on group^^
  • Cross server chat that looks the same on all servers, except [server] tag!
  • Fully configurable!

Config File with explanations:
JSON:
{
  "MasterBotGrid": "0.0",                 // The grid to run the actual Discord bot.
  "MySQL": {
    "UseMySQL": true,                     // Must be true until SqLite is implemented.
    "UseMySQL CrossServerChat": true,     // Cross server chat.
    "CrossServerChatFetchInterval": 0.25, //How often the chat is fetched in seconds.
    "HostAdress": "localhost",         
    "Username": "root",
    "Password": "mysql",
    "DataBaseName": "discord_database"    // MYsql database name, plugin will create the tables here.
  },
  "UseAutoPermissionsIngameToDiscord": true, // If true, will automatically set user Discord role, if User has configured permission.
  "AutoPermissionsIngameToDiscord": { // Array that contains the configured auto ingame Permissions to Discord Roles.
    "Admin": [ // Ingame permission group name;
      "834907747594575572" // Discord Role ID;
    ],
    "Vip": [ // You can add multiple ingame permissions.
      "424907728503177216",
      "503177216424907728" // And multiple Discord Roles, as demonstrated here.
    ]
  },
  "DiscordBot": {
    "DiscordBotToken": "PutYourBotTokenHere", // This is your Bot's token. That you get from Discord Developer site.
    "RaidWarningMinInterval": 15, // Minimum amount of minutes between a raid warning sendt to the same user by the Discord Bot.
    "IntegratedChannelID": "0", // The ID of Discord Channel to integrate ingame global chat with. 0 = OFF.
    "IntegratedChannelWebHook": "webhook URL", // Webhook to the channel to post ingame messages too.
    "IngameMsgNameTagFormat": "[Discord]: {}", // The Ingame Name Tag format of Discord->Ingame messages. Default = [Discord]: John Doe
    "IngameMsgMessageFormat": "{}", // Format of Discord -> Ingame messages. Default adds nothing to the message.
    "IngameName_IN_Tribe_Format": "{}  **{}**[{}]:  {}\\n", // The Name Tag format of Ingame->Discord messages. When the speaker is in a tribe. Default = <mapname>   **<name>**[<tribe>]:  <message>
    "IngameName_NO_Tribe_Format": "{}  **{}**:  {}\\n", // The Name no-tribe Tag format of Ingame->Discord messages. When the speaker is NOT a tribe. Default = same as above, without tribe.
    "WebHook_IN_Tribe_Format": "**{}**[{}]:  {}\n",
    "WebHook_NO_Tribe_Format": "**{}**:  {}\n"
  }, // PS: Any newline tag must be escaped \\n and NEVER \n. (except the webhook formatting string.)
  "DiscordBotMessages": { // Messages sent by bot
    "AuthencationMessage": "Thank you for joining our Discord!\\nTo link your discord to the server go in game, and type : /setdiscord {}", // Message sendt by bot after /setdiscord <name> is called by player ingame. Returns random 4digit code.
    "RaidWarning": "RAID WARNING: You're ingame structures are under attack!", // RaidWarning message sent by bot to players that have enabled it.
    "LinkedChannelSpamProtMsg": "<@{}> You must wait {} seconds to write another message." // Spam protection message in integrated channel.
  },
  "Messages": { // Messages sent to player ingame.
    "DiscordActivationCodeSent": "Sent activation code to {}. Please type the activation code received ingame.", // Player used /setdiscord and plugin successfully found the user on the server. Now sending auth code on Discord.
    "DiscordAlreadyLinked": "You are already linked with username:<RichColor Color=\"0, 1, 0, 1\">{}</>", // Player is trying to link same Discord twice.
    "DiscordCannotFindUserName": "<RichColor Color=\"1, 0, 0, 1\">Cannot find username: {}</>, make sure you have joined our server and that the username provided is correct.", // Cannot find the Discord user provived by player on the server.
    "DiscordLinkFail": "<RichColor Color=\"1, 0, 0, 1\">Wrong or expired validation code.</>", // Player wrote wrong auth code.
    "DiscordLinkSuccess": "<RichColor Color=\"0, 1, 0, 1\">Successfully linked your Discord!</>", // Successfully linked their Discord.
    "DiscordLinkUsage": "Link you Discord Account with our server and receive benefits like Raidwarning on Discord! <RichColor Color=\"0, 1, 0, 1\">/setdiscord <username></>",
    "DiscordLinkedWith": "You are linked with: {}",
    "DiscordRaidWarningActive": "Raid Warning activated. Message Interval set to: {} minutes", // User has just activated raid warning.
    "DiscordRaidWarningError": "<RichColor Color=\"1, 0, 0, 1\">ERROR.</> Correct usage:<RichColor Color=\"0, 1, 0, 1\">/raidwarning <minutes></>", // Wrongly formatted /raidwarning command
    "DiscordRaidWarningNotActive": "Raid Warning NOT active. Use /raidwarning <minutes>  to activate!",
    "DiscordRaidWarningNotLinked": "You need to link your Discord with<RichColor Color=\"0, 1, 0, 1\">/setdiscord</> before you can use this command.",
    "DiscordRaidWarningOff": "Raid Warning Turned<RichColor Color=\"1, 0, 0, 1\">Off.</>", // Message when player sets raid warning OFF.
    "DiscordRaidWarningSet": "Raid Warning set to once each {}. minutes", // Message when player sets raid warning.
    "setDiscordWrongUsage": "<RichColor Color=\"1, 0, 0, 1\">Error.</>Usage:<RichColor Color=\"0, 1, 0, 1\">/setdiscord <full username></>" // Wrong usage of /setdiscord command.
  },
  "AtlasGridNames":{ // The Names of your atlas servers used in chat, by grid. Must be unique!
    "0.0": "A1",
    "1.0": "B1",
    "2.0": "C1",
    "3.0": "D1",
    "0.1": "A2",
    "1.1": "B2",
    "2.1": "C2",
    "3.1": "D2",
    "0.2": "A3",
    "1.2": "B3",
    "2.2": "C3",
    "3.2": "D3",
    "0.3": "A4",
    "1.3": "B4",
    "2.3": "C4",
    "3.3": "D4"
  },
  "UseChatColors": true, //Use custom ingame chat colors. (name, tag and message)
  "ChatColorsByGroup": { //defined chat colors by groupname.
    "Admins": {
      "Tag": "[Admin]", //Tag shown before nickname. Add space if you want it.
      "R": 0.5, // Message Red       you can use 255 rgb values directly on all colors, the plugin will calculate ark values.
      "G": 0.8, // Message Green
      "B": 0,   // Message Blue.
      "NameR": 0, // name colors
      "NameG": 1,
      "NameB": 0,
      "TagR": 0, // Tag colors
      "TagG": 1,
      "TagB": 1
    },
    "Discord": {
      "Tag": "[Linked]",
      "R": 0,
      "G": 1,
      "B": 1,
      "NameR": 1,
      "NameG": 0,
      "NameB": 0,
      "TagR": 0,
      "TagG": 1,
      "TagB": 0
    }
  },
  "ChatColorsDefault": { //default name colors
    "PlayerName_R": 0.859,
    "PlayerName_G": 0.804,
    "PlayerName_B": 0.09
  }
}
PS: You can use regular 0-255 RGB values for colors.

Upcomming:
v1.1 - Automatic creation of private Tribe Voice and Text channels on your Discord server. The private text channel will be integrated with in-game Tribe channel. Permissions will be automatically configured to allow only tribe members to see/join the channels.
v1.2 - Optimizations and suggestions will be considered and implemented accordingly.

ETA: Constantly working on it...

How to install and configure:
You will need a Discord application client id and a bot token. You can follow: this guide to get one.​
Do not use the invite link provided by the guide above, instead use the one below for correct permissions:​
Posting this link with your client ID should show this: (Name will be the name you chose)​
Click authorize and the bot should join your server.
You should manually check that bot has administrator permission.
You also need to make sure that your bot's role is above every other role in the discord server role config list.


Now you can start configuring the config.json.

To find Discord Role IDs check this link

To find Discord Channel IDs do this:

On Discord, open your User Settings -> Appearance -> Enable Developer Mode.


Right click on the Discord text channel you want the bot to interact with and press "Copy ID".

You now have the required ID for the config file!


Ingame Commands:
  • /discord - Prints information message.
  • /raidwarning <minutes> - Sets the raidwarning to <minutes> 0 = Off.
  • /setdiscord <username> - Sets player Discord username, no quotes needed.
    • Example: /setdiscord woolypenguin#3974
  • /setdiscord <authkey> - Authorizes player with received code.

Bot Commands:
  • !players - Prints player list on server.

Purchase Info:
After payment join my Discord via "Get Support" button (top right), and send me your hwid. The plugin will print it in console when not authorized.
Please give me at least 1-24 hours to setup hwid info. No new DLL is needed.
This purchase comes with basic support if needed.

Hwid Info:
- Each license represents a physical machine, so 6 ark servers running on one machine would only need 1 licence, Additional licensee's are required when using multiple physical servers.
- Are you moving server host/upgrading hardware and worried about the hwid? Not a problem send me a pm, here or on discord, with the new hwid and I will have it updated. In most cases within the hour, but it can take up to 24 hours depending upon my availability at that moment.

For questions or more information join my Discord via this link: https://discord.gg/fGPevkF
(This is a temporary link, and unless assigned a role, you automatically leave server when you go offline on discord.)
Author
woolypenguin
Downloads
7
Type
Digital product
License duration
1 Years
Renewal price
15.00 EUR
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from woolypenguin

Top