Authorize via steam

pull/1185/head
tobspr 3 years ago
parent 329cefb3c9
commit 42af2b63d6

@ -47,6 +47,8 @@ function listen() {
return;
}
console.log("Adding listeners");
ipcMain.handle("steam:get-achievement-names", getAchievementNames);
ipcMain.handle("steam:activate-achievement", activateAchievement);
@ -56,22 +58,24 @@ function listen() {
.join("");
}
ipcMain.on("steam:get-ticket", (event, arg) => {
ipcMain.handle("steam:get-ticket", (event, arg) => {
console.log("Requested steam ticket ...");
greenworks.getAuthSessionTicket(
success => {
const ticketHex = bufferToHex(success.ticket);
event.reply("steam:ticket-success", ticketHex);
},
error => {
console.error("Failed to get steam ticket:", error);
event.reply("steam:ticket-error", "" + error);
}
);
return new Promise((resolve, reject) => {
greenworks.getAuthSessionTicket(
success => {
const ticketHex = bufferToHex(success.ticket);
resolve(ticketHex);
},
error => {
console.error("Failed to get steam ticket:", error);
reject(error);
}
);
});
});
ipcMain.on("steam:check-app-ownership", (event, appId) => {
event.reply(greenworks.isSubscribedApp(appId));
ipcMain.handle("steam:check-app-ownership", (event, appId) => {
return Promise.resolve(greenworks.isSubscribedApp(appId));
});
}

@ -32,6 +32,12 @@ export class AchievementProxy {
}
onLoad() {
if (!this.root.gameMode.hasAchievements()) {
logger.log("Disabling achievements because game mode does not have achievements");
this.disabled = true;
return;
}
this.provider
.onLoad(this.root)
.then(() => {

@ -112,6 +112,11 @@ export class GameMode extends BasicSerializableObject {
return true;
}
/** @returns {boolean} */
hasAchievements() {
return false;
}
/** @returns {number} */
getMinimumZoom() {
return 0.1;

@ -615,4 +615,9 @@ export class RegularGameMode extends GameMode {
getIsFreeplayAvailable() {
return this.root.app.restrictionMgr.getHasExtendedLevelsAndFreeplay();
}
/** @returns {boolean} */
hasAchievements() {
return true;
}
}

@ -7,7 +7,6 @@ import { getIPCRenderer } from "../core/utils";
import { T } from "../translations";
const logger = createLogger("puzzle-api");
const rusha = require("rusha");
export class ClientAPI {
/**
@ -22,15 +21,6 @@ export class ClientAPI {
* @type {string|null}
*/
this.token = null;
this.syncToken = window.localStorage.getItem("tmp.syncToken");
if (!this.syncToken) {
this.syncToken = rusha
.createHash()
.update(new Date().getTime() + "=" + Math.random())
.digest("hex");
window.localStorage.setItem("tmp.syncToken", this.syncToken);
}
}
getEndpoint() {

Loading…
Cancel
Save