From 567b68b6a3b1310c8941fffdd4f07eb995e408fb Mon Sep 17 00:00:00 2001 From: zumbiepig <121742281+zumbiepig@users.noreply.github.com> Date: Wed, 4 Sep 2024 08:28:29 -0700 Subject: [PATCH] add more mods --- public/resources/data.json | 32 ++ .../resources/mods/downloads/auto-respawn.js | 8 + public/resources/mods/downloads/jump-boost.js | 12 + .../resources/mods/downloads/player-vision.js | 68 +++ public/resources/mods/downloads/recipe-mod.js | 491 ++++++++++++++++++ public/resources/mods/icons/auto-respawn.webp | Bin 0 -> 9124 bytes public/resources/mods/icons/jump-boost.webp | Bin 0 -> 9124 bytes .../resources/mods/icons/player-vision.webp | Bin 0 -> 9124 bytes public/resources/mods/icons/recipe-mod.webp | Bin 0 -> 4372 bytes 9 files changed, 611 insertions(+) create mode 100644 public/resources/mods/downloads/auto-respawn.js create mode 100644 public/resources/mods/downloads/jump-boost.js create mode 100644 public/resources/mods/downloads/player-vision.js create mode 100644 public/resources/mods/downloads/recipe-mod.js create mode 100644 public/resources/mods/icons/auto-respawn.webp create mode 100644 public/resources/mods/icons/jump-boost.webp create mode 100644 public/resources/mods/icons/player-vision.webp create mode 100644 public/resources/mods/icons/recipe-mod.webp diff --git a/public/resources/data.json b/public/resources/data.json index 53e3f0d..18b00db 100644 --- a/public/resources/data.json +++ b/public/resources/data.json @@ -224,6 +224,38 @@ "author": "ZXMushroom63", "authorLink": "https://github.com/ZXMushroom63", "source": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/AutoFish.js" + }, + { + "id": "recipe-mod", + "name": "Recipe Mod", + "description": "This is a recipe mod for eaglerforge, a bit like JEI.", + "author": "Oeil-de-Lynx", + "authorLink": "https://github.com/OeildeLynx31", + "source": "https://github.com/OeildeLynx31/eaglerforge-mods/blob/main/eagler_recipe.js" + }, + { + "id": "auto-respawn", + "name": "Auto Respawn", + "description": "auto respawn mod", + "author": "Oeil-de-Lynx", + "authorLink": "https://github.com/OeildeLynx31", + "source": "https://github.com/OeildeLynx31/eaglerforge-mods/blob/main/auto_respawn.js" + }, + { + "id": "jump-boost", + "name": "Jump Boost", + "description": "jump boost mod", + "author": "Oeil-de-Lynx", + "authorLink": "https://github.com/OeildeLynx31", + "source": "https://github.com/OeildeLynx31/eaglerforge-mods/blob/main/jump_boost.js" + }, + { + "id": "player-vision", + "name": "Player Vision", + "description": "player vision mod", + "author": "Oeil-de-Lynx", + "authorLink": "https://github.com/OeildeLynx31", + "source": "https://github.com/OeildeLynx31/eaglerforge-mods/blob/main/player_vision.js" } ], "resourcepacks": [ diff --git a/public/resources/mods/downloads/auto-respawn.js b/public/resources/mods/downloads/auto-respawn.js new file mode 100644 index 0000000..917856f --- /dev/null +++ b/public/resources/mods/downloads/auto-respawn.js @@ -0,0 +1,8 @@ +ModAPI.require('player'); +ModAPI.addEventListener("update", () => { + if (Boolean(ModAPI.player ? (ModAPI.player.isPlayer() ? true : false) : false)) { + if (ModAPI.player.isEntityAlive() === false) { + ModAPI.player.respawnPlayer(); + }; + }; +}); \ No newline at end of file diff --git a/public/resources/mods/downloads/jump-boost.js b/public/resources/mods/downloads/jump-boost.js new file mode 100644 index 0000000..ccdbc9e --- /dev/null +++ b/public/resources/mods/downloads/jump-boost.js @@ -0,0 +1,12 @@ +let height = 0; +let maxJumpHeight = 3; +document.addEventListener('keydown', function(event) { + if (event.code == 'Space' && ModAPI.mcinstance.$currentScreen === null) { + if (height < maxJumpHeight) { + ModAPI.mcinstance.$thePlayer.$motionY = 1; + height += 1; + } else if (ModAPI.mcinstance.$thePlayer.$isCollidedVertically === 1){ + height = 0; + } + } +}); diff --git a/public/resources/mods/downloads/player-vision.js b/public/resources/mods/downloads/player-vision.js new file mode 100644 index 0000000..2c449fe --- /dev/null +++ b/public/resources/mods/downloads/player-vision.js @@ -0,0 +1,68 @@ +let decoder = new TextDecoder(); +let listPseudos; + +let select = document.createElement('select'); + +select.addEventListener('mousedown', function (e) { + if (Minecraft.$theWorld) { + select.innerHTML = ""; + listPseudos = []; + Minecraft.$theWorld.$playerEntities.$array1.data.forEach(element => { + if (element) { + listPseudos.push(decoder.decode(new Uint8Array(element.$getName().$characters.data))); + } + }); + listPseudos.forEach(element => { + let option = document.createElement('option'); + option.innerText = element + ((listPseudos.indexOf(element) === 0)?" (you)":""); + option.value = element; + select.appendChild(option); + }); + if (document.querySelector(`option[value="${Minecraft.$renderViewEntity.$getName()}"]`)) { + document.querySelector(`option[value="${Minecraft.$renderViewEntity.$getName()}"]`).toggleAttribute('selected'); + } + } +}) + +function keepLoadedPlayer() { + if (profile !== Minecraft.$thePlayer) { + Minecraft.$renderViewEntity = Minecraft.$thePlayer; + setTimeout(function() {Minecraft.$renderViewEntity = profile;}, 0); + } +} + +select.addEventListener('change', function (e) { + window.profile = Minecraft.$theWorld.$playerEntities.$array1.data.find(function (element) { + if (element) { + return element.$getName() == select.value; + } else { + return null; + } + }); + if (profile) { + Minecraft.$renderViewEntity = profile; + if (typeof(keepLoadedPlayerInterval) !== "undefined") { + clearInterval(keepLoadedPlayerInterval); + } + if (profile === Minecraft.$thePlayer) { + Minecraft.$gameSettings.$hideGUI = 0; + } else { + Minecraft.$gameSettings.$hideGUI = 1; + window.keepLoadedPlayerInterval = setInterval(keepLoadedPlayer, 1000); + } + } +}) + +ModAPI.addEventListener("frame", () => { + if (Minecraft.$theWorld && Minecraft.$theWorld.$playerEntities.$array1.data.length > 1) { + select.style.display = "unset"; + } else { + select.style.display = "none"; + } +}) + +select.style.position = "absolute"; +select.style.top = "0px"; +select.style.left = "0px"; + +document.body.appendChild(select); \ No newline at end of file diff --git a/public/resources/mods/downloads/recipe-mod.js b/public/resources/mods/downloads/recipe-mod.js new file mode 100644 index 0000000..5e40cbb --- /dev/null +++ b/public/resources/mods/downloads/recipe-mod.js @@ -0,0 +1,491 @@ +let recipes = {}; + +function displayMessage(msg) { + let advancement = document.createElement('advancement'); + let message = document.createElement('message'); + + if (msg === "success") { + document.querySelector(':root').style.setProperty('--hue-rotate', "0deg"); + message.innerText = "Recipes imported successfully"; + } else if (msg === "error") { + document.querySelector(':root').style.setProperty('--hue-rotate', "250deg"); + message.innerText = "Recipes not imported The mod wont work"; + } + + advancement.appendChild(message); + document.body.appendChild(advancement); +} + +fetch("https://raw.githubusercontent.com/PrismarineJS/minecraft-data/master/data/pc/1.8/recipes.json") +.then(response => response.json()) +.then(json => recipes = json) +.then(() => addAllItems()) +.then(() => displayMessage("success")) +.catch(() => displayMessage("error")); + + +function getRecipe(recipe, index) { + let json = {}; + let craft = Object.values(recipe)[index]; + let grid = []; + + json.result = ModAPI.getItemById(craft.result.id); + json.resultNumber = craft.result.count; + json.grid = []; + + if (craft.inShape) { + while (craft.inShape.length < 3) { + craft.inShape.push([null, null, null]); + } + craft.inShape.forEach(craftLine => { + while (craftLine.length < 3) { + craftLine.push(null); + } + }); + grid = [].concat(craft.inShape[0], craft.inShape[1], craft.inShape[2]); + } else if (craft.outShape) { + grid = [].concat(craft.outShape[0], craft.outShape[1], craft.outShape[2]); + } + + grid.forEach(item => { + if (item) { + if (item.id) { + fixedItem = item.id; + } else { + fixedItem = item; + } + json.grid.push(ModAPI.getItemById(fixedItem)); + } else { + json.grid.push(null); + } + }); + + return json; +} + +function getRecipesForId(id) { + return recipes[id]; +} + +ModAPI.getItemById = function (id) { + return Object.keys(ModAPI.items)[Object.values(ModAPI.items).indexOf(Object.values(ModAPI.items).find(function (item) { + if (item) { + if(item.getID() == id) { + return true; + } else { + return false; + } + } else { + return false; + } + }))]; +} + +ModAPI.getIdforItem = function (item) { + if (ModAPI.items[item]) { + return ModAPI.items[item].getID() + } +} + +function craft(result, index) { + if (!recipes[ModAPI.getIdforItem(result)]) { + return false; + } + let craft = getRecipe(getRecipesForId(ModAPI.getIdforItem(result)), index); + let matrixGrid = []; + let resultItem; + + craft.grid.forEach(item => { + if (item) { + matrixGrid.push(ModAPI.reflect.classes[0].constructors[4].exec({itemIn: ModAPI.items[item].getRef(), amount: 1})); + } else { + matrixGrid.push(null); + } + }); + + resultItem = ModAPI.reflect.classes[0].constructors[4].exec({itemIn: ModAPI.items[craft.result].getRef(), amount: craft.resultNumber}) + + if (matrixGrid.length == 9) { + Minecraft.$currentScreen.$inventorySlots0.$craftMatrix1.$stackList.data = matrixGrid; + Minecraft.$currentScreen.$inventorySlots0.$craftResult0.$stackResult.data[0] = resultItem; + } + + return true; +} + +function currentScreenName() { + return String(Minecraft.$currentScreen).substring(String(Minecraft.$currentScreen).lastIndexOf(".") + 1, String(Minecraft.$currentScreen).lastIndexOf("@")); +} + +// GUI + +let button = document.createElement('button'); +button.setAttribute('id', 'recipesButton') + +document.body.appendChild(button); + +button.style.position = "absolute"; +button.style.display = "none"; +button.style.top = "0px"; +button.style.left = "0px"; +button.style.width = "40px"; +button.style.height = "36px"; +button.style.transformOrigin = "top left"; +button.style.border = "0px"; +button.style.backgroundSize = "100% 100%"; + +function addStyle(styleString) { + const style = document.createElement('style'); + style.textContent = styleString; + document.body.append(style); +} + +let recipeGui = document.createElement('div'); +recipeGui.setAttribute('id', 'recipeGui'); +recipeGui.style.position = "absolute"; +recipeGui.style.backgroundColor = "#c6c6c6"; + +let textInput = document.createElement('div'); +textInput.setAttribute('id', 'textInput'); + +let itemList = document.createElement('div'); +itemList.setAttribute('id', 'itemList'); + +function addItem(url, id) { + let item = document.createElement('item'); + let name = String(id).replaceAll('_', ' '); + item.setAttribute('class', 'item'); + item.setAttribute('itemName', name); + item.style.background = `url('${url}'), url('https://raw.githubusercontent.com/kuronekony4n/mcicons/main/assets/itemBg.png')`; + item.style.backgroundSize = "75% 75%, cover"; + item.style.backgroundPosition = "center"; + item.style.backgroundRepeat = "no-repeat"; + itemList.appendChild(item); + item.onclick = function() { + craft(id, 0); + } +} + +recipeGui.appendChild(textInput); +recipeGui.appendChild(itemList); +document.body.appendChild(recipeGui); + +window.searchFieldValue = ""; +window.recipeGui = false; +window.cursor = ""; + +const exceptions = { + planks: "oak_planks", + noteblock: "note_block", + golden_rail: "powered_rail", + wool: "white_wool", + brick_block: "bricks", + snow_layer: "snow", + snow: "snow_block", + fence: "oak_fence", + lit_pumpkin: "jack_o_lantern", + stained_glass: "white_stained_glass", + trapdoor: "oak_trapdoor", + stonebrick: "stone_bricks", + melon_block: "melon", + fence_gate: "oak_fence_gate", + stained_hardened_clay: "white_terracotta", + stained_glass_pane: "white_stained_glass_pane", + slime: "slime_block", + carpet: "white_carpet", + stone_slab2:"red_sandstone_slab", + sign: "oak_sign", + boat: "oak_boat", + bed: "red_bed", + speckled_melon: "glistering_melon_slice", + netherbrick: "nether_bricks", + banner: "white_banner", + wooden_pressure_plate: "oak_pressure_plate", + wooden_slab: "oak_slab", + wooden_button: "oak_button", + wooden_door: "oak_door", + dye: "white_dye", + fireworks: "firework_rocket", + firework_charge: "firework_star", +} + +button.onclick = function () { + window.recipeGui = !window.recipeGui; + if (window.recipeGui) { + window.intervalCursor = setInterval(() => { + window.cursor = "_"; + textInput.innerText = window.searchFieldValue + window.cursor; + let timeout = setTimeout(() => { + window.cursor = ""; + textInput.innerText = window.searchFieldValue + window.cursor; + }, 1000); + }, 2000); + } else { + clearTimeout(intervalCursor); + } +} + +function addAllItems() { + Object.keys(recipes).forEach(item => { + let name = ModAPI.getItemById(item); + let url = ""; + if (exceptions[name]) { + url = `https://raw.githubusercontent.com/kuronekony4n/mcicons/main/icons-1.21-thumb/${exceptions[name]}.png`; + } else { + if (name != undefined) { + url = `https://raw.githubusercontent.com/kuronekony4n/mcicons/main/icons-1.21-thumb/${name}.png`; + } else { + url = `https://static.wikia.nocookie.net/minecraft_gamepedia/images/b/b5/Missing_Texture_JE4.png`; + } + } + addItem(url, name); + }); +} + + +addStyle(` + #recipesButton { + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA2CAYAAACbZ/oUAAACkklEQVRoQ+2aPUsDQRCGjY2tnREhWNikEBFsFEEsrBSCAbFQEMHGykos/AJjCslfSBOwESGQTrAI12g6EYtAmkgaGwv/QYywjK8y4+3qhdzGSbW7N7e3775PhrmPxID8a/9wzIdDCW6R7KAJVME+2AprtHKYXG23/TY4kfiilzrfd0EFe4YxLfcnh1lXa7VaV7VmFmZD568E96ExUkChUKBD5XL5cyM6LRX8sR3q8C/hktCduliiGYfHh6n99vxG7ceDW2q74t0zpFWw8cx7hyUnF67W2D9DvVKn8XQmzcb8Be+uI62CjWfeO+zqJGKJ3D5cPlA3OZmk9ujUKJu98dxg/To0e0eGtAoOQdcbh0eG+GcD+J9EMVg8SDWKJB7PxeyN80iZXMLbGWkVzKDbtw5P7M8RXWMzY2zdi/hJtbGEPW7cy+OLU0GC2X7w6ZXOnV/Jut0eItIq2OydTRKywT7WDiO6iDeOV8+r1F08Wgytk21QR3RxwtJZibrbq8vRI62CGf/6yuHDuUOSmL/Ls7gi6ih+enM6tE7GeJw8t5OjbiqVonar1aL26d5u9EirYMbjvnK4uFEkic1mk8VbKk4wG0voYtZFXCWMj4vHtIauFB4q2OwvJjAvHcYH8XjTj2WmjduNmwabySV0MRgx3jrZYudBjDHAuZZWwWb7/oXDiIor3iyHnUEpA7uiK72CcX7iIb1MU8HGQimBee+wK95BELCasWDAACnrxuLtoQ3eKtjY6aXDNnhLhUdU6Eo5IrIsLV1AwlsFmx3z3mEJb4kI16wrzdMzpFVwiCW9dBiXRh+pZbOfrypccYpDPH5911lP+MelKjgOtjmswdZhFm+H68Qp1OoDcRUcJ8sc18I6/A6Toag65vT7bwAAAABJRU5ErkJggg=='); + outline: none; + } + + #recipesButton:hover { + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA2CAYAAACbZ/oUAAACoElEQVRoQ+2aL0hDURTGnUWjzY3BMFgMIsJAWXAYTAYxiEFhCBaTIA7DnILTIIjFuiJYxBWbYJAZhIkgYhAskxWLYVHTFHmcfYNzePfq2+adZ+m+++6/736/dzhv74a6pF/PRE2858KNj+sQt0y28ruhCnbBVlijkcPgau296JjCxuWGepP1ChDfiLQKdtdk2WHB1f2j26aqPVwf8x1/7aDk20ZqUCgU6NZdqT5OCKMxPrcq+Md7zXfsWIclYSP7U7QTfQN9VK6+VKn8sHFJZVu824a0CvY8c95hycnk6Rz7ED+dP1H90MwQ2+Y3eDcdaRXseea8w7ZOIpbI7f3JPV2Gh8NUjoxE2OiNfYvzZ77ROzCkVbAPus443N/D/zeAzySKweRBSsok8dgXozeOI0VyCW9rpFUwg27HOjyYThBd0XiUzXsRPyk3lrDHjXt9eLVKSDDadz++Ud/YeNru9RCRVsHe3pkEIRPs/7TDiC7ijfVXu1d0Obk56Zsnm6CO6OKAxzvHdLk0Ox080iqY8a+jHM4kMiRx72aPxRVRR/Gji6O+eTK2x8Fzy7k6rrEYlSuVCpW3V1eCR1oFMx53lMP5hTxJLJfLLN5ScoLRWEIXoy7iGhMwzuaztIamJB4q2NtfDGBOOoxfHvClH9NME7efL57ZSC6hi40R49RWih0HMW7oa5tLq2Bv+/6Fw4iKLd4sh1+VUgS2RVf6BGP9j4f09VAFexZKAcx5h23xLhb5syKYMOCYUtT9E18PTfBWwZ6dTjpsgreUeASFrhQjAovS0gQS3irY2zHnHZbwloiwjbrSOG1DWgX7WNI+h3FhcCovPuZ/Us4Ws1a2x9N3XSaHS1VwK+0JYC4zhwW8A5i/9UMYHRBXwa03JrAZBYc/AS53y4zphYZNAAAAAElFTkSuQmCC'); + } + + #textInput { + width: 88%; + margin-left: 4%; + padding-left: 2%; + border: 1px solid #111; + border-radius: 0px; + font-family: Minecraftia; + display: flex; + align-items: center; + background-color: #8b8b8b; + color: white; + text-shadow: 3px 3px 0px rgb(55 55 55 / 75%); + border-image-slice: 14 14 14 14; + border-image-outset: 0px 0px 0px 0px; + border-image-repeat: stretch stretch; + border-image-source: url("data:image/png;base64,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"); + border-style: solid; + user-select: none; + pointer-events: all; + } + + #itemList { + width: 95%; + margin-left: 4%; + overflow-y: auto; + display: flex; + align-items: center; + flex-wrap: wrap; + justify-content: flex-start; + align-content: flex-start; + pointer-events: all; + } + + item.item { + height: var(--itemSize); + width: var(--itemSize); + display: block; + } + + #recipeGui { + pointer-events: none; + } + + #itemList::-webkit-scrollbar { + width: var(--sb-size); + } + + #itemList::-webkit-scrollbar-thumb { + background: #adadad; + border-radius: 0px; + border-right: calc(var(--sb-size) / 6) solid #808080; + border-bottom: calc(var(--sb-size) / 6) solid #808080; + } + + #itemList::-webkit-scrollbar-track { + background: #e4e4e4; + border-radius: 0px; + } + + @supports not selector(::-webkit-scrollbar) { + #itemList { + scrollbar-color: #e4e4e4 #c0c0c0; + } + } + ` + ); + +ModAPI.addEventListener("update", () => { + if (currentScreenName() === "GuiCrafting") { + button.style.display = "block"; + window.ScaledResolution = innerHeight/ModAPI.mcinstance.$displayHeight*ModAPI.ScaledResolution.getScaleFactor(); + button.style.scale = ModAPI.ScaledResolution.getScaleFactor()/2; + button.style.top = ScaledResolution * (Minecraft.$currentScreen.$guiTop + 35) + "px"; + button.style.left = ScaledResolution * (Minecraft.$currentScreen.$guiLeft + 6) + "px"; + } else { + button.style.display = "none"; + window.recipeGui = false; + } +}) + +ModAPI.addEventListener("update", () => { + if (window.recipeGui) { + recipeGui.style.display = "block"; + recipeGui.style.left = ScaledResolution * (Minecraft.$currentScreen.$guiLeft + 3) + "px"; + recipeGui.style.top = ScaledResolution * (Minecraft.$currentScreen.$guiTop + 72) + "px"; + recipeGui.style.width = ScaledResolution * (Minecraft.$currentScreen.$xSize - 6) + "px"; + recipeGui.style.height = ScaledResolution * (Minecraft.$currentScreen.$ySize - 75) + "px"; + + textInput.style.height = ScaledResolution * 12 + "px"; + textInput.style.marginTop = ScaledResolution * 5 + "px"; + textInput.style.borderWidth = ModAPI.ScaledResolution.getScaleFactor() + "px"; + textInput.style.fontSize = ModAPI.ScaledResolution.getScaleFactor()/2.5 + "rem"; + textInput.style.paddingBottom = ModAPI.ScaledResolution.getScaleFactor() + "px"; + textInput.style.textShadow = `${ModAPI.ScaledResolution.getScaleFactor()}px ${ModAPI.ScaledResolution.getScaleFactor()}px 0px rgb(55 55 55 / 75%)`; + + itemList.style.height = `calc(100% - ${ScaledResolution * 22}px)`; + itemList.style.marginTop = ScaledResolution * 2 + "px"; + + document.querySelector(':root').style.setProperty('--itemSize', (ModAPI.ScaledResolution.getScaleFactor() * 17.25) + "px"); + document.querySelector(':root').style.setProperty('--sb-size', (ModAPI.ScaledResolution.getScaleFactor() * 5) + "px"); + } else { + recipeGui.style.display = "none"; + } +}) + +document.addEventListener('keydown', function(event) { + if (window.recipeGui && event.key.length == 1 && window.searchFieldValue.length < 30) { + window.searchFieldValue = window.searchFieldValue + event.key; + } else if (window.recipeGui && event.key == "Backspace") { + window.searchFieldValue = window.searchFieldValue.slice(0,-1); + } else if (window.recipeGui && event.key == "Space") { + window.searchFieldValue = window.searchFieldValue + " "; + } + if (window.recipeGui) { + textInput.innerText = window.searchFieldValue + window.cursor; + event.stopPropagation(); + Array.from(document.getElementsByClassName('item')).forEach(itemElement => { + if (window.searchFieldValue.length > 0) { + if (itemElement.getAttribute("itemName").includes(window.searchFieldValue)) { + itemElement.style.display = "block"; + } else { + itemElement.style.display = "none"; + } + } else { + itemElement.style.display = "block"; + } + }); + } +}); + +ModAPI.addEventListener("frame", () => { + document.querySelector(':root').style.setProperty('--scale', "scale("+ ModAPI.ScaledResolution.getScaleFactor()/3 +")"); +}) + +/* Load recipes message css */ +addStyle(` + :root { + --hue-rotate: 0deg; +} +advancement { + border-image-slice: 27 27 27 27 fill; + border-image-width: 20px 20px 20px 20px; + border-image-outset: 0px 0px 0px 0px; + border-image-repeat: stretch stretch; + border-image-source: url("data:image/webp;base64,iVBORw0KGgoAAAANSUhEUgAAAtAAAACQCAYAAAAhkFzZAAAABHNCSVQICAgIfAhkiAAAC4xJREFUeJzt3ctuXFW6wPFv7Vu5EoR6gEBCAgkFCZAQEqd5gDwAb9MPQHerdUbnXZhwnoIBEjBhwCiRGBDELTjUvq0elHfFdhzs5Rt2+P0kC7tStWtXYpK/lr9aO8Xp6ojYpJTqM9y3WM75Kg4LAADP00dEFxH/ioh/Hnzen/XB1dWcEwAAvJiaE26rD27PETFHRHutZwQAANdjmbDoDt126kr08YCuI2I6+FiMsY1pAAB4ESxt+9PBfx+XPPhwQC/xfD8iPj44YF1VVfXuu+9WVVXFNE2RUrrg+R512ccDAIBTNKvVKh48ePDxDz/8EBHxt4iY5nmeI+I/sZ3CeP6Dj30+xTae/7Hc2LZtvP/++/Hyyy/HL7/8Ek1z0tTH+QloAACuWX337t0p53z/0aNH95cbU0qRc/7fKAjok5ayu77vY39/vxuHMSIipunwdMfFCWgAAK7TMAwxTVP95MmTKaU05pxTbDfXGOIMo8uHA3op7cPD1F1ExHq9jqqqomma6Psz7/BxJgIaAIDr1HVddF0XdV3X8bR9IyJSnLL6HLEN6OVBbWzfMFjVdb1bab57927knKNpmvj999+jqi535zv7QAMAcJ1SSjGOY1RVFSml44vEbWxXoqt4GtRHojrFNpoX+b333qs++OCDarPZRNd1MQ5j1M22sbuuu/QVaAAAuG5t28b+/v6ud5u2iXEY47P//2wahiFiu53dOuf8SUT8Ow5dbKU5foXBpml2bxTcrmpvV4mrqhLPAADcekvXVmk7opxzjpxztF0bwzAcns6Iqqqq7eYchx5//IDLVnXzPMdms4mmaSKlFJvNJtq2jZTSkY/F8a8BAOAmmud5+/6+tonHj7dbQK9Wq5jn+fCOc897f2B36p50B0vY0bZtDMPw3Ehe4vp4oQMAwE2w2Wyiqqoj78FbwnkYhthsNrvezTnng7Z95mIrl7Kpc0opvvnmm91JAADATTGOY6zX63jllVci4tld4JYNNNq2jQ8//DAeP34cdV03e3t78cMPP3z84MGDiIOLrURcQkBXVRXzPMf3339/6XtEAwDAReWcY71ex2uvvRZ1Xe8mLBZLz1ZVFe+88060bRs557qqqunrr7++//Dhw/uH73/hgE4pxTROsV6vY7PZXPRwAABwqeq6jr7vY+iHmOrpmRXoaZqi67rY39+PnPNui7u9vb368ePHU2x3rds9qHhT52W4epl1HscxqrqKJ0+emH8GAODGyTnvojmlFKvVKnLOu1XnnHMMwxBt2+4uHrho27aOiFUcehNhcUBXVRXDMMQwDNs9og+Kvm1bIxwAANw44zhur2cy9JFSiv3f9mOetgu/8zyfuMPcHyke4ei6Lr799tt4+PBh7O3txWaz2e2+0bZt6eEAAODKpJSirusYxzG++uqrmOc51ut1DMMQr776aty7dy/GcXtdwWV3jmVf6OXjuOKATintNp9eLrqyDF4vK9CXfblvAAA4jyWAl7GMvu9jf39/16vTNJ0YyX+kOKD7vo+qqnb7PkfEbva5ruviEwAAgKuUUtot9C5X2p7nObquO9eFAC0VAwBAAQHNX8QcT6/IeQa52n4AABxzKVcihJuvMIaTLRkhIiLywY82020bzzt8vif9eDY/53aA0wloAJ7v1oXz4rQ4Fs/A+fkZNQAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAECBC+8DnfNt3SMUAIC/gsvuVSvQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAUENAAAFBDQAABQQEADAEABAQ0AAAWaP/sE4DKllI58nXP+k87k/A6/hsPnn3N+5vVd1nPdlt+ni77+017n8359ub2qTl9zmOd5d795nv/wvsePd/z+pz3fRb/fS58PgC0BzR8q/Qe6NBiuW+nruWigXGbwXkVAL54X0qc9320J77O6jNfzZ3+PA3D1/E0Pt4QwA4Cbwb/IAABQwAgHRU77kf5NWyU97XxLRyKuaoTivM932SMU1/37cd0jINf9/Vt6vIs+f+mfx037/xXgtvC3JwAAFBDQAABQQEADAECB4hnolFJsNpvIOccwDFFVVeSco23bU7cw48V33TPCcJn+at+/t22GHeC8jm/X2rZt/PrrrzFN07mOV7wCvTxxXdext7cXERFd10Xf91HX9blOAgAArlJKabfY2/d93L17d9eypYpXoMdxjLfeeiveeOONGMcx2raNzWYTX3755blOAAAArlLOOaZpir//z98jIqKqt2vIdV1Hv+mjbsoWgYsDOs85cs5R13XUdR0557hz505ExLmXwQEA4CpVVRVznqNK1ZERtrqpi6/220REf+jrPM9zU1VVHbEN4qZp4rfffouXXnoppmnaPcmi7/voui6aptnVfemL4eYy4/hiu21/vrftfAG4GeZ5jqqqtou/cz5ye0T5e0KaiOgO39C2bdR1Pa1Wq3q9Xsc4jrFer2MYhmjb9plAzjnHPM/R9/3u5Er4BxEAgKvU9300TRNN00RK6cJTE01K6V8Hn9fzPP/06NGjj7/44ov7wzBM0zTVd+7cibfffjuapolxHJ8p9PV6HXVdx5tvvhnjOBYH9F/tXe8AAFy/eZ5jmqaYp7l45vm4Zp7nfx6+4bvvvotHjx7dn6ZpbJqmXt40WNf1iU+4nMzrr78eXdcZ4QAA4Eap6zr6vo9pmqLtLr718uERji4iHldV9bdxHCMi0uGxjaZpou3aOPi1I+GbUoqUUvT9dpy6ZCzDCjQAAFfpcL+e9IbBlFIM/RBVXUXXdbvrnqxWqxO79vibCCMiliXkannCZWW5qo6+a1H8AgBw2202m6hStRtZjtg28GazOXFa4plb5qdr2kNETCmlaYnnzWazO+iyFA4AALdZ0zTRrZ7uqzHP8+6q23t7e3NEjLFdZJ4iYjppCbk6+MgRMUdEW9f1fs65rus6Ukpx7969+Oijj2IYhiMzJMsStxEOAABuitN68/DK86effhrjOEbOua/rupum6d8R8UlErONgcuOkC6nMBx+LYYnkg4NFVW2XuH/++edYrVa7O54noAEA4M+0BPY8z7vejdhdJPDIdEbE2a5EWMW2ttuDA+TY7t5Rd133hw8EAICbbhlTzjlHznmZUe5ju8nGkfcHRpwtoFNsl6y3X6QUbdvGarWaxnGsm+bpIYxwAABw05zWm23bxmaziWEY4mBsI+LpTnV/Ww6z3P8sAT3nnD+ptm9BrCPipx9//PHjzz///P44jtM8z7uNoQU0AAA3zWm92fd91HUde3t78zRN/4nt1MUU23j+7OBu4+545zyPf6SU/i8iNhGxOu3OAABwC4w55/aE2+t4OspxphXoiBMutnKwymz5GACAF8UyujzEduY5xdMt7HbOGtDPu9gKAAC8SPo4pXWfvbQKAADwXP8FT13puhEpb+wAAAAASUVORK5CYII="); + border-style: solid; + padding: 10px; + color: #fff; + font-family: 'Minecraftia'; + position: absolute; + top: -1px; + right: 0px; + height: 72px; + width: 455px; + image-rendering: pixelated; + transform-origin: top right; + font-size: 1.5em; + user-select: none; + z-index: 10000; + transform-origin: top right; +} + +advancement { + -webkit-animation-name: slideInDown, slideOutUp; + animation-name: slideInDown, slideOutUp; + -webkit-animation-duration: .5s, .5s; + animation-duration: .5s, .5s; + -webkit-animation-delay: 0s, 5s; + animation-delay: 0s, 5s; + -webkit-animation-fill-mode: both, forwards; + animation-fill-mode: both, forwards; +} +@-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translateY(-100%) var(--scale); + transform: translateY(-100%) var(--scale); + visibility: visible; + } + 100% { + -webkit-transform: translateY(0) var(--scale); + transform: translateY(0); + } +} +@keyframes slideInDown { + 0% { + -webkit-transform: translateY(-100%) var(--scale); + transform: translateY(-100%) var(--scale); + visibility: visible; + } + 100% { + -webkit-transform: translateY(0) var(--scale); + transform: translateY(0) var(--scale); + } +} + + @-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translateY(0) var(--scale); + transform: translateY(0) var(--scale); + } + 100% { + visibility: hidden; + -webkit-transform: translateY(-100%) var(--scale); + transform: translateY(-100%) var(--scale); + } + } + @keyframes slideOutUp { + 0% { + -webkit-transform: translateY(0) var(--scale); + transform: translateY(0) var(--scale); + } + 100% { + visibility: hidden; + -webkit-transform: translateY(-100%) var(--scale); + transform: translateY(-100%) var(--scale); + } +} + +advancement:before { + content: ''; + position: absolute; + width: 70px; + height: 70px; + background-image: url('data:;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAMAAAC8EZcfAAAAKlBMVEUAAABHjkdWrVYbNhswYDCWlpYhFAUVDgU9ej1UVFQcDwC0tLTV1dUMBQA2AfQBAAAAAXRSTlMAQObYZgAAAQhJREFUeF7t17tqBTEMQMHs7n3k+f+/m05qhGJwiiuYUwpjTyf89lpJkvTZBggICAgI+BfmiM4oZ0mdDwQEBAQE3MecRbcoZz11KhAQEBAQcB9zFF1RUpNVoZM6EQgICAgI+IgqTH91T63WX9ZTJwIBAQEBAd+j/uGK1aN7VrUmf6KJQEBAQEDAippdUc9axWRf0Uc0EQgICAgImAd7dFJ7VoW5R8nK2RwgICAgIOAzSsJ3VFH7tdavsJ5VfZpeHQgICAgImOVwlbqKqViJqVgDgYCAgICA69S2/8bMAwICAgICrlPvRTuYWUBAQEBAwH3qDmY+EBAQEBBwn7qMAQQEBAQErJMk6RenVGZExR2o4AAAAABJRU5ErkJggg=='); + background-position: center center; + background-size: cover; + left: 20px; + filter: hue-rotate(var(--hue-rotate)); +} + +message { + margin-left: 100px; + display: block; + margin-top: -2px; +} +`) \ No newline at end of file diff --git a/public/resources/mods/icons/auto-respawn.webp b/public/resources/mods/icons/auto-respawn.webp new file mode 100644 index 0000000000000000000000000000000000000000..bbac1260a1298089d9a3b7983b4c4a1464c35e86 GIT binary patch literal 9124 zcmdUVXH-*9xA&ybLr04ABB0WwiXepEJ4gvFND)jx`O}mZ5drDaq)KnnTR@Orq=*Gj z0!R~-4kArK;Kt`!?|SZs``+(&&Y69FXJ)U=K6_^N%$J z07wwC(Z6mTH8tZw2=Ns_2LDnxu?p+y<87*?%4211!$YRIJ^9Fo5=Emm<7CvjT2>JB4Q@De`Ddl*y-O`@h|rGx#vUVG5(9a z%}v#a*qMlh-ToVP`fvF5J@3E#u|yt4EXMb5TYuBvuS2+aT9^@^y3#k76 ze&RbZc@+R~{Qv-1;(yAVG5~0P0s!muf64^%0H6&A0RR3!W&hF1J+wFaUq1&YQmCsd z06$9sptc5p@dE&qsDITF$^S<-9%2;-Q7$jy`aLL+q8Xp^_w-TUvIM{kn8CZ|idnPcAAF$;s@L1q#$;im?j(lGZZY`KEPpmAzAG#(b zwd6|a|Buv#3)bTe*qIV6cIKAH-S&iQD?eQv$D-lE-Nzy-hsB|;_~Wa z7J^|ouGn`QWT9trogann20c8aQ?`_}8pUS)so?cC6FuXFtsy=tM{!@~K%lUJA%k`QsHljekz2^GLf7bmXPb9*FPT=ijl~yr3|3<$CwUdp6v(4un z9eV+tuV~xP!nl8T+Ql zPiX%6nsP<4;HOfV_1m3)WznbQMmy6P|D=lhutdzPD4zGs(WVAjtGcR#zCb;Q69={-yq!&J`bYMCNAQn*< z!WQcU^Bq5!axM-$K&u@GPw!uj9im{hW)&R`*qZpvUNKWWBP0>SN+*H5#KzrfVjx?) zJ^rWFgnu-eVBj`w;GwDVHY@i}Rc^=CK8*Lt0m*K+k@Al>b4kB^?uIN{5{J$%l^4R{ z{Iv78(7`irH@9o1cOEt;U5w>%JpEq8t$`#3BzO65zpLeyi=VB9)8ctof`0@<$$_wy zSMR7BnZomiH`ML`;tLkysYH`r$e!XEpOR;p)aU1sQ34#zm_iqaLQK=8FRxKA&JP^U zr-zS@OXqWY#Q)gy{MvegRX#>_CawE+9K1+rJNj}sRvt8X+xbT7WfhxxQJwHRdov%7 zcnuryj~p-El2EnIl2a5{AKNsWjQrO7^s19hp@z3Xhag)r4AvcicrI9M;PG&2MQc>4 z>Gt~Za@-(h@E;*S#*75GoW<2{<=#ayz+eUIm zc-L}KVcx3~uO57HKHX>acvSghN_uTw^y_*Y1OOlAtm2djP`hEqaf{_T(8k-2H;t>R zDC@mVI?Sh&)P8#4TiO-QWJM3jA}fK9o0>p1jdPJ0(%;T9240E9hEn zysqTOO75OAx|ETNpNXW&zM1{Yoi7}Fmxs3`qB7uTrnkbH|Jz1KAe(ow$Qf;)Qq?1X_s-sU80ev=6s?jdM zsXs#;8uMgHwsorki zA_%CmnC4hMoN1hyP|W@{jd?%G^+kE<)5xdwbnCSOO@VLu;|$E>&M8>#SOaQgd(qWM zLwK_^eac-my>CgRGJ_&eI70PCp^Uke(u+|VyN_eVe41Y`WntwywVt&5L+#6e8}P`%c`A>#4Oq1zLP+urR$5(ed>dFD-YRpeKy`+Uam2cX)}f9Tx9zDHa}HwuqS{*vm3AL7r`n zLCZWcU$k!H$FI5Qd>mW-U}wWlg&0(A+X~86y~vQdiPypQUW&6}#8f>y?0#gbO&SL7 z2A&dLPi~!(ie5s+D7I`*V=Z}_Fg{iYJ>wzIw8;wi*4f2UnB&Qj95M#|31dLfMt zaXgjZA#&A>5rBIusTc3F%QkcJJaRVYrOY;YnU;qcVh{r`)Kp9i!^;onZ{%D}T1#lxK_OXoCiF&z?vM2~?LX&R%g_BXypENNNKK4_>HL^gaaj zw9fDQ2brYTvhG>AHTAq+r?ZYdoS@y>t;N53`p6Lp&E%=6nR-ssMR%2@;3XH~^ zZKJ~VvQYhS%aDZ&p=Y~B`yHJ}E7ieE?R0=a@-^yOOsJyTR{_slg5TJfNEn1oALCdd^kF+t9&3lwzChv|%EXh2sa)y?e>#W1~ac3e-cq$-!#ORFVZU ztUbp860a0pVOHiUmkf(-Ht9kZ-gG3H1aE)Wc5~D2hch|KN6+~!ooJY33arsqG>Tkt zyfl?Yoq7k3BS?-Jpp>@2t3h@pg=tT!ghRYqcl(Xuyn{d|t~k zPl!@a8jh2SP9?e$yyty`8DM!lVQ~A?d#q$); zz9m@E@d=Q0{W+jcU6$AA>GfAy*==BNYkR!gs-T}bO^|q|Q}AWX|Igs_!1MDz;)myR zE60=brCye0j*m=m>m?VuOL?0CfWB)!g_~ofNxNf!N!{_e^iA$%>*<;5 zc_D+VDoKsS@;7HQ=atdHE#^B}PH7^}0)v^_Px>O6k}4hHD(MP*kKCzAXJ)xY6D-Z4 z_s}d+f7rj|w0~^SVpdix8J8V;0YVSE~fCn42p?~z+#~n_Sn~zUI`NwDs}64d@NHO0e?L?&9qfBrDmvUBCqb1trj8=>dQ4D~j& zT0O2retu$%kAdq5m16*l>67I~KN~1O&PR?%N|6ol&fS^z@O|y) z*D9WNbvMCqt%*M?m3T=0uSbH5Bo$IB7nxOZ31CzI(CaXM3j|x{_Arm@4TKgg*xIu}l zKPgc?>&@AUn%4ve^Um?n`2ahPFZvl|Son!A+H z#v1qg&sLDkO4#tp8 zm=Bkj^4*s2(q&<2m!n~w0KnJ!7`SKlUYQU~ZM^AF=Rf+*g|Sv02p2fMMifd?d(@%H zMnnMcrsTZ>QK#b3x)J(dV6c|jRvN95 zlC1Jv-iV-un)64pW89%XlR1@d9^NOO)$ETJAuLV;D_+6F750j2v**9O+WXI6$0Y;6 zTh&DJcB+zEr#f!4&DE|rQ-tRc)xu_fmGWs%Db*zi&}=#VLy<2l-}7^u5_w5U%^NvL zbUX~E8F&?3c(qpXSk4kNEeLq%qlGC|BP54+TPtE9fN#Rr^!CYT_Sr?A$nYe?otm2> zvxV3IqHZ?rI(9vy_cwZKV&c$92m-M7@qYZ^yF1;iv}Mq_YfnMNo8&5CFha_s7lZ}m zq$e{*!SzK@u4FjTYZZ44C z*qurN=<+`=!*S%ydQm_{ESxHM5F|G52x-`8$SrLbEbki%3Y+d-Foo*jZtVp zH@@Ly_#FVRzb@4XwNFe2?(C9=TO z0c8>i4o3+VYO~%nn6Mc(zf%B!5WytCV(e2C4y9k0ZQpIsnx_A56oaIzjCFF}>*#Uq zP12y&0DLJXs-&qt8|%w6T48<7H+dqvO}r^aXN#53GHRql9#+0g)3chJZ#ha6qTX39 z^5oiwAuqU;i9VF1;(xRqi}+Z1sP6fZ zADyi4;#W1HI41O)jUNNz+%c$C0S{pY#%cm)svi-ey;Bt7ScunSo6hLb22%abAhv17 zWhrOk&U>u}-{!!P)XtM-A*ii#wsmw}+{Qj>=^KH~MVAYDQ1BJ8(LrpEISZc?@l+zZ zo1As103@owp-ch->JwiRYuJ;QCy+#KTAIN7T=W_ zC*QkB455trf$nvh?au%_Uyqlm4E)E>PO%#Wo$|I5s*fH7)?cI9rWj8oUydL2>g0P* zv#^1%$J`8(&Qt&x|7a0sV#CjBd`cn#Ey3~^o7PC)Ffx|#Tu%?1lEfSd7J>B}?F-ui zrP;I0v^7_8zznk&bQ>?BNCU_bRo?4(Qc6l5Wl$lJV*V3bfLz2?#+L+e%1s^9jJ$pmPmTR`@u`gk>D z82y4c08WSfb093Ls!XuU@UqQekcCNgr5n_b85aR$1NmhsqJVb9@W94BTfahC2*^=W zX!VOwO6~@fOn>_lJf;?I(*1OgwVJSto_t@snPX*jHoH*n{&3lrdR4*1qvye65$ zA*%@-ZEgH5F8hmXxfyYS52!R0i&?Z2Jx~_}iDpiuIxt7!FlT~U^w$cPZc~ONhITa$ zUhAM}C<0jv7k~j|?V||vEVb_aFdP*nv=U=gI{QLG8e%MPecwzF3k5)__oZCSTt;KI zj`UOG$u)yq<%xGbJG*&o6p7UQ?9Dm7)s2gu4&{r_My>8ZVR_{4+aIfy?5}suR~f>< z2SfR-m^*A0!hGrUbU-Hw(&fl+u;jwGdk@75$s6b&u#Iz;pJy(-MVvx)EQ%0!(5q1S zP%_1i79j12x-M&{`lucQEH~F1lF6R;cLtqD@Ua1JiuOyq9wU@a5Kx&I8>>zQa9GpG zmno-htZyW+$<*Y`r9g63M4?ABh6)V>B(p?~T`wXM{u$8=O}`KWB|HqDr*1y9F-Suj zQv$~r+Z&tH8L~HBc+%lS^)q2o;IOhj-5$wTl5rM%#2N0P9yy?*BFYE`kq}4L?>zvw ze9zlDwe3r&ZwZiPaT@a*>UIJkZ)&_^-nMMUJREHz;AVA5>Ii+noRRj-Vkh>)dr(#n z;IJrqH{(9X@n|U3WdOR+-`wRwgX>v}JR>}PJUF=D0bHz4)HD+$olZtIV)l-9hFxa0 z0WOx~<&<8vO)R3j%vNExfpP@3+5pi>!+K@E9aN`7^g4MRZ{{DQkro3mWelsekh3Li z0t|~7RAXT4eS#GNNYq2r?69__5HV;BX8)1cm1F-BnA6v{hu?CY?n$w zWpwJZ+AA(i8zUuAP#~-w1s+4dMLsJP2uOm^y(Nbh^uMp2tk`QC{ayYmqn4wHkjUu7 zKl0EBAm713?Bv?<+UDn8`aEu4UL2nwj*?d`KP=C&L8xx4soFe4L`|1CBY1jcA=wBV zJxAtEUrh>1HXeB<{H`QHf;fI9CB~{f2(gWvI!~O1yUU$xZy15_dVR8`?7a@FgLvas z%r!}n$Bv%OQW1SZ*%i@#_WRmZg?Y=Fb{z^NUZlC?r3+pEphQ7$vg+$eeF28SwADmp z_E)Va_h?X1%;v6;rJ`?<1w4ek&HWo>pCSOL)LL?5?UTL>>vDWt%O08RKEpS^c>p8h z?#`bYuP%L=rXm_9pU)PDd#Uf9*-a<7;j`r97lL}5J0@mkp|2tr2Ev70UcIkfAH}c{ z4Jd26t9)B=k%YNQt!$UrxZh4a1PK+c)o>_cveb9RVV=_9Ji}M>$dOO=ik!y`n6f-*bO!QFe)9jX0Xj2Lvu>b7gd>F%w}gX9Je&&>cvzB0f>zh6*-2y zEcfP8lbq`8cN4s>t8RnLsp=#+zNu9{$T3?zgw=y}z&On*E>T6IDID>!oA&ADz^rQM8q z(Mx$mhbqCavT16zK2xM8?v#32o7`uJ*EB-?-PQ$P;W{K zTC5E_0tHrba`R)ITndZR>5$nBqK4mlN=Bq@NJU&OkIn)3grrPTKC<@8aFjv&aBJx( zrjOa|D-&>}V+4uMqTsiUZcH_~By-9JwrXE8N*f(&-HrDFNYz{X5TeN^QTi4z%Y;7V z`rJ?#QAa>!dgV}Lh_Va8fNX<8rznS?_ZJ-bJ+v0q>IhDZWR(>ezX~Cwpu-?Yz)E}a zvi5=`(ZJ>GhRXh=sE%~0N8gV))pwcah*vO}o*FOk)Sw1P(VBJ+3zK--Hj}G>MFZwG z+3&~-4dc6fty45wq6q?~zH)LYav}@NwjZf~-99<|g(>_r`AAoV$UD z<$0>9dU!gX(%+HZm_rQ{CTC;`5!ea-;~CzMXKl)l4g+Jc-#78sZ6fZNz`>o0aN3}# zK-=PQ3i`K3L(Ir@21(*-$q-P%LR*D*ZTF`{Jk{#dO_9mlFI~eV8|pC6=&C4{-WfUUv10L(}+D^)BEj5TjCEoi(eU^$Y-Hn_RU1 zG`x$bQfVn(04SznOE~EtoYl5Uh+QuHby+QSs`XV6L8RG`TE_gV6fjJib=nD{M5?5t z+htssWB@LGY)3dZpB*h{x&ySC0a69Y1W_j=j&mdHgX$#$ez!^2CUHawR8!yj$n{Hvt_IWwo|iT{ zXFavsO3zyaNSpN2&?vKXXjGnMPCfT%Z?uYv}DcsEtQsq4$gGN9{tL9+*i2g z7=gE|QT@zJ4r6S4k%cB*)$rnShhQCJ~KVn`C;r%Bw$;wX#~@rJtQ^ z#s6WeNgxUOmmFc&l=seSl#hDnAKX3OntbuT>4ER~-XFa58mEPb?3MANZNU)OG#)<1Rv7Px>LT-KNJGe-MQ(wURhW(!lW*+N#6t?xpo0lnXyk)|^X>FVTdZ>W{9H z`j!pDK_lC(Ko-vU&r+bvkqy#93~mor&gZrrw$p~5PQ(cLpH3awcbxc)UCBL7^9q20 zpzf7({+cNp?6ZskUYXToM^+m ze*er@Fw#2Tdwi8m0IsH@3P3Ez(OFM>iXJ}|jv%@}C{>VdCZOvJyL$)9z$@t7>vToj zq5pYDz_fer&Phc==aH&CRn3b~Grr0P{fYyACp&c+|j7ykogeS1Nn zU2ItR#BswQAz{^NRGaNuIu(0g3Is^R=kpUI@{Wve-3a?n#))PS1FlwFy9yHqQKS38 z2GJcd?dNNq=fB@;2M9hWV)tfn&2AvY7zi!QSU3UZYC6Y(Mg)=Rc(Gnn6f^CAff5t?GrWxNXM?U z-H+veUQJ7THm-WHUGR88k{l{lI(`FAN`1!f8F?MesfzE@EH5-Ec+?{z;+xB zkFu!#5V`acV~2ygnXTb@KJVmsXwh!lI;Zarp>NpZF&S?j_U9>`nQ? zhv6?SCy5YsU!q@|4hgex$rQ`dp#=($uTi+a)7JGl8Lv?e+?vv740+QT{8bCb{e6C1 z`GD5|8(($tmJ1xBg?%o?)Kn&ldR;s!jV1cDoFu4j=&1&gl6a`c3`R&Mz^VAUTV7Bf z?PchlZtd7ERi5YPr1*ooBC~atV?OX zPF0k#wgG^`8<;@;bP5R2-j-jVPzXxCjn0Em`*=vu*S5KgrpksV z=tC*>spDmRJ`SP>d5Gp(KO7-QJiy@k?T>=IUt`ix&qZagUe*is`))hnk6)V%F4aw}EgL?P+BrdLuONqXQ|V2qrTST-n;zzMElAK+aC6 zi*^jN@UACMFdEua4vuY|ZNqlXp8rpN|~w{<-LIMl>Jao>ROK%J}W@ z=R#7)?$67#4&;j{|MS#?&$BL>Xzr&wKie(2+UXc_jn1j<$-5JjI(`qG&pR-K{{lY| B&}skx literal 0 HcmV?d00001 diff --git a/public/resources/mods/icons/jump-boost.webp b/public/resources/mods/icons/jump-boost.webp new file mode 100644 index 0000000000000000000000000000000000000000..bbac1260a1298089d9a3b7983b4c4a1464c35e86 GIT binary patch literal 9124 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 B&}skx literal 0 HcmV?d00001 diff --git a/public/resources/mods/icons/player-vision.webp b/public/resources/mods/icons/player-vision.webp new file mode 100644 index 0000000000000000000000000000000000000000..bbac1260a1298089d9a3b7983b4c4a1464c35e86 GIT binary patch literal 9124 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 B&}skx literal 0 HcmV?d00001 diff --git a/public/resources/mods/icons/recipe-mod.webp b/public/resources/mods/icons/recipe-mod.webp new file mode 100644 index 0000000000000000000000000000000000000000..5262648683944be1f3f744fc82e5cafd20fa5c5d GIT binary patch literal 4372 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