Compare commits
2 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 19b90e1fae | |||
| ae2245c4bd |
12 changed files with 100 additions and 87 deletions
|
|
@ -26,8 +26,8 @@ dependencies {
|
||||||
modImplementation "dev.architectury:architectury:$rootProject.architectury_api_version"
|
modImplementation "dev.architectury:architectury:$rootProject.architectury_api_version"
|
||||||
|
|
||||||
// Mod implementations
|
// Mod implementations
|
||||||
modImplementation "maven.modrinth:sodium:mc1.21.4-0.6.3-fabric" // Sodium
|
modImplementation "maven.modrinth:sodium:mc1.21.1-0.6.13-fabric" // Sodium
|
||||||
modImplementation "maven.modrinth:sodium-extra:mc1.21.4-0.6.1+fabric" // Sodium Extra
|
modImplementation "maven.modrinth:sodium-extra:mc1.21.6-0.6.6+fabric" // Sodium Extra
|
||||||
modImplementation "maven.modrinth:iris:1.8.5+1.21.4-fabric" // Iris
|
modImplementation "maven.modrinth:iris:1.8.8+1.21.1-fabric" // Iris
|
||||||
modImplementation "maven.modrinth:distanthorizons:2.2.1-a-1.21.1" // Distant Horizons
|
modImplementation "maven.modrinth:distanthorizons:2.3.4-b-1.21.1" // Distant Horizons
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ public class EditProfileScreen extends Screen {
|
||||||
.withStyle(ChatFormatting.RED),
|
.withStyle(ChatFormatting.RED),
|
||||||
(button) -> {
|
(button) -> {
|
||||||
Profiles.deleteProfile(profileName.getString());
|
Profiles.deleteProfile(profileName.getString());
|
||||||
this.onClose();
|
this.onClose(true);
|
||||||
})
|
})
|
||||||
.width(50)
|
.width(50)
|
||||||
.build(),
|
.build(),
|
||||||
|
|
@ -122,8 +122,14 @@ public class EditProfileScreen extends Screen {
|
||||||
this.layout.arrangeElements();
|
this.layout.arrangeElements();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void onClose() {
|
public void onClose() {
|
||||||
this.profileConfiguration.save();
|
this.onClose(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onClose(boolean deleted) {
|
||||||
|
if (!deleted)
|
||||||
|
this.profileConfiguration.save();
|
||||||
this.minecraft.setScreen(this.profilesScreen);
|
this.minecraft.setScreen(this.profilesScreen);
|
||||||
this.profilesScreen.profilesList.refreshEntries();
|
this.profilesScreen.profilesList.refreshEntries();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,8 +70,8 @@ public class OptionsToggleList extends ContainerObjectSelectionList<OptionsToggl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected int scrollBarX() {
|
protected int getScrollbarPosition() {
|
||||||
return super.scrollBarX() + 15;
|
return super.getScrollbarPosition() + 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRowWidth() {
|
public int getRowWidth() {
|
||||||
|
|
@ -113,7 +113,7 @@ public class OptionsToggleList extends ContainerObjectSelectionList<OptionsToggl
|
||||||
public void render(GuiGraphics guiGraphics, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
|
public void render(GuiGraphics guiGraphics, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
|
||||||
Font fontRenderer = OptionsToggleList.this.minecraft.font;
|
Font fontRenderer = OptionsToggleList.this.minecraft.font;
|
||||||
|
|
||||||
int posX = OptionsToggleList.this.scrollBarX() - this.toggleButton.getWidth() - 10;
|
int posX = OptionsToggleList.this.getScrollbarPosition() - this.toggleButton.getWidth() - 10;
|
||||||
int posY = y - 2;
|
int posY = y - 2;
|
||||||
int textY = y + entryHeight / 2;
|
int textY = y + entryHeight / 2;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,8 +58,8 @@ public class ProfilesList extends ContainerObjectSelectionList<ProfilesList.Prof
|
||||||
this.children().forEach(ProfileEntry::checkLoaded);
|
this.children().forEach(ProfileEntry::checkLoaded);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected int scrollBarX() {
|
protected int getScrollbarPosition() {
|
||||||
return super.scrollBarX() + 15;
|
return super.getScrollbarPosition() + 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRowWidth() {
|
public int getRowWidth() {
|
||||||
|
|
@ -105,7 +105,7 @@ public class ProfilesList extends ContainerObjectSelectionList<ProfilesList.Prof
|
||||||
public void render(GuiGraphics guiGraphics, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
|
public void render(GuiGraphics guiGraphics, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) {
|
||||||
Font fontRenderer = ProfilesList.this.minecraft.font;
|
Font fontRenderer = ProfilesList.this.minecraft.font;
|
||||||
|
|
||||||
int posX = ProfilesList.this.scrollBarX() - this.loadButton.getWidth() - 10;
|
int posX = ProfilesList.this.getScrollbarPosition() - this.loadButton.getWidth() - 10;
|
||||||
int posY = y - 2;
|
int posY = y - 2;
|
||||||
int textY = y + entryHeight / 2;
|
int textY = y + entryHeight / 2;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -146,57 +146,60 @@ public class Profiles {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isProfileLoaded(String profileName) {
|
public static boolean isProfileLoaded(String profileName) {
|
||||||
Path profile = PROFILES_DIRECTORY.resolve(profileName);
|
// TODO: rewrite/fix; returns incorrect results
|
||||||
ProfileConfiguration profileConfiguration = ProfileConfiguration.get(profileName);
|
|
||||||
|
|
||||||
List<Path> optionFiles = new ArrayList<>();
|
// Path profile = PROFILES_DIRECTORY.resolve(profileName);
|
||||||
optionFiles.add(OPTIONS_FILE);
|
// ProfileConfiguration profileConfiguration = ProfileConfiguration.get(profileName);
|
||||||
|
//
|
||||||
// The next few lines check if the specified file exists. If so, it adds it to the optionFiles ArrayList.
|
// List<Path> optionFiles = new ArrayList<>();
|
||||||
Optional.of(OPTIFINE_OPTIONS_FILE).filter(Files::exists).ifPresent(optionFiles::add);
|
// optionFiles.add(OPTIONS_FILE);
|
||||||
Optional.of(SODIUM_OPTIONS_FILE).filter(file -> Platform.isModLoaded("sodium")).ifPresent(optionFiles::add);
|
//
|
||||||
Optional.of(SODIUM_EXTRA_OPTIONS_FILE).filter(file -> Platform.isModLoaded("sodium-extra")).ifPresent(optionFiles::add);
|
// // The next few lines check if the specified file exists. If so, it adds it to the optionFiles ArrayList.
|
||||||
Optional.of(IRIS_OPTIONS_FILE).filter(file -> Platform.isModLoaded("iris")).ifPresent(optionFiles::add);
|
// Optional.of(OPTIFINE_OPTIONS_FILE).filter(Files::exists).ifPresent(optionFiles::add);
|
||||||
Optional.of(DISTANT_HORIZONS_OPTIONS_FILE).filter(file -> Platform.isModLoaded("distanthorizons")).ifPresent(optionFiles::add);
|
// Optional.of(SODIUM_OPTIONS_FILE).filter(file -> Platform.isModLoaded("sodium")).ifPresent(optionFiles::add);
|
||||||
|
// Optional.of(SODIUM_EXTRA_OPTIONS_FILE).filter(file -> Platform.isModLoaded("sodium-extra")).ifPresent(optionFiles::add);
|
||||||
// Check if the original option file and the profile option file have the same content
|
// Optional.of(IRIS_OPTIONS_FILE).filter(file -> Platform.isModLoaded("iris")).ifPresent(optionFiles::add);
|
||||||
try {
|
// Optional.of(DISTANT_HORIZONS_OPTIONS_FILE).filter(file -> Platform.isModLoaded("distanthorizons")).ifPresent(optionFiles::add);
|
||||||
for (Path optionFile : optionFiles) {
|
//
|
||||||
Path profileOptions = profile.resolve(optionFile.getFileName());
|
// // Check if the original option file and the profile option file have the same content
|
||||||
|
// try {
|
||||||
if (optionFile.getFileName().equals(OPTIONS_FILE)) {
|
// for (Path optionFile : optionFiles) {
|
||||||
try (Stream<String> lines = Files.lines(optionFile)) {
|
// Path profileOptions = profile.resolve(optionFile.getFileName());
|
||||||
List<String> optionsToLoad = profileConfiguration.getOptionsToLoad();
|
//
|
||||||
AtomicBoolean loaded = new AtomicBoolean(false);
|
// if (optionFile.getFileName().equals(OPTIONS_FILE)) {
|
||||||
|
// try (Stream<String> lines = Files.lines(optionFile)) {
|
||||||
lines.forEach((line) -> {
|
// List<String> optionsToLoad = profileConfiguration.getOptionsToLoad();
|
||||||
String[] option = line.split(":");
|
// AtomicBoolean loaded = new AtomicBoolean(false);
|
||||||
|
//
|
||||||
if (optionsToLoad.contains(option[0])) {
|
// lines.forEach((line) -> {
|
||||||
try (Stream<String> profileLines = Files.lines(profileOptions)) {
|
// String[] option = line.split(":");
|
||||||
loaded.set(profileLines.anyMatch(profileLine -> profileLine.equals(line)));
|
//
|
||||||
} catch (IOException e) {
|
// if (optionsToLoad.contains(option[0])) {
|
||||||
OptionsProfilesMod.LOGGER.error("[Profile '{}']: An error occurred when checking each line in options.txt if the profiles is loaded", profileName, e);
|
// try (Stream<String> profileLines = Files.lines(profileOptions)) {
|
||||||
}
|
// loaded.set(profileLines.anyMatch(profileLine -> profileLine.equals(line)));
|
||||||
}
|
// } catch (IOException e) {
|
||||||
});
|
// OptionsProfilesMod.LOGGER.error("[Profile '{}']: An error occurred when checking each line in options.txt if the profiles is loaded", profileName, e);
|
||||||
|
// }
|
||||||
return loaded.get();
|
// }
|
||||||
} catch (IOException e) {
|
// });
|
||||||
OptionsProfilesMod.LOGGER.error("[Profile '{}']: An error occurred when opening options.txt to check if the profile is loaded", profileName, e);
|
//
|
||||||
}
|
// return loaded.get();
|
||||||
} else {
|
// } catch (IOException e) {
|
||||||
if (!FileUtils.contentEquals(optionFile.toFile(), profileOptions.toFile())) {
|
// OptionsProfilesMod.LOGGER.error("[Profile '{}']: An error occurred when opening options.txt to check if the profile is loaded", profileName, e);
|
||||||
return false;
|
// }
|
||||||
}
|
// } else {
|
||||||
}
|
// if (!FileUtils.contentEquals(optionFile.toFile(), profileOptions.toFile())) {
|
||||||
}
|
// return false;
|
||||||
} catch (IOException e) {
|
// }
|
||||||
OptionsProfilesMod.LOGGER.error("[Profile '{}']: An error occurred when checking if the profile is loaded", profileName, e);
|
// }
|
||||||
return false;
|
// }
|
||||||
}
|
// } catch (IOException e) {
|
||||||
|
// OptionsProfilesMod.LOGGER.error("[Profile '{}']: An error occurred when checking if the profile is loaded", profileName, e);
|
||||||
return true;
|
// return false;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return true;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void loadOptionFile(String profileName, Path options) {
|
private static void loadOptionFile(String profileName, Path options) {
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,18 @@
|
||||||
package net.trafficlunar.optionsprofiles.profiles.loaders;
|
package net.trafficlunar.optionsprofiles.profiles.loaders;
|
||||||
|
|
||||||
import net.trafficlunar.optionsprofiles.OptionsProfilesMod;
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import me.flashyreese.mods.sodiumextra.client.SodiumExtraClientMod;
|
import me.flashyreese.mods.sodiumextra.client.SodiumExtraClientMod;
|
||||||
|
import me.flashyreese.mods.sodiumextra.client.gui.FogTypeConfig;
|
||||||
import me.flashyreese.mods.sodiumextra.client.gui.SodiumExtraGameOptions;
|
import me.flashyreese.mods.sodiumextra.client.gui.SodiumExtraGameOptions;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.world.level.material.FogType;
|
||||||
|
import net.trafficlunar.optionsprofiles.OptionsProfilesMod;
|
||||||
|
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
import java.util.EnumMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class SodiumExtraLoader {
|
public class SodiumExtraLoader {
|
||||||
|
|
@ -47,10 +50,8 @@ public class SodiumExtraLoader {
|
||||||
SodiumExtraClientMod.options().detailSettings.biomeColors = configuration.detail_settings.biome_colors;
|
SodiumExtraClientMod.options().detailSettings.biomeColors = configuration.detail_settings.biome_colors;
|
||||||
SodiumExtraClientMod.options().detailSettings.skyColors = configuration.detail_settings.sky_colors;
|
SodiumExtraClientMod.options().detailSettings.skyColors = configuration.detail_settings.sky_colors;
|
||||||
|
|
||||||
SodiumExtraClientMod.options().renderSettings.fogDistance = configuration.render_settings.fog_distance;
|
SodiumExtraClientMod.options().renderSettings.globalFog = configuration.render_settings.global_fog;
|
||||||
SodiumExtraClientMod.options().renderSettings.fogStart = configuration.render_settings.fog_start;
|
SodiumExtraClientMod.options().renderSettings.fogTypeConfig = configuration.render_settings.fog_type_config;
|
||||||
SodiumExtraClientMod.options().renderSettings.multiDimensionFogControl = configuration.render_settings.multi_dimension_fog_control;
|
|
||||||
SodiumExtraClientMod.options().renderSettings.dimensionFogDistanceMap = configuration.render_settings.dimensionFogDistance;
|
|
||||||
SodiumExtraClientMod.options().renderSettings.lightUpdates = configuration.render_settings.light_updates;
|
SodiumExtraClientMod.options().renderSettings.lightUpdates = configuration.render_settings.light_updates;
|
||||||
SodiumExtraClientMod.options().renderSettings.itemFrame = configuration.render_settings.item_frame;
|
SodiumExtraClientMod.options().renderSettings.itemFrame = configuration.render_settings.item_frame;
|
||||||
SodiumExtraClientMod.options().renderSettings.armorStand = configuration.render_settings.armor_stand;
|
SodiumExtraClientMod.options().renderSettings.armorStand = configuration.render_settings.armor_stand;
|
||||||
|
|
@ -120,10 +121,8 @@ public class SodiumExtraLoader {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class RenderSettings {
|
public static class RenderSettings {
|
||||||
public int fog_distance;
|
public boolean global_fog;
|
||||||
public int fog_start;
|
public EnumMap<FogType, FogTypeConfig> fog_type_config;
|
||||||
public boolean multi_dimension_fog_control;
|
|
||||||
public Map<ResourceLocation, Integer> dimensionFogDistance;
|
|
||||||
public boolean light_updates;
|
public boolean light_updates;
|
||||||
public boolean item_frame;
|
public boolean item_frame;
|
||||||
public boolean armor_stand;
|
public boolean armor_stand;
|
||||||
|
|
|
||||||
|
|
@ -38,11 +38,12 @@ public class SodiumLoader {
|
||||||
SodiumClientMod.options().performance.useFogOcclusion = configuration.performance.use_fog_occlusion;
|
SodiumClientMod.options().performance.useFogOcclusion = configuration.performance.use_fog_occlusion;
|
||||||
SodiumClientMod.options().performance.useBlockFaceCulling = configuration.performance.use_block_face_culling;
|
SodiumClientMod.options().performance.useBlockFaceCulling = configuration.performance.use_block_face_culling;
|
||||||
SodiumClientMod.options().performance.useNoErrorGLContext = configuration.performance.use_no_error_g_l_context;
|
SodiumClientMod.options().performance.useNoErrorGLContext = configuration.performance.use_no_error_g_l_context;
|
||||||
SodiumClientMod.options().performance.sortingEnabled = configuration.performance.sorting_enabled_v2;
|
|
||||||
|
|
||||||
SodiumClientMod.options().notifications.hasClearedDonationButton = configuration.notifications.has_cleared_donation_button;
|
SodiumClientMod.options().notifications.hasClearedDonationButton = configuration.notifications.has_cleared_donation_button;
|
||||||
SodiumClientMod.options().notifications.hasSeenDonationPrompt = configuration.notifications.has_seen_donation_prompt;
|
SodiumClientMod.options().notifications.hasSeenDonationPrompt = configuration.notifications.has_seen_donation_prompt;
|
||||||
|
|
||||||
|
SodiumClientMod.options().debug.terrainSortingEnabled = configuration.debug.terrain_sorting_enabled;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
SodiumGameOptions.writeToDisk(SodiumClientMod.options());
|
SodiumGameOptions.writeToDisk(SodiumClientMod.options());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
|
@ -55,6 +56,7 @@ public class SodiumLoader {
|
||||||
public Advanced advanced;
|
public Advanced advanced;
|
||||||
public Performance performance;
|
public Performance performance;
|
||||||
public Notifications notifications;
|
public Notifications notifications;
|
||||||
|
public Debug debug;
|
||||||
|
|
||||||
public static class Quality {
|
public static class Quality {
|
||||||
public String weather_quality;
|
public String weather_quality;
|
||||||
|
|
@ -76,12 +78,15 @@ public class SodiumLoader {
|
||||||
public boolean use_fog_occlusion;
|
public boolean use_fog_occlusion;
|
||||||
public boolean use_block_face_culling;
|
public boolean use_block_face_culling;
|
||||||
public boolean use_no_error_g_l_context;
|
public boolean use_no_error_g_l_context;
|
||||||
public boolean sorting_enabled_v2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Notifications {
|
public static class Notifications {
|
||||||
public boolean has_cleared_donation_button;
|
public boolean has_cleared_donation_button;
|
||||||
public boolean has_seen_donation_prompt;
|
public boolean has_seen_donation_prompt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class Debug {
|
||||||
|
public boolean terrain_sorting_enabled;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -41,7 +41,7 @@ dependencies {
|
||||||
modImplementation "dev.architectury:architectury-fabric:$rootProject.architectury_api_version"
|
modImplementation "dev.architectury:architectury-fabric:$rootProject.architectury_api_version"
|
||||||
|
|
||||||
// Mod Menu API
|
// Mod Menu API
|
||||||
modImplementation("com.terraformersmc:modmenu:13.0.2")
|
modImplementation("com.terraformersmc:modmenu:11.0.3")
|
||||||
|
|
||||||
common(project(path: ':common', configuration: 'namedElements')) { transitive false }
|
common(project(path: ':common', configuration: 'namedElements')) { transitive false }
|
||||||
shadowBundle project(path: ':common', configuration: 'transformProductionFabric')
|
shadowBundle project(path: ':common', configuration: 'transformProductionFabric')
|
||||||
|
|
|
||||||
|
|
@ -25,10 +25,10 @@
|
||||||
"optionsprofiles.mixins.json"
|
"optionsprofiles.mixins.json"
|
||||||
],
|
],
|
||||||
"depends": {
|
"depends": {
|
||||||
"fabricloader": ">=0.15.11",
|
"fabricloader": ">=0.17.2",
|
||||||
"minecraft": "~1.21",
|
"minecraft": "~1.21.1",
|
||||||
"java": ">=21",
|
"java": ">=21",
|
||||||
"architectury": ">=15.0.3",
|
"architectury": ">=13.0.8",
|
||||||
"fabric-api": "*"
|
"fabric-api": "*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,16 +5,16 @@ org.gradle.parallel=true
|
||||||
loom.ignoreDependencyLoomVersionValidation=true
|
loom.ignoreDependencyLoomVersionValidation=true
|
||||||
|
|
||||||
# Mod properties
|
# Mod properties
|
||||||
mod_version=1.4
|
mod_version=1.4.2
|
||||||
maven_group=net.trafficlunar.optionsprofiles
|
maven_group=net.trafficlunar.optionsprofiles
|
||||||
archives_name=optionsprofiles
|
archives_name=optionsprofiles
|
||||||
enabled_platforms=fabric,neoforge
|
enabled_platforms=fabric,neoforge
|
||||||
|
|
||||||
# Minecraft properties
|
# Minecraft properties
|
||||||
minecraft_version=1.21.4
|
minecraft_version=1.21.1
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
architectury_api_version = 15.0.3
|
architectury_api_version=13.0.8
|
||||||
fabric_loader_version=0.16.9
|
fabric_loader_version=0.17.2
|
||||||
fabric_api_version=0.111.0+1.21.4
|
fabric_api_version=0.116.6+1.21.1
|
||||||
neoforge_version=21.4.9-beta
|
neoforge_version=21.1.209
|
||||||
|
|
@ -16,21 +16,21 @@ logoFile = "icon.png"
|
||||||
[[dependencies.optionsprofiles]]
|
[[dependencies.optionsprofiles]]
|
||||||
modId = "neoforge"
|
modId = "neoforge"
|
||||||
type = "required"
|
type = "required"
|
||||||
versionRange = "[21.0,)"
|
versionRange = "[21.1,)"
|
||||||
ordering = "NONE"
|
ordering = "NONE"
|
||||||
side = "BOTH"
|
side = "BOTH"
|
||||||
|
|
||||||
[[dependencies.optionsprofiles]]
|
[[dependencies.optionsprofiles]]
|
||||||
modId = "minecraft"
|
modId = "minecraft"
|
||||||
type = "required"
|
type = "required"
|
||||||
versionRange = "[1.21,)"
|
versionRange = "[1.21.1,)"
|
||||||
ordering = "NONE"
|
ordering = "NONE"
|
||||||
side = "BOTH"
|
side = "BOTH"
|
||||||
|
|
||||||
[[dependencies.optionsprofiles]]
|
[[dependencies.optionsprofiles]]
|
||||||
modId = "architectury"
|
modId = "architectury"
|
||||||
type = "required"
|
type = "required"
|
||||||
versionRange = "[15.0.3,)"
|
versionRange = "[13.0.8,)"
|
||||||
ordering = "AFTER"
|
ordering = "AFTER"
|
||||||
side = "BOTH"
|
side = "BOTH"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,4 +11,4 @@ include("common")
|
||||||
include("fabric")
|
include("fabric")
|
||||||
include("neoforge")
|
include("neoforge")
|
||||||
|
|
||||||
rootProject.name = "optionsprofiles-v1.4-1.21.4"
|
rootProject.name = "optionsprofiles-v1.4-1.21.1"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue