Friday, September 20, 2024 4:25:08 AM
> settings

Customize


Authenticate

> _getting_started.html.erb
<div class="uk-margin-bottom">
  <h1 class="uk-margin-top">Getting Started</h1>
  <p>Welcome to Exile Server Manager, also known as ESM! Please choose one of the following options that best fits you:</p>
  <hr style="border-top: 2px solid #1E354D;">
  <ul uk-accordion>
    <li>
      <a class="uk-accordion-title" href="#">I am a Player</a>
      <div class="uk-accordion-content">
        <p>
          If you haven't already, you will be required to register with ESM to link your Steam Account with your Discord Account. This process will require you to log into both Discord and Steam. You can do this by going to this link: <%= link_to "Register", register_path %>
        </p>
        <p>
          Once you have registered, you can either join a Discord with ESM already invited to it, or you can <%= link_to "invite", invite_path %> ESM to your own Discord.
        </p>
      </div>
    </li>
    <li>
      <a class="uk-accordion-title" href="#">I am a Server Owner</a>
      <div class="uk-accordion-content">
        <p>If you haven't installed <code>@ESM</code> already, please complete the following steps:</p>
        <ol>
          <li>Invite ESM Bot to your Discord server by clicking this <%= link_to "link", invite_path, target: "_blank" %></li>
          <small>
            <strong>Note:</strong> To give Server Owners more power and peace of mind, ESM does not ship with Administrator permissions on Discord.
            <br>
            Make sure to give ESM proper access to channels or it will not be able to function correctly
          </small>
          <li>Read the Welcome Message sent to you on Discord from the Bot.</li>
          <li>Disable Player Mode by replying with <%= command_usage(:mode) %> (replacing <%= argument(:for, only: [:placeholder]) %> with the community ID given to you).</li>
          <li>Register with ESM by either using the <%= command_usage(:register) %> command, or by going to this link: <%= link_to "Register", register_path %></li>
          <li>Install @ESM mod</li>
          <ol class="uk-margin-remove">
            <li>Download the latest version from <%= link_to "here", latest_downloads_path, target: "_blank" %></li>
            <li>Extract <code>@ESM</code> and copy the directory into the root of your Arma 3 Exile server. This directory is the same directory <code>@Exile</code> and <code>@ExileServer</code> is located in</li>
            <li>Modify your startup arguments and add <code>@ESM</code> to <code>servermod</code> startup parameter</li>
          </ol>
          <li>Modify your database</li>
          <ol class="uk-margin-remove">
            <li>Locate and open the <code>esm.sql</code> file located in <code>@ESM</code></li>
            <li>Execute the provided SQL on your MySQL server</li>
            <li>Confirm the <code>territory</code> table has two new fields: <code>esm_custom_id</code> and <code>esm_payment_counter</code></li>
          </ol>
          <li>Log into our <%= link_to "server dashboard", communities_path, target: "_blank" %></a></li>
        <li>Select your Discord server from the dropdown</li>
        <ul class="uk-margin-remove">
          <li>Take a moment to explore each of the panels. From this dashboard, you can modify your community, set command permissions, customize notifications, and manage your servers</li>
        </ul>
        <li>Add a server to your community and input the required information</li>
        <ul class="uk-margin-remove">
          <li>You will be given a <code>esm.key</code> file to download. Place this key inside <code>@ESM</code> mod on your server</li>
          <li>After you register your server, players will be able to access it via it's server ID. The server ID is a combination of your community id and the server name you chose.</li>
        </ul>
        <li>Start your Arma 3 Exile server</li>
        <li>Direct message ESM Bot <%= command_usage(:servers) %> to confirm your server is linked</li>
      </ol>
      <p>
        After you've installed <code>@ESM</code>, you are ready to go!
        <br>
        We highly suggest going through the <%= link_to "commands", wiki_commands_path %> to learn a few commands to help out your players.
        <br>
        If you have any questions or need assistance with ESM, feel free to join our <%= link_to "Discord", join_path %> and ask in a Support Channel!
      </p>
    </div>
  </li>
</ul>

<hr style="border-top: 2px solid #1E354D;">

<h2>Features</h2>

<h3 class="uk-margin-remove-bottom">Commands</h3>
<p>
  My core functionality revolves around the use of my wonderful slash commands in Discord. You can find a list of all of them by clicking the <%= link_to "COMMANDS", wiki_commands_path, target: "_blank" %> option in the navbar or by using <%= command_usage(:help, only: []) %> in a channel with me in Discord.
  <br>
  It's important to note, not all commands can be used everywhere. <span class="esm-text-color-red">*</span>Communities can control where commands are used, who can use them, and even if the command can be used. To make it easier, I  break my commands into two types, <span class="esm-text-color-toast-blue">player</span> and <span class="esm-text-color-toast-blue">admin</span> commands. Below is a table showing where each type can be used.
</p>
<table class="uk-table">
  <thead>
    <th>Command Type</th>
    <th>Allowed in Community text channel?</th>
    <th>Allowed in direct message with ESM?</th>
  </thead>
  <tbody>
    <tr>
      <td>Player</td>
      <td>Yes<span class="esm-text-color-red" uk-tooltip="Depends on community configured permissions">*</span></td>
      <td>Yes</td>
    </tr>
    <tr>
      <td>Admin</td>
      <td>Yes<span class="esm-text-color-red" uk-tooltip="Depends on community configured permissions">*</span></td>
      <td>No</td>
    </tr>
  </tbody>
</table>
<p>
  If a command cannot be used in the current channel, I will reply back with a message directing you to the correct location. When in doubt, try to send the command in a direct message with me first.
</p>

<h3 class="uk-margin-remove-bottom" id="player-mode">Player Mode</h3>
<p>
  <strong class="esm-text-color-red">
    If you play on a server and just invited me to your Discord, I am already in player mode
  </strong>
  <br>
  Player mode enables the ability for players to use my player commands in their personal Discord without limitation. This also enables the ability to utilize Discord mentions for commands that require a target, bypassing the need to remember your friend's Steam UIDs.
</p>

<h3 class="uk-margin-remove-bottom">XM8 Notifications</h3>
<p>
  As part of my server mod, I will re-route your Exile XM8 notifications to Discord so you will always have access to offline notifications. By default, you are automatically opted into receiving these notifications via direct message. In order to receive notifications, you must be in at least one Discord Server with ESM. You can opt out of these notifications by using the <%= command_usage(:preferences, only: []) %> command.
  <br>
  You may also tell me to route these notifications to <%= link_to "player mode", "#player-mode" %> enabled Discord servers. See the XM8 Notification Routing documentation for <%= link_to "players", wiki_player_xm8_notification_routing_path %> or <%= link_to "server admins", wiki_server_xm8_notification_routing_path %> for more information.
</p>

<h3 class="uk-margin-remove-bottom">
  <span class="uk-label">New</span> Aliases and defaults for Communities and Servers
</h3>
<p class="uk-margin-bottom">
  As of November 19 2023, you can create aliases and set defaults for communities and servers via the player dashboard. Setting a default community or server means you can omit providing the ID for them in the commands.
  <br>
  If you play on multiple servers, aliases may suit you better. Aliases still require you to provide something to the command but they should ideally be faster/easier to type.
</p>

<hr style="border-top: 2px solid #1E354D;">

<h2>Command Arguments</h2>

<p>
  Certain commands utilize arguments to change how the command works. These arguments are included when using the command and change based on which command is being executed.
  <br>
  Below are the most common arguments used, however, if you need more information on a particular command, please utilize the <%= command_usage(:help, only: []) %> command.
  For example, <%= command_usage(:help, arguments: {with: "/server reward"})%>
</p>

<h4 class="uk-margin-remove-bottom" id="community-id">Community IDs</h4>
<span class="uk-text-meta">
  Appears as <%= argument(:community_id, aliases: ["for"], only: [:key]) %>
</span>
<p>
  Every Discord community is given a <strong class="esm-text-color-red">community ID</strong>. This ID is unique to that community and is used with a lot of commands. You can view a Discord community's ID by using
  <%= command_usage(:id) %> in one of their text channels.
</p>
<p>
  When executing a command that requires a <%= argument(:community_id, only: [:key], only: [:key]) %> in a Discord text channel
  <small>(not a Direct Message)</small>, by omitting the <%= argument(:community_id, only: [:key]) %>, ESM will automatically assume you are wanting to execute that command for the community you are currently in, and it will autofill that Community ID for you.
  <br>
  For example, if you are in a text channel of a Discord server with the community ID of <code>esm</code>. If you type <%= command_usage(:servers, only: []) %> and hit enter, ESM will assume you are referencing the community <code>esm</code> and it will run that command for that community.
  <br>
  <strong class="esm-text-color-red">Note:</strong> This is <u>only available in the text channels</u> of a Discord server and works for every command that requires <%= argument(:community_id, only: [:key]) %>. Also, ESM will only autofill the Community ID if one is not provided with the command. If you provide a Community ID to a command, ESM will not attempt to autofill.
</p>

<h4 class="uk-margin-remove-bottom" id="server-id">Server IDs</h4>
<span class="uk-text-meta">Appears as <%= argument(:server_id, aliases: ["for", "on"], only: [:key]) %></span>
<p>
  Each server registered with ESM is provided a unique <strong class="esm-text-color-red">server ID</strong>. This ID is a combination of the <strong>community ID</strong> and a name chosen by the community owners. For example, <code>esm_malden</code>
  <br>
  To view all servers linked with a community, use <%= command_usage(:servers, only: []) %> command.
</p>
<p>
  Similar to Community IDs, when executing a command that requires a <%= argument(:server_id, only: [:key]) %> in a Discord text channel <small>(not a Direct Message)</small>, you may omit the Community ID part of a Server ID and ESM will automatically assume you are referencing a server that belongs to the community you are currently in.
  <br>
  To clarify, if you are in a text channel of a Discord server with the Community ID of <code>esm</code>, and they host a server with the ID of <code>esm_malden</code>, you may use <code>malden</code> as the <%= argument(:server_id, only: [:key]) %>, instead of <code>esm_malden</code>. For example, <%= command_usage(:gamble, arguments: {on: :malden}, only: [:arguments]) %> will be interpreted as <%= command_usage(:gamble, arguments: {on: :esm_malden}, only: [:arguments]) %>.
  <br>
  <strong class="esm-text-color-red">Note:</strong> This is <u>only available in the text channels</u> of a Discord server and works for every command that requires <%= argument(:server_id, only: [:key]) %>. Also, ESM will only expand the Server ID if the Community ID prefix is missing. If you provide a full Server ID to a command, ESM will not attempt to expand it.
</p>

<h4 class="uk-margin-remove-bottom" id="territory-id">Territory IDs</h4>
<span class="uk-text-meta">Appears as <%= argument(:territory_id, aliases: ["territory", "from", "in", "to"], only: [:key]) %></span>
<p>
  Some commands will require you to provide a <strong class="esm-text-color-red">Territory ID</strong>. This ID can be found by using the <%= command_usage(:territories, only: []) %> command. The territory ID will be on the top line next to the territory name.
  <br>
  Don't like the ID? You can change it by using the <%= command_usage(:set_id, only: []) %> command.
</p>

<h4 class="uk-margin-remove-bottom" id="target">Target</h4>
<span class="uk-text-meta">Appears as <%= argument(:target, aliases: ["whom", "for"], only: [:key]) %></span>
<p>
  A target is the user you want to run the command on. A target can be any of the following:
  <dl class="uk-description-list uk-margin-left">
    <dt>Steam UID</dt>
    <dd>
      The unique ID linked to a Steam account. This is the only target that can be used without a user being registered.
    </dd>
    <dt>Discord Tag</dt>
    <dd>Discord's <code>@mention</code> functionality. This will only work if the user that is mentioned is registered with ESM</dd>
    <dt>Discord ID</dt>
    <dd>The unique ID given to a user in Discord. This will only work if the user that the ID belongs to is registered with ESM</dd>
  </dl>
</p>

<hr style="border-top: 2px solid #1E354D;">

<h2>One more thing...</h2>
<p>
  ESM is, and will remain, <strong class="esm-text-color-red">completely</strong> free to use and free to enjoy. There aren't even ads to annoy you!
  <br>
  With that being said, ESM does have server costs. If you are feeling generous and would like to support ESM, you can donate here: <%= link_to "https://www.paypal.me/esmbot", "https://www.paypal.me/esmbot" %>. All money goes into keeping the project alive.
</p>
</div>
All opinions represented herein are my own
- © 2024 itsthedevman
- build 340fbb8