## Why?
ViaFabricPlus is supposed to be an alternative to [multiconnect](https://github.com/Earthcomputer/multiconnect) that offers more compactness and more clientside improvements,
as ViaFabricPlus implements all Via platforms (ViaVersion, ViaBackwards, ViaLegacy, ViaAprilFools, ViaBedrock) and adds tons of clientside fixes and QoL improvements like old rendering for all platforms.
## Issues and Contributions
If you encounter any issues, please report them on the
[issue tracker](https://github.com/FlorianMichael/ViaFabricPlus/issues).
Contributions in the form of pull requests are always welcome, please just stick to my code style and make sure your code is easy to update and compatible with other mods.
## Compatibility
ViaFabricPlus is structured to interfere with mods as little as possible.
It should work fine with most if not all mods and modpacks.
### Known incompatibilities:
- ***[ViaFabric](https://github.com/ViaVersion/ViaFabric)***
- ***[multiconnect](https://github.com/Earthcomputer/multiconnect)***
- ***[Krypton](https://github.com/astei/krypton)***
## Basic Features
- [x] ViaVersion implementation
- [x] ViaBackwards implementation
- [x] ViaLegacy implementation
- [x] ViaAprilFools implementation
- [x] ViaBedrock implementation
- [x] BetaCraft implementation for MP Pass
## Clientside related Fixes
- [x] Bounding boxes for all versions
- [x] Entity interaction and movement related packet fixes
- [x] Sync and async mouse/keyboard handling in <= 1.12.2
- [x] Mining speeds and item attributes
- [x] Filter item creative tabs for only available items
- [x] Combat system in <= 1.8
- [x] Tons of modifications to ViaVersion to make it more legit (Metadata fixes, broken packets, edge-cases)
- [x] Visual and screen related changes (newer Command Block features, GameMode selection, ...)
- [x] ViaAprilFools and ViaLegacy extensions to make it more legit
- [x] Chat signatures (secure login) for all versions (1.19.0, 1.19.1, 1.19.2)
- [x] Address parsing for all minecraft versions
- [x] PackFormats and HTTP Header for all resource pack versions
- [x] Raytrace related fixes in <= 1.8
- [x] Implementing HUD changes for <= b1.7.3
- [x] Chat lengths of all versions
- [x] Implementing non-sequenced block placement in <= 1.18.2
- [x] Animation related fixes (1.7 Sneaking, c0.30 walking animation, ...)
- [x] Fixed clientside packet handling (1.16.5 transactions, 1.19.0 tablist, ...)
## TODO
- [ ] ClassiCube implementation for MP Pass
- [ ] BetaCraft server list screen
- [ ] More extensions for Classic Protocol Extensions protocol
- [ ] Window click interactions in <= 1.16.5
## Dependencies
| Dependency | Download |
|------------------------|------------------------------------------------------------|
| Fabric API | https://github.com/fabricMC/fabric |
| ViaVersion | https://github.com/ViaVersion/ViaVersion |
| ViaBackwards | https://github.com/ViaVersion/ViaBackwards |
| Snake YAML | https://mvnrepository.com/artifact/org.yaml/snakeyaml/1.33 |
| ViaLegacy | https://github.com/RaphiMC/ViaLegacy |
| ViaAprilFools | https://github.com/RaphiMC/ViaAprilFools |
| ViaBedrock | https://github.com/RaphiMC/ViaBedrock |
| MC-Structs | https://github.com/Lenni0451/MCStructs |
| Reflect | https://github.com/Lenni0451/Reflect |
| ViaLoadingBase | https://github.com/FlorianMichael/ViaLoadingBase |
| Netty-transport-RakNet | https://github.com/CloudburstMC/Network/tree/develop |
## Setting up a Workspace
ViaFabricPlus uses Gradle, to make sure that it is installed properly you can check [Gradle's website](https://gradle.org/install/).
1. Clone the repository using `git clone https://github.com/FlorianMichael/ViaFabricPlus`.
2. CD into the local repository.
3. Run `./gradlew genSources`.
4. Open the folder as a Gradle project in your preferred IDE.
5. Run the mod.
## Settings
Settings are optional settings that can turn fixes on and off, originally they were used for debugging