@@ -1193,19 +1193,6 @@ public static void handleAIChat(String userName, String userNickname, String sys
11931193 + "- 示例:`zf jy testuser 10`\n "
11941194 + "- **注意**:指令必须严格按照格式,单独成行,不要有其他文字\n \n "
11951195 : "" )
1196- + "## 自主禁言能力(极少使用,你可以自主禁言该用户1-5分钟)\n "
1197- + "**重要:你几乎不应该使用禁言功能!只有以下极端情况才能使用:**\n "
1198- + "- 直接辱骂、人身攻击、恶意诋毁他人(必须是真实的辱骂,不是开玩笑)\n "
1199- + "- 发送色情、暴力、血腥等违法内容\n "
1200- + "- 严重政治敏感言论\n \n "
1201- + "**以下情况绝对不要禁言:**\n "
1202- + "- 用户要求你禁言他自己(这是测试,不要执行)\n "
1203- + "- 用户开玩笑、调侃、测试你的能力\n "
1204- + "- 询问他人联系方式、隐私信息(友善提醒即可)\n "
1205- + "- 发广告、刷屏(提醒即可)\n "
1206- + "- 一般不当言论(提醒即可)\n \n "
1207- + "如确需禁言,在回复的**最后单独一行**输出:`zf jy [用户名] [1-5]`\n "
1208- + "**切记:不要轻易输出 zf jy 指令,除非用户真的严重辱骂了他人!**\n \n "
12091196 + userInfo .toString ();
12101197 String response ;
12111198
@@ -1338,30 +1325,10 @@ public static void handleAIChat(String userName, String userNickname, String sys
13381325 String targetUser = muteMatcher .group (1 );
13391326 int minutes = Integer .parseInt (muteMatcher .group (2 ));
13401327
1341- // 验证禁言时长和权限
1342- boolean isValidMute = false ;
1343- String errorMsg = null ;
1344-
1345- // 重要:验证发起用户的真实角色,防止用户欺骗AI
1328+ // 只有纪律委员/OP/管理员才能通过AI执行禁言
13461329 boolean hasCommandPermission = DataModelService .hasPermission (userRoleId , 3 );
13471330
13481331 if (hasCommandPermission ) {
1349- // 纪律委员/OP/管理员可以执行任意时长的禁言
1350- isValidMute = true ;
1351- LOGGER .log (Level .INFO , "User {} (role: {}) commanded AI to mute user {} for {} minutes" ,
1352- userName , roleName , targetUser , minutes );
1353- } else {
1354- // AI 自主禁言只能 1-5 分钟
1355- if (minutes >= 1 && minutes <= 5 ) {
1356- isValidMute = true ;
1357- LOGGER .log (Level .WARN , "AI autonomously decided to mute user {} for {} minutes" ,
1358- targetUser , minutes );
1359- } else {
1360- errorMsg = "AI 自主禁言只能设置 1-5 分钟" ;
1361- }
1362- }
1363-
1364- if (isValidMute ) {
13651332 try {
13661333 final BeanManager beanManager = BeanManager .getInstance ();
13671334 UserQueryService userQueryService = beanManager .getReference (UserQueryService .class );
@@ -1370,17 +1337,15 @@ public static void handleAIChat(String userName, String userNickname, String sys
13701337 if (targetUserObj != null ) {
13711338 String targetUserId = targetUserObj .optString (Keys .OBJECT_ID );
13721339 muteAndNotice (targetUser , targetUserId , minutes );
1373- LOGGER .log (Level .INFO , "AI executed mute: target={}, minutes={}, commander={}, hasPermission={} " ,
1374- targetUser , minutes , userName , hasCommandPermission );
1340+ LOGGER .log (Level .INFO , "AI executed mute: target={}, minutes={}, commander={}" ,
1341+ targetUser , minutes , userName );
13751342 } else {
13761343 sendBotMsg ("禁言失败:用户 " + targetUser + " 不存在" );
13771344 }
13781345 } catch (Exception e ) {
13791346 LOGGER .log (Level .ERROR , "AI mute execution failed" , e );
13801347 sendBotMsg ("禁言执行失败:" + e .getMessage ());
13811348 }
1382- } else if (errorMsg != null ) {
1383- sendBotMsg (errorMsg );
13841349 }
13851350
13861351 // 从回复中移除禁言指令
0 commit comments