Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First draft for task: Update FAQ/Arguments/dev mode/beta #35

Merged
merged 5 commits into from
Sep 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed .gitbook/assets/DevModeAndroidStep1.png
Binary file not shown.
Binary file removed .gitbook/assets/DevModeAndroidStep2.png
Binary file not shown.
Binary file removed .gitbook/assets/DevModeAndroidStep3.png
Binary file not shown.
Binary file removed .gitbook/assets/DevModeAndroidStep4.png
Binary file not shown.
Binary file removed .gitbook/assets/DevModeDesktopStep1.png
Binary file not shown.
Binary file removed .gitbook/assets/DevModeDesktopStep2.png
Binary file not shown.
Binary file removed .gitbook/assets/DevModeDesktopStep3.png
Binary file not shown.
Binary file removed .gitbook/assets/DevModeEffectsEdited.png
Binary file not shown.
Binary file removed .gitbook/assets/DevModeIosStep1.png
Binary file not shown.
Binary file removed .gitbook/assets/DevModeIosStep2.png
Binary file not shown.
Binary file removed .gitbook/assets/DevModeIosStep3.png
Binary file not shown.
Binary file removed .gitbook/assets/DevModeIosStep4.png
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/dev-mode/android/step_one.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/dev-mode/android/step_two.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/dev-mode/desktop/step_one.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/dev-mode/desktop/step_three.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/dev-mode/desktop/step_two.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/dev-mode/ios/step_four.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/dev-mode/ios/step_one.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/dev-mode/ios/step_three.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/dev-mode/ios/step_two.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
83 changes: 49 additions & 34 deletions advanced/developer-mode.md
Original file line number Diff line number Diff line change
@@ -1,87 +1,102 @@
# Using developer mode
# What is developer mode?

Discord has a developer mode feature that lets you copy IDs of nearly anything that has one, such as servers, users, channels, roles... etc. You can use developer mode to greatly skim through MoonlightBot's features.
Developer mode is a feature in Discord that allows you to copy the ID of any object in Discord, such as users, channels, roles, servers, etc. This is useful for MoonlightBot, as it allows you to provide the exact object you want to interact with, without any ambiguity.

{% hint style="success" %}
You're not required to have bot developer skills to use developer mode. It does not also hinder your normal Discord usage in any way.
{% endhint %}

## Enabling developer mode

### On the Discord desktop app
# Using developer mode

To use developer mode, you need to enable it first. Instructions for enabling developer mode are provided in the next section ([Enabling developer mode](#enabling-developer-mode)).

Whenever MoonlightBot asks for something like a user, chanel, etc., you can provide the ID as an argument to make sure it is pointing to exactly what you want.

## Desktop/Web App

To copy the ID of an object in the desktop or web app, right-click the object and click on the **Copy ID** option.

## Android App

For example, to copy the ID of a user in the Android app, tap on the user's profile, then tap on the three dots in the top right corner and click on **Copy ID**.


1. Go to **User Settings **by clicking the gear icon in the bottom left of the window;
## iOS App

For example, to copy the ID of a user in the iOS app, tap on the user's profile, then tap on the three dots in the top right corner and click on **Copy ID**.


# Enabling developer mode

## Desktop/Web App

1. Go to **User Settings** by clicking the gear icon in the bottom left of the window;
2. Go to "**Advanced**";
3. Click on the **Developer mode** toggle and you're done!

{% tabs %}
{% tab title="Step 1" %}
![](<../.gitbook/assets/DevModeDesktopStep1.png>)
![](<../.gitbook/assets/dev-mode/desktop/step_one.png>)
{% endtab %}

{% tab title="Step 2" %}
![](<../.gitbook/assets/DevModeDesktopStep2.png>)
![](<../.gitbook/assets/dev-mode/desktop/step_two.png>)
{% endtab %}

{% tab title="Step 3" %}
![](<../.gitbook/assets/DevModeDesktopStep3.png>)
![](<../.gitbook/assets/dev-mode/desktop/step_three.png>)
{% endtab %}
{% endtabs %}

### On the Android app
## Android App

1. Go to **User Settings** by clicking your avatar in the bottom right corner of the channel drawer;
2. Scroll down until the **Behavior** section;
3. Open **Behavior**;
4. Click on the **Developer mode** toggle and you're done!
1. Go to **User Profile** by clicking your avatar in the bottom right corner;
2. Click again on your avatar in the bottom right corner or on the three dots in the top right corner;
3. Scroll down until the **Advanced** section;
4. Open **Advanced**;
5. Click on the **Developer Mode** toggle and you're done!

{% tabs %}
{% tab title="Step 1" %}
![](<../.gitbook/assets/DevModeAndroidStep1.png>)
![](<../.gitbook/assets/dev-mode/android/step_one.png>)
{% endtab %}

{% tab title="Step 2" %}
![](<../.gitbook/assets/DevModeAndroidStep2.png>)
![](<../.gitbook/assets/dev-mode/android/step_two.png>)
{% endtab %}

{% tab title="Step 3" %}
![](<../.gitbook/assets/DevModeAndroidStep3.png>)
![](<../.gitbook/assets/dev-mode/android/step_three.png>)
{% endtab %}

{% tab title="Step 4" %}
![](<../.gitbook/assets/DevModeAndroidStep4.png>)
![](<../.gitbook/assets/dev-mode/android/step_four.png>)
{% endtab %}
{% endtabs %}

### On the iOS app
### iOS App

1. &#x20;Go to **User Settings** by clicking your avatar in the bottom right corner of the channel drawer;
2. &#x20;Scroll down until the **Appearance** section;
3. &#x20;Open **Appearance**;
4. &#x20;Click on the **Developer Mode** toggle and you're done!
1. Go to **User Profile** by clicking your avatar in the bottom right corner;
2. Click again on your avatar in the bottom right corner or on the three dots in the top right corner;
3. Scroll down until the **Advanced** section;
4. Open **Advanced**;
5. Click on the **Developer Mode** toggle and you're done!

{% tabs %}
{% tab title="Step 1" %}
![](<../.gitbook/assets/DevModeIosStep1.png>)
![](<../.gitbook/assets/dev-mode/ios/step_one.png>)
{% endtab %}

{% tab title="Step 2" %}
![](<../.gitbook/assets/DevModeIosStep2.png>)
![](<../.gitbook/assets/dev-mode/ios/step_two.png>)
{% endtab %}

{% tab title="Step 3" %}
![](<../.gitbook/assets/DevModeIosStep3.png>)
![](<../.gitbook/assets/dev-mode/ios/step_three.png>)
{% endtab %}

{% tab title="Step 4" %}
![](<../.gitbook/assets/DevModeIosStep4.png>)
![](<../.gitbook/assets/dev-mode/ios/step_four.png>)
{% endtab %}
{% endtabs %}

## Using developer mode

After you toggled developer mode nothing happened right? Well, try right clicking or going on an user's profile on mobile.

![Whoa!](../.gitbook/assets/DevModeEffectsEdited.png)

You can also do this for channels, roles, servers and messages. Whenever MoonlightBot asks for something like that, you can provide the ID as argument to make sure it's pointing to exactly what you want.
11 changes: 6 additions & 5 deletions start-up/arguments.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# Arguments

Arguments follow the name of the command and are used to give options to run the command itself. Separe each argument with a space.
Arguments follow the name of the command and are used to give options to run the command itself. Separate each argument with a space.

![Example of a command executed successfully with all the required arguments.](<../.gitbook/assets/slashrequiredarguments.png>)

## Required arguments

Required arguments need to be input for the command to work correctly. You will not be able to send the command otherwise.

In this guide, required arguments are marked as `<argument>` with the angle brackets. It is important to **not put** the angle brackets in the actual command, as they are used as a placeholder to indicate an argument is required.
In this guide, required arguments are marked as `<argument>` with the angle brackets. It is important to **not put** the angle brackets in the actual command, as they are used as a placeholder to indicate that an argument is required.

## Optional arguments

Optional arguments are not needed for a command to work, but they may be used to provide additional information or add extra details to a command. In this guide, they are marked as `[argument]`, with the square bracket not needed.
Optional arguments are not necessary for a command to work, but they may be used to provide additional information or add extra details to a command. In this guide, they are marked as `[argument]`, with the square bracket not needed.

### Optional arguments with spaces

Expand All @@ -24,7 +24,8 @@ They are marked with `[...argument]` in this guide. They are joined together and

### Durations

Durations are a combinations of numbers and letters rappresenting units of measure of time: for example 4w5h means 4 weeks and 5 hours. Below you can see a table with all supported abbreviations.
Durations are a combination of numbers and letters representing units of a measure of time: for example, 4w5h means 4 weeks and 5 hours.
Below, you can see a table with all supported abbreviations.

| Duration | Supported Abbrevations |
| -------------------------- | ------------------------------- |
Expand All @@ -36,7 +37,7 @@ Durations are a combinations of numbers and letters rappresenting units of measu
| Millisecond | ms - millisecond - milliseconds |

{% hint style="warning" %}
If no unit is specified the bot will default to millisecond
If no unit is specified, the bot will default to millisecond
{% endhint %}

![A duration argument.](<../.gitbook/assets/slashtypeofarguments.png>)
Expand Down
63 changes: 33 additions & 30 deletions start-up/faqs.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,75 +4,78 @@

Try doing the following things:

* [ ] Make sure it's online. If it shows as offline, please join the support server and let the Staff know.
* [ ] Try checking channel permission. If needed, you can add to the bot channel-specific permissions such as Read Messages, Send Messages, Embed Links and View Message History.
* [ ] It can happen that the server admins disabled the `showPermissionError` option and you do not have permissions to use the command you're trying to use. Contact the server admins.
* Make sure it's online. If it shows as offline, please join the support server and let the Staff know.
* Try checking channel permission. If needed, you can add to the bot channel-specific permissions such as Read Messages, Send Messages, Embed Links and View Message History.

If the problem persists, please [contact support](https://discord.gg/hNQWVVC).

## MoonlightBot is sending me offensive direct messages. What can I do?

This is happening because someone is abusing the infraction system to harass you. Our Staff does not tolerate this use at all. Please report it at the [support server](https://discord.gg/hNQWVVC).


## Can I use bots to trigger MoonlightBot commands?

No, other bots and webhooks cannot trigger MoonlightBot, due to safety reasons. Using [selfbots](https://support.discord.com/hc/en-us/articles/115002192352-Automated-user-accounts-self-bots-) is a violation of Discord's Terms of Service.
No, other bots and webhooks cannot trigger MoonlightBot, due to safety reasons. Using [selfbots](https://support.discord.com/hc/en-us/articles/115002192352-Automated-User-Accounts-Self-Bots) is a violation of Discord's Terms of Service.

## What language is MoonlightBot written in?

It's written in Node.js using the Discord.js library to interface with Discord's API.

## Who is the owner of MoonlightBot?

MoonlightBot is owned by MoonlightCapital. With tag `moonlightcapital` and ID `256460316660072448` on Discord.


## How does the temprole feature work?

There are different types of temprole offered:

* The [Temprole](../staff-commands/temprole.md) command, which allows a privileged user (usually a moderator) to give someone a role, and make MoonlightBot remove the role after a set duration.
* Self-assignable temproles, that allow users to assign themselves a role through the [Selfrole](../public-commands/selfrole.md) command. See how to set this up at [Configuring roles](../admin-commands/config/configuring-roles.md).
* Join-assigned temproles. Take a look at [Configuring roles](../admin-commands/config/configuring-roles.md).
* The [Temprole](../role-management-commands/temprole.md) command, which allows a privileged user (usually a moderator) to give someone a role, and make MoonlightBot remove the role after a set duration.
* Self-assignable temproles, that allow users to assign themselves a role through the [Selfrole](../role-management-commands/selfrole.md) command. See how to set this up at [Configuring roles](../management-commands/config.md#roles-self-assignable).
* Join-assigned temproles. Take a look at [Configuring roles](../management-commands/config.md#roles-join-assignable).
* Reaction roles have an option to make their roles temporary. To see how to set up reaction roles, see [Setting up reaction roles](setting-up-reaction-roles.md).

## How do I cancel a temprole?

You can cancel a temprole to force an immediate expiration by using the `temprole` command with a duration that would make it expire in the past. Say you want to cancel a temprole that has 3 days left of time:
You can cancel a temprole to force an immediate expiration by using the `temprole` command with a duration that would make it expire in the past. Say you want to cancel a temprole that has 3 days left:
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You can cancel a temprole to force an immediate expiration by using the `temprole` command with a duration that would make it expire in the past. Say you want to cancel a temprole that has 3 days left:
You can cancel a temprole to force an immediate expiration by using the `/temprole` command with a duration that would make it expire in the past. Say you want to cancel a temprole that has 3 days left:

same goes for any other temporary action


```
/temprole <user> <role> -3d
```

Any value lower than `-3d` will work.
Any value lower than `-3d` will work as well.

## How does the temprole sustain mechanic work?

In order to encourage good support practices, a new system for temproles to be sustained to make them function has been introduced.

When operating a temporary role, you need to satisfy either of the following conditions:
- Your maximum duration allowed to set must be the same when you add it, and when the duration expires
- While the temporary role is active, have gained [a vote](../support/upvote-moonlightbot.md) for at least half of the days. For example, a 30 days temprole is sustained by at least 15 votes

If neither condition is satisfied, the temprole will not removed from the target user. You can check if everything is sustained with the `/status` command, and eventually how to correct it.
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So now how does one check? (/list-temproles)

In order to encourage good support practices, a system has been introduced for sustaining temproles to ensure they remain functional and fair for all servers and users.

{% hint style="info" %}
[Premium subscribers](../versions-of-the-bot/premium.md) of tier Advanced and above do not need to sustain their temproles.
{% endhint %}
When operating a temporary or pause role, you must satisfy at least one of the following conditions:

If someone is threatening to stop sustaining temproles to damage your server, [contact support](https://discord.gg/hNQWVVC). We will investigate the matter and render any threat ineffective.
1. **Maximum Duration Consistency**: The maximum duration allowed for the role adder at the time of the role's expiration must be equal to or greater than their maximum duration allowed at the time the role was added

You can also contact support to receive a temporary exemption from sustaining, if necessary.
2. **Vote Requirement**: The number of votes received by the adder must be equal to or greater than the number of days the temporary role lasts. For example, a 30-day temprole requires at least 30 votes to be sustained.
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
2. **Vote Requirement**: The number of votes received by the adder must be equal to or greater than the number of days the temporary role lasts. For example, a 30-day temprole requires at least 30 votes to be sustained.
2. **Vote Requirement**: The number of votes received by the adder must be equal to or greater than half the number of days the temporary role lasts, rounded up. For example, a 30-day temprole requires at least 15 votes to be sustained

My bad for having forgotten this, half. Also link to the page that explains voting


## Will my temproles be erased if a bot downtime happens?
3. **Premium Instance**: The server must be on a premium instance (Advance+ tier).
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3. **Premium Instance**: The server must be on a premium instance (Advance+ tier).
3. **Premium Instance**: The server uses a MoonlightBot Premium instance (Advanced tier or higher)

link here as well


No! There's absolutely no reason to worry about potential data losses as MoonlightBot is designed to be resilient. We are committed to 99% uptime, but if it ever happens that the bot goes down, your temproles will be removed as nothing happened.
4. **Exemption Request**: The adder must have requested and received an exemption from bot staff
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
4. **Exemption Request**: The adder must have requested and received an exemption from bot staff
4. **Be Exempted**: The adder must have requested and received an exemption from bot staff

Where? How? Exemption from what?


## MoonlightBot is sending me offensive direct messages. What can I do?
If none of these conditions are met, the operation at the end of expiration will not be executed.

This is happening because someone is abusing the infraction system to harass you. Our Staff does not tolerate this use at all. Please report it at the [support server](https://discord.gg/hNQWVVC).
If someone is threatening to stop sustaining temproles to damage your server, [contact support](https://discord.gg/hNQWVVC). We will investigate the matter and render any threat ineffective.

## What language is MoonlightBot written in?
## Will my temproles be erased if bot downtime happens?

It's written in Node.js using the Discord.js library to interface with Discord's API.
No! There's absolutely no reason to worry about potential data losses as MoonlightBot is designed to be resilient. We are committed to 99% uptime, but if it ever happens that the bot goes down, your temproles will be removed as nothing happened.

## How can I get access to new features early?

Take a look at the [Beta](../versions-of-the-bot/beta.md) and [Test](../versions-of-the-bot/test.md) versions of MoonlightBot.
Take a look at the [Beta](../support/beta.md) version of MoonlightBot.

## I found a bug. How do I report it?

Report it in the support server. Make sure to include enough information for your bug to be reproducible.

If your bug can be used to compromise the bot or end user's security, **message the bot owner privately about it**, and please do not disclose it anywhere.

## Who is the owner of MoonlightBot?

MoonlightBot is owned by MoonlightCapital. With tag `MoonlightCapital#0001` and ID `256460316660072448` on Discord.
6 changes: 0 additions & 6 deletions support/beta.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,6 @@ To keep MoonlightBot beta in a server, any member with manage server permissions

No, you don't need to clutter your server with two almost identical bots. As stated above, you can ask support for a data transfer, then remove stable. Transferrals are free and instant.

### It does not have the "Verified bot" checkmark

A bot is eligible for verification once it [reaches 75 servers](https://support.discord.com/hc/en-us/articles/360040720412-Bot-Verification-and-Data-Whitelisting). The checkmark only signifies that a bot has been reviewed by Discord, and allows it to join more than 100 servers.

MoonlightBot beta shares most of the codebase with the verified MoonlightBot, which complies with Discord's requirements. Since those two bots do essentially the same things, you can add beta safely even if it doesn't have a checkmark.

### I have a fear it may break from a moment to another

Before any major breaking change is sent to beta, it's carefully reviewed in another test bot by both developers and volunteers. The chance of bugs is pretty low, and you can always [report bugs](https://discord.gg/hNQWVVC) for them to be fixed quickly, for a greater good.
Expand Down