Jekyll2021-11-05T17:46:00+01:00https://atos.laggron.red/feed.xmlA.T.O.S.A full Discord bot for managing your server and organizing tournaments.El LaggronUpdate 1.1.0 : Settings rewrite2021-03-04T00:00:00+01:002021-03-04T00:00:00+01:00https://atos.laggron.red/updates/update-to-1.1<p>The next major update of A.T.O.S. is coming soon to your servers! A big rewrite of the settings allowing more possibilities, with a more intuitive interface.</p>
<p>Anyway, the <code class="language-plaintext highlighter-rouge">!tset</code> command is changing, not only that, but don’t worry, your old settings will be converted (if it doesn’t bug).</p>
<h1 id="changes-on-tset">Changes on <code class="language-plaintext highlighter-rouge">!tset</code></h1>
<p>The old system worked like this: admins set up global settings on the server (channels, roles, delays, registrations), in addition to parameters specific to a game (ruleset, ranking).</p>
<p>That system had many limits:</p>
<ul>
<li>Only the settings under <code class="language-plaintext highlighter-rouge">!tset games</code> could change from one game to another, others are fixed</li>
<li>To create a configuration, you had to put the name of the game on Challonge, impossible to create multiple rulesets for one same game, not to mention unavailable games</li>
<li>It was <em>painful</em> to use this command, with quotes everywhere</li>
</ul>
<p>Now we’re changing this.</p>
<h2 id="deletion-of-the-tset-games-command">Deletion of the <code class="language-plaintext highlighter-rouge">!tset games</code> command</h2>
<p>All commands under <code class="language-plaintext highlighter-rouge">!tset games</code> are moved under <code class="language-plaintext highlighter-rouge">!tset</code>, <code class="language-plaintext highlighter-rouge">!tset channels</code> and <code class="language-plaintext highlighter-rouge">!tset roles</code>.</p>
<table>
<thead>
<tr>
<th>Before</th>
<th>After</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="language-plaintext highlighter-rouge">!tset games baninfo</code></td>
<td><code class="language-plaintext highlighter-rouge">!tset baninfo</code></td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">!tset games counters</code></td>
<td><code class="language-plaintext highlighter-rouge">!tset counters</code></td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">!tset games ranking</code></td>
<td><code class="language-plaintext highlighter-rouge">!tset ranking</code></td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">!tset games role</code></td>
<td><code class="language-plaintext highlighter-rouge">!tset roles player</code></td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">!tset games ruleset</code></td>
<td><code class="language-plaintext highlighter-rouge">!tset channels ruleset</code></td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">!tset games stages</code></td>
<td><code class="language-plaintext highlighter-rouge">!tset stages</code></td>
</tr>
</tbody>
</table>
<p><code class="language-plaintext highlighter-rouge">!tset games show</code> is removed, <code class="language-plaintext highlighter-rouge">!tset settings</code> will display everything.</p>
<div class="notice--info">
<h4 class="no_toc">Info</h4>
<p>Small change with the stage list (<code class="language-plaintext highlighter-rouge">!tset stages</code> and <code class="language-plaintext highlighter-rouge">!tset counters</code>), before you had to use quotes for the list, now you only need to separate elements with commas.</p>
<ul>
<li>Before: <code class="language-plaintext highlighter-rouge">!tset games stages Battlefield "Final Destination" "Pokémon Stadium 2"</code></li>
<li>After: <code class="language-plaintext highlighter-rouge">!tset stages Battlefield, Final Destination, Pokémon Stadium 2</code></li>
</ul>
</div>
<p>All those settings are now global on the entire server by default. But then, you’re surely wondering how you can have multiple configurations like before? There is now a new system…</p>
<h2 id="added-configurations">Added configurations</h2>
<h3 id="explainations">Explainations</h3>
<p>Now, you can create different configs, with the name you want, and you can edit any setting under this configuration.</p>
<p>When you create a tournament, you can choose which configuration to use. The settings of this config will then be used, the rest will use the default config.</p>
<div class="notice--info">
<h4 class="no_toc">Example</h4>
<p>Suppose you are setting up ATOS for the first time, and decide to configure the following settings:</p>
<ul>
<li>Announcement channel: <code class="language-plaintext highlighter-rouge">#announcements</code></li>
<li>Registrations channel : <code class="language-plaintext highlighter-rouge">#registrations</code></li>
<li>Participant role: <code class="language-plaintext highlighter-rouge">Registered</code></li>
<li>Delay before DQ: 10 minutes</li>
</ul>
<p>This is the <strong>default configuration</strong>. You can then decide to add another config named “Melee” for example, and change the following settings:</p>
<ul>
<li>Announcement channel: <code class="language-plaintext highlighter-rouge">#melee-announcements</code></li>
<li>Delay before DQ: 15 minutes</li>
</ul>
<p>If you add a tournament with the Melee configuration, the settings used are the following:</p>
<ul>
<li><strong>Announcement channel: <code class="language-plaintext highlighter-rouge">#melee-announcements</code></strong></li>
<li>Registrations channel : <code class="language-plaintext highlighter-rouge">#registrations</code></li>
<li>Participant role: <code class="language-plaintext highlighter-rouge">Registered</code></li>
<li><strong>Delay before DQ: 15 minutes</strong></li>
</ul>
<p>As you can see, the bot will first use what you setup in your config, then the default settings will be used for the rest.</p>
</div>
<p>You can have as many configs as you want, not necessarily using the name of a specific game. The entirety of the different parameters can be setup under a config.</p>
<div class="notice--warning">
<h4 class="no_toc">Warning</h4>
<p>The only exception is <code class="language-plaintext highlighter-rouge">!challongeset</code> which remains global to the server, without possible config, due to technical reasons.</p>
</div>
<h3 id="the-tset-config-config">The <code class="language-plaintext highlighter-rouge">!tset config</code> config</h3>
<p>It is therefore with this command that you can manage your configurations, with the following commands:</p>
<table>
<thead>
<tr>
<th>Command</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="language-plaintext highlighter-rouge">!tset config add</code></td>
<td>Add a new configuration</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">!tset config remove</code></td>
<td>Delete one of the configurations</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">!tset config list</code></td>
<td>List the available configurations</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">!tset config rename</code></td>
<td>Rename a configuration</td>
</tr>
<tr>
<td><code class="language-plaintext highlighter-rouge">!tset config clone</code></td>
<td>Clone an existing configuration</td>
</tr>
</tbody>
</table>
<p>Try <code class="language-plaintext highlighter-rouge">!tset config add MyConfig</code> to create a configuration.</p>
<div class="notice--primary">
<h4 class="no_toc">Info</h4>
<p>For using a name with spaces, use quotes : <code class="language-plaintext highlighter-rouge">!tset config add "my long config"</code></p>
</div>
<h3 id="settings">Settings</h3>
<p>Then, to setup a parameter under your config, you need to use the “flag” <code class="language-plaintext highlighter-rouge">--config</code>, or <code class="language-plaintext highlighter-rouge">-c</code>, after your command. Examples:</p>
<ul>
<li><code class="language-plaintext highlighter-rouge">!tset delay 30m --config Melee</code></li>
<li><code class="language-plaintext highlighter-rouge">!tset channels ruleset #rules --config LoL</code></li>
<li><code class="language-plaintext highlighter-rouge">!tset roles participant Registered in tournament -c "Super Smash Bros. Ultimate"</code></li>
<li><code class="language-plaintext highlighter-rouge">!tset baninfo -c LoL</code> <em>(removing text)</em></li>
</ul>
<p>Use quotes if there are spaces in the name of your config.</p>
<p>Always put that <code class="language-plaintext highlighter-rouge">--config</code> at the end of your command. If you don’t specify a config, you are editing the default parameters.</p>
<p>Then, to see your settings, it’s the same commande <code class="language-plaintext highlighter-rouge">!tset settings</code>! Without specifying a config, you will see default parameters. Else, do <code class="language-plaintext highlighter-rouge">!tset settings --config "Your config"</code> to see the parameters of your config.</p>
<h2 id="durations">Durations</h2>
<p>A small change affecting the <code class="language-plaintext highlighter-rouge">register</code>, <code class="language-plaintext highlighter-rouge">twostageregister</code>, <code class="language-plaintext highlighter-rouge">checkin</code>, <code class="language-plaintext highlighter-rouge">warntime</code> and <code class="language-plaintext highlighter-rouge">delay</code> commands.</p>
<p>Those commands asked for a delay in minutes for different things. However, it wasn’t easy having to calculate how many minutes would be 3 days and 5 hours, so here again we changed the system a bit (and thanks for Red’s tools).</p>
<p>Now, to express a duration, you have to specify the unit in addition. For example, 10 minutes becomes <code class="language-plaintext highlighter-rouge">10m</code>. Examples:</p>
<ul>
<li>30 seconds : <code class="language-plaintext highlighter-rouge">30s</code></li>
<li>5 minutes : <code class="language-plaintext highlighter-rouge">5m</code></li>
<li>2 hours : <code class="language-plaintext highlighter-rouge">2h</code></li>
<li>3 days : <code class="language-plaintext highlighter-rouge">3d</code></li>
<li>1 week : <code class="language-plaintext highlighter-rouge">1w</code></li>
</ul>
<p>And it’s possible to stack those units, for example <code class="language-plaintext highlighter-rouge">2d5h30m</code> = 2 days + 5 hours + 30 minutes</p>
<p>Examples with registrations: <code class="language-plaintext highlighter-rouge">!tset register 1d2h 10m</code> = Starting 1 day and 2 hours before, ending 10 minutes before the beginning of the tournament.</p>
<div class="notice--warning">
<h4 class="no_toc">Info</h4>
<p>To disable a delay, instead of putting <code class="language-plaintext highlighter-rouge">0</code>, put <code class="language-plaintext highlighter-rouge">0s</code> instead. It is still possible to disable some delays individually like this.</p>
</div>
<h2 id="the-tester-role">The tester role</h2>
<p>Small note apart on a function that already existed, but that was never announced: there is now a connection tester role which will be mentioned for any lag test request with <code class="language-plaintext highlighter-rouge">!lag</code>.</p>
<p>For that, use the command <code class="language-plaintext highlighter-rouge">!tset roles tester</code></p>
<p>Thanks to <a href="https://github.com/Xyleff2049">Xyleff</a> for implementing this feature!</p>
<h1 id="the-setup-command">The <code class="language-plaintext highlighter-rouge">!setup</code> command</h1>
<p>The usage of that command doesn’t change (or almost) but most importantly have new features.</p>
<h2 id="usage-of-configurations">Usage of configurations</h2>
<p>Like other commands, to use your config when adding the tournament, do <code class="language-plaintext highlighter-rouge">!setup https://challonge.com/randomtournament --config "your config"</code></p>
<p>Note however that, like the previous system, if the name of your config matches the name of the game on Challonge, that config will be automatically used without specifying something.</p>
<h2 id="late-setup">Late setup</h2>
<p>Before, the bot blocked the setup of a tournament if the date of an event (like registrations start) was passed, forcing the re-setup of that setting to continue.</p>
<p>Now, the bot will tell about those passed events, and will prompt you to continue the setup after all. Those events will therefore be skipped, and you can instead start them using manual commands, like <code class="language-plaintext highlighter-rouge">!register start</code> or <code class="language-plaintext highlighter-rouge">!checkin start</code> for example.</p>
<h2 id="setup-an-ongoing-tournament">Setup an ongoing tournament</h2>
<p>It’s now possible! You may have had to reset an ongoing tournament due to a problem, and you were forced to reset the bracket to relaunch the bot.</p>
<p>Now, if you use <code class="language-plaintext highlighter-rouge">!setup</code> on a tournament already launched on Challonge, the bot will prompt you to “resume” immediatly the tournament, that is to say the registrations will be skipped and the bot will gather participants from Challonge.</p>
<p>If the name of the participants matches Discord names, everything will go well, else the lost participants will be disqualified (but the bot will prompt a second time, with the name of the lost participants).</p>
<h1 id="data-migration">Data migration</h1>
<p>What you had already configured will be imported.</p>
<p>If you had a single configured game with <code class="language-plaintext highlighter-rouge">!tset games</code>, everything will be imported in the default config.</p>
<p>If you had more than one game configured, then the settings will all be imported under new configurations with a matching name. Check this with <code class="language-plaintext highlighter-rouge">!tset config list</code>.</p>
<div class="notice--danger">
<h4 class="no_toc">Release date</h4>
<p>I will update ATOS on <strong>sunday 7th, march at 10 a.m. CET</strong>.</p>
<p>I’m giving this date since there may have issues at the beginning, so prevent having an ongoing tournament at the same time. Documentation will be updated at the same time, meanwhile refer to this article to see the changes and be prepared.</p>
</div>
<h1 id="why-this-update">Why this update?</h1>
<p>The settings system came to its limits when I thought about how to add teams mode (2vs2), as well as message template.</p>
<p>Those changes are setting up the bases for the next part ; next update will be the integration of teams, ATOS won’t be limited to 1v1 anymore!</p>
<p>Observe the complete list of commits on the <a href="https://github.com/retke/Laggrons-Dumb-Cogs/pull/145">pull request</a>.</p>
<p>And a huge thanks to DiXaR and the <a href="https://discord.gg/V2JY5UgwyV">Smash @ Lyon</a> server for helping me test this big update!</p>El LaggronThe first major update is coming, discover the new features and changes on ATOS !