From 3268a056bca0d0d0057b9ace2f96412e3da8fe8c Mon Sep 17 00:00:00 2001 From: Yiwen-Chan Date: Tue, 20 Apr 2021 15:39:49 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E5=A2=9E=E5=8A=A0=E6=A4=9B?= =?UTF-8?q?=E6=A4=9B=E8=AF=8D=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- atri/atri.go | 80 +++++++++--------- build.bat | 1 + huahua/huahua.go | 210 +++++++++++++++++++++++++++++++++++++++++++++++ main.go | 28 ++++--- 4 files changed, 266 insertions(+), 53 deletions(-) create mode 100644 huahua/huahua.go diff --git a/atri/atri.go b/atri/atri.go index b98fe875..461e9eee 100644 --- a/atri/atri.go +++ b/atri/atri.go @@ -18,40 +18,29 @@ var ( ) func init() { // 插件主体 - zero.OnFullMatch("醒醒", zero.AdminPermission).SetBlock(true).SetPriority(PRIO - 1). + zero.OnFullMatch("ATRI醒醒", zero.AdminPermission).SetBlock(true).SetPriority(PRIO). Handle(func(ctx *zero.Ctx) { ENABLE = true ctx.SendChain(randText("嗯呜呜……夏生先生……?")) }) - zero.OnFullMatch("睡吧", zero.AdminPermission).SetBlock(true).SetPriority(PRIO - 1). + zero.OnFullMatch("ATRI睡吧", zero.AdminPermission).SetBlock(true).SetPriority(PRIO). Handle(func(ctx *zero.Ctx) { ENABLE = false ctx.SendChain(randText("Zzz……Zzz……")) }) - zero.OnKeywordGroup([]string{"萝卜子"}, AtriSwitch()).SetBlock(true).SetPriority(PRIO). + zero.OnKeywordGroup([]string{"萝卜子"}, AtriSwitch(), AtriSleep()).SetBlock(true).SetPriority(PRIO). Handle(func(ctx *zero.Ctx) { - if now := time.Now().Hour(); now < 6 { - return - } ctx.SendChain(randText("萝卜子是对机器人的蔑称!", "是亚托莉......萝卜子可是对机器人的蔑称")) }) - zero.OnKeywordGroup([]string{"喜欢", "爱你", "爱", "suki", "daisuki", "すき", "好き", "贴贴", "老婆", "亲一个", "mua"}, AtriSwitch(), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + zero.OnKeywordGroup([]string{"喜欢", "爱你", "爱", "suki", "daisuki", "すき", "好き", "贴贴", "老婆", "亲一个", "mua"}, AtriSwitch(), AtriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). Handle(func(ctx *zero.Ctx) { - if now := time.Now().Hour(); now < 6 { - return - } if rand.Intn(10) == 0 { ctx.SendChain(randImage("SUKI.jpg", "SUKI1.jpg", "SUKI2.jpg")) } }) - zero.OnKeywordGroup([]string{"草你妈", "操你妈", "脑瘫", "废柴", "fw", "five", "废物", "战斗", "爬", "爪巴", "sb", "SB", "傻B"}, AtriSwitch(), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + zero.OnKeywordGroup([]string{"草你妈", "操你妈", "脑瘫", "废柴", "fw", "five", "废物", "战斗", "爬", "爪巴", "sb", "SB", "傻B"}, AtriSwitch(), AtriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO - 1). Handle(func(ctx *zero.Ctx) { - if now := time.Now().Hour(); now < 6 { - return - } - if rand.Intn(10) == 0 { - ctx.SendChain(randImage("FN.jpg", "WQ.jpg", "WQ1.jpg")) - } + ctx.SendChain(randImage("FN.jpg", "WQ.jpg", "WQ1.jpg")) }) zero.OnFullMatchGroup([]string{"早安", "早哇", "早上好", "ohayo", "哦哈哟", "お早う"}, AtriSwitch()).SetBlock(true).SetPriority(PRIO). Handle(func(ctx *zero.Ctx) { @@ -147,11 +136,8 @@ func init() { // 插件主体 )) } }) - zero.OnKeywordGroup([]string{"高性能", "太棒了", "すごい", "sugoi", "斯国一", "よかった"}, AtriSwitch(), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + zero.OnKeywordGroup([]string{"高性能", "太棒了", "すごい", "sugoi", "斯国一", "よかった"}, AtriSwitch(), AtriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). Handle(func(ctx *zero.Ctx) { - if now := time.Now().Hour(); now < 6 { - return - } ctx.SendChain(randText( "当然,我是高性能的嘛~!", "小事一桩,我是高性能的嘛", @@ -170,11 +156,8 @@ func init() { // 插件主体 "呣......我的高性能,毫无遗憾地施展出来了......", )) }) - zero.OnKeywordGroup([]string{"没事", "没关系", "大丈夫", "还好", "不要紧", "没出大问题", "没伤到哪"}, AtriSwitch(), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + zero.OnKeywordGroup([]string{"没事", "没关系", "大丈夫", "还好", "不要紧", "没出大问题", "没伤到哪"}, AtriSwitch(), AtriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). Handle(func(ctx *zero.Ctx) { - if now := time.Now().Hour(); now < 6 { - return - } ctx.SendChain(randText( "当然,我是高性能的嘛~!", "没事没事,因为我是高性能的嘛!嗯哼!", @@ -187,36 +170,24 @@ func init() { // 插件主体 )) }) - zero.OnKeywordGroup([]string{"好吗", "是吗", "行不行", "能不能", "可不可以"}, AtriSwitch()).SetBlock(true).SetPriority(PRIO). + zero.OnKeywordGroup([]string{"好吗", "是吗", "行不行", "能不能", "可不可以"}, AtriSwitch(), AtriSleep()).SetBlock(true).SetPriority(PRIO). Handle(func(ctx *zero.Ctx) { - if now := time.Now().Hour(); now < 6 { - return - } - if rand.Intn(3) == 0 { + if rand.Intn(2) == 0 { ctx.SendChain(randImage("YES.jpg", "NO.jpg")) } }) - zero.OnFullMatchGroup([]string{"啊这"}, AtriSwitch()).SetBlock(true).SetPriority(PRIO). + zero.OnFullMatchGroup([]string{"啊这"}, AtriSwitch(), AtriSleep()).SetBlock(true).SetPriority(PRIO). Handle(func(ctx *zero.Ctx) { - if now := time.Now().Hour(); now < 6 { - return - } - if rand.Intn(3) == 0 { + if rand.Intn(2) == 0 { ctx.SendChain(randImage("AZ.jpg", "AZ1.jpg")) } }) - zero.OnFullMatchGroup([]string{"我好了"}, AtriSwitch()).SetBlock(true).SetPriority(PRIO). + zero.OnFullMatchGroup([]string{"我好了"}, AtriSwitch(), AtriSleep()).SetBlock(true).SetPriority(PRIO). Handle(func(ctx *zero.Ctx) { - if now := time.Now().Hour(); now < 6 { - return - } ctx.SendChain(randText("不许好!", "憋回去!")) }) - zero.OnFullMatchGroup([]string{"?", "?", "¿"}, AtriSwitch()).SetBlock(true).SetPriority(PRIO). + zero.OnFullMatchGroup([]string{"?", "?", "¿"}, AtriSwitch(), AtriSleep()).SetBlock(true).SetPriority(PRIO). Handle(func(ctx *zero.Ctx) { - if now := time.Now().Hour(); now < 6 { - return - } switch rand.Intn(5) { case 0: ctx.SendChain(randText("?", "?", "嗯?", "(。´・ω・)ん?", "ん?")) @@ -224,6 +195,19 @@ func init() { // 插件主体 ctx.SendChain(randImage("WH.jpg", "WH1.jpg", "WH2.jpg", "WH3.jpg")) } }) + zero.OnKeyword("离谱", AtriSwitch(), AtriSleep()).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + switch rand.Intn(5) { + case 0: + ctx.SendChain(randText("?", "?", "嗯?", "(。´・ω・)ん?", "ん?")) + case 1, 2: + ctx.SendChain(randImage("WH.jpg")) + } + }) + zero.OnKeyword("答应我", AtriSwitch(), AtriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("我无法回应你的请求")) + }) } func randText(text ...string) message.MessageSegment { @@ -242,3 +226,13 @@ func AtriSwitch() zero.Rule { return ENABLE } } + +// AtriSleep 凌晨0点到6点,ATRI 在睡觉,不回应任何请求 +func AtriSleep() zero.Rule { + return func(ctx *zero.Ctx) bool { + if now := time.Now().Hour(); now < 6 { + return false + } + return true + } +} diff --git a/build.bat b/build.bat index 4ea29e59..d89187e3 100644 --- a/build.bat +++ b/build.bat @@ -2,5 +2,6 @@ go version gcc -v go env -w GOPROXY=https://goproxy.cn,direct go env -w GO111MODULE=auto +go mod tidy go build -ldflags="-s -w" -o ZeroBot-Plugin-windows.exe pause diff --git a/huahua/huahua.go b/huahua/huahua.go new file mode 100644 index 00000000..e269d47d --- /dev/null +++ b/huahua/huahua.go @@ -0,0 +1,210 @@ +package huahua + +import ( + "math/rand" + "strings" + + zero "github.com/wdvxdr1123/ZeroBot" + "github.com/wdvxdr1123/ZeroBot/message" +) + +var ( + PRIO = -1 + ENABLE = true + RES = "https://raw.dihe.moe/Yiwen-Chan/ZeroBot-Plugin/master/huahua/" +) + +func init() { + zero.OnFullMatch("椛椛醒醒", zero.AdminPermission).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ENABLE = true + ctx.SendChain(randText("啊……好困啊……")) + }) + zero.OnFullMatch("椛椛睡吧", zero.AdminPermission).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ENABLE = false + ctx.SendChain(randText("那晚安咯……")) + }) + zero.OnRegex("^。{1,6}$", HuaHuaSwitch(), HuaHuaChance(80)).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + count := strings.Count(ctx.Event.Message.CQString(), "。") + ctx.SendChain(message.Text( + []string{ + "一个泡泡。。", + "两个泡泡。", + "三个泡泡", + "四个泡泡。。", + "五个泡泡", + "六个泡泡", + }[count-1], + )) + }) + zero.OnFullMatchGroup([]string{"!", "!"}, HuaHuaSwitch(), HuaHuaChance(80)).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("一个感叹号")) + }) + zero.OnFullMatchGroup([]string{"!?", "?!", "!?", "?!"}, HuaHuaSwitch(), HuaHuaChance(80)).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("惊讶")) + }) + zero.OnFullMatch("…", HuaHuaSwitch(), HuaHuaChance(80)).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("不知道该说什么", "啊咧?")) + }) + zero.OnKeyword("不记得", HuaHuaSwitch(), HuaHuaChance(80)).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("忘川河流淌而过")) + }) + zero.OnKeywordGroup([]string{"可怜", "好累啊"}, HuaHuaSwitch(), HuaHuaChance(80)).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("给你抱抱", "摸摸头(๑•́ωก̀๑)")) + }) + zero.OnKeyword("好冷", HuaHuaSwitch(), HuaHuaChance(80)).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("多穿点", "赶紧躺被窝")) + }) + // 喊道椛椛 + zero.OnFullMatch("啾啾", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("啾啾")) + }) + zero.OnFullMatch("乖", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("好饿……先请我吃饭饭")) + }) + zero.OnKeyword("听话", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("我只听主人的话")) + }) + zero.OnFullMatch("举高高", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("好重,举不动!")) + }) + zero.OnKeyword("何在", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("我在二次元")) + }) + zero.OnFullMatch("傲娇", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("哼")) + }) + zero.OnFullMatch("卖萌", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("(´ฅω•ฅ`)チラッ")) + }) + zero.OnFullMatch("变身", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("人家才不是马猴烧酒呐!")) + }) + zero.OnFullMatch("可爱", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("٩(๑òωó๑)۶")) + }) + zero.OnKeyword("吃饭了吗", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("等你投食")) + }) + zero.OnKeyword("吃鱼", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("姬气人吃不得这些东西")) + }) + zero.OnKeyword("唱歌", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("不唱")) + }) + zero.OnKeyword("在不在", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("好啦好啦")) + }) + zero.OnKeyword("坏掉了", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("我不是我没有")) + }) + zero.OnKeyword("夸人", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("真是太厉害了呢")) + }) + zero.OnKeyword("女仆模式", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("狗修金sama")) + }) + zero.OnKeyword("抱抱", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("请不要乱摸")) + }) + zero.OnKeyword("揉揉", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("不要不可以")) + }) + zero.OnKeyword("摸头", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("不行,你摸不到")) + }) + zero.OnKeyword("摸摸", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("lsp走开")) + }) + zero.OnKeyword("放屁", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("我只是个姬气人,你想多了")) + }) + zero.OnKeyword("数数", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("就不数")) + }) + zero.OnKeyword("爱我", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("才不爱你呢")) + }) + zero.OnKeyword("被玩坏了", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("你才被玩坏了")) + }) + zero.OnKeyword("跳舞", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("跳你妹,我只是姬气人")) + }) + zero.OnKeyword("过肩摔", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("椛椛不会")) + }) + zero.OnKeyword("还能塞得下", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("凑不要脸")) + }) + zero.OnKeyword("钉宫三连", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("八嘎hentai无路赛")) + }) + zero.OnKeyword("攻略", HuaHuaSwitch(), HuaHuaChance(80), zero.OnlyToMe).SetBlock(true).SetPriority(PRIO). + Handle(func(ctx *zero.Ctx) { + ctx.SendChain(randText("lsp别想泡我")) + }) +} + +func randText(text ...string) message.MessageSegment { + length := len(text) + return message.Text(text[rand.Intn(length)]) +} + +func randImage(file ...string) message.MessageSegment { + length := len(file) + return message.Image(RES + file[rand.Intn(length)]) +} + +// HuaHuaSwitch 控制 HuaHua 的开关 +func HuaHuaSwitch() zero.Rule { + return func(ctx *zero.Ctx) bool { + return ENABLE + } +} + +// HuaHuaChance 概率响应,输入回应 1-100 +func HuaHuaChance(percent int) zero.Rule { + return func(ctx *zero.Ctx) bool { + if r := rand.Intn(100); r <= percent-1 { + return true + } + return false + } +} diff --git a/main.go b/main.go index 5e5a9c46..657aa13c 100644 --- a/main.go +++ b/main.go @@ -9,14 +9,22 @@ import ( "github.com/wdvxdr1123/ZeroBot/driver" "github.com/wdvxdr1123/ZeroBot/message" - _ "github.com/Yiwen-Chan/ZeroBot-Plugin/atri" - _ "github.com/Yiwen-Chan/ZeroBot-Plugin/chat" - _ "github.com/Yiwen-Chan/ZeroBot-Plugin/github" - _ "github.com/Yiwen-Chan/ZeroBot-Plugin/manager" - _ "github.com/Yiwen-Chan/ZeroBot-Plugin/music" - _ "github.com/Yiwen-Chan/ZeroBot-Plugin/runcode" - _ "github.com/Yiwen-Chan/ZeroBot-Plugin/shindan" - //_ "github.com/Yiwen-Chan/ZeroBot-Plugin/setutime" + // 注:以下插件均可通过前面加 // 注释,注释后停用并不加载插件 + // 下列插件可与 wdvxdr1123/ZeroBot v1.1.2 以上配合单独使用 + // 词库类 + _ "github.com/Yiwen-Chan/ZeroBot-Plugin/atri" // ATRI词库 + _ "github.com/Yiwen-Chan/ZeroBot-Plugin/chat" // 基础词库 + _ "github.com/Yiwen-Chan/ZeroBot-Plugin/huahua" // 椛椛词库 + + // 实用类 + _ "github.com/Yiwen-Chan/ZeroBot-Plugin/github" // 搜索GitHub仓库 + _ "github.com/Yiwen-Chan/ZeroBot-Plugin/manager" // 群管 + _ "github.com/Yiwen-Chan/ZeroBot-Plugin/runcode" // 在线运行代码 + + // 娱乐类 + _ "github.com/Yiwen-Chan/ZeroBot-Plugin/music" // 点歌 + _ "github.com/Yiwen-Chan/ZeroBot-Plugin/setutime" // 涩图 + _ "github.com/Yiwen-Chan/ZeroBot-Plugin/shindan" // 测定 ) func init() { @@ -31,7 +39,7 @@ func main() { fmt.Print(` ====================[ZeroBot-Plugin]==================== * OneBot + ZeroBot + Golang -* Version 1.0.1 - 2021-04-20 02:38:38.4181345 +0800 CST +* Version 1.0.1 - 2021-04-20 15:38:43.5133157 +0800 CST * Copyright © 2021 Kanri, DawnNights, All Rights Reserved * Project: https://github.com/Yiwen-Chan/ZeroBot-Plugin ======================================================== @@ -49,7 +57,7 @@ func main() { Handle(func(ctx *zero.Ctx) { ctx.SendChain(message.Text( "* OneBot + ZeroBot + Golang ", "\n", - "* Version 1.0.1 - 2021-04-20 02:38:38.4181345 +0800 CST", "\n", + "* Version 1.0.1 - 2021-04-20 15:38:43.5133157 +0800 CST", "\n", "* Copyright © 2021 Kanri, DawnNights, All Rights Reserved ", "\n", "* Project: https://github.com/Yiwen-Chan/ZeroBot-Plugin", ))