ViaAprilFools is not usable by itself as a standalone software, as it is an addon for ViaVersion which adds more protocol translators.
ViaAprilFools is intended to be implemented in a ViaVersion based protocol translator.
If you are looking to implement ViaAprilFools in your own software you can start by reading the [Usage](#usage) section.
If you just want to use ViaAprilFools yourself you can check out some projects which implement it in the [Projects](#projects-implementing-viaaprilfools) section.
- [ViaProxy](https://github.com/RaphiMC/ViaProxy): Standalone proxy which uses ViaVersion to translate between Minecraft versions. Allows Minecraft 1.7+ clients to join to any version server.
- [ViaFabricPlus](https://github.com/FlorianMichael/ViaFabricPlus): Fabric mod for the latest Minecraft version with QoL fixes and enhancements to the gameplay.
ViaAprilFools requires you to have an already functional ViaVersion implementation for your platform.
If you don't have one you can check out [ViaProtocolHack](https://github.com/RaphiMC/ViaProtocolHack) for an abstracted and simplified, but still customizable implementation,
or [ViaLoadingBase](https://github.com/FlorianMichael/ViaLoadingBase) for a quick and easy implementation.
You can also go to the official [ViaVersion](https://github.com/ViaVersion) repositories and look at their server and proxy implementations.
### Base Implementation
#### ViaAprilFools platform implementation
To get started you should create a class which implements the ViaAprilFools platform interface.
Here is an example:
```java
public class ViaAprilFoolsPlatformImpl implements ViaAprilFoolsPlatform {
public ViaAprilFoolsPlatformImpl() {
this.init(this.getDataFolder());
}
@Override
public Logger getLogger() {
return Via.getPlatform().getLogger();
}
@Override
public File getDataFolder() {
return Via.getPlatform().getDataFolder();
}
}
```
This is a very basic implementation which just uses the ViaVersion logger and data folder.
#### Loading the platform
After you have created your platform implementation you should load it in your ViaVersion implementation.