diff --git a/gametable/server.go b/gametable/server.go index 2ad47bf..75c118f 100644 --- a/gametable/server.go +++ b/gametable/server.go @@ -231,8 +231,6 @@ func (self *GameTableServer) writeToDB(tableMsg *models.TableMessage) error { if err != nil { return err } - tableMsg.Token.X = nil - tableMsg.Token.Y = nil } else if t.X != nil && t.Y != nil { err := self.dbAdapter.MoveToken(key, t) if err != nil { @@ -273,11 +271,6 @@ func (self *GameTableServer) writeToDB(tableMsg *models.TableMessage) error { } if tableMsg.Token != nil { t := tableMsg.Token - strId := "" - if t.Id != nil { - strId = *t.Id - } - fmt.Println(strId +"::" + t.Name + "::" + t.Sprite) if t.Id == nil { id, err := self.dbAdapter.CreateToken(key, *t) t.Id = &id diff --git a/models/models.go b/models/models.go index 7f6c37f..8e2d60d 100644 --- a/models/models.go +++ b/models/models.go @@ -18,16 +18,16 @@ type DiceRoll struct { } type Token struct { - Id *string `json:"id" bson:"_id"` - Name string `json:"name"` - Sprite string `json:"sprite"` - W int `json:"w"` - H int `json:"h"` - OX int `json:"oX"` - OY int `json:"oY"` - X *int `json:"x"` - Y *int `json:"y"` - Active bool `json:"active"` + Id *string `json:"id" bson:"_id"` + Name string `json:"name"` + Sprite string `json:"sprite"` + W int `json:"w"` + H int `json:"h"` + OX int `json:"oX"` + OY int `json:"oY"` + X *float64 `json:"x"` + Y *float64 `json:"y"` + Active bool `json:"active"` } type Table struct { @@ -42,8 +42,8 @@ type Table struct { type TableMessage struct { Auth *string `json:"auth,omitempty"` Key *TableKey `json:"key"` - DiceRoll *DiceRoll `json:"diceRoll"` - Token *Token `json:"token"` - MapImg *string `json:"mapImg"` - AuxMsg *string `json:"auxMsg"` + DiceRoll *DiceRoll `json:"diceRoll,omitempty"` + Token *Token `json:"token,omitempty"` + MapImg *string `json:"mapImg,omitempty"` + AuxMsg *string `json:"auxMsg,omitempty"` } diff --git a/mongodb/adapter.go b/mongodb/adapter.go index 381b87a..eee3abf 100644 --- a/mongodb/adapter.go +++ b/mongodb/adapter.go @@ -290,24 +290,21 @@ func (self *DbEngine) GetAuxMessage(table models.TableKey) (string, error) { } func (self *DbEngine) CheckToken(table models.TableKey, tokenId string) (bool, bool) { - mongoId, err := primitive.ObjectIDFromHex(tokenId) - if err != nil { - return false, false - } tables := self.db.Collection("tables") if tables != nil { result := models.Table{} err := tables.FindOne(self.mkCtx(10), bson.D{ {"name", table.Name}, {"passcode", table.Passcode}, - {"tokens", bson.E{"_id", mongoId}}, + {"tokens._id", tokenId}, }).Decode(&result) if err != nil { + fmt.Printf("%v", err) return false, false } else { active := false for _, t := range result.Tokens { - if *t.Id == tokenId && t.Active { + if t.Id != nil && *t.Id == tokenId && t.Active { active = true } } @@ -344,10 +341,6 @@ func (self *DbEngine) CreateToken(table models.TableKey, token models.Token) (st } func (self *DbEngine) ActivateToken(table models.TableKey, tokenId string, active bool) error { - mongoId, err := primitive.ObjectIDFromHex(tokenId) - if err != nil { - return err - } tables := self.db.Collection("tables") if tables != nil { var result models.Table @@ -356,12 +349,10 @@ func (self *DbEngine) ActivateToken(table models.TableKey, tokenId string, activ bson.D{ {"name", table.Name}, {"passcode", table.Passcode}, - {"tokens", bson.E{"_id", mongoId}}, + {"tokens._id", tokenId}, }, bson.D{ - {"$set", bson.D{{"tokens.$", bson.D{ - {"active", active}, - }}}}, + {"$set", bson.D{{"tokens.$.active", active}}}, }, ).Decode(&result) return err @@ -370,10 +361,6 @@ func (self *DbEngine) ActivateToken(table models.TableKey, tokenId string, activ } func (self *DbEngine) MoveToken(table models.TableKey, token models.Token) error { - mongoId, err := primitive.ObjectIDFromHex(*token.Id) - if err != nil { - return err - } tables := self.db.Collection("tables") if tables != nil { var result models.Table @@ -382,13 +369,10 @@ func (self *DbEngine) MoveToken(table models.TableKey, token models.Token) error bson.D{ {"name", table.Name}, {"passcode", table.Passcode}, - {"tokens", bson.E{"_id", mongoId}}, + {"tokens._id", token.Id}, }, bson.D{ - {"$set", bson.D{{"tokens.$", bson.D{ - {"x", token.X}, - {"y", token.Y}, - }}}}, + {"$set", bson.D{{"tokens.$.x", token.X}, {"tokens.$.y", token.Y}}}, }, ).Decode(&result) return err @@ -397,10 +381,7 @@ func (self *DbEngine) MoveToken(table models.TableKey, token models.Token) error } func (self *DbEngine) DestroyToken(table models.TableKey, tokenId string) error { - mongoId, err := primitive.ObjectIDFromHex(tokenId) - if err != nil { - return err - } + tables := self.db.Collection("tables") if tables != nil { var result models.Table @@ -411,7 +392,7 @@ func (self *DbEngine) DestroyToken(table models.TableKey, tokenId string) error {"passcode", table.Passcode}, }, bson.D{ - {"$pull", bson.D{{"tokens", bson.D{{"_id", mongoId}}}}}, + {"$pull", bson.D{{"tokens", bson.D{{"_id", tokenId}}}}}, }, ).Decode(&result) return err diff --git a/static/admin.js b/static/admin.js index eb0130c..017adaf 100644 --- a/static/admin.js +++ b/static/admin.js @@ -43,17 +43,17 @@ async function rebindUi(name, pass) { document.getElementById("input_table_pass").value = pass; dial(); const table = await res.json() - infoHtml = "← table list
"; + infoHtml = "← table list
"; infoHtml += `
` infoHtml += "
"; infoHtml += "
" if (mapImgs.ok) { infoHtml += ""; const imgs = await mapImgs.json(); - infoHtml += "