【Discord.js】BOTのステータスやアクティビティの設定方法解説

こんにちは、りょうです。
まじで暑すぎて溶けながら書いてます。ではいきましょー🫠
## ステータスとアクティビティ
**ステータス**
🟢オンライン(Online)、⛔取込み中(Dnd)、🌙退席中(Idle)、⚫オフライン(Offline)

**アクティビティ**
名前の下に表示されてるやつ(これでいうと`/help || ping:39ms`の部分)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3818367/6a4eeccd-fde0-4734-6e48-be39b4cc6781.png)

こいつらの設定方法の解説をします。

## ステータスの設定
**PresenceUpdateStatus**を使います。
🟢オンライン→`PresenceUpdateStatus.Online`
⛔取込み中→`PresenceUpdateStatus.DoNotDisturb`
🌙退席中→`PresenceUpdateStatus.Idle`
⚫オフライン(オンライン状態を隠す)→`PresenceUpdateStatus.Invisible`

```status.js
const { PresenceUpdateStatus } = require('discord.js');

client.user.setStatus(PresenceUpdateStatus.Online);
// client.user.setStatus(PresenceUpdateStatus.Idle);
// client.user.setStatus(PresenceUpdateStatus.DoNotDisturb);
// client.user.setStatus(PresenceUpdateStatus.Invisible);
```

## アクティビティの設定
**ActicityType**を使います。
`Playing,Watching,Listening,Competing,Streaming,Custom`から選択。
```activity.js
const { ActivityType } = require('discord.js');

       // ...
       
        client.user.setActivity({ 
            name: 'BOTテスト',
            type: ActivityType.Playing
        });
```
**〇〇をプレイ中(Playing)**
```js
        client.user.setActivity({ 
            name: 'BOTテスト',
            type: ActivityType.Playing
        });
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3818367/17751902-ff24-42c5-6c44-532da6e56df6.png)

**〇〇を視聴中(Watching)**
```js
        client.user.setActivity({ 
            name: 'BOTテスト',
            type: ActivityType.Watching
        });
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3818367/9145242d-4c2a-4200-42f9-df0ab0af6b22.png)

**〇〇を再生中(Listening)**
```js
        client.user.setActivity({ 
            name: 'BOTテスト',
            type: ActivityType.Listening
        });
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3818367/6f02f927-ddac-4d43-d80e-4e2c8b2c45da.png)

**〇〇に参戦中(Competing)**
```js
        client.user.setActivity({ 
            name: 'BOTテスト',
            type: ActivityType.Competing
        });
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3818367/7891806d-9fa4-b914-9e35-a6cc30be43f6.png)

**〇〇を配信中(Streaming)**
これは動画か配信のURLを設定していない又は無効な場合はOnlineで表示されます。
```js
        client.user.setActivity({ 
            name: '配信内容', 
            url: 'YoutubeかTwitchの動画、配信URL', 
            type: ActivityType.Streaming 
        });
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3818367/327b3a02-6d9e-a121-0442-25e1b74230a6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3818367/46be08be-3696-e19c-79cb-183735d0c702.png)

**指定したものだけ(Custom)**
```js
        client.user.setActivity({ 
            name: 'BOTテスト',
            type: ActivityType.Custom
        });
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3818367/99504560-a02b-3d5d-e0c2-c7f80919e3b6.png)

## まとめ
今回はステータス、アクティビティの設定方法の解説でした。
カスタムアクティビティやストリーミングなどは日本語の解説記事が少ないので参考になれば嬉しいです。

わからないことあったら書いてくれれば答えていきます。

**Discordにいる荒らしの情報や対策方法の共有をしている自鯖です**
ぜひ参加お願いします↓↓↓↓

https://discord.com/invite/ESRGwGQhxc