From e14e70a769f8527f26b3d4508416a3f369b8146b Mon Sep 17 00:00:00 2001 From: ttttdoy Date: Thu, 15 Aug 2024 15:19:13 -0400 Subject: [PATCH] fix tool gun data loader crashing dedicated servers --- gradle.properties | 2 +- src/main/kotlin/breadmod/ClientModEventBus.kt | 8 +++++--- .../datagen/tool_gun/BreadModToolGunModeProvider.kt | 10 ++++------ .../datagen/tool_gun/ModToolGunModeDataLoader.kt | 6 ++---- .../datagen/tool_gun/ModToolGunModeProvider.kt | 13 ++++++------- .../breadmod/network/tool_gun/ToolGunPacket.kt | 10 ++++------ 6 files changed, 22 insertions(+), 27 deletions(-) diff --git a/gradle.properties b/gradle.properties index 66a64d39..75b47067 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ kotlin.code.style=official -org.gradle.jvmargs=-Xmx3G +org.gradle.jvmargs=-Xmx5G org.gradle.daemon=false kapt.incremental.apt=true diff --git a/src/main/kotlin/breadmod/ClientModEventBus.kt b/src/main/kotlin/breadmod/ClientModEventBus.kt index cc2c2390..a910fadf 100644 --- a/src/main/kotlin/breadmod/ClientModEventBus.kt +++ b/src/main/kotlin/breadmod/ClientModEventBus.kt @@ -24,6 +24,7 @@ import breadmod.registry.entity.ModEntityTypes.BREAD_BULLET_ENTITY import breadmod.registry.entity.ModEntityTypes.HAPPY_BLOCK_ENTITY import breadmod.registry.item.ModItems import breadmod.registry.menu.ModMenuTypes +import com.mojang.blaze3d.platform.InputConstants import com.mojang.blaze3d.vertex.DefaultVertexFormat import com.mojang.blaze3d.vertex.VertexFormat import net.minecraft.Util @@ -44,6 +45,7 @@ import net.minecraftforge.client.event.ModelEvent.RegisterAdditional import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay import net.minecraftforge.client.model.generators.ModelProvider import net.minecraftforge.client.settings.KeyConflictContext +import net.minecraftforge.client.settings.KeyModifier import net.minecraftforge.eventbus.api.SubscribeEvent import net.minecraftforge.fml.common.Mod import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent @@ -136,15 +138,15 @@ object ClientModEventBus { KeyMapping( it.nameKey, KeyConflictContext.IN_GAME, - it.modifier, - it.key(), + KeyModifier.valueFromString(it.modifier), + InputConstants.getKey(it.key), it.categoryKey ) } else { KeyMapping( it.nameKey, KeyConflictContext.IN_GAME, - it.key(), + InputConstants.getKey(it.key), it.categoryKey ) } diff --git a/src/main/kotlin/breadmod/datagen/tool_gun/BreadModToolGunModeProvider.kt b/src/main/kotlin/breadmod/datagen/tool_gun/BreadModToolGunModeProvider.kt index 268ffbd2..4116cbef 100644 --- a/src/main/kotlin/breadmod/datagen/tool_gun/BreadModToolGunModeProvider.kt +++ b/src/main/kotlin/breadmod/datagen/tool_gun/BreadModToolGunModeProvider.kt @@ -4,12 +4,10 @@ import breadmod.item.tool_gun.IToolGunMode import breadmod.util.componentToJson import com.google.gson.JsonArray import com.google.gson.JsonObject -import com.mojang.blaze3d.platform.InputConstants import net.minecraft.data.CachedOutput import net.minecraft.data.DataProvider import net.minecraft.data.PackOutput import net.minecraft.network.chat.Component -import net.minecraftforge.client.settings.KeyModifier import java.util.concurrent.CompletableFuture /** @@ -26,8 +24,8 @@ abstract class BreadModToolGunModeProvider(private val packOutput: PackOutput, p val nameKey: String, val categoryKey: String, val toolGunComponent: Component, - val key: () -> InputConstants.Key, - val modifier: KeyModifier? = null + val key: String, + val modifier: String? = null ) private val addedModes: MutableMap, List, Class<*>>> = mutableMapOf() @@ -44,8 +42,8 @@ abstract class BreadModToolGunModeProvider(private val packOutput: PackOutput, p data.second.forEach { array.add(JsonObject().also { keyObj -> keyObj.addProperty(CONTROLS_ID_KEY, it.id) - keyObj.addProperty(KEY_ENTRY_KEY, it.key().name) - keyObj.addProperty(MODIFIER_ENTRY_KEY, it.modifier?.name) + keyObj.addProperty(KEY_ENTRY_KEY, it.key) + keyObj.addProperty(MODIFIER_ENTRY_KEY, it.modifier) keyObj.addProperty(CONTROLS_NAME_TRANSLATION_KEY, it.nameKey) keyObj.addProperty(CONTROLS_CATEGORY_TRANSLATION_KEY, it.categoryKey) keyObj.add(TOOLGUN_INFO_DISPLAY_KEY, componentToJson(it.toolGunComponent)) diff --git a/src/main/kotlin/breadmod/datagen/tool_gun/ModToolGunModeDataLoader.kt b/src/main/kotlin/breadmod/datagen/tool_gun/ModToolGunModeDataLoader.kt index 2bdc010d..ecf208b7 100644 --- a/src/main/kotlin/breadmod/datagen/tool_gun/ModToolGunModeDataLoader.kt +++ b/src/main/kotlin/breadmod/datagen/tool_gun/ModToolGunModeDataLoader.kt @@ -18,14 +18,12 @@ import breadmod.item.tool_gun.IToolGunMode import breadmod.util.jsonToComponent import com.google.gson.Gson import com.google.gson.JsonElement -import com.mojang.blaze3d.platform.InputConstants import net.minecraft.client.Minecraft import net.minecraft.network.chat.Component import net.minecraft.resources.ResourceLocation import net.minecraft.server.packs.resources.ResourceManager import net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener import net.minecraft.util.profiling.ProfilerFiller -import net.minecraftforge.client.settings.KeyModifier import org.apache.commons.lang3.ArrayUtils import org.jetbrains.annotations.ApiStatus.Internal import kotlin.reflect.full.isSubclassOf @@ -85,8 +83,8 @@ internal object ModToolGunModeDataLoader : SimpleJsonResourceReloadListener(Gson keybind.getAsJsonPrimitive(CONTROLS_NAME_TRANSLATION_KEY).asString, keybind.getAsJsonPrimitive(CONTROLS_CATEGORY_TRANSLATION_KEY).asString, jsonToComponent(keybind.getAsJsonObject(TOOLGUN_INFO_DISPLAY_KEY)), - { InputConstants.getKey(keybind.getAsJsonPrimitive(KEY_ENTRY_KEY).asString) }, - keybind.getAsJsonPrimitive(MODIFIER_ENTRY_KEY)?.asString?.let { mod -> KeyModifier.getModifier(InputConstants.getKey(mod)) } + keybind.getAsJsonPrimitive(KEY_ENTRY_KEY).asString, + keybind.getAsJsonPrimitive(MODIFIER_ENTRY_KEY)?.asString ) toolGunBindList[control] = null add(control) diff --git a/src/main/kotlin/breadmod/datagen/tool_gun/ModToolGunModeProvider.kt b/src/main/kotlin/breadmod/datagen/tool_gun/ModToolGunModeProvider.kt index 56cd01b7..18476d8d 100644 --- a/src/main/kotlin/breadmod/datagen/tool_gun/ModToolGunModeProvider.kt +++ b/src/main/kotlin/breadmod/datagen/tool_gun/ModToolGunModeProvider.kt @@ -6,7 +6,6 @@ import breadmod.item.tool_gun.mode.creator.ToolGunCreatorMode import breadmod.item.tool_gun.mode.ToolGunExplodeMode import breadmod.item.tool_gun.mode.ToolGunPowerMode import breadmod.item.tool_gun.mode.ToolGunRemoverMode -import com.mojang.blaze3d.platform.InputConstants import net.minecraft.data.PackOutput internal class ModToolGunModeProvider( @@ -23,7 +22,7 @@ internal class ModToolGunModeProvider( "$TOOL_GUN_DEF.${ModMain.ID}.mode.controls.name.remover.rmb", "$TOOL_GUN_DEF.${ModMain.ID}.mode.controls.category.remover", modTranslatable(TOOL_GUN_DEF, "mode", "key_tooltip", "remover", "rmb"), - { InputConstants.Type.MOUSE.getOrCreate(InputConstants.MOUSE_BUTTON_RIGHT) } + "key.mouse.right" ) ), ToolGunRemoverMode::class.java @@ -39,14 +38,14 @@ internal class ModToolGunModeProvider( "$TOOL_GUN_DEF.${ModMain.ID}.mode.controls.name.creator.rmb", "$TOOL_GUN_DEF.${ModMain.ID}.mode.controls.category.creator", modTranslatable(TOOL_GUN_DEF, "mode", "key_tooltip", "creator", "rmb"), - { InputConstants.Type.MOUSE.getOrCreate(InputConstants.MOUSE_BUTTON_RIGHT) } + "key.mouse.right" ), Control( "screen", "${TOOL_GUN_DEF}.${ModMain.ID}.mode.controls.name.screen.r", "$TOOL_GUN_DEF.${ModMain.ID}.mode.controls.category.creator", modTranslatable(TOOL_GUN_DEF, "mode", "key_tooltip", "creator", "r"), - { InputConstants.Type.KEYSYM.getOrCreate(InputConstants.KEY_R) } + "key.keyboard.r" ) ), ToolGunCreatorMode::class.java @@ -62,7 +61,7 @@ internal class ModToolGunModeProvider( "$TOOL_GUN_DEF.${ModMain.ID}.mode.controls.name.power.rmb", "$TOOL_GUN_DEF.${ModMain.ID}.mode.controls.category.power", modTranslatable(TOOL_GUN_DEF, "mode", "key_tooltip", "power", "rmb"), - { InputConstants.Type.MOUSE.getOrCreate(InputConstants.MOUSE_BUTTON_RIGHT) } + "key.mouse.right" ) ), ToolGunPowerMode::class.java @@ -78,14 +77,14 @@ internal class ModToolGunModeProvider( "$TOOL_GUN_DEF.${ModMain.ID}.mode.controls.name.explode.rmb", "$TOOL_GUN_DEF.${ModMain.ID}.mode.controls.category.explode", modTranslatable(TOOL_GUN_DEF, "mode", "key_tooltip", "explode", "rmb"), - { InputConstants.Type.MOUSE.getOrCreate(InputConstants.MOUSE_BUTTON_RIGHT) } + "key.mouse.right" ), Control( "fluid_toggle", "$TOOL_GUN_DEF.${ModMain.ID}.mode.controls.name.explode.mmb", "$TOOL_GUN_DEF.${ModMain.ID}.mode.controls.category.explode", modTranslatable(TOOL_GUN_DEF, "mode", "key_tooltip", "explode", "mmb", "off"), - { InputConstants.Type.MOUSE.getOrCreate(InputConstants.MOUSE_BUTTON_MIDDLE) } + "key.mouse.middle" ) ), ToolGunExplodeMode::class.java diff --git a/src/main/kotlin/breadmod/network/tool_gun/ToolGunPacket.kt b/src/main/kotlin/breadmod/network/tool_gun/ToolGunPacket.kt index a9a4f4e9..4ab5c1fa 100644 --- a/src/main/kotlin/breadmod/network/tool_gun/ToolGunPacket.kt +++ b/src/main/kotlin/breadmod/network/tool_gun/ToolGunPacket.kt @@ -12,9 +12,7 @@ import breadmod.util.componentToJson import breadmod.util.jsonToComponent import com.google.gson.Gson import com.google.gson.JsonObject -import com.mojang.blaze3d.platform.InputConstants import net.minecraft.network.FriendlyByteBuf -import net.minecraftforge.client.settings.KeyModifier import net.minecraftforge.network.NetworkEvent import java.util.concurrent.CompletableFuture import java.util.function.Supplier @@ -27,8 +25,8 @@ data class ToolGunPacket(val pModeSwitch: Boolean, val pControl: BreadModToolGun writer.writeUtf(value.nameKey) writer.writeUtf(value.categoryKey) writer.writeUtf(componentToJson(value.toolGunComponent).toString()) - writer.writeUtf(value.key().name) - writer.writeNullable(value.modifier) { writer2, value2 -> writer2.writeUtf(value2.name) } + writer.writeUtf(value.key) + writer.writeNullable(value.modifier) { writer2, value2 -> writer2.writeUtf(value2) } } } fun decodeBuf(input: FriendlyByteBuf): ToolGunPacket = ToolGunPacket(input.readBoolean(), input.readNullable { @@ -37,8 +35,8 @@ data class ToolGunPacket(val pModeSwitch: Boolean, val pControl: BreadModToolGun input.readUtf(), input.readUtf(), jsonToComponent(Gson().fromJson(input.readUtf(), JsonObject::class.java)), - input.readUtf().let { { InputConstants.getKey(it) } }, - input.readNullable { KeyModifier.valueFromString(it.readUtf()) }, + input.readUtf(), + input.readNullable { it.readUtf() }, ) })