more abstraction for settings renderer

This commit is contained in:
FlorianMichael 2023-02-28 12:33:02 +01:00
parent a5a86c9223
commit 510c3591ce
71 changed files with 307 additions and 195 deletions

View File

@ -15,10 +15,10 @@ import de.florianmichael.viafabricplus.definition.v1_8_x.ArmorPointsDefinition;
import de.florianmichael.viafabricplus.platform.ViaAprilFoolsPlatformImpl;
import de.florianmichael.viafabricplus.platform.ViaLegacyPlatformImpl;
import de.florianmichael.viafabricplus.provider.*;
import de.florianmichael.viafabricplus.setting.SettingGroup;
import de.florianmichael.viafabricplus.setting.groups.DebugSettings;
import de.florianmichael.viafabricplus.setting.groups.GeneralSettings;
import de.florianmichael.viafabricplus.setting.groups.VisualSettings;
import de.florianmichael.viafabricplus.settings.SettingGroup;
import de.florianmichael.viafabricplus.settings.groups.DebugSettings;
import de.florianmichael.viafabricplus.settings.groups.GeneralSettings;
import de.florianmichael.viafabricplus.settings.groups.VisualSettings;
import de.florianmichael.viafabricplus.util.SettingsSave;
import de.florianmichael.vialoadingbase.ViaLoadingBase;
import de.florianmichael.vialoadingbase.platform.InternalProtocolList;

View File

@ -1,7 +1,7 @@
package de.florianmichael.viafabricplus.injection.mixin.base;
import de.florianmichael.viafabricplus.screen.ProtocolSelectionScreen;
import de.florianmichael.viafabricplus.setting.groups.GeneralSettings;
import de.florianmichael.viafabricplus.settings.groups.GeneralSettings;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen;
import net.minecraft.client.gui.widget.ButtonWidget;

View File

@ -1,6 +1,6 @@
package de.florianmichael.viafabricplus.injection.mixin.base;
import de.florianmichael.viafabricplus.screen.settings.ValuesScreen;
import de.florianmichael.viafabricplus.screen.settings.SettingsScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.option.OptionsScreen;
import net.minecraft.client.gui.widget.ButtonWidget;
@ -24,8 +24,8 @@ public abstract class MixinOptionsScreen {
@Inject(method = "init", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/GridWidget$Adder;add(Lnet/minecraft/client/gui/widget/ClickableWidget;)Lnet/minecraft/client/gui/widget/ClickableWidget;", ordinal = 10, shift = At.Shift.AFTER), locals = LocalCapture.CAPTURE_FAILHARD)
public void addValuesButton(CallbackInfo ci, GridWidget gridWidget, GridWidget.Adder adder) {
adder.add(this.createButton(Text.literal("ViaFabricPlus").styled(style -> style.withColor(Formatting.GOLD)).append(" ").append("Settings..."), () -> {
ValuesScreen.INSTANCE.prevScreen = (OptionsScreen) (Object) this;
return ValuesScreen.INSTANCE;
SettingsScreen.INSTANCE.prevScreen = (OptionsScreen) (Object) this;
return SettingsScreen.INSTANCE;
}));
}
}

View File

@ -1,6 +1,6 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes;
import de.florianmichael.viafabricplus.setting.groups.DebugSettings;
import de.florianmichael.viafabricplus.settings.groups.DebugSettings;
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;

View File

@ -2,7 +2,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes;
import de.florianmichael.viafabricplus.definition.v1_12_2.SyncInputExecutor;
import de.florianmichael.viafabricplus.definition.v1_8_x.InventoryPacketSender;
import de.florianmichael.viafabricplus.setting.groups.DebugSettings;
import de.florianmichael.viafabricplus.settings.groups.DebugSettings;
import de.florianmichael.vialoadingbase.ViaLoadingBase;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import net.minecraft.client.MinecraftClient;

View File

@ -1,6 +1,6 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes;
import de.florianmichael.viafabricplus.setting.groups.DebugSettings;
import de.florianmichael.viafabricplus.settings.groups.DebugSettings;
import net.minecraft.client.network.PendingUpdateManager;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

View File

@ -4,7 +4,7 @@ import com.mojang.authlib.GameProfile;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import de.florianmichael.viafabricplus.definition.v1_8_x.IdlePacketExecutor;
import de.florianmichael.viafabricplus.injection.access.IClientPlayerEntity;
import de.florianmichael.viafabricplus.setting.groups.DebugSettings;
import de.florianmichael.viafabricplus.settings.groups.DebugSettings;
import de.florianmichael.vialoadingbase.ViaLoadingBase;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.input.Input;

View File

@ -2,7 +2,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.input;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import de.florianmichael.viafabricplus.definition.v1_12_2.SyncInputExecutor;
import de.florianmichael.viafabricplus.setting.groups.DebugSettings;
import de.florianmichael.viafabricplus.settings.groups.DebugSettings;
import de.florianmichael.vialoadingbase.ViaLoadingBase;
import net.minecraft.client.Keyboard;
import net.minecraft.client.MinecraftClient;

View File

@ -1,7 +1,7 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.input;
import de.florianmichael.viafabricplus.definition.v1_12_2.SyncInputExecutor;
import de.florianmichael.viafabricplus.setting.groups.DebugSettings;
import de.florianmichael.viafabricplus.settings.groups.DebugSettings;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.Mouse;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -1,6 +1,6 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.item;
import de.florianmichael.viafabricplus.setting.groups.DebugSettings;
import de.florianmichael.viafabricplus.settings.groups.DebugSettings;
import net.minecraft.entity.player.ItemCooldownManager;
import net.minecraft.item.Item;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -1,7 +1,7 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.item;
import de.florianmichael.viafabricplus.definition.ItemReleaseVersionDefinition;
import de.florianmichael.viafabricplus.setting.groups.GeneralSettings;
import de.florianmichael.viafabricplus.settings.groups.GeneralSettings;
import net.minecraft.client.MinecraftClient;
import net.minecraft.item.Item;
import net.minecraft.resource.featuretoggle.FeatureSet;

View File

@ -1,6 +1,6 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.item;
import de.florianmichael.viafabricplus.setting.groups.GeneralSettings;
import de.florianmichael.viafabricplus.settings.groups.GeneralSettings;
import de.florianmichael.vialoadingbase.ViaLoadingBase;
import de.florianmichael.vialoadingbase.platform.ComparableProtocolVersion;
import net.minecraft.item.ItemGroups;

View File

@ -1,6 +1,6 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.screen.merchant;
import de.florianmichael.viafabricplus.setting.groups.DebugSettings;
import de.florianmichael.viafabricplus.settings.groups.DebugSettings;
import net.minecraft.client.gui.screen.ingame.HandledScreen;
import net.minecraft.client.gui.screen.ingame.MerchantScreen;
import net.minecraft.entity.player.PlayerInventory;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.sodium;
package de.florianmichael.viafabricplus.injection.mixin.fixes.sodium;
import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaaprilfools;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaaprilfools;
import com.viaversion.viabackwards.api.BackwardsProtocol;
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.vialegacy;
package de.florianmichael.viafabricplus.injection.mixin.fixes.vialegacy;
import de.florianmichael.viafabricplus.definition.ChatLengthDefinition;
import net.raphimc.vialegacy.protocols.classic.protocolc0_28_30toc0_28_30cpe.data.ClassicProtocolExtension;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.vialegacy;
package de.florianmichael.viafabricplus.injection.mixin.fixes.vialegacy;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.protocol.AbstractProtocol;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.vialoadingbase;
package de.florianmichael.viafabricplus.injection.mixin.fixes.vialoadingbase;
import com.viaversion.viaversion.configuration.AbstractViaConfig;
import de.florianmichael.vialoadingbase.defaults.viaversion.CustomViaConfig;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion;
import com.viaversion.viaversion.legacy.bossbar.CommonBoss;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.protocol.packet.PacketWrapperImpl;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import com.viaversion.viaversion.api.protocol.version.VersionRange;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_11to1_10;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_11to1_10;
import de.florianmichael.viafabricplus.definition.ChatLengthDefinition;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_12to1_11_1;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_12to1_11_1;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.minecraft.nbt.BinaryTagIO;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_13to1_12_2;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_13to1_12_2;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.BlockFace;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_13to1_12_2;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_13to1_12_2;
import com.viaversion.viaversion.api.connection.ProtocolInfo;
import com.viaversion.viaversion.api.connection.UserConnection;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_13to1_12_2;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_13to1_12_2;
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.packets.WorldPackets;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_14to1_13_2;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_14to1_13_2;
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_15to1_14_4;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_15to1_14_4;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.connection.UserConnection;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_15to1_14_4;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_15to1_14_4;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.protocols.protocol1_15to1_14_4.Protocol1_15To1_14_4;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_16_2to1_16_1;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_16_2to1_16_1;
import com.viaversion.viaversion.protocols.protocol1_16_2to1_16_1.packets.WorldPackets;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_16to1_15_2;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_16to1_15_2;
import com.viaversion.viaversion.api.protocol.AbstractProtocol;
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_17to1_16_4;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_17to1_16_4;
import com.viaversion.viaversion.api.protocol.Protocol;
import com.viaversion.viaversion.api.protocol.packet.ClientboundPacketType;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_17to1_16_4;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_17to1_16_4;
import com.viaversion.viaversion.libs.fastutil.ints.IntList;
import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.storage.InventoryAcknowledgements;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_17to1_16_4;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_17to1_16_4;
import com.viaversion.viaversion.api.protocol.Protocol;
import com.viaversion.viaversion.api.protocol.packet.ClientboundPacketType;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_18_2to1_18;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_18_2to1_18;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.protocol.AbstractProtocol;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_19_1to1_19;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_19_1to1_19;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.minecraft.ProfileKey;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_19_3to1_19_1;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_19_3to1_19_1;
import com.google.common.primitives.Longs;
import com.viaversion.viabackwards.protocol.protocol1_19_1to1_19_3.storage.NonceStorage;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_9to1_8;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_9to1_8;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.minecraft.chunks.*;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_9to1_8;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_9to1_8;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.CommandBlockProvider;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_9to1_8;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_9to1_8;
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
import com.viaversion.viaversion.api.type.Type;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_9to1_8;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_9to1_8;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.storage.EntityTracker1_9;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_9to1_8;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_9to1_8;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.entities.EntityType;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_9to1_8;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_9to1_8;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.storage.MovementTracker;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.injection.mixin.viaversion.protocol1_9to1_8;
package de.florianmichael.viafabricplus.injection.mixin.fixes.viaversion.protocol1_9to1_8;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.ViaIdleThread;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -1,6 +1,6 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.visual;
import de.florianmichael.viafabricplus.setting.groups.VisualSettings;
import de.florianmichael.viafabricplus.settings.groups.VisualSettings;
import net.minecraft.client.gui.hud.ChatHud;
import net.minecraft.client.gui.hud.ChatHudLine;
import net.minecraft.client.gui.hud.MessageIndicator;

View File

@ -1,6 +1,6 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.visual;
import de.florianmichael.viafabricplus.setting.groups.VisualSettings;
import de.florianmichael.viafabricplus.settings.groups.VisualSettings;
import net.minecraft.client.gui.hud.ChatHud;
import net.minecraft.client.gui.hud.MessageIndicator;
import net.minecraft.client.gui.screen.ChatScreen;

View File

@ -1,6 +1,6 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.visual;
import de.florianmichael.viafabricplus.setting.groups.VisualSettings;
import de.florianmichael.viafabricplus.settings.groups.VisualSettings;
import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.network.packet.s2c.play.ServerMetadataS2CPacket;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -2,7 +2,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.visual;
import com.mojang.authlib.GameProfile;
import de.florianmichael.viafabricplus.definition.v1_8_x.ArmorPointsDefinition;
import de.florianmichael.viafabricplus.setting.groups.VisualSettings;
import de.florianmichael.viafabricplus.settings.groups.VisualSettings;
import net.minecraft.client.network.AbstractClientPlayerEntity;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.world.ClientWorld;

View File

@ -1,6 +1,6 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.visual;
import de.florianmichael.viafabricplus.setting.groups.VisualSettings;
import de.florianmichael.viafabricplus.settings.groups.VisualSettings;
import net.minecraft.block.entity.CommandBlockBlockEntity;
import net.minecraft.client.gui.screen.ingame.CommandBlockScreen;
import net.minecraft.client.gui.widget.CyclingButtonWidget;

View File

@ -1,7 +1,7 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.visual;
import de.florianmichael.viafabricplus.definition.c0_30.ClassicItemSelectionScreen;
import de.florianmichael.viafabricplus.setting.groups.VisualSettings;
import de.florianmichael.viafabricplus.settings.groups.VisualSettings;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen;
import org.spongepowered.asm.mixin.Mixin;

View File

@ -1,6 +1,6 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.visual;
import de.florianmichael.viafabricplus.setting.groups.VisualSettings;
import de.florianmichael.viafabricplus.settings.groups.VisualSettings;
import net.minecraft.client.render.item.ItemModels;
import net.minecraft.client.render.item.ItemRenderer;
import net.minecraft.client.render.model.BakedModel;

View File

@ -1,6 +1,6 @@
package de.florianmichael.viafabricplus.injection.mixin.fixes.visual;
import de.florianmichael.viafabricplus.setting.groups.VisualSettings;
import de.florianmichael.viafabricplus.settings.groups.VisualSettings;
import net.minecraft.block.entity.JigsawBlockEntity;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.ingame.JigsawBlockScreen;

View File

@ -2,7 +2,7 @@ package de.florianmichael.viafabricplus.integration;
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi;
import de.florianmichael.viafabricplus.screen.settings.ValuesScreen;
import de.florianmichael.viafabricplus.screen.settings.SettingsScreen;
import net.minecraft.client.gui.screen.Screen;
public class ModMenuImpl implements ModMenuApi {
@ -10,8 +10,8 @@ public class ModMenuImpl implements ModMenuApi {
@Override
public ConfigScreenFactory<?> getModConfigScreenFactory() {
return (ConfigScreenFactory<Screen>) parent -> {
ValuesScreen.INSTANCE.prevScreen = parent;
return ValuesScreen.INSTANCE;
SettingsScreen.INSTANCE.prevScreen = parent;
return SettingsScreen.INSTANCE;
};
}
}

View File

@ -4,7 +4,7 @@ import com.google.common.hash.Hashing;
import com.google.common.io.Resources;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.connection.UserConnection;
import de.florianmichael.viafabricplus.setting.groups.GeneralSettings;
import de.florianmichael.viafabricplus.settings.groups.GeneralSettings;
import net.raphimc.vialegacy.protocols.classic.protocola1_0_15toc0_28_30.providers.ClassicMPPassProvider;
import net.raphimc.vialegacy.protocols.release.protocol1_3_1_2to1_2_4_5.providers.OldAuthProvider;
import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.storage.HandshakeStorage;

View File

@ -2,6 +2,6 @@ package de.florianmichael.viafabricplus.screen.settings;
import net.minecraft.client.gui.widget.AlwaysSelectedEntryListWidget;
public abstract class DummySlot extends AlwaysSelectedEntryListWidget.Entry<DummySlot> {
public abstract class AbstractSettingRenderer extends AlwaysSelectedEntryListWidget.Entry<AbstractSettingRenderer> {
}

View File

@ -1,68 +0,0 @@
package de.florianmichael.viafabricplus.screen.settings;
import de.florianmichael.viafabricplus.setting.AbstractSetting;
import de.florianmichael.viafabricplus.setting.groups.GeneralSettings;
import de.florianmichael.viafabricplus.setting.impl.BooleanSetting;
import de.florianmichael.viafabricplus.setting.impl.ModeSetting;
import de.florianmichael.viafabricplus.setting.impl.ProtocolSyncBooleanSetting;
import de.florianmichael.viafabricplus.util.ScreenUtil;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import java.awt.*;
import java.util.Arrays;
public class SettingSlot extends DummySlot {
private final AbstractSetting<?> value;
public SettingSlot(AbstractSetting<?> value) {
this.value = value;
}
@Override
public Text getNarration() {
return Text.literal(this.value.getName());
}
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
if (value instanceof BooleanSetting booleanValue) {
booleanValue.setValue(!booleanValue.getValue());
ScreenUtil.playClickSound();
}
if (value instanceof ModeSetting modeValue) {
final int currentIndex = Arrays.stream(modeValue.getOptions()).toList().indexOf(modeValue.value) + 1;
modeValue.setValue(currentIndex > modeValue.getOptions().length - 1 ? 0 : currentIndex);
ScreenUtil.playClickSound();
}
return super.mouseClicked(mouseX, mouseY, button);
}
@Override
public void render(MatrixStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
matrices.push();
matrices.translate(x, y, 0);
DrawableHelper.fill(matrices, 0, 0, entryWidth - 4 /* int i = this.left + (this.width - entryWidth) / 2; int j = this.left + (this.width + entryWidth) / 2; */, entryHeight, Integer.MIN_VALUE);
final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
if (value instanceof BooleanSetting booleanValue) {
final String text = booleanValue.getValue() ? "On" : "Off";
Color color = booleanValue.getValue() ? Color.GREEN : Color.RED;
final int length = textRenderer.drawWithShadow(matrices, Formatting.GRAY + booleanValue.getName(), 3, entryHeight / 2F - textRenderer.fontHeight / 2F, -1);
if (value instanceof ProtocolSyncBooleanSetting protocolSyncBooleanValue) {
textRenderer.drawWithShadow(matrices, "(" + protocolSyncBooleanValue.getProtocolRange().toString() + ")", length + 2, entryHeight / 2F - textRenderer.fontHeight / 2F, -1);
if (GeneralSettings.getClassWrapper().automaticallyChangeValuesBasedOnTheCurrentVersion.getValue()) color = color.darker().darker();
}
textRenderer.drawWithShadow(matrices, text, entryWidth - textRenderer.getWidth(text) - 3 - 3, entryHeight / 2F - textRenderer.fontHeight / 2F, color.getRGB());
} else if (value instanceof ModeSetting modeValue) {
textRenderer.drawWithShadow(matrices, Formatting.GRAY + modeValue.getName(), 3, entryHeight / 2F - textRenderer.fontHeight / 2F, -1);
textRenderer.drawWithShadow(matrices, modeValue.getValue(), entryWidth - textRenderer.getWidth(modeValue.getValue()) - 3 - 3, entryHeight / 2F - textRenderer.fontHeight / 2F, -1);
}
matrices.pop();
}
}

View File

@ -1,8 +1,15 @@
package de.florianmichael.viafabricplus.screen.settings;
import de.florianmichael.viafabricplus.ViaFabricPlus;
import de.florianmichael.viafabricplus.setting.AbstractSetting;
import de.florianmichael.viafabricplus.setting.SettingGroup;
import de.florianmichael.viafabricplus.screen.settings.settingrenderer.BooleanSettingRenderer;
import de.florianmichael.viafabricplus.screen.settings.settingrenderer.ModeSettingRenderer;
import de.florianmichael.viafabricplus.screen.settings.settingrenderer.ProtocolSyncBooleanSettingRenderer;
import de.florianmichael.viafabricplus.screen.settings.settingrenderer.meta.TitleRenderer;
import de.florianmichael.viafabricplus.settings.AbstractSetting;
import de.florianmichael.viafabricplus.settings.SettingGroup;
import de.florianmichael.viafabricplus.settings.impl.BooleanSetting;
import de.florianmichael.viafabricplus.settings.impl.ModeSetting;
import de.florianmichael.viafabricplus.settings.impl.ProtocolSyncBooleanSetting;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.AlwaysSelectedEntryListWidget;
@ -11,13 +18,16 @@ import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import java.awt.*;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
@SuppressWarnings({"DataFlowIssue", "DuplicatedCode"})
public class ValuesScreen extends Screen {
public final static ValuesScreen INSTANCE = new ValuesScreen();
public class SettingsScreen extends Screen {
public final static SettingsScreen INSTANCE = new SettingsScreen();
public Screen prevScreen;
protected ValuesScreen() {
protected SettingsScreen() {
super(Text.literal("Values"));
}
@ -45,15 +55,27 @@ public class ValuesScreen extends Screen {
client.setScreen(prevScreen);
}
public static class SlotList extends AlwaysSelectedEntryListWidget<DummySlot> {
public static class SlotList extends AlwaysSelectedEntryListWidget<AbstractSettingRenderer> {
public static final Map<Class<? extends AbstractSetting<?>>, Class<? extends AbstractSettingRenderer>> RENDERER = new HashMap<>() {
{
put(BooleanSetting.class, BooleanSettingRenderer.class);
put(ProtocolSyncBooleanSetting.class, ProtocolSyncBooleanSettingRenderer.class);
put(ModeSetting.class, ModeSettingRenderer.class);
}
};
public SlotList(MinecraftClient minecraftClient, int width, int height, int top, int bottom, int entryHeight) {
super(minecraftClient, width, height, top, bottom, entryHeight);
for (SettingGroup group : ViaFabricPlus.getClassWrapper().getSettingGroups()) {
this.addEntry(new TitleSlot(group.getName()));
this.addEntry(new TitleRenderer(group.getName()));
for (AbstractSetting<?> setting : group.getSettings()) {
this.addEntry(new SettingSlot(setting));
try {
this.addEntry(RENDERER.get(setting.getClass()).getConstructor(setting.getClass()).newInstance(setting));
} catch (InvocationTargetException | InstantiationException | IllegalAccessException | NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
}
}

View File

@ -0,0 +1,48 @@
package de.florianmichael.viafabricplus.screen.settings.settingrenderer;
import de.florianmichael.viafabricplus.screen.settings.AbstractSettingRenderer;
import de.florianmichael.viafabricplus.settings.impl.BooleanSetting;
import de.florianmichael.viafabricplus.util.ScreenUtil;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import java.awt.*;
public class BooleanSettingRenderer extends AbstractSettingRenderer {
private final BooleanSetting value;
public BooleanSettingRenderer(BooleanSetting value) {
this.value = value;
}
@Override
public Text getNarration() {
return Text.literal(this.value.getName());
}
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
this.value.setValue(!this.value.getValue());
ScreenUtil.playClickSound();
return super.mouseClicked(mouseX, mouseY, button);
}
@Override
public void render(MatrixStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
matrices.push();
matrices.translate(x, y, 0);
DrawableHelper.fill(matrices, 0, 0, entryWidth - 4 /* int i = this.left + (this.width - entryWidth) / 2; int j = this.left + (this.width + entryWidth) / 2; */, entryHeight, Integer.MIN_VALUE);
final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
final String text = this.value.getValue() ? "On" : "Off";
textRenderer.drawWithShadow(matrices, Formatting.GRAY + this.value.getName(), 3, entryHeight / 2F - textRenderer.fontHeight / 2F, -1);
textRenderer.drawWithShadow(matrices, text, entryWidth - textRenderer.getWidth(text) - 3 - 3, entryHeight / 2F - textRenderer.fontHeight / 2F, this.value.getValue() ? Color.GREEN.getRGB() : Color.RED.getRGB());
matrices.pop();
}
}

View File

@ -0,0 +1,52 @@
package de.florianmichael.viafabricplus.screen.settings.settingrenderer;
import de.florianmichael.viafabricplus.screen.settings.AbstractSettingRenderer;
import de.florianmichael.viafabricplus.settings.AbstractSetting;
import de.florianmichael.viafabricplus.settings.groups.GeneralSettings;
import de.florianmichael.viafabricplus.settings.impl.BooleanSetting;
import de.florianmichael.viafabricplus.settings.impl.ModeSetting;
import de.florianmichael.viafabricplus.settings.impl.ProtocolSyncBooleanSetting;
import de.florianmichael.viafabricplus.util.ScreenUtil;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import java.awt.*;
import java.util.Arrays;
public class ModeSettingRenderer extends AbstractSettingRenderer {
private final ModeSetting value;
public ModeSettingRenderer(ModeSetting value) {
this.value = value;
}
@Override
public Text getNarration() {
return Text.literal(this.value.getName());
}
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
final int currentIndex = Arrays.stream(this.value.getOptions()).toList().indexOf(this.value.value) + 1;
this.value.setValue(currentIndex > this.value.getOptions().length - 1 ? 0 : currentIndex);
ScreenUtil.playClickSound();
return super.mouseClicked(mouseX, mouseY, button);
}
@Override
public void render(MatrixStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
matrices.push();
matrices.translate(x, y, 0);
DrawableHelper.fill(matrices, 0, 0, entryWidth - 4 /* int i = this.left + (this.width - entryWidth) / 2; int j = this.left + (this.width + entryWidth) / 2; */, entryHeight, Integer.MIN_VALUE);
final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
textRenderer.drawWithShadow(matrices, Formatting.GRAY + this.value.getName(), 3, entryHeight / 2F - textRenderer.fontHeight / 2F, -1);
textRenderer.drawWithShadow(matrices, this.value.getValue(), entryWidth - textRenderer.getWidth(this.value.getValue()) - 3 - 3, entryHeight / 2F - textRenderer.fontHeight / 2F, -1);
matrices.pop();
}
}

View File

@ -0,0 +1,57 @@
package de.florianmichael.viafabricplus.screen.settings.settingrenderer;
import de.florianmichael.viafabricplus.screen.settings.AbstractSettingRenderer;
import de.florianmichael.viafabricplus.settings.AbstractSetting;
import de.florianmichael.viafabricplus.settings.groups.GeneralSettings;
import de.florianmichael.viafabricplus.settings.impl.BooleanSetting;
import de.florianmichael.viafabricplus.settings.impl.ModeSetting;
import de.florianmichael.viafabricplus.settings.impl.ProtocolSyncBooleanSetting;
import de.florianmichael.viafabricplus.util.ScreenUtil;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import java.awt.*;
import java.util.Arrays;
public class ProtocolSyncBooleanSettingRenderer extends AbstractSettingRenderer {
private final ProtocolSyncBooleanSetting value;
public ProtocolSyncBooleanSettingRenderer(ProtocolSyncBooleanSetting value) {
this.value = value;
}
@Override
public Text getNarration() {
return Text.literal(this.value.getName());
}
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
this.value.setValue(!this.value.getValue());
ScreenUtil.playClickSound();
return super.mouseClicked(mouseX, mouseY, button);
}
@Override
public void render(MatrixStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
matrices.push();
matrices.translate(x, y, 0);
DrawableHelper.fill(matrices, 0, 0, entryWidth - 4 /* int i = this.left + (this.width - entryWidth) / 2; int j = this.left + (this.width + entryWidth) / 2; */, entryHeight, Integer.MIN_VALUE);
final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
final String text = this.value.getValue() ? "On" : "Off";
Color color = this.value.getValue() ? Color.GREEN : Color.RED;
final int length = textRenderer.drawWithShadow(matrices, Formatting.GRAY + this.value.getName(), 3, entryHeight / 2F - textRenderer.fontHeight / 2F, -1);
textRenderer.drawWithShadow(matrices, "(" + this.value.getProtocolRange().toString() + ")", length + 2, entryHeight / 2F - textRenderer.fontHeight / 2F, -1);
if (GeneralSettings.getClassWrapper().automaticallyChangeValuesBasedOnTheCurrentVersion.getValue()) color = color.darker().darker();
textRenderer.drawWithShadow(matrices, text, entryWidth - textRenderer.getWidth(text) - 3 - 3, entryHeight / 2F - textRenderer.fontHeight / 2F, color.getRGB());
matrices.pop();
}
}

View File

@ -1,15 +1,16 @@
package de.florianmichael.viafabricplus.screen.settings;
package de.florianmichael.viafabricplus.screen.settings.settingrenderer.meta;
import de.florianmichael.viafabricplus.screen.settings.AbstractSettingRenderer;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
public class TitleSlot extends DummySlot {
public class TitleRenderer extends AbstractSettingRenderer {
private final String name;
public TitleSlot(String name) {
public TitleRenderer(String name) {
this.name = name;
}

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.setting;
package de.florianmichael.viafabricplus.settings;
import com.google.gson.JsonObject;

View File

@ -1,4 +1,4 @@
package de.florianmichael.viafabricplus.setting;
package de.florianmichael.viafabricplus.settings;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,8 +1,8 @@
package de.florianmichael.viafabricplus.setting.groups;
package de.florianmichael.viafabricplus.settings.groups;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import de.florianmichael.viafabricplus.setting.SettingGroup;
import de.florianmichael.viafabricplus.setting.impl.ProtocolSyncBooleanSetting;
import de.florianmichael.viafabricplus.settings.SettingGroup;
import de.florianmichael.viafabricplus.settings.impl.ProtocolSyncBooleanSetting;
import de.florianmichael.vialoadingbase.platform.ProtocolRange;
import net.raphimc.vialegacy.api.LegacyProtocolVersion;

View File

@ -1,8 +1,8 @@
package de.florianmichael.viafabricplus.setting.groups;
package de.florianmichael.viafabricplus.settings.groups;
import de.florianmichael.viafabricplus.setting.SettingGroup;
import de.florianmichael.viafabricplus.setting.impl.BooleanSetting;
import de.florianmichael.viafabricplus.setting.impl.ModeSetting;
import de.florianmichael.viafabricplus.settings.SettingGroup;
import de.florianmichael.viafabricplus.settings.impl.BooleanSetting;
import de.florianmichael.viafabricplus.settings.impl.ModeSetting;
public class GeneralSettings extends SettingGroup {
private final static GeneralSettings self = new GeneralSettings();

View File

@ -1,8 +1,8 @@
package de.florianmichael.viafabricplus.setting.groups;
package de.florianmichael.viafabricplus.settings.groups;
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
import de.florianmichael.viafabricplus.setting.SettingGroup;
import de.florianmichael.viafabricplus.setting.impl.ProtocolSyncBooleanSetting;
import de.florianmichael.viafabricplus.settings.SettingGroup;
import de.florianmichael.viafabricplus.settings.impl.ProtocolSyncBooleanSetting;
import de.florianmichael.vialoadingbase.platform.ProtocolRange;
import net.raphimc.vialegacy.api.LegacyProtocolVersion;

View File

@ -1,8 +1,8 @@
package de.florianmichael.viafabricplus.setting.impl;
package de.florianmichael.viafabricplus.settings.impl;
import com.google.gson.JsonObject;
import de.florianmichael.viafabricplus.setting.AbstractSetting;
import de.florianmichael.viafabricplus.setting.SettingGroup;
import de.florianmichael.viafabricplus.settings.AbstractSetting;
import de.florianmichael.viafabricplus.settings.SettingGroup;
public class BooleanSetting extends AbstractSetting<Boolean> {

View File

@ -1,8 +1,8 @@
package de.florianmichael.viafabricplus.setting.impl;
package de.florianmichael.viafabricplus.settings.impl;
import com.google.gson.JsonObject;
import de.florianmichael.viafabricplus.setting.AbstractSetting;
import de.florianmichael.viafabricplus.setting.SettingGroup;
import de.florianmichael.viafabricplus.settings.AbstractSetting;
import de.florianmichael.viafabricplus.settings.SettingGroup;
import java.util.Arrays;

View File

@ -1,8 +1,8 @@
package de.florianmichael.viafabricplus.setting.impl;
package de.florianmichael.viafabricplus.settings.impl;
import com.google.gson.JsonObject;
import de.florianmichael.viafabricplus.setting.SettingGroup;
import de.florianmichael.viafabricplus.setting.groups.GeneralSettings;
import de.florianmichael.viafabricplus.settings.SettingGroup;
import de.florianmichael.viafabricplus.settings.groups.GeneralSettings;
import de.florianmichael.vialoadingbase.ViaLoadingBase;
import de.florianmichael.vialoadingbase.platform.ProtocolRange;

View File

@ -4,8 +4,8 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import de.florianmichael.viafabricplus.ViaFabricPlus;
import de.florianmichael.viafabricplus.setting.AbstractSetting;
import de.florianmichael.viafabricplus.setting.SettingGroup;
import de.florianmichael.viafabricplus.settings.AbstractSetting;
import de.florianmichael.viafabricplus.settings.SettingGroup;
import de.florianmichael.vialoadingbase.ViaLoadingBase;
import de.florianmichael.vialoadingbase.platform.InternalProtocolList;

View File

@ -94,37 +94,37 @@
"fixes.screen.screenhandler.MixinBrewingStandScreenHandler_FuelSlot",
"fixes.screen.screenhandler.MixinPlayerScreenHandler",
"fixes.screen.screenhandler.MixinScreenHandler",
"sodium.MixinChunkTracker",
"viaaprilfools.MixinProtocol1_16to20w14infinite",
"vialegacy.MixinExtensionProtocolMetadataStorage",
"vialegacy.MixinProtocol1_8to1_7_6_10",
"vialoadingbase.MixinCustomViaConfig",
"viaversion.MixinCommonBoss",
"viaversion.MixinPacketWrapperImpl",
"viaversion.MixinProtocolVersion",
"viaversion.protocol1_11to1_10.MixinProtocol1_11To1_10",
"viaversion.protocol1_12to1_11_1.MixinChatItemRewriter",
"viaversion.protocol1_13to1_12_2.MixinAbstractFenceConnectionHandler",
"viaversion.protocol1_13to1_12_2.MixinGlassConnectionHandler",
"viaversion.protocol1_13to1_12_2.MixinWorldPackets1_13",
"viaversion.protocol1_14to1_13_2.MixinInventoryPackets_2",
"viaversion.protocol1_15to1_14_4.MixinMetadataRewriter1_15To1_14_4",
"viaversion.protocol1_15to1_14_4.MixinProtocol1_15To1_14_4",
"viaversion.protocol1_16_2to1_16_1.MixinWorldPackets_2",
"viaversion.protocol1_16to1_15_2.MixinProtocol1_16To1_15_2",
"viaversion.protocol1_17to1_16_4.MixinEntityPackets1_17",
"viaversion.protocol1_17to1_16_4.MixinInventoryAcknowledgements",
"viaversion.protocol1_17to1_16_4.MixinWorldPackets1_17",
"viaversion.protocol1_18_2to1_18.MixinProtocol1_18_2To1_18",
"viaversion.protocol1_19_1to1_19.MixinProtocol1_19_1To1_19",
"viaversion.protocol1_19_3to1_19_1.MixinProtocol1_19_3To1_19_1",
"viaversion.protocol1_9to1_8.MixinChunk1_8Type",
"viaversion.protocol1_9to1_8.MixinCommandBlockProvider",
"viaversion.protocol1_9to1_8.MixinEntityPackets_6_1",
"viaversion.protocol1_9to1_8.MixinEntityTracker1_9",
"viaversion.protocol1_9to1_8.MixinMetadataRewriter1_9To1_8",
"viaversion.protocol1_9to1_8.MixinMovementTracker",
"viaversion.protocol1_9to1_8.MixinViaIdleThread"
"fixes.sodium.MixinChunkTracker",
"fixes.viaaprilfools.MixinProtocol1_16to20w14infinite",
"fixes.vialegacy.MixinExtensionProtocolMetadataStorage",
"fixes.vialegacy.MixinProtocol1_8to1_7_6_10",
"fixes.vialoadingbase.MixinCustomViaConfig",
"fixes.viaversion.MixinCommonBoss",
"fixes.viaversion.MixinPacketWrapperImpl",
"fixes.viaversion.MixinProtocolVersion",
"fixes.viaversion.protocol1_11to1_10.MixinProtocol1_11To1_10",
"fixes.viaversion.protocol1_12to1_11_1.MixinChatItemRewriter",
"fixes.viaversion.protocol1_13to1_12_2.MixinAbstractFenceConnectionHandler",
"fixes.viaversion.protocol1_13to1_12_2.MixinGlassConnectionHandler",
"fixes.viaversion.protocol1_13to1_12_2.MixinWorldPackets1_13",
"fixes.viaversion.protocol1_14to1_13_2.MixinInventoryPackets_2",
"fixes.viaversion.protocol1_15to1_14_4.MixinMetadataRewriter1_15To1_14_4",
"fixes.viaversion.protocol1_15to1_14_4.MixinProtocol1_15To1_14_4",
"fixes.viaversion.protocol1_16_2to1_16_1.MixinWorldPackets_2",
"fixes.viaversion.protocol1_16to1_15_2.MixinProtocol1_16To1_15_2",
"fixes.viaversion.protocol1_17to1_16_4.MixinEntityPackets1_17",
"fixes.viaversion.protocol1_17to1_16_4.MixinInventoryAcknowledgements",
"fixes.viaversion.protocol1_17to1_16_4.MixinWorldPackets1_17",
"fixes.viaversion.protocol1_18_2to1_18.MixinProtocol1_18_2To1_18",
"fixes.viaversion.protocol1_19_1to1_19.MixinProtocol1_19_1To1_19",
"fixes.viaversion.protocol1_19_3to1_19_1.MixinProtocol1_19_3To1_19_1",
"fixes.viaversion.protocol1_9to1_8.MixinChunk1_8Type",
"fixes.viaversion.protocol1_9to1_8.MixinCommandBlockProvider",
"fixes.viaversion.protocol1_9to1_8.MixinEntityPackets_6_1",
"fixes.viaversion.protocol1_9to1_8.MixinEntityTracker1_9",
"fixes.viaversion.protocol1_9to1_8.MixinMetadataRewriter1_9To1_8",
"fixes.viaversion.protocol1_9to1_8.MixinMovementTracker",
"fixes.viaversion.protocol1_9to1_8.MixinViaIdleThread"
],
"injectors": {
"defaultRequire": 1