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.
> 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 | AutoModpack (Fabric/Forge/Neoforge) |
> You’re welcome to suggest new use cases via Issue or Pull Request!
## ❓ What does it solve (detailed)

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, 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 to access the internal Velocity classes ProxyServer -> ConnectionManager[[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.

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 and MinecraftCompressDecoder, others are removed naturally afterwards). Also, our plugin adds the MinecraftVarintLengthEncoder[[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 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 state to its previous state (Config Phase).
So, yeah, *basically black magic* 🪄🔮. Yayyyy!
## 🙏 Acknowledgements
– Skidam, who inspired me to create this plugin!
– lucas-gcp, who supported me and helped with testing!
Log Cleaner
A lightweight mod that cleans old, unused log files.
The best thing is that this mod keeps files not based on creation date, but the most recent access (of any kind) to the file, so logs that are still being accessed for whatever reason are not removed unwillingly.
It works both client-side only and server-side only, and works in every Minecraft version.
By default, it will clean logs that haven’t been used in more than 14 days, so there’s plenty of time in case you ever need them for debugging, but you can configure it to any amount of days you want.
## Configuration
You can find the mod’s configuration file in `config/logcleaner.json`. There’s two options you can change in there:
– `daysOld`: The number of days a log has to have been unused in order for it to be deleted. Defaults to `14`
– `silent`: If set to `true`, Log Cleaner will not send a message with the amount of deleted log files to the log. Defaults to `false`
Lo-Fi Music
# Lo-Fi Music 🎶
This resource pack adds Monolism’s wonderful remixes of the Minecraft soundtrack to the game! This pack includes new songs for:
– Echo in the Wind
– A Familiar Room
– Bromeliad
– Crescent Dunes
– Relic
This pack is not compatible with any other resource pack that modifies these songs.
MAKE YOUR BUILDING LIMIT UP
# MAKE YOUR BUILDING LIMIT UP
_**Think Minecraft doesn’t have enough building space? Want to build taller buildings? Try our data pack and you can increase the building limit up to 4064 blocks!!**_

## How to install it?
**You may need to create your game world before install the data pack**
1.Open your game folder(“.minecraft”)
### If you use version isolation:
2.Open your “versions” folder
3.Choose your version
4.Open your “saves” folder
5.Choose your save
6.Open your “datapacks” folder
7.Put our data pack in the folder
### If you Don’t use version isolation
2.Open your “saves” folder
3.Choose your save
4.Open your “datapacks” folder
5.Put our data pack in the folder
**PLEASE PAY ATTENTION!! This datapack may affect the normal operation of other mods**

_This is a DATAPACK! Please put it in the “datapacks” folder in your saves folder_
**NOT THE “recoursepacks” FOLDER**
Less Obstructive Better Leaves
Less Obstructive Better Leaves makes Leaves look better by making it not be as flat.
the texture pack is diffrent than other better leaves because it is not as obstructive + it is not that bad with fast textures
the pack only replace the models so you can have other packs over it.
_this texture pack can get a bit laggy because of all of the new cubes on the block_
Legacy Glint
## What does this pack do?
Legacy Glint brings back the ‘old’ enchantment glint texture for armor from pre 1.19.3, to 1.19.4 and beyond
Killer Head






___
## What’s Killer Head ?
**Killer Head** is a project to drop the killer’s head when his victim dies.
## How it works ?
### Edit player loot table `entities/player.json`
Adds a player head to the death of a player and correlates the characteristics of the killer.
## Complementary
You can also use Drop Head.
Here’s Stackable Heads which is interesting to use.
## Compatibility
**Killer Head** should work anywhere.
## Support me!
Join my Hardcore Minecraft server: `38.143.19.130:51965`
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
Kai Fixes Sand
As the name suggests, Kai Fixes Sand improves the textures of sand and related blocks in Minecraft to make them more usable as building blocks.
________________________________________________________________________________________________
This resource pack is a small part of a much larger resource pack being worked on called Kai Fixes Minecraft.
The concept behind what Kai Fixes Minecraft is bringing to the table is:
– Significantly reduce redundancies within the block textures
– Greatly increase the building opportunities from blocks that often get overlooked
– Reduce the unintentional texture repetition effect without heavy reliance on noise or random block variants by focusing on patterns that seamlessly splice together and proper shading
– Identify colors missing from the game and the best texture to go with that color while maintaining balance with what feels appropriate for the block in accordance with its fit in the game
– Maintain the highest quality of block textures in the Minecraft ecosystem
________________________________________________________________________________________________
Terms of Use
– Captain Kai is the creator and owner of this resource pack
– If you use assets from this resource pack in your own, credit is required. Preferably including its name and a link to an official CurseForge, Modrinth, or Planet Minecraft page
– You may not port this resource pack or its assets to work on Minecraft Bedrock Edition
– You may not include assets from this resource pack in a paid product or paid access to a product
Kai Fixes Quartz
As the name suggests, Kai Fixes Quartz improves the texture of quartz and related blocks in Minecraft to make them more usable as building blocks.
________________________________________________________________________________________________
This resource pack is a small part of a much larger resource pack being worked on called Kai Fixes Minecraft.
The concept behind what Kai Fixes Minecraft is bringing to the table is:
– Significantly reduce redundancies within the block textures
– Greatly increase the building opportunities from blocks that often get overlooked
– Reduce the unintentional texture repetition effect without heavy reliance on noise or random block variants by focusing on patterns that seamlessly splice together and proper shading
– Identify colors missing from the game and the best texture to go with that color while maintaining balance with what feels appropriate for the block in accordance with its fit in the game
– Maintain the highest quality of block textures in the Minecraft ecosystem
________________________________________________________________________________________________
Terms of Use
– Captain Kai is the creator and owner of this resource pack
– If you use assets from this resource pack in your own, credit is required. Preferably including its name and a link to an official CurseForge, Modrinth, or Planet Minecraft page
– You may not port this resource pack or its assets to work on Minecraft Bedrock Edition
– You may not include assets from this resource pack in a paid product or paid access to a product