diff --git a/plugin/ai_false/ai_false.go b/plugin/ai_false/ai_false.go index e33fc83c..91deadbc 100644 --- a/plugin/ai_false/ai_false.go +++ b/plugin/ai_false/ai_false.go @@ -140,19 +140,21 @@ func drawstatus(m *ctrl.Control[*zero.Ctx], uid int64, botname string) (sendimg return } - data := **(**[]byte)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&bgdata)))) - if data == nil || uintptr(time.Since(boottime).Hours())/24 <= atomic.LoadUintptr(&bgcount) { + dldata := *(**[]byte)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&bgdata)))) + if dldata == nil || uintptr(time.Since(boottime).Hours())/24 <= atomic.LoadUintptr(&bgcount) { url, err1 := bilibili.GetRealURL(backgroundURL) if err1 != nil { return nil, err1 } - data, err1 = web.RequestDataWith(web.NewDefaultClient(), url, "", referer, "", nil) + data, err1 := web.RequestDataWith(web.NewDefaultClient(), url, "", referer, "", nil) if err1 != nil { return nil, err1 } atomic.AddUintptr(&bgcount, 1) atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&bgdata)), unsafe.Pointer(&data)) + dldata = &data } + data := *dldata back, _, err := image.Decode(bytes.NewReader(data)) if err != nil {