Skip to content

Commit

Permalink
Merge pull request #35 from mystringEmpty/Shiki
Browse files Browse the repository at this point in the history
发布2.3.8Express7
  • Loading branch information
mystringEmpty authored Jun 9, 2019
2 parents ec9b251 + 83ac10e commit bb5ac48
Show file tree
Hide file tree
Showing 4 changed files with 199 additions and 67 deletions.
99 changes: 50 additions & 49 deletions Dice/DiceEvent.h
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,43 @@ class FromMsg {
AdminNotify("已设置定时关闭时间" + printClock(ClockOffWork));
return 1;
}
else if (strOption == "monitor") {
bool boolErase = false;
readSkipSpace();
if (strMsg[intMsgCnt] == '-') {
boolErase = true;
intMsgCnt++;
}
if (strMsg[intMsgCnt] == '+') { intMsgCnt++; }
chatType cTarget;
if (readChat(cTarget)) {
strReply = "当前监视窗口" + to_string(MonitorList.size()) + "个:";
for (auto it : MonitorList) {
strReply += "\n" + printChat(it);
}
reply();
return 1;
}
if (boolErase) {
if (MonitorList.count(cTarget)) {
MonitorList.erase(cTarget);
AdminNotify("已移除监视窗口" + printChat(cTarget) + "");
}
else {
reply("该窗口不存在于监视列表!");
}
}
else {
if (MonitorList.count(cTarget)) {
reply("该窗口已存在于监视列表!");
}
else {
MonitorList.insert(cTarget);
AdminNotify("已添加监视窗口" + printChat(cTarget) + "");
}
}
return 1;
}
else {
bool boolErase = false;
string strReason = readPara();
Expand Down Expand Up @@ -337,12 +374,12 @@ class FromMsg {
AdminNotify("已将" + printGroup(llTargetID) + "移出白名单√");
}
else {
reply(printGroup(llTargetID) + "并不在白名单");
reply(printGroup(llTargetID) + "并不在" + GlobalMsg["strSelfName"] + "的白名单");
}
}
else {
if (WhiteGroup.count(llTargetID)) {
reply(printGroup(llTargetID) + "已加入白名单!");
reply(printGroup(llTargetID) + "已加入" + GlobalMsg["strSelfName"] + "的白名单!");
}
else {
WhiteGroup.insert(llTargetID);
Expand All @@ -368,12 +405,12 @@ class FromMsg {
AdminNotify("已将" + printGroup(llTargetID) + "移出黑名单√");
}
else {
reply(printGroup(llTargetID) + "并不在黑名单");
reply(printGroup(llTargetID) + "并不在" + GlobalMsg["strSelfName"] + "的黑名单");
}
}
else {
if (BlackGroup.count(llTargetID)) {
reply(printGroup(llTargetID) + "已加入黑名单!");
reply(printGroup(llTargetID) + "已加入" + GlobalMsg["strSelfName"] + "的黑名单!");
}
else {
BlackGroup.insert(llTargetID);
Expand All @@ -399,12 +436,12 @@ class FromMsg {
AdminNotify("已将" + printQQ(llTargetID) + "移出白名单√");
}
else {
reply(printQQ(llTargetID) + "并不在白名单");
reply(printQQ(llTargetID) + "并不在" + GlobalMsg["strSelfName"] + "的白名单");
}
}
else {
if (WhiteQQ.count(llTargetID)) {
reply(printQQ(llTargetID) + "已加入白名单!");
reply(printQQ(llTargetID) + "已加入" + GlobalMsg["strSelfName"] + "的白名单!");
}
else {
WhiteQQ.insert(llTargetID);
Expand All @@ -429,21 +466,21 @@ class FromMsg {
if (BlackQQ.count(llTargetID)) {
BlackQQ.erase(llTargetID);
AdminNotify("已将" + printQQ(llTargetID) + "移出黑名单√");
strReason.empty() ? AddMsgToQueue(GlobalMsg["strBlackQQDelNotice"], llTargetID)
: AddMsgToQueue(format(GlobalMsg["strBlackQQAddNoticeReason"], { strReason }), llTargetID);
AddMsgToQueue(GlobalMsg["strBlackQQDelNotice"], llTargetID);
}
else {
reply(printQQ(llTargetID) + "并不在黑名单");
reply(printQQ(llTargetID) + "并不在" + GlobalMsg["strSelfName"] + "的黑名单");
}
}
else {
if (BlackQQ.count(llTargetID)) {
reply(printQQ(llTargetID) + "已加入黑名单!");
reply(printQQ(llTargetID) + "已加入" + GlobalMsg["strSelfName"] + "的黑名单!");
}
else {
BlackQQ.insert(llTargetID);
AdminNotify("已将" + printQQ(llTargetID) + "加入黑名单√");
AddMsgToQueue(GlobalMsg["strBlackQQAddNotice"], llTargetID);
strReason.empty() ? AddMsgToQueue(GlobalMsg["strBlackQQAddNotice"], llTargetID)
: AddMsgToQueue(format(GlobalMsg["strBlackQQAddNoticeReason"], { strReason }), llTargetID);
}
}
} while (llTargetID = readID());
Expand All @@ -465,43 +502,6 @@ class FromMsg {
int intGroupCnt = clearGroup(strPara);
return 1;
}
else if (strOption == "monitor") {
bool boolErase = false;
readSkipSpace();
if (strMsg[intMsgCnt] == '-') {
boolErase = true;
intMsgCnt++;
}
if (strMsg[intMsgCnt] == '+') {intMsgCnt++;}
chatType cTarget;
if (readChat(cTarget)) {
strReply = "当前监视窗口" + to_string(MonitorList.size()) + "个:";
for (auto it : MonitorList) {
strReply += "\n" + printChat(it);
}
reply();
return 1;
}
if (boolErase) {
if (MonitorList.count(cTarget)) {
MonitorList.erase(cTarget);
AdminNotify("已移除监视窗口" + printChat(cTarget) + "");
}
else {
reply("该窗口不存在于监视列表!");
}
}
else {
if (MonitorList.count(cTarget)) {
reply("该窗口已存在于监视列表!");
}
else {
MonitorList.insert(cTarget);
AdminNotify("已添加监视窗口" + printChat(cTarget) + "");
}
}
return 1;
}
else if (strOption == "delete") {
MonitorList.erase({ masterQQ,Private });
reply("你不再是" + GlobalMsg["strSelfName"] + "的Master!");
Expand Down Expand Up @@ -1274,7 +1274,8 @@ class FromMsg {
reply(strReply);
return 1;
}
*TempDeck = vector<string>(CardDeck::mPublicDeck[strDeckName]);
ProDeck = CardDeck::mPublicDeck[strDeckName];
TempDeck = &ProDeck;
}
string strCardNum=readDigit();
auto intCardNum = strCardNum.empty() ? 1 : stoi(strCardNum);
Expand Down
33 changes: 18 additions & 15 deletions Dice/GlobalVar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ CQ::logger DiceLogger("Dice!");
* 请勿修改Dice_Build, Dice_Ver_Without_Build,DiceRequestHeader以及Dice_Ver常量
* 请修改Dice_Short_Ver或Dice_Full_Ver常量以达到版本自定义
*/
const unsigned short Dice_Build = 538;
const std::string Dice_Ver_Without_Build = "2.3.8.6i";
const unsigned short Dice_Build = 543;
const std::string Dice_Ver_Without_Build = "2.3.8Express7";
const std::string DiceRequestHeader = "Dice/2.3.8";
const std::string Dice_Ver = Dice_Ver_Without_Build + "(" + std::to_string(Dice_Build) + ")";
const std::string Dice_Short_Ver = "Dice! by 溯洄 Shiki.Ver " + Dice_Ver;
Expand Down Expand Up @@ -218,32 +218,35 @@ std::map<std::string, std::string> GlobalMsg
{"strJrrp", "{0}今天的人品值是: {1}"},
{"strJrrpErr", "JRRP获取失败! 错误信息: \n{0}"},
{"strAddGroup", R"(欢迎使用本机器人!
请使用.dismiss 机器人QQ号 使机器人退群退讨论组
.bot on/off 机器人QQ号 //机器人开启或关闭
请使用.dismiss QQ号(或后四位) 使本机器人退群退讨论组
.bot on/off QQ号(或后四位) //插件开启或关闭
.help协议 确认服务协议
.help指令 查看指令列表
.help设定 确认骰娘设定
.help链接 查看源码文档
千万别想当然以为本机器人和别的骰娘一样!)" },
{"strSelfName", ""},
{"strBotMsg", "\n使用.help更新 查看本机器人更新内容"},
{"strHlpMsg" , Dice_Short_Ver + "\n" +
R"(请使用.dismiss 机器人QQ号 使机器人退群退讨论组
.bot on/off 机器人QQ号 //机器人开启或关闭
R"(请使用.dismiss QQ号(或后四位) 使本机器人退群退讨论组
.bot on/off QQ号(或后四位) //插件开启或关闭
.help协议 确认服务协议
.help指令 查看指令列表
.help设定 确认骰娘设定
查看源码:https://github.com/mystringEmpty/Dice
官方文档:https://www.stringempty.xyz
跑团记录着色器: https://logpainter.kokona.tech
插件交流/bug反馈请加QQ群192499947)"}
.help链接 查看源码文档
官骰群:941980833
私骰群:192499947)"}
};

std::map<std::string, std::string> EditedMsg;
std::map<std::string, std::string> HelpDoc = {
{"更新","538:优化了掷骰表达,加入自动排序\n537:更新.send功能\n536:更新ww等表达式正常应用乘法功能\n535:新增了可变成长检定功能\n534:修复房规检定bug,sc也会应用默认房规\n533:更新了.rc/ra功能\n532:更新了消息转发功能(当前Master专用)\n531:更新了塔罗牌牌阵\n528:更新.help帮助功能,允许后接参数"},
{"协议","0.本协议是Shiki(Death、Judgement、The World)的服务协议,不代表同类插件服务有一致的协议,请注意。\n1.邀请骰娘、使用掷骰服务和在群内阅读此协议视为同意并承诺遵守此协议,否则请使用.dismiss移出骰娘。\n2.不允许禁言、移出骰娘或刷屏掷骰等对骰娘的不友善行为,这些行为将会提高骰娘被制裁的风险。开关骰娘响应请使用.bot on/off。\n3.骰娘默认邀请行为已事先得到群内同意,因而会自动同意群邀请。因擅自邀请而使骰娘遭遇不友善行为时,邀请者因未履行预见义务而将承担连带责任。\n4.禁止将骰娘用于赌博及其他违法犯罪行为。\n5.对于设置敏感昵称等无法预见但有可能招致言论审查的行为,骰娘可能会出于自我保护而拒绝提供服务\n6.由于技术以及资金原因,我们无法保证机器人100%的时间稳定运行,可能不定时停机维护或遭遇冻结,但是相应情况会及时通过各种渠道进行通知,敬请谅解。临时停机的骰娘不会有任何响应,故而不会影响群内活动,此状态下仍然禁止不友善行为。\n7.对于违反协议的行为,骰娘将视情况终止对用户和所在群提供服务,并将不良记录共享给其他服务提供方。黑名单相关事宜可以与服务提供方协商,但最终裁定权在服务提供方。\n8.本协议内容随时有可能改动。请注意帮助信息、签名、空间、官方群等处的骰娘动态。\n9.骰娘提供掷骰服务是完全免费的,欢迎投食。\n10.本服务最终解释权归服务提供方所有。"},
{"更新","543:允许.st输入变化值\n542:新增.deck功能\n541:后台管理大修,允许同意好友\n540:预定义回执文本\n539:优化表达,加入骰池计数\n537:更新.send功能\n535:新增了可变成长检定功能\n533:更新了.rc/ra功能\n532:更新了消息转发功能(当前Master专用)\n528:更新.help帮助功能,允许后接参数"},
{"协议","0.本协议是Shiki(Death、Judgement、The World)的服务协议。如果你看到了这句话,意味着Master应用默认协议,请注意。\n1.邀请骰娘、使用掷骰服务和在群内阅读此协议视为同意并承诺遵守此协议,否则请使用.dismiss移出骰娘。\n2.不允许禁言、移出骰娘或刷屏掷骰等对骰娘的不友善行为,这些行为将会提高骰娘被制裁的风险。开关骰娘响应请使用.bot on/off。\n3.骰娘默认邀请行为已事先得到群内同意,因而会自动同意群邀请。因擅自邀请而使骰娘遭遇不友善行为时,邀请者因未履行预见义务而将承担连带责任。\n4.禁止将骰娘用于赌博及其他违法犯罪行为。\n5.对于设置敏感昵称等无法预见但有可能招致言论审查的行为,骰娘可能会出于自我保护而拒绝提供服务\n6.由于技术以及资金原因,我们无法保证机器人100%的时间稳定运行,可能不定时停机维护或遭遇冻结,但是相应情况会及时通过各种渠道进行通知,敬请谅解。临时停机的骰娘不会有任何响应,故而不会影响群内活动,此状态下仍然禁止不友善行为。\n7.对于违反协议的行为,骰娘将视情况终止对用户和所在群提供服务,并将不良记录共享给其他服务提供方。黑名单相关事宜可以与服务提供方协商,但最终裁定权在服务提供方。\n8.本协议内容随时有可能改动。请注意帮助信息、签名、空间、官方群等处的骰娘动态。\n9.骰娘提供掷骰服务是完全免费的,欢迎投食。\n10.本服务最终解释权归服务提供方所有。"},
{"链接","查看源码:https://github.com/w4123/Dice/tree/Shiki\n插件下载:https://github.com/w4123/Dice/releases\n官方文档:https://www.stringempty.xyz\n跑团记录着色器:https://logpainter.kokona.tech"},
{"设定","Master:()\n.me使用:禁止\n.jrrp使用:允许\n邀请处理:黑名单制,非禁即入\n讨论组使用:允许\n移出反制:拉黑群和操作者\n禁言反制:默认拉黑群和群主\n刷屏反制:警告\n邀请人责任:有限连带\n窥屏可能:有\n其他插件:无\n官方群:941980833\n私骰群:192499947"},
{"作者","Copyright (C) 2018-2019 w4123溯洄\nCopyright (C) 2019 String.Empty"},
{"指令","掷骰指令包括:\n.dismiss 退群\n.bot 开关\n.welcome 入群欢迎\n.rules 规则速查\n.r 掷骰\n.ob 旁观模式\n.set 设置默认骰\n.name 随机姓名\n.nn 设置昵称\n.coc COC人物作成\n.dnd DND人物作成\n.st 角色卡设置\n.rc/ra 检定\n.setcoc 设置检定房规\n.sc 理智检定\n.en 成长检定\n.ri 先攻\n.init 先攻列表\n.ww 骰池\n.me 第三人称动作\n.jrrp 今日人品\n.send 向Master发送消息\n.group ban 群员禁言\n.group state 本群现状\n.draw 抽牌\nat骰娘后接指令可以指定骰娘单独响应,如at骰娘.bot off\n请.help对应指令 获取详细信息\n为了避免未预料到的指令误判,请尽可能在参数之间使用空格"},
{"指令","at骰娘后接指令可以指定骰娘单独响应,如at骰娘.bot off\n多数指令需要后接参数,请.help对应指令 获取详细信息\n掷骰指令包括:\n.dismiss 退群\n.bot 开关\n.welcome 入群欢迎\n.rules 规则速查\n.r 掷骰\n.ob 旁观模式\n.set 设置默认骰\n.name 随机姓名\n.nn 设置昵称\n.coc COC人物作成\n.dnd DND人物作成\n.st 角色卡设置\n.rc/ra 检定\n.setcoc 设置检定房规\n.sc 理智检定\n.en 成长检定\n.ri 先攻\n.init 先攻列表\n.ww 骰池\n.me 第三人称动作\n.jrrp 今日人品\n.send 向Master发送消息\n.group ban 群员禁言\n.group state 本群现状\n.draw 抽牌\n.deck 牌堆\n为了避免未预料到的指令误判,请尽可能在参数之间使用空格"},
{"deck","该指令可以设置默认牌堆,使用.draw不指定牌堆名时将使用此牌堆。该牌堆不会放回直到抽完最后一张后洗牌。\n.deck set 公共牌堆名 设置默认牌堆\n.deck set 正整数1-100 设置指定长度的数列\n.deck show 查看剩余卡牌\n.deck reset 重置剩余卡牌\n.deck new 自定义牌堆(用空格或|分割)(白名单限定)\n.deck new 有弹|无弹|无弹|无弹|无弹|无弹\n除show外其他群内操作需要管理权限"},
{"退群","&dismiss"},
{"退群指令","&dismiss"},
{"dismiss","该指令需要群管理员权限,使用后即退出群聊\n!dismiss [目标QQ(完整或末四位)]指名退群\n!dismiss无视内置黑名单和静默状态,只要插件开启总是有效"},
Expand Down Expand Up @@ -276,7 +279,7 @@ std::map<std::string, std::string> HelpDoc = {
{"coc","克苏鲁的呼唤(COC)人物作成:.coc([7/6])(d)([生成数量])\n.coc 10\t//默认生成7版人物\n.coc6d\t//接d为详细作成,一次只能作成一个\n仅用作骰点法人物作成,可应用变体规则,参考.rules创建调查员的其他选项"},
{"dnd","龙与地下城(DND)人物作成:.dnd([生成数量])\n.dnd 5\t//仅作参考,可自行应用变体规则"},
{"角色卡设置","&st"},
{"st","角色卡设置:.st (del/clr/show) ([属性名]) ([属性值])\n目前用户的人物卡是所有群互通的,因此无法在pl多开时使用同一个骰子设定属性\n.st力量:50 体质:55 体型:65 敏捷:45 外貌:70 智力:75 意志:35 教育:65 幸运:75\n.st del kp裁决\t//删除已保存的属性\n.st clr\t//清空人物卡\n.st show 灵感\t//查看指定人物属性\n.st show\t//无参数时查看所有属性,请使用只st加点过技能的半自动人物卡!\n部分COC属性会被视为同义词,如智力/灵感、理智/san、侦查/侦察"},
{"st","角色卡设置:.st (del/clr/show) ([属性名]) ([属性值])\n目前用户的人物卡是所有群互通的,因此无法在pl多开时使用同一个骰子设定属性\n.st力量:50 体质:55 体型:65 敏捷:45 外貌:70 智力:75 意志:35 教育:65 幸运:75\n.st hp-1 后接+/-时视为从原值上变化\n.st san+1d6 修改属性时可使用掷骰表达式\n.st del kp裁决\t//删除已保存的属性\n.st clr\t//清空人物卡\n.st show 灵感\t//查看指定人物属性\n.st show\t//无参数时查看所有属性,请使用只st加点过技能的半自动人物卡!\n部分COC属性会被视为同义词,如智力/灵感、理智/san、侦查/侦察"},
{"rc","&rc/ra"},
{"ra","&rc/ra"},
{"检定","&rc/ra"},
Expand Down Expand Up @@ -335,7 +338,7 @@ std::map<std::string, std::string> HelpDoc = {
{"隐者正位","隐藏的事实,个别的行动,倾听他人的意见,享受孤独,有益的警戒,年长者,避开危险,祖父,乡间生活。"},
{"隐者逆位","憎恨孤独,自卑,担心,幼稚思想,过于慎重导致失败,偏差,不宜旅行。"},
{"命运之轮正位","关键性的事件,有新的机会,因的潮流,环境的变化,幸运的开端,状况好转,问题解决,幸运之神降临。"},
{"命运之轮逆位","边疆的不行,挫折,计划泡汤,障碍,无法修正方向,往坏处发展,恶性循环,中断。"},
{"命运之轮逆位","挫折,计划泡汤,障碍,无法修正方向,往坏处发展,恶性循环,中断。"},
{"正义正位","公正、中立、诚实、心胸坦荡、表里如一、身兼二职、追求合理化、协调者、与法律有关、光明正大的交往、感情和睦。"},
{"正义逆位","失衡、偏见、纷扰、诉讼、独断专行、问心有愧、无法两全、表里不一、男女性格不合、情感波折、无视社会道德的恋情。"},
{"倒吊人正位","接受考验、行动受限、牺牲、不畏艰辛、不受利诱、有失必有得、吸取经验教训、浴火重生、广泛学习、奉献的爱。"},
Expand Down
6 changes: 3 additions & 3 deletions Dice/app.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
"ret": 1,
"apiver": 9,
"name": "Dice!",
"version": "2.3.8.6i",
"version_id": 538,
"version": "2.3.8Express7",
"version_id": 543,
"author": "w4123溯洄 Shiki",
"description": "跑团用骰子 本程序使用AGPLv3开源协议授权 Copyright (c) 2018-2019 w4123溯洄 Shiki",
"event": [
Expand Down Expand Up @@ -105,7 +105,7 @@
101, //发送群消息 sendGroupMsg
103, //发送讨论组消息 sendDiscussMsg
106, //发送私聊消息 sendPrivateMsg
121, //置群成员禁言 setGroupBan
121, //置群成员禁言 setGroupBan
122, //置群管理员 setGroupAdmin
127, //[敏感]置群退出 setGroupLeave
130, //取群成员信息 getGroupMemberInfoV2 / getGroupMemberInfo
Expand Down
Loading

0 comments on commit bb5ac48

Please sign in to comment.