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変換設定 --------------------