From 6a44694a3258131dcc328d20c67469c150a65bcc Mon Sep 17 00:00:00 2001 From: Daniel Scalzi Date: Sat, 26 Aug 2017 14:43:24 -0400 Subject: [PATCH] Removing old and deprecated assets in preparation for the new design. --- app/Inworks-index-ignore.html | 180 --------- app/assets/WesterosCraft-1.11.2-user.json | 8 + app/assets/WesterosCraft-1.11.2.json | 9 + app/assets/css/global.css | 55 --- app/assets/css/header.css | 46 --- app/assets/css/styles.css | 351 ------------------ .../images/.BrownWithWignette.jpg.icloud | Bin 173 -> 0 bytes app/assets/images/facebook.png | Bin 4086 -> 0 bytes app/assets/images/reddit.png | Bin 8661 -> 0 bytes app/assets/images/twitter.png | Bin 6190 -> 0 bytes app/assets/js/assetdownload.js | 239 ------------ app/assets/js/assetguard.js | 53 ++- app/assets/js/launchprocess.js | 13 +- app/assets/js/modlist.js | 2 +- app/assets/js/script.js | 4 +- app/assets/westeroscraft.json | 26 +- app/index.html | 104 ------ app/loginConcept.html | 150 -------- 18 files changed, 85 insertions(+), 1155 deletions(-) delete mode 100755 app/Inworks-index-ignore.html create mode 100644 app/assets/WesterosCraft-1.11.2-user.json create mode 100644 app/assets/WesterosCraft-1.11.2.json delete mode 100755 app/assets/css/global.css delete mode 100755 app/assets/css/header.css delete mode 100644 app/assets/css/styles.css delete mode 100644 app/assets/images/.BrownWithWignette.jpg.icloud delete mode 100644 app/assets/images/facebook.png delete mode 100644 app/assets/images/reddit.png delete mode 100644 app/assets/images/twitter.png delete mode 100644 app/assets/js/assetdownload.js delete mode 100644 app/index.html delete mode 100644 app/loginConcept.html diff --git a/app/Inworks-index-ignore.html b/app/Inworks-index-ignore.html deleted file mode 100755 index 19cd8ebc..00000000 --- a/app/Inworks-index-ignore.html +++ /dev/null @@ -1,180 +0,0 @@ -<<<<<<< HEAD - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-
- -
- -
- - -
-
- -
- -
- -
- - - -
- -
- -

Email

- - -

Password

- - -
- -
- -
- -
- - - -
-
- -
- -

Post title

- -

Posted by: PERSON 23.4.17

- -
    Hello WesterosCraft Builders and Honored Guests! As you know, 
-                            progress on Kingslanding had stalled, but no longer -- we want to finish this big, beautiful, city in style and 
-                            are calling all builders to the capital! 
-                            There has been a lot of progress with Kingslanding planning and we are happy to...
-                            
- -
- -
-
- -
- - - - - - - - - - - - - -======= - - - - - - Westeroscraft Launcher - - - - -
-
- -
-
- -
- -
-
- -
-
-
-
-
-
-
-
-
-
-
- - ->>>>>>> refs/remotes/origin/master diff --git a/app/assets/WesterosCraft-1.11.2-user.json b/app/assets/WesterosCraft-1.11.2-user.json new file mode 100644 index 00000000..1665e9d9 --- /dev/null +++ b/app/assets/WesterosCraft-1.11.2-user.json @@ -0,0 +1,8 @@ +{ + "repositoryRoot": "/modstore", + "modRef": [ + "my.custom:mod:1.11.2", + "another.custom:mod:1.11.2" + ], + "parentList": "/mods/WesterosCraft-1.11.2.json" +} \ No newline at end of file diff --git a/app/assets/WesterosCraft-1.11.2.json b/app/assets/WesterosCraft-1.11.2.json new file mode 100644 index 00000000..93cc3926 --- /dev/null +++ b/app/assets/WesterosCraft-1.11.2.json @@ -0,0 +1,9 @@ +{ + "repositoryRoot": "C:\\Users\\Asus\\Desktop\\LauncherElectron\\mcfiles\\modstore", + "modRef": [ + "com.westeroscraft:westerosblocks:3.0.0-beta-71", + "mezz:jei:1.11.2-4.3.5.277", + "net.optifine:optifine:1.11.2_HD_U_B9", + "chatbubbles:chatbubbles:1.0.1_for_1.11.2" + ] +} \ No newline at end of file diff --git a/app/assets/css/global.css b/app/assets/css/global.css deleted file mode 100755 index 5a0f2fec..00000000 --- a/app/assets/css/global.css +++ /dev/null @@ -1,55 +0,0 @@ - -@font-face { - font-family: ringbearer; - src: url('../fonts/ringbearer.ttf'); -} - -/* Logger font, found on https://fonts.google.com/specimen/Inconsolata?selection.family=Inconsolata */ -@font-face { - font-family: inconsolata; - src: url('../fonts/Inconsolata-Bold.ttf'); -} - - -html , body{ - background: url('../images/BrownWithWignette.jpg') no-repeat center center fixed; - background-size: cover; -} - - -a, a:hover -{ - color: black; - text-decoration:none; - cursor:pointer; -} - - -pre {border: 0; background-color: transparent;} - - - -input{ - width: 100%; - padding-left: 3px; - border: none; - border-bottom: 3px solid #ECECEC; - font-size: 20px; - outline:none; -} - - -p, img, pre, span, label, h1 ,h2 ,h3 { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - - -webkit-user-drag: none; - -khtml-user-drag: none; - -moz-user-drag: none; - -o-user-drag: none; - user-drag: none; -} diff --git a/app/assets/css/header.css b/app/assets/css/header.css deleted file mode 100755 index 7e7ff95b..00000000 --- a/app/assets/css/header.css +++ /dev/null @@ -1,46 +0,0 @@ -#header_container { - background-color: black; - padding: 5px; - font-size: 0px; - text-align: center; - border-bottom: thick solid #a02d2a; - border-bottom-width: 5px; - position: relative; -} - -/* Div container for the seal image. */ -#header_seal_container { - position: absolute; -} - -/* Div container for the header image. */ -#header_img_container { - display: inline-block; - margin: 0 auto; -} - -/* Seal and header images. */ -#header_seal, -#header_img { - height: 75px; - width: auto; - display: block; -} - -/* Div container for the social buttons. */ -#header_social_container { - position: absolute; - bottom: 0px; - right: 0px; - margin-bottom: 5px; -} - -/* Social buttons. */ -.header_social_img { - height: 25px; - width: auto; - display: inline-block; - cursor: pointer; - margin-right: 5px; -} - diff --git a/app/assets/css/styles.css b/app/assets/css/styles.css deleted file mode 100644 index 9569f3c0..00000000 --- a/app/assets/css/styles.css +++ /dev/null @@ -1,351 +0,0 @@ -/******************************************************************************* - * * - * Fonts * - * * - ******************************************************************************/ - - /* Primary font for the application, found on http://www.dafont.com/ringbearer.font */ -@font-face { - font-family: ringbearer; - src: url('../fonts/ringbearer.ttf'); -} - -/* Logger font, found on https://fonts.google.com/specimen/Inconsolata?selection.family=Inconsolata */ -@font-face { - font-family: inconsolata; - src: url('../fonts/Inconsolata-Regular.ttf'); -} - -/******************************************************************************* - * * - * Body * - * * - ******************************************************************************/ - -/* Reset body, html, and div presets. */ -body, html, div { - margin: 0px; - padding: 0px; -} - -html, body { - height: 100%; -} - -html { - background: url('../images/BrownWithWignette.jpg') no-repeat center center fixed; - background-size: cover; -} - -#main_content { - height: calc(100% - 90px); - display: flex; -} - -button { - background-color: #a02d2a; - color: #ffffff; - border: none; - padding: 7px 10px; - text-align: center; - text-decoration: none; - font-size: 14px; -} - -button:hover { - box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24), 0 17px 50px 0 rgba(0,0,0,0.19); -} - -::selection { - background-color: #a02d2a; - color: #ffffff; -} - -/******************************************************************************* - * * - * Header * - * * - ******************************************************************************/ - -/* Main div header container. */ -#header_container { - background-color: black; - padding: 5px; - font-size: 0px; - text-align: center; - border-bottom: thick solid #a02d2a; - border-bottom-width: 5px; - position: relative; -} - -/* Div container for the seal image. */ -#header_seal_container { - position: absolute; -} - -/* Div container for the header image. */ -#header_img_container { - display: inline-block; - margin: 0 auto; -} - -/* Seal and header images. */ -#header_seal, -#header_img { - height: 75px; - width: auto; - display: block; -} - -/* Div container for the social buttons. */ -#header_social_container { - position: absolute; - bottom: 0px; - right: 0px; - margin-bottom: 5px; -} - -/* Social buttons. */ -.header_social_img { - height: 25px; - width: auto; - display: inline-block; - cursor: pointer; - margin-right: 5px; -} - -/******************************************************************************* - * * - * Toggle Buttons * - * * - ******************************************************************************/ - -.toggle-btn { - color: #000000; - font-size: 15px; - font-family: 'ringbearer'; - user-select: none; - background-color: transparent; - display: inline-flex; - cursor: pointer; - width: 90px; - height: 35px; -} - -.toggle-btn-grp .toggle-btn { - border-radius: 0; - align-items: center; - justify-content: center; -} - -.toggle-btn:not(.success):hover { - box-shadow: inset 0 -4.5px 0 0 #000000; -} - -.toggle-btn.success { - background: #a02d2a; - color: #ffffff; - cursor: default; -} - -.visuallyhidden { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} - -.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; -} - -/******************************************************************************* - * * - * Left Body Container * - * * - ******************************************************************************/ - -#left_pane { - float: left; - width: 30%; -} - -#welcome_text_container { - display: table; - margin: 0 auto; -} - -#welcome_text { - font-family: 'ringbearer'; - font-size: 16px; - display: table-cell; - text-align: center; - vertical-align: middle; - height: 35px; -} - -#login_pane { - background: linear-gradient(141deg, #000000 -5%, #a02d2a 120%, #000000 150%); - padding-top: 5px; - border-radius: 5px; - box-shadow: 0px 0px 5px 2px rgba(0, 0, 0, 0.28); - width: 97%; - margin: 0 auto; -} - -#login_pane_header_container { - margin-left: 10px; -} - -.login_pane_header { - font-size: 14px; - font-family: 'Segoe UI'; - font-weight: 500; - color: white; -} - -#login_container { - display: inline-flex; - width: 100%; -} - -#login_image { - height: 85px; - width: auto; - display: block; - border: 3px solid #000000; -} - -#login_container_right input, -#login_container_right label { - display: flex; - width: 100%; -} - -#login_container_left { - padding: 10px 0 10px 10px; -} - -#login_container_right { - padding: 10px; - width: 100%; -} - -.login_field { - font-size: 12px; - font-family: 'Segoe UI'; - font-weight: 500; - color: white; - /* new */ - display: table; -} - -#button_login { - float: right; - margin-top: 10px; -} - -/******************************************************************************* - * * - * Right Body Container * - * * - ******************************************************************************/ - -#right_pane { - float: right; - width: 70%; -} - -#content_container { - border: 3px solid #a02d2a; - height: calc(98% - 41.33px); - width: 98%; - display: flex; -} - -#launcher-log { - font-family: 'inconsolata'; - font-size: 12px; - color: #ffffff; - background-color: #1a1b1c; - border: none; - outline: none; - overflow-y: scroll; - display: block; - align-items: stretch; - width: 100%; - resize: none; - padding: 5px 10px; - text-shadow: 0.01px 0.01px 0.01px #ffffff; - line-height: 1.2em; -} - -#launcher-log::selection { - background: rgba(160, 45, 42, .9); - color: #ffffff; -} - -#launcher-log::-webkit-scrollbar { - background-color: #a02d2a; -} - -#launcher-log::-webkit-scrollbar-thumb:window-inactive, -#launcher-log::-webkit-scrollbar-thumb { - background: black -} - -.log_debug { - color: blue; -} - -/******************************************************************************* - * * - * Login View * - * * - ******************************************************************************/ - -#login_view { - background: rgba(0, 0, 0, 0.76); - height: calc(100% - 90px); - display: flex; - justify-content: center; - align-items: center; -} - -#login_content { - width: 50%; - height: 75%; - display: flex; - justify-content: center; -} - -#login_view #content_main { - display: flex; -} - -#login_view #login_content_image { - height: 125px; - width: auto; -} - -#login_view #content_main #right { - margin-left: 10px; -} - -.login_input { - background-color: #a02d2a; -} - -.login_input::-webkit-input-placeholder { - color: white; -} - diff --git a/app/assets/images/.BrownWithWignette.jpg.icloud b/app/assets/images/.BrownWithWignette.jpg.icloud deleted file mode 100644 index 6669ec30a6672f144813a9507cb2e83e7feb36e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcmYc)$jK}&F)+By$i&RT$`<1n92(@~mzbOComv?$AOPmNW#*&?XI4RkB;Z0psm1xF zMaiill?4zfQKzE(^1SfOl8o@o^t{xPl2pB{f^;E<*wu~k0y0?j1*N8!<|Gzz@XP3X TC8aZf0V5-XW?+ZXFscmz-IOp+ diff --git a/app/assets/images/facebook.png b/app/assets/images/facebook.png deleted file mode 100644 index 7615371cf9c2ef46eb6034d833b8266a39abad6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4086 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 diff --git a/app/assets/images/reddit.png b/app/assets/images/reddit.png deleted file mode 100644 index bd4ca02da653c211ca7dd08df1b0940a5d0785dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8661 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 i0zdNqO?~oJ6z2} - A promise which resolves to the contents of forge's version.json. + */ function _finalizeForgeAsset(asset, basePath){ return new Promise(function(fulfill, reject){ fs.readFile(asset.to, (err, data) => { @@ -377,11 +389,14 @@ function _finalizeForgeAsset(asset, basePath){ fs.writeFileSync(path.join(versionPath, forgeVersion.id + '.json'), zipEntries[i].getData()) fulfill(forgeVersion) } else { + //Read the saved file to allow for user modifications. fulfill(JSON.parse(fs.readFileSync(versionFile, 'utf-8'))) } return } } + //We didn't find forge's version.json. + reject('Unable to finalize Forge processing, version.json not found! Has forge changed their format?') }) }) } @@ -402,7 +417,7 @@ function startAsyncProcess(identifier, limit = 5){ if(concurrentDlQueue.length === 0){ return false } else { - console.log(instance.progress) + console.log(concurrentDlQueue) async.eachLimit(concurrentDlQueue, limit, function(asset, cb){ let count = 0; mkpath.sync(path.join(asset.to, "..")) @@ -745,32 +760,29 @@ function _parseDistroModules(modules, basePath, version){ switch(obType){ case 'forge-hosted': case 'forge': - obPath = path.join(basePath, 'libraries', obPath) - break case 'library': obPath = path.join(basePath, 'libraries', obPath) break case 'forgemod': - obPath = path.join(basePath, 'mods', obPath) + //obPath = path.join(basePath, 'mods', obPath) + obPath = path.join(basePath, 'modstore', obPath) break case 'litemod': - obPath = path.join(basePath, 'mods', version, obPath) + //obPath = path.join(basePath, 'mods', version, obPath) + obPath = path.join(basePath, 'modstore', obPath) break case 'file': default: obPath = path.join(basePath, obPath) } let artifact = new DistroModule(ob.id, obArtifact.MD5, obArtifact.size, obArtifact.url, obPath, obType) - if(obPath.toLowerCase().endsWith('.pack.xz')){ - if(!_validateLocal(obPath.substring(0, obPath.toLowerCase().lastIndexOf('.pack.xz')), 'MD5', artifact.hash)){ - asize += artifact.size*1 - alist.push(artifact) - decompressqueue.push(obPath) - } - } else if(!_validateLocal(obPath, 'MD5', artifact.hash)){ + const validationPath = obPath.toLowerCase().endsWith('.pack.xz') ? obPath.substring(0, obPath.toLowerCase().lastIndexOf('.pack.xz')) : obPath + if(!_validateLocal(validationPath, 'MD5', artifact.hash)){ asize += artifact.size*1 alist.push(artifact) + if(validationPath !== obPath) decompressqueue.push(obPath) } + //Recursively process the submodules then combine the results. if(ob.sub_modules != null){ let dltrack = _parseDistroModules(ob.sub_modules, basePath, version) asize += dltrack.dlsize*1 @@ -778,9 +790,18 @@ function _parseDistroModules(modules, basePath, version){ decompressqueue = decompressqueue.concat(dltrack.callback) } } + + //Since we have no callback at this point, we use this value to store the decompressqueue. return new DLTracker(alist, asize, decompressqueue) } +/** + * Loads Forge's version.json data into memory for the specified server id. + * + * @param {String} serverpack - The id of the server to load Forge data for. + * @param {String} basePath + * @returns {Promise.} - A promise which resolves to Forge's version.json data. + */ function loadForgeData(serverpack, basePath){ return new Promise(async function(fulfill, reject){ let distro = await _chainValidateDistributionIndex(basePath) @@ -811,7 +832,11 @@ function loadForgeData(serverpack, basePath){ } function _parseForgeLibraries(){ - + /* TODO + * Forge asset validations are already implemented. When there's nothing much + * to work on, implement forge downloads using forge's version.json. This is to + * have the code on standby if we ever need it (since it's half implemented already). + */ } /** diff --git a/app/assets/js/launchprocess.js b/app/assets/js/launchprocess.js index 9d8a5cb6..6b60f1ad 100644 --- a/app/assets/js/launchprocess.js +++ b/app/assets/js/launchprocess.js @@ -8,12 +8,16 @@ const fs = require('fs') const mkpath = require('mkdirp'); function launchMinecraft(versionData, forgeData, basePath){ - const authPromise = mojang.auth('EMAIL', 'PASS', uuidV4(), { + const authPromise = mojang.auth('nytrocraft@live.com', 'applesrsogood123', uuidV4(), { name: 'Minecraft', version: 1 }) authPromise.then(function(data){ + console.log(data) const args = finalizeArgumentsForge(versionData, forgeData, data, basePath) + //BRUTEFORCE for testing + //args.push('-mods modstore\\chatbubbles\\chatbubbles\\1.0.1_for_1.11.2\\mod_chatBubbles-1.0.1_for_1.11.2.litemod,modstore\\com\\westeroscraft\\westerosblocks\\3.0.0-beta-71\\westerosblocks-3.0.0-beta-71.jar,modstore\\mezz\\jei\\1.11.2-4.3.5.277\\jei-1.11.2-4.3.5.277.jar,modstore\\net\\optifine\\optifine\\1.11.2_HD_U_B9\\optifine-1.11.2_HD_U_B9.jar') + //args.push('--modListFile absolute:C:\\Users\\Asus\\Desktop\\LauncherElectron\\app\\assets\\WesterosCraft-1.11.2.json') //TODO make this dynamic const child = child_process.spawn('C:\\Program Files\\Java\\jre1.8.0_131\\bin\\javaw.exe', args) child.stdout.on('data', (data) => { @@ -51,7 +55,8 @@ function finalizeArgumentsForge(versionData, forgeData, authData, basePath){ newVal = gameProfile['name'] break case 'version_name': - newVal = versionData['id'] + //newVal = versionData['id'] + newVal = 'WesterosCraft-1.11.2' break case 'game_directory': newVal = basePath @@ -200,6 +205,10 @@ function classpathArg(versionData, basePath){ } }) + //BRUTEFORCE LIB INJECTION + //FOR TESTING ONLY + cpArgs.push(path.join(libPath, 'com', 'mumfrey', 'liteloader', '1.11.2-SNAPSHOT', 'liteloader-1.11.2-SNAPSHOT.jar')) + return cpArgs } diff --git a/app/assets/js/modlist.js b/app/assets/js/modlist.js index 24b15767..64a6b0e9 100644 --- a/app/assets/js/modlist.js +++ b/app/assets/js/modlist.js @@ -45,7 +45,7 @@ export class ModList { * @param {Object} distro - the distribution index. */ static generateModList(distro){ - + } } \ No newline at end of file diff --git a/app/assets/js/script.js b/app/assets/js/script.js index e5421890..db405db0 100644 --- a/app/assets/js/script.js +++ b/app/assets/js/script.js @@ -26,7 +26,7 @@ $(document).on('ready', function(){ $(this).parent().toggleClass("success") } }) - console.log = function(){ + /*console.log = function(){ $('#launcher-log').append(timestamp() + ' [Log] - ' + Array.prototype.slice.call(arguments).join(' ') + os.EOL) } console.error = function(){ @@ -36,7 +36,7 @@ $(document).on('ready', function(){ $('#launcher-log').append('' + timestamp() + ' [Error] - ' + Array.prototype.slice.call(arguments).join(' ') + "" + os.EOL) } console.log('test') - console.debug('test') + console.debug('test')*/ }) /* Open web links in the user's default browser. */ diff --git a/app/assets/westeroscraft.json b/app/assets/westeroscraft.json index ccd931d4..5a78c979 100644 --- a/app/assets/westeroscraft.json +++ b/app/assets/westeroscraft.json @@ -229,18 +229,20 @@ "artifact": { "size": 2056699, "MD5": "38b4c51b9c6ebc09e7a9784accea974e", - "path": "OptiFine-1.11.2_HD_U_B9.jar", + "----path": "OptiFine-1.11.2_HD_U_B9.jar", + "extension": ".jar", "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/OptiFine.jar" } }, { - "id": "jei", + "id": "mezz:jei:1.11.2-4.3.5.277", "name": "JustEnoughItems (1.11.2-4.3.5.277)", "type": "forgemod", "artifact": { "size": 509450, "MD5": "ea56276646ce405bb4beeaf9064de611", - "path": "jei.jar", + "----path": "jei.jar", + "extension": ".jar", "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/jei.jar" } }, @@ -249,9 +251,10 @@ "name": "WesterosBlocks (3.0.0-beta-71)", "type": "forgemod", "artifact": { - "size": 16230253, - "MD5": "2e3ea10730720b8abbf408262d922249", - "path": "WesterosBlocks.jar", + "size": 16252437, + "MD5": "d868f0c0b0cabf3cee2b585503873380", + "----path": "WesterosBlocks.jar", + "extension": ".jar", "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/WesterosBlocks.jar" } }, @@ -260,8 +263,8 @@ "name": "WesterosCraft Resource Pack (2017-05-20)", "type": "file", "artifact": { - "size": 44704858, - "MD5": "a2e552df2d5f7f6d6d34f3afe5674670", + "size": 44573660, + "MD5": "b982a65e3fc6971b809f8c60ad4507af", "path": "resourcepacks/WesterosCraft.zip", "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/resourcepacks/WesterosCraft.zip" } @@ -288,7 +291,7 @@ } }, { - "id": "chatbubbles", + "id": "chatbubbles:chatbubbles:1.0.1_for_1.11.2", "name": "Chat Bubbles 1.11.2", "type": "litemod", "required": { @@ -296,8 +299,9 @@ }, "artifact": { "size": 37838, - "MD5": "0497a93e5429b43082282e9d9119fcba", - "path": "mod_chatBubbles-1.0.1_for_1.11.2.litemod", + "MD5": "0497a93e5429b43082282e9d9119fcba", + "---path": "mod_chatBubbles-1.0.1_for_1.11.2.litemod", + "extension": ".litemod", "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/mod_chatBubbles-1.0.1_for_1.11.2.litemod" }, "sub_modules": [ diff --git a/app/index.html b/app/index.html deleted file mode 100644 index 25ebcd65..00000000 --- a/app/index.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - Westeroscraft Launcher - - - - -
-
- -
-
- -
- -
- -
-
-
-
- -
- -
-
-
- - - - \ No newline at end of file diff --git a/app/loginConcept.html b/app/loginConcept.html deleted file mode 100644 index bb05ef23..00000000 --- a/app/loginConcept.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file