aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2025-07-07 12:20:04 +0200
committerLinnea Gräf <nea@nea.moe>2025-07-07 12:20:04 +0200
commit965bf944ba567bf2af3cc36bd578ab26a9988aaf (patch)
treeb67da4049561e78288e1cbca5376c4bcc0d8061e
parent4d2876fb6c47285b9ed606eeda36cc86d88568f8 (diff)
downloadFirmament-965bf944ba567bf2af3cc36bd578ab26a9988aaf.tar.gz
Firmament-965bf944ba567bf2af3cc36bd578ab26a9988aaf.tar.bz2
Firmament-965bf944ba567bf2af3cc36bd578ab26a9988aaf.zip
feat: allow disabling REI integration
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/FirmamentReiCommonPlugin.kt2
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/FirmamentReiPlugin.kt28
-rw-r--r--src/main/kotlin/repo/RepoManager.kt4
-rw-r--r--translations/en_us.json2
4 files changed, 29 insertions, 7 deletions
diff --git a/src/compat/rei/java/moe/nea/firmament/compat/rei/FirmamentReiCommonPlugin.kt b/src/compat/rei/java/moe/nea/firmament/compat/rei/FirmamentReiCommonPlugin.kt
index 98ac276..71e867a 100644
--- a/src/compat/rei/java/moe/nea/firmament/compat/rei/FirmamentReiCommonPlugin.kt
+++ b/src/compat/rei/java/moe/nea/firmament/compat/rei/FirmamentReiCommonPlugin.kt
@@ -2,9 +2,11 @@ package moe.nea.firmament.compat.rei
import me.shedaniel.rei.api.common.entry.type.EntryTypeRegistry
import me.shedaniel.rei.api.common.plugins.REICommonPlugin
+import moe.nea.firmament.repo.RepoManager
class FirmamentReiCommonPlugin : REICommonPlugin {
override fun registerEntryTypes(registry: EntryTypeRegistry) {
+ if (!RepoManager.shouldLoadREI()) return
registry.register(FirmamentReiPlugin.SKYBLOCK_ITEM_TYPE_ID, SBItemEntryDefinition)
}
}
diff --git a/src/compat/rei/java/moe/nea/firmament/compat/rei/FirmamentReiPlugin.kt b/src/compat/rei/java/moe/nea/firmament/compat/rei/FirmamentReiPlugin.kt
index 89c3e19..3a494b9 100644
--- a/src/compat/rei/java/moe/nea/firmament/compat/rei/FirmamentReiPlugin.kt
+++ b/src/compat/rei/java/moe/nea/firmament/compat/rei/FirmamentReiPlugin.kt
@@ -55,6 +55,7 @@ class FirmamentReiPlugin : REIClientPlugin {
@OptIn(ExpensiveItemCacheApi::class)
override fun registerTransferHandlers(registry: TransferHandlerRegistry) {
+ if (!RepoManager.shouldLoadREI()) return
registry.register(TransferHandler { context ->
val screen = context.containerScreen
val display = context.display
@@ -64,8 +65,11 @@ class FirmamentReiPlugin : REIClientPlugin {
val neuItem = RepoManager.getNEUItem(SkyblockId(recipe.output.itemId))
?: error("Could not find neu item ${recipe.output.itemId} which is used in a recipe output")
val useSuperCraft = context.isStackedCrafting || RepoManager.Config.alwaysSuperCraft
- if (neuItem.isVanilla && useSuperCraft) return@TransferHandler TransferHandler.Result.createFailed(Text.translatable(
- "firmament.recipe.novanilla"))
+ if (neuItem.isVanilla && useSuperCraft) return@TransferHandler TransferHandler.Result.createFailed(
+ Text.translatable(
+ "firmament.recipe.novanilla"
+ )
+ )
var shouldReturn = true
if (context.isActuallyCrafting && !useSuperCraft) {
val craftingScreen = (screen as? GenericContainerScreen)
@@ -85,13 +89,16 @@ class FirmamentReiPlugin : REIClientPlugin {
}
- val generics = listOf<GenericREIRecipeCategory<*>>( // Order matters: The order in here is the order in which they show up in REI
+ val generics = listOf<GenericREIRecipeCategory<*>>(
+ // Order matters: The order in here is the order in which they show up in REI
GenericREIRecipeCategory(SBCraftingRecipeRenderer),
GenericREIRecipeCategory(SBForgeRecipeRenderer),
GenericREIRecipeCategory(SBEssenceUpgradeRecipeRenderer),
)
override fun registerCategories(registry: CategoryRegistry) {
+ if (!RepoManager.shouldLoadREI()) return
+
registry.add(generics)
registry.add(SBMobDropRecipe.Category)
registry.add(SBKatRecipe.Category)
@@ -105,6 +112,8 @@ class FirmamentReiPlugin : REIClientPlugin {
}
override fun registerDisplays(registry: DisplayRegistry) {
+ if (!RepoManager.shouldLoadREI()) return
+
generics.forEach {
it.registerDynamicGenerator(registry)
}
@@ -114,16 +123,21 @@ class FirmamentReiPlugin : REIClientPlugin {
)
registry.registerDisplayGenerator(
SBMobDropRecipe.Category.categoryIdentifier,
- SkyblockMobDropRecipeDynamicGenerator)
+ SkyblockMobDropRecipeDynamicGenerator
+ )
registry.registerDisplayGenerator(
SBShopRecipe.Category.categoryIdentifier,
- SkyblockShopRecipeDynamicGenerator)
+ SkyblockShopRecipeDynamicGenerator
+ )
registry.registerDisplayGenerator(
SBKatRecipe.Category.categoryIdentifier,
- SkyblockKatRecipeDynamicGenerator)
+ SkyblockKatRecipeDynamicGenerator
+ )
}
override fun registerCollapsibleEntries(registry: CollapsibleEntryRegistry) {
+ if (!RepoManager.shouldLoadREI()) return
+
if (!RepoManager.Config.disableItemGroups)
RepoManager.neuRepo.constants.parents.parents
.forEach { (parent, children) ->
@@ -148,6 +162,8 @@ class FirmamentReiPlugin : REIClientPlugin {
}
override fun registerEntries(registry: EntryRegistry) {
+ if (!RepoManager.shouldLoadREI()) return
+
registry.removeEntryIf { true }
RepoManager.neuRepo.items?.items?.values?.forEach { neuItem ->
registry.addEntry(SBItemEntryDefinition.getEntry(neuItem.skyblockId))
diff --git a/src/main/kotlin/repo/RepoManager.kt b/src/main/kotlin/repo/RepoManager.kt
index df89092..bebc39a 100644
--- a/src/main/kotlin/repo/RepoManager.kt
+++ b/src/main/kotlin/repo/RepoManager.kt
@@ -35,7 +35,7 @@ object RepoManager {
branch = "master"
save()
}
-
+ val enableREI by toggle("enable-rei") { true }
val disableItemGroups by toggle("disable-item-groups") { true }
val reload by button("reload") {
save()
@@ -196,4 +196,6 @@ object RepoManager {
fun getRepoRef(): String {
return "${Config.username}/${Config.reponame}#${Config.branch}"
}
+
+ fun shouldLoadREI(): Boolean = Config.enableREI
}
diff --git a/translations/en_us.json b/translations/en_us.json
index fa1a551..bed6d6e 100644
--- a/translations/en_us.json
+++ b/translations/en_us.json
@@ -306,6 +306,8 @@
"firmament.config.repo.branch.hint": "dangerous",
"firmament.config.repo.disable-item-groups": "Disable Item Groups",
"firmament.config.repo.disable-item-groups.description": "Disabling item groups can increase performance, but will no longer collect similar items (like minions, enchantments) together.",
+ "firmament.config.repo.enable-rei": "Enable REI",
+ "firmament.config.repo.enable-rei.description": "REI is required for viewing Firmaments item list. If you want to use another item list provider like SkyBlockers, you can turn it off here. Without other mods this will make you revert back to the vanilla item list.",
"firmament.config.repo.enable-super-craft": "Always use Super Craft",
"firmament.config.repo.enable-super-craft.description": "Always use super craft when clicking the craft button in REI, instead of just when holding shift.",
"firmament.config.repo.perfect-renders": "Perfect Render",