mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2026-02-12 02:00:24 +00:00
feat: 抽塔罗牌附加解析 (#383)
This commit is contained in:
@@ -1,13 +1,16 @@
|
||||
package gif
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"image"
|
||||
"image/color"
|
||||
"sync"
|
||||
|
||||
"github.com/Coloured-glaze/gg"
|
||||
"github.com/FloatTech/floatbox/file"
|
||||
"github.com/FloatTech/floatbox/img/writer"
|
||||
"github.com/FloatTech/zbputils/img"
|
||||
"github.com/FloatTech/zbputils/img/text"
|
||||
)
|
||||
|
||||
// mo 摸
|
||||
@@ -1394,3 +1397,52 @@ func whirl(cc *context, value ...string) (string, error) {
|
||||
}
|
||||
return "file:///" + name, writer.SaveGIF2Path(name, img.MergeGif(7, whirl))
|
||||
}
|
||||
|
||||
// always 一直
|
||||
func alwaysDoGif(cc *context, value ...string) (string, error) {
|
||||
_ = value
|
||||
var err error
|
||||
var face []*image.NRGBA
|
||||
name := cc.usrdir + "AlwaysDo.gif"
|
||||
face, err = img.LoadAllFrames(cc.headimgsdir[0], 500, 500)
|
||||
if err != nil {
|
||||
// 载入失败尝试载入第一帧
|
||||
face = make([]*image.NRGBA, 0)
|
||||
first, err := img.LoadFirstFrame(cc.headimgsdir[0], 500, 500)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
face = append(face, first.Im)
|
||||
}
|
||||
canvas := gg.NewContext(500, 600)
|
||||
canvas.SetColor(color.Black)
|
||||
_, err = file.GetLazyData(text.BoldFontFile, true)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
err = canvas.LoadFontFace(text.BoldFontFile, 40)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
length := len(face)
|
||||
if length > 50 {
|
||||
length = 50
|
||||
}
|
||||
arg := "要我一直"
|
||||
l, _ := canvas.MeasureString(arg)
|
||||
if l > 500 {
|
||||
return "", errors.New("文字消息太长了")
|
||||
}
|
||||
turn := make([]*image.NRGBA, length)
|
||||
for i, f := range face {
|
||||
canvas := gg.NewContext(500, 600)
|
||||
canvas.DrawImage(f, 0, 0)
|
||||
canvas.SetColor(color.Black)
|
||||
_ = canvas.LoadFontFace(text.BoldFontFile, 40)
|
||||
canvas.DrawString(arg, 280-l, 560)
|
||||
canvas.DrawImage(img.Size(f, 90, 90).Im, 280, 505)
|
||||
canvas.DrawString("吗", 370, 560)
|
||||
turn[i] = img.Size(canvas.Image(), 0, 0).Im
|
||||
}
|
||||
return "file:///" + name, writer.SaveGIF2Path(name, img.MergeGif(8, turn))
|
||||
}
|
||||
|
||||
@@ -118,6 +118,7 @@ var (
|
||||
"我老婆": nowife,
|
||||
"远离": yuanli,
|
||||
"抬棺": taiguan,
|
||||
"一直": alwaysDoGif,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -140,7 +141,7 @@ func init() { // 插件主体
|
||||
"- 抬棺|- 远离|- 我老婆|- 小天使XXX|- 你的XXX|- 不要看\n" +
|
||||
"- 玩一下XXX|- 给我变|- 揍|- 吞|- 膜拜|- 诶嘿|- 2蹭|- 你犯法了\n" +
|
||||
"- 砰|- 注意力涣散|- 蒙蔽|- 踩|- 好玩|- 2转|- 踢球|- 2舔|\n" +
|
||||
"- 可莉吃|- 胡桃啃|- 怀",
|
||||
"- 可莉吃|- 胡桃啃|- 怀|- 一直(支持动图)",
|
||||
PrivateDataFolder: "gif",
|
||||
}).ApplySingle(ctxext.DefaultSingle)
|
||||
datapath = file.BOTPATH + "/" + en.DataFolder()
|
||||
|
||||
Reference in New Issue
Block a user