2.2.1
Compatibility
Changes
What was changed in the new version
Fixed detection so it only triggers on the actual external mod with id bwr_core / bwr-core.
Added scanning of the mods folder for real mod archives and directories. Added log output showing exactly which file or folder was detected.
Prevented the URI is not hierarchical crash by safely handling jar:file: code source URIs.
Added a “Don’t show again” button to the BigWorld notice screen.
Localized the notice buttons with English and Russian translation keys.
Code before / after
Before:
public static boolean isBigWorldDetected() {
if (Loader.isModLoaded("bigworld")) {
System.out.println("[ExplosionGlass] BigWorld detected via Forge Loader: bigworld");
return true;
}
if (Loader.isModLoaded("bwr_core") || Loader.isModLoaded("bwr-core") || Loader.isModLoaded("bwr core")) {
System.out.println("[ExplosionGlass] BigWorld detected via Forge Loader: bwr_core / bwr-core");
return true;
}
// ...
}
backButton = new GuiButton(100, centerX - buttonWidth / 2, startY, buttonWidth, buttonHeight, "Вернуться в главное меню");
noShowButton = new GuiButton(101, centerX - buttonWidth / 2, startY + 26, buttonWidth, buttonHeight, "Больше не показывать");
After:
public static boolean isBigWorldDetected() {
if (Loader.isModLoaded("bwr_core") || Loader.isModLoaded("bwr-core") || Loader.isModLoaded("bwr core")) {
System.out.println("[ExplosionGlass] BWR core detected via Forge Loader: bwr_core / bwr-core");
return true;
}
File modsDir = new File(System.getProperty("user.dir"), "mods");
if (!modsDir.exists() || !modsDir.isDirectory()) {
System.out.println("[ExplosionGlass] BWR core not detected: mods folder not found");
return false;
}
File[] entries = modsDir.listFiles();
if (entries == null) {
System.out.println("[ExplosionGlass] BWR core not detected: unable to list mods folder");
return false;
}
for (File entry : entries) {
if (!entry.isFile()) continue;
String lowerName = entry.getName().toLowerCase(Locale.ROOT);
if (!lowerName.endsWith(".jar") && !lowerName.endsWith(".zip")) continue;
if (isBwrCoreArchive(entry)) {
System.out.println("[ExplosionGlass] BWR core detected in mods archive: " + entry.getAbsolutePath());
return true;
}
}
System.out.println("[ExplosionGlass] BWR core not detected in mods folder");
return false;
}
backButton = new GuiButton(100, centerX - buttonWidth / 2, startY, buttonWidth, buttonHeight, I18n.format("gui.explosionglass.mainmenu"));
noShowButton = new GuiButton(101, centerX - buttonWidth / 2, startY + 26, buttonWidth, buttonHeight, I18n.format("gui.explosionglass.dontshow"));
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:BTg0nrbS:HsOKgSDX"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:BTg0nrbS:HsOKgSDX"
}

