Anti Spam は、プレイヤーのチャットを監視し、以下を自動検知するビヘイビアパックアドオンです。
• 連投(短時間に大量のメッセージ)
• 同一メッセージの繰り返し
• 文字連打(例: ああああああ、!!!!!!!)
• NGワード(禁止語)
違反が検知されると、プレイヤーをミュートまたはキックします。ミュート状態とNGワードの警告回数はワールドに保存されるため、再接続やワールド再読み込み後も維持されます。
管理コマンドはすべてオペレーター権限レベル2(/op と同じ)が必要です。チートの有効化は不要です。
───
インストール方法
1. 「Anti Spam」フォルダをビヘイビアパックのフォルダに配置します。
…/development_behavior_packs/Anti Spam/
2. ワールド設定を開きます。
3. ビヘイビアパックから「Anti Spam」を有効化します。
4. ワールドに入り直す(または再起動する)ことでスクリプトが読み込まれます。
設定はワールドの Dynamic Properties に保存されます。ワールドの保存・再読み込み後も維持されます。
───
言語設定
日本語、英語、両言語(バイリンガル)に対応しています。
コマンド:
/spam:language ja → 日本語のみ
/spam:language en → 英語のみ
/spam:language both → 両言語表示(デフォルト)
デフォルト: both 表示例: 英語テキスト | 日本語テキスト
───
検知される内容
1. 連投(ラピッドメッセージ)
設定した時間内に許可回数を超えるメッセージを送ると、スパムと判定されます。
デフォルト: 3秒以内に3回を超えると処罰
2. 同一メッセージの連投
同じ内容のメッセージを連続で送ると、スパムと判定されます。
デフォルト: 同じメッセージを3回連続で送信すると処罰
3. 文字連打
1つの文字が連続しすぎているメッセージは、スパムと判定されます。
デフォルト: 同じ文字が8文字以上連続(例: ああああああああ、!!!!!!!!)
4. NGワード(禁止語)
禁止語を含むメッセージは即座にブロックされます。
デフォルトのNGワード: 馬鹿, アホ, しね, ゴミ
検知の特徴:
• 英字の大文字・小文字を区別しない
• 全角・半角を正規化して判定
• カタカナをひらがなに変換して判定(日本語向け)
注意: 部分一致です。禁止語が別の単語の一部に含まれている場合も検知されます。
───
処罰の種類
スパム時の処罰
設定コマンド: /spam:punishment
タイプ “mute”:
一定時間チャットを送信できなくなる(デフォルト: 60秒)
タイプ “kick”:
ワールドからキックされる
NGワード時の処罰
設定コマンド: /spam:ngpunishment(スパム処罰とは別設定)
タイプ “kick”:
警告上限に達するとキックされる(デフォルト)
タイプ “mute”:
警告上限に達するとミュートされる
タイプ “warn_only”:
警告のみ表示。上限到達後もキック・ミュートは行わない
NGワードの警告フロー(デフォルト):
1回目 → 警告 (1/3)
2回目 → 警告 (2/3)
3回目 → キック(設定によりミュート)
警告回数はプレイヤーごとに保存され、再接続後も維持されます。
───
免除設定
以下のプレイヤーはチェック対象外です。
• サーバーオペレーター(OP)— デフォルトで免除
• タグ “spam_exempt” を持つプレイヤー — 免除
OPを付けずに特定プレイヤーを免除する場合:
/tag <プレイヤー名> add spam_exempt
OP免除を無効にする場合:
/spam:config exempt_operators 0
OP免除を再有効化する場合:
/spam:config exempt_operators 1
───
コマンド一覧
すべて /spam: で始まり、オペレーター権限(レベル2)が必要です。
───
設定確認
/spam:status
言語、処罰設定、各種上限値、免除設定など、現在の設定をすべて表示します。
───
言語設定
/spam:language <ja|en|both>
使用例:
/spam:language ja
/spam:language en
/spam:language both
───
NGワード管理
/spam:ngword list /spam:ngword add <単語> /spam:ngword remove <単語>
使用例:
/spam:ngword list
/spam:ngword add 禁止語
/spam:ngword remove 禁止語
登録時は入力した文字列がそのまま保存されます(判定時は正規化が適用されます)。
───
スパム処罰の設定
/spam:punishment mute <秒数> /spam:punishment kick
使用例:
/spam:punishment mute 60
/spam:punishment mute 120
/spam:punishment kick
kick を選ぶ場合、秒数の指定は不要です。 秒数を指定した場合は、将来 mute に戻したときのためにミュート時間として保存されます。
───
NGワード処罰の設定
/spam:ngpunishment <mute|kick|warn_only>
使用例:
/spam:ngpunishment kick
/spam:ngpunishment mute
/spam:ngpunishment warn_only
───
詳細数値の調整
/spam:config <項目> <値>
設定可能な項目:
time_window_sec
連投判定の時間窓(秒)
デフォルト: 3
max_messages
時間窓内に許可される最大メッセージ数
デフォルト: 3
same_msg_limit
同一メッセージが何回連続でスパムになるか
デフォルト: 3
max_ng_warnings
NGワードの最終処罰までの警告回数
デフォルト: 3
repeated_char_limit
許可される連続同一文字数の上限
デフォルト: 8
exempt_operators
1 = OPを免除, 0 = OPもチェック対象
デフォルト: 1
使用例:
/spam:config time_window_sec 5
/spam:config max_messages 4
/spam:config same_msg_limit 3
/spam:config max_ng_warnings 5
/spam:config repeated_char_limit 6
/spam:config exempt_operators 1
注意: 値は0以上である必要があります。 exempt_operators は 0 または 1 のみ指定できます。
───
管理用コマンド
ミュート解除:
/spam:unmute <プレイヤー名>
NG警告のリセット:
/spam:resetwarnings <プレイヤー名>
設定の再読み込み:
/spam:reload
モデレーションログの表示:
/spam:logs
(直近10件を表示。最大50件までワールドに保存)
記録されるイベント:
• NGワード警告
• NGワードによるキック / ミュート
• スパムによるミュート / キック
• 手動ミュート解除
• 警告リセット
───
デフォルト設定一覧
言語: both(英語 + 日本語) スパム処罰: mute NGワード処罰: kick ミュート時間: 60秒 連投判定の時間窓: 3秒 時間窓内の最大メッセージ数: 3 同一メッセージ上限: 3回連続 文字連打上限: 8文字 NGワード警告上限: 3回 管理者(OP)免除: 有効 免除タグ: spam_exempt 保存ログ件数の上限: 50件
───
おすすめ設定例
カジュアルなサバイバルサーバー(緩め)
/spam:language both /spam:punishment mute 30 /spam:ngpunishment warn_only /spam:config time_window_sec 5 /spam:config max_messages 5 /spam:config repeated_char_limit 10
公開サーバー(厳しめ)
/spam:language ja /spam:punishment mute 120 /spam:ngpunishment kick /spam:config time_window_sec 3 /spam:config max_messages 3 /spam:config max_ng_warnings 2 /spam:config repeated_char_limit 6
日本語のみのサーバー
/spam:language ja /spam:ngword add バカ /spam:ngword add クズ /spam:ngpunishment mute /spam:punishment mute 90
───
プレイヤー側の体験
ミュート中
チャットを送信できません。次のようなメッセージが表示されます。
ミュート中です。残り: 45秒
(言語設定により英語のみ、または両言語表示になります)
ミュート状態は退出・再接続後も維持されます。
NGワードを含む場合
メッセージはブロックされます。警告が表示されます。
[警告] 不適切な言葉が含まれています。(1/3)
スパムと判定された場合
メッセージはブロックされます。設定に応じて:
ミュートの場合:
スパム行為(過度な連投)により60秒間ミュートされました。
キックの場合:
サーバー全体に通知が表示され、プレイヤーがキックされます。
───
トラブルシューティング
問題: コマンドが見つからない 対処: ビヘイビアパックが有効か確認し、ワールドに入り直す
問題: 権限がないと表示される 対処: オペレーター権限レベル2が必要です(/op <自分の名前>)
問題: 設定が変わっていないように見える 対処: /spam:reload を実行後、/spam:status で確認
問題: OPがミュートされる 対処: /spam:config exempt_operators 1 を実行
問題: 特定プレイヤーを免除したい 対処: /tag <プレイヤー名> add spam_exempt を実行
問題: ミュートが解除されない 対処: /spam:unmute <プレイヤー名> を実行
問題: NGワードの誤検知がある 対処: /spam:ngword remove <単語> で該当語を削除
───
技術的な注意事項
• チャットのみ監視: コマンドや看板などは対象外です。
• 永続化: 設定、ミュート・警告、ログはワールドの Dynamic Properties に保存されます。
• セッションデータ: メッセージのタイミング情報はメモリ上に保持され、退出時にリセットされます(ミュート・警告は維持されます)。
• Script API: @minecraft/server(Beta API)が必要です。
───
コマンド早見表
/spam:status /spam:language both /spam:ngword list /spam:ngword add <単語> /spam:ngword remove <単語> /spam:punishment mute 60 /spam:punishment kick /spam:ngpunishment kick /spam:config time_window_sec 3 /spam:config max_messages 3 /spam:unmute <プレイヤー名> /spam:resetwarnings <プレイヤー名> /spam:logs /spam:reload
───



コメント