Skip to content

Commit

Permalink
fix tool gun data loader crashing dedicated servers
Browse files Browse the repository at this point in the history
  • Loading branch information
ttttdoy committed Aug 15, 2024
1 parent 22f664d commit e14e70a
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 27 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
kotlin.code.style=official
org.gradle.jvmargs=-Xmx3G
org.gradle.jvmargs=-Xmx5G
org.gradle.daemon=false

kapt.incremental.apt=true
Expand Down
8 changes: 5 additions & 3 deletions src/main/kotlin/breadmod/ClientModEventBus.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

/**
Expand All @@ -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<String, Triple<Pair<Component, Component>, List<Control>, Class<*>>> = mutableMapOf()

Expand All @@ -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))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
10 changes: 4 additions & 6 deletions src/main/kotlin/breadmod/network/tool_gun/ToolGunPacket.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 {
Expand All @@ -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() },
)
})

Expand Down

0 comments on commit e14e70a

Please sign in to comment.