From ddd78dcef4f7ad7f6fca480e2855cea937ddafe3 Mon Sep 17 00:00:00 2001 From: Byte Dice Date: Sun, 15 Dec 2024 15:29:39 +0100 Subject: [PATCH] fixed bug where creating a particle with a minecraft: prefix crashes server --- .../com/bytedice/bde_particles/commands/ManageEmitters.kt | 6 ++++-- .../bde_particles/particles/ParticleIdRegister.kt | 8 +++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/com/bytedice/bde_particles/commands/ManageEmitters.kt b/src/main/kotlin/com/bytedice/bde_particles/commands/ManageEmitters.kt index da71609..dd85c80 100644 --- a/src/main/kotlin/com/bytedice/bde_particles/commands/ManageEmitters.kt +++ b/src/main/kotlin/com/bytedice/bde_particles/commands/ManageEmitters.kt @@ -122,12 +122,14 @@ object ManageEmitters { } private fun createExec(context: CommandContext, newEmitterId: String, presetEmitterId: String) { - val params = getEmitterDataById(presetEmitterId) + val params = getEmitterDataById(presetEmitterId)?.copy() val usedDefault = params == null + println(params?.modelCurve?.array?.size) + val result = addToRegister( newEmitterId, - if (usedDefault) { EmitterParams.DEFAULT } else { params!! }, + params ?: EmitterParams.DEFAULT, ) if (usedDefault && result.second) { diff --git a/src/main/kotlin/com/bytedice/bde_particles/particles/ParticleIdRegister.kt b/src/main/kotlin/com/bytedice/bde_particles/particles/ParticleIdRegister.kt index b80e68c..9abac92 100644 --- a/src/main/kotlin/com/bytedice/bde_particles/particles/ParticleIdRegister.kt +++ b/src/main/kotlin/com/bytedice/bde_particles/particles/ParticleIdRegister.kt @@ -29,13 +29,11 @@ fun addToRegister(id: String, params: EmitterParams) : Pair { for (model in params.modelCurve.array) { val modelModIdRegex = ".*:".toRegex() - if (modelModIdRegex.containsMatchIn(model)) { break } - else { - newModels.add("minecraft:$model") - } + if (modelModIdRegex.containsMatchIn(model)) { newModels.add(model) } + else { newModels.add("minecraft:$model") } } - params.modelCurve = ParamClasses.StringCurve(newModels.toTypedArray(), params.modelCurve.curve) + params.modelCurve.array = newModels.toTypedArray() idRegister[id] = params println("BPS - Registered Emitter ID \"$newId\".")