Skip to content
This repository was archived by the owner on Apr 18, 2022. It is now read-only.

Commit ca692f2

Browse files
committed
patch
1 parent 4066be7 commit ca692f2

50 files changed

Lines changed: 169 additions & 102 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@ config.yml
1313
full
1414
minified
1515
no-comments
16+
*.7z
17+
package-lock.json

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,9 @@ Select the version that works for you, and download it *here* (Broken for now. P
88
## License
99
MIT license, see [here](license)
1010

11+
## Authors
12+
13+
* **Minimine** - *Initial work* - [Minimine](https://github.com/MinimineLP)
14+
1115
## Issues
12-
Please report bugs with the github issue function.
16+
Please report bugs with the [issue function](https://github.com/MinimineLP/mcscriptStudioCode/issues).

app/index.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
<script>let exports = {}</script><script src="test_web.js"></script>
1+
<script>
2+
let exports = {}
3+
</script>
4+
<script src="index.js"></script>

app/index.js

Lines changed: 53 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,39 +3,74 @@ exports.__esModule = true;
33
var fs = require("fs");
44
var PluginManager_1 = require("./src/scripts/PluginManager");
55
var SiteAPI = require("./src/scripts/SiteApi");
6+
var Preloader = require("./src/scripts/Preloader");
7+
var Config_1 = require("./src/scripts/Config");
68
var electron = require("electron");
7-
var node_console = require("console");
9+
global.toggleDevTools = function () {
10+
electron.ipcRenderer.send("devtools", "toggle");
11+
};
12+
global.openDevTools = function () {
13+
electron.ipcRenderer.send("devtools", "open");
14+
};
15+
global.closeDevTools = function () {
16+
electron.ipcRenderer.send("devtools", "close");
17+
};
18+
var config = new Config_1.Config("config.yml", "yaml");
819
document.write("<!DOCTYPE html><html lang=\"en\" dir=\"ltr\"><head><meta charset=\"utf-8\"><title>MCScript Studio Code</title></head><body></body></html>\"");
920
global.working_dir = electron.ipcRenderer.sendSync("get_folder", "get_folder")[0];
21+
global.icon = electron.ipcRenderer.sendSync("get_icon", "get_icon");
1022
window.alert = function (content) {
1123
return electron.ipcRenderer.sendSync("alert", content.toString());
1224
};
1325
window.prompt = function (title, val) {
1426
return electron.ipcRenderer.sendSync("prompt", { title: title, val: val });
1527
};
16-
var datafolder = (process.env.APPDATA ||
17-
(process.platform == "darwin"
18-
? process.env.HOME + "Library/Preferences"
19-
: "/var/local")) + "/mcscriptStudioCode";
28+
var appdata = process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + 'Library/Preferences' : '/var/local');
29+
var datafolder = appdata + "/mcscriptStudioCode";
30+
if (!fs.existsSync(datafolder + "/plugins"))
31+
fs.mkdirSync(datafolder + "/plugins");
2032
if (!fs.existsSync(datafolder))
2133
fs.mkdirSync(datafolder);
2234
var manager = new PluginManager_1.PluginManager();
23-
console.log(datafolder + "/plugins");
24-
manager.loadPlugins(datafolder + "/plugins");
25-
SiteAPI.loadSite({
26-
host: "raw.githubusercontent.com",
27-
path: "/MinimineLP/MCScriptStudioCode-core-plugins/master/plugins-core.json",
28-
protocoll: "https"
29-
}, function (ret) {
35+
Preloader.start();
36+
console.log("installing plugins...");
37+
SiteAPI.loadSite({ host: "raw.githubusercontent.com", path: '/MinimineLP/mcscriptStudioCode/master/plugins/core-plugins.json', protocoll: 'https' }, function (ret) {
38+
console.log(ret);
3039
for (var _i = 0, _a = JSON.parse(ret); _i < _a.length; _i++) {
3140
var url = _a[_i];
3241
manager.installPlugin(url, datafolder + "/plugins");
3342
}
3443
});
35-
manager.api.addStylesheet(__dirname + "/src/css/style.css");
36-
manager.setupPlugins();
37-
manager.startPlugins();
38-
window.addEventListener("unload", function () {
39-
manager.stopPlugins();
40-
node_console.log("window closes");
44+
manager.loadPlugins(datafolder + "/plugins", function () {
45+
var MenuActionAPI = /** @class */ (function () {
46+
function MenuActionAPI() {
47+
this.listeners = {};
48+
}
49+
MenuActionAPI.prototype.on = function (key, func) {
50+
if (!this.listeners[key])
51+
this.listeners[key] = [];
52+
this.listeners[key].push(func);
53+
};
54+
MenuActionAPI.prototype.trigger = function (key) {
55+
if (this.listeners[key])
56+
this.listeners[key].forEach(function (func) {
57+
func();
58+
});
59+
};
60+
return MenuActionAPI;
61+
}());
62+
electron.ipcRenderer.on("menu_action", function (x, arg) {
63+
var menuactionapi = manager.api.getAPI("menu_action");
64+
menuactionapi.trigger(arg);
65+
});
66+
manager.api.addStylesheet(__dirname + "/src/css/style.min.css");
67+
manager.api.registerAPI("menu_action", new MenuActionAPI());
68+
manager.setupPlugins();
69+
manager.startPlugins();
70+
window.addEventListener("unload", function () {
71+
manager.stopPlugins();
72+
});
73+
setTimeout(function () {
74+
Preloader.hide();
75+
}, 500);
4176
});

app/index.ts

Lines changed: 51 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
11
import * as fs from "fs";
22
import { PluginManager } from "./src/scripts/PluginManager";
33
import * as SiteAPI from "./src/scripts/SiteApi";
4+
import * as Preloader from "./src/scripts/Preloader";
5+
import { Config } from "./src/scripts/Config";
46
import * as electron from "electron";
5-
import * as node_console from "console";
67

78
declare let window: any;
89
declare let global: any;
910

11+
global.toggleDevTools = function() {
12+
electron.ipcRenderer.send("devtools", "toggle");
13+
};
14+
global.openDevTools = function() {
15+
electron.ipcRenderer.send("devtools", "open");
16+
};
17+
global.closeDevTools = function() {
18+
electron.ipcRenderer.send("devtools", "close");
19+
};
20+
21+
let config = new Config("config.yml", "yaml");
22+
1023
document.write(
1124
`<!DOCTYPE html><html lang="en" dir="ltr"><head><meta charset="utf-8"><title>MCScript Studio Code</title></head><body></body></html>"`
1225
);
@@ -15,6 +28,7 @@ global.working_dir = electron.ipcRenderer.sendSync(
1528
"get_folder",
1629
"get_folder"
1730
)[0];
31+
global.icon = electron.ipcRenderer.sendSync("get_icon", "get_icon");
1832

1933
window.alert = function(content: any) {
2034
return electron.ipcRenderer.sendSync("alert", content.toString());
@@ -24,37 +38,47 @@ window.prompt = function(title, val) {
2438
return electron.ipcRenderer.sendSync("prompt", { title, val });
2539
};
2640

27-
let datafolder: string =
28-
(process.env.APPDATA ||
29-
(process.platform == "darwin"
30-
? process.env.HOME + "Library/Preferences"
31-
: "/var/local")) + "/mcscriptStudioCode";
41+
let appdata = process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + 'Library/Preferences' : '/var/local');
42+
let datafolder: string = appdata + "/mcscriptStudioCode";
43+
if(!fs.existsSync(`${datafolder}/plugins`))fs.mkdirSync(`${datafolder}/plugins`);
3244

3345
if (!fs.existsSync(datafolder)) fs.mkdirSync(datafolder);
3446

3547
const manager: PluginManager = new PluginManager();
48+
Preloader.start();
3649

37-
console.log(datafolder + "/plugins");
38-
39-
manager.loadPlugins(datafolder + "/plugins");
40-
SiteAPI.loadSite(
41-
{
42-
host: "raw.githubusercontent.com",
43-
path:
44-
"/MinimineLP/MCScriptStudioCode-core-plugins/master/plugins-core.json",
45-
protocoll: "https"
46-
},
47-
function(ret) {
48-
for (let url of JSON.parse(ret))
49-
manager.installPlugin(url, `${datafolder}/plugins`);
50-
}
51-
);
50+
console.log("installing plugins...")
51+
SiteAPI.loadSite({host: "raw.githubusercontent.com", path: '/MinimineLP/mcscriptStudioCode/master/plugins/core-plugins.json', protocoll: 'https'}, function(ret) {
52+
for(let url of JSON.parse(ret)) manager.installPlugin(url,`${datafolder}/plugins`);
53+
});
5254

53-
manager.api.addStylesheet(`${__dirname}/src/css/style.css`);
54-
manager.setupPlugins();
55-
manager.startPlugins();
55+
manager.loadPlugins(datafolder + "/plugins", function() {
56+
class MenuActionAPI {
57+
listeners: any = {};
58+
on(key: string, func: Function) {
59+
if (!this.listeners[key]) this.listeners[key] = [];
60+
this.listeners[key].push(func);
61+
}
62+
trigger(key: string) {
63+
if (this.listeners[key])
64+
this.listeners[key].forEach(function(func: () => any) {
65+
func();
66+
});
67+
}
68+
}
69+
electron.ipcRenderer.on("menu_action", function(x, arg) {
70+
let menuactionapi: MenuActionAPI = manager.api.getAPI("menu_action");
71+
menuactionapi.trigger(arg);
72+
});
5673

57-
window.addEventListener("unload", function() {
58-
manager.stopPlugins();
59-
node_console.log("window closes");
74+
manager.api.addStylesheet(`${__dirname}/src/css/style.min.css`);
75+
manager.api.registerAPI("menu_action", new MenuActionAPI());
76+
manager.setupPlugins();
77+
manager.startPlugins();
78+
window.addEventListener("unload", function() {
79+
manager.stopPlugins();
80+
});
81+
setTimeout(() => {
82+
Preloader.hide();
83+
}, 500);
6084
});

app/package-lock.json

Lines changed: 18 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src.7z

-16.1 KB
Binary file not shown.

app/src/css/preloader.min.css.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

app/src/scripts/Config.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
"use strict";exports.__esModule=!0;var YAML=require("js-yaml"),fs=require("fs"),Config=function(){function Config(t,i){if(void 0===i&&(i=FileFormatters.Json),"string"==typeof i&&(i=FileFormatters.fromString(i)),this.parser=i,this.file=t,!fs.existsSync(t)){for(var o=(t=t.replace("\\","/")).split("/"),n=1;n<o.length;n++){for(var r="",e=0;e<n;e++)r+=o[e]+"/";fs.existsSync(r)||fs.mkdirSync(r)}fs.writeFileSync(t,"")}this.load()}return Config.prototype.load=function(t,i){void 0===t&&(t=this.file),void 0===i&&(i=this.parser),"string"==typeof i&&(i=FileFormatters.fromString(i)),this.content=i.parse(fs.readFileSync(t,"utf8")),null==this.content&&(this.content={})},Config.prototype.save=function(t,i){void 0===t&&(t=this.file),void 0===i&&(i=this.parser),"string"==typeof i&&(i=FileFormatters.fromString(i)),fs.writeFileSync(t,i.stringify(this.content))},Config.prototype.stringify=function(t){return void 0===t&&(t=this.parser),"string"==typeof t&&(t=FileFormatters.fromString(t)),t.stringify(this.content)},Config.prototype.contains=function(t,i){void 0===i&&(i=this.content);var o=t.split(/\./g),n=[];if(i.hasOwnProperty(o[0])){for(var r=1;r<o.length;r++)n[r-1]=o[r];return!(i[o[0]]instanceof Object)||this.contains(n.join("."),i[o[0]])}return!1},Config.prototype.get=function(t,i){if(void 0===i&&(i=this.content),this.contains(t,i)){for(var o=t.split(/\./g),n=0;n<o.length;n++)i=i[o[n]];return i}return console.log('Ooups... Trying to get empty path from Yaml: "'+t+'" Returning null!'),null},Config.prototype.set=function(path,val){for(var parts=path.split("."),obj=this.content,i=0;i<parts.length-1;i++)obj[parts[i]]&&obj[parts[i]]instanceof Object||(obj[parts[i]]={}),obj=obj[parts[i]];var cmd="this.content."+path+" = val;";eval(cmd)},Config.prototype.remove=function(path){for(var parts=path.split("."),obj=this.content,i=0;i<parts.length-1;i++)obj[parts[i]]&&obj[parts[i]]instanceof Object||(obj[parts[i]]={}),obj=obj[parts[i]];var cmd='delete this.content."'+path+";";eval(cmd)},Config.prototype.setStandart=function(t,i){this.contains(t)||this.set(t,i)},Config.prototype.concat=function(i){var o=this;i instanceof Config?i.list().forEach(function(t){o.contains(t)||o.set(t,i.get(t))}):this.list(i).forEach(function(t){o.contains(t)||o.set(t,o.get(t,i))})},Config.prototype.apply=function(i){var o=this;i instanceof Config?i.list().forEach(function(t){o.set(t,i.get(t))}):this.list(i).forEach(function(t){o.set(t,o.get(t,i))})},Config.prototype.list=function(t){var o=this;void 0===t&&(t=this.content);var i=Object.keys(t),n=[];return i.forEach(function(i){t[i]instanceof Object?o.list(t[i]).forEach(function(t){n.push(i+"."+t)}):n.push(i)}),n},Config}(),FileFormatters;exports.Config=Config,function(t){var i=function(){this.stringify=JSON.stringify,this.parse=JSON.parse},o=function(){this.stringify=YAML.safeDump,this.parse=YAML.safeLoad};t.Json=new i,t.Yaml=new o,t.fromString=function(t){return"json"==(t=t.toLowerCase())?this.Json:"yaml"==t?this.Yaml:null}}(FileFormatters||(FileFormatters={})),exports.FileFormatters=FileFormatters;var config=new Config("config.yml",FileFormatters.Yaml);function loadConfig(){config.load(),config.save()}exports.config=config,loadConfig(),global.FileFormatters=FileFormatters,global.Config=Config,global.config=config,exports.default=config;

app/src/scripts/Console.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)