repositories {
jcenter()
+ maven { url "https://dl.bintray.com/shedaniel/legacy-yarn-updated" }
}
dependencies {
minecraft "com.mojang:minecraft:${rootProject.fabric_minecraft_version}"
- mappings "net.fabricmc:yarn:${rootProject.fabric_minecraft_version}+build.${rootProject.yarn_build}:v2"
+ mappings "me.shedaniel:legacy-yarn:${rootProject.yarn_build}:v2"
modCompile "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
modCompile "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}"
- modCompile("me.shedaniel.cloth:cloth-events:${rootProject.cloth_events_version}") {
+ modCompile("me.shedaniel.cloth.api:cloth-client-events-v0:${rootProject.cloth_version}") {
transitive = false
}
modImplementation("me.shedaniel.cloth:config-2:${rootProject.cloth_config_version}")
modImplementation("io.github.prospector:modmenu:${rootProject.modmenu_version}") {
transitive = false
}
- include("me.shedaniel.cloth:cloth-events:${rootProject.cloth_events_version}") {
+ include("me.shedaniel.cloth.api:cloth-client-events-v0:${rootProject.cloth_version}") {
transitive = false
}
include("me.shedaniel.cloth:config-2:${rootProject.cloth_config_version}") {
import me.shedaniel.clothconfig2.gui.entries.IntegerSliderEntry;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.resource.language.I18n;
+import net.minecraft.text.LiteralText;
+import net.minecraft.text.Text;
+import net.minecraft.text.TranslatableText;
import net.minecraft.util.math.MathHelper;
import java.util.Optional;
public class LOModMenuEntry implements ModMenuApi {
- @Override
- public String getModId() {
- return "lightoverlay";
- }
-
@Override
public ConfigScreenFactory<?> getModConfigScreenFactory() {
return this::getConfigScreenByCloth;
}
public Screen getConfigScreenByCloth(Screen parent) {
- ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle("key.lightoverlay.category");
+ ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle(new TranslatableText("key.lightoverlay.category"));
ConfigEntryBuilder eb = builder.entryBuilder();
- ConfigCategory general = builder.getOrCreateCategory("config.lightoverlay.general");
- general.addEntry(eb.startTextDescription("§7" + I18n.translate("description.lightoverlay.caching")).build());
- general.addEntry(eb.startBooleanToggle("config.lightoverlay.caching", LightOverlay.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.caching = bool).build());
- general.addEntry(eb.startIntSlider("config.lightoverlay.reach", LightOverlay.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> "Reach: " + integer + " Blocks").setSaveConsumer(integer -> LightOverlay.reach = integer).build());
- IntegerSliderEntry crossLevel = eb.startIntSlider("config.lightoverlay.crossLevel", LightOverlay.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> "Cross Level: " + integer).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build();
+ ConfigCategory general = builder.getOrCreateCategory(new TranslatableText("config.lightoverlay.general"));
+ general.addEntry(eb.startTextDescription(Text.method_30163("§7" + I18n.translate("description.lightoverlay.caching"))).build());
+ general.addEntry(eb.startBooleanToggle(new TranslatableText("config.lightoverlay.caching"), LightOverlay.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.caching = bool).build());
+ general.addEntry(eb.startIntSlider(new TranslatableText("config.lightoverlay.reach"), LightOverlay.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> Text.method_30163("Reach: " + integer + " Blocks")).setSaveConsumer(integer -> LightOverlay.reach = integer).build());
+ IntegerSliderEntry crossLevel = eb.startIntSlider(new TranslatableText("config.lightoverlay.crossLevel"), LightOverlay.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> Text.method_30163("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build();
general.addEntry(crossLevel);
- general.addEntry(eb.startIntSlider("config.lightoverlay.secondaryLevel", LightOverlay.secondaryLevel, -1, 15)
+ general.addEntry(eb.startIntSlider(new TranslatableText("config.lightoverlay.secondaryLevel"), LightOverlay.secondaryLevel, -1, 15)
.setErrorSupplier(integer -> {
- if (integer >= 0 && integer >= crossLevel.getValue()) return Optional.of("Secondary Level cannot be higher than Cross Level!");
+ if (integer >= 0 && integer >= crossLevel.getValue()) return Optional.of(new LiteralText("Secondary Level cannot be higher than Cross Level!"));
return Optional.empty();
- }).setDefaultValue(-1).setTextGetter(integer -> integer < 0 ? "Off" : "Level: " + integer).setSaveConsumer(integer -> LightOverlay.secondaryLevel = integer).build());
- general.addEntry(eb.startBooleanToggle("config.lightoverlay.showNumber", LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build());
- general.addEntry(eb.startBooleanToggle("config.lightoverlay.smoothLines", LightOverlay.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlay.smoothLines = bool).build());
- general.addEntry(eb.startBooleanToggle("config.lightoverlay.underwater", LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build());
- general.addEntry(eb.startIntSlider("config.lightoverlay.lineWidth", MathHelper.floor(LightOverlay.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> "Light Width: " + LightOverlay.FORMAT.format(integer / 100d)).setSaveConsumer(integer -> LightOverlay.lineWidth = integer / 100f).build());
- general.addEntry(eb.startColorField("config.lightoverlay.yellowColor", LightOverlay.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlay.yellowColor = color).build());
- general.addEntry(eb.startColorField("config.lightoverlay.redColor", LightOverlay.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlay.redColor = color).build());
- general.addEntry(eb.startColorField("config.lightoverlay.secondaryColor", LightOverlay.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlay.secondaryColor = color).build());
+ }).setDefaultValue(-1).setTextGetter(integer -> new LiteralText(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlay.secondaryLevel = integer).build());
+ general.addEntry(eb.startBooleanToggle(new TranslatableText("config.lightoverlay.showNumber"), LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build());
+ general.addEntry(eb.startBooleanToggle(new TranslatableText("config.lightoverlay.smoothLines"), LightOverlay.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlay.smoothLines = bool).build());
+ general.addEntry(eb.startBooleanToggle(new TranslatableText("config.lightoverlay.underwater"), LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build());
+ general.addEntry(eb.startIntSlider(new TranslatableText("config.lightoverlay.lineWidth"), MathHelper.floor(LightOverlay.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> new LiteralText("Light Width: " + LightOverlay.FORMAT.format(integer / 100d))).setSaveConsumer(integer -> LightOverlay.lineWidth = integer / 100f).build());
+ general.addEntry(eb.startColorField(new TranslatableText("config.lightoverlay.yellowColor"), LightOverlay.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlay.yellowColor = color).build());
+ general.addEntry(eb.startColorField(new TranslatableText("config.lightoverlay.redColor"), LightOverlay.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlay.redColor = color).build());
+ general.addEntry(eb.startColorField(new TranslatableText("config.lightoverlay.secondaryColor"), LightOverlay.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlay.secondaryColor = color).build());
return builder.setSavingRunnable(() -> {
try {
import com.google.common.collect.Maps;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
-import me.shedaniel.cloth.hooks.ClothClientHooks;
+import me.shedaniel.cloth.api.client.events.v0.ClothClientHooks;
import net.fabricmc.api.ClientModInitializer;
+import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
-import net.fabricmc.fabric.api.event.client.ClientTickCallback;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
private static long ticks = 0;
static {
- ClientTickCallback.EVENT.register(client -> {
+ ClientTickEvents.END_CLIENT_TICK.register(client -> {
try {
ticks++;
if (CLIENT.player == null || !enabled) {
CHUNK_MAP.clear();
ClientPlayerEntity player = CLIENT.player;
ClientWorld world = CLIENT.world;
- BlockPos playerPos = player.getBlockPos();
+ BlockPos playerPos = player.getSenseCenterPos();
EntityContext entityContext = EntityContext.of(player);
ChunkLightingView block = world.getLightingProvider().get(LightType.BLOCK);
ChunkLightingView sky = showNumber ? null : world.getLightingProvider().get(LightType.SKY);
// Check if the collision has a bump
if (upperCollisionShape.getMaximum(Direction.Axis.Y) > 0)
return CrossType.NONE;
- if (blockUpperState.getBlock().matches(BlockTags.RAILS))
+ if (blockUpperState.getBlock().isIn(BlockTags.RAILS))
return CrossType.NONE;
// Check block state allow spawning (excludes bedrock and barriers automatically)
if (!blockBelowState.allowsSpawning(world, down, testingEntityType))
// Setup
testingEntityType = EntityType.Builder.create(EntityCategory.MONSTER).setDimensions(0f, 0f).disableSaving().build(null);
- ClientTickCallback.EVENT.register(minecraftClient -> {
+ ClientTickEvents.END_CLIENT_TICK.register(minecraftClient -> {
while (ENABLE_OVERLAY.wasPressed())
enabled = !enabled;
});
}
}
-plugins {
- id("com.wynprice.cursemaven") version("2.1.1")
-}
-
apply plugin: "net.minecraftforge.gradle"
apply plugin: "eclipse"
repositories {
maven { url "https://files.minecraftforge.net/maven" }
+ maven { url "https://dl.bintray.com/shedaniel/cloth-config-2" }
}
dependencies {
- minecraft("net.minecraftforge:forge:${rootProject.forge_minecraft_version}-31.1.39")
- implementation(fg.deobf("curse.maven:cloth-config-forge:${rootProject.cloth_config_forge_commit}"))
+ minecraft("net.minecraftforge:forge:${rootProject.forge_minecraft_version}-${project.forge_version}")
+ implementation(fg.deobf("me.shedaniel.cloth:cloth-config-forge:${rootProject.cloth_config_forge}"))
}
\ No newline at end of file
@Mod("lightoverlay-forge")
public class LightOverlay {
public LightOverlay() {
- //noinspection Convert2MethodRef
- DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> LightOverlayClient.register());
+ DistExecutor.safeRunWhenOn(Dist.CLIENT, () -> LightOverlayClient::register);
}
public static void processPacket(IPacket<?> packet) {
- DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> LightOverlayClient.processPacket(packet));
+ DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> LightOverlayClient.processPacket(packet));
}
}
import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.Tessellator;
-import net.minecraft.client.renderer.TransformationMatrix;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.client.util.InputMappings;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.math.MathHelper;
-import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.shapes.ISelectionContext;
import net.minecraft.util.math.shapes.VoxelShape;
+import net.minecraft.util.math.vector.TransformationMatrix;
+import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.LightType;
import net.minecraft.world.World;
CHUNK_MAP.clear();
ClientPlayerEntity player = minecraft.player;
ClientWorld world = minecraft.world;
- BlockPos playerPos = player.getPosition();
+ BlockPos playerPos = player.func_233580_cy_();
ISelectionContext entityContext = ISelectionContext.forEntity(player);
IWorldLightListener block = world.getLightManager().getLightEngine(LightType.BLOCK);
IWorldLightListener sky = showNumber ? null : world.getLightManager().getLightEngine(LightType.SKY);
ClientPlayerEntity player = minecraft.player;
ClientWorld world = minecraft.world;
ISelectionContext selectionContext = ISelectionContext.forEntity(player);
- Vec3d[] playerPos = {null};
+ Vector3d[] playerPos = {null};
int playerPosX = ((int) player.getPosX()) >> 4;
int playerPosZ = ((int) player.getPosZ()) >> 4;
if (ticks % 20 == 0) {
int playerPosZ = ((int) playerEntity.getPosZ()) >> 4;
ISelectionContext selectionContext = ISelectionContext.forEntity(playerEntity);
World world = client.world;
- BlockPos playerPos = playerEntity.getPosition();
+ BlockPos playerPos = playerEntity.func_233580_cy_();
ActiveRenderInfo info = client.gameRenderer.getActiveRenderInfo();
if (showNumber) {
RenderSystem.enableTexture();
package me.shedaniel.lightoverlay.forge;
-import me.shedaniel.forge.clothconfig2.api.ConfigBuilder;
-import me.shedaniel.forge.clothconfig2.api.ConfigCategory;
-import me.shedaniel.forge.clothconfig2.api.ConfigEntryBuilder;
-import me.shedaniel.forge.clothconfig2.gui.entries.IntegerSliderEntry;
+import me.shedaniel.clothconfig2.forge.api.ConfigBuilder;
+import me.shedaniel.clothconfig2.forge.api.ConfigCategory;
+import me.shedaniel.clothconfig2.forge.api.ConfigEntryBuilder;
+import me.shedaniel.clothconfig2.forge.gui.entries.IntegerSliderEntry;
import net.minecraft.client.resources.I18n;
import net.minecraft.util.math.MathHelper;
+import net.minecraft.util.text.ITextComponent;
+import net.minecraft.util.text.TranslationTextComponent;
import net.minecraftforge.fml.ExtensionPoint;
import net.minecraftforge.fml.ModLoadingContext;
public class LightOverlayCloth {
public static void register() {
ModLoadingContext.get().registerExtensionPoint(ExtensionPoint.CONFIGGUIFACTORY, () -> (client, parent) -> {
- ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle("key.lightoverlay.category");
+ ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle(new TranslationTextComponent("key.lightoverlay.category"));
- ConfigEntryBuilder eb = builder.getEntryBuilder();
- ConfigCategory general = builder.getOrCreateCategory("config.lightoverlay.general");
- general.addEntry(eb.startTextDescription("§7" + I18n.format("description.lightoverlay.caching")).build());
- general.addEntry(eb.startBooleanToggle("config.lightoverlay.caching", LightOverlayClient.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.caching = bool).build());
- general.addEntry(eb.startIntSlider("config.lightoverlay.reach", LightOverlayClient.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> "Reach: " + integer + " Blocks").setSaveConsumer(integer -> LightOverlayClient.reach = integer).build());
- IntegerSliderEntry crossLevel = eb.startIntSlider("config.lightoverlay.crossLevel", LightOverlayClient.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> "Cross Level: " + integer).setSaveConsumer(integer -> LightOverlayClient.crossLevel = integer).build();
+ ConfigEntryBuilder eb = builder.entryBuilder();
+ ConfigCategory general = builder.getOrCreateCategory(new TranslationTextComponent("config.lightoverlay.general"));
+ general.addEntry(eb.startTextDescription(ITextComponent.func_241827_a_("§7" + I18n.format("description.lightoverlay.caching"))).build());
+ general.addEntry(eb.startBooleanToggle(new TranslationTextComponent("config.lightoverlay.caching"), LightOverlayClient.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.caching = bool).build());
+ general.addEntry(eb.startIntSlider(new TranslationTextComponent("config.lightoverlay.reach"), LightOverlayClient.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> ITextComponent.func_241827_a_("Reach: " + integer + " Blocks")).setSaveConsumer(integer -> LightOverlayClient.reach = integer).build());
+ IntegerSliderEntry crossLevel = eb.startIntSlider(new TranslationTextComponent("config.lightoverlay.crossLevel"), LightOverlayClient.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> ITextComponent.func_241827_a_("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlayClient.crossLevel = integer).build();
general.addEntry(crossLevel);
- general.addEntry(eb.startIntSlider("config.lightoverlay.secondaryLevel", LightOverlayClient.secondaryLevel, -1, 15)
+ general.addEntry(eb.startIntSlider(new TranslationTextComponent("config.lightoverlay.secondaryLevel"), LightOverlayClient.secondaryLevel, -1, 15)
.setErrorSupplier(integer -> {
- if (integer >= 0 && integer >= crossLevel.getValue()) return Optional.of("Secondary Level cannot be higher than Cross Level!");
+ if (integer >= 0 && integer >= crossLevel.getValue()) return Optional.of(ITextComponent.func_241827_a_("Secondary Level cannot be higher than Cross Level!"));
return Optional.empty();
- }).setDefaultValue(-1).setTextGetter(integer -> integer < 0 ? "Off" : "Level: " + integer).setSaveConsumer(integer -> LightOverlayClient.secondaryLevel = integer).build());
- general.addEntry(eb.startBooleanToggle("config.lightoverlay.showNumber", LightOverlayClient.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.showNumber = bool).build());
- general.addEntry(eb.startBooleanToggle("config.lightoverlay.smoothLines", LightOverlayClient.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlayClient.smoothLines = bool).build());
- general.addEntry(eb.startBooleanToggle("config.lightoverlay.underwater", LightOverlayClient.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.underwater = bool).build());
- general.addEntry(eb.startIntSlider("config.lightoverlay.lineWidth", MathHelper.floor(LightOverlayClient.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> "Light Width: " + LightOverlayClient.FORMAT.format(integer / 100d)).setSaveConsumer(integer -> LightOverlayClient.lineWidth = integer / 100f).build());
- general.addEntry(eb.startColorField("config.lightoverlay.yellowColor", LightOverlayClient.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlayClient.yellowColor = color).build());
- general.addEntry(eb.startColorField("config.lightoverlay.redColor", LightOverlayClient.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlayClient.redColor = color).build());
- general.addEntry(eb.startColorField("config.lightoverlay.secondaryColor", LightOverlayClient.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlayClient.secondaryColor = color).build());
+ }).setDefaultValue(-1).setTextGetter(integer -> ITextComponent.func_241827_a_(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlayClient.secondaryLevel = integer).build());
+ general.addEntry(eb.startBooleanToggle(new TranslationTextComponent("config.lightoverlay.showNumber"), LightOverlayClient.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.showNumber = bool).build());
+ general.addEntry(eb.startBooleanToggle(new TranslationTextComponent("config.lightoverlay.smoothLines"), LightOverlayClient.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlayClient.smoothLines = bool).build());
+ general.addEntry(eb.startBooleanToggle(new TranslationTextComponent("config.lightoverlay.underwater"), LightOverlayClient.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.underwater = bool).build());
+ general.addEntry(eb.startIntSlider(new TranslationTextComponent("config.lightoverlay.lineWidth"), MathHelper.floor(LightOverlayClient.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> ITextComponent.func_241827_a_("Light Width: " + LightOverlayClient.FORMAT.format(integer / 100d))).setSaveConsumer(integer -> LightOverlayClient.lineWidth = integer / 100f).build());
+ general.addEntry(eb.startColorField(new TranslationTextComponent("config.lightoverlay.yellowColor"), LightOverlayClient.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlayClient.yellowColor = color).build());
+ general.addEntry(eb.startColorField(new TranslationTextComponent("config.lightoverlay.redColor"), LightOverlayClient.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlayClient.redColor = color).build());
+ general.addEntry(eb.startColorField(new TranslationTextComponent("config.lightoverlay.secondaryColor"), LightOverlayClient.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlayClient.secondaryColor = color).build());
return builder.setSavingRunnable(() -> {
try {
'''
[[dependencies.lightoverlay-forge]]
- modId="cloth-config2"
+ modId="cloth-config"
mandatory=true
- versionRange="[3.0,)"
+ versionRange="[4.0,)"
ordering="NONE"
side="CLIENT"
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
-mod_version=4.7.0
+mod_version=5.4.0
# fabric
-fabric_minecraft_version=1.15.2
-yarn_build=15
+fabric_minecraft_version=1.16.1
+yarn_build=1.16.1+build.4+legacy.20w09a+build.8
fabric_loader_version=0.8.8+build.202
-fabric_api_version=0.13.0+build.315-1.15
-cloth_events_version=1.2.0
-cloth_config_version=2.14.2
-modmenu_version=1.10.2+build.32
+fabric_api_version=0.14.0+build.371-1.16
+cloth_version=1.0.4
+cloth_config_version=4.5.5
+modmenu_version=1.12.2+build.17
# forge
-mcp_snapshot=20200408-1.15.1
-forge_minecraft_version=1.15.2
-cloth_config_forge_commit=2938583
\ No newline at end of file
+mcp_snapshot=20200514-1.16
+forge_minecraft_version=1.16.1
+forge_version=32.0.7
+cloth_config_forge=4.0
\ No newline at end of file