save dice rolls to db; mongo int arrays are weird
This commit is contained in:
parent
2bf3c1af8b
commit
8804908923
4 changed files with 19 additions and 9 deletions
|
@ -205,6 +205,13 @@ func (self *GameTableServer) getCurrentState(tableKey models.TableKey) []byte {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *GameTableServer) writeToDB(tableMsg models.TableMessage) error {
|
func (self *GameTableServer) writeToDB(tableMsg models.TableMessage) error {
|
||||||
|
key := *tableMsg.Key
|
||||||
|
if tableMsg.DiceRoll != nil {
|
||||||
|
err := self.dbAdapter.InsertDiceRoll(key, *tableMsg.DiceRoll)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ type Table struct {
|
||||||
|
|
||||||
type TableMessage struct {
|
type TableMessage struct {
|
||||||
Key *TableKey `json:"key"`
|
Key *TableKey `json:"key"`
|
||||||
Roll *DiceRoll `json:"roll"`
|
DiceRoll *DiceRoll `json:"diceRoll"`
|
||||||
Token *Token `json:"token"`
|
Token *Token `json:"token"`
|
||||||
MapImg *string `json:"mapImg"`
|
MapImg *string `json:"mapImg"`
|
||||||
AuxMsg *string `json:"auxMsg"`
|
AuxMsg *string `json:"auxMsg"`
|
||||||
|
|
|
@ -15,16 +15,14 @@ function rollDice() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (numDice && faces && note) {
|
if (numDice && faces && note) {
|
||||||
console.log("here?")
|
|
||||||
const n = Number(numDice.value);
|
const n = Number(numDice.value);
|
||||||
const d = Number(faces.value);
|
const d = Number(faces.value);
|
||||||
r = new Uint8Array(n);
|
r = new Uint8Array(n);
|
||||||
crypto.getRandomValues(r);
|
crypto.getRandomValues(r);
|
||||||
const rolls = [];
|
const rolls = [];
|
||||||
for (const i of r) {
|
for (const i of r) {
|
||||||
rolls.push(r%d + 1)
|
rolls.push(i%d + 1)
|
||||||
}
|
}
|
||||||
console.log(rolls);
|
|
||||||
publish({diceRoll: {
|
publish({diceRoll: {
|
||||||
faces: d,
|
faces: d,
|
||||||
roll: rolls,
|
roll: rolls,
|
||||||
|
|
|
@ -27,12 +27,17 @@ function dial() {
|
||||||
console.info("socket connected");
|
console.info("socket connected");
|
||||||
});
|
});
|
||||||
conn.addEventListener("message", e => {
|
conn.addEventListener("message", e => {
|
||||||
console.log(e.data);
|
const data = JSON.parse(e.data);
|
||||||
if (table == null) {
|
if (table == null) {
|
||||||
|
// first fetch comes from mongo, so the rolls array in each diceRoll is a byte array and needs to be decoded
|
||||||
|
data.diceRolls.forEach(r=>{
|
||||||
|
r.roll = Uint8Array.from(atob(r.roll), c => c.charCodeAt(0))
|
||||||
|
})
|
||||||
table = JSON.parse(e.data);
|
table = JSON.parse(e.data);
|
||||||
} else {
|
} else {
|
||||||
// UPDATE THE TABLE!
|
// UPDATE THE TABLE!
|
||||||
}
|
}
|
||||||
|
console.log(data);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue