diff --git a/pom.xml b/pom.xml index 2ff3917d..299cf799 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.github.ucchyocean LunaChat - 3.0.9 + 3.0.10 A powerfull chat channel plugin with IME (Kana-Kanji conversion) support https://github.com/ucchyocean/LunaChat diff --git a/src/main/java/com/github/ucchyocean/lc3/LunaChatConfig.java b/src/main/java/com/github/ucchyocean/lc3/LunaChatConfig.java index 29c3cc92..7513c38c 100644 --- a/src/main/java/com/github/ucchyocean/lc3/LunaChatConfig.java +++ b/src/main/java/com/github/ucchyocean/lc3/LunaChatConfig.java @@ -119,6 +119,9 @@ public class LunaChatConfig { /** 通常チャットを、クリック可能にするかどうか */ private boolean enableNormalChatClickable; + /** 通常チャットを、コンソールに表示するかどうか */ + private boolean displayNormalChatOnConsole; + /** Japanize変換のタイプ
* none = 日本語変換をしない
* kana = カナ変換のみする
@@ -249,6 +252,8 @@ public void reloadConfig(File dataFolder, File jarFile) { config.getBoolean("enableNormalChatColorCode", true); enableNormalChatClickable = config.getBoolean("enableNormalChatClickable", false); + displayNormalChatOnConsole = + config.getBoolean("displayNormalChatOnConsole", true); japanizeType = JapanizeType.fromID(config.getString("japanizeType"), null); japanizeDisplayLine = config.getInt("japanizeDisplayLine", 2); @@ -582,6 +587,14 @@ public boolean isEnableNormalChatClickable() { return enableNormalChatClickable; } + /** + * 通常チャットを、コンソールに表示するかどうか + * @return displayNormalChatOnConsole + */ + public boolean isDisplayNormalChatOnConsole() { + return displayNormalChatOnConsole; + } + /** * Bungeeパススルーモードかどうかを返す * @return bungeePassThroughMode diff --git a/src/main/java/com/github/ucchyocean/lc3/bukkit/BukkitEventListener.java b/src/main/java/com/github/ucchyocean/lc3/bukkit/BukkitEventListener.java index 63108a26..8ac4ca6c 100644 --- a/src/main/java/com/github/ucchyocean/lc3/bukkit/BukkitEventListener.java +++ b/src/main/java/com/github/ucchyocean/lc3/bukkit/BukkitEventListener.java @@ -10,6 +10,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.logging.Level; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -179,14 +180,26 @@ private void processChatEvent(AsyncPlayerChatEvent event) { // Bungeeパススルーモードなら、メッセージを返送して終了する if ( config.isBungeePassThroughMode() ) { - ChannelMember player = ChannelMember.getChannelMember(event.getPlayer()); - if ( player instanceof ChannelMemberPlayer ) { - ChannelMemberOther other = ((ChannelMemberPlayer)player).toChannelMemberOther(); + + // メッセージの返送 + ChannelMember member = ChannelMember.getChannelMember(event.getPlayer()); + if ( member instanceof ChannelMemberPlayer ) { + ChannelMemberOther other = ((ChannelMemberPlayer)member).toChannelMemberOther(); BukkitChatMessage msg = new BukkitChatMessage(other, event.getMessage()); LunaChatBukkit.getInstance().sendPluginMessage(msg.toByteArray()); - event.setCancelled(true); - return; + + // 設定が有効ならコンソールに表示する + if ( config.isDisplayNormalChatOnConsole() ) { + String logmsg = event.getFormat() + .replace("%1$s", member.getDisplayName()) + .replace("%2$s", event.getMessage()); + LunaChat.getPlugin().log(Level.INFO, logmsg); + } } + + // イベントをキャンセルして終了する + event.setCancelled(true); + return; } // 頭にglobalMarkerが付いている場合は、グローバル発言にする @@ -395,6 +408,11 @@ private void chatGlobal(AsyncPlayerChatEvent event) { // イベントのキャンセル event.setCancelled(true); + // 設定が有効ならコンソールに表示する + if ( config.isDisplayNormalChatOnConsole() ) { + LunaChat.getPlugin().log(Level.INFO, makeLegacyText(comps)); + } + } else { // 通常チャットイベントで発言 @@ -586,4 +604,17 @@ private boolean matchesEventPriority(EventPriority priority) { String c = LunaChat.getConfig().getPlayerChatEventListenerPriority().name(); return c.equals(priority.name()); } + + /** + * BaseComponent配列を、カラーコードを含むStringに変換する + * @param comps BaseComponentの配列 + * @return カラーコードを含むString + */ + private static String makeLegacyText(BaseComponent[] comps) { + StringBuilder builder = new StringBuilder(); + for ( BaseComponent comp : comps ) { + builder.append(comp.toLegacyText()); + } + return builder.toString(); + } } diff --git a/src/main/java/com/github/ucchyocean/lc3/bungee/BungeeEventListener.java b/src/main/java/com/github/ucchyocean/lc3/bungee/BungeeEventListener.java index 173b06af..6d2a2855 100644 --- a/src/main/java/com/github/ucchyocean/lc3/bungee/BungeeEventListener.java +++ b/src/main/java/com/github/ucchyocean/lc3/bungee/BungeeEventListener.java @@ -399,7 +399,7 @@ private void chatGlobal(ChannelMember member, String message) { result = format.toLegacyText(); // コンソールに表示設定なら、コンソールに表示する - if ( config.isDisplayChatOnConsole() ) { + if ( config.isDisplayNormalChatOnConsole() ) { parent.getLogger().info(result); } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 36833fe3..bfee5369 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -178,6 +178,10 @@ enableNormalChatColorCode: true # Note that channel chats are always clickable, regardless of this setting. enableNormalChatClickable: false +# Whether to log normal chat (non-channel chat) to console. +# Even if this item is set to false, it may be recorded in the console. +displayNormalChatOnConsole: true + # -------------------- Japanize conversion settings -------------------- diff --git a/src/main/resources/config_ja.yml b/src/main/resources/config_ja.yml index b8ba166a..b10f812d 100644 --- a/src/main/resources/config_ja.yml +++ b/src/main/resources/config_ja.yml @@ -182,6 +182,10 @@ enableNormalChatColorCode: true # なお、この設定に関係なく、チャンネルチャットは常にクリック可能です。 enableNormalChatClickable: false +# 通常チャット(非チャンネルチャット)をコンソールにログ出力するかどうか。 +# 本項目をfalseにしても、コンソールに記録される場合があります。 +displayNormalChatOnConsole: true + # -------------------- Japanize変換設定 --------------------