-
-
Save agramonte/7183d3cb16e8c5f265b1abab6c2d70c6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Version 3.0: Saving and retrieving a shared table. | |
// Version 2.1: Added header so that returned table gets encoded correctly. | |
// Version 2.0: Save and retrieve table | |
// Version 1.0: Login | |
// Change these parameters for your game | |
var returnFalseOnLock = true; | |
var requestType = Spark.getData().requestType; | |
var tableData = Spark.getData().params; | |
Spark.setScriptData("RESPONSE_HEADERS", {"content-type":"text/html; charset=utf-8"}); | |
function playerLogin(userName, password) { | |
if (userName && password) { | |
var authenticationResponse = Spark.sendRequest( | |
{ | |
"@class": ".AuthenticationRequest", | |
"password": password, | |
"userName": userName | |
} | |
) | |
if(authenticationResponse.userId) { | |
Spark.getLog().info(authenticationResponse); | |
return authenticationResponse.userId; | |
} else { | |
Spark.getLog().error(authenticationResponse); | |
return null; | |
} | |
} | |
} | |
function saveTable(uId, tableName) { | |
var gdsAPI = Spark.getGameDataService(); | |
var record = gdsAPI.getItem("tables", uId + tableName); | |
if (record) { | |
record = gdsAPI.createItem("tables", uId + tableName); | |
} | |
var jsonData = JSON.parse(tableData) | |
record.setData(jsonData); | |
record.persistor().persist(); | |
} | |
function saveSharedTable(tableName) { | |
var gdsAPI = Spark.getGameDataService(); | |
var record = gdsAPI.getItem("tables", tableName); | |
if (record) { | |
record = gdsAPI.createItem("tables", tableName); | |
} | |
var jsonData = JSON.parse(tableData) | |
record.setData(jsonData); | |
record.persistor().persist(); | |
} | |
function getTable(uId, tableName) { | |
var gdsAPI = Spark.getGameDataService(); | |
var record = gdsAPI.getItem("tables", uId + tableName ); | |
var table = record.document().getData(); | |
return table; | |
} | |
function getSharedTable(tableName) { | |
var gdsAPI = Spark.getGameDataService(); | |
var record = gdsAPI.getItem("tables", tableName ); | |
var table = record.document().getData(); | |
return table; | |
} | |
if (requestType === "login") { | |
var uName = Spark.getData().userName; | |
var uPwd = Spark.getData().userPassword; | |
var loginResponse = playerLogin(uName, uPwd); | |
if (loginResponse) { | |
if (returnFalseOnLock) { | |
var isPlayerLocked = Spark.loadPlayer(loginResponse).getScriptData("isLocked"); | |
if (isPlayerLocked) { | |
Spark.getLog().info("Player locked and tried logging in with username: "+ uName +" password: " + uPwd); | |
Spark.setScriptData("RESPONSE_RAW", ''); | |
} else { | |
Spark.loadPlayer(loginResponse).setScriptData("isLocked", true); | |
Spark.setScriptData("RESPONSE_RAW", '{"Status":"Success"}'); | |
} | |
} else { | |
Spark.loadPlayer(loginResponse).setScriptData("isLocked", true); | |
Spark.setScriptData("RESPONSE_RAW", '{"Status":"Success"}'); | |
} | |
} else { | |
Spark.getLog().info("Error logging in with username: "+ uName +" password: " + uPwd); | |
Spark.setScriptData("RESPONSE_RAW", ''); | |
} | |
} else if (requestType == "logout" ) { | |
var uName = Spark.getData().userName; | |
var uPwd = Spark.getData().userPassword; | |
var loginResponse = playerLogin(uName, uPwd); | |
if (loginResponse) { | |
Spark.loadPlayer(loginResponse).setScriptData("isLocked", false); | |
Spark.setScriptData("RESPONSE_RAW", '{"Status":"Success"}'); | |
} else { | |
Spark.getLog().info("Error logging out with username: "+ uName +" password: " + uPwd); | |
Spark.setScriptData("RESPONSE_RAW", ''); | |
} | |
} else if (requestType == "saveSharedTable" ) { | |
var uName = Spark.getData().userName; | |
var uPwd = Spark.getData().userPassword; | |
var tableName = Spark.getData().tableName; | |
var loginResponse = playerLogin(uName, uPwd); | |
if (loginResponse) { | |
saveSharedTable(tableName); | |
Spark.setScriptData("RESPONSE_RAW", '{"Status":"Success"}'); | |
} else { | |
Spark.setScriptData("RESPONSE_RAW", ''); | |
} | |
} else if (requestType == "saveTable" ) { | |
var uName = Spark.getData().userName; | |
var uPwd = Spark.getData().userPassword; | |
var tableName = Spark.getData().tableName; | |
var loginResponse = playerLogin(uName, uPwd); | |
if (loginResponse) { | |
saveTable(loginResponse, tableName); | |
Spark.setScriptData("RESPONSE_RAW", '{"Status":"Success"}'); | |
} else { | |
Spark.setScriptData("RESPONSE_RAW", ''); | |
} | |
} else if (requestType == "getSharedTable" ) { | |
var uName = Spark.getData().userName; | |
var uPwd = Spark.getData().userPassword; | |
var tableName = Spark.getData().tableName; | |
var loginResponse = playerLogin(uName, uPwd); | |
if (loginResponse) { | |
var table = getSharedTable(tableName); | |
Spark.setScriptData("RESPONSE_RAW", table); | |
} else { | |
Spark.getLog().info("Error logging in with username: "+ uName +" password: " + uPwd); | |
Spark.setScriptData("RESPONSE_RAW", ''); | |
} | |
} else if (requestType == "getTable" ) { | |
var uName = Spark.getData().userName; | |
var uPwd = Spark.getData().userPassword; | |
var tableName = Spark.getData().tableName; | |
var loginResponse = playerLogin(uName, uPwd); | |
if (loginResponse) { | |
var table = getTable(loginResponse, tableName); | |
Spark.setScriptData("RESPONSE_RAW", table); | |
} else { | |
Spark.getLog().info("Error logging in with username: "+ uName +" password: " + uPwd); | |
Spark.setScriptData("RESPONSE_RAW", ''); | |
} | |
} else { | |
Spark.setScriptData("RESPONSE_RAW", ''); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment