Fix ArmCord not starting

This commit is contained in:
smartfrigde 2022-01-16 19:07:00 +01:00
parent bf85dfd710
commit 0d55c30810
3 changed files with 62 additions and 46 deletions

View File

@ -1,9 +1,16 @@
// Modules to control application life and create native browser window
import { app, BrowserWindow, ipcMain, shell, desktopCapturer, session } from "electron";
import {
app,
BrowserWindow,
ipcMain,
shell,
desktopCapturer,
session,
} from "electron";
import * as path from "path";
import "v8-compile-cache";
import * as storage from "electron-json-storage";
import { saveSettings, getVersion, setup } from "./utils";
import { saveSettings, getVersion, setup, getConfigUnsafe } from "./utils";
import "./extensions/mods";
import "./extensions/plugin";
import "./tray";
@ -11,7 +18,6 @@ import "./shortcuts";
var contentPath: string = "null";
var frame: boolean;
var channel: string;
var titlebar: boolean;
export var mainWindow: BrowserWindow;
var settings: any;
@ -30,22 +36,21 @@ storage.has("settings", function (error, hasKey) {
storage.get("settings", function (error, data: any) {
if (error) throw error;
console.log(data);
titlebar = data.customTitlebar;
channel = data.channel;
settings = data;
if ((titlebar = true)) {
frame = false;
} else {
frame = true;
}
});
var titlebar:any = getConfigUnsafe("customTitlebar")
console.log(!titlebar)
function createWindow() {
mainWindow = new BrowserWindow({
width: 300,
height: 350,
title: "ArmCord",
icon: "./assets/ac_icon_transparent.png",
frame: frame,
darkTheme: true,
icon: path.join(__dirname, "/assets/icon_transparent.png"),
frame: !titlebar,
autoHideMenuBar: true,
webPreferences: {
preload: path.join(__dirname, "preload/preload.js"),
},
@ -81,9 +86,8 @@ function createWindow() {
mainWindow.setSize(800, 600);
});
ipcMain.on("restart", (event, arg) => {
app.relaunch();
app.exit();
app.relaunch();
app.exit();
});
ipcMain.on("saveSettings", (event, ...args) => {
@ -122,32 +126,32 @@ function createWindow() {
app.whenReady().then(() => {
createWindow();
session
.fromPartition("some-partition")
.setPermissionRequestHandler((webContents, permission, callback) => {
const url = webContents.getURL(); //unused?
session
.fromPartition("some-partition")
.setPermissionRequestHandler((webContents, permission, callback) => {
const url = webContents.getURL(); //unused?
if (permission === "notifications") {
// Approves the permissions request
callback(true);
}
if (permission === "media") {
// Approves the permissions request
callback(true);
}
if (url.startsWith("discord://")) {
// Denies the permissions request
return callback(false);
}
if (url.startsWith("discord.com/science")) {
// Denies the permissions request
return callback(false);
}
if (url.startsWith("discord.com/tracing")) {
// Denies the permissions request
return callback(false);
}
});
if (permission === "notifications") {
// Approves the permissions request
callback(true);
}
if (permission === "media") {
// Approves the permissions request
callback(true);
}
if (url.startsWith("discord://")) {
// Denies the permissions request
return callback(false);
}
if (url.startsWith("discord.com/science")) {
// Denies the permissions request
return callback(false);
}
if (url.startsWith("discord.com/tracing")) {
// Denies the permissions request
return callback(false);
}
});
app.on("activate", function () {
if (BrowserWindow.getAllWindows().length === 0) createWindow();
});

View File

@ -1,8 +1,9 @@
import { app, Menu, Tray } from 'electron';
import {mainWindow} from './main';
import * as path from 'path'
let tray = null
app.whenReady().then(() => {
tray = new Tray('./assets/ac_plug.png')
tray = new Tray(path.join(__dirname, "../", "/assets/ac_plug.png"))
const contextMenu = Menu.buildFromTemplate([
{
label: "Open ArmCord",
@ -25,6 +26,6 @@ app.whenReady().then(() => {
},
]);
tray.setToolTip('ArmCord' + process.env.npm_package_version)
tray.setToolTip('ArmCord ' + process.env.npm_package_version)
tray.setContextMenu(contextMenu)
})

View File

@ -1,5 +1,7 @@
import * as fs from "fs";
import * as storage from "electron-json-storage";
import * as fs from "fs";
import { app } from "electron";
//utillity functions that are used all over the codebase or just too obscure to be put in the file used in
export function addStyle(styleString: string) {
const style = document.createElement("style");
@ -21,6 +23,7 @@ export function setup() {
channel: "stable",
firstRun: "done",
armcordCSP: true,
mods: "none"
},
function (error) {
if (error) throw error;
@ -51,8 +54,16 @@ export function saveSettings(
}
);
}
export function getVersion() {
const pkgjson = fs.readFileSync("./package.json", "utf8");
return JSON.parse(pkgjson).version;
export async function getConfigUnsafe(object: string) {
const userDataPath = app.getPath("userData");
const storagePath = userDataPath + "/storage/";
let rawdata = fs.readFileSync(storagePath + "settings.json", "utf-8");
let returndata = JSON.parse(rawdata);
console.log(returndata[object]);
return returndata[object]
}
export function getVersion() {
//to-do better way of doing this
return '3.0.1';
}