MCPcopy Index your code
hub / github.com/FloatTech/ZeroBot-Plugin / pickFishFor

Method pickFishFor

plugin/mcfish/main.go:376–424  ·  view source on GitHub ↗
(uid int64, number int)

Source from the content-addressed store, hash-verified

374}
375
376func (sql *fishdb) pickFishFor(uid int64, number int) (fishNames map[string]int, err error) {
377 fishNames = make(map[string]int, 6)
378 name := strconv.FormatInt(uid, 10) + "Pack"
379 sql.Lock()
380 defer sql.Unlock()
381 userInfo := article{}
382 err = sql.db.Create(name, &userInfo)
383 if err != nil {
384 return
385 }
386 count, err := sql.db.Count(name)
387 if err != nil {
388 return
389 }
390 if count == 0 {
391 return
392 }
393 if !sql.db.CanFind(name, "WHERE Type = 'fish'") {
394 return
395 }
396 fishInfo := article{}
397 k := 0
398 for i := number; i > 0 && k < len(fishList); {
399 _ = sql.db.Find(name, &fishInfo, "WHERE Name = ?", fishList[k])
400 if fishInfo.Number <= 0 {
401 k++
402 continue
403 }
404 if fishInfo.Number < i {
405 k++
406 i -= fishInfo.Number
407 fishNames[fishInfo.Name] += fishInfo.Number
408 fishInfo.Number = 0
409 } else {
410 fishNames[fishInfo.Name] += i
411 fishInfo.Number -= i
412 i = 0
413 }
414 if fishInfo.Number <= 0 {
415 err = sql.db.Del(name, "WHERE Duration = ?", fishInfo.Duration)
416 } else {
417 err = sql.db.Insert(name, &fishInfo)
418 }
419 if err != nil {
420 return
421 }
422 }
423 return
424}
425
426/*********************************************************/
427/************************背包相关函数***********************/

Callers 1

initFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected