修复了一些问题,新增sayno指令指南,新增showlist指令
This commit is contained in:
parent
f14cbd7b7d
commit
9348782e9c
@ -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"))
|
||||
{
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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() ?? "")
|
||||
{
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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";
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user