diff --git a/server/Turtle.js b/server/Turtle.js index ed352d3..a83a833 100644 --- a/server/Turtle.js +++ b/server/Turtle.js @@ -588,7 +588,7 @@ export class Turtle extends EventEmitter { * Place block in front */ async place(text) { - const cmd = text ? `return turtle.place("${text}")` : 'return turtle.place()'; + const cmd = text ? `return turtle.place("${text.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}")` : 'return turtle.place()'; const result = await this.exec(cmd); if (result === true || (Array.isArray(result) && result[0] === true)) { await this.inspect(); // Auto-inspect to update world map @@ -600,7 +600,7 @@ export class Turtle extends EventEmitter { * Place block above */ async placeUp(text) { - const cmd = text ? `return turtle.placeUp("${text}")` : 'return turtle.placeUp()'; + const cmd = text ? `return turtle.placeUp("${text.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}")` : 'return turtle.placeUp()'; const result = await this.exec(cmd); if (result === true || (Array.isArray(result) && result[0] === true)) { await this.inspectUp(); @@ -612,7 +612,7 @@ export class Turtle extends EventEmitter { * Place block below */ async placeDown(text) { - const cmd = text ? `return turtle.placeDown("${text}")` : 'return turtle.placeDown()'; + const cmd = text ? `return turtle.placeDown("${text.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}")` : 'return turtle.placeDown()'; const result = await this.exec(cmd); if (result === true || (Array.isArray(result) && result[0] === true)) { await this.inspectDown(); @@ -758,9 +758,10 @@ export class Turtle extends EventEmitter { * Connect to an adjacent inventory peripheral and read its contents */ async connectToInventory(side) { + const safeSide = side.replace(/\\/g, '\\\\').replace(/"/g, '\\"'); const result = await this.exec(` - local size = peripheral.call("${side}", "size") - local content = peripheral.call("${side}", "list") + local size = peripheral.call("${safeSide}", "size") + local content = peripheral.call("${safeSide}", "list") if next(content) == nil then content = nil end return {size = size, content = content} `);