LunaChatの使い方

概要

このプラグイン LunaChat は、チャンネルチャットシステムと、ローマ字発言の自動日本語化を実現することができます。

スクリーンショット

使い方

LunaChat.jar を plugins フォルダに入れてから、CraftBukkit を起動してください。
必要に応じて、plugins/LunaChat/config.yml を編集してください。
※ PermissionsExやiChatなどに設定した prefix、suffix を使用したい場合は、Vaultを導入してください。

コマンド

/ch と打つことでヘルプが表示されますので、ご参照ください。
詳細情報はこちらにまとめてあります。

コマンド解説一覧

一般ユーザー用コマンド

チャンネルモデレーター用コマンド

チャンネルモデレーターは、チャンネルを最初に作った人に設定されます。

コンフィグ

設定変更は、config.yml を編集して保存した後、/ch reload コマンドを実行して再読み込みしてください。 また、ファイル中に日本語で説明が書いてあるので、参考にしてください。

# LunaChat v2.8.9
# @author     ucchy
# @license    LGPLv3
# @copyright  Copyright ucchy 2013


# -------------------- 全般設定 --------------------

# チャンネルチャット機能を利用可能にするかどうか
# Japanize機能のみを利用したい場合は、falseにしてください。
enableChannelChat: true

# イベント処理の優先度を設定できます。
# 他のプラグインとの組み合わせでうまく動かないときに使用してください。
# LOWEST, LOW, NORMAL, HIGH, HIGHEST のどれかを指定できます。
# よくわからない場合は、デフォルトのHIGHのままにしてください。
playerChatEventListenerPriority: 'HIGH'


# -------------------- チャンネルチャット設定 --------------------

# チャンネルチャットに入っていない人の発言を、グローバルとして扱うかどうか
noJoinAsGlobal: true

# チャンネルチャットの発言内容を、ログに残すかどうか
loggingChat: true

# チャンネルチャットの発言内容を、HawkEyeに記録するかどうか
# この設定を利用する場合は、HawkEyeのconfig.ymlで、log: セクションの chat の設定を true にしてください。
loggingChatToHawkEye: true

# チャンネルチャットの発言内容を、Prismに記録するかどうか
# この設定を利用する場合は、Prismのconfig.ymlで、
# tracking: セクションの player-chat の設定を true にしてください。
loggingChatToPrism: true

# チャンネルチャットの発言内容を、サーバーコンソールに表示するかどうか
displayChatOnConsole: true

# グローバルマーカー。
# これが発言の頭に入っている場合は、一時的にグローバル発言になる。
globalMarker: '!'

# 全てのメンバーが退出したときに、チャンネルを削除するかどうか
zeroMemberRemove: false

# ログイン時に、参加中チャンネルを表示するかどうか
showListOnJoin: false

# /ch join コマンドで存在しないチャンネルを指定したときに、
# チャンネルを新規作成して入室するかどうか
createChannelOnJoinCommand: false

# 通常のチャットの代わりに、既定として使用するグローバルチャンネル。
# グローバルチャンネルを作らず通常のチャットを使用する場合は、
# から文字列 「''」 を指定すること。
globalChannel: ''

# サーバーに参加したユーザーに必ず参加させるチャンネル。
# グローバルチャンネルとは別で指定できる。
# 複数のチャンネルを設定可能。例)forceJoinChannels: ['L', 'M', 'N']
forceJoinChannels: []

# formatコマンド実行時に、必ず含まれる必要があるキーワード。
formatConstraint: ['%username', '%msg']

# チャンネルを作成したときに、デフォルトで設定されるフォーマット設定。
# フォーマット設定には、下記のキーワードが使用できます。
# %ch       : チャンネル名
# %color    : チャンネルカラー
# %username : 発言者表示名
# %player   : 発言者ID
# %world    : 発言したワールド名
# %prefix   : プレフィックス(VaultとPermissionsExが導入されている場合に置き換えられます)
# %suffix   : サフィックス(VaultとPermissionsExが導入されている場合に置き換えられます)
# %date     : 日付
# %time     : 時刻
# %msg      : 発言内容(Japanize変換された場合は、Japanize結果を含みます。)
defaultFormat: '&f[%color%ch&f]%prefix%username%suffix&a:&f %msg'

# OPの画面に、全チャンネルの発言内容を表示する設定。
opListenAllChannel: false

# チャンネルを新規作成するときに、チャンネル名が満たさなければならない、最低文字列長。
# 指定されたチャンネル名がこの文字数を下回る場合は、エラーになってチャンネルを作成できません。
minChannelNameLength: 4

# チャンネルを新規作成するときに、チャンネル名が満たさなければならない、最大文字列長。
# 指定されたチャンネル名がこの文字数を上回る場合は、エラーになってチャンネルを作成できません。
maxChannelNameLength: 20

# クイックチャンネルチャット機能を有効化するかどうか。
# クイックチャンネルチャットは、「(チャンネル名 or エイリアス) + (専用の記号) + (発言内容) 」を発言すると使用できます。
# 例えば、mainチャンネルにエイリアスmを設定しておくと、mainチャンネルを発言先にしなくても、
# m:こんにちは!
# と発言することで、mainチャンネルに発言を行うことができます。
enableQuickChannelChat: true

# クイックチャンネルチャット機能に使用する記号。
quickChannelChatSeparator: ':'


# -------------------- プライベートメッセージ設定 --------------------

# /tell や /msg や /r コマンドでプライベートメッセージを送信するときに、
# 適用されるフォーマット設定。
# フォーマット設定には、下記のキーワードが使用できます。
# %ch       : チャンネル名(「%player>%to」と同一です。)
# %username : 発言者表示名
# %player   : 発言者ID
# %to       : 発言の相手(受信者)のID
# %world    : 発言したワールド名
# %prefix   : プレフィックス(VaultとPermissionsExが導入されている場合に置き換えられます)
# %suffix   : サフィックス(VaultとPermissionsExが導入されている場合に置き換えられます)
# %date     : 日付
# %time     : 時刻
# %msg      : 発言内容(Japanize変換された場合は、Japanize結果を含みます。)
defaultFormatForPrivateMessage: '&7[%player -> %to]&f %msg'


# -------------------- dynmap連携設定 --------------------

# ブロードキャストチャンネルの発言内容を、dynmapに送信するかどうか。
# dynmapがロードされていない場合は、この設定は無視される(false扱い)。
sendBroadcastChannelChatToDynmap: true

# dynmapへ送信するときに、チャンネルのフォーマットを反映して送信するかどうか。
# trueにするとチャンネルフォーマットを反映したメッセージをdynmapに表示します。
# falseにするとメッセージのみをdynmapに表示します。
# 参考:https://github.com/ucchyocean/LunaChat/issues/68
sendFormattedMessageToDynmap: false

# dynmapのWebUIから発言された発言内容を表示するチャンネル。
# dynmapChannelが無指定で、globalChannelが指定されているなら、グローバルチャンネルに、
# dynmapChannelが無指定で、globalChannelも無指定なら、通常チャットに発言される。
dynmapChannel: ''



# -------------------- NGワード設定 --------------------

# NGワード設定。正規表現が指定可能です。
# ここに設定されたワードを発言したプレイヤーは、NGワード部分がマスクされます。
ngword: ['ちん(こ|ぽ|ちん)']

# NGワード発言時の動作設定。mask、mute、kick、ban の4つのいずれかが設定可能。
# mask : NGワードをマスクする
# mute : NGワードをマスクしたのち、発言したプレイヤーをチャンネルからMuteする
# kick : NGワードをマスクしたのち、発言したプレイヤーをチャンネルからキックする
# ban  : NGワードをマスクしたのち、発言したプレイヤーをチャンネルからBANする
# ※ 通常チャット(非チャンネルチャット)の場合は、
#    kickやbanを設定しても、マスクのみが実行されます。
ngwordAction: mask



# -------------------- チャット装飾設定 --------------------

# チャンネルチャット機能を利用しないユーザーのための設定です。

# 通常チャット(非チャンネルチャット)の装飾を、LunaChatから行うかどうか。
# Vault がロードされていない場合は、この設定は無視される(false扱い)。
enableNormalChatMessageFormat: true

# チャット装飾のフォーマット設定。
# フォーマット設定には、下記のキーワードが使用できます。
# %username : 発言者表示名
# %world    : 発言したワールド名
# %prefix   : プレフィックス(VaultとPermissionsExが導入されている場合に置き換えられます)
# %suffix   : サフィックス(VaultとPermissionsExが導入されている場合に置き換えられます)
# %date     : 日付
# %time     : 時刻
# %msg      : 発言内容(Japanize変換された場合は、Japanize結果を含みます。)
normalChatMessageFormat: '&f%prefix%username%suffix&a:&f %msg'

# 通常チャット(非チャンネルチャット)で、カラーコード(&aや&bなど)を
# 使用可能にするかどうか。falseに設定すると、カラーコードは変換されません。
enableNormalChatColorCode: true



# -------------------- Japanize変換設定 --------------------

# ローマ字をかな文字や漢字に変換する設定。
# none/kana/GoogleIME の3つのいずれかが設定可能。
# none      : 変換なし。
# kana      : かな変換のみ。
# GoogleIME : かな変換したのち、GoogleIMEを使って漢字変換する。
japanizeType: GoogleIME

# かな変換や漢字変換時に、
# 変換結果を元の発言内容と合わせて1行で表示するか、
# 変換結果のみを2行目に表示するかを、設定する。
# 1行表示の例:
#      aiueo (あいうえお)
# 2行表示の例:
#      aiueo
#     [JP] あいうえお
japanizeDisplayLine: 1

# japanizeDisplayLine が 1 のときの、表示フォーマットを設定する。
# フォーマット設定には、下記のキーワードが使用できます。
# %msg      : 元の発言内容
# %japanize : Japanize変換された発言内容
japanizeLine1Format: '%msg &6(%japanize)'

# japanizeDisplayLine が 2 のときの、2行目の表示フォーマットを設定する。
# フォーマット設定には、下記のキーワードが使用できます。
# %msg      : 元の発言内容
# %japanize : Japanize変換された発言内容
japanizeLine2Format: '&6[JP] %japanize'

# 発言に含まれているプレイヤー名を、Japanize変換から除外するかどうかを設定する。
japanizeIgnorePlayerName: true

# ノンジャパナイズマーカー。
# これが発言の頭に入っている場合は、一時的にJapanize変換を実行しない。
noneJapanizeMarker: '#'

ヒント - ユースケースごとの導入方法

チャットの日本語化だけ使用したい場合

LunaChat.jar を plugins フォルダに導入するだけでOKです。 好みに応じて、config.yml の japanizeType や japanizeDisplayLine を変更してください。 また、チャンネルチャットが不要であれば、config.yml の enableChannelChat を false に変更してください。

dynmapのチャット表示にも、日本語化を表示したい場合

LunaChat.jar と dynmap.jar を plugins フォルダに導入するだけでOKです。

ひそひそ話しをするようなゲームで、範囲チャット(15ブロック範囲にしか届かないチャット)を使用したい場合

LunaChat.jar を plugins フォルダに導入した後、グローバルチャンネル、強制参加チャンネル(範囲)を設定します。

  1. LunaChat.jar を plugins フォルダに導入して CraftBukkit を起動します。
  2. plugins/LunaChat/config.yml をエディタで開きます。
  3. globalChannel の項目に、適当なグローバルチャンネル名を入れます。例)globalChannel: 'G'
  4. forceJoinChannels の項目に、適当な範囲チャットチャンネル名を入れます。例)forceJoinChannels: ['R']
  5. コンソールで ch reload を実行して、config.yml を再読み込みさせます。
  6. 適当なプレイヤーでサーバーに参加します。
      このとき、チャンネル R が新規作成され、ログインしたプレイヤーがチャンネルモデレータに設定されます。
  7. チャンネル R に15ブロックの範囲チャットを設定します。
      ゲーム内で次のコマンドを実行してください。
      /ch option broadcast=true range=15
  8. 8. 以上で設定は終わりです。
      これ以降でサーバーに参加したプレイヤーは、チャンネル R がデフォルト発言先に設定され、
      15ブロック範囲チャットに自動設定されます。
      また、発言の頭に「!」をつけると、グローバルチャンネル G への発言をすることができます。

グローバルチャンネルとワールドチャットチャンネルを用意して、ワールドごとにチャットを分けたい場合

LunaChat.jar を plugins フォルダに導入した後、グローバルチャンネル、強制参加チャンネル(ワールド範囲)を設定します。

  1. LunaChat.jar を plugins フォルダに導入して CraftBukkit を起動します。
  2. plugins/LunaChat/config.yml をエディタで開きます。
  3. globalChannel の項目に、適当なグローバルチャンネル名を入れます。例)globalChannel: 'G'
  4. forceJoinChannels の項目に、適当な範囲チャットチャンネル名を入れます。例)forceJoinChannels: ['W']
  5. コンソールで ch reload を実行して、config.yml を再読み込みさせます。
  6. 適当なプレイヤーでサーバーに参加します。
      このとき、チャンネル W が新規作成され、ログインしたプレイヤーがチャンネルモデレータに設定されます。
  7. チャンネル W にワールド範囲を設定します。
      ゲーム内で次のコマンドを実行してください。
      /ch option broadcast=true range=world
  8. 以上で設定は終わりです。
      これ以降でサーバーに参加したプレイヤーは、チャンネル W がデフォルト発言先に設定され、
      ワールド範囲チャットに自動設定されます。
      また、発言の頭に「!」をつけると、グローバルチャンネル G への発言をすることができます。

PermissionsEx + Vault を一緒に導入して、prefix や suffix を設定し、チャット欄の名前を装飾したい場合

1. まずは、PermissionsEx、Vault、LunaChat の最新版をダウンロードし、全て plugins フォルダに導入してください。
2. PermissionsEx、Vault、LunaChat のコンフィグを生成させるために、CraftBukkitを一旦起動し、停止してください。
3. まずは、プレイヤーに対して prefix と suffix を設定してみましょう。
plugins/PermissionsEx/permissions.yml ファイルを開いて、次のように設定します。

users:
  ucchy:
    prefix: '&a★&f'
    suffix: '&b★'
上記の例では、ucchy というプレイヤーに、prefix と suffix を設定しています。
この状態で、ucchy が発言すると、次のようになります。
4. 次に、グループに対して prefix を設定してみましょう。
plugins/PermissionsEx/permissions.yml ファイルを開いて、次のように設定します。
groups:
  admin:
    permissions:
    - minecraftのパーミション
    options:
      prefix: '&a[管理者]&f'
      default: false
  citizen:
    options:
      prefix: '&a[一般市民]&f'
      default: true
例えば、adminグループに所属するプレイヤーが発言すると、次のようになります。

開発者向け情報

他のプラグインから、LunaChatのAPIを呼び出してLunaChatを操作することが可能です。詳しくは下記のURL先の技術情報を参照ください。
https://github.com/ucchyocean/LunaChat/wiki/For-Developer---How-to-use-LunaChatAPI

他のプラグインから、LunaChatの各種イベントのフックすることが可能です。詳しくは下記のURL先の技術情報を参照ください。
https://github.com/ucchyocean/LunaChat/wiki/For-Developer---How-to-handle-LunaChat-events

maven用リポジトリ記載例


  
    ucchy-github
    ucchy github repository
    https://raw.github.com/ucchyocean/mvn-repo/master
  

maven用dependency記載例

  com.github.ucchyocean
  LunaChat
  2.8.9

ソースコード

ソースコードはGithubで管理しています。ライセンスは LGPLv3 を適用します。
https://github.com/ucchyocean/LunaChat

謝辞

機能追加提案やデバッグを、Laica-Lunasys氏に実施していただきました。ありがとうございました。