Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 割と高機能だと思うけどこんなシステムいくらでも実装されてるMuteSkript
- # Requested by: okaz_ / おかず#1358(459946063080718347)
- # Created by: shuu_9025#1141(422081938489344000)
- # 必須Skript
- # shuu_base_skript (Ver 1.0以上)
- # 必須Addon
- # なし
- # コマンド
- # /mute <Target> [Reason]
- # 対象のプレイヤーをミュートします。 権限: mute.punish.mute
- #
- # /mute-ip <Target> [Reason]
- # 対象のIPアドレスをミュートします。MCIDを指定した場合、そのプレイヤーが使用した最後のIPをミュートします。 権限: mute.punish.muteip
- #
- # /tempmute <Target> <Duration(*1)> [Reason]
- # 対象のプレイヤーを一定期間ミュートします。
- # Durationの指定方法については、*1を参照してください。 権限: mute.punish.tempmute
- #
- # /tempmute-ip <Target> <Duration> [Reason]
- # 対象のIPアドレスを一定期間ミュートします。MCIDを指定した場合、そのプレイヤーが使用した最後のIPをミュートします。 権限: mute.punish.tempmuteip
- #
- # /unmute <Target> [Reason]
- # 対象のミュートされているプレイヤーのミュートを解除します。 権限: mute.unpunish.mute
- #
- # /unmute-ip <Target> [Reason]
- # 対象のミュートされているIPアドレスのミュートを解除します。 権限: mute.unpunish.muteip
- #
- # /mutelist [TargetType(*2)]
- # ミュートされているプレイヤー(またはIPアドレスかその両方)の一覧を表示します。 権限: mute.info.list
- # TargetTypeの指定方法については、*2を参照してください。
- # TargetTypeのデフォルト値は、playersです。
- #
- # /muteinfo <Target>
- # ミュートされているプレイヤーのミュート情報を表示します。 権限: mute.info.info
- #
- # /muteinfo-ip <Target>
- # ミュートされているIPアドレスのミュート情報を表示します。 権限: mute.info.infoip
- #
- # /blackmutingcommand <add|remove|> <short|full> <Command>
- # コマンドをミュート中に使用できないコマンド(*3)として登録、または登録解除します。 権限: mute.punish.blackcmd
- # 第2引数としてshortを選択した場合、第3引数の引数を含まないコマンド部分が使用できないコマンドとして登録されます。
- # 例: [/blackmutingcommand add short tell]とした場合、ミュート中に/tellコマンドは使用できなくなります。
- # 第2引数としてfullを選択した場合、第3引数の引数を含む全てのコマンド部分が使用できないコマンドとして登録されます。
- # 例: [/blackmutingcommand add full gamemode creative]とした場合、ミュート中に/gamemode creativeが使用できないコマンドとして登録されます。/gamemodeコマンド自体は使用可能です。
- # このコマンドは/bmcまたは/blackcmdsのエイリアスコマンドが存在します。
- #
- # /bmclist [short|full|all]
- # ミュート中に使用できないコマンドの一覧を表示します。 権限: mute.info.blackcmds
- # 第1引数のデフォルト値は、allです。
- # 参照
- # *1 - Durationは、<数値>(d, h, m, s, t)で指定します。 例: 5d(=5日), 12h(=12時間)
- # *2 - players, ips, allの3種類が指定可能です。playersはプレイヤー、ipsはIPアドレス、allはその両方です。
- # *3 - クライアントサイドのコマンド(OptiFine導入時の/reloadChunks等)、BungeeCordのコマンド(/glist, /alert等)も設定可能ですが、設定していても使用可能です。
- # 二次配布、改造について
- # 改造は許可します。
- # 二次配布については、開発者及びリクエスト者を明記しているのであれば問題ありません。
- # 改造した際に発生した損害等について、開発者は一切責任を負いません。
- options:
- # AllowNoReason - 理由なしを許可するかどうか。true=許可、false=禁止。
- # デフォルトはtrueです。
- AllowNoReason: true
- # ReasonWhenNoReason - 理由が指定されていない場合に使用される理由。
- # デフォルトは"No Reason"です。
- ReasonWhenNoReason: "No Reason"
- # MinimumDuration - Duration(期間)の最小時間。この時間を下回るミュートはできません。
- # デフォルトは0 secondsです。
- MinimumDuration: 0 seconds
- # MaximumDuration - Duration(期間)の最大時間。 この時間を上回るミュートはできません。
- # デフォルトは365 daysです。
- MaximumDuration: 365 days
- # AllowPunishAdmins - 権限「mute.punish.bypass」が付与されているプレイヤーのミュートを許可するかどうか。 true=許可、false=禁止。
- # この値にかかわらず、コンソールから権限を所持するプレイヤーをミュートできます。
- # デフォルトはfalseです。
- AllowPunishAdmins: false
- # TempMuteCheckInterval - 期限付きミュートの有効期限が切れているかどうかを確認する間隔。
- # デフォルトは1 secondです。
- # この間隔を短くすればするほど、ラグの原因となります。
- TempMuteCheckInterval: 1 second
- # ConsoleMuteCanUnmuteByPlayer - コンソールが実行したミュートをプレイヤーが解除できるかどうか。 true=許可、false=禁止。
- # デフォルトはfalseです。
- ConsoleMuteCanUnmuteByPlayer: false
- # NotifyAllPlayersWhenPunished - ミュートが行われた際、全てのプレイヤーに通知するかどうか。 true=送信する、false=送信しない。
- # この値にかかわらず、権限「mute.punish.notify」が付与されているプレイヤーとターゲットには通知されます。
- # デフォルトはfalseです。
- NotifyAllPlayersWhenPunished: false
- # NotifyAllPlayersWhenUnPunished - ミュート解除が行われた際、全てのプレイヤーに通知するかどうか。 true=送信する、false=送信しない。
- # この値にかかわらず、権限「mute.unpunish.notify」が付与されているプレイヤーとターゲットには通知されます。
- # デフォルトはfalseです。
- NotifyAllPlayersWhenUnPunished: false
- # SendMesageToAdminsWhileMuted - ミュート中に送信しようとしたメッセージを権限「mute.sendmsg」が付与されているプレイヤーに通知するかどうか。 true=送信する、false=送信しない。
- # デフォルトはfalseです。
- SendMesageToAdminsWhileMuted: false
- # TabListPrefixToMutingPlayer - ミュート中のプレイヤーに「[Muted]」または「[IP-Muted]」のPrefixをつけるかどうか。 true=つける、false=つけない。
- # NameTagEditなどの、他のTabList編集プラグインが導入されている場合、この設定はfalseにしてください。
- # デフォルトはtrueです。
- TabListPrefixToMutingPlayer: true
- # AllowOwnMute - 自分自身にミュートを実行できるようにするかどうか。true=許可、false=禁止。
- # デフォルトはfalseです。
- AllowOwnMute: false
- # AllowOwnUnMute - 自分自身のミュートを解除できるようにするかどうか。 true=許可、false=禁止。
- # AllowPunishAdminsがtrueの場合、この設定はtrueにすることをおすすめします。
- # デフォルトはtrueです。
- AllowOwnUnMute: true
- # 以下コードです。下手に編集すると動かないかもしれません。
- function mute_TabListPrefixChange():
- if {@TabListPrefixToMutingPlayer} is false:
- stop
- loop all players:
- if {mutelist::*} contains loop-player:
- set loop-player's tablist name to "&7[Muted] %loop-player%"
- else:
- set loop-player's tablist name to "%loop-player%"
- if {mutelistip::*} contains loop-player's ip:
- set loop-player's tablist name to "&7[IP-Muted] %loop-player%"
- else:
- set loop-player's tablist name to "%loop-player%"
- function mute_TempMuteHasBeenExpired():
- loop {mutelist::*}:
- if {mute.%loop-value%.time} is set:
- if difference between now and {mute.%loop-value%.datetime} is more than or equal to {mute.%loop-value%.time}:
- delete {mute.%loop-value%.reason}
- delete {mute.%loop-value%.sender}
- delete {mute.%loop-value%.datetime}
- delete {mute.%loop-value%.time}
- remove loop-value from {mutelist::*}
- loop all players:
- if loop-player is not loop-value-1:
- if {@NotifyAllPlayersWhenUnPunished} is true:
- send "&a[&bMuteSkript&a]&r &d%loop-value-1% &aを&6自動ミュート解除&aしました。 理由:&r ミュートの有効期限が切れました。" to loop-player
- else:
- if loop-player has permission "mute.unpunish.notify":
- send "&a[&bMuteSkript&a]&r &d%loop-value-1% &aを&6自動ミュート解除&aしました。 理由:&r ミュートの有効期限が切れました。" to loop-player
- send "&a[&bMuteSkript&a]&r &d%loop-value% &aを&6自動ミュート解除&aしました。 理由:&r ミュートの有効期限が切れました。" to console
- send "&a[&bMuteSkript&a]&r &d%loop-value% &aを&6自動ミュート解除&aしました。 理由:&r ミュートの有効期限が切れました。" to loop-value
- loop {mutelistip::*}:
- if {muteip.%loop-value%.time} is set:
- if difference between now and {muteip.%loop-value%.datetime} is more than or equal to {muteip.%loop-value%.time}:
- delete {muteip.%loop-value%.reason}
- delete {muteip.%loop-value%.sender}
- delete {muteip.%loop-value%.datetime}
- delete {muteip.%loop-value%.time}
- remove loop-value from {mutelistip::*}
- loop all players:
- if loop-player's ip is not loop-value-1:
- if {@NotifyAllPlayersWhenUnPunished} is true:
- send "&a[&bMuteSkript&a]&r &dIPアドレス %loop-value-1% &aを&6自動ミュート解除&aしました。 理由:&r ミュートの有効期限が切れました。" to loop-player
- else:
- if loop-player has permission "mute.unpunish.notify":
- send "&a[&bMuteSkript&a]&r &dIPアドレス %loop-value-1% &aを&6自動ミュート解除&aしました。 理由:&r ミュートの有効期限が切れました。" to loop-player
- else:
- send "&a[&bMuteSkript&a]&r &dIPアドレス %loop-value-1% &aを&6自動ミュート解除&aしました。 理由:&r ミュートの有効期限が切れました。" to loop-player
- send "&a[&bMuteSkript&a]&r &dIPアドレス %loop-value% &aを&6自動ミュート解除&aしました。 理由:&r ミュートの有効期限が切れました。" to console
- every {@TempMuteCheckInterval}:
- mute_TabListPrefixChange()
- mute_TempMuteHasBeenExpired()
- on command:
- set {_muted} to false
- if {mutelist::*} contains player:
- set {_muted} to true
- if {mutelistip::*} contains player's ip:
- set {_muted} to true
- if {_muted} is true:
- if {fullblackcmds::*} contains complete command:
- cancel event
- send "&a[&cMuteSkript&a]&r &cそのコマンドはミュート中に使用できないコマンド(Full)として設定されています。"
- send "&a[&cMuteSkript&a]&r &cミュート解除後に再度使用してください。"
- stop
- if {shortblackcmds::*} contains command:
- cancel event
- send "&a[&cMuteSkript&a]&r &cそのコマンドはミュート中に使用できないコマンド(Short)として設定されています。"
- send "&a[&cMuteSkript&a]&r &cミュート解除後に再度使用してください。"
- stop
- on load:
- broadcast "&a[&bMuteSkript&a]&r &d割と高機能だと思うけどこんなシステムいくらでも実装されてるMuteSkript&bがロードされました。"
- on join:
- set {mute.%player%.ip} to player's ip
- on chat:
- if {mutelist::*} contains player:
- cancel event
- send "&a[&cMuteSkript&a]&r &cあなたは現在ミュートされています。"
- send "&a[&cMuteSkript&a]&r &cミュートが解除されるまでお待ちください。"
- send "&a[&cMuteSkript&a]&r &eミュート理由: %{mute.%player%.reason}%"
- if {mute.%player%.time} is set:
- set {_left} to difference between now and {mute.%player%.datetime}
- set {_left} to difference between {mute.%player%.time} and {_left}
- send "&a[&cMuteSkript&a]&r &b残り時間: %{_left}%"
- if {@SendMesageToAdminsWhileMuted} is true:
- loop all players:
- if loop-player has permission "mute.sendmsg":
- send "&a[&bMuteSkript&a]&r &d%player%&eが発言しようとしたメッセージ: &r%message%" to loop-player
- stop
- if {mutelistip::*} contains player's ip:
- cancel event
- send "&a[&cMuteSkript&a]&r &cあなたは現在ミュートされています。"
- send "&a[&cMuteSkript&a]&r &cミュートが解除されるまでお待ちください。"
- send "&a[&cMuteSkript&a]&r &eミュート理由: %{muteip.%player's ip%.reason}%"
- if {muteip.%player's ip%.time} is set:
- set {_left} to difference between now and {muteip.%player's ip%.datetime}
- set {_left} to difference between {muteip.%player's ip%.time} and {_left}
- send "&a[&cMuteSkript&a]&r &b残り時間: %{_left}%"
- if {@SendMesageToAdminsWhileMuted} is true:
- loop all players:
- if loop-player has permission "mute.sendmsg":
- send "&a[&bMuteSkript&a]&r &d%player%&eが発言しようとしたメッセージ: &r%message%" to loop-player
- stop
- command /bmclist [<text>]:
- description: Show the list of black muting commands.
- usage: /bmclist [players|ips|all]
- trigger:
- if sender does not have permission "mute.info.blackcmds":
- send "&a[&cMuteSkript&a]&r &cこのコマンドを実行する権限がありません。"
- stop
- set {_type} to arg 1
- if arg 1 is not set:
- set {_type} to "all"
- if {_type} is "short":
- if amount of {shortblackcmds::*} is 0:
- send "&a[&eMuteSkript&a]&r &e現在、ミュート中に使用できないコマンド(Short)はありません。"
- stop
- set {_cmds} to listtotext({shortblackcmds::*})
- send "&a[&bMuteSkript&a]&r &a現在、 &6%amount of {shortblackcmds::*}%&a 個のコマンドが登録されています。"
- send "&a[&bMuteSkript&a]&r &d> %{_cmds}%"
- stop
- else if {_type} is "full":
- if amount of {fullblackcmds::*} is 0:
- send "&a[&eMuteSkript&a]&r &e現在、ミュート中に使用できないコマンド(Full)はありません。"
- stop
- set {_cmds} to listtotext({fullblackcmds::*})
- send "&a[&bMuteSkript&a]&r &a現在、 &6%amount of {fullblackcmds::*}%&a 個のコマンドが登録されています。"
- send "&a[&bMuteSkript&a]&r &d> %{_cmds}%"
- stop
- else if {_type} is "all":
- if amount of {shortblackcmds::*} is 0:
- send "&a[&eMuteSkript&a]&r &e現在、ミュート中に使用できないコマンド(Short)はありません。"
- else:
- set {_cmds} to listtotext({shortblackcmds::*})
- send "&a[&bMuteSkript&a]&r &a現在、 &6%amount of {shortblackcmds::*}%&a 個のコマンドが登録されています。"
- send "&a[&bMuteSkript&a]&r &d> %{_cmds}%"
- delete {_mutes}
- if amount of {fullblackcmds::*} is 0:
- send "&a[&eMuteSkript&a]&r &e現在、ミュート中に使用できないコマンド(Full)はありません。"
- else:
- set {_cmds} to listtotext({fullblackcmds::*})
- send "&a[&bMuteSkript&a]&r &a現在、 &6%amount of {fullblackcmds::*}%&a 個のコマンドが登録されています。"
- send "&a[&bMuteSkript&a]&r &d> %{_cmds}%"
- stop
- else:
- send "&a[&cMuteSkript&a]&r &c使用法: /bmclist [short|full|all]"
- stop
- command /blackmutingcommand [<text>] [<text>] [<text>] [<text>]:
- description: Manage unavaliable commands while muted.
- usage: /blackmutingcommand <add|remove> <short|full> <Command>
- aliases: /bmc, /blackcmds
- trigger:
- if sender does not have permission "mute.punish.blackcmd":
- send "&a[&cMuteSkript&a]&r &cこのコマンドを実行する権限がありません。"
- stop
- if arg 1 or arg 2 or arg 3 is not set:
- send "&a[&cMuteSkript&a]&r &c使用法: /blackmutingcommand <add|remove> <short|full> <コマンド>"
- stop
- if arg 1 is "add":
- if arg 2 is "short":
- if {shortblackcmds::*} contains arg 3:
- send "&a[&cMuteSkript&a]&r &cそのコマンドはすでにミュート中に使用できないコマンド(Short)です。"
- stop
- add arg 3 to {shortblackcmds::*}
- send "&a[&bMuteSkript&a]&r &bコマンドをミュート中に使用できないコマンド(Short)として登録しました。"
- stop
- else if arg 2 is "full":
- if {fullblackcmds::*} contains "%arg 3% %arg 4%":
- send "&a[&cMuteSkript&a]&r &cそのコマンドはすでにミュート中に使用できないコマンド(Full)です。"
- stop
- add "%arg 3% %arg 4%" to {fullblackcmds::*}
- send "&a[&bMuteSkript&a]&r &bコマンドをミュート中に使用できないコマンド(Full)として登録しました。"
- stop
- else:
- send "&a[&cMuteSkript&a]&r &c使用法: /blackmutingcommand <add|remove> <short|full> <コマンド>"
- stop
- else if arg 2 is "remove":
- if arg 2 is "short":
- if {shortblackcmds::*} does not contain arg 3:
- send "&a[&cMuteSkript&a]&r &cそのコマンドはミュート中に使用できないコマンド(Short)ではありません。"
- stop
- remove arg 3 from {shortblackcmds::*}
- send "&a[&bMuteSkript&a]&r &bコマンドをミュート中に使用できないコマンド(Short)から削除しました。"
- stop
- else if arg 2 is "full":
- if {fullblackcmds::*} does not contain "%arg 3% %arg 4%":
- send "&a[&cMuteSkript&a]&r &cそのコマンドはミュート中に使用できないコマンド(Full)ではありません。"
- stop
- remove "%arg 3% %arg 4%" from {fullblackcmds::*}
- send "&a[&bMuteSkript&a]&r &bコマンドをミュート中に使用できないコマンド(Full)から削除しました。"
- stop
- else:
- send "&a[&cMuteSkript&a]&r &c使用法: /blackmutingcommand <add|remove> <short|full> <コマンド>"
- stop
- command /mutelist [<text>]:
- description: Show the list of muting players.
- usage: /mutelist [players|ips|all]
- trigger:
- if sender does not have permission "mute.info.list":
- send "&a[&cMuteSkript&a]&r &cこのコマンドを実行する権限がありません。"
- stop
- set {_type} to arg 1
- if arg 1 is not set:
- set {_type} to "players"
- if {_type} is "players":
- if amount of {mutelist::*} is 0:
- send "&a[&eMuteSkript&a]&r &e現在、ミュートされているプレイヤーはいません。"
- stop
- set {_mutes} to listtotext({mutelist::*})
- send "&a[&bMuteSkript&a]&r &a現在、 &6%amount of {mutelist::*}%&a 人のプレイヤーがミュートされています。"
- send "&a[&bMuteSkript&a]&r &d> %{_mutes}%"
- stop
- else if {_type} is "ips":
- if amount of {mutelistip::*} is 0:
- send "&a[&eMuteSkript&a]&r &e現在、ミュートされているIPアドレスはありません。"
- stop
- set {_mutes} to listtotext({mutelistip::*})
- send "&a[&bMuteSkript&a]&r &a現在、 &6%amount of {mutelistip::*}%&a 個のIPアドレスがミュートされています。"
- send "&a[&bMuteSkript&a]&r &d> %{_mutes}%"
- stop
- else if {_type} is "all":
- if amount of {mutelist::*} is 0:
- send "&a[&eMuteSkript&a]&r &e現在、ミュートされているプレイヤーはいません。"
- else:
- set {_mutes} to listtotext({mutelist::*})
- send "&a[&bMuteSkript&a]&r &a現在、 &6%amount of {mutelist::*}%&a 人のプレイヤーがミュートされています。"
- send "&a[&bMuteSkript&a]&r &d> %{_mutes}%"
- send "&a[&bMuteSkript&a]&r"
- delete {_mutes}
- if amount of {mutelistip::*} is 0:
- send "&a[&eMuteSkript&a]&r &e現在、ミュートされているIPアドレスはありません。"
- else:
- set {_mutes} to listtotext({mutelistip::*})
- send "&a[&bMuteSkript&a]&r &a現在、 &6%amount of {mutelistip::*}%&a 個のIPアドレスがミュートされています。"
- send "&a[&bMuteSkript&a]&r &d> %{_mutes}%"
- stop
- else:
- send "&a[&cMuteSkript&a]&r &c使用法: /mutelist [players|ips|all]"
- stop
- command /muteinfo [<offline player>]:
- description: Show the mute information of specific player.
- usage: /muteinfo <Player>
- trigger:
- if sender does not have permission "mute.info.info":
- send "&a[&cMuteSkript&a]&r &cこのコマンドを実行する権限がありません。"
- stop
- if arg 1 is not set:
- send "&a[&cMuteSkript&a]&r &c使用法: /muteinfo <プレイヤー>"
- stop
- if arg 1 hasn't played before:
- send "&a[&cMuteSkript&a]&r &cサーバーに参加したことがないプレイヤーのミュート情報を確認することはできません。"
- stop
- send "&a[&bMuteSkript&a]&r &b%arg 1%のミュート情報"
- if {mutelist::*} does not contain arg 1:
- send "&a[&bMuteSkript&a]&r &bミュート状況: ミュートされていません。"
- stop
- send "&a[&bMuteSkript&a]&r &bミュート状況: &cミュートされています。"
- send "&a[&bMuteSkript&a]&r &bミュート理由: &r%{mute.%arg 1%.reason}%"
- send "&a[&bMuteSkript&a]&r &bミュート実行者: &r%{mute.%arg 1%.sender}%"
- send "&a[&bMuteSkript&a]&r &bミュート実行日時: &r%{mute.%arg 1%.datetime}%"
- if {mute.%arg 1%.time} is set:
- send "&a[&bMuteSkript&a]&r &b期間: %{mute.%arg 1%.time}%"
- set {_left} to difference between now and {mute.%arg 1%.datetime}
- set {_left} to difference between {mute.%arg 1%.time} and {_left}
- send "&a[&bMuteSkript&a]&r &b残り時間: %{_left}%"
- stop
- send "&a[&bMuteSkript&a]&r &b期間: 無期限"
- stop
- command /muteinfo-ip [<text>]:
- description: Show the mute information of specific IP Address.
- usage: /muteinfo-ip <Player|IP Address>
- trigger:
- if sender does not have permission "mute.info.infoip":
- send "&a[&cMuteSkript&a]&r &cこのコマンドを実行する権限がありません。"
- stop
- if arg 1 is not set:
- send "&a[&cMuteSkript&a]&r &c使用法: /muteinfo-ip <プレイヤー|IPアドレス>"
- stop
- set {_ip} to arg 1
- if arg 1 does not contain ".":
- if {mute.%arg 1%.ip} is not set:
- send "&a[&cMuteSkript&a]&r &c対象のプレイヤーのIPアドレスが見つかりませんでした。"
- stop
- set {_ip} to {mute.%arg 1%.ip}
- send "&a[&bMuteSkript&a]&r &b%{_ip}%のミュート情報"
- if {mutelist::*} does not contain {_ip}:
- send "&a[&bMuteSkript&a]&r &bミュート状況: ミュートされていません。"
- stop
- send "&a[&bMuteSkript&a]&r &bミュート状況: &cミュートされています。"
- send "&a[&bMuteSkript&a]&r &bミュート理由: &r%{muteip.%{_ip}%.reason}%"
- send "&a[&bMuteSkript&a]&r &bミュート実行者: &r%{muteip.%{_ip}%.sender}%"
- send "&a[&bMuteSkript&a]&r &bミュート実行日時: &r%{muteip.%{_ip}%.datetime}%"
- if {muteip.%{_ip}%.time} is set:
- send "&a[&bMuteSkript&a]&r &b期間: %{muteip.%{_ip}%.time}%"
- set {_left} to difference between now and {muteip.%player's ip%.datetime}
- set {_left} to difference between {muteip.%player's ip%.time} and {_left}
- send "&a[&bMuteSkript&a]&r &b残り時間: %{_left}%"
- stop
- send "&a[&bMuteSkript&a]&r &b期間: 無期限"
- stop
- command /mute [<offline player>] [<text>]:
- description: Mute the player on username basis on this server permanently or until unmuted.
- usage: /mute <Player> [Reason]
- trigger:
- if sender does not have permission "mute.punish.mute":
- send "&a[&cMuteSkript&a]&r &cこのコマンドを実行する権限がありません。"
- stop
- if arg 1 is not set:
- if {@AllowNoReason} is false:
- send "&a[&cMuteSkript&a]&r &c使用法: /mute <プレイヤー> <理由>"
- stop
- else:
- send "&a[&cMuteSkript&a]&r &c使用法: /mute <プレイヤー> [理由]"
- stop
- if {mutelist::*} contains arg 1:
- send "&a[&cMuteSkript&a]&r &c対象のプレイヤーはすでにミュートされています。"
- stop
- if arg 1 hasn't played before:
- if sender is not console:
- send "&a[&cMuteSkript&a]&r &cサーバーに参加したことがないプレイヤーをミュートすることはできません。"
- stop
- else:
- send "&a[&eMuteSkript&a]&r &e%arg 1%はサーバーに参加したことがありません。"
- if arg 1 is sender:
- if {@AllowOwnMute} is false:
- send "&a[&cMuteSkript&a]&r &c自分自身をミュートすることはできません。"
- stop
- if arg 1 has permission "mute.punish.bypass":
- if sender is not console:
- if {@AllowPunishAdmins} is false:
- send "&a[&cMuteSkript&a]&r &cこのプレイヤーをミュートすることはできません。"
- stop
- set {_reason} to coloured arg 2
- if arg 2 is not set:
- if {@AllowNoReason} is false:
- send "&a[&cMuteSkript&a]&r &c理由は必須です。"
- stop
- set {_reason} to coloured {@ReasonWhenNoReason}
- # ミュート処理
- set {mute.%arg 1%.reason} to {_reason}
- set {mute.%arg 1%.sender} to sender's name
- if sender is console:
- set {mute.%arg 1%.sender} to "コンソール"
- set {mute.%arg 1%.datetime} to now
- add arg 1 to {mutelist::*}
- loop all players:
- if loop-player is not arg 1:
- if {@NotifyAllPlayersWhenPunished} is true:
- send "&a[&bMuteSkript&a]&r &b%{mute.%arg 1%.sender}%&a が &d%arg 1% &aを&6無期限ミュート&aしました。 理由:&r%{mute.%arg 1%.reason}%" to loop-player
- else:
- if loop-player has permission "mute.punish.notify":
- send "&a[&bMuteSkript&a]&r &b%{mute.%arg 1%.sender}%&a が &d %arg 1% &aを&6無期限ミュート&aしました。 理由:&r%{mute.%arg 1%.reason}%" to loop-player
- send "&a[&bMuteSkript&a]&r &b%{mute.%arg 1%.sender}%&a が &d%arg 1% &aを&6無期限ミュート&aしました。 理由:&r%{mute.%arg 1%.reason}%" to console
- send "&a[&bMuteSkript&a]&r &b%{mute.%arg 1%.sender}%&a が &d%arg 1% &aを&6無期限ミュート&aしました。 理由:&r%{mute.%arg 1%.reason}%" to arg 1
- stop
- command /mute-ip [<text>] [<text>]:
- description: Mute player on an IP basis on this server permanently or until unmuted. No player logged in with that IP will be able to speak.
- usage: /mute-ip <Player|IP Address> [Reason]
- trigger:
- if sender does not have permission "mute.punish.muteip":
- send "&a[&cMuteSkript&a]&r &cこのコマンドを実行する権限がありません。"
- stop
- if arg 1 is not set:
- if {@AllowNoReason} is false:
- send "&a[&cMuteSkript&a]&r &c使用法: /mute-ip <プレイヤー|IPアドレス> <理由>"
- stop
- else:
- send "&a[&cMuteSkript&a]&r &c使用法: /mute-ip <プレイヤー|IPアドレス> [理由]"
- stop
- set {_ip} to arg 1
- if arg 1 does not contain ".":
- if {mute.%arg 1%.ip} is not set:
- send "&a[&cMuteSkript&a]&r &c対象のプレイヤーのIPアドレスが見つかりませんでした。"
- stop
- set {_ip} to {mute.%arg 1%.ip}
- if {mutelistip::*} contains arg 1:
- send "&a[&cMuteSkript&a]&r &c対象のIPアドレスはすでにミュートされています。"
- stop
- if sender's ip is {_ip}:
- if {@AllowOwnMute} is false:
- send "&a[&cMuteSkript&a]&r &c自分自身をミュートすることはできません。"
- stop
- set {_reason} to coloured arg 2
- if arg 2 is not set:
- if {@AllowNoReason} is false:
- send "&a[&cMuteSkript&a]&r &c理由は必須です。"
- stop
- set {_reason} to coloured {@ReasonWhenNoReason}
- # ミュート処理
- set {muteip.%{_ip}%.reason} to {_reason}
- set {_sender} to sender's name
- if sender is console:
- set {_sender} to "コンソール"
- set {muteip.%{_ip}%.sender} to {_sender}
- set {muteip.%{_ip}%.datetime} to now
- add {_ip} to {mutelistip::*}
- loop all players:
- if loop-player's ip is not {_ip}:
- if {@NotifyAllPlayersWhenPunished} is true:
- send "&a[&bMuteSkript&a]&r &b%{muteip.%{_ip}%.sender}%&a が &dIPアドレス %{_ip}% &aを&6無期限IPミュート&aしました。 理由:&r%{muteip.%{_ip}%.reason}%" to loop-player
- else:
- if loop-player has permission "mute.punish.notify":
- send "&a[&bMuteSkript&a]&r &b%{muteip.%{_ip}%.sender}%&a が &dIPアドレス %{_ip}% &aを&6無期限IPミュート&aしました。 理由:&r%{muteip.%{_ip}%.reason}%" to loop-player
- else:
- send "&a[&bMuteSkript&a]&r &b%{muteip.%{_ip}%.sender}%&a が &dIPアドレス %{_ip}% &aを&6無期限IPミュート&aしました。 理由:&r%{muteip.%{_ip}%.reason}%" to loop-player
- send "&a[&bMuteSkript&a]&r &b%{muteip.%{_ip}%.sender}%&a が &dIPアドレス %{_ip}% &aを&6無期限IPミュート&aしました。 理由:&r%{muteip.%{_ip}%.reason}%" to console
- stop
- command /tempmute [<offline player>] [<text>] [<text>]:
- description: Mute the player on username basis on this server temporary or until unmuted.
- usage: /tempmute <Player> <Duration(Ex: 1d, 5h, 30m)> [Reason]
- trigger:
- if sender does not have permission "mute.punish.tempmute":
- send "&a[&cMuteSkript&a]&r &cこのコマンドを実行する権限がありません。"
- stop
- if arg 1 or arg 2 is not set:
- if {@AllowNoReason} is false:
- send "&a[&cMuteSkript&a]&r &c使用法: /tempmute <プレイヤー> <期間> <理由>"
- stop
- else:
- send "&a[&cMuteSkript&a]&r &c使用法: /tempmute <プレイヤー> <期間> [理由]"
- stop
- if {mutelist::*} contains arg 1:
- send "&a[&cMuteSkript&a]&r &c対象のプレイヤーはすでにミュートされています。"
- stop
- if arg 1 hasn't played before:
- if sender is not console:
- send "&a[&cMuteSkript&a]&r &cサーバーに参加したことがないプレイヤーをミュートすることはできません。"
- stop
- else:
- send "&a[&eMuteSkript&a]&r &e%arg 1%はサーバーに参加したことがありません。"
- if arg 1 is sender:
- if {@AllowOwnMute} is false:
- send "&a[&cMuteSkript&a]&r &c自分自身をミュートすることはできません。"
- stop
- if arg 1 has permission "mute.punish.bypass":
- if sender is not console:
- if {@AllowPunishAdmins} is false:
- send "&a[&cMuteSkript&a]&r &cこのプレイヤーをミュートすることはできません。"
- stop
- set {_time} to timeomission(arg 2)
- set {_max} to {@MaximumDuration}
- set {_min} to {@MinimumDuration}
- if {_time} is less than or equal to {@MinimumDuration}:
- send "&a[&cMuteSkript&a]&r &c期間が短すぎます。 %{_min}% 以上にしてください。"
- stop
- if {_time} is more than or equal to {@MaximumDuration}:
- send "&a[&cMuteSkript&a]&r &c期間が長すぎます。 %{_max}% 以下にしてください。"
- stop
- set {_reason} to coloured arg 3
- if arg 3 is not set:
- if {@AllowNoReason} is false:
- send "&a[&cMuteSkript&a]&r &c理由は必須です。"
- stop
- set {_reason} to coloured {@ReasonWhenNoReason}
- # ミュート処理
- set {mute.%arg 1%.reason} to {_reason}
- set {mute.%arg 1%.sender} to sender's name
- if sender is console:
- set {mute.%arg 1%.sender} to "コンソール"
- set {mute.%arg 1%.datetime} to now
- set {mute.%arg 1%.time} to {_time}
- add arg 1 to {mutelist::*}
- loop all players:
- if loop-player is not arg 1:
- if {@NotifyAllPlayersWhenPunished} is true:
- send "&a[&bMuteSkript&a]&r &b%{mute.%arg 1%.sender}%&a が &d%arg 1% &aを&6期限付きミュート&aしました。 理由:&r%{mute.%arg 1%.reason}% &a期間: %{mute.%arg 1%.time}%" to loop-player
- else:
- if loop-player has permission "mute.punish.notify":
- send "&a[&bMuteSkript&a]&r &b%{mute.%arg 1%.sender}%&a が &d %arg 1% &aを&6期限付きミュート&aしました。 理由:&r%{mute.%arg 1%.reason}% &a期間: %{mute.%arg 1%.time}%" to loop-player
- send "&a[&bMuteSkript&a]&r &b%{mute.%arg 1%.sender}%&a が &d%arg 1% &aを&6期限付きミュート&aしました。 理由:&r%{mute.%arg 1%.reason}% &a期間: %{mute.%arg 1%.time}%" to console
- send "&a[&bMuteSkript&a]&r &b%{mute.%arg 1%.sender}%&a が &d%arg 1% &aを&6期限付きミュート&aしました。 理由:&r%{mute.%arg 1%.reason}% &a期間: %{mute.%arg 1%.time}%" to arg 1
- stop
- command /tempmute-ip [<text>] [<text>] [<text>]:
- description: Mute the player on ip basis on this server temporary or until unmuted. No player logged in with that IP will be able to speak.
- usage: /tempmute-ip <Player|IP Address> <Duration(Ex: 1d, 5h, 30m)> [Reason]
- trigger:
- if sender does not have permission "mute.punish.tempmuteip":
- send "&a[&cMuteSkript&a]&r &cこのコマンドを実行する権限がありません。"
- stop
- if arg 1 or arg 2 is not set:
- if {@AllowNoReason} is false:
- send "&a[&cMuteSkript&a]&r &c使用法: /tempmute-ip <プレイヤー|アドレス> <期間> <理由>"
- stop
- else:
- send "&a[&cMuteSkript&a]&r &c使用法: /tempmute-ip <プレイヤー|IPアドレス> <期間> [理由]"
- stop
- set {_ip} to arg 1
- if arg 1 does not contain ".":
- if {mute.%arg 1%.ip} is not set:
- send "&a[&cMuteSkript&a]&r &c対象のプレイヤーのIPアドレスが見つかりませんでした。"
- stop
- set {_ip} to {mute.%arg 1%.ip}
- if {mutelistip::*} contains {_ip}:
- send "&a[&cMuteSkript&a]&r &c対象のIPアドレスはすでにミュートされています。"
- stop
- if sender's ip is {_ip}:
- if {@AllowOwnMute} is false:
- send "&a[&cMuteSkript&a]&r &c自分自身をミュートすることはできません。"
- stop
- set {_time} to timeomission(arg 2)
- set {_max} to {@MaximumDuration}
- set {_min} to {@MinimumDuration}
- if {_time} is less than or equal to {@MinimumDuration}:
- send "&a[&cMuteSkript&a]&r &c期間が短すぎます。 %{_min}% 以上にしてください。"
- stop
- if {_time} is more than or equal to {@MaximumDuration}:
- send "&a[&cMuteSkript&a]&r &c期間が長すぎます。 %{_max}% 以下にしてください。"
- stop
- set {_reason} to coloured arg 3
- if arg 3 is not set:
- if {@AllowNoReason} is false:
- send "&a[&cMuteSkript&a]&r &c理由は必須です。"
- stop
- set {_reason} to coloured {@ReasonWhenNoReason}
- # ミュート処理
- set {muteip.%{_ip}%.reason} to {_reason}
- set {muteip.%{_ip}%.sender} to sender's name
- if sender is console:
- set {muteip.%{_ip}%.sender} to "コンソール"
- set {muteip.%{_ip}%.datetime} to now
- set {muteip.%{_ip}%.time} to {_time}
- add {_ip} to {mutelistip::*}
- loop all players:
- if loop-player's ip is not {_ip}:
- if {@NotifyAllPlayersWhenPunished} is true:
- send "&a[&bMuteSkript&a]&r &b%{muteip.%{_ip}%.sender}%&a が &dIPアドレス %{_ip}% &aを&6期限付きIPミュート&aしました。 理由:&r%{muteip.%{_ip}%.reason}% &a期間: %{muteip.%{_ip}%.time}%" to loop-player
- else:
- if loop-player has permission "mute.punish.notify":
- send "&a[&bMuteSkript&a]&r &b%{muteip.%{_ip}%.sender}%&a が &dIPアドレス %{_ip}% &aを&6期限付きIPミュート&aしました。 理由:&r%{muteip.%{_ip}%.reason}% &a期間: %{muteip.%{_ip}%.time}%" to loop-player
- else:
- send "&a[&bMuteSkript&a]&r &b%{muteip.%{_ip}%.sender}%&a が &dIPアドレス %{_ip}% &aを&6期限付きIPミュート&aしました。 理由:&r%{muteip.%{_ip}%.reason}% &a期間: %{muteip.%{_ip}%.time}%" to loop-player
- send "&a[&bMuteSkript&a]&r &b%{muteip.%{_ip}%.sender}%&a が &dIPアドレス %{_ip}% &aを&6期限付きIPミュート&aしました。 理由:&r%{muteip.%{_ip}%.reason}% &a期間: %{muteip.%{_ip}%.time}%" to console
- stop
- command /unmute [<offline player>] [<text>]:
- description: Unmute the player on username basis mutes on this server.
- usage: /unmute <Player> [Reason]
- trigger:
- if sender does not have permission "mute.unpunish.mute":
- send "&a[&cMuteSkript&a]&r &cこのコマンドを実行する権限がありません。"
- stop
- if arg 1 is not set:
- if {@AllowNoReason} is false:
- send "&a[&cMuteSkript&a]&r &c使用法: /unmute <プレイヤー> <理由>"
- stop
- else:
- send "&a[&cMuteSkript&a]&r &c使用法: /unmute <プレイヤー> [理由]"
- stop
- if {mutelist::*} does not contain arg 1:
- send "&a[&cMuteSkript&a]&r &c対象のプレイヤーはミュートされていません。"
- stop
- if arg 1 is sender:
- if {@AllowOwnUnMute} is false:
- send "&a[&cMuteSkript&a]&r &c自分自身のミュートを解除することはできません。"
- stop
- if {@ConsoleMuteCanUnmuteByPlayer} is false:
- if sender is not console:
- if {mute.%arg 1%.sender} is "コンソール":
- send "&a[&cMuteSkript&a]&r &cコンソールから行われたミュートはプレイヤーから解除することはできません。"
- stop
- set {_reason} to coloured arg 2
- if arg 2 is not set:
- if {@AllowNoReason} is false:
- send "&a[&cMuteSkript&a]&r &c理由は必須です。"
- stop
- set {_reason} to coloured {@ReasonWhenNoReason}
- # ミュート処理
- delete {mute.%arg 1%.reason}
- delete {mute.%arg 1%.sender}
- set {_sender} to sender's name
- if sender is console:
- set {_sender} to "コンソール"
- delete {mute.%arg 1%.datetime}
- remove arg 1 from {mutelist::*}
- loop all players:
- if loop-player is not arg 1:
- if {@NotifyAllPlayersWhenUnPunished} is true:
- send "&a[&bMuteSkript&a]&r &b%{_sender}%&a が &d%arg 1% &aを&6ミュート解除&aしました。 理由:&r%{_reason}%" to loop-player
- else:
- if loop-player has permission "mute.punish.notify":
- send "&a[&bMuteSkript&a]&r &b%{_sender}%&a が &d%arg 1% &aを&6ミュート解除&aしました。 理由:&r%{_reason}%" to loop-player
- send "&a[&bMuteSkript&a]&r &b%{_sender}%&a が &d%arg 1% &aを&6ミュート解除&aしました。 理由:&r%{_reason}%" to console
- send "&a[&bMuteSkript&a]&r &b%{_sender}%&a が &d%arg 1% &aを&6ミュート解除&aしました。 理由:&r%{_reason}%" to arg 1
- stop
- command /unmute-ip [<text>] [<text>]:
- description: Unmute the player on IP basis mutes on this server.
- usage: /unmute-ip <Player|IP Address> [Reason]
- trigger:
- if sender does not have permission "mute.unpunish.muteip":
- send "&a[&cMuteSkript&a]&r &cこのコマンドを実行する権限がありません。"
- stop
- if arg 1 is not set:
- if {@AllowNoReason} is false:
- send "&a[&cMuteSkript&a]&r &c使用法: /unmute-ip <プレイヤー|IPアドレス> <理由>"
- stop
- else:
- send "&a[&cMuteSkript&a]&r &c使用法: /unmute-ip <プレイヤー|アドレス> [理由]"
- stop
- set {_ip} to arg 1
- if arg 1 does not contain ".":
- if {mute.%arg 1%.ip} is not set:
- send "&a[&cMuteSkript&a]&r &c対象のプレイヤーのIPアドレスが見つかりませんでした。"
- stop
- set {_ip} to {mute.%arg 1%.ip}
- if {mutelistip::*} does not contain {_ip}:
- send "&a[&cMuteSkript&a]&r &c対象のIPアドレスはミュートされていません。"
- stop
- if sender's ip is {_ip}:
- if {@AllowOwnUnMute} is false:
- send "&a[&cMuteSkript&a]&r &c自分自身のミュートを解除することはできません。"
- stop
- if {@ConsoleMuteCanUnmuteByPlayer} is false:
- if sender is not console:
- if {muteip.%arg 1%.sender} is "コンソール":
- send "&a[&cMuteSkript&a]&r &cコンソールから行われたミュートはプレイヤーから解除することはできません。"
- stop
- set {_reason} to coloured arg 2
- if arg 2 is not set:
- if {@AllowNoReason} is false:
- send "&a[&cMuteSkript&a]&r &c理由は必須です。"
- stop
- set {_reason} to coloured {@ReasonWhenNoReason}
- # ミュート処理
- delete {muteip.%{_ip}%.reason}
- delete {muteip.%{_ip}%.sender}
- set {_sender} to sender's name
- if sender is console:
- set {_sender} to "コンソール"
- delete {muteip.%{_ip}%.datetime}
- remove {_ip} from {mutelistip::*}
- loop all players:
- if loop-player's ip is not {_ip}:
- if {@NotifyAllPlayersWhenUnPunished} is true:
- send "&a[&bMuteSkript&a]&r &b%{_sender}%&a が &dIPアドレス %{_ip}% &aを&6IPミュート解除&aしました。 理由:&r%{_reason}%" to loop-player
- else:
- if loop-player has permission "mute.punish.notify":
- send "&a[&bMuteSkript&a]&r &b%{_sender}%&a が &dIPアドレス %{_ip}% &aを&6IPミュート解除&aしました。 理由:&r%{_reason}%" to loop-player
- else:
- send "&a[&bMuteSkript&a]&r &b%{_sender}%&a が &dIPアドレス %{_ip}% &aを&6IPミュート解除&aしました。 理由:&r%{_reason}%" to loop-player
- send "&a[&bMuteSkript&a]&r &b%{_sender}%&a が &dIPアドレス %{_ip}% &aを&6IPミュート解除&aしました。 理由:&r%{_reason}%" to console
- stop
Add Comment
Please, Sign In to add comment