aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin')
-rw-r--r--src/main/kotlin/moe/nea/notenoughupdates/NotEnoughUpdates.kt35
-rw-r--r--src/main/kotlin/moe/nea/notenoughupdates/rei/NEUReiPlugin.kt2
-rw-r--r--src/main/kotlin/moe/nea/notenoughupdates/rei/SBItemEntryDefinition.kt5
3 files changed, 34 insertions, 8 deletions
diff --git a/src/main/kotlin/moe/nea/notenoughupdates/NotEnoughUpdates.kt b/src/main/kotlin/moe/nea/notenoughupdates/NotEnoughUpdates.kt
index 79b8819..27c51e1 100644
--- a/src/main/kotlin/moe/nea/notenoughupdates/NotEnoughUpdates.kt
+++ b/src/main/kotlin/moe/nea/notenoughupdates/NotEnoughUpdates.kt
@@ -1,18 +1,47 @@
package moe.nea.notenoughupdates
+import com.mojang.brigadier.CommandDispatcher
import io.github.moulberry.repo.NEURepository
+import moe.nea.notenoughupdates.repo.ItemCache
+import net.fabricmc.api.ClientModInitializer
import net.fabricmc.api.ModInitializer
+import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager
+import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback
+import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource
+import net.minecraft.client.Minecraft
+import net.minecraft.commands.CommandBuildContext
+import net.minecraft.network.chat.Component
+import net.minecraft.network.protocol.game.ClientboundUpdateRecipesPacket
import java.nio.file.Path
-object NotEnoughUpdates : ModInitializer {
+object NotEnoughUpdates : ModInitializer, ClientModInitializer {
val DATA_DIR = Path.of(".notenoughupdates")
const val MOD_ID = "notenoughupdates"
- val neuRepo = NEURepository.of(Path.of("NotEnoughUpdates-REPO")).also {
- it.reload()
+ val neuRepo: NEURepository = NEURepository.of(Path.of("NotEnoughUpdates-REPO")).apply {
+ registerReloadListener(ItemCache)
+ reload()
+ registerReloadListener {
+ Minecraft.getInstance().connection?.handleUpdateRecipes(ClientboundUpdateRecipesPacket(mutableListOf()))
+ }
+ }
+
+ fun registerCommands(
+ dispatcher: CommandDispatcher<FabricClientCommandSource>, registryAccess: CommandBuildContext
+ ) {
+ dispatcher.register(ClientCommandManager.literal("neureload").executes {
+ it.source.sendFeedback(Component.literal("Reloading repository from disk. This may lag a bit."))
+ neuRepo.reload()
+ 0
+ })
+
}
override fun onInitialize() {
+ ClientCommandRegistrationCallback.EVENT.register(this::registerCommands)
+ }
+
+ override fun onInitializeClient() {
}
}
diff --git a/src/main/kotlin/moe/nea/notenoughupdates/rei/NEUReiPlugin.kt b/src/main/kotlin/moe/nea/notenoughupdates/rei/NEUReiPlugin.kt
index cc4b0f1..69cca41 100644
--- a/src/main/kotlin/moe/nea/notenoughupdates/rei/NEUReiPlugin.kt
+++ b/src/main/kotlin/moe/nea/notenoughupdates/rei/NEUReiPlugin.kt
@@ -20,10 +20,8 @@ class NEUReiPlugin : REIClientPlugin {
return EntryStack.of(VanillaEntryTypes.ITEM, value.asItemStack())
}
-
val SKYBLOCK_ITEM_TYPE_ID = ResourceLocation("notenoughupdates", "skyblockitems")
}
-
override fun registerEntryTypes(registry: EntryTypeRegistry) {
registry.register(SKYBLOCK_ITEM_TYPE_ID, SBItemEntryDefinition)
}
diff --git a/src/main/kotlin/moe/nea/notenoughupdates/rei/SBItemEntryDefinition.kt b/src/main/kotlin/moe/nea/notenoughupdates/rei/SBItemEntryDefinition.kt
index 6726b4f..5ae154d 100644
--- a/src/main/kotlin/moe/nea/notenoughupdates/rei/SBItemEntryDefinition.kt
+++ b/src/main/kotlin/moe/nea/notenoughupdates/rei/SBItemEntryDefinition.kt
@@ -2,7 +2,6 @@ package moe.nea.notenoughupdates.rei
import com.mojang.blaze3d.vertex.PoseStack
import io.github.moulberry.repo.data.NEUItem
-import me.shedaniel.math.Point
import me.shedaniel.math.Rectangle
import me.shedaniel.rei.api.client.entry.renderer.EntryRenderer
import me.shedaniel.rei.api.client.gui.widgets.Tooltip
@@ -24,7 +23,7 @@ import java.util.stream.Stream
object SBItemEntryDefinition : EntryDefinition<NEUItem> {
override fun equals(o1: NEUItem?, o2: NEUItem?, context: ComparisonContext?): Boolean {
- return o1 == o2
+ return o1 === o2
}
override fun cheatsAs(entry: EntryStack<NEUItem>?, value: NEUItem?): ItemStack? {
@@ -71,7 +70,7 @@ object SBItemEntryDefinition : EntryDefinition<NEUItem> {
}
override fun hash(entry: EntryStack<NEUItem>, value: NEUItem, context: ComparisonContext): Long {
- return value.skyblockItemId.hashCode().toLong()
+ return System.identityHashCode(value) * 31L
}
override fun wildcard(entry: EntryStack<NEUItem>, value: NEUItem): NEUItem {