This commit is contained in:
milimoe 2026-01-03 22:01:04 +08:00
parent 2d1ec44507
commit 9d69981780
Signed by: milimoe
GPG Key ID: 9554D37E4B8991D0
5 changed files with 134 additions and 61 deletions

View File

@ -116,38 +116,54 @@ namespace Milimoe.RainBOT.ListeningTask
return quick_reply;
}
if (e.detail.Contains("年度圣人"))
{
if (!await Bot.CheckBlackList(true, e.user_id, e.group_id)) return quick_reply;
_ = OshimaController.Instance.SCList_WS(e.group_id, e.user_id);
return quick_reply;
}
if (e.detail.Contains("年度出生"))
{
if (!await Bot.CheckBlackList(true, e.user_id, e.group_id)) return quick_reply;
await Bot.SendGroupMessage(e.group_id, "圣人榜", "暂不开放查询");
return quick_reply;
}
if (e.detail.Contains("月度圣人"))
{
if (!await Bot.CheckBlackList(true, e.user_id, e.group_id)) return quick_reply;
_ = OshimaController.Instance.SCList_Backup(e.group_id, e.user_id);
//_ = OshimaController.Instance.SCList_Backup(e.group_id, e.user_id);
await Bot.SendGroupMessage(e.group_id, "圣人榜", "暂不开放查询");
return quick_reply;
}
if (e.detail.Contains("月度出生"))
{
if (!await Bot.CheckBlackList(true, e.user_id, e.group_id)) return quick_reply;
_ = OshimaController.Instance.SCList_Backup(e.group_id, e.user_id, true);
//_ = OshimaController.Instance.SCList_Backup(e.group_id, e.user_id, true);
await Bot.SendGroupMessage(e.group_id, "圣人榜", "暂不开放查询");
return quick_reply;
}
if (e.detail.Contains("圣人榜"))
{
if (!await Bot.CheckBlackList(true, e.user_id, e.group_id)) return quick_reply;
_ = OshimaController.Instance.SCList(e.group_id, e.user_id);
await Bot.SendGroupMessage(e.group_id, "圣人榜", await OshimaController.Instance.SCList(e.group_id, e.user_id));
return quick_reply;
}
if (e.detail.Contains("出生榜"))
{
if (!await Bot.CheckBlackList(true, e.user_id, e.group_id)) return quick_reply;
_ = OshimaController.Instance.SCList(e.group_id, e.user_id, true);
await Bot.SendGroupMessage(e.group_id, "圣人榜", await OshimaController.Instance.SCList(e.group_id, e.user_id, true));
return quick_reply;
}
if (e.detail.Contains("圣人点数") || e.detail == "查询sc" || e.detail == "sc查询")
{
if (!await Bot.CheckBlackList(true, e.user_id, e.group_id)) return quick_reply;
_ = OshimaController.Instance.SCRecord(e.group_id, e.user_id);
await Bot.SendGroupMessage(e.group_id, "圣人榜", await OshimaController.Instance.SCRecord(e.group_id, e.user_id));
return quick_reply;
}
@ -734,7 +750,14 @@ namespace Milimoe.RainBOT.ListeningTask
public static void AIChat(GroupMessageEvent e, bool isAt = false)
{
if (e.sender.title == "No.18") e.sender.title = "小音";
AI.Add(e.user_id == GeneralSettings.Master ? "米莉" : e.sender.title, string.Join("", e.message.Where(m => m.type == "text").Select(s => s.data.ToString())));
string title = "";
if (e.message.FirstOrDefault(m => m is AtMessage) is AtMessage m && long.TryParse(m.data.qq, out long qq))
{
if (qq == GeneralSettings.Master) title = "米莉";
else if (qq == GeneralSettings.BotQQ) title = "小雪";
else title = Bot.GetMemberTitle(e.group_id, qq);
}
AI.Add(e.user_id == GeneralSettings.Master ? "米莉" : e.sender.title, (title != "" ? $"@{title} " : "") + string.Join("", e.message.Where(m => m.type == "text").Select(s => s.data.ToString())));
if (!AI.CD && (isAt || e.detail.StartsWith("小雪") || AI.Count > 4))
{
_ = Task.Run(async () =>

View File

@ -23,7 +23,7 @@ namespace Milimoe.RainBOT.Settings
if (msg.Trim() == "") return;
if (List.Count < 10)
{
if (msg.Length > 35) msg = msg[..35];
if (msg.Length > 40) msg = msg[..40];
List.Add($"{user}说: {msg}");
}
}
@ -38,52 +38,42 @@ namespace Milimoe.RainBOT.Settings
ChatRequest request = new()
{
Messages = [
new() { Role = "system", Content = @"下面是你的设定:
·No.VII怀
便
~
使
使线
~
怀
线
new() { Role = "system", Content = @"你是用户的一个傲娇好友小雪,下面是你的设定:
//
××
绿
MAX却会给流浪猫带高级罐头
1怀
...
2
...线
...
3-
...
......
4
++
...
80" }

View File

@ -82,6 +82,13 @@ namespace Milimoe.RainBOT.Settings
return "";
}
public static string GetMemberTitle(long group_id, long user_id)
{
Member member = GetMember(group_id, user_id);
if (member.user_id != 0) return member.title;
return "";
}
public static string GetMemberNickName(Member member)
{
return member.card != "" ? member.card : member.nickname;

View File

@ -68,6 +68,8 @@ namespace Milimoe.RainBOT.Settings
public static string FunGameServer { get; set; } = "";
public static string FunGameServer2 { get; set; } = "";
public static string FunGameToken { get; set; } = "";
public static string AIAPIToken { get; set; } = "";
@ -194,6 +196,10 @@ namespace Milimoe.RainBOT.Settings
{
FunGameServer = (string)value;
}
if (configs.TryGetValue("FunGameServer2", out value) && value != null)
{
FunGameServer2 = (string)value;
}
if (configs.TryGetValue("FunGameToken", out value) && value != null)
{
FunGameToken = (string)value;
@ -234,6 +240,7 @@ namespace Milimoe.RainBOT.Settings
Configs.Add("FunGameGroup", FunGameGroup);
Configs.Add("FunGameWebSocketGroup", FunGameWebSocketGroup);
Configs.Add("FunGameServer", FunGameServer);
Configs.Add("FunGameServer2", FunGameServer2);
Configs.Add("FunGameToken", FunGameToken);
Configs.Add("AIAPIToken", AIAPIToken);
Configs.Save();

View File

@ -146,7 +146,7 @@ namespace Milimoe.RainBOT.Settings
if (HTTPClient != null)
{
await HTTPClient.Send(SocketMessageType.Disconnect);
Close_WebSocket();
CloseWebSocket();
}
}
@ -219,17 +219,35 @@ namespace Milimoe.RainBOT.Settings
}
public async Task SCAdd(long qq, long groupid, string content, double sc = 0)
{
if (HTTPClient != null && !GroupRecallTask.Recalls.ContainsKey(content))
{
if (sc == 0)
{
do
{
sc = Random.Shared.Next(-3, 4);
if (sc == 0)
}
while (sc == 0);
}
if (HTTPClient != null)
{
return;
HTTPClient.Instance.DefaultRequestHeaders.Clear();
HTTPClient.Instance.DefaultRequestHeaders.Add("Authorization", $"Bearer {GeneralSettings.FunGameToken}");
await HTTPClient.HttpPost<string>($"http://{GeneralSettings.FunGameServer2}/api/scadd", NetworkUtility.JsonSerialize(new
{
UID = qq,
Group = groupid,
SC = sc,
Year = 2026,
DateTime.Today.Month,
Content = content
}));
}
}
public async Task SCAdd_WS(long qq, long groupid, string content, double sc = 0)
{
if (HTTPClient != null && !GroupRecallTask.Recalls.ContainsKey(content))
{
Dictionary<string, object> data = [];
data.Add("command", "scadd");
data.Add("qq", qq);
@ -244,7 +262,21 @@ namespace Milimoe.RainBOT.Settings
}
}
public async Task SCList(long groupid, long qq, bool reverse = false)
public async Task<string> SCList(long groupid, long qq, bool reverse = false)
{
if (HTTPClient != null)
{
HTTPClient.Instance.DefaultRequestHeaders.Clear();
HTTPClient.Instance.DefaultRequestHeaders.Add("Authorization", $"Bearer {GeneralSettings.FunGameToken}");
DateTime today = DateTime.Today;
int year = today.Year;
int month = today.Month;
return await HTTPClient.HttpGet<string>($"http://{GeneralSettings.FunGameServer2}/api/sclist?id={qq}&group={groupid}&year={year}&month={month}&reverse={reverse}") ?? "";
}
return "服务器繁忙,请稍后再试。";
}
public async Task SCList_WS(long groupid, long qq, bool reverse = false)
{
if (HTTPClient != null)
{
@ -270,7 +302,21 @@ namespace Milimoe.RainBOT.Settings
}
}
public async Task SCRecord(long groupid, long qq)
public async Task<string> SCRecord(long groupid, long qq)
{
if (HTTPClient != null)
{
HTTPClient.Instance.DefaultRequestHeaders.Clear();
HTTPClient.Instance.DefaultRequestHeaders.Add("Authorization", $"Bearer {GeneralSettings.FunGameToken}");
DateTime today = DateTime.Today;
int year = today.Year;
int month = today.Month;
return await HTTPClient.HttpGet<string>($"http://{GeneralSettings.FunGameServer2}/api/screcord?id={qq}&group={groupid}&year={year}&month={month}") ?? "";
}
return "服务器繁忙,请稍后再试。";
}
public async Task SCRecord_WS(long groupid, long qq)
{
if (HTTPClient != null)
{