From 717e1439f15655245b83c04be1924cf0ee8f2612 Mon Sep 17 00:00:00 2001
From: Loyd Osborne <loyd.osborne@scyted.tv>
Date: Sun, 31 Mar 2024 00:24:47 -0600
Subject: [PATCH] Commit

---
 resources/loyd-minecraft-ps3/index-script.js  | 209 ++++
 resources/loyd-minecraft-ps3/index.md         | 187 ++++
 .../loyd-minecraft-ps3/insert-scripts.js      | 113 +++
 resources/loyd-minecraft-ps3/minecraft.json   | 944 ++++++++++++++++++
 resources/resources.json                      |   6 +
 5 files changed, 1459 insertions(+)
 create mode 100644 resources/loyd-minecraft-ps3/index-script.js
 create mode 100644 resources/loyd-minecraft-ps3/index.md
 create mode 100644 resources/loyd-minecraft-ps3/insert-scripts.js
 create mode 100644 resources/loyd-minecraft-ps3/minecraft.json

diff --git a/resources/loyd-minecraft-ps3/index-script.js b/resources/loyd-minecraft-ps3/index-script.js
new file mode 100644
index 0000000..44b39c3
--- /dev/null
+++ b/resources/loyd-minecraft-ps3/index-script.js
@@ -0,0 +1,209 @@
+const currentURL = window.location.href;
+
+function redirectToDiscord() {
+    const baseURL = window.location.origin; // Extract base URL
+    const AuthUrl = `${baseURL}/oauth/discord/?callbackUrl=${encodeURIComponent(currentURL)}`;
+    window.location.href = AuthUrl;
+}
+
+document.addEventListener("DOMContentLoaded", function () {
+    const storedAccessToken = getCookie("accessToken");
+    displayContents();
+    // Redirect to login if access token is not found
+    if (!storedAccessToken) {
+        // window.location.href = `https://auth.scyted.tv/www.scyted.tv/discord?redirectUri=${currentURL}`;
+        displayLoginButton();
+    } else {
+        // Fetch user data from Discord API
+        fetchDiscordUserData(storedAccessToken)
+            .then(userData => {
+                // Display bot info and user info on the dashboard
+                
+                displayUserInfo(userData);
+
+                const loggedInUserId = userData.id;
+
+                // Fetch the list of user IDs from the JSON file
+                // fetch('https://api.scyted.tv/wave-development/dashboard/access/scytedtv-user-access.json')
+                fetch('https://api.scyted.tv/website/dashboard/access/dashboard-access.json')
+                    .then(response => response.json())
+                    .then(userIds => {
+                        // Check if the logged-in user's ID is in the list
+                        if (!userIds.includes(loggedInUserId)) {
+                            // Clear cookies
+                            // document.cookie = "accessToken=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
+                            // Redirect to the specified page if the user's ID is not in the 
+                            // window.location.href = `https://auth.scyted.tv/www.scyted.tv/discord?error=invalidAccess`;
+                            displayContents();
+                displayUserInfo(userData);
+                        }
+                    })
+                    .catch(error => {
+                        console.error("Error fetching user IDs:", error);
+                        // Handle error
+                    });
+            })
+            .catch(error => {
+                console.error("Error fetching user data:", error);
+                // Clear cookies
+                // document.cookie = "accessToken=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
+                // Handle error (e.g., redirect to login page)
+                // window.location.href = `https://auth.scyted.tv/www.scyted.tv/discord?error=fetchingUserData`;
+            });
+    }
+});
+
+const urlParams = new URLSearchParams(window.location.hash.substring(1));
+const accessToken = urlParams.get("access_token");
+
+if (accessToken) {
+    try {
+        // Check if the access token is valid (add your validation logic here)
+        if (isValidAccessToken(accessToken)) {
+            // Store the access token in a cookie
+            setCookie("accessToken", accessToken, 30); // Set cookie to expire in 30 days
+            // Redirect to the dashboard
+            window.location.href = "./";
+        } else {
+            // Clear the accessToken cookie
+            clearCookie("accessToken");
+        }
+    } catch (error) {
+        console.error("Error setting accessToken:", error);
+    }
+}
+
+function isValidAccessToken(token) {
+    // Add your validation logic here
+    // Return true if the token is valid, otherwise return false
+    return true; // Placeholder, replace with actual validation
+}
+
+function setCookie(name, value, days) {
+    const date = new Date();
+    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
+    const expires = "expires=" + date.toUTCString();
+    document.cookie = name + "=" + value + ";" + expires + ";path=/";
+}
+
+function clearCookie(name) {
+    document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
+}
+
+function fetchDiscordUserData(accessToken) {
+    const apiUrl = 'https://discord.com/api/users/@me';
+
+    return fetch(apiUrl, {
+        headers: {
+            Authorization: `Bearer ${accessToken}`,
+        },
+    })
+        .then(response => {
+            if (!response.ok) {
+                throw new Error(`Discord API Request Failed! Status: ${response.status}`);
+            }
+            return response.json();
+        });
+}
+
+function logout() {
+    // Clear cookies
+    document.cookie = "accessToken=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
+
+    // Redirect to login page
+    window.location.href = `${currentURL}`;
+}
+
+function backButton() {
+    window.location.href = `../`;
+}
+
+function getCookie(name) {
+    const cookies = document.cookie.split("; ");
+    for (let i = 0; i < cookies.length; i++) {
+        const cookie = cookies[i].split("=");
+        if (cookie[0] === name) {
+            return cookie[1];
+        }
+    }
+    return null;
+}
+
+
+
+
+
+
+
+
+
+fetch('https://api.scyted.tv/resources/game-tracking/loyd-minecraft-ps3.json')
+      .then(response => response.json())
+      .then(data => {
+        const achievementsDiv = document.getElementById('achievements');
+        const completedAchievements = [];
+        const incompleteAchievements = [];
+  
+        // Separate completed and incomplete achievements
+        data.achievements.forEach(achievement => {
+          if (achievement.achieved) {
+            completedAchievements.push(achievement);
+          } else {
+            incompleteAchievements.push(achievement);
+          }
+        });
+  
+        // Sort completed achievements by date and time (newest to oldest)
+        completedAchievements.sort((a, b) => {
+          const dateA = new Date(a.date + ' ' + a.time);
+          const dateB = new Date(b.date + ' ' + b.time);
+          return dateB - dateA;
+        });
+  
+        // Concatenate completed achievements with incomplete ones
+        const sortedAchievements = completedAchievements.concat(incompleteAchievements);
+  
+        // Display achievements
+        sortedAchievements.forEach(achievement => {
+          const achievementDiv = document.createElement('div');
+          achievementDiv.classList.add('achievement');
+          if (achievement.achieved) {
+            achievementDiv.classList.add('achievement-unlocked');
+          } else {
+            achievementDiv.classList.add('achievement-locked');
+            achievementDiv.classList.add('incomplete');
+          }
+          const iconClass = achievement.achieved ? 'fas fa-check-circle' : 'far fa-circle';
+          achievementDiv.innerHTML = `
+            <div>
+              <i class="${iconClass}" style="font-size: 24px; color: ${achievement.achieved ? '#4caf50' : '#f44336'};"></i>
+            </div>
+            <div class="achievement-details">
+              <h3>${achievement.name}</h3>
+              <p>${achievement.description}</p>
+              <p class="achievement-status">${achievement.achieved ? 'Achieved' : 'Not achieved'}</p>
+              ${achievement.achieved ? `
+                <div class="achievement-date-time date-time-box">
+                  <i class="far fa-calendar-alt"></i> ${achievement.date} at ${achievement.time}
+                </div>
+              ` : ''}
+              ${achievement.type === 'Progress' ? `
+                <div class="progress-bar">
+                  <div class="progress" style="width: ${calculateProgress(achievement.progress)};"></div>
+                  <div class="progress-text">${achievement.progress}</div>
+                </div>
+              ` : ''}
+            </div>
+            <img src="${achievement.image}" alt="${achievement.name}" class="achievement-image">
+          `;
+          achievementsDiv.appendChild(achievementDiv);
+        });
+      })
+      .catch(error => console.error('Error fetching data:', error));
+  
+    function calculateProgress(progress) {
+      const progressParts = progress.split('/');
+      const current = parseInt(progressParts[0]);
+      const total = parseInt(progressParts[1]);
+      return `${(current / total) * 100}%`;
+    }
\ No newline at end of file
diff --git a/resources/loyd-minecraft-ps3/index.md b/resources/loyd-minecraft-ps3/index.md
new file mode 100644
index 0000000..a614490
--- /dev/null
+++ b/resources/loyd-minecraft-ps3/index.md
@@ -0,0 +1,187 @@
+---
+title: Resource Directory
+layout: page
+type: resources
+---
+<style>
+    hr.has-background-black {
+        display: none;
+    }
+
+    h1.title {
+        display: none;
+    }
+</style>
+<link rel="stylesheet" href="https://api.scyted.tv/wave-development/dashboard/scytedtv-resources.css">
+<link rel="stylesheet" href="https://api.scyted.tv/wave-development/dashboard/mobile-lock.css">
+<body>
+
+<!-- <div class="mobile-error">
+  <div id="error-message" style="color: red;">
+    ScytedTV Resources isn't currently available to mobile users at this time.
+  </div>
+</div> -->
+
+<div class="banner">
+    <img src="https://cdn.scyted.tv/website-assets/resource-portal/banner.jpg" alt="Banner Image" class="banner-image">
+  </div>
+
+<div class="resource-container">
+  
+  <div class="resource-wrapper">
+  
+  <div class="resource-back" onclick="backButton()"><p>← back</p></div>
+
+  <div class="resource-info-box">
+    <img src="https://cdn.scyted.tv/website-assets/resource-portal/logos/loyd-minecraft-ps3.jpg" alt="Resource Image" class="resource-image">
+    <h3>Minecraft PS3 Achievements</h3>
+    Loyd's Minecraft PS3 achievement tracking.<br>
+  </div>
+  
+  </div>
+  
+<div class="resource-box">
+
+  <div id="login-container" class="login-container">
+  </div>
+
+  <style>
+    .user-info-box {
+        flex: 1;
+        padding: 20px;
+        background-color: #fff;
+        border-radius: 8px;
+        margin-top: 10px;
+        text-align: left;
+    }
+    </style>
+  <style>
+  .achievements-container body {
+    font-family: Arial, sans-serif;
+    background-color: #f2f2f2;
+    color: #333;
+    margin: 0;
+    padding: 0;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    min-height: 100vh;
+  }
+  .achievements-container .container  {
+    max-width: 800px;
+    width: 100%;
+    padding: 20px;
+    background-color: #fff;
+    border-radius: 10px;
+    box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
+    overflow-y: auto;
+  }
+  .achievements-container h1 {
+    font-size: 24px;
+    text-align: center;
+    margin-bottom: 20px;
+    color: #333;
+  }
+  .achievements-container .achievement {
+    border-bottom: 1px solid #ddd;
+    padding: 20px;
+    display: flex;
+    align-items: center;
+  }
+  .achievements-container .achievement:last-child {
+    border-bottom: none;
+  }
+  .achievements-container .achievement h3 {
+    margin: 0;
+    font-size: 18px;
+    color: #333;
+    margin-left: 15px;
+  }
+  .achievements-container .achievement p {
+    margin: 5px 0;
+    font-size: 14px;
+    color: #666;
+    margin-left: 15px;
+  }
+  .achievements-container .achievement-details {
+    flex-grow: 1;
+    margin-right: 20px;
+  }
+  .achievements-container .achievement-status {
+    font-size: 16px;
+    font-weight: bold;
+    color: #4caf50;
+    margin-left: 15px;
+  }
+  .achievements-container .achievement-status.incomplete {
+    color: #f44336;
+  }
+  .achievements-container .achievement-date-time {
+    font-size: 14px;
+    color: #888;
+    margin-left: 15px;
+  }
+  .achievements-container .date-time-box {
+    border: 1px solid #ddd;
+    border-radius: 5px;
+    padding: 5px 10px;
+    display: inline-block;
+  }
+  .achievements-container .progress-bar {
+    width: calc(100% - 55px);
+    height: 20px;
+    background-color: #f2f2f2;
+    border-radius: 10px;
+    margin-top: 5px;
+    overflow: hidden;
+    border: 1px solid #ddd;
+    margin-left: 15px;
+    position: relative;
+  }
+  .achievements-container .progress {
+    height: 100%;
+    background-color: #4caf50;
+    border-radius: 10px;
+    transition: width 0.5s ease-in-out;
+  }
+  .achievements-container .incomplete .progress {
+    background-color: #f44336;
+  }
+  .achievements-container .progress-text {
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    font-size: 14px;
+    color: #1a0180; /* Changed to dark gray */
+    z-index: 1;
+  }
+</style>
+<div class="container">
+
+<div class="user-info-box" id="userInfoBox">
+
+<h3>Minecraft PS3 Achievements</h3>
+
+I'm someone who really enjoys collecting achievements and trophies from games. Some games I am attempting to get every acahievement possible. This page specifically targets my progress on the PlayStation 3 version of Minecraft. Below is the entire list of all of my achievements on the game that I update periodically.
+
+<br><br>
+
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
+
+<div class="achievements-container">
+  <div id="achievements"></div>
+</div>
+
+</div>
+</div>
+</div>
+</div>
+
+<script src="https://api.scyted.tv/wave-development/dashboard/page-loading-script.js"></script>
+<script src="index-script.js"></script>
+<script src="insert-scripts.js"></script>
+<script src="https://api.scyted.tv/wave-development/dashboard/mobile-redirect.js"></script>
+<script async src="https://www.googletagmanager.com/gtag/js?id=G-LF3ZTHGQHE"></script>
+
+</body>
\ No newline at end of file
diff --git a/resources/loyd-minecraft-ps3/insert-scripts.js b/resources/loyd-minecraft-ps3/insert-scripts.js
new file mode 100644
index 0000000..1db8e6d
--- /dev/null
+++ b/resources/loyd-minecraft-ps3/insert-scripts.js
@@ -0,0 +1,113 @@
+function displayAccessError() {
+    var fullpageDiv = document.getElementById("insert-content");
+    fullpageDiv.innerHTML = `
+    <div id="error-message" style="color: red;">
+    This resource requires you to login with Discord.
+    </div>
+    `;
+    displayLoginButton();
+}
+
+function displayErrorInvalidAccess() {
+    var fullpageDiv = document.getElementById("insert-content");
+    fullpageDiv.innerHTML = `
+    <div id="error-message" style="color: red;">
+    This Discord account doesn't have access to this resource.
+    </div>
+    `;
+}
+
+function displayLoginButton() {
+    var fullpageDiv = document.getElementById("login-container");
+    fullpageDiv.innerHTML = `
+    <button onclick="redirectToDiscord()" class="discord-button">Login</button>
+    `;
+}
+
+function displayContents() {
+    return true;
+}
+
+function displayUserInfo(userData) {
+
+    var fullpageDiv = document.getElementById("login-container");
+    fullpageDiv.innerHTML = `
+<style>
+.user-info {
+    display: flex;
+    align-items: center;
+    cursor: pointer;
+    justify-content: right;
+}
+
+.profile-picture {
+    width: 30px;
+    height: 30px;
+    border-radius: 50%;
+    margin-right: 10px;
+    justify-content: right;
+}
+
+.user-dropdown {
+    display: none;
+    position: absolute;
+    top: 60px;
+    right: 20px;
+    background-color: #fff;
+    border: 1px solid #ddd;
+    border-radius: 4px;
+    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
+    flex-direction: column;
+    z-index: 1;
+}
+
+.user-dropdown a {
+    color: #333;
+    padding: 10px;
+    text-decoration: none;
+    display: block;
+}
+
+.user-dropdown a:hover {
+    background-color: #ddd;
+}
+
+.user-dropdown.show {
+    display: flex;
+}
+
+.user-dropdown a.logout {
+    color: #ff5252;
+}
+</style>
+<button class="discord-button" id="discord-button">
+<div class="user-info" onclick="toggleUserDropdown()">
+<img src="https://cdn.scyted.tv/website-assets/wave-development/default-discord.png"
+    alt="Profile Picture" class="profile-picture">
+<span>Loading...</span>
+<div class="user-dropdown" id="userDropdown">
+    <a href="#" class="logout" onclick="logout()">Logout</a>
+</div>
+</div>
+</button>
+    `;
+
+    const userDropdown = document.getElementById('userDropdown');
+            const profilePicture = document.querySelector('.profile-picture');
+            const username = document.querySelector('.user-info span');
+
+            // Check if userData.avatar is null
+            if (userData.avatar === null || userData.avatar === "null") {
+                profilePicture.src = "https://cdn.scyted.tv/website-assets/wave-development/default-discord.png";
+            } else {
+                profilePicture.src = `https://cdn.discordapp.com/avatars/${userData.id}/${userData.avatar}.png`;
+            }
+
+            username.textContent = userData.username;
+    return true;
+}
+
+function toggleUserDropdown() {
+    const userDropdown = document.getElementById('userDropdown');
+    userDropdown.classList.toggle('show');
+}
\ No newline at end of file
diff --git a/resources/loyd-minecraft-ps3/minecraft.json b/resources/loyd-minecraft-ps3/minecraft.json
new file mode 100644
index 0000000..36f2b84
--- /dev/null
+++ b/resources/loyd-minecraft-ps3/minecraft.json
@@ -0,0 +1,944 @@
+{
+  "achievements": [
+    {
+      "name": "Awarded all trophies",
+      "description": "All trophies have been awarded.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Progress",
+      "progress": "27/94",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/1M86fee2.png"
+    },
+    {
+      "name": "Taking Inventory",
+      "description": "Open your inventory.",
+      "achieved": true,
+      "date": "July 19, 2019",
+      "time": "10:38 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/2Mf38b90.png"
+    },
+    {
+      "name": "Getting Wood",
+      "description": "Punch a tree until the block of wood pops out.",
+      "achieved": true,
+      "date": "July 19, 2019",
+      "time": "10:40 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/3M5d8df4.png"
+    },
+    {
+      "name": "Benchmarking",
+      "description": "Craft a workbench with four blocks of wooden planks.",
+      "achieved": true,
+      "date": "July 19, 2019",
+      "time": "11:35 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/4M72aa35.png"
+    },
+    {
+      "name": "Time to Mine!",
+      "description": "Use planks and sticks to make a pickaxe.",
+      "achieved": true,
+      "date": "April 21, 2022",
+      "time": "11:26 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/5M4cee27.png"
+    },
+    {
+      "name": "Hot Topic",
+      "description": "Construct a furnace out of eight cobblestone blocks.",
+      "achieved": true,
+      "date": "July 21, 2019",
+      "time": "3:02 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/6M57b954.png"
+    },
+    {
+      "name": "Acquire Hardware",
+      "description": "Smelt an iron ingot.",
+      "achieved": true,
+      "date": "July 21, 2019",
+      "time": "3:08 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/7M316e44.png"
+    },
+    {
+      "name": "Time to Farm!",
+      "description": "Use planks and sticks to make a hoe.",
+      "achieved": true,
+      "date": "July 19, 2019",
+      "time": "11:40 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/8Maf6004.png"
+    },
+    {
+      "name": "Bake Bread",
+      "description": "Turn wheat into bread.",
+      "achieved": true,
+      "date": "July 19, 2019",
+      "time": "11:29 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/9Mdea8ed.png"
+    },
+    {
+      "name": "The Lie",
+      "description": "Bake a cake using wheat, sugar, milk and eggs!",
+      "achieved": true,
+      "date": "July 7, 2023",
+      "time": "9:13 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/10Me4820e.png"
+    },
+    {
+      "name": "Getting an Upgrade",
+      "description": "Construct a better pickaxe.",
+      "achieved": true,
+      "date": "July 19, 2019",
+      "time": "11:06 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/11M3b08d1.png"
+    },
+    {
+      "name": "Delicious Fish",
+      "description": "Catch and cook a fish!",
+      "achieved": true,
+      "date": "March 23, 2024",
+      "time": "6:38 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/12Mfd28b0.png"
+    },
+    {
+      "name": "On A Rail",
+      "description": "Travel by minecart to a point at least 500m in a single direction from where you started.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/13Mcb6140.png"
+    },
+    {
+      "name": "Time to Strike!",
+      "description": "Use planks and sticks to make a sword.",
+      "achieved": true,
+      "date": "July 21, 2019",
+      "time": "3:23 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/14Md92f27.png"
+    },
+    {
+      "name": "Monster Hunter",
+      "description": "Attack and destroy a monster.",
+      "achieved": true,
+      "date": "July 19, 2019",
+      "time": "10:44 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/15M7010d3.png"
+    },
+    {
+      "name": "Cow Tipper",
+      "description": "Harvest some leather.",
+      "achieved": true,
+      "date": "July 19, 2019",
+      "time": "10:50 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/16M33df41.png"
+    },
+    {
+      "name": "When Pigs Fly",
+      "description": "Use a saddle to ride a pig, then have the pig get hurt from fall damage while riding it.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/17M0ba2e9.png"
+    },
+    {
+      "name": "Leader Of The Pack",
+      "description": "Befriend five wolves.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/18M75b67b.png"
+    },
+    {
+      "name": "MOAR Tools",
+      "description": "Construct one type of each tool (one pickaxe, one spade, one axe and one hoe).",
+      "achieved": true,
+      "date": "July 21, 2019",
+      "time": "3:23 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/19M209b79.png"
+    },
+    {
+      "name": "Dispense With This",
+      "description": "Construct a Dispenser.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/20M98573b.png"
+    },
+    {
+      "name": "Into The Nether",
+      "description": "Construct a Nether Portal.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/21M245098.png"
+    },
+    {
+      "name": "Sniper Duel",
+      "description": "Kill a skeleton with an arrow from more than 50 meters.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/22M2acf55.png"
+    },
+    {
+      "name": "DIAMONDS!",
+      "description": "Acquire diamonds with your iron tools.",
+      "achieved": true,
+      "date": "July 21, 2019",
+      "time": "4:03 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/23M891bd9.png"
+    },
+    {
+      "name": "Return to Sender",
+      "description": "Destroy a Ghast with a fireball.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/24M0538ea.png"
+    },
+    {
+      "name": "Into Fire",
+      "description": "Relieve a Blaze of its rod.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/25M0cbbcc.png"
+    },
+    {
+      "name": "Local Brewery",
+      "description": "Brew a potion.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/26M384c05.png"
+    },
+    {
+      "name": "The End?",
+      "description": "Enter an End Portal.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/27M3bb943.png"
+    },
+    {
+      "name": "The End.",
+      "description": "Kill the Enderdragon.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/28Mc96de2.png"
+    },
+    {
+      "name": "Enchanter",
+      "description": "Construct an Enchantment Table.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/29Mc22cab.png"
+    },
+    {
+      "name": "Overkill",
+      "description": "Deal nine hearts of damage in a single hit.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/30Mda166e.png"
+    },
+    {
+      "name": "Librarian",
+      "description": "Build some bookshelves to improve your enchantment table.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/31M57c6e6.png"
+    },
+    {
+      "name": "Adventuring Time",
+      "description": "Discover 17 of 40 biomes.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/32M89e952.png"
+    },
+    {
+      "name": "Repopulation",
+      "description": "Breed two cows with wheat.",
+      "achieved": true,
+      "date": "July 21, 2019",
+      "time": "2:50 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/33Mf0fe96.png"
+    },
+    {
+      "name": "Diamonds to you!",
+      "description": "Throw diamonds at another player.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/34M4ee120.png"
+    },
+    {
+      "name": "Pork Chop",
+      "description": "Cook and eat a pork chop.",
+      "achieved": true,
+      "date": "July 7, 2023",
+      "time": "8:53 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/35M6917e3.png"
+    },
+    {
+      "name": "Passing the Time",
+      "description": "Play for 100 days.",
+      "achieved": true,
+      "date": "July 9, 2023",
+      "time": "7:56 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/36M4fa58f.png"
+    },
+    {
+      "name": "Archer",
+      "description": "Kill a creeper with Arrows.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/37Mfc25dd.png"
+    },
+    {
+      "name": "The Haggler",
+      "description": "Mine or purchase 30 Emeralds.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/38Mb643a3.png"
+    },
+    {
+      "name": "Pot Planter",
+      "description": "Craft and place a Flower Pot.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/39M42ef42.png"
+    },
+    {
+      "name": "It's a Sign!",
+      "description": "Craft and place a Sign.",
+      "achieved": true,
+      "date": "July 20, 2019",
+      "time": "12:13 AM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/40Md3b333.png"
+    },
+    {
+      "name": "Iron Belly",
+      "description": "Stop starvation using Rotten Flesh.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/41M143419.png"
+    },
+    {
+      "name": "Have a Shearful Day",
+      "description": "Use Shears to obtain wool from a Sheep.",
+      "achieved": true,
+      "date": "July 21, 2019",
+      "time": "3:26 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/42Mfc3186.png"
+    },
+    {
+      "name": "Rainbow Collection",
+      "description": "Gather all 16 colours of Wool.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/43M538c9e.png"
+    },
+    {
+      "name": "Stayin' Frosty",
+      "description": "Swim in lava while having the Fire Resistance effect.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/44Mddbf3e.png"
+    },
+    {
+      "name": "Chestful of Cobblestone",
+      "description": "Mine 1,728 Cobblestone and place it in a chest.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/45Mfdc224.png"
+    },
+    {
+      "name": "Renewable Energy",
+      "description": "Smelt Wood Trunks using Charcoal to make more Charcoal.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/46Mfb5a11.png"
+    },
+    {
+      "name": "Music to my Ears",
+      "description": "Play a music disc in a Jukebox.",
+      "achieved": true,
+      "date": "July 23, 2019",
+      "time": "3:01 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/47Md7aa86.png"
+    },
+    {
+      "name": "Body Guard",
+      "description": "Create an Iron Golem.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/48Ma43165.png"
+    },
+    {
+      "name": "Iron Man",
+      "description": "Wear a full suit of Iron Armour.",
+      "achieved": true,
+      "date": "July 21, 2019",
+      "time": "3:21 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/49M555994.png"
+    },
+    {
+      "name": "Zombie Doctor",
+      "description": "Cure a Zombie Villager.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/50Me22bed.png"
+    },
+    {
+      "name": "Lion Tamer",
+      "description": "Tame an Ocelot.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/51M5ff383.png"
+    },
+    {
+      "name": "The Beginning?",
+      "description": "Spawn the Wither.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/52M593119.png"
+    },
+    {
+      "name": "The Beginning.",
+      "description": "Kill the Wither.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/53M9f5457.png"
+    },
+    {
+      "name": "Beaconator",
+      "description": "Create and fully power a Beacon.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/54M6649e9.png"
+    },
+    {
+      "name": "Overpowered",
+      "description": "Eat a Notch Apple.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/55M4279d8.png"
+    },
+    {
+      "name": "Tie Dye Outfit",
+      "description": "Dye all 4 unique pieces of Leather Armor.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/56Ma2b86d.png"
+    },
+    {
+      "name": "Trampoline",
+      "description": "Bounce 30 blocks upward off a Slime Block.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/57M9f62f6.png"
+    },
+    {
+      "name": "The Student...",
+      "description": "Win a public Battle mini game.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/58Mb9a00a.png"
+    },
+    {
+      "name": "...has become the Master",
+      "description": "Win 3 public Battle mini games in a row.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/59M60960e.png"
+    },
+    {
+      "name": "'Tis but a scratch",
+      "description": "Take 100 damage in a round of a public Battle game.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/60M591ca6.png"
+    },
+    {
+      "name": "Cupid",
+      "description": "Kill 2 players in a round of public Battle mini game using a bow and arrow.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/61M435ca5.png"
+    },
+    {
+      "name": "Hunger Pain",
+      "description": "Kill a player while you are starving in a Battle mini game.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/62M0b5200.png"
+    },
+    {
+      "name": "Mine!",
+      "description": "Open every chest in a Battle mini game arena in one round.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/63Mcd8e3e.png"
+    },
+    {
+      "name": "The End... Again...",
+      "description": "Respawn the Enderdragon.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/64Mc12a71.png"
+    },
+    {
+      "name": "You Need a Mint",
+      "description": "Collect Dragon's Breath in a Glass Bottle.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/65Md2bb25.png"
+    },
+    {
+      "name": "Super Sonic",
+      "description": "Use an Elytra to fly through a 1 by 1 gap while moving faster than 40 m/s.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/66M0ebf04.png"
+    },
+    {
+      "name": "Dry Spell",
+      "description": "Dry a Sponge in a Furnace.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/67M639eb6.png"
+    },
+    {
+      "name": "Free Diver",
+      "description": "Stay underwater for 2 minutes.",
+      "achieved": true,
+      "date": "July 21, 2019",
+      "time": "4:21 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/68Mec6e8e.png"
+    },
+    {
+      "name": "Super Fuel",
+      "description": "Power a Furnace with Lava.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/69Mf1cb3d.png"
+    },
+    {
+      "name": "Saddle Up",
+      "description": "Tame a Horse.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/70Ma3360b.png"
+    },
+    {
+      "name": "Taste of Your Own Medicine",
+      "description": "Poison a Witch with a Splash Potion.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/71Ma31644.png"
+    },
+    {
+      "name": "Beam Me Up",
+      "description": "Teleport over 100 meters from a single throw of an Ender Pearl.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/72M3a59a2.png"
+    },
+    {
+      "name": "Map Room",
+      "description": "Place a fully explored Map into an Item Frame.",
+      "achieved": true,
+      "date": "March 23, 2024",
+      "time": "6:36 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/73Mb22116.png"
+    },
+    {
+      "name": "Camouflage",
+      "description": "Kill a Mob while wearing the same type of Mob Head.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/74Mdb1b21.png"
+    },
+    {
+      "name": "Back from the Dead",
+      "description": "Win 3 rounds in a row after one of the opponents has won 2 rounds.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/75Md11219.png"
+    },
+    {
+      "name": "S-No Throw",
+      "description": "Win a single round of Snowball Tumble without throwing any Snowballs.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/76Me129d7.png"
+    },
+    {
+      "name": "Snow Storm",
+      "description": "Hit a single Player with 25 Snowballs in a single public round.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/77M5d8d7d.png"
+    },
+    {
+      "name": "Hotshot",
+      "description": "Hit a Player with a Snowball while falling into the Lava.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/78Mcd86c1.png"
+    },
+    {
+      "name": "Snowplough",
+      "description": "Push three Players into Lava using Snowballs in a single public round.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/79M0c6a6b.png"
+    },
+    {
+      "name": "Overlord",
+      "description": "Stay on the top layer while winning a round in a Snowball Tumble Mini Game.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/80M34dcee.png"
+    },
+    {
+      "name": "Underdog",
+      "description": "Win a Tumble game whilst on the lowest layer in a Snowball Tumble Mini Game.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/81M6ec3ec.png"
+    },
+    {
+      "name": "The Deep End",
+      "description": "Defeat an Elder Guardian.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/82M499184.png"
+    },
+    {
+      "name": "Great View From Up Here",
+      "description": "Levitate up 50 block from the attacks of a Shulker.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/83Md95c9e.png"
+    },
+    {
+      "name": "Change of Sheets",
+      "description": "Dye your bed a different color.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/84Mcc30e5.png"
+    },
+    {
+      "name": "Cheating Death",
+      "description": "Use the Totem of Undying to cheat death.",
+      "achieved": true,
+      "date": "July 19, 2019",
+      "time": "11:51 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/85M6bd929.png"
+    },
+    {
+      "name": "So I got that going for me...",
+      "description": "Lead a caravan containing at least 5 Llamas.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/86Md5917c.png"
+    },
+    {
+      "name": "Let it go!",
+      "description": "Walk across the surface of a deep ocean by freezing the water with Frost Walker boots.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/87Mecc784.png"
+    },
+    {
+      "name": "Feeling ill",
+      "description": "Defeat an Evoker.",
+      "achieved": true,
+      "date": "July 19, 2019",
+      "time": "10:48 PM",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/88M0489d3.png"
+    },
+    {
+      "name": "One Pickle, Two Pickle, Sea Pickle, Four",
+      "description": "Place four Sea Pickles in one block.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/89Me568ff.png"
+    },
+    {
+      "name": "Alternative Fuel",
+      "description": "Use a Dried Kelp block as fuel in a furnace.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/90M2a4bc8.png"
+    },
+    {
+      "name": "Moskstraumen",
+      "description": "Activate a Conduit.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/91Mb88556.png"
+    },
+    {
+      "name": "Castaway",
+      "description": "Eat nothing but Kelp for 3 days.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/92M8b7fa2.png"
+    },
+    {
+      "name": "Sleep with the Fishes",
+      "description": "Stay underwater for one full day without using potions.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/93Mc4c483.png"
+    },
+    {
+      "name": "Echolocation",
+      "description": "Bribe a Dolphin.",
+      "achieved": false,
+      "date": "",
+      "time": "",
+      "type": "Static",
+      "progress": "",
+      "image": "https://i.psnprofiles.com/games/5c35c0/trophies/94Medf6cf.png"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/resources/resources.json b/resources/resources.json
index e47f89b..f3ec416 100644
--- a/resources/resources.json
+++ b/resources/resources.json
@@ -46,6 +46,12 @@
         "title": "GTA V Achievements",
         "description": "Loyd's Grand Theft Auto V achievement tracking.",
         "resourceUrl": "loyd-gtav"
+    },
+    {
+        "imageUrl": "https://cdn.scyted.tv/website-assets/resource-portal/logos/loyd-minecraft-ps3.jpg",
+        "title": "Minecraft PS3 Achievements",
+        "description": "Loyd's Minecraft PS3 achievement tracking.",
+        "resourceUrl": "loyd-minecraft-ps3"
     }
   ]
   
\ No newline at end of file