添加特殊权限组

This commit is contained in:
milimoe 2025-11-20 01:47:15 +08:00
parent 15958d6bfa
commit 1a93a41690
Signed by: milimoe
GPG Key ID: 9554D37E4B8991D0
3 changed files with 27 additions and 3 deletions

View File

@ -675,6 +675,20 @@ namespace Milimoe.RainBOT.Command
} }
} }
break; break;
case "specialaccessgroup":
if (args.Length > 1 && long.TryParse(args[1].Replace("@", "").Trim(), out long specialaccess_qq))
{
string args0 = args[0].ToString().Trim();
if (args0 == "add" || args0 == "remove" || args0 == "+" || args0 == "-")
{
isadd = args0 == "add" || args0 == "+";
if (isadd) GeneralSettings.SpecialAccessGroup.Add(specialaccess_qq);
else GeneralSettings.SpecialAccessGroup.Remove(specialaccess_qq);
msg = AddRemoveAccessGroupMember("特殊权限组成员", isadd, specialaccess_qq);
return msg;
}
}
break;
case "osmcoregroup": case "osmcoregroup":
if (args.Length > 1 && long.TryParse(args[1].Trim(), out long osmcoregroup_id)) if (args.Length > 1 && long.TryParse(args[1].Trim(), out long osmcoregroup_id))
{ {

View File

@ -77,7 +77,7 @@ namespace Milimoe.RainBOT.ListeningTask
} }
// 撤回消息 // 撤回消息
if ((e.user_id == GeneralSettings.Master || GeneralSettings.RecallAccessGroup.Contains(e.user_id)) && e.detail.Contains("撤回;") && e.message.Any(m => m.type == "reply")) if ((e.user_id == GeneralSettings.Master || GeneralSettings.RecallAccessGroup.Contains(e.user_id)) && Bot.IsAdmin(e.group_id, e.user_id) && e.detail.Contains("撤回;") && e.message.Any(m => m.type == "reply"))
{ {
ReplyMessage reply = (ReplyMessage)e.message.Where(m => m.type == "reply").First(); ReplyMessage reply = (ReplyMessage)e.message.Where(m => m.type == "reply").First();
if (long.TryParse(reply.data.id, out long id)) if (long.TryParse(reply.data.id, out long id))
@ -89,7 +89,7 @@ namespace Milimoe.RainBOT.ListeningTask
} }
// 精华消息 // 精华消息
if ((e.user_id == GeneralSettings.Master || Bot.IsAdmin(e.group_id, e.user_id)) && e.detail.Contains("精华;") && e.message.Any(m => m.type == "reply")) if ((e.user_id == GeneralSettings.Master || GeneralSettings.SpecialAccessGroup.Contains(e.user_id)) && Bot.IsAdmin(e.group_id, e.user_id) && e.detail.Contains("精华;") && e.message.Any(m => m.type == "reply"))
{ {
ReplyMessage reply = (ReplyMessage)e.message.Where(m => m.type == "reply").First(); ReplyMessage reply = (ReplyMessage)e.message.Where(m => m.type == "reply").First();
if (int.TryParse(reply.data.id, out int id)) if (int.TryParse(reply.data.id, out int id))
@ -109,7 +109,7 @@ namespace Milimoe.RainBOT.ListeningTask
} }
} }
if (e.user_id != GeneralSettings.Master && Ignore.CustomIgnore.Any(e.detail.Contains) && Bot.BotIsAdmin(e.group_id)) if ((e.user_id != GeneralSettings.Master && !GeneralSettings.SpecialAccessGroup.Contains(e.user_id)) && Ignore.CustomIgnore.Any(e.detail.Contains) && Bot.BotIsAdmin(e.group_id))
{ {
await Bot.SendMessage(SupportedAPI.delete_msg, e.group_id, "撤回", new DeleteMsgContent(e.message_id), true); await Bot.SendMessage(SupportedAPI.delete_msg, e.group_id, "撤回", new DeleteMsgContent(e.message_id), true);
await Bot.SendMessage(SupportedAPI.set_group_ban, e.group_id, "禁言", new SetGroupBanContent(e.group_id, e.user_id, 120), true); await Bot.SendMessage(SupportedAPI.set_group_ban, e.group_id, "禁言", new SetGroupBanContent(e.group_id, e.user_id, 120), true);

View File

@ -58,6 +58,8 @@ namespace Milimoe.RainBOT.Settings
public static List<long> SayNoAccessGroup { get; set; } = []; public static List<long> SayNoAccessGroup { get; set; } = [];
public static List<long> SpecialAccessGroup { get; set; } = [];
public static List<long> OSMCoreGroup { get; set; } = []; public static List<long> OSMCoreGroup { get; set; } = [];
public static List<long> FunGameGroup { get; set; } = []; public static List<long> FunGameGroup { get; set; } = [];
@ -172,6 +174,10 @@ namespace Milimoe.RainBOT.Settings
{ {
SayNoAccessGroup = (List<long>)value; SayNoAccessGroup = (List<long>)value;
} }
if (configs.TryGetValue("SpecialAccessGroup", out value) && value != null)
{
SpecialAccessGroup = (List<long>)value;
}
if (configs.TryGetValue("OSMCoreGroup", out value) && value != null) if (configs.TryGetValue("OSMCoreGroup", out value) && value != null)
{ {
OSMCoreGroup = (List<long>)value; OSMCoreGroup = (List<long>)value;
@ -223,6 +229,7 @@ namespace Milimoe.RainBOT.Settings
Configs.Add("UnMuteAccessGroup", UnMuteAccessGroup); Configs.Add("UnMuteAccessGroup", UnMuteAccessGroup);
Configs.Add("RecallAccessGroup", RecallAccessGroup); Configs.Add("RecallAccessGroup", RecallAccessGroup);
Configs.Add("SayNoAccessGroup", SayNoAccessGroup); Configs.Add("SayNoAccessGroup", SayNoAccessGroup);
Configs.Add("SpecialAccessGroup", SpecialAccessGroup);
Configs.Add("OSMCoreGroup", OSMCoreGroup); Configs.Add("OSMCoreGroup", OSMCoreGroup);
Configs.Add("FunGameGroup", FunGameGroup); Configs.Add("FunGameGroup", FunGameGroup);
Configs.Add("FunGameWebSocketGroup", FunGameWebSocketGroup); Configs.Add("FunGameWebSocketGroup", FunGameWebSocketGroup);
@ -249,6 +256,9 @@ namespace Milimoe.RainBOT.Settings
case "saynoaccessgroup": case "saynoaccessgroup":
list = SayNoAccessGroup; list = SayNoAccessGroup;
break; break;
case "specialaccessgroup":
list = SpecialAccessGroup;
break;
case "osmcoregroup": case "osmcoregroup":
list = OSMCoreGroup; list = OSMCoreGroup;
break; break;