Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Enchant Menu adds a simple menu for modifying item enchantments.

[<img alt="Download on Modrinth" height="72" src="https://github.com/modrinth/art/raw/main/Branding/Badge/badge-dark.svg"/>](https://modrinth.com/mod/enchant-menu)
[<img alt="Download on Modrinth" height="72" src="assets/icons/badge-dark.svg"/>](https://modrinth.com/mod/enchant-menu)
[<img alt="Requires Fabric API" height="72" src="https://i.imgur.com/bTus4wH.png"/>](https://modrinth.com/mod/fabric-api)
[<img alt="Requires Fabric Kotlin" height="72" src="https://i.imgur.com/c1DH9VL.png"/>](https://modrinth.com/mod/fabric-language-kotlin)

Expand Down
Binary file added assets/icons/badge-dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/icons/badge-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 20 additions & 20 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
kotlin.code.style = official
org.gradle.jvmargs = -Xmx1G
org.gradle.warning.mode = all
kotlin.code.style = official
org.gradle.jvmargs = -Xmx4096M
org.gradle.warning.mode = all

# Fabric Properties - https://fabricmc.net/develop/
minecraftVersion = 1.19
yarnMappings = 1.19+build.4
loaderVersion = 0.14.8
minecraftVersion = 1.20.1
yarnMappings = 1.20.1+build.10
loaderVersion = 0.16.13
qslVersionId = 1.1.0

# Fabric API
fabricVersion = 0.58.0+1.19
fabricVersionId = 3KmOcp6b
loomVersion = 0.12-SNAPSHOT
qslVersionId = ddaofVmY
fabricVersion = 0.92.5+1.20.1
fabricVersionId = 0.92.5
loomVersion = 0.12-SNAPSHOT

# Kotlin
systemProp.kotlinVersion = 1.7.10
fabricKotlinVersion = 1.8.2+kotlin.1.7.10
fabricKotlinVersionId = 5Aq3SFbi
systemProp.kotlinVersion = 1.8.0
fabricKotlinVersion = 1.9.0+kotlin.1.8.0
fabricKotlinVersionId = 5Aq3SFbi

# Complete Config
completeConfigVersion = 2.0.0
completeConfigVersionId = zaC01d1T
completeConfigVersion = 2.0.0
completeConfigVersionId = zaC01d1T

# Mod Properties
mavenGroup = com.github.eth0net
modId = enchant-menu
modVersion = 1.4.0+fabric-1.19
modVersionName = 1.4.0 Fabric 1.19
modVersionType = release
mavenGroup = com.github.eth0net
modId = enchant-menu
modVersion = 1.5.0-beta+fabric-1.20.1
modVersionName = 1.5.0 Beta Fabric 1.20.1
modVersionType = beta
41 changes: 27 additions & 14 deletions src/main/kotlin/com/github/eth0net/enchantmenu/EnchantMenu.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,39 +8,52 @@ import net.fabricmc.api.ModInitializer
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking
import net.fabricmc.loader.api.FabricLoader
import net.minecraft.registry.Registries
import net.minecraft.registry.Registry
import net.minecraft.resource.featuretoggle.FeatureFlags
import net.minecraft.screen.ScreenHandlerType
import net.minecraft.util.Identifier
import net.minecraft.util.registry.Registry
import org.apache.logging.log4j.LogManager
import java.io.BufferedWriter
import java.io.StringWriter

@Suppress("UNUSED")
object EnchantMenu : ModInitializer {
internal const val MOD_ID = "enchant-menu"

internal val log = LogManager.getLogger(MOD_ID)

internal val SCREEN_HANDLER = Registry.register(
Registry.SCREEN_HANDLER, id("enchant_menu"), ScreenHandlerType(::EnchantMenuScreenHandler)
// Registering the screen handler for Enchant Menu
internal val SCREEN_HANDLER: ScreenHandlerType<EnchantMenuScreenHandler> = Registry.register(
Registries.SCREEN_HANDLER,
id("enchant_menu"),
ScreenHandlerType(
{ syncId, inventory -> EnchantMenuScreenHandler(syncId, inventory) },
FeatureFlags.DEFAULT_ENABLED_FEATURES
)
)

override fun onInitialize() {
log.info("EnchantMenu initializing...")

if (FabricLoader.getInstance().isModLoaded("completeconfig-base")) {
EnchantMenuCompleteConfig.load()
EnchantMenuCompleteConfig.applyConfig()
// Load and apply configuration if 'completeconfig-base' is present
if (net.fabricmc.loader.api.FabricLoader.getInstance().isModLoaded("completeconfig-base")) {
try {
EnchantMenuCompleteConfig.load()
EnchantMenuCompleteConfig.applyConfig()

ServerPlayConnectionEvents.JOIN.register { net, _, _ ->
val writer = StringWriter()
EnchantMenuCompleteConfig.serialize { BufferedWriter(writer) }
val buf = PacketByteBufs.create().writeString(writer.toString())
ServerPlayNetworking.send(net.player, ConfigSyncChannel, buf)
ServerPlayConnectionEvents.JOIN.register { handler, _, _ ->
val writer = StringWriter()
EnchantMenuCompleteConfig.serialize { BufferedWriter(writer) }
val buf = PacketByteBufs.create()
buf.writeString(writer.toString())
ServerPlayNetworking.send(handler.player, ConfigSyncChannel, buf)
}
} catch (e: Exception) {
log.error("Error loading or applying configuration.", e)
}
}

// Registering networking channels for various menu actions
ServerPlayNetworking.registerGlobalReceiver(MenuChannel) { _, player, _, _, _ ->
player.openHandledScreen(EnchantMenuScreenHandlerFactory)
}
Expand All @@ -66,5 +79,5 @@ object EnchantMenu : ModInitializer {
log.info("EnchantMenu initialized.")
}

internal fun id(path: String) = Identifier(MOD_ID, path)
internal fun id(path: String): Identifier = Identifier(MOD_ID, path)
}
Loading