Navy Blue Shield

# Navy Blue Shield

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

The design uses a navy blue 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)
– [Mirror](https://modrinth.com/project/mirror-shield)
– [Rabbit](https://modrinth.com/project/rabbit-shield)
– [Red](https://modrinth.com/project/red-shield)

legacy-lwjgl3

# legacy-lwjgl3

A mod for [Ornithe](https://ornithemc.net) to run old versions of Minecraft with [lwjgl3](https://github.com/lwjgl/lwjgl3).

### Usage

#### Configuration

The mod offers optional configuration options via system properties or
environment variables.

A list of currently available options is provided below.

| Property Name | Environment variable name | Description |
|———————————————–|———————————————–|——————————————————|
| `legacy_lwjgl3.use_sdl` | `LEGACY_LWJGL3_USE_SDL` | Use SDL3 instead of GLFW for window & input handling |

### Unstable versions (CI)

Bleeding-Edge versions can be found in the Actions tab of the repository: https://github.com/moehreag/legacy-lwjgl3/actions.

### Building

This mod can be built using `./gradlew build`, jars can then be found at `build/libs/`.

### Dev

This mod is published to AxolotlClient’s maven, located at https://maven.axolotlclient.com.

“`kotlin
repositories {
maven(“https://maven.axolotlclient.com/releases”)
//maven(“https://maven.axolotlclient.com/snapshots”) // for unstable versions, optional
}

dependencies {
modImplementation(“io.github.moehreag:legacy-lwjgl3:“)
}
“`

### IME support for other mods

This mod provides IME preedit overlay functionality. If other mods provide independent text field implementations
they will not integrate with IME by default. legacy-lwjgl3 publishes a small API package which allows other mods
to integrate with IME input.

“`kotlin
repositories {
maven(“https://maven.axolotlclient.com/releases”)
//maven(“https://maven.axolotlclient.com/snapshots”) // for unstable versions, optional
}

dependencies {
modImplementation(“io.github.moehreag.legacy-lwjgl3:api:“)
}
“`

### Contributing

Contributions are welcome! Due to the project structure and its goal to support as many Minecraft versions
as possible working with the codebase is not trivial. If you are interested in contributing and need
assistance please join our [Discord server](https://discord.gg/BfmYmPw3Ts)

### Credits

This mod is forked from the version for legacyfabric authored by Zarzelcow: https://github.com/Zarzelcow/legacy-lwjgl3.
It is based on [lwjgl2](https://github.com/lwjgl/lwjgl) and a forge mod by gudenau: https://github.com/gudenau/MC-LWJGL3.

Additional Credits to:
– The OrnitheMC Project: https://ornithemc.net
– Contributors to this mod, especially: [Floweynt](https://github.com/Floweynt)

Mod Remapping API

# Mod Remapping API

Remaps non-Fabric mods made for a different environment (by default obfuscated) to the current runtime mappings.
Provides hooks to expand the remapping process from other mods.

This mod doesn’t depend on a specific Minecraft version and should work on any version that Fabric Loader can launch.

### Mods depending on this API:
– [Fabricated Legacy Forge](https://modrinth.com/mod/fabricated-forge)
– [Apron](https://modrinth.com/mod/Apron)
– [Fabricated-Rift](https://modrinth.com/mod/fabricated-rift)

## Credits
### Most of the original code of the mod remapper
– paulevsGitch’s mod BetaLoader

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)

MineGIT

![Pulling from GitHub while loading a world](https://cdn.modrinth.com/data/cached_images/c471de339da1baedf0de53874809ce9faf2b394e.png)

### Cloud sync for Minecraft worlds!
Sync and back up your worlds between multiple devices! Fully integrated into the Minecraft client for a seamless experience when loading, saving, and downloading worlds from the cloud.

## How does it work?
Worlds that you select are uploaded to your GitHub account as repositories. Every time you quit to the title screen, a commit of the current state of your world is created and pushed to the repository on GitHub. Whenever the world is loaded, the mod will check if any new versions of the world are available in the cloud, and if so, they will be downloaded to your device.

Since this mod uses Git internally, it also means that only the files in your world save folder that you modify will be uploaded and downloaded each time, saving storage space and internet bandwidth.

## How do I set it up?

There are several steps to setting up this mod, which include creating a personal access token for GitHub, as well as choosing the worlds you would like to enable MineGIT for.

### Video guide:

### Creating a GitHub personal access token
In order to do the first-time setup, you will need to generate a GitHub personal access token through the following steps:
1. Create an account on GitHub if you do not have one already (https://github.com)
2. Navigate to the [page to create a personal access token](https://github.com/settings/personal-access-tokens)
3. Click `Generate new token`
4. Enter any name (such as MineGIT) under `Token name`
5. Scroll to `Expiration` and set it to `No expiration` (so that you do not have to repeat this process when the token expires)
6. Under `Repository access` choose `All repositories`
7. Under `Permissions`, click `Add permissions` and select `Administration` and `Contents`
8. Set `Access` on the `Administration` and `Contents` lines to `Read and write`
9. Press `Generate token` and copy the generated token to be pasted into Minecraft later (the generated token should start with `github_pat_` and be followed by a long string of letters and numbers)

### Setting up in-game
Once the mod is installed and you are in-game, do the following steps to link your GitHub account with the mod:
1. Click on the cloud button on the bottom left corner of the world creation or world selection screen (If the button does not appear, you have already previously linked your account; see the section below entitled ‘Reconfiguring account linking’)
2. Enter your GitHub username and personal access token (PAT) that you created in the previous step on the new page that appears
3. Press the button labeled `Test credentials` to make sure you’ve entered the information properly
4. You may now exit the screen and proceed to either enable sync for a world or clone an existing one

#### Reconfiguring account linking
If you have already previously set up account linking and would like to change settings afterwards, you have a couple of options to get back to the configuration screen:
– **Configure through ModMenu:** If you have [ModMenu](https://modrinth.com/mod/mod-menu) installed, simply find the mod in the mods list and open the configuration from there
– **From the world clone screen:** There is a button in the top right corner of the world cloning screen that will open the configuration screen
– **From the world selection screen:** By holding alt and clicking on the world sync button on the bottom left of the world selection screen, you will be brought back into the configuration screen

### Enabling sync for a world
World syncing needs to be enabled individually for each world you would like to sync to your GitHub account. To enable sync for a world, do the following:
1. Select a world on the world selection screen
2. Press the cloud button in the bottom left of the screen labeled `Enable world sync`
3. Confirm your decision on the next screen

This process will create a new repository named `minegit_[world folder name]` on your GitHub account, initialize a Git repository in your world save folder, and push its current state to GitHub. From this point forward, loading the world will pull the world’s latest changes from GitHub, and exiting the world will push changes to GitHub.

You can now download this world on another device to effectively sync changes between them through the next step: cloning.

### Downloading a world on a different device (Cloning)
Cloning a world will download the exact state of the world as it was last saved to GitHub. Use the following steps to clone a world:
1. Navigate to [github.com](https://github.com) in a web browser
2. Click on your profile picture in the top right corner and then `Repositories`
3. Find the repository corresponding to the world you would like to clone and copy its name
4. Back in Minecraft, click on the button with an arrow pointing downwards labelled in the bottom left corner of either the world selection screen or world creation screen
5. Paste the name of the repository you copied earlier and press `Clone`
6. You are now able to load the world like normal and have changes be synced across your devices!

### Tips & Tricks
– If you want to exit a world without pushing it to GitHub (for example, if you wanted to restart Minecraft and load the same world without having to wait for changes to be pushed), you can hold `Alt` while clicking `Save and Quit to Title`. This will skip the ‘pushing to GitHub’ step.
– Git keeps a list of all of the worlds changes every time you exit the world. This is useful, since if you have a little knowledge of how to use the Git command line interface you can rollback your world to a previous version!
– If you want to save some storage space taken up by the size of the Git repository on your computer, or make the world quicker to clone on other devices, use the `Prune World Commits` button in the edit world menu. This will delete all of the old versions of your world, leaving only the most recent one.

## Report an issue
If you run into bugs, crashes, or simply have a suggestion on how to improve the mod, please feel free to open an issue on the mod’s [issue tracker](https://github.com/ModMonster/MineGIT/issues)!

Please include the current Minecraft version, Fabric version, mod version, and any relevant game logs when submitting an issue.

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!

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)