From 146de39f44757e87c7d01a66f5dc9d7c7d450e93 Mon Sep 17 00:00:00 2001 From: Zontreck Date: Thu, 6 Oct 2022 04:40:09 -0700 Subject: [PATCH] Add vaults - 1.3.3.0 alpha --- gradle.properties | 2 +- src/main/java/dev/zontreck/otemod/OTEMod.java | 13 +++ .../commands/teleport/TeleportActioner.java | 7 +- .../otemod/commands/vaults/VaultCommand.java | 40 ++++++- .../otemod/containers/VaultContainer.java | 87 -------------- .../otemod/implementation/VaultContainer.java | 97 +++++++++++++++ .../otemod/implementation/VaultMenu.java | 110 ++++++++++++++++++ .../otemod/implementation/VaultScreen.java | 63 ++++++++++ .../otemod/implementation/VaultWatcher.java | 38 ++++++ .../implementation/inits/MenuInitializer.java | 18 +++ src/main/resources/META-INF/mods.toml | 2 +- .../otemod/textures/gui/gui-template.aseprite | Bin 0 -> 31579 bytes .../assets/otemod/textures/gui/vault.png | Bin 0 -> 19986 bytes .../otemod/textures/gui/vaultmenu.aseprite | Bin 0 -> 23091 bytes 14 files changed, 381 insertions(+), 96 deletions(-) delete mode 100644 src/main/java/dev/zontreck/otemod/containers/VaultContainer.java create mode 100644 src/main/java/dev/zontreck/otemod/implementation/VaultContainer.java create mode 100644 src/main/java/dev/zontreck/otemod/implementation/VaultMenu.java create mode 100644 src/main/java/dev/zontreck/otemod/implementation/VaultScreen.java create mode 100644 src/main/java/dev/zontreck/otemod/implementation/VaultWatcher.java create mode 100644 src/main/java/dev/zontreck/otemod/implementation/inits/MenuInitializer.java create mode 100644 src/main/resources/assets/otemod/textures/gui/gui-template.aseprite create mode 100644 src/main/resources/assets/otemod/textures/gui/vault.png create mode 100644 src/main/resources/assets/otemod/textures/gui/vaultmenu.aseprite diff --git a/gradle.properties b/gradle.properties index 5cf811f..957400f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx8G org.gradle.daemon=false -my_version=1.3.2.2 +my_version=1.3.3.0 mc_version=1.19.2 forge_version=43.1.32 diff --git a/src/main/java/dev/zontreck/otemod/OTEMod.java b/src/main/java/dev/zontreck/otemod/OTEMod.java index cd490be..74ef349 100644 --- a/src/main/java/dev/zontreck/otemod/OTEMod.java +++ b/src/main/java/dev/zontreck/otemod/OTEMod.java @@ -13,6 +13,7 @@ import java.util.Set; import com.mojang.logging.LogUtils; import com.mojang.serialization.Codec; +import net.minecraft.client.gui.screens.MenuScreens; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -54,6 +55,9 @@ import dev.zontreck.otemod.configs.Profile; import dev.zontreck.otemod.database.Database; import dev.zontreck.otemod.database.Database.DatabaseConnectionException; import dev.zontreck.otemod.events.EventHandler; +import dev.zontreck.otemod.implementation.VaultScreen; +import dev.zontreck.otemod.implementation.VaultWatcher; +import dev.zontreck.otemod.implementation.inits.MenuInitializer; import dev.zontreck.otemod.items.ModItems; import dev.zontreck.otemod.ore.Modifier.ModifierOfBiomes; @@ -98,6 +102,8 @@ public class OTEMod MinecraftForge.EVENT_BUS.register(new EventHandler()); MinecraftForge.EVENT_BUS.register(new ChatServerOverride()); MinecraftForge.EVENT_BUS.register(new CommandRegistry()); + MinecraftForge.EVENT_BUS.register(new VaultWatcher()); + MenuInitializer.CONTAINERS.register(bus); ModBlocks.register(bus); ModItems.register(bus); @@ -206,6 +212,11 @@ public class OTEMod "`prefix_color` varchar(255) not null,"+ "`chat_color` varchar(255) not null)"); + lookup.execute("CREATE TABLE IF NOT EXISTS `vaults` (" + + "`uuid` varchar (128) NOT NULL, " + + "`number` int (11) not null," + + "`data` text not null);"); + con.endRequest(); // Set up the repeating task to expire a TeleportContainer @@ -313,6 +324,8 @@ public class OTEMod // Some client setup code //LOGGER.info("HELLO FROM CLIENT SETUP"); //LOGGER.info("MINECRAFT NAME >> {}", Minecraft.getInstance().getUser().getName()); + + MenuScreens.register(MenuInitializer.VAULT.get(), VaultScreen::new); } } diff --git a/src/main/java/dev/zontreck/otemod/commands/teleport/TeleportActioner.java b/src/main/java/dev/zontreck/otemod/commands/teleport/TeleportActioner.java index 2faa025..3f3c1f0 100644 --- a/src/main/java/dev/zontreck/otemod/commands/teleport/TeleportActioner.java +++ b/src/main/java/dev/zontreck/otemod/commands/teleport/TeleportActioner.java @@ -20,8 +20,11 @@ public class TeleportActioner public void run(){ MobEffectInstance inst = new MobEffectInstance(MobEffects.DARKNESS, 200, 1, true, true); - MobEffectInstance regen = new MobEffectInstance(MobEffects.REGENERATION, 200, 1, true, true); - MobEffectInstance invul = new MobEffectInstance(MobEffects.LEVITATION, 75, 1, true, true); + MobEffectInstance regen = new MobEffectInstance(MobEffects.REGENERATION, 200, 2, true, true); + + // 10-05-2022 - Adjusted to 100 on duration due to a small issue where it would sometimes stop levitation prior to the teleport taking effect. + // Small tradeoff is the player now levitates slightly longer at the destination. This is acceptable. Compensated by increasing regen strength by 1 + MobEffectInstance invul = new MobEffectInstance(MobEffects.LEVITATION, 100, 1, true, true); player.addEffect(inst); diff --git a/src/main/java/dev/zontreck/otemod/commands/vaults/VaultCommand.java b/src/main/java/dev/zontreck/otemod/commands/vaults/VaultCommand.java index 3cf54a6..723766e 100644 --- a/src/main/java/dev/zontreck/otemod/commands/vaults/VaultCommand.java +++ b/src/main/java/dev/zontreck/otemod/commands/vaults/VaultCommand.java @@ -1,14 +1,37 @@ package dev.zontreck.otemod.commands.vaults; +import java.util.UUID; + +import javax.annotation.Nullable; + import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.arguments.IntegerArgumentType; import dev.zontreck.otemod.chat.ChatColor; import dev.zontreck.otemod.chat.ChatServerOverride; -import dev.zontreck.otemod.containers.VaultContainer; +import dev.zontreck.otemod.implementation.VaultContainer; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; +import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.game.ClientboundOpenScreenPacket; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.CompoundContainer; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.SimpleMenuProvider; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ChestMenu; +import net.minecraft.world.inventory.MenuConstructor; +import net.minecraft.world.inventory.MenuType; +import net.minecraft.world.level.block.ChestBlock; +import net.minecraft.world.level.block.entity.ChestBlockEntity; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.player.PlayerContainerEvent; +import net.minecraftforge.network.NetworkConstants; +import net.minecraftforge.network.NetworkHooks; +import net.minecraftforge.network.PlayMessages; public class VaultCommand { @@ -24,10 +47,17 @@ public class VaultCommand { } private static int vault(CommandSourceStack source, int i) { - VaultContainer cont = new VaultContainer(i, source.getPlayer().getUUID()); - cont.startOpen(source.getPlayer()); - - ChatServerOverride.broadcastTo(source.getPlayer().getUUID(), Component.literal(ChatColor.DARK_RED + "Vaults are not yet implemented"), source.getServer()); + //VaultContainer cont = new VaultContainer(i, source.getPlayer().getUUID()); + //cont.startOpen(source.getPlayer()); + + VaultContainer container = new VaultContainer(source.getPlayer(), i); + + NetworkHooks.openScreen(source.getPlayer(), new SimpleMenuProvider(container.serverMenu, Component.literal("Vault "+i))); + + // Add to the master vault registry + if(VaultContainer.VAULT_REGISTRY.containsKey(source.getPlayer().getUUID()))VaultContainer.VAULT_REGISTRY.remove(source.getPlayer().getUUID()); + VaultContainer.VAULT_REGISTRY.put(source.getPlayer().getUUID(), container); + return 0; } } diff --git a/src/main/java/dev/zontreck/otemod/containers/VaultContainer.java b/src/main/java/dev/zontreck/otemod/containers/VaultContainer.java deleted file mode 100644 index f974ee8..0000000 --- a/src/main/java/dev/zontreck/otemod/containers/VaultContainer.java +++ /dev/null @@ -1,87 +0,0 @@ -package dev.zontreck.otemod.containers; - -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -import net.minecraft.world.Container; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.phys.Vec3; - -public class VaultContainer implements Container -{ - public int VaultID; - public UUID VaultOwner; - public ItemStack[] Contents=new ItemStack[64]; - - public VaultContainer(int num, UUID owner) - { - VaultID = num; - VaultOwner = owner; - Contents = new ItemStack[64]; - } - - @Override - public void clearContent() { - for(int i=0; i< Contents.length; i++) - { - Contents[i] = null; - } - } - - @Override - public int getContainerSize() { - return 64; // Double chest - } - - @Override - public boolean isEmpty() { - for(ItemStack is : Contents) - { - if(is == null)continue; - else return false; - } - return true; - } - - @Override - public ItemStack getItem(int p_18941_) { - return Contents[p_18941_]; - } - - @Override - public ItemStack removeItem(int p_18942_, int p_18943_) { - // TODO debug this! - return null; - } - - @Override - public ItemStack removeItemNoUpdate(int p_18951_) { - // TODO Auto-generated method stub - return null; - } - - @Override - public void setItem(int p_18944_, ItemStack p_18945_) { - Contents[p_18944_] = p_18945_; - setChanged(); // mark the contents to be uploaded to the server - } - - @Override - public void setChanged() { - // Enqueue upload to the database - } - - @Override - public boolean stillValid(Player p_18946_) { - return true; // The inventory is always valid for this container type. There is no circumstance where the container could be destroyed. - } - - public void downloadContentsToChest(Vec3 pos) - { - // Player is standing on a chest and wants us to download the vault into the chest. - // TODO - } - -} diff --git a/src/main/java/dev/zontreck/otemod/implementation/VaultContainer.java b/src/main/java/dev/zontreck/otemod/implementation/VaultContainer.java new file mode 100644 index 0000000..ac238ee --- /dev/null +++ b/src/main/java/dev/zontreck/otemod/implementation/VaultContainer.java @@ -0,0 +1,97 @@ +package dev.zontreck.otemod.implementation; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.mariadb.jdbc.export.Prepare; + +import com.mojang.brigadier.exceptions.CommandSyntaxException; + +import dev.zontreck.otemod.OTEMod; +import dev.zontreck.otemod.chat.ChatColor; +import dev.zontreck.otemod.chat.ChatServerOverride; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtUtils; +import net.minecraft.network.chat.Component; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.CompoundContainer; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.inventory.MenuConstructor; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraftforge.items.ItemStackHandler; + +public class VaultContainer +{ + public static Map VAULT_REGISTRY = new HashMap<>(); + public VaultMenu theContainer; + public ItemStackHandler myInventory; + public MenuConstructor serverMenu; + public UUID owner; + private MinecraftServer server; + private final int VAULT_NUMBER; + public final UUID VaultID; + public VaultContainer(ServerPlayer player, int vaultNum) { + myInventory = new ItemStackHandler(54); // Vaults have a fixed size at the same as a double chest + theContainer = new VaultMenu(player.containerCounter+1, player.getInventory(), myInventory, BlockPos.ZERO); + VaultID = theContainer.VaultMenuID; + owner = player.getUUID(); + server=player.server; + serverMenu = theContainer.getServerMenu(myInventory); + VAULT_NUMBER=vaultNum; + + + Connection con = OTEMod.DB.getConnection(); + // Check database for vault + + PreparedStatement pstat; + try { + con.beginRequest(); + pstat = con.prepareStatement("SELECT * FROM `vaults` WHERE `uuid`=? AND `number`=?;"); + pstat.setString(1, player.getStringUUID()); + pstat.setInt(2, vaultNum); + + ResultSet rs = pstat.executeQuery(); + while(rs.next()) + { + // We have a vault, deserialize the container + String data = rs.getString("data"); + CompoundTag inv = NbtUtils.snbtToStructure(data); + myInventory.deserializeNBT(inv); + } + con.endRequest(); + } catch (SQLException | CommandSyntaxException e) { + e.printStackTrace(); + } + // Container is now ready to be sent to the client! + } + + public void commit() + { + CompoundTag saved = myInventory.serializeNBT(); + ChatServerOverride.broadcastToAbove(owner, Component.literal(ChatColor.BOLD+ChatColor.DARK_GREEN+"Saving the vault's contents..."), server); + + String toSave= NbtUtils.structureToSnbt(saved); + + Connection con = OTEMod.DB.getConnection(); + try{ + con.beginRequest(); + PreparedStatement ps = con.prepareStatement("REPLACE INTO `vaults` (uuid, number, data) VALUES (?,?,?);"); + ps.setString(1, owner.toString()); + ps.setInt(2, VAULT_NUMBER); + ps.setString(3, toSave); + + ps.execute(); + con.endRequest(); + }catch(SQLException e){ + e.printStackTrace(); + } + } + +} diff --git a/src/main/java/dev/zontreck/otemod/implementation/VaultMenu.java b/src/main/java/dev/zontreck/otemod/implementation/VaultMenu.java new file mode 100644 index 0000000..d07059c --- /dev/null +++ b/src/main/java/dev/zontreck/otemod/implementation/VaultMenu.java @@ -0,0 +1,110 @@ +package dev.zontreck.otemod.implementation; + +import java.util.Map; +import java.util.UUID; + +import dev.zontreck.otemod.chat.HoverTip; +import dev.zontreck.otemod.implementation.inits.MenuInitializer; +import net.minecraft.core.BlockPos; +import net.minecraft.world.Container; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ClickType; +import net.minecraft.world.inventory.ContainerLevelAccess; +import net.minecraft.world.inventory.MenuConstructor; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.ItemStackHandler; +import net.minecraftforge.items.SlotItemHandler; + +public class VaultMenu extends AbstractContainerMenu +{ + //private final ContainerLevelAccess containerAccess; + public final UUID VaultMenuID; + + public VaultMenu (int id, Inventory player) + { + this(id, player, new ItemStackHandler(54), BlockPos.ZERO); + } + + public VaultMenu (int id, Inventory player, IItemHandler slots, BlockPos pos) + { + super(MenuInitializer.VAULT.get(), id); + VaultMenuID=UUID.randomUUID(); + //this.containerAccess = ContainerLevelAccess.create(player.player.level, pos); + + final int slotSize = 16; + final int startX = 17; + final int startY = 133; + final int hotbarY = 184; + final int inventoryY = 26; + + for (int row = 0; row < 6; row++) + { + for (int column = 0; column < 9; column++) + { + addSlot(new SlotItemHandler(slots, row*9 + column, startX+column * slotSize , inventoryY + row * slotSize)); + } + } + + for (int row=0;row<3;row++) + { + for(int col = 0; col< 9; col++) + { + addSlot(new Slot(player, 9+row * 9 + col, startX + col * slotSize, startY + row * slotSize)); + } + } + + for(int col = 0; col<9; col++) + { + addSlot(new Slot(player, col, startX + col * slotSize, hotbarY)); + } + } + + @Override + public ItemStack quickMoveStack(Player play, int index) { + ItemStack ret = ItemStack.EMPTY; + final Slot slot = getSlot(index); + if(slot.hasItem()){ + final ItemStack item = slot.getItem(); + ret = item.copy(); + if(index<27) + { + if(!moveItemStackTo(item, 54, this.slots.size(), true)) return ItemStack.EMPTY; + }else if(!moveItemStackTo(item, 0, 54, false)); + + if(item.isEmpty()){ + slot.set(ItemStack.EMPTY); + }else slot.setChanged(); + } + + return ret; + } + + @Override + public boolean stillValid(Player p_38874_) { + return true; // We have no block + } + + public static MenuConstructor getServerMenu (ItemStackHandler inventory){ + return (id, player, play) -> new VaultMenu(id, player, inventory, BlockPos.ZERO); + } + + + public void doCommitAction() + { + + // Locate the Vault in the Vault Registry and commit changes. + // Search for myself! + for(Map.Entry e : VaultContainer.VAULT_REGISTRY.entrySet()) + { + if(e.getValue().VaultID.equals(VaultMenuID)) + { + e.getValue().commit(); + } + } + } + +} diff --git a/src/main/java/dev/zontreck/otemod/implementation/VaultScreen.java b/src/main/java/dev/zontreck/otemod/implementation/VaultScreen.java new file mode 100644 index 0000000..181895b --- /dev/null +++ b/src/main/java/dev/zontreck/otemod/implementation/VaultScreen.java @@ -0,0 +1,63 @@ +package dev.zontreck.otemod.implementation; + +import java.util.UUID; + +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; + +import dev.zontreck.otemod.OTEMod; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Inventory; + +public class VaultScreen extends AbstractContainerScreen +{ + // 176x224 + public final UUID VaultMenuID; + + private static final ResourceLocation TEXTURE = new ResourceLocation(OTEMod.MOD_ID, "textures/gui/vault.png"); + + public VaultScreen(VaultMenu container, Inventory playerInv, Component comp){ + super(container, playerInv, comp); + + this.VaultMenuID = container.VaultMenuID; + this.leftPos = 0; + this.topPos = 0; + + this.imageWidth = 176; + this.imageHeight = 224; + } + + @Override + public void render(PoseStack stack, int mouseX, int mouseY, float partialTicks) + { + super.render(stack, mouseX, mouseY, partialTicks); + this.font.draw(stack, this.title, this.leftPos + 17, this.topPos + 15, 0xFFFFFF); + this.font.draw(stack, this.playerInventoryTitle, this.leftPos + 17, this.topPos + 123, 0xFFFFFF); + } + + @Override + protected void init() + { + super.init(); + // This is where custom controls would be added! + } + + @Override + protected void renderBg(PoseStack stack, float mouseX, int mouseY, int partialTicks) + { + renderBackground(stack); + RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.setShaderColor (1.0f, 1.0f, 1.0f, 1.0f); + RenderSystem.setShaderTexture(0, TEXTURE); + blit(stack, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight); + } + + @Override + protected void renderLabels (PoseStack stack, int mouseX, int mouseY) + { + + } +} diff --git a/src/main/java/dev/zontreck/otemod/implementation/VaultWatcher.java b/src/main/java/dev/zontreck/otemod/implementation/VaultWatcher.java new file mode 100644 index 0000000..89cbac4 --- /dev/null +++ b/src/main/java/dev/zontreck/otemod/implementation/VaultWatcher.java @@ -0,0 +1,38 @@ +package dev.zontreck.otemod.implementation; + +import java.util.Map; +import java.util.UUID; + +import dev.zontreck.otemod.OTEMod; +import net.minecraft.client.gui.components.events.ContainerEventHandler; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.event.entity.player.PlayerContainerEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber; + +@EventBusSubscriber(modid=OTEMod.MOD_ID,bus=Mod.EventBusSubscriber.Bus.FORGE) +public class VaultWatcher { + + + @OnlyIn(Dist.DEDICATED_SERVER) + @SubscribeEvent + public void onClosedContainer(PlayerContainerEvent.Close ev) + { + //OTEMod.LOGGER.info("Player closed a container"); + // Player closed the container + // Check if it is a vault Container + if(ev.getContainer() instanceof VaultMenu) + { + // During testing the instance of VaultMenu we get passed back through this method gets a regenerated Vault ID, so our only option is to iterate here and commit a vault based on owner ID + for(Map.Entry entry : VaultContainer.VAULT_REGISTRY.entrySet()){ + if(entry.getKey() == ev.getEntity().getUUID()) + { + entry.getValue().commit(); + } + } + } + } + +} diff --git a/src/main/java/dev/zontreck/otemod/implementation/inits/MenuInitializer.java b/src/main/java/dev/zontreck/otemod/implementation/inits/MenuInitializer.java new file mode 100644 index 0000000..184d214 --- /dev/null +++ b/src/main/java/dev/zontreck/otemod/implementation/inits/MenuInitializer.java @@ -0,0 +1,18 @@ +package dev.zontreck.otemod.implementation.inits; + +import dev.zontreck.otemod.OTEMod; +import dev.zontreck.otemod.implementation.VaultMenu; +import net.minecraft.world.inventory.MenuType; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +public final class MenuInitializer +{ + public static final DeferredRegister> CONTAINERS = DeferredRegister.create(ForgeRegistries.MENU_TYPES, OTEMod.MOD_ID); + + public static final RegistryObject > VAULT = CONTAINERS.register("vault", ()-> new MenuType<>(VaultMenu::new)); + + + private MenuInitializer(){} +} diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 781ab9b..d62f9a6 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -19,7 +19,7 @@ modId="otemod" #mandatory # The version number of the mod - there's a few well known ${} variables useable here or just hardcode it # ${file.jarVersion} will substitute the value of the Implementation-Version as read from the mod's JAR file metadata # see the associated build.gradle script for how to populate this completely automatically during a build -version="1.3.2.2" #mandatory +version="1.3.3.0" #mandatory # A display name for the mod displayName="OTEMod Resources" #mandatory # A URL to query for updates for this mod. See the JSON update specification https://mcforge.readthedocs.io/en/latest/gettingstarted/autoupdate/ diff --git a/src/main/resources/assets/otemod/textures/gui/gui-template.aseprite b/src/main/resources/assets/otemod/textures/gui/gui-template.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..9d568817819748e1181827afccf76f44e9f1b777 GIT binary patch literal 31579 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

*Fl~eq+jm0)SwlmR#esT{4K|R>L})Mc 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 W+-Txta{2HlA`04pL-s}+68{IpWRai% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/otemod/textures/gui/vault.png b/src/main/resources/assets/otemod/textures/gui/vault.png new file mode 100644 index 0000000000000000000000000000000000000000..ea6861bad8a87b5f2d2024af5e3bf7edff745cd0 GIT binary patch literal 19986 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 IM6N<$f;0m4f&c&j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/otemod/textures/gui/vaultmenu.aseprite b/src/main/resources/assets/otemod/textures/gui/vaultmenu.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..9da8453b89fe8c5be6db766959498b73e1deb47d GIT binary patch literal 23091 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 EUx^L2Z2$lO literal 0 HcmV?d00001