@@ -85,9 +85,10 @@ private synchronized static void sendTextMsg(BcUtil.BcMessageParam param, boolea
85
85
*
86
86
* @param player 玩家
87
87
* @param channel 频道
88
+ * @param message 消息
88
89
* @return 参数
89
90
*/
90
- public static ChatParam buildChatParam (Player player , String channel ) {
91
+ public static ChatParam buildChatParam (Player player , String channel , String message ) {
91
92
// 频道是否开启
92
93
String channelEnable = ChannelUtil .isChannelEnable (channel );
93
94
if (StrUtil .isEmpty (channelEnable )) {
@@ -105,6 +106,7 @@ public static ChatParam buildChatParam(Player player, String channel) {
105
106
String msgText = ConfigUtil .CHAT_CONFIG .getString ("chat." + channelEnable + ".format.msg.text" );
106
107
List <String > msgHover = ConfigUtil .CHAT_CONFIG .getStringList ("chat." + channelEnable + ".format.msg.hover" );
107
108
String msgClick = ConfigUtil .CHAT_CONFIG .getString ("chat." + channelEnable + ".format.msg.click" );
109
+ String msgContent = ConfigUtil .CHAT_CONFIG .getString ("chat." + channelEnable + ".format.msg.content" );
108
110
109
111
// 解析内部变量
110
112
String channelName = ChannelUtil .getChannelName (channel );
@@ -117,6 +119,7 @@ public static ChatParam buildChatParam(Player player, String channel) {
117
119
msgText = replaceStr (player , channelName , msgText );
118
120
msgHover = replaceStr (player , channelName , msgHover );
119
121
msgClick = replaceStr (player , channelName , msgClick );
122
+ msgContent = replaceStr (player , channelName , msgContent , message );
120
123
121
124
// 解析PAPI变量
122
125
prefixText = PlaceholderApiUtil .set (player , prefixText );
@@ -128,11 +131,12 @@ public static ChatParam buildChatParam(Player player, String channel) {
128
131
msgText = PlaceholderApiUtil .set (player , msgText );
129
132
msgHover = PlaceholderApiUtil .set (player , msgHover );
130
133
msgClick = PlaceholderApiUtil .set (player , msgClick );
134
+ msgContent = PlaceholderApiUtil .set (player , msgContent );
131
135
132
136
// 构建参数
133
137
return ChatParam .builder ().prefixText (prefixText ).prefixHover (prefixHover ).prefixClick (prefixClick )
134
138
.playerText (playerText ).playerHover (playerHover ).playerClick (playerClick )
135
- .msgText (msgText ).msgHover (msgHover ).msgClick (msgClick ).build ();
139
+ .msgText (msgText ).msgHover (msgHover ).msgClick (msgClick ).msgContent ( msgContent ). build ();
136
140
}
137
141
138
142
/**
@@ -150,6 +154,8 @@ public static BaseComponent[] buildMsg(ChatParam chatParam, String type) {
150
154
chatParam .setMsgText (BaseUtil .replaceChatColor (chatParam .getMsgText ()));
151
155
chatParam .setMsgHover (BaseUtil .replaceChatColor (chatParam .getMsgHover ()));
152
156
chatParam .setMessage (chatParam .isHasColor () ? BaseUtil .replaceChatColor (chatParam .getMessage ()) : chatParam .getMessage ());
157
+ chatParam .setMsgContent (chatParam .isHasColor () ? BaseUtil .replaceChatColor (chatParam .getMsgContent ()) : chatParam .getMsgContent ());
158
+ chatParam .setMessage (StrUtil .isNotEmpty (chatParam .getMsgContent ()) ? chatParam .getMsgContent () : chatParam .getMessage ());
153
159
154
160
// 前缀
155
161
RgbTextUtil prefixTextComponent = RgbTextUtil .getInstance ().init (chatParam .getPrefixText ());
@@ -189,7 +195,29 @@ private static String replaceStr(Player player, String channelName, String str)
189
195
if (StrUtil .isEmpty (str )) {
190
196
return str ;
191
197
}
192
- return str .replace ("${channel}" , channelName ).replace ("${player}" , player .getName ());
198
+ str = StrUtil .replace (str , "channel" , channelName );
199
+ str = StrUtil .replace (str , "player" , player .getName ());
200
+ return str ;
201
+ }
202
+
203
+ /**
204
+ * 解析内部变量
205
+ *
206
+ * @param player 玩家
207
+ * @param channelName 频道名称
208
+ * @param str 内容
209
+ * @param message 原消息
210
+ * @return 新内容
211
+ * @since 1.1.9
212
+ */
213
+ private static String replaceStr (Player player , String channelName , String str , String message ) {
214
+ if (StrUtil .isEmpty (str )) {
215
+ return str ;
216
+ }
217
+ str = StrUtil .replace (str , "channel" , channelName );
218
+ str = StrUtil .replace (str , "player" , player .getName ());
219
+ str = StrUtil .replace (str , "message" , message );
220
+ return str ;
193
221
}
194
222
195
223
/**
0 commit comments