Added News UI.

Added News UI and implemented functionality.
Removed westeroscraft.xml as we don't need to cache it.
Updated westeroscraft.json.
Updated Electron to v2.0.0
This commit is contained in:
Daniel Scalzi 2018-05-06 21:45:20 -04:00
parent 252b82a944
commit 40de1e3cd3
No known key found for this signature in database
GPG Key ID: 5CA2F145B63535F9
10 changed files with 738 additions and 811 deletions

View File

@ -893,6 +893,8 @@ p {
#landingContainer { #landingContainer {
height: 100%; height: 100%;
position: relative; position: relative;
transition: background 2s ease;
overflow-y: hidden;
} }
/* Upper content container. */ /* Upper content container. */
@ -953,6 +955,7 @@ p {
} }
#landingContainer > #lower > #center #content { #landingContainer > #lower > #center #content {
position: relative; position: relative;
z-index: 500;
transition: top 2s ease; transition: top 2s ease;
top: 10px; top: 10px;
} }
@ -965,6 +968,262 @@ p {
display: inline-flex; display: inline-flex;
} }
/*******************************************************************************
* *
* Landing View (News Styles) *
* *
******************************************************************************/
/* Main container. */
#newsContainer {
position: absolute;
top: 100%;
height: 100%;
width: 100%;
transition: top 2s ease;
display: flex;
align-items: flex-end;
justify-content: center;
}
/* News content container. */
#newsContent {
height: 82vh;
width: 82vw;
display: flex;
}
/* News article status container (left). */
#newsStatusContainer {
width: 25%;
height: 100%;
padding: 15px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
/* News status content. */
#newsStatusContent {
display: flex;
flex-direction: column;
}
/* News article title styles. */
#newsArticleTitle {
font-size: 20px;
font-weight: bold;
font-family: 'Avenir Medium';
}
#newsArticleTitle {
color: white;
text-decoration: none;
transition: 0.25s ease;
}
#newsArticleTitle:hover,
#newsArticleTitle:focus {
text-shadow: 0px 0px 20px white;
}
#newsArticleTitle:active {
color: #c7c7c7;
text-shadow: 0px 0px 20px #c7c7c7;
}
/* News meta container. */
#newsMetaContainer {
display: flex;
flex-direction: column;
}
/* Date and author shared styles. */
#newsArticleDate,
#newsArticleAuthor {
display: inline-block;
font-size: 10px;
color: rgb(255, 255, 255);
font-family: 'Avenir Book';
padding: 0px 5px;
font-weight: bold;
border-radius: 2px;
}
/* Date styles. */
#newsArticleDate {
background: white;
color: black;
margin-top: 5px;
}
/* Author styles. */
#newsArticleAuthor {
background: #a02d2a;
}
/* News article comments styles. */
#newsArticleComments {
margin-top: 5px;
display: inline-block;
font-size: 10px;
color: rgb(255, 255, 255);
font-family: 'Avenir Book';
text-decoration: none;
transition: 0.25s ease;
}
#newsArticleComments:focus,
#newsArticleComments:hover {
color: #e0e0e0;
}
#newsArticleComments:active {
color: #c7c7c7;
}
/* Article content container (right). */
#newsArticleContainer {
width: 75%;
height: 100%;
}
/* Article content styles. */
#newsArticleContentScrollable {
color: white;
font-family: 'Avenir Book';
font-size: 12px;
max-width: 80%;
margin: 25px 35px 0px 25px;
overflow-y: scroll;
height: calc(100% - 25px);
padding: 0px 15px 0px 15px;
}
#newsArticleContentScrollable img {
max-width: 95%;
display: block;
margin: 0 auto;
}
#newsArticleContentScrollable a {
color: rgba(202, 202, 202, 0.75);
transition: 0.25s ease;
}
#newsArticleContentScrollable a:hover,
#newsArticleContentScrollable a:focus {
color: rgba(255, 255, 255, 0.75);
}
#newsArticleContentScrollable a:active {
color: rgba(165, 165, 165, 0.75);
}
#newsArticleContentScrollable::-webkit-scrollbar {
width: 2px;
}
#newsArticleContentScrollable::-webkit-scrollbar-track {
display: none;
}
#newsArticleContentScrollable::-webkit-scrollbar-thumb {
border-radius: 10px;
box-shadow: inset 0 0 10px rgba(255, 255, 255, 0.50);
}
/* News navigation container. */
#newsNavigationContainer {
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 40px;
}
/* Navigation status span. */
#newsNavigationStatus {
color: white;
font-family: 'Avenir Book';
font-size: 12px;
margin: 0px 15px;
}
/* Left and right navigation button styles. */
#newsNavigateLeft,
#newsNavigateRight {
color: white;
font-family: 'Avenir Book';
background: none;
border: none;
outline: none;
height: 20px;
cursor: pointer;
}
#newsNavigateLeft:hover #newsNavigationLeftSVG,
#newsNavigateLeft:focus #newsNavigationLeftSVG,
#newsNavigateRight:hover #newsNavigationRightSVG,
#newsNavigateRight:focus #newsNavigationRightSVG {
-webkit-filter: drop-shadow(0px 0px 2px #fff);
}
#newsNavigateLeft:active #newsNavigationLeftSVG .arrowLine,
#newsNavigateRight:active #newsNavigationRightSVG .arrowLine {
stroke: #c7c7c7;
}
#newsNavigateLeft:active #newsNavigationLeftSVG,
#newsNavigateRight:active #newsNavigationRightSVG {
-webkit-filter: drop-shadow(0px 0px 2px #c7c7c7);
}
#newsNavigateLeft:disabled #newsNavigationLeftSVG .arrowLine,
#newsNavigateRight:disabled #newsNavigationRightSVG .arrowLine {
stroke: rgba(255, 255, 255, 0.75);
}
#newsNavigationLeftSVG {
transform: rotate(-90deg);
width: 15px;
}
#newsNavigationRightSVG {
transform: rotate(90deg);
width: 15px;
}
/* News error (message) container. */
#newsErrorContainer {
height: 100%;
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
}
#newsErrorFailed {
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
}
/* News error content (message). */
.newsErrorContent {
color: white;
font-size: 20px;
font-family: 'Avenir Book';
}
#newsErrorLoading {
display: flex;
width: 168.92px;
}
#nELoadSpan {
white-space: pre;
}
/* News error retry button styles. */
#newsErrorRetry {
color: #ffffff;
font-family: 'Avenir Book';
font-size: 12px;
font-weight: bold;
cursor: pointer;
background: none;
border: none;
outline: none;
transition: 0.25s ease;
}
#newsErrorRetry:focus,
#newsErrorRetry:hover {
text-shadow: 0px 0px 20px white;
}
#newsErrorRetry:active {
color: #c7c7c7;
text-shadow: 0px 0px 20px #c7c7c7;
}
/******************************************************************************* /*******************************************************************************
* * * *
* Landing View (Top Styles) * * Landing View (Top Styles) *
@ -976,16 +1235,6 @@ p {
* * */ * * */
/* Logo image. */ /* Logo image. */
/*#image_seal {
height: 70px;
width: auto;
position: relative;
margin-top: 50px;
border: 2px solid white;
border-radius: 50%;
box-shadow: 0px 0px 10px 0px rgb(0, 0, 0);
}*/
#image_seal { #image_seal {
height: 70px; height: 70px;
width: auto; width: auto;
@ -995,6 +1244,7 @@ p {
border-radius: 50%; border-radius: 50%;
} }
/* Logo container styles. */
#image_seal_container { #image_seal_container {
position: relative; position: relative;
height: 70px; height: 70px;
@ -1002,6 +1252,8 @@ p {
border-radius: 50%; border-radius: 50%;
margin-top: 50px; margin-top: 50px;
} }
/* Logo container styles w/ update. */
#image_seal_container[update]{ #image_seal_container[update]{
cursor: pointer cursor: pointer
} }
@ -1023,6 +1275,7 @@ p {
animation-delay: 2s; animation-delay: 2s;
} }
/* Update available tooltip styles. */
#updateAvailableTooltip { #updateAvailableTooltip {
cursor: pointer; cursor: pointer;
visibility: hidden; visibility: hidden;
@ -1058,6 +1311,7 @@ p {
transition-delay: 0s; transition-delay: 0s;
} }
/* Update available animation. */
@keyframes glow-grow { @keyframes glow-grow {
0% { 0% {
opacity: 0; opacity: 0;
@ -1071,53 +1325,7 @@ p {
opacity: 0; opacity: 0;
} }
} }
/*
#image_seal {
height: 70px;
width: auto;
position: relative;
border-radius: 50%;
box-shadow: 0px 0px 10px 0px rgb(0, 0, 0);
}
#image_seal_container {
position: relative;
height: 70px;
width: 70px;
border-radius: 50%;
border: 2px solid white;
margin-top: 50px;
}
#image_seal_container:before,
#image_seal_container:after {
position: absolute;
content: '';
height: 100%;
width: 100%;
top: 0%;
left: 0%;
border-radius: 50%;
box-shadow: 0 0 15px #43c628;
animation: glow-grow 3.25s ease-out infinite;
}
#image_seal_container{
animation-delay: 0s;
}
@keyframes glow-grow {
0% {
opacity: 0.8;
transform: scale(1.02);
}
50% {
opacity: 1;
transform: scale(1.07);
}
100% {
transform: scale(1.02);
opacity: 0.8;
}
}
*/
/* * * /* * *
* Landing View (Bottom Styles) | Right Content * Landing View (Bottom Styles) | Right Content
* * */ * * */
@ -1247,9 +1455,13 @@ p {
outline: none; outline: none;
} }
/* News icon colors. */ /* Settings icon colors. */
#newsSVG { #settingsSVG {
stroke: #ffffff; stroke: #ffffff;
height: 15px;
}
#settingsSVG:hover {
height: 23px;
} }
/* Twitter icon colors. */ /* Twitter icon colors. */
@ -1345,46 +1557,46 @@ p {
* Landing View (Bottom Styles) | Center Content * Landing View (Bottom Styles) | Center Content
* * */ * * */
/* Button which opens the menu view. */ /* Button which opens the news view. */
#menu_button { #newsButton {
font-family: 'Avenir Book'; font-family: 'Avenir Book';
background: none; background: none;
border: none; border: none;
cursor: pointer; cursor: pointer;
outline: none; outline: none;
} }
#menu_button:hover #menu_text, #newsButton:hover #newsButtonText,
#menu_button:focus #menu_text { #newsButton:focus #newsButtonText {
text-shadow: 0px 0px 20px #fff, 0px 0px 20px #fff; text-shadow: 0px 0px 20px #fff, 0px 0px 20px #fff;
} }
#menu_button:active { #newsButton:active {
color: #c7c7c7; color: #c7c7c7;
text-shadow: 0px 0px 20px #c7c7c7, 0px 0px 20px #c7c7c7; text-shadow: 0px 0px 20px #c7c7c7, 0px 0px 20px #c7c7c7;
} }
#menu_button:hover #menu_img, #newsButton:hover #newsButtonSVG,
#menu_button:focus #menu_img { #newsButton:focus #newsButtonSVG {
-webkit-filter: drop-shadow(0px 0px 2px #fff); -webkit-filter: drop-shadow(0px 0px 2px #fff);
} }
#menu_button:active #menu_img .arrowLine { #newsButton:active #newsButtonSVG .arrowLine {
stroke: #c7c7c7; stroke: #c7c7c7;
} }
#menu_button:active #menu_img { #newsButton:active #newsButtonSVG {
-webkit-filter: drop-shadow(0px 0px 2px #c7c7c7); -webkit-filter: drop-shadow(0px 0px 2px #c7c7c7);
} }
#menu_button:disabled #menu_img .arrowLine { #newsButton:disabled #newsButtonSVG .arrowLine {
stroke: rgba(255, 255, 255, 0.75); stroke: rgba(255, 255, 255, 0.75);
} }
/* Arrow image which floats above the menu button. */ /* Arrow image which floats above the news button. */
#menu_img { #newsButtonSVG {
height: 11px; height: 11px;
margin-left: -2px; margin-left: -2px;
transition: 0.25s ease; transition: 0.25s ease;
} }
/* Span which contains the menu button text. */ /* Span which contains the news button text. */
#menu_text { #newsButtonText {
color: white; color: white;
font-weight: 900; font-weight: 900;
letter-spacing: 2px; letter-spacing: 2px;
@ -1552,11 +1764,12 @@ p {
transition: 0.25s ease; transition: 0.25s ease;
} }
#overlayContent a:hover, #overlayContent a:hover,
#overlayDismiss { #overlayContent a:focus,
#overlayDismiss:focus {
color: rgba(255, 255, 255, 0.75); color: rgba(255, 255, 255, 0.75);
} }
#overlayContent a:active, #overlayContent a:active,
#overlayDismiss { #overlayDismiss:active {
color: rgba(165, 165, 165, 0.75); color: rgba(165, 165, 165, 0.75);
} }
@ -1872,7 +2085,8 @@ p {
outline: none; outline: none;
cursor: pointer; cursor: pointer;
} }
#serverSelectCancel:hover { #serverSelectCancel:hover,
#serverSelectCancel:focus {
color: rgba(255, 255, 255, 0.75); color: rgba(255, 255, 255, 0.75);
} }
#serverSelectCancel:active { #serverSelectCancel:active {

View File

@ -26,6 +26,10 @@ tracker.on('jExtracted', (jPath) => {
process.send({task: 2, content: 'dl', jPath}) process.send({task: 2, content: 'dl', jPath})
}) })
tracker.on('dlerror', (err) => {
process.send({task: 0.9, content: 'dl', err})
})
process.on('message', (msg) => { process.on('message', (msg) => {
if(msg.task === 0){ if(msg.task === 0){
const func = msg.content const func = msg.content

View File

@ -1555,6 +1555,9 @@ class AssetGuard extends EventEmitter {
cb() cb()
} }
}) })
req.on('error', (err) => {
self.emit('dlerror', err)
})
req.on('data', function(chunk){ req.on('data', function(chunk){
count += chunk.length count += chunk.length
self.progress += chunk.length self.progress += chunk.length

View File

@ -22,6 +22,17 @@ const launch_details_text = document.getElementById('launch_details_text')
const server_selection_button = document.getElementById('server_selection_button') const server_selection_button = document.getElementById('server_selection_button')
const user_text = document.getElementById('user_text') const user_text = document.getElementById('user_text')
// News Elements
const newsContent = document.getElementById('newsContent')
const newsArticleTitle = document.getElementById('newsArticleTitle')
const newsArticleDate = document.getElementById('newsArticleDate')
const newsArticleAuthor = document.getElementById('newsArticleAuthor')
const newsArticleComments = document.getElementById('newsArticleComments')
const newsNavigationStatus = document.getElementById('newsNavigationStatus')
const newsArticleContent = document.getElementById('newsArticleContentScrollable')
const newsErrorContainer = document.getElementById('newsErrorContainer')
const nELoadSpan = document.getElementById('nELoadSpan')
/* Launch Progress Wrapper Functions */ /* Launch Progress Wrapper Functions */
/** /**
@ -127,41 +138,6 @@ server_selection_button.addEventListener('click', (e) => {
toggleServerSelection(true) toggleServerSelection(true)
}) })
let menuActive = false
// Test menu transform.
function slide_(up){
const lCUpper = document.querySelector('#landingContainer > #upper')
const lCLLeft = document.querySelector('#landingContainer > #lower > #left')
const lCLCenter = document.querySelector('#landingContainer > #lower > #center')
const lCLRight = document.querySelector('#landingContainer > #lower > #right')
const menuBtn = document.querySelector('#landingContainer > #lower > #center #content')
if(up){
lCUpper.style.top = '-200vh'
lCLLeft.style.top = '-200vh'
lCLCenter.style.top = '-200vh'
lCLRight.style.top = '-200vh'
menuBtn.style.top = '130vh'
/*setTimeout(() => {
lCLCenter.style.transition = 'none'
menuBtn.style.transition = 'none'
}, 2000)*/
} else {
//lCLCenter.style.transition = null
//menuBtn.style.transition = null
lCUpper.style.top = '0px'
lCLLeft.style.top = '0px'
lCLCenter.style.top = '0px'
lCLRight.style.top = '0px'
menuBtn.style.top = '10px'
}
}
document.getElementById('menu_button').onclick = () => {
slide_(!menuActive)
menuActive = !menuActive
}
// Update Mojang Status Color // Update Mojang Status Color
const refreshMojangStatuses = async function(){ const refreshMojangStatuses = async function(){
console.log('Refreshing Mojang Statuses..') console.log('Refreshing Mojang Statuses..')
@ -491,6 +467,18 @@ function dlAsync(login = true){
setLaunchDetails(eLStr + dotStr) setLaunchDetails(eLStr + dotStr)
}, 750) }, 750)
} else if(m.task === 0.9) {
if(m.err.code === 'ENOENT'){
setLaunchDetails('Download error.. internet?')
} else {
setLaunchDetails('Download error.. try again.')
}
setTimeout(() => {
toggleLaunchArea(false)
}, 5000)
} else if(m.task === 1){ } else if(m.task === 1){
// Download will be at 100%, remove the loading from the OS progress bar. // Download will be at 100%, remove the loading from the OS progress bar.
@ -592,3 +580,248 @@ function dlAsync(login = true){
setLaunchDetails('Loading server information..') setLaunchDetails('Loading server information..')
aEx.send({task: 0, content: 'validateDistribution', argsArr: [ConfigManager.getSelectedServer()]}) aEx.send({task: 0, content: 'validateDistribution', argsArr: [ConfigManager.getSelectedServer()]})
} }
/**
* News Loading Functions
*/
// News slide caches.
let newsActive = false
let newsGlideCount = 0
/**
* Show the news UI via a slide animation.
*
* @param {boolean} up True to slide up, otherwise false.
*/
function slide_(up){
const lCUpper = document.querySelector('#landingContainer > #upper')
const lCLLeft = document.querySelector('#landingContainer > #lower > #left')
const lCLCenter = document.querySelector('#landingContainer > #lower > #center')
const lCLRight = document.querySelector('#landingContainer > #lower > #right')
const newsBtn = document.querySelector('#landingContainer > #lower > #center #content')
const landingContainer = document.getElementById('landingContainer')
const newsContainer = document.querySelector('#landingContainer > #newsContainer')
newsGlideCount++
if(up){
lCUpper.style.top = '-200vh'
lCLLeft.style.top = '-200vh'
lCLCenter.style.top = '-200vh'
lCLRight.style.top = '-200vh'
newsBtn.style.top = '130vh'
newsContainer.style.top = '0px'
//date.toLocaleDateString('en-US', {month: 'short', day: 'numeric', year: 'numeric', hour: 'numeric', minute: 'numeric'})
//landingContainer.style.background = 'rgba(29, 29, 29, 0.55)'
landingContainer.style.background = 'rgba(0, 0, 0, 0.50)'
setTimeout(() => {
if(newsGlideCount === 1){
lCLCenter.style.transition = 'none'
newsBtn.style.transition = 'none'
}
newsGlideCount--
}, 2000)
} else {
setTimeout(() => {
newsGlideCount--
}, 2000)
landingContainer.style.background = null
lCLCenter.style.transition = null
newsBtn.style.transition = null
newsContainer.style.top = '100%'
lCUpper.style.top = '0px'
lCLLeft.style.top = '0px'
lCLCenter.style.top = '0px'
lCLRight.style.top = '0px'
newsBtn.style.top = '10px'
}
}
// Bind news button.
document.getElementById('newsButton').onclick = () => {
slide_(!newsActive)
newsActive = !newsActive
}
// Array to store article meta.
let newsArr = null
// News load animation listener.
let newsLoadingListener = null
/**
* Set the news loading animation.
*
* @param {boolean} val True to set loading animation, otherwise false.
*/
function setNewsLoading(val){
if(val){
const nLStr = 'Checking for News'
let dotStr = '..'
nELoadSpan.innerHTML = nLStr + dotStr
newsLoadingListener = setInterval(() => {
if(dotStr.length >= 3){
dotStr = ''
} else {
dotStr += '.'
}
nELoadSpan.innerHTML = nLStr + dotStr
}, 750)
} else {
if(newsLoadingListener != null){
clearInterval(newsLoadingListener)
newsLoadingListener = null
}
}
}
// Bind retry button.
newsErrorRetry.onclick = () => {
$('#newsErrorFailed').fadeOut(250, () => {
initNews()
$('#newsErrorLoading').fadeIn(250)
})
}
/**
* Reload the news without restarting.
*/
async function reloadNews(){
$('#newsContent').fadeOut(250, () => {
$('#newsErrorLoading').fadeIn(250)
})
await initNews()
}
/**
* Initialize News UI. This will load the news and prepare
* the UI accordingly.
*/
async function initNews(){
setNewsLoading(true)
let news = {}
try {
news = await loadNews()
} catch (err) {
// Empty
}
newsArr = news.articles || null
if(newsArr == null){
// News Loading Failed
setNewsLoading(false)
$('#newsErrorLoading').fadeOut(250, () => {
$('#newsErrorFailed').fadeIn(250)
})
} else if(newsArr.length === 0) {
// No News Articles
setNewsLoading(false)
$('#newsErrorLoading').fadeOut(250, () => {
$('#newsErrorNone').fadeIn(250)
})
} else {
// Success
setNewsLoading(false)
$('#newsErrorContainer').fadeOut(250, () => {
displayArticle(newsArr[0], 1)
$('#newsContent').fadeIn(250)
})
const switchHandler = (forward) => {
let cArt = parseInt(newsContent.getAttribute('article'))
let nxtArt = forward ? (cArt >= newsArr.length-1 ? 0 : cArt + 1) : (cArt <= 0 ? newsArr.length-1 : cArt - 1)
displayArticle(newsArr[nxtArt], nxtArt+1)
}
document.getElementById('newsNavigateRight').onclick = () => { switchHandler(true) }
document.getElementById('newsNavigateLeft').onclick = () => { switchHandler(false) }
}
}
/**
* Display a news article on the UI.
*
* @param {Object} articleObject The article meta object.
* @param {number} index The article index.
*/
function displayArticle(articleObject, index){
newsArticleTitle.innerHTML = articleObject.title
newsArticleTitle.href = articleObject.link
newsArticleAuthor.innerHTML = 'by ' + articleObject.author
newsArticleDate.innerHTML = articleObject.date
newsArticleComments.innerHTML = articleObject.comments
newsArticleComments.href = articleObject.commentsLink
newsArticleContent.innerHTML = articleObject.content
newsNavigationStatus.innerHTML = index + ' of ' + newsArr.length
newsContent.setAttribute('article', index-1)
}
/**
* Load news information from the RSS feed specified in the
* distribution index.
*/
function loadNews(){
return new Promise((resolve, reject) => {
AssetGuard.retrieveDistributionData(ConfigManager.getLauncherDirectory(), true).then((v) => {
const newsFeed = v['news_feed']
const newsHost = new URL(newsFeed).origin + '/'
$.get(newsFeed, (data) => {
const items = $(data).find('item')
const articles = []
for(let i=0; i<items.length; i++){
// JQuery Element
const el = $(items[i])
// Resolve date.
const date = new Date(el.find('pubDate').text()).toLocaleDateString('en-US', {month: 'short', day: 'numeric', year: 'numeric', hour: 'numeric', minute: 'numeric'})
// Resolve comments.
let comments = el.find('slash\\:comments').text() || '0'
comments = comments + ' Comment' + (comments === '1' ? '' : 's')
// Fix relative links in content.
let content = el.find('content\\:encoded').text()
let regex = /src="(?!http:\/\/|https:\/\/)(.+)"/g
let matches
while(matches = regex.exec(content)){
content = content.replace(matches[1], newsHost + matches[1])
}
let link = el.find('link').text()
let title = el.find('title').text()
let author = el.find('dc\\:creator').text()
// Generate article.
articles.push(
{
link,
title,
date,
author,
content,
comments,
commentsLink: link + '#comments'
}
)
}
resolve({
articles
})
}).catch(err => {
reject(err)
})
})
})
}
// Load News
initNews()

View File

@ -164,7 +164,7 @@ $(document).on('click', 'a[href^="http"]', function(event) {
* DevTools, for example the chrome debugger in VS Code. * DevTools, for example the chrome debugger in VS Code.
*/ */
document.addEventListener('keydown', function (e) { document.addEventListener('keydown', function (e) {
if(e.key === 'I' && e.ctrlKey && e.shiftKey){ if((e.key === 'I' || e.key === 'i') && e.ctrlKey && e.shiftKey){
let window = remote.getCurrentWindow() let window = remote.getCurrentWindow()
window.toggleDevTools() window.toggleDevTools()
} }

View File

@ -8,12 +8,12 @@
"java": { "java": {
"oracle": "http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html" "oracle": "http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html"
}, },
"news_feed": "https://westeroscraft.com/articles/index.rss",
"servers": [ "servers": [
{ {
"id": "WesterosCraft-1.11.2", "id": "WesterosCraft-1.11.2",
"name": "WesterosCraft Production Server", "name": "WesterosCraft Production Server",
"description": "Main WesterosCraft server. Connect to enter the Realm.", "description": "Main WesterosCraft server. Connect to enter the Realm.",
"news_feed": "http://www.westeroscraft.com/api/rss.php?preset_id=12700544",
"icon_url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/server-prod.png", "icon_url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/server-prod.png",
"revision": "3.4.17", "revision": "3.4.17",
"server_ip": "mc.westeroscraft.com", "server_ip": "mc.westeroscraft.com",
@ -415,9 +415,8 @@
"id": "WesterosCraftTest-1.11.2", "id": "WesterosCraftTest-1.11.2",
"name": "WesterosCraft Test Server", "name": "WesterosCraft Test Server",
"description": "Main testing server. Experimental changes are live here.", "description": "Main testing server. Experimental changes are live here.",
"news_feed": "http://www.westeroscraft.com/api/rss.php?preset_id=12700544",
"icon_url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/server-test.png", "icon_url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/server-test.png",
"revision": "3.6.0", "revision": "3.7.0",
"server_ip": "mc.westeroscraft.com:4444", "server_ip": "mc.westeroscraft.com:4444",
"mc_version": "1.11.2", "mc_version": "1.11.2",
"discord": { "discord": {
@ -769,23 +768,23 @@
] ]
}, },
{ {
"id": "com.westeroscraft:westerosblocks:3.1.0-alpha-2-134", "id": "com.westeroscraft:westerosblocks:3.1.0-alpha-2-135",
"name": "WesterosBlocks (3.1.0-alpha-2-134)", "name": "WesterosBlocks (3.1.0-alpha-2-135)",
"type": "forgemod", "type": "forgemod",
"artifact": { "artifact": {
"size": 16665319, "size": 16854431,
"MD5": "263cc5fb775763c811b02cef441b1471", "MD5": "ed5b2349d1ce2496895a5e8839b77f74",
"extension": ".jar", "extension": ".jar",
"url": "http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/WesterosBlocks.jar" "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/WesterosBlocks.jar"
} }
}, },
{ {
"id": "com.westeroscraft:westeroscraftrp:2018-03-10", "id": "com.westeroscraft:westeroscraftrp:2018-05-05",
"name": "WesterosCraft Resource Pack (2018-03-10)", "name": "WesterosCraft Resource Pack (2018-05-05)",
"type": "file", "type": "file",
"artifact": { "artifact": {
"size": 46048737, "size": 46067606,
"MD5": "ecb7ea884ab99a629e123d2c1ebe4467", "MD5": "0e08b0bcf44c9d266bfe067d865ffc1e",
"path": "resourcepacks/WesterosCraft.zip", "path": "resourcepacks/WesterosCraft.zip",
"url": "http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/resourcepacks/WesterosCraft.zip" "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/resourcepacks/WesterosCraft.zip"
} }
@ -817,9 +816,8 @@
"id": "WesterosCraftTest-1.12.2", "id": "WesterosCraftTest-1.12.2",
"name": "WesterosCraft 1.12.2 Test Server", "name": "WesterosCraft 1.12.2 Test Server",
"description": "Tests for our version change to 1.12.2 are live here.", "description": "Tests for our version change to 1.12.2 are live here.",
"news_feed": "http://www.westeroscraft.com/api/rss.php?preset_id=12700544",
"icon_url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/server-test.png", "icon_url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/server-test.png",
"revision": "4.0.1", "revision": "4.1.0",
"server_ip": "mc.westeroscraft.com:4445", "server_ip": "mc.westeroscraft.com:4445",
"mc_version": "1.12.2", "mc_version": "1.12.2",
"discord": { "discord": {
@ -1168,23 +1166,23 @@
] ]
}, },
{ {
"id": "com.westeroscraft:westerosblocks:3.1.0-alpha-2-4", "id": "com.westeroscraft:westerosblocks:3.1.0-alpha-2-8",
"name": "WesterosBlocks (3.1.0-alpha-2-4)", "name": "WesterosBlocks (3.1.0-alpha-2-8)",
"type": "forgemod", "type": "forgemod",
"artifact": { "artifact": {
"size": 16588650, "size": 16771714,
"MD5": "d7821ea6ee4ba3d4e620bbb95109f1da", "MD5": "bb5f1d262c0fd96f1bddea40a69da956",
"extension": ".jar", "extension": ".jar",
"url": "http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/mods/WesterosBlocks.jar" "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/mods/WesterosBlocks.jar"
} }
}, },
{ {
"id": "com.westeroscraft:westeroscraftrp:2018-04-03", "id": "com.westeroscraft:westeroscraftrp:2018-05-05",
"name": "WesterosCraft Resource Pack (2018-04-03)", "name": "WesterosCraft Resource Pack (2018-05-05)",
"type": "file", "type": "file",
"artifact": { "artifact": {
"size": 46051213, "size": 46070075,
"MD5": "2a3f5e68e9e27e037675d9ed56c73e50", "MD5": "e23288afd457ca56ee744c76b0e2dbed",
"path": "resourcepacks/WesterosCraft.zip", "path": "resourcepacks/WesterosCraft.zip",
"url": "http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/resourcepacks/WesterosCraft.zip" "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/resourcepacks/WesterosCraft.zip"
} }

View File

@ -1,603 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ServerPack version="3.0">
<Server id="WesterosCraft-1.11.2" name="WesterosCraft Production Client" newsUrl="http://www.westeroscraft.com/home/" iconUrl="http://mc.westeroscraft.com/WesterosCraftLauncher/files/server-prod.png"
revision="3.4.17" serverAddress="mc.westeroscraft.com" generateList="true" version="1.11.2" autoConnect="true" mainClass="net.minecraft.launchwrapper.Launch"
libOverrides="com.google.guava:guava:17.0 org.apache.commons:commons-lang3:3.3.2">
<Module id="forge" name="Minecraft Forge 13.20.1.2429">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/forge-1.11.2-13.20.1.2429-universal.jar</URL>
<Required>true</Required>
<ModType order="1" jreArgs="-Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true" launchArgs="--tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker">Library</ModType>
<MD5>3fcc9b0104f0261397d3cc897e55a1c5</MD5>
<Submodule id="launchwrapper" name="Mojang (LaunchWrapper)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/launchwrapper-1.12.jar</URL>
<MD5>934b2d91c7c5be4a49577c9e6b40e8da</MD5>
<Required>true</Required>
<ModType order="2">Library</ModType>
</Submodule>
<Submodule id="asm" name="Mojang (ASM)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/asm-all-5.0.3.jar</URL>
<MD5>c5cc4613bbdfba3ccf5f0ab85390d0b8</MD5>
<Required>true</Required>
<ModType order="3">Library</ModType>
</Submodule>
<Submodule id="scala-lib" name="Minecraft Forge (scala-library)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-library-2.11.1.jar.pack.xz</URL>
<MD5>379c15c4f724421c6d5d7aecedaf87a6</MD5>
<Required>true</Required>
<ModType order="4">Library</ModType>
</Submodule>
<Submodule id="scala-compiler" name="Minecraft Forge (scala-compiler)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-compiler-2.11.1.jar.pack.xz</URL>
<MD5>7d89e952f2d5c74577310cd2c28e3f20</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-actors-migration" name="Minecraft Forge (scala-actors-migration)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-actors-migration_2.11-1.1.0.jar.pack.xz</URL>
<MD5>04e3428b2600ace33c7ae2bf1f6c0a4c</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-continuations-library" name="Minecraft Forge (scala-continuations-library)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-continuations-library_2.11-1.0.2.jar.pack.xz</URL>
<MD5>ed9b1d27aba8ac4090a3749c4dfc895a</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-continuations-plugin" name="Minecraft Forge (scala-continuations-plugin)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-continuations-plugin_2.11.1-1.0.2.jar.pack.xz</URL>
<MD5>a8232db22a72a981de6b1399eb86dff7</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-parser-combinators" name="Minecraft Forge (scala-parser-combinators)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-parser-combinators_2.11-1.0.1.jar.pack.xz</URL>
<MD5>2e50a7df17680daadacca69f07f8a16d</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-reflect" name="Minecraft Forge (scala-reflect)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-reflect-2.11.1.jar.pack.xz</URL>
<MD5>84e5dc81c10e2bd74c579c9d0332fdd9</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-swing" name="Minecraft Forge (scala-swing)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-swing_2.11-1.0.1.jar</URL>
<MD5>1d360289e697022a3f57abaad344b28f</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-xml" name="Minecraft Forge (scala-xml)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-xml_2.11-1.0.2.jar.pack.xz</URL>
<MD5>cc891b094a4c32dedc56bfefe9b072ff</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="akka-actor" name="Minecraft Forge (akka-actor)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/akka-actor_2.11-2.3.3.jar.pack.xz</URL>
<MD5>25cb22c3078e9fb3f7a861c912924862</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="typesafe-config" name="Minecraft Forge (typesafe-config)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/config-1.2.1.jar.pack.xz</URL>
<MD5>10ec4ccabc4e68aac9cf87165ead5d7d</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="lzma" name="Mojang (LZMA)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/lzma-0.0.1.jar</URL>
<MD5>a3e3c3186e41c4a1a3027ba2bb23cdc6</MD5>
<Required>true</Required>
<ModType order="6">Library</ModType>
</Submodule>
<Submodule id="trove4j" name="Trove4J 3.0.3">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/trove4j-3.0.3.jar</URL>
<MD5>8fc4d4e0129244f9fd39650c5f30feb2</MD5>
<Required>true</Required>
<ModType order="7">Library</ModType>
</Submodule>
<Submodule id="vecmath" name="Vecmath 1.5.2">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/vecmath-1.5.2.jar</URL>
<MD5>e5d2b7f46c4800a32f62ce75676a5710</MD5>
<Required>true</Required>
<ModType order="8">Library</ModType>
</Submodule>
<Submodule id="jopt-simple" name="Jopt-simple 4.6">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/jopt-simple-4.6.jar</URL>
<MD5>13560a58a79b46b82057686543e8d727</MD5>
<Required>true</Required>
<ModType order="9">Library</ModType>
</Submodule>
<Submodule id="MercuriusUpdater" name="MercuriusUpdater 1.11.2">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/MercuriusUpdater-1.11.2.jar</URL>
<MD5>13560a58a79b46b82057686543e8d727</MD5>
<Required>true</Required>
<ModType order="10">Library</ModType>
</Submodule>
</Module>
<Module name="WesterosBlocks (3.0.0-beta-6-133)" id="WesterosBlocks">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/mods/WesterosBlocks.jar</URL>
<Required>true</Required>
<ModType>Regular</ModType>
<MD5>5a89e2ab18916c18965fc93a0766cc6e</MD5>
</Module>
<Module name="OptiFine (1.11.2_HD_U_C3)" id="OptiFine">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/mods/OptiFine.jar</URL>
<Required>true</Required>
<ModType>Regular</ModType>
<MD5>82f495594cd50e1fda7a8aa0246239fc</MD5>
</Module>
<Module name="JustEnoughItems (1.11.2-4.5.0.290)" id="JustEnoughItems">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/mods/jei.jar</URL>
<Required>true</Required>
<ModType>Regular</ModType>
<MD5>f4d931f6db6210621a86fa1e7eae8016</MD5>
</Module>
<Module name="Waila (1.7.1_1.11.2)" id="Waila">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/mods/Waila.jar</URL>
<Required isDefault="false">false</Required>
<ModType>Regular</ModType>
<MD5>26258a3557bf333e8f4ce8b1e9481031</MD5>
</Module>
<Module name="WorldEditCUI (v2.1.1-mf-1.11.2-13.20.0.2228)" id="worldeditcuife">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/mods/worldeditcuife.jar</URL>
<Required isDefault="true">false</Required>
<ModType>Regular</ModType>
<MD5>439f82b69f3464969163c188818c677b</MD5>
</Module>
<Module id="journeymap" name="JourneyMap (1.11.2-5.4.7)">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/mods/journeymap.jar</URL>
<Required isDefault="true">false</Required>
<ModType>Regular</ModType>
<MD5>1c3380502eb7b9a495581b2402d144df</MD5>
</Module>
<Module id="BetterFoliage" name="BetterFoliage (1.11.2-2.1.8)">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/mods/BetterFoliage.jar</URL>
<Required isDefault="true">false</Required>
<ModType>Regular</ModType>
<MD5>b2dd47e42da56fb49a07a0d38df91bc4</MD5>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/config/betterfoliage.cfg</URL>
<Path>/config/betterfoliage.cfg</Path>
<MD5>6dd38f873c4129af05a2d6c500cbe954</MD5>
</ConfigFile>
</Module>
<Module id="DynamicSurroundings" name="DynamicSurroundings (1.11.2-3.4.6.2)">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/mods/DynamicSurroundings.jar</URL>
<Required isDefault="true">false</Required>
<ModType>Regular</ModType>
<MD5>82a6aac5420151960b8dd709deee5423</MD5>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/config/dsurround/dsurround.cfg</URL>
<Path>/config/dsurround/dsurround.cfg</Path>
<MD5>4c64fc6cbbb83b18012ed4820b0b496e</MD5>
</ConfigFile>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/config/dsurround/westeros.json</URL>
<Path>/config/dsurround/westeros.json</Path>
<MD5>44eab112ff24d0bd29974c270de868ba</MD5>
</ConfigFile>
</Module>
<Module id="WesterosCraftRP" name="WesterosCraft Resource Pack (2017-08-16)">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/resourcepacks/WesterosCraft.zip</URL>
<Required>true</Required>
<ModType>Regular</ModType>
<ModPath>/resourcepacks/WesterosCraft.zip</ModPath>
<MD5>ec2d9fdb14d5c2eafe5975a240202f1a</MD5>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/files/options-1.11.2.txt</URL>
<Path>/options.txt</Path>
<NoOverwrite>true</NoOverwrite>
</ConfigFile>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/prod-1.11.2/servers.dat</URL>
<Path>/servers.dat</Path>
<MD5>71d99e229d7d2b8d2a6423e46832a4b8</MD5>
</ConfigFile>
</Module>
</Server>
<Server id="WesterosCraftTest-1.11.2" name="WesterosCraft Test Client" newsUrl="http://www.westeroscraft.com/home/" iconUrl="http://mc.westeroscraft.com/WesterosCraftLauncher/files/server-test.png"
revision="3.6.0" serverAddress="mc.westeroscraft.com:4444" generateList="false" version="1.11.2" autoConnect="true" mainClass="net.minecraft.launchwrapper.Launch"
libOverrides="com.google.guava:guava:17.0 org.apache.commons:commons-lang3:3.3.2">
<Module id="forge" name="Minecraft Forge 13.20.1.2476">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/forge-1.11.2-13.20.1.2476-universal.jar</URL>
<Required>true</Required>
<ModType order="1" jreArgs="-Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true" launchArgs="--tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker">Library</ModType>
<MD5>7cef816cc01d53a04a180f0214d2982a</MD5>
<Submodule id="launchwrapper" name="Mojang (LaunchWrapper)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/launchwrapper-1.12.jar</URL>
<MD5>934b2d91c7c5be4a49577c9e6b40e8da</MD5>
<Required>true</Required>
<ModType order="2">Library</ModType>
</Submodule>
<Submodule id="asm" name="Mojang (ASM)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/asm-all-5.0.3.jar</URL>
<MD5>c5cc4613bbdfba3ccf5f0ab85390d0b8</MD5>
<Required>true</Required>
<ModType order="3">Library</ModType>
</Submodule>
<Submodule id="scala-lib" name="Minecraft Forge (scala-library)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-library-2.11.1.jar.pack.xz</URL>
<MD5>379c15c4f724421c6d5d7aecedaf87a6</MD5>
<Required>true</Required>
<ModType order="4">Library</ModType>
</Submodule>
<Submodule id="scala-compiler" name="Minecraft Forge (scala-compiler)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-compiler-2.11.1.jar.pack.xz</URL>
<MD5>7d89e952f2d5c74577310cd2c28e3f20</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-actors-migration" name="Minecraft Forge (scala-actors-migration)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-actors-migration_2.11-1.1.0.jar.pack.xz</URL>
<MD5>04e3428b2600ace33c7ae2bf1f6c0a4c</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-continuations-library" name="Minecraft Forge (scala-continuations-library)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-continuations-library_2.11-1.0.2.jar.pack.xz</URL>
<MD5>ed9b1d27aba8ac4090a3749c4dfc895a</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-continuations-plugin" name="Minecraft Forge (scala-continuations-plugin)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-continuations-plugin_2.11.1-1.0.2.jar.pack.xz</URL>
<MD5>a8232db22a72a981de6b1399eb86dff7</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-parser-combinators" name="Minecraft Forge (scala-parser-combinators)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-parser-combinators_2.11-1.0.1.jar.pack.xz</URL>
<MD5>2e50a7df17680daadacca69f07f8a16d</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-reflect" name="Minecraft Forge (scala-reflect)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-reflect-2.11.1.jar.pack.xz</URL>
<MD5>84e5dc81c10e2bd74c579c9d0332fdd9</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-swing" name="Minecraft Forge (scala-swing)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-swing_2.11-1.0.1.jar</URL>
<MD5>1d360289e697022a3f57abaad344b28f</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-xml" name="Minecraft Forge (scala-xml)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/scala-xml_2.11-1.0.2.jar.pack.xz</URL>
<MD5>cc891b094a4c32dedc56bfefe9b072ff</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="akka-actor" name="Minecraft Forge (akka-actor)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/akka-actor_2.11-2.3.3.jar.pack.xz</URL>
<MD5>25cb22c3078e9fb3f7a861c912924862</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="typesafe-config" name="Minecraft Forge (typesafe-config)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/config-1.2.1.jar.pack.xz</URL>
<MD5>10ec4ccabc4e68aac9cf87165ead5d7d</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="lzma" name="Mojang (LZMA)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/lzma-0.0.1.jar</URL>
<MD5>a3e3c3186e41c4a1a3027ba2bb23cdc6</MD5>
<Required>true</Required>
<ModType order="6">Library</ModType>
</Submodule>
<Submodule id="trove4j" name="Trove4J 3.0.3">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/trove4j-3.0.3.jar</URL>
<MD5>8fc4d4e0129244f9fd39650c5f30feb2</MD5>
<Required>true</Required>
<ModType order="7">Library</ModType>
</Submodule>
<Submodule id="vecmath" name="Vecmath 1.5.2">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/vecmath-1.5.2.jar</URL>
<MD5>e5d2b7f46c4800a32f62ce75676a5710</MD5>
<Required>true</Required>
<ModType order="8">Library</ModType>
</Submodule>
<Submodule id="jopt-simple" name="Jopt-simple 4.6">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/jopt-simple-4.6.jar</URL>
<MD5>13560a58a79b46b82057686543e8d727</MD5>
<Required>true</Required>
<ModType order="9">Library</ModType>
</Submodule>
<Submodule id="MercuriusUpdater" name="MercuriusUpdater 1.11.2">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.11.2/MercuriusUpdater-1.11.2.jar</URL>
<MD5>13560a58a79b46b82057686543e8d727</MD5>
<Required>true</Required>
<ModType order="10">Library</ModType>
</Submodule>
</Module>
<Module name="WesterosBlocks (3.1.0-alpha-2-134)" id="WesterosBlocks">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/WesterosBlocks.jar</URL>
<Required>true</Required>
<ModType>Regular</ModType>
<MD5>263cc5fb775763c811b02cef441b1471</MD5>
</Module>
<Module name="OptiFine (1.11.2_HD_U_C7)" id="OptiFine">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/OptiFine.jar</URL>
<Required>true</Required>
<ModType>Regular</ModType>
<MD5>0dd7761e908f9b245bb0dc0fac5649f5</MD5>
</Module>
<Module name="JustEnoughItems (1.11.2-4.5.1.296)" id="JustEnoughItems">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/jei.jar</URL>
<Required>true</Required>
<ModType>Regular</ModType>
<MD5>584b3099d34c9a1b8649385b90831b34</MD5>
</Module>
<Module name="Waila (1.7.1_1.11.2)" id="Waila">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/Waila.jar</URL>
<Required isDefault="false">false</Required>
<ModType>Regular</ModType>
<MD5>26258a3557bf333e8f4ce8b1e9481031</MD5>
</Module>
<Module name="WorldEditCUI (v2.1.2-mf-1.11.2-13.20.0.2228)" id="worldeditcuife">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/worldeditcuife.jar</URL>
<Required isDefault="true">false</Required>
<ModType>Regular</ModType>
<MD5>53f6eef360af5329d9e52b5351657908</MD5>
</Module>
<Module id="journeymap" name="JourneyMap (1.11.2-5.5.2)">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/journeymap.jar</URL>
<Required isDefault="true">false</Required>
<ModType>Regular</ModType>
<MD5>4315e9939bf64bfa963c8674cb13e838</MD5>
</Module>
<Module id="BetterFoliage" name="BetterFoliage (1.11.2-2.1.10)">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/BetterFoliage.jar</URL>
<Required isDefault="true">false</Required>
<ModType>Regular</ModType>
<MD5>522fdf73b6e4343cb6243872fb7b4b6c</MD5>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/config/betterfoliage.cfg</URL>
<Path>/config/betterfoliage.cfg</Path>
<MD5>6dd38f873c4129af05a2d6c500cbe954</MD5>
</ConfigFile>
</Module>
<Module id="DynamicSurroundings" name="DynamicSurroundings (1.11.2-3.4.9.3)">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/mods/DynamicSurroundings.jar</URL>
<Required isDefault="true">false</Required>
<ModType>Regular</ModType>
<MD5>65403c66d8b3655b372f58047941d206</MD5>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/config/dsurround/dsurround.cfg</URL>
<Path>/config/dsurround/dsurround.cfg</Path>
<MD5>4c64fc6cbbb83b18012ed4820b0b496e</MD5>
</ConfigFile>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/config/dsurround/westeros.json</URL>
<Path>/config/dsurround/westeros.json</Path>
<MD5>44eab112ff24d0bd29974c270de868ba</MD5>
</ConfigFile>
</Module>
<Module id="WesterosCraftRP" name="WesterosCraft Resource Pack (2018-03-10)">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/resourcepacks/WesterosCraft.zip</URL>
<Required>true</Required>
<ModType>Regular</ModType>
<ModPath>/resourcepacks/WesterosCraft.zip</ModPath>
<MD5>ecb7ea884ab99a629e123d2c1ebe4467</MD5>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/files/options-1.11.2.txt</URL>
<Path>/options.txt</Path>
<NoOverwrite>true</NoOverwrite>
</ConfigFile>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.11.2/servers.dat</URL>
<Path>/servers.dat</Path>
<MD5>594de6063df993b5fde31c7290226ee4</MD5>
</ConfigFile>
</Module>
</Server>
<Server id="WesterosCraftTest-1.12.2" name="WesterosCraft Test Client (1.12.2)" newsUrl="http://www.westeroscraft.com/home/" iconUrl="http://mc.westeroscraft.com/WesterosCraftLauncher/files/server-test.png"
revision="4.0.1" serverAddress="mc.westeroscraft.com:4445" generateList="false" version="1.12.2" autoConnect="true" mainClass="net.minecraft.launchwrapper.Launch"
libOverrides="com.google.guava:guava:21.0 org.apache.commons:commons-lang3:3.5">
<Module id="forge" name="Minecraft Forge 14.23.2.2618">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/forge-1.12.2-14.23.2.2651-universal.jar</URL>
<Required>true</Required>
<ModType order="1" jreArgs="-Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true" launchArgs="--tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge">Library</ModType>
<MD5>42d3aec7cdd6e4e49b4ff77a1db7c3a9</MD5>
<Submodule id="launchwrapper" name="Mojang (LaunchWrapper)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/launchwrapper-1.12.jar</URL>
<MD5>934b2d91c7c5be4a49577c9e6b40e8da</MD5>
<Required>true</Required>
<ModType order="2">Library</ModType>
</Submodule>
<Submodule id="asm" name="Mojang (ASM)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/asm-all-5.2.jar</URL>
<MD5>f5ad16c7f0338b541978b0430d51dc83</MD5>
<Required>true</Required>
<ModType order="3">Library</ModType>
</Submodule>
<Submodule id="jline" name="Mojang (jline)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/jline-2.13.jar</URL>
<MD5>f251ba666cccb260ff7215b2cbeee8d4</MD5>
<Required>true</Required>
<ModType order="3">Library</ModType>
</Submodule>
<Submodule id="scala-lib" name="Minecraft Forge (scala-library)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-library-2.11.1.jar.pack.xz</URL>
<MD5>379c15c4f724421c6d5d7aecedaf87a6</MD5>
<Required>true</Required>
<ModType order="4">Library</ModType>
</Submodule>
<Submodule id="scala-compiler" name="Minecraft Forge (scala-compiler)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-compiler-2.11.1.jar.pack.xz</URL>
<MD5>7d89e952f2d5c74577310cd2c28e3f20</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-actors-migration" name="Minecraft Forge (scala-actors-migration)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-actors-migration_2.11-1.1.0.jar.pack.xz</URL>
<MD5>04e3428b2600ace33c7ae2bf1f6c0a4c</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-continuations-library" name="Minecraft Forge (scala-continuations-library)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-continuations-library_2.11-1.0.2.jar.pack.xz</URL>
<MD5>ed9b1d27aba8ac4090a3749c4dfc895a</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-continuations-plugin" name="Minecraft Forge (scala-continuations-plugin)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-continuations-plugin_2.11.1-1.0.2.jar.pack.xz</URL>
<MD5>a8232db22a72a981de6b1399eb86dff7</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-parser-combinators" name="Minecraft Forge (scala-parser-combinators)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-parser-combinators_2.11-1.0.1.jar.pack.xz</URL>
<MD5>2e50a7df17680daadacca69f07f8a16d</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-reflect" name="Minecraft Forge (scala-reflect)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-reflect-2.11.1.jar.pack.xz</URL>
<MD5>84e5dc81c10e2bd74c579c9d0332fdd9</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-swing" name="Minecraft Forge (scala-swing)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-swing_2.11-1.0.1.jar</URL>
<MD5>1d360289e697022a3f57abaad344b28f</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="scala-xml" name="Minecraft Forge (scala-xml)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-xml_2.11-1.0.2.jar.pack.xz</URL>
<MD5>cc891b094a4c32dedc56bfefe9b072ff</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="akka-actor" name="Minecraft Forge (akka-actor)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/akka-actor_2.11-2.3.3.jar.pack.xz</URL>
<MD5>25cb22c3078e9fb3f7a861c912924862</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="typesafe-config" name="Minecraft Forge (typesafe-config)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/config-1.2.1.jar.pack.xz</URL>
<MD5>10ec4ccabc4e68aac9cf87165ead5d7d</MD5>
<Required>true</Required>
<ModType order="5">Library</ModType>
</Submodule>
<Submodule id="lzma" name="Mojang (LZMA)">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/lzma-0.0.1.jar</URL>
<MD5>a3e3c3186e41c4a1a3027ba2bb23cdc6</MD5>
<Required>true</Required>
<ModType order="6">Library</ModType>
</Submodule>
<Submodule id="trove4j" name="Trove4J 3.0.3">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/trove4j-3.0.3.jar</URL>
<MD5>8fc4d4e0129244f9fd39650c5f30feb2</MD5>
<Required>true</Required>
<ModType order="7">Library</ModType>
</Submodule>
<Submodule id="vecmath" name="Vecmath 1.5.2">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/vecmath-1.5.2.jar</URL>
<MD5>e5d2b7f46c4800a32f62ce75676a5710</MD5>
<Required>true</Required>
<ModType order="8">Library</ModType>
</Submodule>
<Submodule id="jopt-simple" name="Jopt-simple 5.0.3">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/jopt-simple-5.0.3.jar</URL>
<MD5>0a5ec84e23df9d7cfb4063bc55f2744c</MD5>
<Required>true</Required>
<ModType order="9">Library</ModType>
</Submodule>
<Submodule id="MercuriusUpdater" name="MercuriusUpdater 1.12.2">
<URL priority="0">http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/MercuriusUpdater-1.12.1.jar</URL>
<MD5>5580745b0620323f7d3ccbac6fd310d5</MD5>
<Required>true</Required>
<ModType order="10">Library</ModType>
</Submodule>
</Module>
<Module name="WesterosBlocks (3.1.0-alpha-2-4)" id="WesterosBlocks">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/mods/WesterosBlocks.jar</URL>
<Required>true</Required>
<ModType>Regular</ModType>
<MD5>d7821ea6ee4ba3d4e620bbb95109f1da</MD5>
</Module>
<Module name="OptiFine (1.12.2_HD_U_D1)" id="OptiFine">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/mods/OptiFine.jar</URL>
<Required>true</Required>
<ModType>Regular</ModType>
<MD5>4bfc1c95dde8ec08568e01bfaa61e7c5</MD5>
</Module>
<Module name="JustEnoughItems (1.12.2-4.8.5.151)" id="JustEnoughItems">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/mods/jei.jar</URL>
<Required>true</Required>
<ModType>Regular</ModType>
<MD5>7194b7b1f1ea6ad20013c596319db5b0</MD5>
</Module>
<Module name="WorldEditCUI (v2.1.2-mf-1.12.2-14.23.0.2487)" id="worldeditcuife">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/mods/worldeditcuife.jar</URL>
<Required isDefault="true">false</Required>
<ModType>Regular</ModType>
<MD5>44b1b1031c25f04955bfd7ed734bd467</MD5>
</Module>
<Module id="journeymap" name="JourneyMap (1.12.2-5.5.2)">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/mods/journeymap.jar</URL>
<Required isDefault="true">false</Required>
<ModType>Regular</ModType>
<MD5>b743562dac1b5334c20ac87b54c0b518</MD5>
</Module>
<Module id="BetterFoliage" name="BetterFoliage (1.12-2.1.10)">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/mods/BetterFoliage.jar</URL>
<Required isDefault="true">false</Required>
<ModType>Regular</ModType>
<MD5>06714eb2c13f59df5e3c92cec7370e11</MD5>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/config/betterfoliage.cfg</URL>
<Path>/config/betterfoliage.cfg</Path>
<MD5>6dd38f873c4129af05a2d6c500cbe954</MD5>
</ConfigFile>
</Module>
<Module id="DynamicSurroundings" name="DynamicSurroundings (1.12.2-3.4.9.3)">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/mods/DynamicSurroundings.jar</URL>
<Required isDefault="true">false</Required>
<ModType>Regular</ModType>
<MD5>115baf8e5f4e7d9757a2a85fb3507789</MD5>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/config/dsurround/dsurround.cfg</URL>
<Path>/config/dsurround/dsurround.cfg</Path>
<MD5>4c64fc6cbbb83b18012ed4820b0b496e</MD5>
</ConfigFile>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/config/dsurround/westeros.json</URL>
<Path>/config/dsurround/westeros.json</Path>
<MD5>44eab112ff24d0bd29974c270de868ba</MD5>
</ConfigFile>
</Module>
<Module id="WesterosCraftRP" name="WesterosCraft Resource Pack (2018-04-03)">
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/resourcepacks/WesterosCraft.zip</URL>
<Required>true</Required>
<ModType>Regular</ModType>
<ModPath>/resourcepacks/WesterosCraft.zip</ModPath>
<MD5>2a3f5e68e9e27e037675d9ed56c73e50</MD5>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/files/options-1.12.2.txt</URL>
<Path>/options.txt</Path>
<NoOverwrite>true</NoOverwrite>
</ConfigFile>
<ConfigFile>
<URL>http://mc.westeroscraft.com/WesterosCraftLauncher/test-1.12.2/servers.dat</URL>
<Path>/servers.dat</Path>
<MD5>64dc1db90935997f07dfac422206f1de</MD5>
</ConfigFile>
</Module>
</Server>
</ServerPack>

View File

@ -19,20 +19,8 @@
<div id="mediaContent"> <div id="mediaContent">
<div id="internalMedia"> <div id="internalMedia">
<div class="mediaContainer"> <div class="mediaContainer">
<svg id="newsSVG" class="mediaSVG" viewBox="18 14 106.36 104.43"> <svg id="settingsSVG" class="mediaSVG" viewBox="0 0 141.36 137.43">
<defs> <path d="M70.70475616319865,83.36934004916053 a15.320781354859122,15.320781354859122 0 1 1 14.454501310561755,-15.296030496450625 A14.850515045097694,14.850515045097694 0 0 1 70.70475616319865,83.36934004916053 M123.25082856443602,55.425620905968366 h-12.375429204248078 A45.54157947163293,45.54157947163293 0 0 0 107.21227231573047,46.243052436416285 l8.613298726156664,-9.108315894326587 a9.727087354538993,9.727087354538993 0 0 0 0,-13.167456673319956 l-3.465120177189462,-3.6631270444574313 a8.489544434114185,8.489544434114185 0 0 0 -12.375429204248078,0 l-8.613298726156664,9.108315894326587 A40.442902639482725,40.442902639482725 0 0 0 81.99114759747292,25.427580514871032 V12.532383284044531 a9.108315894326587,9.108315894326587 0 0 0 -8.811305593424633,-9.306322761594556 h-4.950171681699231 a9.108315894326587,9.108315894326587 0 0 0 -8.811305593424633,9.306322761594556 v12.895197230826497 a40.17064319698927,40.17064319698927 0 0 0 -9.331073620003052,4.0591407789933704 l-8.613298726156664,-9.108315894326587 a8.489544434114185,8.489544434114185 0 0 0 -12.375429204248078,0 L25.58394128451018,23.967279868769744 a9.727087354538993,9.727087354538993 0 0 0 0,13.167456673319956 L34.19724001066683,46.243052436416285 a45.07131316187151,45.07131316187151 0 0 0 -3.6631270444574313,9.083565035918088 h-12.375429204248078 a9.083565035918088,9.083565035918088 0 0 0 -8.811305593424633,9.306322761594556 v5.197680265784193 a9.108315894326587,9.108315894326587 0 0 0 8.811305593424633,9.306322761594556 h11.979415469712139 a45.69008462208391,45.69008462208391 0 0 0 4.0591407789933704,10.642869115653347 l-8.613298726156664,9.108315894326587 a9.727087354538993,9.727087354538993 0 0 0 0,13.167456673319956 l3.465120177189462,3.6631270444574313 a8.489544434114185,8.489544434114185 0 0 0 12.375429204248078,0 l8.613298726156664,-9.108315894326587 a40.49240435629971,40.49240435629971 0 0 0 9.331073620003052,4.0591407789933704 v12.895197230826497 a9.083565035918088,9.083565035918088 0 0 0 8.811305593424633,9.306322761594556 h4.950171681699231 A9.083565035918088,9.083565035918088 0 0 0 81.99114759747292,123.68848839660077 V110.79329116577425 a40.78941465720167,40.78941465720167 0 0 0 9.331073620003052,-4.0591407789933704 l8.613298726156664,9.108315894326587 a8.489544434114185,8.489544434114185 0 0 0 12.375429204248078,0 l3.465120177189462,-3.6631270444574313 a9.727087354538993,9.727087354538993 0 0 0 0,-13.167456673319956 l-8.613298726156664,-9.108315894326587 a45.665333763675406,45.665333763675406 0 0 0 4.034389920584874,-10.642869115653347 h12.004166328120636 a9.108315894326587,9.108315894326587 0 0 0 8.811305593424633,-9.306322761594556 v-5.197680265784193 a9.083565035918088,9.083565035918088 0 0 0 -8.811305593424633,-9.306322761594556 " id="svg_3" class=""/>
<style>.cls-2,.cls-3{fill:none;stroke-miterlimit:10;stroke-width:6px;}</style>
</defs>
<path class="cls-2" d="M115.36,113.8H27.18a6.67,6.67,0,0,1-6.67-6.67V19.27H108.2V107.1a6.71,6.71,0,0,0,6.71,6.7h0a6.71,6.71,0,0,0,6.71-6.71v-75H108.15"/>
<line class="cls-3" x1="73.75" y1="36.18" x2="97.14" y2="36.18"/>
<g>
<rect class="cls-1" x="31.77" y="32.96" width="33.79" height="20.76"/>
<line class="cls-3" x1="73.75" y1="50.22" x2="97.14" y2="50.22"/>
<line class="cls-3" x1="31.66" y1="64.25" x2="97.14" y2="64.25"/>
<line class="cls-3" x1="31.66" y1="78.28" x2="97.14" y2="78.28"/>
<line class="cls-3" x1="31.66" y1="92.31" x2="97.14" y2="92.31"/>
<line class="cls-3" x1="31.66" y1="92.31" x2="97.14" y2="92.31"/>
</g>
</svg> </svg>
</div> </div>
</div> </div>
@ -117,15 +105,15 @@
<div id="center"> <div id="center">
<div class="bot_wrapper"> <div class="bot_wrapper">
<div id="content"> <div id="content">
<button id="menu_button"> <button id="newsButton">
<!--<img src="assets/images/icons/arrow.svg" id="menu_img"/>--> <!--<img src="assets/images/icons/arrow.svg" id="newsButtonSVG"/>-->
<svg id="menu_img" viewBox="0 0 24.87 13.97"> <svg id="newsButtonSVG" viewBox="0 0 24.87 13.97">
<defs> <defs>
<style>.arrowLine{fill:none;stroke:#FFF;stroke-width:2px;}</style> <style>.arrowLine{fill:none;stroke:#FFF;stroke-width:2px;}</style>
</defs> </defs>
<polyline class="arrowLine" points="0.71 13.26 12.56 1.41 24.16 13.02"/> <polyline class="arrowLine" points="0.71 13.26 12.56 1.41 24.16 13.02"/>
</svg> </svg>
&#10;<span id="menu_text">MENU</span> &#10;<span id="newsButtonText">NEWS</span>
</button> </button>
</div> </div>
</div> </div>
@ -150,5 +138,63 @@
</div> </div>
</div> </div>
</div> </div>
<div id="newsContainer">
<div id="newsContent" article="-1" style="display: none;">
<div id="newsStatusContainer">
<div id="newsStatusContent">
<div id="newsTitleContainer">
<a id="newsArticleTitle" href="#">Lorem Ipsum</a>
</div>
<div id="newsMetaContainer">
<div id="newsArticleDateWrapper">
<span id="newsArticleDate">Mar 15, 44 BC, 9:14 AM</span>
</div>
<div id="newsArticleTitleWrapper">
<span id="newsArticleAuthor">by Cicero</span>
</div>
<a href="#" id="newsArticleComments">0 Comments</a>
</div>
</div>
<div id="newsNavigationContainer">
<button id="newsNavigateLeft">
<svg id="newsNavigationLeftSVG" viewBox="0 0 24.87 13.97">
<defs>
<style>.arrowLine{fill:none;stroke:#FFF;stroke-width:2px;transition: 0.25s ease;}</style>
</defs>
<polyline class="arrowLine" points="0.71 13.26 12.56 1.41 24.16 13.02"/>
</svg>
</button>
<span id="newsNavigationStatus">1 of 1</span>
<button id="newsNavigateRight">
<svg id="newsNavigationRightSVG" viewBox="0 0 24.87 13.97">
<defs>
<style>.arrowLine{fill:none;stroke:#FFF;stroke-width:2px;transition: 0.25s ease;}</style>
</defs>
<polyline class="arrowLine" points="0.71 13.26 12.56 1.41 24.16 13.02"/>
</svg>
</button>
</div>
</div>
<div id="newsArticleContainer">
<div id="newsArticleContent">
<div id="newsArticleContentScrollable">
<!-- Article Content -->
</div>
</div>
</div>
</div>
<div id="newsErrorContainer">
<div id="newsErrorLoading">
<span id="nELoadSpan" class="newsErrorContent">Checking for News..</span>
</div>
<div id="newsErrorFailed" style="display: none;">
<span id="nEFailedSpan" class="newsErrorContent">Failed to Load News</span>
<button id="newsErrorRetry">Try Again</button>
</div>
<div id="newsErrorNone" style="display: none;">
<span id="nENoneSpan" class="newsErrorContent">No News</span>
</div>
</div>
</div>
<script src="./assets/js/scripts/landing.js"></script> <script src="./assets/js/scripts/landing.js"></script>
</div> </div>

140
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "westeroscraftlauncher", "name": "westeroscraftlauncher",
"version": "0.0.1", "version": "0.0.1-dev",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -37,9 +37,9 @@
"optional": true "optional": true
}, },
"@types/node": { "@types/node": {
"version": "8.10.10", "version": "8.10.11",
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.11.tgz",
"integrity": "sha512-p3W/hFzQs76RlYRIZsZc5a9bht6m0TspmWYYbKhRswmLnwj9fsE40EbuGifeu/XWR/c0UJQ1DDbvTxIsm/OOAA==", "integrity": "sha512-FM7tvbjbn2BUzM/Qsdk9LUGq3zeh7li8NcHoS398dBzqLzfmSqSP1+yKbMRTCcZzLcu2JAR5lq3IKIEYkto7iQ==",
"dev": true "dev": true
}, },
"adm-zip": { "adm-zip": {
@ -59,9 +59,9 @@
} }
}, },
"ajv-keywords": { "ajv-keywords": {
"version": "3.1.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
"integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=", "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
"dev": true "dev": true
}, },
"ansi-align": { "ansi-align": {
@ -353,29 +353,48 @@
"concat-map": "0.0.1" "concat-map": "0.0.1"
} }
}, },
"buffer-alloc": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.1.0.tgz",
"integrity": "sha1-BVFNM78WVtNUDGhPZbEgLpDsowM=",
"requires": {
"buffer-alloc-unsafe": "^0.1.0",
"buffer-fill": "^0.1.0"
}
},
"buffer-alloc-unsafe": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-0.1.1.tgz",
"integrity": "sha1-/+H2dVHdBVc33iUzN7/oU9+rGmo="
},
"buffer-fill": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-0.1.1.tgz",
"integrity": "sha512-YgBMBzdRLEfgxJIGu2wrvI2E03tMCFU1p7d1KhB4BOoMN0VxmTFjSyN5JtKt9z8Z9JajMHruI6SE25W96wNv7Q=="
},
"buffer-from": { "buffer-from": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz",
"integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==" "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA=="
}, },
"builder-util": { "builder-util": {
"version": "5.7.9", "version": "5.7.10",
"resolved": "https://registry.npmjs.org/builder-util/-/builder-util-5.7.9.tgz", "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-5.7.10.tgz",
"integrity": "sha512-b6sSGrJoDmLhn/fblZ7qkSEB7fr26sz5aLc/Oh/jwWHHT2vwRw8reRxhXQJPmTWRAW4QIGxEpTMGJKGXGJQ0xg==", "integrity": "sha512-vod4bl9Y+uuXhG5puvi7ike9JhF5/eTyc11WjhsVycVTYWAyxQlJqW1EaOtu34N+e1/AHPhA8XA3QI/Zskfpag==",
"dev": true, "dev": true,
"requires": { "requires": {
"7zip-bin": "~3.1.0", "7zip-bin": "~3.1.0",
"app-builder-bin": "1.8.6", "app-builder-bin": "1.8.6",
"bluebird-lst": "^1.0.5", "bluebird-lst": "^1.0.5",
"builder-util-runtime": "^4.2.0", "builder-util-runtime": "^4.2.0",
"chalk": "^2.3.2", "chalk": "^2.4.1",
"debug": "^3.1.0", "debug": "^3.1.0",
"fs-extra-p": "^4.5.2", "fs-extra-p": "^4.5.2",
"is-ci": "^1.1.0", "is-ci": "^1.1.0",
"js-yaml": "^3.11.0", "js-yaml": "^3.11.0",
"lazy-val": "^1.0.3", "lazy-val": "^1.0.3",
"semver": "^5.5.0", "semver": "^5.5.0",
"source-map-support": "^0.5.4", "source-map-support": "^0.5.5",
"stat-mode": "^0.2.2", "stat-mode": "^0.2.2",
"temp-file": "^3.1.1" "temp-file": "^3.1.1"
}, },
@ -707,9 +726,9 @@
"dev": true "dev": true
}, },
"deep-extend": { "deep-extend": {
"version": "0.4.2", "version": "0.5.1",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz",
"integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==",
"dev": true "dev": true
}, },
"delayed-stream": { "delayed-stream": {
@ -904,9 +923,9 @@
} }
}, },
"electron": { "electron": {
"version": "1.8.5", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/electron/-/electron-1.8.5.tgz", "resolved": "https://registry.npmjs.org/electron/-/electron-2.0.0.tgz",
"integrity": "sha512-jr78O8kIfpMUHKdiSYOvbGieqTnOHDw6y5cnhdFnJsAJNE400X8hUXolCjuVRd5w6ggA09R4pRmEcLAbCYETLQ==", "integrity": "sha512-FCcVzHgoBmNTPUEhKN7yUxjluCRNAQsHNOfdtFEWKL3DPYEdLdyQW8CpmJEMqIXha5qZ+qdKVAtwvvuJs+b/PQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/node": "^8.0.24", "@types/node": "^8.0.24",
@ -915,17 +934,17 @@
} }
}, },
"electron-builder": { "electron-builder": {
"version": "20.10.0", "version": "20.11.1",
"resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.10.0.tgz", "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.11.1.tgz",
"integrity": "sha512-ztYBByCSNPvYbRVO7FLgct4G/9VLExVIVpOJKShd53j6YB6VxiNhRdx0JlALFzMoTegOz4TgSYhoe1vLQlOoTQ==", "integrity": "sha512-pVaPw2L1j3v+oB5r9yJ1Smj1jWhwec9+c/gRwyDNmskMHJYpE+EkQgPe52NiMsP/A7xxQFPgcTD1lXgJFnb0Zg==",
"dev": true, "dev": true,
"requires": { "requires": {
"bluebird-lst": "^1.0.5", "bluebird-lst": "^1.0.5",
"builder-util": "5.7.9", "builder-util": "5.7.10",
"builder-util-runtime": "4.2.0", "builder-util-runtime": "4.2.0",
"chalk": "^2.3.2", "chalk": "^2.4.1",
"dmg-builder": "4.1.5", "dmg-builder": "4.1.5",
"electron-builder-lib": "20.10.0", "electron-builder-lib": "20.11.1",
"electron-download-tf": "4.3.4", "electron-download-tf": "4.3.4",
"fs-extra-p": "^4.5.2", "fs-extra-p": "^4.5.2",
"is-ci": "^1.1.0", "is-ci": "^1.1.0",
@ -1011,22 +1030,22 @@
} }
}, },
"electron-builder-lib": { "electron-builder-lib": {
"version": "20.10.0", "version": "20.11.1",
"resolved": "https://registry.npmjs.org/electron-builder-lib/-/electron-builder-lib-20.10.0.tgz", "resolved": "https://registry.npmjs.org/electron-builder-lib/-/electron-builder-lib-20.11.1.tgz",
"integrity": "sha512-Q5toPbuJmkoLBlqdT+fJOrzUtX/JbI31wl3GxMCy5fcKdc6I12YMryY7cI9LTIlTaSV/bBOqNAduzSxjMk975g==", "integrity": "sha512-sK0Fdvrsqmx4UtCG58sA6udYWGY8aVAbSGlVOzzJE2A+rQZBb+gMOttnF6dyrNCy5Vw6eBkPWS80eIJXMF40pQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"7zip-bin": "~3.1.0", "7zip-bin": "~3.1.0",
"app-builder-bin": "1.8.6", "app-builder-bin": "1.8.6",
"async-exit-hook": "^2.0.1", "async-exit-hook": "^2.0.1",
"bluebird-lst": "^1.0.5", "bluebird-lst": "^1.0.5",
"builder-util": "5.7.9", "builder-util": "5.7.10",
"builder-util-runtime": "4.2.0", "builder-util-runtime": "4.2.0",
"chromium-pickle-js": "^0.2.0", "chromium-pickle-js": "^0.2.0",
"debug": "^3.1.0", "debug": "^3.1.0",
"ejs": "^2.5.9", "ejs": "^2.5.9",
"electron-osx-sign": "0.4.10", "electron-osx-sign": "0.4.10",
"electron-publish": "20.9.0", "electron-publish": "20.11.0",
"fs-extra-p": "^4.5.2", "fs-extra-p": "^4.5.2",
"hosted-git-info": "^2.6.0", "hosted-git-info": "^2.6.0",
"is-ci": "^1.1.0", "is-ci": "^1.1.0",
@ -1050,6 +1069,21 @@
"requires": { "requires": {
"ms": "2.0.0" "ms": "2.0.0"
} }
},
"electron-publish": {
"version": "20.11.0",
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.11.0.tgz",
"integrity": "sha512-oq8VcXJ1FSgxX4Z13oOutvj0TKbRCtqkpzOYlB2jU+wnfqaK2sYoz2zI1px6IjsX4LQ7m5Fa9POVmKndnCE5lw==",
"dev": true,
"requires": {
"bluebird-lst": "^1.0.5",
"builder-util": "^5.7.10",
"builder-util-runtime": "^4.2.0",
"chalk": "^2.4.1",
"fs-extra-p": "^4.5.2",
"lazy-val": "^1.0.3",
"mime": "^2.3.1"
}
} }
} }
}, },
@ -1271,6 +1305,11 @@
"mime-types": "^2.1.12" "mime-types": "^2.1.12"
} }
}, },
"fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
},
"fs-extra": { "fs-extra": {
"version": "0.30.0", "version": "0.30.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
@ -2200,12 +2239,12 @@
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
}, },
"rc": { "rc": {
"version": "1.2.6", "version": "1.2.7",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.6.tgz", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz",
"integrity": "sha1-6xiYnG1PTxYsOZ953dKfODVWgJI=", "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==",
"dev": true, "dev": true,
"requires": { "requires": {
"deep-extend": "~0.4.0", "deep-extend": "^0.5.1",
"ini": "~1.3.0", "ini": "~1.3.0",
"minimist": "^1.2.0", "minimist": "^1.2.0",
"strip-json-comments": "~2.0.1" "strip-json-comments": "~2.0.1"
@ -2609,39 +2648,27 @@
} }
}, },
"tar-fs": { "tar-fs": {
"version": "1.16.0", "version": "1.16.2",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.2.tgz",
"integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==", "integrity": "sha512-LdknWjPEiZC1nOBwhv0JBzfJBGPJar08dZg2rwZe0ZTLQoRGEzgrl7vF3qUEkCHpI/wN9e7RyCuDhMsJUCLPPQ==",
"requires": { "requires": {
"chownr": "^1.0.1", "chownr": "^1.0.1",
"mkdirp": "^0.5.1", "mkdirp": "^0.5.1",
"pump": "^1.0.0", "pump": "^1.0.0",
"tar-stream": "^1.1.2" "tar-stream": "^1.1.2"
},
"dependencies": {
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
"minimist": "0.0.8"
}
}
} }
}, },
"tar-stream": { "tar-stream": {
"version": "1.5.5", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.0.tgz",
"integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", "integrity": "sha512-lh2iAPG/BHNmN6WB9Ybdynk9rEJ5GD/dy4zscHmVlwa1dq2tpE+BH78i5vjYwYVWEaOXGBjzxr89aVACF17Cpw==",
"requires": { "requires": {
"bl": "^1.0.0", "bl": "^1.0.0",
"buffer-alloc": "^1.1.0",
"end-of-stream": "^1.0.0", "end-of-stream": "^1.0.0",
"fs-constants": "^1.0.0",
"readable-stream": "^2.0.0", "readable-stream": "^2.0.0",
"to-buffer": "^1.1.0",
"xtend": "^4.0.0" "xtend": "^4.0.0"
}, },
"dependencies": { "dependencies": {
@ -2722,6 +2749,11 @@
"integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
"dev": true "dev": true
}, },
"to-buffer": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
"integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg=="
},
"tough-cookie": { "tough-cookie": {
"version": "2.3.4", "version": "2.3.4",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",

View File

@ -39,13 +39,13 @@
"mkdirp": "^0.5.1", "mkdirp": "^0.5.1",
"request": "^2.85.0", "request": "^2.85.0",
"rimraf": "^2.6.2", "rimraf": "^2.6.2",
"tar-fs": "^1.16.0", "tar-fs": "^1.16.2",
"uuid": "^3.2.1", "uuid": "^3.2.1",
"winreg": "^1.2.4" "winreg": "^1.2.4"
}, },
"devDependencies": { "devDependencies": {
"electron": "^1.8.5", "electron": "^2.0.0",
"electron-builder": "^20.10.0" "electron-builder": "^20.11.0"
}, },
"build": { "build": {
"appId": "westeroscraftlauncher", "appId": "westeroscraftlauncher",