printing should be k
This commit is contained in:
parent
3debae11d8
commit
28451736a5
276
character.go
276
character.go
@ -56,6 +56,191 @@ type WealthData struct {
|
|||||||
|
|
||||||
var charmap map[string]*Character
|
var charmap map[string]*Character
|
||||||
|
|
||||||
|
func accessChar(set bool, nick string, cat string, item string, val string) string {
|
||||||
|
var pdata, edata, sdata, wdata bool
|
||||||
|
|
||||||
|
switch (cat) {
|
||||||
|
case "personal":
|
||||||
|
pdata = true
|
||||||
|
break
|
||||||
|
case "equipment":
|
||||||
|
edata = true
|
||||||
|
break
|
||||||
|
case "stats":
|
||||||
|
sdata = true
|
||||||
|
break
|
||||||
|
case "wealth":
|
||||||
|
wdata = true
|
||||||
|
break
|
||||||
|
case "nil":
|
||||||
|
return charmap[nick].irc // can't be anything else but
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
return "invalid category"
|
||||||
|
}
|
||||||
|
|
||||||
|
if personal {
|
||||||
|
switch (item) {
|
||||||
|
case "name":
|
||||||
|
return charmap[nick].personal.name
|
||||||
|
break
|
||||||
|
case "lvl":
|
||||||
|
return strconv.Itoa(charmap[nick].personal.lvl)
|
||||||
|
break
|
||||||
|
case "race":
|
||||||
|
return charmap[nick].personal.race
|
||||||
|
break
|
||||||
|
case "xp":
|
||||||
|
return strconv.Itoa(charmap[nick].personal.xp)
|
||||||
|
break
|
||||||
|
case "height":
|
||||||
|
return strconv.Itoa(charmap[nick].personal.height)
|
||||||
|
break
|
||||||
|
case "alignment":
|
||||||
|
return charmap[nick].personal.alignment
|
||||||
|
break
|
||||||
|
case "classes":
|
||||||
|
var classes string
|
||||||
|
for i in range charmap[nick].personal.classes {
|
||||||
|
if len(charmap[nick].personal.classes > 0 {
|
||||||
|
if len(classes) > 0 {
|
||||||
|
classes = classes + ", " + i
|
||||||
|
} else {
|
||||||
|
classes = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case "weight":
|
||||||
|
return strconv.Itoa(charmap[nick].personal.weight)
|
||||||
|
break
|
||||||
|
case "sex":
|
||||||
|
return charmap[nick].personal.sex
|
||||||
|
break
|
||||||
|
case "hp":
|
||||||
|
return strconv.Itoa(charmap[nick].personal.hp)
|
||||||
|
break
|
||||||
|
case "ac":
|
||||||
|
return strconv.Itoa(charmap[nick].personal.ac)
|
||||||
|
break
|
||||||
|
case "age":
|
||||||
|
return strconv.Itoa(charmap[nick].personal.age)
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
return "invalid item"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
} else if equipment {
|
||||||
|
switch (item) {
|
||||||
|
case "armour":
|
||||||
|
var armour string
|
||||||
|
for i in range charmap[nick].equipment.armour {
|
||||||
|
if len(charmap[nick].equipment.armour) > 0 {
|
||||||
|
if len(armour) > 0 {
|
||||||
|
armour = armour + ", " + i
|
||||||
|
} else {
|
||||||
|
armour = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case "weapons":
|
||||||
|
var weapons string
|
||||||
|
for i in range charmap[nick].equipment.weapons {
|
||||||
|
if len(charmap[nick].equipment.weapons) > 0 {
|
||||||
|
if len(weapons) > 0 {
|
||||||
|
weapons = weapons + ", " + i
|
||||||
|
} else {
|
||||||
|
weapons = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case "items":
|
||||||
|
var items string
|
||||||
|
for i in range charmap[nick].equipment.items {
|
||||||
|
if len(charmap[nick].equipment.items) > 0 {
|
||||||
|
if len(items) > 0 {
|
||||||
|
items = items + ", " + i
|
||||||
|
} else {
|
||||||
|
items = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case "missiles":
|
||||||
|
var missiles string
|
||||||
|
for i in range charmap[nick].equipment.missiles {
|
||||||
|
if len(charmap[nick].equipment.missiles) > 0 {
|
||||||
|
if len(missiles) > 0 {
|
||||||
|
missiles = missiles + ", " + i
|
||||||
|
} else {
|
||||||
|
missiles = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
return "invalid item"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
} else if stats {
|
||||||
|
switch (item) {
|
||||||
|
case "con":
|
||||||
|
return strconv.Itoa(charmap[nick].stats.con)
|
||||||
|
break
|
||||||
|
case "str":
|
||||||
|
return strconv.Itoa(charmap[nick].stats.str)
|
||||||
|
break
|
||||||
|
case "intl":
|
||||||
|
return strconv.Itoa(charmap[nick].stats.intl)
|
||||||
|
break
|
||||||
|
case "cha":
|
||||||
|
return strconv.Itoa(charmap[nick].stats.cha)
|
||||||
|
break
|
||||||
|
case "wis":
|
||||||
|
return strconv.Itoa(charmap[nick].stats.wis)
|
||||||
|
break
|
||||||
|
case "dex":
|
||||||
|
return strconv.Itoa(charmap[nick].stats.dex)
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
return "invalid item"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
} else if wealth {
|
||||||
|
switch (item) {
|
||||||
|
case "coins":
|
||||||
|
return strconv.Itoa(charmap[nick].wealth.coins)
|
||||||
|
break
|
||||||
|
case "other":
|
||||||
|
var other string
|
||||||
|
for i in range charmap[nick].wealth.other {
|
||||||
|
if len(charmap[nick].wealth.other) > 0 {
|
||||||
|
if len(other) > 0 {
|
||||||
|
other = other + ", " + i
|
||||||
|
} else {
|
||||||
|
other = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case "gems":
|
||||||
|
var gems string
|
||||||
|
for i in range charmap[nick].wealth.gems {
|
||||||
|
if len(charmap[nick].wealth.gems) > 0 {
|
||||||
|
if len(gems) > 0 {
|
||||||
|
gems = gems + ", " + i
|
||||||
|
} else {
|
||||||
|
gems = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func importChar(nick string) bool {
|
func importChar(nick string) bool {
|
||||||
file, err := ioutil.ReadFile("json/" + nick + ".json")
|
file, err := ioutil.ReadFile("json/" + nick + ".json")
|
||||||
|
|
||||||
@ -67,100 +252,13 @@ func importChar(nick string) bool {
|
|||||||
|
|
||||||
json.Unmarshal(file, char)
|
json.Unmarshal(file, char)
|
||||||
|
|
||||||
charmap = map[string]*jason.Object{
|
charmap = map[string]*Character{
|
||||||
char.irc: char,
|
char.irc: char,
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func printChar(nick string, cat string, scat string, item string) string {
|
|
||||||
if _, err := os.Stat("json/" + nick + ".json"); os.IsNotExist(err) {
|
|
||||||
return "does not exist"
|
|
||||||
}
|
|
||||||
|
|
||||||
var fixedCat string
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
switch (cat) {
|
|
||||||
case "personal":
|
|
||||||
fixedCat = "PersonalData"
|
|
||||||
break
|
|
||||||
case "equipment":
|
|
||||||
fixedCat = "EquipmentData"
|
|
||||||
break
|
|
||||||
case "stats":
|
|
||||||
fixedCat = "StatData"
|
|
||||||
break
|
|
||||||
case "wealth":
|
|
||||||
fixedCat = "WealthData"
|
|
||||||
break
|
|
||||||
case "nil":
|
|
||||||
fixedCat = "nil"
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
return "invalid category"
|
|
||||||
}
|
|
||||||
|
|
||||||
if scat == "nil" {
|
|
||||||
return charmap[nick].fixedCat.
|
|
||||||
} else {
|
|
||||||
test, _ := charmap[nick].GetString(cat, scat, item)
|
|
||||||
|
|
||||||
if len(test) == 0 {
|
|
||||||
val, _ := charmap[nick].GetInt64(cat, scat, item)
|
|
||||||
return strconv.FormatInt(val, 10)
|
|
||||||
} else {
|
|
||||||
val, _ := charmap[nick].GetString(cat, scat, item)
|
|
||||||
return val
|
|
||||||
}
|
|
||||||
|
|
||||||
return "does not exist"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func setChar(nick string, cat string, scat string, item string, value string) bool {
|
func setChar(nick string, cat string, scat string, item string, value string) bool {
|
||||||
file, err := ioutil.ReadFile("json/" + nick + ".json")
|
// With the changes I'm currently making, this will have to be changed as well.
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
lines := strings.Split(string(file), "\n")
|
|
||||||
|
|
||||||
for i, l := range lines {
|
|
||||||
if strings.Contains(l, item) {
|
|
||||||
if scat == "nil" {
|
|
||||||
test, _ := charmap[nick].GetString(cat, item)
|
|
||||||
|
|
||||||
if len(test) == 0 {
|
|
||||||
lines[i] = "\"" + item + "\": " + value + ","
|
|
||||||
} else {
|
|
||||||
lines[i] = "\"" + item + "\": \"" + value + "\","
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
test, _ := charmap[nick].GetString(cat, scat, item)
|
|
||||||
|
|
||||||
if len(test) == 0 {
|
|
||||||
lines[i] = "\"" + item + "\": " + value + ","
|
|
||||||
} else {
|
|
||||||
lines[i] = "\"" + item + "\": \"" + value + "\","
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
oput := strings.Join(lines, "\n")
|
|
||||||
err = ioutil.WriteFile("json/"+nick+".json", []byte(oput), 0644)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
if !importChar(nick) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user