main.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package main
  2. import (
  3. "fmt"
  4. "path"
  5. )
  6. func main() {
  7. // The UserDB would be run on the server
  8. // But since most/100% of this is examples, we'll setup one up
  9. db := &UserDB{}
  10. err := db.Open(path.Join("test_data", "test_users.db3"))
  11. if err != nil {
  12. fmt.Println("Err:", err)
  13. return
  14. }
  15. defer db.Close()
  16. // Example query
  17. dummy, err := db.FindUser("Test Dummy")
  18. if err != nil {
  19. // Of course, we'd ask the user for their name and a password then use those
  20. // But for our Test Dummy let's just make a dumb and simple setup
  21. err = db.CreateUser("Test Dummy", "12345")
  22. if err != nil {
  23. fmt.Println("Err:", err)
  24. return
  25. }
  26. dummy, err = db.FindUser("Test Dummy")
  27. if err != nil {
  28. fmt.Println("Err:", err)
  29. return
  30. }
  31. }
  32. //fmt.Printf("%#v\r\n", dummy)
  33. // Example verification process
  34. // I'd also want to verify they aren't trying to login in 2+ places at once
  35. err = dummy.VerifyPassword("12345")
  36. if err != nil {
  37. fmt.Println("Wrong password?")
  38. } else {
  39. fmt.Printf("Yay, %s has logged in\r\n", dummy.Name)
  40. }
  41. fmt.Printf("%s is at %s\r\n", dummy.Name, dummy.Loc.String())
  42. ti, err := ParseTileIndex(path.Join("test_data", "world1", "tiles.txt"))
  43. if err != nil {
  44. fmt.Println("Err:", err)
  45. return
  46. }
  47. fmt.Printf("Loaded %d tiles from 'world1'\r\n", len(ti.Tiles)-1)
  48. for i, t := range ti.Tiles {
  49. if i == 0 {
  50. continue
  51. }
  52. fmt.Printf("Id=%d Symbol='%s' Color='%s'\r\n", i, t.Symbol, t.Color)
  53. }
  54. w, err := LoadWorld(path.Join("test_data", "world1"))
  55. if err != nil {
  56. fmt.Println("Err:", err)
  57. return
  58. }
  59. fmt.Println("Loaded", w.Name, "a", w.Width, "x", w.Height)
  60. }