Skip to content

Commit b474a12

Browse files
committed
1.1.9 添加msg content 配置
1 parent 130b293 commit b474a12

File tree

4 files changed

+60
-14
lines changed

4 files changed

+60
-14
lines changed

src/main/java/cn/handyplus/chat/core/ChatUtil.java

+31-3
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,10 @@ private synchronized static void sendTextMsg(BcUtil.BcMessageParam param, boolea
8585
*
8686
* @param player 玩家
8787
* @param channel 频道
88+
* @param message 消息
8889
* @return 参数
8990
*/
90-
public static ChatParam buildChatParam(Player player, String channel) {
91+
public static ChatParam buildChatParam(Player player, String channel, String message) {
9192
// 频道是否开启
9293
String channelEnable = ChannelUtil.isChannelEnable(channel);
9394
if (StrUtil.isEmpty(channelEnable)) {
@@ -105,6 +106,7 @@ public static ChatParam buildChatParam(Player player, String channel) {
105106
String msgText = ConfigUtil.CHAT_CONFIG.getString("chat." + channelEnable + ".format.msg.text");
106107
List<String> msgHover = ConfigUtil.CHAT_CONFIG.getStringList("chat." + channelEnable + ".format.msg.hover");
107108
String msgClick = ConfigUtil.CHAT_CONFIG.getString("chat." + channelEnable + ".format.msg.click");
109+
String msgContent = ConfigUtil.CHAT_CONFIG.getString("chat." + channelEnable + ".format.msg.content");
108110

109111
// 解析内部变量
110112
String channelName = ChannelUtil.getChannelName(channel);
@@ -117,6 +119,7 @@ public static ChatParam buildChatParam(Player player, String channel) {
117119
msgText = replaceStr(player, channelName, msgText);
118120
msgHover = replaceStr(player, channelName, msgHover);
119121
msgClick = replaceStr(player, channelName, msgClick);
122+
msgContent = replaceStr(player, channelName, msgContent, message);
120123

121124
// 解析PAPI变量
122125
prefixText = PlaceholderApiUtil.set(player, prefixText);
@@ -128,11 +131,12 @@ public static ChatParam buildChatParam(Player player, String channel) {
128131
msgText = PlaceholderApiUtil.set(player, msgText);
129132
msgHover = PlaceholderApiUtil.set(player, msgHover);
130133
msgClick = PlaceholderApiUtil.set(player, msgClick);
134+
msgContent = PlaceholderApiUtil.set(player, msgContent);
131135

132136
// 构建参数
133137
return ChatParam.builder().prefixText(prefixText).prefixHover(prefixHover).prefixClick(prefixClick)
134138
.playerText(playerText).playerHover(playerHover).playerClick(playerClick)
135-
.msgText(msgText).msgHover(msgHover).msgClick(msgClick).build();
139+
.msgText(msgText).msgHover(msgHover).msgClick(msgClick).msgContent(msgContent).build();
136140
}
137141

138142
/**
@@ -150,6 +154,8 @@ public static BaseComponent[] buildMsg(ChatParam chatParam, String type) {
150154
chatParam.setMsgText(BaseUtil.replaceChatColor(chatParam.getMsgText()));
151155
chatParam.setMsgHover(BaseUtil.replaceChatColor(chatParam.getMsgHover()));
152156
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());
153159

154160
// 前缀
155161
RgbTextUtil prefixTextComponent = RgbTextUtil.getInstance().init(chatParam.getPrefixText());
@@ -189,7 +195,29 @@ private static String replaceStr(Player player, String channelName, String str)
189195
if (StrUtil.isEmpty(str)) {
190196
return str;
191197
}
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;
193221
}
194222

195223
/**

src/main/java/cn/handyplus/chat/listener/AsyncPlayerChatEventListener.java

+10-10
Original file line numberDiff line numberDiff line change
@@ -82,26 +82,26 @@ public static void sendMsg(Player player, String message, String channel, String
8282
if (chatTimeCheck(player)) {
8383
return;
8484
}
85+
// 内容黑名单处理
86+
if (blackListCheck(message)) {
87+
MessageUtil.sendMessage(player, BaseUtil.getMsgNotColor("blacklistMsg"));
88+
return;
89+
}
90+
// @处理
91+
message = ChatUtil.at(message);
8592
// 参数构建
8693
BcUtil.BcMessageParam param = new BcUtil.BcMessageParam();
8794
param.setPluginName(PlayerChat.INSTANCE.getName());
8895
param.setPlayerName(player.getName());
8996
param.setTimestamp(System.currentTimeMillis());
9097
// 构建消息参数
91-
ChatParam chatParam = ChatUtil.buildChatParam(player, channel);
98+
ChatParam chatParam = ChatUtil.buildChatParam(player, channel, message);
9299
if (chatParam == null) {
93100
return;
94101
}
95102
// 添加接收人 1.1.5
96103
chatParam.setTellPlayerName(tellPlayerName);
97-
// 内容黑名单处理
98-
if (blackListCheck(message)) {
99-
MessageUtil.sendMessage(player, BaseUtil.getMsgNotColor("blacklistMsg"));
100-
return;
101-
}
102-
// @处理
103-
message = ChatUtil.at(message);
104-
// 消息内容
104+
// 原消息内容
105105
chatParam.setMessage(message);
106106
// 有权限进行颜色代码处理
107107
chatParam.setHasColor(player.hasPermission("playerChat.color"));
@@ -199,7 +199,7 @@ public void onItemChat(AsyncPlayerChatEvent event) {
199199
param.setTimestamp(System.currentTimeMillis());
200200
String channel = ChatConstants.PLAYER_CHAT_CHANNEL.getOrDefault(player.getUniqueId(), ChatConstants.DEFAULT);
201201
// 构建消息参数
202-
ChatParam chatParam = ChatUtil.buildChatParam(player, channel);
202+
ChatParam chatParam = ChatUtil.buildChatParam(player, channel, "");
203203
if (chatParam == null) {
204204
return;
205205
}

src/main/java/cn/handyplus/chat/param/ChatParam.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,15 @@ public class ChatParam {
4444
*/
4545
private String playerClick;
4646
/**
47-
* 消息
47+
* 消息前缀
4848
*/
4949
private String msgText;
50+
51+
/**
52+
* 消息内容
53+
*/
54+
private String msgContent;
55+
5056
/**
5157
* 消息hover
5258
*/

src/main/resources/chat.yml

+12
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,10 @@ chat:
4444
click: '/tpa ${player}'
4545
# 聊天内容
4646
msg:
47+
# 自定义消息前缀
4748
text: '&f'
49+
# 自定义消息内容
50+
content: '${message}'
4851
hover:
4952
- '&7时间: %server_time_h:mm:ss a%'
5053
# 点击后执行的命令
@@ -75,7 +78,10 @@ chat:
7578
click: '/tpa ${player}'
7679
# 聊天内容
7780
msg:
81+
# 自定义消息前缀
7882
text: '&8&o${player}悄悄地对你说: '
83+
# 自定义消息内容
84+
content: '${message}'
7985
hover:
8086
- '&7时间: %server_time_h:mm:ss a%'
8187
# 点击后执行的命令
@@ -106,7 +112,10 @@ chat:
106112
click: '/tpa ${player}'
107113
# 聊天内容
108114
msg:
115+
# 自定义消息前缀
109116
text: '&f'
117+
# 自定义消息内容
118+
content: '${message}'
110119
hover:
111120
- '&7时间: %server_time_h:mm:ss a%'
112121
# 点击后执行的命令
@@ -136,7 +145,10 @@ chat:
136145
click: '/tpa ${player}'
137146
# 聊天内容
138147
msg:
148+
# 自定义消息前缀
139149
text: '&f'
150+
# 自定义消息内容
151+
content: '${message}'
140152
hover:
141153
- '&7时间: %server_time_h:mm:ss a%'
142154
# 点击后执行的命令

0 commit comments

Comments
 (0)