修复了一些问题,新增sayno指令指南,新增showlist指令

This commit is contained in:
milimoe 2024-06-22 15:33:47 +08:00
parent f14cbd7b7d
commit 9348782e9c
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
6 changed files with 130 additions and 5 deletions

View File

@ -142,7 +142,39 @@ namespace Milimoe.RainBOT.Command
}
}
}
SendMessage(send_group, target_id, Execute_Worker(".osm missingcommand", ""));
else
{
string msg = "欢迎访问OSM核心功能「随机反驳不」的操作菜单。\r\n" +
"① 添加词汇的指令是:.osm sayno <list> <+/-> <value>\r\n" +
"② 「随机反驳不」支持以下13个列表前面6个是关键词表后7个Say开头的才是词汇表没特殊情况不要添加关键词\r\n" +
"关键词列表trigger基本触发词、triggerbeforeno在不之前出现的特殊触发词、ignoretriggerafterno在不之后出现则忽略、ignoretriggerbeforecan在能之前出现则忽略、" +
"triggerafteryes在是之后出现则触发、willnotsayno不会触发反驳不的词\r\n" +
"词汇表saynowords反驳不、saydonthavewords反驳没、saynotyeswords反驳是、saydontwords反驳别、saywantwords反驳要、saythinkwords反驳想、" +
"sayspecialnowords特殊反驳不这个列表触发的可以反驳2个字\r\n" +
"③ 指令中间必须有空格隔开。如果是关键词是不、别、没,可以使用{0}来指代关键词后面的字。";
if (GeneralSettings.SayNoAccessGroup.Count > 0)
{
msg += "\r\n④ 仅有以下成员允许操作「随机反驳不」列表:\r\n" + string.Join("\r\n", GeneralSettings.SayNoAccessGroup);
}
SendMessage(send_group, target_id, msg);
}
}
else if (command.Contains(".osm showlist"))
{
string str = command.Replace(".osm showlist", "").Trim();
string[] strs = Regex.Split(str, @"\s+");
if (strs.Length > 0)
{
string part = strs[0].ToString().Trim();
if (part.Contains("group"))
{
GeneralSettings.ShowAccessGroupMemberList(target_id, part, send_group);
}
else
{
SayNo.ShowList(target_id, part, send_group);
}
}
}
else if (command.Contains(".osm refresh"))
{

View File

@ -545,7 +545,7 @@ namespace Milimoe.RainBOT.ListeningTask
}
// 随机复读
if (GeneralSettings.IsRepeat && !Ignore.RepeatIgnore.Contains(e.detail) && e.CheckThrow(GeneralSettings.PRepeat, out dice))
if (GeneralSettings.IsRepeat && !Ignore.RepeatIgnore.Any(e.detail.Contains) && e.CheckThrow(GeneralSettings.PRepeat, out dice))
{
int delay = GeneralSettings.RepeatDelay[0] + new Random().Next(GeneralSettings.RepeatDelay[1] - GeneralSettings.RepeatDelay[0]);
Bot.ColorfulCheckPass(sender, "随机复读", dice, GeneralSettings.PRepeat, delay);

View File

@ -206,7 +206,7 @@ try
if (read.Length >= 4 && read[..4] == ".osm")
{
MasterCommand.Execute(read, GeneralSettings.Master, false, GeneralSettings.Master, false);
return;
continue;
}
switch (read.ToLower().Trim() ?? "")
{

View File

@ -178,5 +178,30 @@ namespace Milimoe.RainBOT.Settings
Configs.Add("OSMCoreGroup", OSMCoreGroup);
Configs.Save();
}
public static void ShowAccessGroupMemberList(long target, string group, bool isgroup)
{
List<long> list = [];
switch (group.ToLower())
{
case "muteaccessgroup":
list = MuteAccessGroup;
break;
case "unmuteaccessgroup":
list = UnMuteAccessGroup;
break;
case "recallaccessgroup":
list = RecallAccessGroup;
break;
case "saynoaccessgroup":
list = SayNoAccessGroup;
break;
case "osmcoregroup":
list = OSMCoreGroup;
break;
}
string msg = list.Count > 0 ? "权限组" + group + "拥有一下成员:" + "\r\n" + string.Join("\r\n", list) : "此权限组不存在或没有任何成员。";
_ = isgroup ? Bot.SendGroupMessage(target, "显示列表成员", msg) : Bot.SendFriendMessage(target, "显示列表成员", msg);
}
}
}

View File

@ -3,8 +3,8 @@
public class OSMCore
{
public const string version = "v1.0";
public const string version2 = "Patch5";
public const string time = "Jun. 12th, 2024";
public const string version2 = "Patch6";
public const string time = "Jun. 22nd, 2024";
public static string Info => $"OSM Core {version} {version2}\r\nAuthor: Milimoe\r\nBuilt on {time}\r\nSee: https://github.com/milimoe";
}

View File

@ -172,5 +172,73 @@ namespace Milimoe.RainBOT.Settings
}
return true;
}
public static void ShowList(long target, string part, bool isgroup)
{
HashSet<string> set = [];
List<string> list = [];
bool islist = false;
switch (part.ToLower())
{
case "trigger":
set = Trigger;
break;
case "triggerbeforeno":
set = TriggerBeforeNo;
break;
case "ignoretriggerafterno":
set = IgnoreTriggerAfterNo;
break;
case "ignoretriggerbeforecan":
set = IgnoreTriggerBeforeCan;
break;
case "triggerafteryes":
set = TriggerAfterYes;
break;
case "willnotsayno":
set = WillNotSayNo;
break;
case "saynowords":
islist = true;
list = SayNoWords;
break;
case "saydonthavewords":
islist = true;
list = SayDontHaveWords;
break;
case "saynotyeswords":
islist = true;
list = SayNotYesWords;
break;
case "saydontwords":
islist = true;
list = SayDontWords;
break;
case "saywantwords":
islist = true;
list = SayWantWords;
break;
case "saythinkwords":
islist = true;
list = SayThinkWords;
break;
case "sayspecialnowords":
islist = true;
list = SaySpecialNoWords;
break;
default:
break;
}
string msg;
if (islist)
{
msg = list.Count > 0 ? "列表" + part + "拥有一下成员:" + "\r\n"+ string.Join("\r\n", list) : "此列表不存在或没有任何成员。";
}
else
{
msg = set.Count > 0 ? "列表" + part + "拥有一下成员:" + "\r\n" + string.Join("\r\n", set) : "此列表不存在或没有任何成员。";
}
_ = isgroup ? Bot.SendGroupMessage(target, "显示列表成员", msg) : Bot.SendFriendMessage(target, "显示列表成员", msg);
}
}
}