# Wick集
- [ダッシュボード](https://wickbot.com)
- [Documentation](https://docs.wickbot.com)
- Wickのメッセージ撮影協力: [🔥 Shout freely🔥雑談&YouTubeコミュニティ](https://discord.gg/D98ETk9zJA)
<!-- [TOC] -->
## 表記上の注意
- 必要な引数は、コマンドサンプルのときにそのまま書かれます。
- 任意の引数は、コマンドサンプルのときに大なり小なり`<>`で囲まれます。実行する際には大なり小なりは必要ありません。
- :gem:マークはプレミアム専用です。
## 権限値
| 権限値 | Wick上での意味 |
| -------- | -------- |
| 権限値 `5` | サーバー所有者と`Extra Owner`(追加所有者) |
| 権限値 `4` | `Trusted Admins`(信頼できる管理者) |
| 権限値 `3` | Wick上での`Admin`(管理者権限のことではない) |
| 権限値 `2` | Wick上での`Moderator` |
| 権限値 `1` | 普通の人 |
| 権限値 `0` | 処罰(Quarantine、Mute)されたメンバー |
- `Extra Owner`はサーバーの所有者(オーナー)が直々に個別に設定しないといけない。
- `Trusted Admin`はサーバーの所有者もしくは`Extra Owner`が個別に設定しないとしないといけない。
↑両方、ロール単位で設定することは不可能。また、それぞれ5人まで設定可能。`Extra Owner`は`Trusted Admin`のすべての権限を継承する。
- Wick上での`Admin`はStatic Settingsから`Admin Role`を設定し、それを対象者に付与することで`Admin`になることができる。
- Wick上での`Moderator`はStatic Settingsから`Moderator Role`を設定し、それを対象者に付与することで(以下略)
↑両方、もちろん設定できるのは権限値`4`以上の人のみ
これらの具体的な設定方法は次の節で解説。
## 権限値の設定
### Extra Owner及びTrusted Admin
- **`Extra Owner`を設定する場合**: `w!s ユーザーID ?add 11`
- **`Trusted Admin`を設定する場合**: `w!s ユーザーID ?add 10`
- **`Extra Owner`を** **_削除_** **する場合**: `w!s ユーザーID ?del 11`
- **`Trusted Admin`を** **_削除_** **する場合**: `w!s ユーザーID ?del 10`
### Wick Admin及びWick Moderator
- **`Wick Admin`を特定のロールに設定する場合**: `w!s ロールID ?add 3`
- **`Wick Moderator`を特定のロールに設定する場合**: `w!s ロールID ?add 4`
- **`Wick Admin`を特定のロールから** **_剥奪_** **する場合**: `w!s ロールID ?del 3`
- **`Wick Moderator`を特定のロールから** **_剥奪_** **する場合**: `w!s ロールID ?del 4`
## 反サーバー崩壊(Anti Nuke)
Wickが他のボットと異なる決定的な特徴は、**反サーバー崩壊システム**を搭載していることである。
これは、あなたのサーバーで起こるあらゆる変化(自発的または計画的)を観察し、記録することを目的とした監視システムである。
主な観測マーカーは次のとおりである:
1. **チャンネルの作成と削除**
1. **BAN**
1. **絵文字の作成と削除**
サーバーを破壊する可能性のあるものを**すべて監視**している。
これはサーバーに変更を加える力を持つ不正な管理者や他の権限持ちメンバーに対抗するために作られたシステムである。
また、システムの整合性を保つために、Wickは反サーバー崩壊システムを回避しようとする試みも監視している。
不正な管理者/ボットやメンバーの権限/ロールを剥奪し、すぐにオーナーに通知する。
### :gem:パニックモード
**パニックモード**と呼ばれる複雑で効率的なシステムにより、Wickはスクリプトや専用のボットで行われる可能性のある急速な大量サーバー破壊攻撃をかわすことが可能。
Wickは破壊行為に気付くとすぐに**サーバーをロックダウン**して、裏で修正をする。サーバーのオーナーとWickだけが、サーバーの完全な権限を持つことになる。
ロックダウン中、Wickは同時に破壊発覚前のサーバー情報を取得するminiWickも展開する。
破壊を計画したすべての関係者を見つけるには時間がかかる。このminiWickはWickのボットとは別物なので、Wickのリソースに負担をかけることはない。
ボットはminiWickから完全に分離されているので、たとえ何百もの破壊兵器があっても、Wickはまったく被害を受けない。
原因を理解して修正したら、**Wickは保存されたサーバーの最新のスニペットを読み込む。** この「読み込み」は基本的に「復元システム」である。
<!-- I need Image -->
## Heat
荒らしやスパムに対抗する基本的な考え方は、短いスパンでのメッセージ送信や画像送信などの数に制限を設けることである。
Wickは、**Heat**(熱)と呼ばれる独自の指標を使用している。
これは、ユーザーの現在の行動に適応するアルゴリズムで、メンバーやそのアクティビティが増加すると、適切に上昇する。
また、Wickは隠しフィルターを使って、メッセージやチャンネル内での行動を分析する。
これらすべての要素が、時間の経過とともに減少する熱量に貢献し、常連客が不当に沈黙することを防ぐことができる。
Wickのヒートシステムは、機関銃に例えると、撃ちすぎれば熱くなり、しばらく放置すれば冷めるというものである。

システムは完全に**メッセージ**が基になっている。これには**ウェブフックも含まれ**、少し厳しい扱いになっている。
:::danger
サーバーを破壊しようとする荒らしが来ることが少しでも考えられる場合、WickのHeatを無効化しないでください!
:::
### Heat Factor(Heatが発生する原因)
- **通常のメッセージ**: すべてのメッセージはどんなに無害でもHeatが発生する。(しかし、その量は僅かであるためチャットにほぼ影響を及ぼさない)
- **似たメッセージ**: 前投稿したものと同じメッセージ または 前投稿したものと酷似しているメッセージ のスパムは、Heatが発生する。
- **Suspicion**: Wickが「怪しい」と感じたアカウントは、Heatが発生する。「怪しい」と判断する基準は非公開。ちなみにだいたい当たる(経験談)
- **宣伝**: Discordサーバーの招待を投稿したときに発生。**デフォルト設定だと、**すぐに100%のHeatが発動する。そのため、即座にミュート/キック/BANにつながる可能性が非常に高い。
- **NSFWなウェブサイト**: `宣伝`のケースと同じように扱われる。
- **悪意のあるサイト**: 上2つのケースと同様。IPロガーやキーロガーなどが含まれる。
- **絵文字**: メッセージに入っている絵文字の個数により発生するHeatは変動する。
- **文字**: メッセージの中の大文字・小文字の個数によって++ごくわずか++の熱が増える。日本語は未検証。
- **行数**: たくさんの行があるメッセージに対して、行数に応じてHeatが発生する。
- **:gem:非アクティブ**: 非アクティブなチャンネルでスパムをした人に対してHeatが発生する。
- **メンション**: ユーザー/ロールメンションの個数に対してそれぞれ設定したHeatが発生する。`@everyone`と`@here`は、**デフォルトでは**100%のHeatが発生する。
- **添付ファイル**: メッセージに添付されたファイルによって(個数、種類など)Heatが発生します。
- **その他の要因**: Wickが非公開にしている条件。
### サイレンシング
サイレンシングオプションは、最初のHeat発生と最後のHeat発生のミュートタイミングを設定することができる。最後の違反は、ユーザーがHeatが満タンに到達したときである。

上の画像はその設定内容を説明したものである。この設定の場合だと、ユーザーは違反行為を行うたびに、**上限に達するまで**1分間ミュートされる。上限に達すると、ユーザーの希望に応じて設定された時間(ここでは11分)、ミュートされる。

:gem:CAP(ミュート時間)が短い時間に設定されている場合、荒らしはそれを待って、すぐスパムをするかもしれない。そのため、Wickは**Multiplier**と呼ばれる別の解決策を持っている。
:gem:++毎回、罰を厳しくするフィルター++である。Wickがミュートを解除した直後にまた違反をすると、より長い時間ミュートされる。
そしてその長い時間が標準値となる。もしユーザーが再び同じことを繰り返すなら、今度はさっき標準値になった新しい値を使用して、再びミュートの時間を増やす。
### Heatフィルター
Heatフィルターは、ごく基本的なものから複雑なものまで、セキュリティのためのツールで構成されている。
各フィルターは、トリガーがかかると一定のHeatを発生させる。それが満タンになると、Wickは何らかの処罰をする。各フィルターには、発生させるHeatの割合と、トリガーとなった場合の処罰が設定されている。

### :gem:Heatパニックモード
Heatシステムは、先程延べた++反サーバー崩壊++と同じくパニックモードを備えている。これは特に**荒らし**を対象としている。
一定数のスパムしているアカウントがあると発動する。一度発動すると、パニックモード中に何らかのメッセージを送信した荒らし用アカウントはミュートされる。
フィルターは、通常のユーザーには通常通り機能する(⇒通常のユーザーは巻き込まれない)。

上の画像に基づき、特定の期間に**3人の荒らし**が何らかの違反をした場合、Wickは約**10分間**パニックモードを開始し、有害か否かを問わず、メッセージを送信した荒らし用アカウントを即座にミュートする。
**このモードは、通常のメンバーには適用されない。しかし、通常のHeatシステムは、このモードでも引き続き機能し続ける。**
:::info
Heatシステムは、最高のスパム対策と荒らし対策である。あなたは面倒なことから解放されるでしょう。
:::
---
ここからは、Wickで使えるコマンドを紹介する。
## Moderation(実際のアクション)
### activity(処罰ログ)
#### エイリアス
- `w!a`
#### 説明
このコマンドを使うと、最も重要なアクションに関する最近のアクティビティを表示できる。
#### 必要な権限
- 権限値 `2` 以上
#### サンプル

#### コマンドサンプル
:::info
`w!activity ?t <種類> <?raw>`
:::
また、`w!activity`と入力し、ボタンを押すことで別のセクションに移動することができる。
##### 種類
特定のタイプの最近のアクティビティ(**BAN、キックなど**)を直接表示する場合は、このパラメーターを使用して、実際に必要な`種類`を指定する必要がある。
**使える種類:**
| 種類 | 意味 | コマンド | エイリアス |
| ---------- | ----------------------------------------- | -------------- | ----------------- |
| メンション | サーバー内の最近の`メンション/ping`を表示 | `w!a ?t pings` | `w!a ?t mentions` |
| BAN | サーバー内の最近の`BAN`を表示 | `w!a ?t bans` | `w!a ?t b` |
| キック | サーバー内の最近の`キック(追放)`を表示 | `w!a ?t kicks` | `w!a ?t k` |
| ロール作成 |サーバー内の最近の`ロールの作成`イベントを表示|`w!a ?t roles created`| `w!a ?t rc` |
| ロール削除 |サーバー内の最近の`ロールの削除`イベントを表示|`w!a ?t roles deleted`| `w!a ?t rd` |
|チャンネル作成|サーバー内の最近の`チャンネルの作成`イベントを表示|`w!a ?t channels created`|`w!a ?t cc`|
|チャンネル削除|サーバー内の最近の`チャンネルの削除`イベントを表示|`w!a ?t channels deleted`|`w!a ?t cd`|
| 絵文字作成 |サーバー内の最近の`絵文字の作成`イベントを表示|`w!a ?t emojis created`| `w!a ?t ec` |
| 絵文字削除 |サーバー内の最近の`絵文字の削除`イベントを表示|`w!a ?t emojis deleted`| `w!a ?t ed` |
|ウェブフック作成|サーバー内の最近の`ウェブフックの作成`イベントを表示|`w!a ?t webhooks created`|`w!a ?t wc`|
|ウェブフック削除|サーバー内の最近の`ウェブフックの削除`イベントを表示|`w!a ?t webhooks deleted`|`w!a ?t wd`|
:::danger
**そのページに記録されたアクティビティがない場合、下に記述されている `?raw` オプションを使用しない限り、Wickはそのページにアクセスさせない。**
:::
:::info
たとえば、サーバーの最近のキックを表示する場合、コマンド `w!activity ?t k`を使う。
:::

##### ?raw
その種類のアクティビティが記録されていない場合でも、Wickにすべてのアクティビティページを表示させたい場合は、`w!a ?raw`を使用する。

### info(各種情報)
#### エイリアス
- `w!i`
- `w!whois`
#### 説明
userinfo/serverinfo/roleinfoを表示する。
#### 必要な権限
- 権限値 `2` 以上(すべての情報を閲覧可能)
- 権限値 `1` 以上(一部情報のみ閲覧可能)
#### サンプル

#### コマンドサンプル
:::info
`w!info 要素`
:::
##### 要素
要素は `ユーザー`/`ロール`/`サーバー` のどれか。
###### ユーザー
ユーザーの情報は、`w!i ユーザー`という構文で見ることができます。`ユーザー`はあなたが見たいユーザーの名前や、メンション、IDなどが使用可能。
:::success
> メンションを使用
- **`w!i @すずねーう`**
(このコマンドは`すずねーう`の情報が表示される)
:::
:::success
> ユーザー名/ニックネームを使用
- **`w!i すずねーう`**
(このコマンドは`すずねーう`の情報をメンションを使用せずに表示する)
:::
:::success
> ユーザー名+タグを使用
- **`w!i すずねーう@垢凍結されました#3315`**
(このコマンドは`すずねーう@垢凍結されました#3315`の情報を++完全な++ユーザー名で表示する)
:::
:::success
> [ID](https://support.discord.com/hc/en-us/articles/206346498)の使用
- **`w!i 770889812063551489`**
(このコマンドはID `770889812063551489` を持つユーザーを表示する。この場合 `すずねーう@垢凍結されました#3315` になる)
:::
:::info
あなたが提供したいもので始まるユーザー名/タグ/IDを持つ唯一のメンバーであることが確かであれば、完全なものを入力する必要はない。例えば、Mobilfan#1234がそのような名前を持つ唯一のメンバーであれば、`w!i mobil`とするだけでWickは認識してくれる。
:::
Wickは、以下を含むがこれらに限定されない特定のユーザーに関するさまざまな必要な詳細を表示する。
**基本情報**
- サーバー参加日時
- アカウントの詳細 など
**Wickの情報**
- 権限値
- 現在の`Heat`