Mod Loading Screen

# Mod Loading Screen

An advanced loading screen with the loading progress of mods. It works on all Minecraft versions, as it doesn’t even require Minecraft. Its only requirement is Fabric Loader 0.12.0 or later or Quilt Loader (specific versions of Quilt support are unknown). Do note that if you run this mod on a game other than Minecraft, the loading screen may not close itself.

## Agent

Mod Loading Screen provides a Java agent, which allows opening the loading screen before even the mod loader itself loads. This feature is primarily targeted at modpack developers who want to make a seamless loading experience. The agent can be used by passing `-javaagent:mod-loading-screen-1.0.4.jar` as a JVM argument. If the agent is used, the loading screen should *not* be installed as a mod.

## API

To depend on the API, use the Modrinth Maven. The API should be JiJed, and doing so will not include Mod Loading Screen inside your mod (it will only include the API, which is only a few kilobytes). The API is designed to have both forwards and backwards binary compatibility with future Mod Loading Screen versions. An API is provided for checking which API calls will return stubs and which ones are real.

“`gradle
repositories {
exclusiveContent {
forRepository {
maven {
name = “Modrinth”
url = “https://api.modrinth.com/maven”
}
}
filter {
includeGroup(“maven.modrinth”)
}
}
}

dependencies {
// implementation, not modImplementation!
include(implementation(“maven.modrinth:mod-loading-screen:1.0.4:api”))
}
“`

The API has two top-level classes: `LoadingScreenApi` and `AvailableFeatures`. Full javadocs are available for both classes.

Mirror Shield

# Mirror Shield

This resource pack replaces the default shield with a custom 3D model.

The design uses a mirror theme.

No OptiFine required. Vanilla compatible.

## More Shield Themes

– [Black](https://modrinth.com/project/noire-shield)
– [Blue](https://modrinth.com/project/blue-shield)
– [Creeper](https://modrinth.com/project/creeper-shield)
– [Dark Red](https://modrinth.com/project/dark-red-shield)
– [Navy Blue](https://modrinth.com/project/navy-blue-shield)
– [Rabbit](https://modrinth.com/project/rabbit-shield)
– [Red](https://modrinth.com/project/red-shield)

MineZRoy’s Avontuur – Music Disc

Changes music disc 13 to a very good song about MineZRoy. 100% recommend it!

Mellstroy (Я уже красный) Totem of Undying

**EN**: This resource pack replaces the original **Totem of Undying** with the Meme from Mellstroy **I’m already red, it won’t work out culturally** with sound. This meme has become very popular on TikTok over the past couple of years.

**RU**: Этот ресурспак заменяет оригинальный **Тотем бессмертия** на Мем от Меллстроя **Я уже красный, культурно не получится** со звуком, данный мем за последние пару лет стал очень популярным в Тик Ток

– [Омайгадность Тотем](https://modrinth.com/resourcepack/ohmygod-totem-of-undying)

– [Тотем Меллстрой](https://modrinth.com/resourcepack/mellstroy-totem-of-undying)

– [ПОЛНАЯ КОЛЛЕКЦИЯ РЕСУРСПАКОВ – МЕМЫ + СТРИМЕРЫ](https://modrinth.com/collection/sfDcDGAi)

![1](https://avatars.mds.yandex.net/get-vthumb/4628628/c035261781a3b6883b8cb8b8c554fd11/800×450)

LoginPhaseProxy

**LoginPhaseProxy** is a somewhat “*simple*” Velocity Plugin that allows you to proxy the LoginPluginMessagePacket from backend server to the player and LoginPluginResponsePacket from the player to the backend server. This is useful for modded backend servers that rely on Login Plugin Message communication to work, such as [AutoModpack](https://github.com/Skidamek/AutoModpack).

> Disclaimer: This plugin is in early development and may contain bugs and performance issues. Use it at your own risk.

## 🔁 When to use

| Author(s) | Mod |
|—————————————–|——————————————————————————–|
| [Skidam](https://github.com/Skidamek) | [AutoModpack](https://github.com/Skidamek/AutoModpack) (Fabric/Forge/Neoforge) |

> You’re welcome to suggest new use cases via [Issue](https://github.com/caiostoduto/LoginPhaseProxy/issues/new/choose) or [Pull Request](https://github.com/caiostoduto/LoginPhaseProxy/pulls)!

## ❓ What does it solve (detailed)

![Sequence Diagram](https://github.com/caiostoduto/LoginPhaseProxy/raw/main/docs/sequence_diagram_original.png)

Normal Setup ⦁ Made in Figma

On a normal Velocity setup, when a player connects to the proxy, they go through the (P ↔ V) Login Phase, exchanging packets with the Velocity until the proxy sends a Server Login Success Packet, completing the (P ↔ V) Login Phase and triggering the backend connection process. The backend server then goes through its own (V ↔ B) Login Phase, where it may send Login Plugin Message Packets to the Velocity, and they can’t be forwarded to the player, because the (P ↔ V) Login Phase is already complete, so Velocity reponds them with an empty data Login Plugin Response Packet, as it doesn’t know how to handle them. This is a problem for modded backend servers that rely on Login Plugin Message communication to work, such as [AutoModpack](https://github.com/Skidamek/AutoModpack), as they won’t be able to send the necessary data to the player during the Login Phase, and the player won’t be able to join the backend server. This plugin tries to solve this issue by proxying the Login Plugin Message communication between the player and the backend server, allowing modded backend servers to work with Velocity without any issues.

## ✨ How it works (detailed)

~~Basically black magic 🪄🔮~~. It uses [Java Reflection](https://www.oracle.com/technical-resources/articles/java/javareflection.html) to access the internal Velocity classes [ProxyServer](https://github.com/PaperMC/Velocity/blob/ad8de4361c9d6e93b818d3381e85b14e0c90ad05/proxy/src/main/java/com/velocitypowered/proxy/VelocityServer.java) -> [ConnectionManager](https://github.com/PaperMC/Velocity/blob/dev/3.0.0/proxy/src/main/java/com/velocitypowered/proxy/network/ConnectionManager.java)[[1]](https://github.com/caiostoduto/LoginPhaseProxy/blob/main/src/main/java/com/caiostoduto/loginPhaseProxy/initializer/VelocityChannelInitializer.java) to override the serverChannelInitializer[[2]](https://github.com/caiostoduto/LoginPhaseProxy/blob/main/src/main/java/com/caiostoduto/loginPhaseProxy/initializer/FrontendChannelInitializer.java) and backendChannelInitializer[[3]](https://github.com/caiostoduto/LoginPhaseProxy/blob/main/src/main/java/com/caiostoduto/loginPhaseProxy/initializer/BackendChannelInitializer.java), so it can intercept the Velocity communication with the player (P <-> V)[[4]](https://github.com/caiostoduto/LoginPhaseProxy/blob/main/src/main/java/com/caiostoduto/loginPhaseProxy/intercept/FrontendInterceptor.java) and backend server (V <-> S)[[5]](https://github.com/caiostoduto/LoginPhaseProxy/blob/main/src/main/java/com/caiostoduto/loginPhaseProxy/intercept/BackendInterceptor.java), respectively.

![Sequence Diagram](https://github.com/caiostoduto/LoginPhaseProxy/raw/main/docs/sequence_diagram_plugin.png)

Plugin Implementation ⦁ Made in Figma

With that, our plugin watches the Login Phase player connection until it sees a SetCompressionPacket(5) (optionally) and ServerLoginSuccessPacket(6), adding them to a buffer instead of sending them to the player and synthetically sends a loginAcknowledgedPacket(7) to the Velocity pipeline, tricking it into thinking the Login Phase is complete and starting the backend connection process. To make sure the Velocity doesn’t mess the packet interception and sending process, our plugin removes stealthly (so that it doesn’t trigger it’s handlerRemoved lifecycle[[6]](https://github.com/caiostoduto/LoginPhaseProxy/blob/main/src/main/java/com/caiostoduto/loginPhaseProxy/utils/StealthPipeline.java)) the handlers from the Velocity serverChannel pipeline[[4]](https://github.com/caiostoduto/LoginPhaseProxy/blob/main/src/main/java/com/caiostoduto/loginPhaseProxy/intercept/FrontendInterceptor.java) that were added after the Login Phase to Config Phase transition ([MinecraftCompressorAndLengthEncoder](https://github.com/PaperMC/Velocity/blob/ad8de4361c9d6e93b818d3381e85b14e0c90ad05/proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftCompressorAndLengthEncoder.java#L33) and [MinecraftCompressDecoder](https://github.com/PaperMC/Velocity/blob/ad8de4361c9d6e93b818d3381e85b14e0c90ad05/proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftCompressDecoder.java#L34), others are removed naturally afterwards). Also, our plugin adds the [MinecraftVarintLengthEncoder](https://github.com/PaperMC/Velocity/blob/ad8de4361c9d6e93b818d3381e85b14e0c90ad05/proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftVarintLengthEncoder.java#L33)[[4]](https://github.com/caiostoduto/LoginPhaseProxy/blob/main/src/main/java/com/caiostoduto/loginPhaseProxy/intercept/FrontendInterceptor.java) back (was removed at the transition) and sets the [MinecraftDecoder](https://github.com/PaperMC/Velocity/blob/ad8de4361c9d6e93b818d3381e85b14e0c90ad05/proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftDecoder.java#L34) state to StateRegistry.LOGIN[[4]](https://github.com/caiostoduto/LoginPhaseProxy/blob/main/src/main/java/com/caiostoduto/loginPhaseProxy/intercept/FrontendInterceptor.java) so the packets are properly encoded and decoded.

If the backend server sends a LoginPluginMessagePacket(10) during its Login Phase, our plugin will intercept it and send it to the player(11), and if the player sends a LoginPluginResponsePacket(12), our plugin will intercept it and send it to the backend server(13). This way, we can effectively proxy the LoginPluginMessagePacket and LoginPluginResponsePacket between the player and the backend server, allowing modded backend servers to work with Velocity without any issues. Then, when the backend server ends the Login Phase sending the ServerLoginSuccessPacket(15), our plugin will flush the buffered packets to the player, completing the Login Phase and allowing the player to join the backend server as normal. Afterwards, if the user sends a LoginAcknowledgedPacket (clientProtocolVersion >= ProtocolVersion.MINECRAFT_1_20_2)(16) after the Login Phase is complete, our plugin will simply ignore it, as it is not expected to be sent by the player at that point. Finally, the plugin will restore the [MinecraftDecoder](https://github.com/PaperMC/Velocity/blob/ad8de4361c9d6e93b818d3381e85b14e0c90ad05/proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftDecoder.java#L34) state to its previous state (Config Phase).

So, yeah, *basically black magic* 🪄🔮. Yayyyy!

## 🙏 Acknowledgements

– [Skidam](https://github.com/Skidamek), who inspired me to create this plugin!
– [lucas-gcp](https://github.com/lucas-gcp), who supported me and helped with testing!

Keep Inventory Always

## Keep Inventory Always
The mod turns on a game rule that allows you to save your inventory when you die in each world

## How to use
To use the mod, you only need to install it. Now when creating a world, the game rule keepInventory will always be enabled

## Dependencies
– Fabric loader requires [Fabric API](https://modrinth.com/mod/fabric-api)

Just Hotbar

# Just Hotbar
This texture pack changes the hearts and hotbar, making them simpler

![screenshot](https://cdn.modrinth.com/data/cached_images/df0abbfb2e3706f1b5066ada6f51ef258fd3e84c.png)

No Java Edition Branding – Remove from Start-Title Screen

Removes the Java Edition Text under The “Minecraft” Logo from the Title Screen!

![Remove the Java Edition Branding](https://cdn.modrinth.com/data/cached_images/e295bc3160c571db350a021c191c0e38ef18ca77.png)

![No Java Edition from Start-Title Screen](https://cdn.modrinth.com/data/cached_images/f1932c59e7a35dfb08e3f7902402266e0ffed094.png)

Also works for with other resourcepacks!
![No Java Edition Branding](https://cdn.modrinth.com/data/cached_images/e330329d1c801ecb40b0d5afaedb84ac59626d9e_0.webp)

![Remove Java Edition from Start/Title Screen](https://cdn.modrinth.com/data/cached_images/9dbded1f839850503cba0ff9d9a4e0c99f16c67f_0.webp)

Invisible Item Frames

![Invisible Item Frames](https://i.imgur.com/QPQHISB.png)

**A simple resource pack that makes item frames invisible**.

## Need a Minecraft Server? (Sponsor)

[![Sparked Host Minecraft server hosting – 25% off first month](https://i.imgur.com/2x8zFpe.png)](https://billing.sparkedhost.com/aff.php?aff=3138)
Get **25% off your first month** with Sparked Host.

## Quick info

– **Versions:** 1.4+ (full invisibility from 1.8+)
– **Works with almost all mods (Sodium/Iris and OptiFine too)**
– **No mods or commands required**
– **Additional files for invisible glow item frames and invisible map frames**
– **Versions below 1.8 will only have the center of the frame invisible (view images below for more info)**

## Showcase
**1.8+**
![(1.8+)](https://cdn.modrinth.com/data/gfr4403r/images/a368a68801bb9ad14a4c15b458b4098cd0bdc5e8.png)

1.4-1.7.10

![(1.4-1.7.10)](https://cdn.modrinth.com/data/gfr4403r/images/4d3c84fc6647772526a7c534c95d43ae76d2bccb.png)

FAQ

**Can I use this with other packs?**
> Yes, but place this pack in a **higher priority (above other packs)**.

**How do I remove item frames?**
> Enable debug hitboxes using **F3 + B** and break the frame.

**Can I use this pack in my modpack or server?**
> Yes you are free to use it, as long as you don’t claim this pack as your own.

**Why is my map/glow item frame not invisible?**
> You have to install those separately. They are available under **additional files** or the buttons near the top of this page.

**Does this make the game slower?**
> This pack actually slightly **improves the client-side framerate** in scenes with lots of item frames.

## Additional Files

– [Download Invisible Glow Item Frames](https://cdn.modrinth.com/data/gfr4403r/versions/SVxFWAm4/Invisible-Glow-Item-Frames-V4.zip)
– [Download Invisible Map Item Frames](https://cdn.modrinth.com/data/gfr4403r/versions/SVxFWAm4/Invisible-Map-Item-Frames-V1.zip)

## Need a Minecraft Server? (Sponsor)

[![Sparked Host Minecraft server hosting – 25% off first month](https://i.imgur.com/WJEfQRQ.png)](https://billing.sparkedhost.com/aff.php?aff=3138)

Use code **MattyWalker** for 25% off your first month.

Infinity Water Bucket

![Infinity Water Bucket](https://coolsimulations.net/wp-content/uploads/2022/01/infinitywaterbucket_logo_HD.png)

# Infinity Water Bucket Overview:

Infinity Water Bucket is a small mod that allows the Infinity enchantment for Water Buckets, using an anvil, providing an infinite portable water source. It also allows you to use the Infinity enchantment on empty Buckets, providing an infinite liquid void.

## Infinity Water Bucket Community:

Myself, along with other players of Infinity Water Bucket, can found at our Discord. There is also [a Guilded server](https://www.guilded.gg/i/Wkn138B2) for those who prefer to join it instead of Discord.

## Infinity Water Bucket Requirements:

Infinity Water Bucket can be played using either [Forge](https://files.minecraftforge.net/net/minecraftforge/forge/) or [Fabric](https://fabricmc.net/use/installer/) and even [Legacy Fabric](https://github.com/Legacy-Fabric/fabric-installer). On Fabric (including Legacy Fabric) the Fabric API is optional.

### Main Features:

– Uses Mixin to allow the Infinity enchantment to be applied to empty and water buckets.
– Works with Dispensers to place infinite water or pickup infinite liquids
– Prevents Enchanted empty buckets from milking cows
– Prevents Enchanted from picking up fish & axolotls
– Allows you to fill/consume cauldrons with an infinite supply
– Server-side, but without it on the client causes visual glitches
– Built-in Update Checker
– Mod Support
– [Caves and Cliffs Backport](https:/www.curseforge.com/minecraft/mc-mods/caves-and-cliffs-backport) – Prevents Axolotls pickups & Fill/Empty Cauldrons
– [Milk All The Mobs (Forge](https://www.curseforge.com/minecraft/mc-mods/milk-all-the-mobs/) & [Fabric](https://www.curseforge.com/minecraft/mc-mods/milk-all-the-mobs-fabric/)) – Prevents Enchanted empty buckets from milking supported entities
– [Get In The Bucket Mod](https://www.curseforge.com/minecraft/mc-mods/get-in-the-bucket-mod/) – Prevents Enchanted from picking up mobs
– Note that this mod is incompatible with [Infinity & Mending Unnerf](https://www.curseforge.com/minecraft/mc-mods/infinity-mending-unnerf)

![InfinityWaterBucketPreiview](https://coolsimulations.net/wp-content/uploads/2022/02/InfinityWaterBucketPreview.gif)

## Minecraft Version:

Please do not ask for Infinity Water Bucket to be ported to an older version of Minecraft. coolsim intends to maintain all current Minecraft versions (1.4.7+) and is willing to backport the Forge Version further when the associated RetroGradle updates are out. coolsim will begin to update Infinity Water Bucket to 1.19 as the corresponding Forge & Fabric Full Release version is released, so please don’t ask.

## License and Modpacks:

Please feel free to use Infinity Water Bucket in any modpack whilst making sure to give credit to coolsim. Do not redistribute Infinity Water Bucket in any form.