DiscordのID直打ちでのリンクの書き方と文字装飾

ちなみに、ここに書く方法はDiscordのBotが送信するメッセージでも使用することができます。

↓詳細（英語）

https://discord.com/developers/docs/reference#message-formatting

# ID直打ちリンク
IDを取得しておく必要が出てくるので、まず、Discordの[ユーザー設定] -> [詳細設定] -> [開発者モード]をオンにしておきましょう。
これによってチャンネルなどを右クリックすることでIDをコピーすることができるようになります。

## チャンネルリンク
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/65610231-909a-a57c-7f70-5624b9de01eb.png)

```
<#チャンネルID>
```

チャンネルの種類を問わずすべてのチャンネルでリンクを生成できる。
カテゴリもこの方法でリンクを生成できる。
別サーバーのチャンネルも指定することができるが、そのサーバーに参加していない人からは「**#deleted-channel**」と表示される。

## ユーザーリンク（メンション）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/28ab6fb3-add3-4dbc-a544-de01d8200451.png)

```
<@!ユーザーID>
```

自分と関わりのない人はIDを入力してもそのユーザーの情報を見ることはできない（チャット欄でも入力した内容がそのまま表示される）。

## ロールリンク（メンション）

```
<@&ロールID>
```

自分が参加しているかに関わらず、他のサーバーのロールを指定することはできない。
指定した場合は「**@ deleted-role**」と表示される。
DiscordのPCクライアント上では、「このロールに対して@ mentionを許可する」がオフになっていてもメンションが飛ぶので注意（恐らくバグ）。

## 絵文字

```
<:絵文字エイリアス:絵文字ID>
```

絵文字IDを確認するには以下の手順のどれかをする必要がある。

1. 絵文字の直前に半角バックスラッシュ[ \ ]をつけてメッセージを送信する。
1. 絵文字がつけられたメッセージの送信履歴をBotで読み取る。

## スラッシュコマンド
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/63de99fb-e818-c1b8-d214-af2989aa6025.png)

```
</コマンド名:コマンドID>
```

コマンドのリンクを貼ることができる。
リンクをクリックすると、自動的に入力欄にコマンドが入力された状態になる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/eec16458-6011-366b-e872-fb83ca1d299f.png)

### コマンドIDについて

以下の方法で取得できる。
1. ユーザー設定 > 開発者設定 > 開発者モード を有効にする。
1. チャット入力欄にコマンドを入力する。
1. 入力欄上部に表示されるコマンド説明を右クリックして、「コマンドIDをコピー」を選択する。
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/35cd1536-5c47-2b90-2932-22b7257a92dc.png)


## タイムスタンプ（時刻表記）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/2d1860c6-00f5-fccb-cebc-5f2f9c300c19.png)

```
<t:UNIX時間:表示形式>
```

日時を好きな表示形式で表示することができる。
ここで表示される時刻はタイムゾーンを考慮したもののため、海外の人が見たらその人の現地時間に変換されて表示される。

言語設定によって表示形式が変わる。
以下は英語の例：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/9566405d-430d-7018-42e9-76637ffd3d5e.png)

### UNIX時間について

1970年1月1日0時0分0秒からの経過時間を表した数字のことです。

以下のサイトで取得できます。

https://tool.konisimple.net/date/unixtime

### 表示形式について

末尾のアルファベットを変更することによって表示を変更することができます。

| 表示形式 | 表示（日本語）  | 説明 |
|:-:|:--|:--|
| t  | 08:09  | 短い時刻  |
| T  | 08:09:12  | 長い時刻  |
| d  | 2024/09/02  | 短い日付  |
| D  | 2024年9月2日  | 長い日付  |
| f  | 2024年9月2日 08:09  | 短い日時  |
| F  | 2024年9月2日 月曜日 08:09  | 長い日時  |
| R  | 1日前  | 相対時刻  |

## サーバー内リンク

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/88e49a22-cd18-de2d-c902-33445610b5bd.png)

```
<id:種類>
```

サーバー内（主にコミュニティサーバー）の項目へのリンクを貼ることができる。
コミュニティ化していないなどでリンク先が存在していない場合は、リンク化しても機能しない。

| 種類 | リンク先の項目 |
|:-:|:--|
| customize  | チャンネル&ロール  |
| browse  | チャンネル一覧  |
| guide  | サーバーガイド  |
| linked-roles  | 連携ロール  |
| linked-roles:ロールID  | 連携ロールの内、ロールIDで指定したロール  |


# 文字装飾
文字装飾にはショートカットキーが設定されていることもあります。
入力中のメッセージを選択して対応するショートカットキーを押すことでも同様のことができます。

## 太字
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/8a92d083-f678-447d-4476-2ed5aa0f4d65.png)

```
**文字列**
```


ショートカット： Ctrl + B

## 斜体
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/d4d583d5-11c8-730f-e337-254444dea6c7.png)

```
*文字列*
```

または

```
_文字列_
```

日本語文字だとほぼ変化がない。
ショートカット： Ctrl + I

## 下線（アンダーライン）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/7c3aab92-6e62-749d-d83a-81253de47d18.png)

```
__文字列__
```

ショートカット： Ctrl + U

## 取り消し線
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/54e3ccae-f594-edf5-cc44-2041ad57bbe3.png)

```
~~文字列~~
```

ショートカット： 不明（知ってる人がいたら教えてください…）

## スポイラー
![tmp.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/77fd2bf1-67c3-24f0-4f2f-f0d35d3a6827.gif)

```
||文字列||
```

文字を隠すのに使える。
スポイラー文字はクリックするまで中身を見ることができない。

## 整形済み文字
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/5dc78365-52de-7673-3cbe-9808893841c7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/fff0afd8-d634-0a7f-fbe1-357c0424cd2e.png)

```
`文字列`
```

等幅フォントで文字を表示する。
ここで囲まれた部分でリンクや文字装飾を使うことはできない。
（バッククォートの外から文字装飾の記号で囲むことで、整形済み文字全体に文字装飾をかけることはできる）

# コードブロック

>\`\`\`言語名
コード本文
\`\`\`

ソースコードなどを見やすく書くことができる。
指定した言語に合わせてコード本文の色を変えることができる（PCとブラウザ版のみ）。
ここで囲まれた部分でリンクや文字装飾を使うことはできない。

**例**
>\`\`\`python
>print ("Hello!")
>\`\`\`

こうなる↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1736050/dc89f2f3-54be-7b0e-4ed1-827e487f930f.png)


# エスケープ

バックスラッシュ`\`をつければ大抵の構文はエスケープされる。
ただし、この方法だとメンションの類はリンクは消えてもメンション自体は飛んでしまうので注意。

**例**
一部の顔文字等は特に、エスケープをしないと正しく表示されない。

```
\_:(´ཀ`」∠):_
```

```
(\*´∀`*)
```


その他、コードブロックや整形済み文字を使ってエスケープする方法もある。
この方法ではメンションも正しくエスケープされる。

```
`@everyone`
```