new
This commit is contained in:
parent
f683ef1b08
commit
5a4f31550e
@ -275,6 +275,20 @@ namespace Milimoe.RainBOT.Command
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "osmcoregroup":
|
||||
if (args.Length > 1 && long.TryParse(args[1].Trim(), out long osmcoregroup_id))
|
||||
{
|
||||
string args0 = args[0].ToString().Trim();
|
||||
if (args0 == "add" || args0 == "remove" || args0 == "+" || args0 == "-")
|
||||
{
|
||||
isadd = args0 == "add" || args0 == "+";
|
||||
if (isadd) GeneralSettings.OSMCoreGroup.Add(osmcoregroup_id);
|
||||
else GeneralSettings.OSMCoreGroup.Remove(osmcoregroup_id);
|
||||
msg = AddRemoveAccessGroupMember("OSM核心启用群聊", isadd, osmcoregroup_id);
|
||||
return msg;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return "OSM Core:指令格式不正确或传入的参数不支持。\r\n格式:.osm <command> [part] [args...]";
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using Milimoe.OneBot.Framework;
|
||||
using System.Reflection;
|
||||
using Milimoe.OneBot.Framework;
|
||||
using Milimoe.OneBot.Model.Content;
|
||||
using Milimoe.OneBot.Model.Event;
|
||||
using Milimoe.OneBot.Model.Other;
|
||||
@ -27,14 +28,8 @@ namespace Milimoe.RainBOT.ListeningTask
|
||||
SetGroupBanContent content_unmute_master = new(e.group_id, GeneralSettings.Master, 0);
|
||||
SetGroupBanContent content_mute_operator = new(e.group_id, e.operator_id, 60);
|
||||
await GroupMessageTask.Post(SupportedAPI.set_group_ban, e.group_id, "反制禁言", [content_unmute_master, content_mute_operator]);
|
||||
if (Bot.GroupMembers.TryGetValue(e.group_id, out List<Member>? list) && list != null)
|
||||
{
|
||||
Member? sender = list.Where(m => m.user_id == e.operator_id).FirstOrDefault();
|
||||
if (sender != null)
|
||||
{
|
||||
await e.SendMessage($"检测到主人被{sender.user_id}({(sender.card != "" ? sender.card : sender.nickname)})禁言!");
|
||||
}
|
||||
}
|
||||
Member sender = Bot.GetMember(e.group_id, e.operator_id);
|
||||
await e.SendMessage($"检测到主人被{sender.user_id}({(sender.card != "" ? sender.card : sender.nickname)})禁言!");
|
||||
}
|
||||
else if (e.sub_type == "ban" && e.duration > 0)
|
||||
{
|
||||
|
||||
@ -36,40 +36,49 @@ namespace Milimoe.RainBOT.ListeningTask
|
||||
Console.ForegroundColor = ConsoleColor.Gray;
|
||||
}
|
||||
|
||||
MuteRecall.Muted[e.group_id].Remove(e.user_id);
|
||||
if (MuteRecall.Muted.TryGetValue(e.group_id, out Dictionary<long, long>? mute_group) && mute_group != null) mute_group.Remove(e.user_id);
|
||||
|
||||
bool onOSMCore = GeneralSettings.OSMCoreGroup.Contains(e.group_id);
|
||||
// OSM指令
|
||||
if (e.detail.Length >= 4 && e.detail[..4] == ".osm")
|
||||
{
|
||||
if (GeneralSettings.IsRun && e.detail.Contains(".osm info"))
|
||||
{
|
||||
// OSM核心状态
|
||||
string msg = "OSM插件运行状态:" + "\r\n本群已启用OSM核心";
|
||||
if (GeneralSettings.IsRepeat)
|
||||
string msg = "OSM插件运行状态:";
|
||||
if (onOSMCore)
|
||||
{
|
||||
msg += "\r\n随机复读:开启";
|
||||
msg += $"\r\n随机复读概率:{GeneralSettings.PRepeat}%" +
|
||||
$"\r\n随机复读延迟区间:{GeneralSettings.RepeatDelay[0]}至{GeneralSettings.RepeatDelay[1]}秒";
|
||||
msg += "\r\n本群已启用OSM核心";
|
||||
if (GeneralSettings.IsRepeat)
|
||||
{
|
||||
msg += "\r\n随机复读:开启";
|
||||
msg += $"\r\n随机复读概率:{GeneralSettings.PRepeat}%" +
|
||||
$"\r\n随机复读延迟区间:{GeneralSettings.RepeatDelay[0]}至{GeneralSettings.RepeatDelay[1]}秒";
|
||||
}
|
||||
else msg += "\r\n随机复读:关闭";
|
||||
if (GeneralSettings.IsOSM)
|
||||
{
|
||||
msg += "\r\n随机OSM:开启";
|
||||
msg += $"\r\n随机OSM概率:{GeneralSettings.POSM}%";
|
||||
}
|
||||
else msg += "\r\n随机OSM:关闭";
|
||||
if (GeneralSettings.IsSayNo)
|
||||
{
|
||||
msg += "\r\n随机反驳不:开启";
|
||||
msg += $"\r\n随机反驳不概率:{GeneralSettings.PSayNo}%";
|
||||
}
|
||||
else msg += "\r\n随机反驳不:关闭";
|
||||
if (GeneralSettings.IsMute)
|
||||
{
|
||||
msg += "\r\n禁言抽奖:开启";
|
||||
msg += $"\r\n禁言抽奖时长区间:{GeneralSettings.MuteTime[0]}至{GeneralSettings.MuteTime[1]}秒";
|
||||
}
|
||||
else msg += "\r\n禁言抽奖:关闭";
|
||||
}
|
||||
else msg += "\r\n随机复读:关闭";
|
||||
if (GeneralSettings.IsOSM)
|
||||
else
|
||||
{
|
||||
msg += "\r\n随机OSM:开启";
|
||||
msg += $"\r\n随机OSM概率:{GeneralSettings.POSM}%";
|
||||
msg += "\r\n本群未启用OSM核心";
|
||||
}
|
||||
else msg += "\r\n随机OSM:关闭";
|
||||
if (GeneralSettings.IsSayNo)
|
||||
{
|
||||
msg += "\r\n随机反驳不:开启";
|
||||
msg += $"\r\n随机反驳不概率:{GeneralSettings.PSayNo}%";
|
||||
}
|
||||
else msg += "\r\n随机反驳不:关闭";
|
||||
if (GeneralSettings.IsMute)
|
||||
{
|
||||
msg += "\r\n禁言抽奖:开启";
|
||||
msg += $"\r\n禁言抽奖时长区间:{GeneralSettings.MuteTime[0]}至{GeneralSettings.MuteTime[1]}秒";
|
||||
}
|
||||
else msg += "\r\n禁言抽奖:关闭";
|
||||
_ = Post(e, "OSM状态", msg);
|
||||
}
|
||||
else if (GeneralSettings.IsRun && e.detail.Contains(".osm stop"))
|
||||
@ -226,6 +235,7 @@ namespace Milimoe.RainBOT.ListeningTask
|
||||
if (int.TryParse(reply.data.id, out int id))
|
||||
{
|
||||
TaskUtility.NewTask(async () => await Post(SupportedAPI.delete_msg, e.group_id, "撤回", new DeleteMsgContent(id)));
|
||||
TaskUtility.NewTask(async () => await Post(SupportedAPI.delete_msg, e.group_id, "撤回", new DeleteMsgContent(e.real_id)));
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -366,6 +376,61 @@ namespace Milimoe.RainBOT.ListeningTask
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (e.detail.Contains("马云", StringComparison.CurrentCultureIgnoreCase))
|
||||
{
|
||||
TaskUtility.NewTask(async () =>
|
||||
{
|
||||
if (!await CheckBlackList(e)) return;
|
||||
GroupMessageContent content = new(e.group_id);
|
||||
content.message.Add(new RecordMessage(Music.MusicList["马云"]));
|
||||
await Post(e, "Record", content);
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (e.detail.Contains("电锯", StringComparison.CurrentCultureIgnoreCase))
|
||||
{
|
||||
TaskUtility.NewTask(async () =>
|
||||
{
|
||||
if (!await CheckBlackList(e)) return;
|
||||
GroupMessageContent content = new(e.group_id);
|
||||
content.message.Add(new RecordMessage(Music.MusicList["电锯"]));
|
||||
await Post(e, "Record", content);
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (e.detail.Contains("疤王", StringComparison.CurrentCultureIgnoreCase))
|
||||
{
|
||||
TaskUtility.NewTask(async () =>
|
||||
{
|
||||
if (!await CheckBlackList(e)) return;
|
||||
GroupMessageContent content = new(e.group_id);
|
||||
content.message.Add(new RecordMessage(Music.MusicList["疤王"]));
|
||||
await Post(e, "Record", content);
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (e.detail.Contains("终极", StringComparison.CurrentCultureIgnoreCase))
|
||||
{
|
||||
TaskUtility.NewTask(async () =>
|
||||
{
|
||||
if (!await CheckBlackList(e)) return;
|
||||
GroupMessageContent content = new(e.group_id);
|
||||
content.message.Add(new RecordMessage(Music.MusicList["终极"]));
|
||||
await Post(e, "Record", content);
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (e.detail.Contains("音乐", StringComparison.CurrentCultureIgnoreCase))
|
||||
{
|
||||
TaskUtility.NewTask(async () =>
|
||||
{
|
||||
if (!await CheckBlackList(e)) return;
|
||||
GroupMessageContent content = new(e.group_id);
|
||||
content.message.Add(new RecordMessage(Music.MusicList[Music.MusicList.Keys.ToArray()[new Random().Next(Music.MusicList.Count)]]));
|
||||
await Post(e, "Record", content);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// 我的运势
|
||||
if (e.detail == "我的运势")
|
||||
@ -452,7 +517,7 @@ namespace Milimoe.RainBOT.ListeningTask
|
||||
if (Daily.UserDailys.TryGetValue(qq, out string? daily) && daily != null)
|
||||
{
|
||||
GroupMessageContent content = new(e.group_id);
|
||||
content.message.Add(new TextMessage(qq + "的今日运势是:\r\n" + daily));
|
||||
content.message.Add(new TextMessage(qq + "(" + Bot.GetMemberNickName(e.group_id, e.user_id) + ")的今日运势是:\r\n" + daily));
|
||||
await Post(e, "查看运势", content);
|
||||
}
|
||||
else
|
||||
@ -465,6 +530,9 @@ namespace Milimoe.RainBOT.ListeningTask
|
||||
return;
|
||||
}
|
||||
|
||||
// 下面是开启了OSM Core的群组才能使用的功能
|
||||
if (!onOSMCore) return;
|
||||
|
||||
// 禁言抽奖
|
||||
if (GeneralSettings.IsMute && e.detail == "禁言抽奖" && !MuteRecall.WillMute.ContainsKey(e.user_id))
|
||||
{
|
||||
@ -636,7 +704,7 @@ namespace Milimoe.RainBOT.ListeningTask
|
||||
else if (e.detail.Contains("可以") && !e.detail.Contains('不') && e.CheckThrow(GeneralSettings.PSayNo, out dice))
|
||||
{
|
||||
ColorfulCheckPass(sender, "随机反驳不", dice, GeneralSettings.PSayNo);
|
||||
if (dice < 20)
|
||||
if (dice < (GeneralSettings.PSayNo / 2))
|
||||
{
|
||||
_ = Post(e, "随机反驳不", "可以");
|
||||
}
|
||||
@ -645,10 +713,10 @@ namespace Milimoe.RainBOT.ListeningTask
|
||||
_ = Post(e, "随机反驳不", "不可以");
|
||||
}
|
||||
}
|
||||
else if (e.detail.Contains('能') && !e.detail.Contains('不') && !e.detail.Contains('可') && e.CheckThrow(GeneralSettings.PSayNo, out dice))
|
||||
else if (e.detail.Contains('能') && !e.detail.Contains('不') && !e.detail.Contains('技') && !e.detail.Contains('可') && e.CheckThrow(GeneralSettings.PSayNo, out dice))
|
||||
{
|
||||
ColorfulCheckPass(sender, "随机反驳不", dice, GeneralSettings.PSayNo);
|
||||
if (dice < 20)
|
||||
if (dice < (GeneralSettings.PSayNo / 2))
|
||||
{
|
||||
_ = Post(e, "随机反驳不", "能");
|
||||
}
|
||||
@ -660,7 +728,7 @@ namespace Milimoe.RainBOT.ListeningTask
|
||||
else if (e.detail.Contains("可能") && !e.detail.Contains('不') && e.CheckThrow(GeneralSettings.PSayNo, out dice))
|
||||
{
|
||||
ColorfulCheckPass(sender, "随机反驳不", dice, GeneralSettings.PSayNo);
|
||||
if (dice < 20)
|
||||
if (dice < (GeneralSettings.PSayNo / 2))
|
||||
{
|
||||
_ = Post(e, "随机反驳不", "可能");
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using System.Text.Json;
|
||||
using System.Reflection;
|
||||
using System.Text.Json;
|
||||
using Milimoe.OneBot.Framework;
|
||||
using Milimoe.OneBot.Framework.Utility;
|
||||
using Milimoe.OneBot.Model.Content;
|
||||
@ -55,5 +56,30 @@ namespace Milimoe.RainBOT.Settings
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static Member GetMember(long group_id, long user_id)
|
||||
{
|
||||
if (GroupMembers.TryGetValue(group_id, out List<Member>? members) && members != null)
|
||||
{
|
||||
Member? member = members.Where(m => m.user_id == user_id).FirstOrDefault();
|
||||
if (member != null)
|
||||
{
|
||||
return member;
|
||||
}
|
||||
}
|
||||
return new();
|
||||
}
|
||||
|
||||
public static string GetMemberNickName(long group_id, long user_id)
|
||||
{
|
||||
Member member = GetMember(group_id, user_id);
|
||||
if (member.user_id != 0) return member.card != "" ? member.card : member.nickname;
|
||||
return "";
|
||||
}
|
||||
|
||||
public static string GetMemberNickName(Member member)
|
||||
{
|
||||
return member.card != "" ? member.card : member.nickname;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,6 +48,8 @@ namespace Milimoe.RainBOT.Settings
|
||||
|
||||
public static List<long> RecallAccessGroup { get; set; } = [];
|
||||
|
||||
public static List<long> OSMCoreGroup { get; set; } = [];
|
||||
|
||||
public static PluginConfig Configs { get; set; } = new("rainbot", "config");
|
||||
|
||||
public static void LoadSetting()
|
||||
@ -138,6 +140,10 @@ namespace Milimoe.RainBOT.Settings
|
||||
{
|
||||
RecallAccessGroup = (List<long>)value;
|
||||
}
|
||||
if (configs.TryGetValue("OSMCoreGroup", out value) && value != null)
|
||||
{
|
||||
OSMCoreGroup = (List<long>)value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SaveConfig()
|
||||
@ -162,6 +168,7 @@ namespace Milimoe.RainBOT.Settings
|
||||
Configs.Add("MuteAccessGroup", MuteAccessGroup);
|
||||
Configs.Add("UnMuteAccessGroup", UnMuteAccessGroup);
|
||||
Configs.Add("RecallAccessGroup", RecallAccessGroup);
|
||||
Configs.Add("OSMCoreGroup", OSMCoreGroup);
|
||||
Configs.Save();
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,6 +8,10 @@
|
||||
/// 懂CSGO<para/>
|
||||
/// 令人沮丧的游戏<para/>
|
||||
/// man<para/>
|
||||
/// 马云<para/>
|
||||
/// 疤王<para/>
|
||||
/// 电锯/追命<para/>
|
||||
/// 终极<para/>
|
||||
/// </summary>
|
||||
public static Dictionary<string, string> MusicList { get; set; } = [];
|
||||
|
||||
@ -17,6 +21,10 @@
|
||||
MusicList.Add("懂CSGO", "file:///" + AppDomain.CurrentDomain.BaseDirectory.ToString() + @"music\懂CSGO.mp3");
|
||||
MusicList.Add("令人沮丧的游戏", "file:///" + AppDomain.CurrentDomain.BaseDirectory.ToString() + @"music\令人沮丧的游戏.mp3");
|
||||
MusicList.Add("man", "file:///" + AppDomain.CurrentDomain.BaseDirectory.ToString() + @"music\man.mp3");
|
||||
MusicList.Add("马云", "file:///" + AppDomain.CurrentDomain.BaseDirectory.ToString() + @"music\马云.mp3");
|
||||
MusicList.Add("疤王", "file:///" + AppDomain.CurrentDomain.BaseDirectory.ToString() + @"music\疤王.mp3");
|
||||
MusicList.Add("电锯", "file:///" + AppDomain.CurrentDomain.BaseDirectory.ToString() + @"music\电锯.mp3");
|
||||
MusicList.Add("终极", "file:///" + AppDomain.CurrentDomain.BaseDirectory.ToString() + @"music\终极.mp3");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user