debug message
update bindata
This commit is contained in:
parent
14fe8d2d10
commit
7c5d823c72
88
bindata.go
88
bindata.go
File diff suppressed because one or more lines are too long
206
item.go
206
item.go
@ -292,121 +292,127 @@ func loadObjItem() error {
|
|||||||
cacheObjItemCraft = make(map[string]int64)
|
cacheObjItemCraft = make(map[string]int64)
|
||||||
objItems = make([]ChatWarsItem, 0)
|
objItems = make([]ChatWarsItem, 0)
|
||||||
|
|
||||||
b, err := Asset("data/obj_item.json")
|
for _, a := range AssetNames() {
|
||||||
logOnError(err, "loadObjItem : load data/obj_item.json")
|
m, err := regexp.MatchString("data/obj_item/.*\\.json", a)
|
||||||
if err != nil {
|
logOnError(err, "loadObjItem : MatchString")
|
||||||
return err
|
if m {
|
||||||
}
|
b, err := Asset(a)
|
||||||
|
logOnError(err, "loadObjItem : load Asset("+a+")")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
err = json.Unmarshal(b, &objItems)
|
err = json.Unmarshal(b, &objItems)
|
||||||
var k int64
|
var k int64
|
||||||
for k = 0; k < int64(len(objItems)); k++ {
|
for k = 0; k < int64(len(objItems)); k++ {
|
||||||
if len(objItems[k].Names) == 0 {
|
if len(objItems[k].Names) == 0 {
|
||||||
log.Printf("loadObjItems : %s : name missing.\n", objItems[k].Code)
|
log.Printf("loadObjItems : %s : name missing.\n", objItems[k].Code)
|
||||||
} else {
|
} else {
|
||||||
if id, ok := cacheObjItem[objItems[k].Code]; ok {
|
if id, ok := cacheObjItem[objItems[k].Code]; ok {
|
||||||
log.Printf("loadObjItem : %s : duplicate code found. Belong to %s\n", objItems[id].Code, objItems[id].Names[0])
|
log.Printf("loadObjItem : %s : duplicate code found. Belong to %s\n", objItems[id].Code, objItems[id].Names[0])
|
||||||
} else {
|
|
||||||
cacheObjItem[objItems[k].Code] = k
|
|
||||||
objItems[k].ItemTypeID = cacheObjSubType[objItems[k].ItemType]
|
|
||||||
|
|
||||||
for _, n := range objItems[k].Names {
|
|
||||||
if id, ok := cacheObjItem[n]; ok {
|
|
||||||
log.Printf("loadObjItem : %s - %s : duplicate name found. Belongs to %s\n", objItems[k].Code, n, objItems[id].Code)
|
|
||||||
} else {
|
} else {
|
||||||
cacheObjItem[n] = k
|
cacheObjItem[objItems[k].Code] = k
|
||||||
|
objItems[k].ItemTypeID = cacheObjSubType[objItems[k].ItemType]
|
||||||
|
|
||||||
|
for _, n := range objItems[k].Names {
|
||||||
|
if id, ok := cacheObjItem[n]; ok {
|
||||||
|
log.Printf("loadObjItem : %s - %s : duplicate name found. Belongs to %s\n", objItems[k].Code, n, objItems[id].Code)
|
||||||
|
} else {
|
||||||
|
cacheObjItem[n] = k
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
objs, err := db.Query(`SELECT oi.obj_id, o.obj_sub_type_id, oi.intl_id, oi.weight, oi.craftable FROM obj o, obj_item oi WHERE o.id = oi.obj_id;`)
|
objs, err := db.Query(`SELECT oi.obj_id, o.obj_sub_type_id, oi.intl_id, oi.weight, oi.craftable FROM obj o, obj_item oi WHERE o.id = oi.obj_id;`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logOnError(err, "loadObjItem : querying items")
|
logOnError(err, "loadObjItem : querying items")
|
||||||
return err
|
return err
|
||||||
}
|
|
||||||
defer objs.Close()
|
|
||||||
|
|
||||||
for objs.Next() {
|
|
||||||
err = objs.Scan(&obj_id, &type_id, &intl_id, &weight, &craftable)
|
|
||||||
if err != nil {
|
|
||||||
logOnError(err, "loadObjItem : scanning items")
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if id, ok := cacheObjItem[intl_id]; !ok {
|
|
||||||
log.Printf("loadObjItem : %s : orphaned item in database (id : %d)\n", intl_id, obj_id)
|
|
||||||
} else {
|
|
||||||
objItems[id].ObjID64 = obj_id
|
|
||||||
|
|
||||||
if weight != objItems[id].Weight {
|
|
||||||
log.Printf("loadObjItem : %s - %s : weight changed : %d => %d\n", objItems[id].Code, objItems[id].Names[0], weight, objItems[id].Weight)
|
|
||||||
setObjItemWeight(obj_id, objItems[id].Weight)
|
|
||||||
}
|
}
|
||||||
|
defer objs.Close()
|
||||||
|
|
||||||
if (craftable == 0 && objItems[id].Craftable) || (craftable == 1 && !objItems[id].Craftable) {
|
for objs.Next() {
|
||||||
log.Printf("loadObjItem : %s - %s : craftable changed : %v => %v\n", objItems[id].Code, objItems[id].Names[0], !objItems[id].Craftable, objItems[id].Craftable)
|
err = objs.Scan(&obj_id, &type_id, &intl_id, &weight, &craftable)
|
||||||
setObjItemCraftable(obj_id, objItems[id].Craftable)
|
if err != nil {
|
||||||
}
|
logOnError(err, "loadObjItem : scanning items")
|
||||||
|
return err
|
||||||
cacheObjItemId[obj_id] = id
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
names, err := db.Query(`SELECT oi.obj_id, obn.name FROM obj_item oi, obj_name obn WHERE oi.obj_id = obn.obj_id;`)
|
|
||||||
if err != nil {
|
|
||||||
logOnError(err, "loadObjItem : querying names")
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer names.Close()
|
|
||||||
|
|
||||||
for names.Next() {
|
|
||||||
err = names.Scan(&obj_id, &name)
|
|
||||||
if err != nil {
|
|
||||||
logOnError(err, "loadObjItem : scanning names")
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if _, ok := cacheObjItem[name]; !ok {
|
|
||||||
if id, ok := cacheObjItemId[obj_id]; ok {
|
|
||||||
log.Printf("loadObjItem : %s : orphaned name in database for item %s\n", name, objItems[id].Code)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, i := range cacheObjItem {
|
|
||||||
if objItems[i].ObjID64 == 0 {
|
|
||||||
id, _ := addObjItem(objItems[i].Code, objItems[i].Names[0], objItems[i].ItemTypeID, objItems[i].Weight, objItems[i].Exchange, objItems[i].Auction, objItems[i].Craftable)
|
|
||||||
objItems[i].ObjID64 = id
|
|
||||||
cacheObjItemId[id] = i
|
|
||||||
for _, n := range objItems[i].Names {
|
|
||||||
objAddName(id, n)
|
|
||||||
cacheObjItem[n] = id
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, i := range cacheObjItem {
|
|
||||||
if objItems[i].Craft != nil {
|
|
||||||
cacheObjItemCraft[objItems[i].Craft.Command] = i
|
|
||||||
setObjItemCraft(objItems[i].ObjID64, objItems[i].Craft.Command, objItems[i].Craft.Mana)
|
|
||||||
emptyObjItemCraftItem(objItems[i].ObjID64)
|
|
||||||
for k, o := range objItems[i].Craft.Items {
|
|
||||||
if id, ok := cacheObjItem[o.Code]; !ok {
|
|
||||||
log.Printf("loadObjItem : %s : unknown item %s for recipe.\n", objItems[i].Code, o.Code)
|
|
||||||
} else {
|
|
||||||
objItems[i].Craft.Items[k].ItemID64 = objItems[id].ObjID64
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if id, ok := cacheObjItem[intl_id]; !ok {
|
||||||
|
log.Printf("loadObjItem : %s : orphaned item in database (id : %d)\n", intl_id, obj_id)
|
||||||
|
} else {
|
||||||
|
objItems[id].ObjID64 = obj_id
|
||||||
|
|
||||||
|
if weight != objItems[id].Weight {
|
||||||
|
log.Printf("loadObjItem : %s - %s : weight changed : %d => %d\n", objItems[id].Code, objItems[id].Names[0], weight, objItems[id].Weight)
|
||||||
|
setObjItemWeight(obj_id, objItems[id].Weight)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (craftable == 0 && objItems[id].Craftable) || (craftable == 1 && !objItems[id].Craftable) {
|
||||||
|
log.Printf("loadObjItem : %s - %s : craftable changed : %v => %v\n", objItems[id].Code, objItems[id].Names[0], !objItems[id].Craftable, objItems[id].Craftable)
|
||||||
|
setObjItemCraftable(obj_id, objItems[id].Craftable)
|
||||||
|
}
|
||||||
|
|
||||||
|
cacheObjItemId[obj_id] = id
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for _, o := range objItems[i].Craft.Items {
|
|
||||||
addObjItemCraftItem(objItems[i].ObjID64, o.ItemID64, o.Quantity)
|
names, err := db.Query(`SELECT oi.obj_id, obn.name FROM obj_item oi, obj_name obn WHERE oi.obj_id = obn.obj_id;`)
|
||||||
|
if err != nil {
|
||||||
|
logOnError(err, "loadObjItem : querying names")
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
defer names.Close()
|
||||||
|
|
||||||
|
for names.Next() {
|
||||||
|
err = names.Scan(&obj_id, &name)
|
||||||
|
if err != nil {
|
||||||
|
logOnError(err, "loadObjItem : scanning names")
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, ok := cacheObjItem[name]; !ok {
|
||||||
|
if id, ok := cacheObjItemId[obj_id]; ok {
|
||||||
|
log.Printf("loadObjItem : %s : orphaned name in database for item %s\n", name, objItems[id].Code)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, i := range cacheObjItem {
|
||||||
|
if objItems[i].ObjID64 == 0 {
|
||||||
|
id, _ := addObjItem(objItems[i].Code, objItems[i].Names[0], objItems[i].ItemTypeID, objItems[i].Weight, objItems[i].Exchange, objItems[i].Auction, objItems[i].Craftable)
|
||||||
|
objItems[i].ObjID64 = id
|
||||||
|
cacheObjItemId[id] = i
|
||||||
|
for _, n := range objItems[i].Names {
|
||||||
|
objAddName(id, n)
|
||||||
|
cacheObjItem[n] = id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, i := range cacheObjItem {
|
||||||
|
if objItems[i].Craft != nil {
|
||||||
|
cacheObjItemCraft[objItems[i].Craft.Command] = i
|
||||||
|
setObjItemCraft(objItems[i].ObjID64, objItems[i].Craft.Command, objItems[i].Craft.Mana)
|
||||||
|
emptyObjItemCraftItem(objItems[i].ObjID64)
|
||||||
|
for k, o := range objItems[i].Craft.Items {
|
||||||
|
if id, ok := cacheObjItem[o.Code]; !ok {
|
||||||
|
log.Printf("loadObjItem : %s : unknown item %s for recipe.\n", objItems[i].Code, o.Code)
|
||||||
|
} else {
|
||||||
|
objItems[i].Craft.Items[k].ItemID64 = objItems[id].ObjID64
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
for _, o := range objItems[i].Craft.Items {
|
||||||
|
addObjItemCraftItem(objItems[i].ObjID64, o.ItemID64, o.Quantity)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Printf("%d items loaded for %s.\n", len(objItems), a)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("%d items loaded.\n", len(objItems))
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
for _, v := range cacheObjItemId {
|
for _, v := range cacheObjItemId {
|
||||||
log.Printf("Item cached : %d\n", v.ObjID64)
|
log.Printf("Item cached : %d\n", v.ObjID64)
|
||||||
|
Loading…
Reference in New Issue
Block a user