SylonSylon
特徴
コマンド
すべての機能メッセージルール

メッセージルール

メッセージの意味ではなく形に対する上限 — 絵文字、行数、大文字、メンション、zalgo。無料で、どの言語でも同じ。

概要

ここでメッセージを読む他のすべては「何を言っているか」を尋ねます。ワードフィルターはあなたが並べた語を照合し、解析は意図を判断してモデル呼び出し分の費用がかかります。メッセージルールは意味を一切問いません。絵文字が何個か、行が何行か、どれだけが大文字か、何人にメンションしたか。だから実行コストがゼロで、AI も不要で、どの言語でもまったく同じように動きます。数えることは言語的な行為ではないからです。

仕組み

1

9つの上限、それぞれ個別に無効

絵文字、行数、文字数、大文字、メンバーへのメンション、ロールへのメンション、添付、スタンプ、そして zalgo 用のスイッチ。上限 0 は「この項目は確認しない」を意味するので、あなたのサーバーが何を多すぎると考えるかを決めるまで機能全体が動きません。
2

まず削除、繰り返すときだけ処分

メッセージは必ず削除され、どのルールに触れたかがメンバーに伝えられます。処分はそれとは別で、違反回数として数えられ、既定では何もしません。書式を誤るのは盛り上がった人であって、荒らしではないからです。
3

編集も読みます

無難な内容を投稿してから絵文字の壁に書き換えても意味がありません。同じルールが編集後のメッセージにもう一度かかります。両方の経路は同じ実装を共有しているので、同じメッセージを違うように判断することはありえません。

主な機能

Unicode 絵文字とカスタム絵文字を合算する絵文字の上限
チャンネルを画面外へ押し出す文字の壁に対する行数と長さの上限
大文字の割合。大文字と小文字の区別がある文字だけで測定
メンバーとロールへのメンションの個別上限。対象ごとに1回として計上
添付とスタンプの上限
結合文字の比率による zalgo 検出。通常のアクセント表記には決して触れません
除外ロール・メンバー・チャンネルと、専用のログチャンネル
しきい値を超えたときのタイムアウト・キック・BAN への任意の段階的処分

セットアップ

1.ダッシュボードのメッセージルールタブを開いて有効にし、ログチャンネルを選びます。
2.サーバーが本当に必要とする上限だけを設定します。0 のままのものはすべて無効のままです。
3.数日は処分を「削除のみ」にしてログを読んでください。何が削除されていたかがそのまま分かります。
4.長文や絵文字の多い投稿を正当に行うスタッフやボットには除外ロールを追加します。

詳しい動作

数えることはどの言語でも同じ、判断はそうではない

この機能がワードフィルターや解析の内側ではなく隣にある理由はそこにあります。単語リストは言語ごとに書き、永遠に手入れが必要です。モデルはお金がかかり、間違えることもあります。しかし絵文字10個はトルコ語でもタイ語でも日本語でも10個で、その答えはメッセージを一巡するだけの費用です。だからこれらのルールは、予算なしにあらゆるサーバーのあらゆるメッセージで動かせます。

ルールが不公平になりうる箇所は、狭めてある

このうち2つは、ある言語が存在するというだけで静かに罰しかねないので、どちらも制約されています。大文字ルールは大文字小文字の区別がない文字を無視します。それは世界の文字の大半です。zalgo は結合文字の有無ではなく基底文字に対する比率で検出します。ベトナム語、トルコ語、ギリシャ語、そしてアクセントを持つあらゆる表記が普通にそれを使うからです。1文字に1つの記号は表記であり、10個はレイアウトへの攻撃です。

削除は1回、通知は1件、ログは1行

1つのメッセージが同時に複数のルールに触れることがあります。Sylon はそのすべてを挙げ、削除は1回、違反は1件として数え、チャンネルには数秒後に自分で消える通知を1件送り、ログチャンネルには該当した各ルールをその数値と上限とともに記した1行を書きます。

設定

絵文字の上限Unicode 絵文字とカスタム絵文字の合計。0 でこのルールは無効になります。
行数の上限1つのメッセージ内の改行数 — チャンネルを画面外へ押し出す文字の壁です。0 でこのルールは無効になります。
文字数の上限人が見たとおりの文字数で数えるので、絵文字1つは1文字です。0 でこのルールは無効になります。
大文字の上限 (%)大文字の割合。大文字と小文字の区別がある文字だけを数えるため、アラビア語・タイ語・中国語・韓国語がこのルールに触れることはありません。0 で無効になります。
これより短いメッセージは対象外これより短いメッセージは大文字の判定を一切受けません。これがないと「OK!」は100%大文字となり、サーバー中の相づちが削除されます。
メンバーへのメンション上限1つのメッセージでメンションされた異なるメンバーの数。同じ人を2回メンションしても1人と数えます。0 でこのルールは無効になります。
ロールへのメンション上限メンションされた異なるロールの数。@everyone と @here はここでは数えません。あれは権限の問題で、その乱用はサーバーガードが扱います。
添付の上限1つのメッセージに付いたファイルと画像の数。0 でこのルールは無効になります。
スタンプの上限1つのメッセージに付いたスタンプの数。0 でこのルールは無効になります。
zalgo テキストをブロック結合文字を積み重ねて周囲の行にはみ出させたテキスト。数値ではなくスイッチにしているのは、しきい値が Unicode の性質そのものであり、通常のアクセント付き表記が到達することはないからです。
制限に達したときにユーザーに対して実行されるアクション。タイムアウトで一時的に制限、キックでサーバーから削除、禁止で永久禁止。
ログチャンネルボットがこの機能のログ メッセージを送信するチャネル。
除外ロールこれらのロールのいずれかを持つメンバーは、この保護から免除されます。
除外メンバー除外ロールに加えて、このシステムが完全に無視する特定のメンバー。
除外チャンネルこれらのチャネルのメッセージは、この保護によってチェックされません。

知っておきたいこと

削除には「メッセージの管理」が必要で、加えて選んだ処分が要求する権限も必要です。
管理者または「サーバー管理」を持つメンバーは決して判断されず、除外リストの人も同様です。
チケットは対象外です。その内容はチケット自身の書き起こしに既に残っています。
各ルールは1分あたりではなくメッセージごとに数えます。速度の制限はスパム対策の仕事です。

よくある質問

なぜ各上限は既定で 0 なのですか?

サーバーが埋めていない数値欄は無効でなければならないからです。もし 0 が「何も許可しない」を意味したら、設定前に機能を有効にした瞬間にサーバー中のメッセージが削除されます。ゼロはそのルールを確認しないという意味で、それが「先に有効化して後から設定する」を安全にする唯一の解釈です。

大文字ルールは大文字のない言語を罰しませんか?

できません。割合は大文字と小文字の区別がある文字だけで測るため、アラビア語・タイ語・中国語・韓国語・ヘブライ語はいずれも 0 となり、決して触れません。最低文字数もあります。「OK!」は 100% 大文字ですが叫んではいないからです。

これは @everyone の乱用を捕まえますか?

いいえ、意図的にです。@everyone と @here は量ではなく権限であり、使ってよい人は使ってよいのです。その乱用はサーバーガードが、あるべき場所で扱います。

関連機能