Skip to content

Commit becc29d

Browse files
committed
v1.1.2
save func name in export screen overwriting functions + new cfg key convert folder support
1 parent aadf1d8 commit becc29d

5 files changed

Lines changed: 24 additions & 9 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ yarn_mappings=1.20.1+build.10
77
loader_version=0.16.9
88
fabric_kotlin_version=1.13.6+kotlin.2.2.20
99
fabric_api_version=0.90.0+1.20.1
10-
mod_version=1.1.1
10+
mod_version=1.1.2
1111

1212
org.gradle.jvmargs=-Xmx4000m

src/main/kotlin/com/pulse/datapacktools/client/keybindings/ExportKeybinding.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@ package com.pulse.datapacktools.client.keybindings
22

33
import com.pulse.datapacktools.client.screen.ExportFunctionScreen
44
import com.pulse.datapacktools.client.util.PlayerUtil.getCommandBlockInFront
5-
import com.pulse.datapacktools.main.utils.ExtensionsUtil.getTargetBlock
65
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents
76
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper
87
import net.minecraft.client.MinecraftClient
9-
import net.minecraft.client.gui.screen.ingame.AbstractCommandBlockScreen
108
import net.minecraft.client.option.KeyBinding
119
import net.minecraft.client.util.InputUtil
1210
import org.lwjgl.glfw.GLFW

src/main/kotlin/com/pulse/datapacktools/client/screen/ExportFunctionScreen.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ import net.minecraft.text.Text
1111
import net.minecraft.util.Colors
1212

1313
class ExportFunctionScreen() : Screen(Text.translatable("gui.datapacktools.export.screen_title")) {
14+
companion object {
15+
var lastFunctionName: String = ""
16+
}
17+
1418
private lateinit var functionNameField: TextFieldWidget
1519
private lateinit var exportButton: ButtonWidget
1620
private lateinit var cancelButton: ButtonWidget
@@ -28,6 +32,7 @@ class ExportFunctionScreen() : Screen(Text.translatable("gui.datapacktools.expor
2832
Text.of("Function Name")
2933
)
3034
functionNameField.setMaxLength(16)
35+
functionNameField.text = lastFunctionName
3136

3237
changeCommandCheckBox = CheckboxWidget(
3338
width / 2 - 100,
@@ -88,4 +93,9 @@ class ExportFunctionScreen() : Screen(Text.translatable("gui.datapacktools.expor
8893
functionNameField.tick()
8994
exportButton.active = functionNameField.text.isNotBlank()
9095
}
96+
97+
override fun close() {
98+
lastFunctionName = functionNameField.text
99+
super.close()
100+
}
91101
}

src/main/kotlin/com/pulse/datapacktools/main/config/ConfigData.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.pulse.datapacktools.main.config
22

33
class ConfigData {
44
var enableAutomaticDatapackReload = true
5+
var enableWritingInExistingFunctions = true
56
var datapackNamespace = "datapacktools"
67
var datapackName = "datapacktools"
78
}

src/main/kotlin/com/pulse/datapacktools/main/packets/ConvertPacket.kt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,18 @@ object ConvertPacket {
4444
val worldDir: File = SessionUtils.worldFolderPath?.toFile() ?: return
4545
val commandList = mutableListOf<String>()
4646
createDefaultDatapack(worldDir)
47+
4748
val functionsDir = File(worldDir, "datapacks/${ModConfig.data.datapackName}/data/${ModConfig.data.datapackNamespace}/functions")
49+
val functionDir = File(functionsDir, functionName.substringBeforeLast('/'))
50+
val functionFile = File(functionsDir, "${functionName}.mcfunction")
4851

49-
if (File(functionsDir, "${functionName}.mcfunction").exists()) {
50-
player.sendMessage(Text.translatable("message.datapacktools.convert.fail.already_exists").formatted(Formatting.RED))
51-
return
52+
if (functionFile.exists()) {
53+
if (!ModConfig.data.enableWritingInExistingFunctions) {
54+
functionFile.readLines().forEach { commandList.add(it) }
55+
} else {
56+
player.sendMessage(Text.translatable("message.datapacktools.convert.fail.already_exists").formatted(Formatting.RED))
57+
return
58+
}
5259
}
5360

5461
val pos: BlockPos = player.getTargetBlock()?.blockPos ?: return
@@ -68,9 +75,8 @@ object ConvertPacket {
6875
}
6976
}
7077

71-
File(functionsDir, "${functionName}.mcfunction").apply {
72-
writeText(commandList.joinToString("\n"))
73-
}
78+
if (!functionDir.exists()) functionDir.mkdirs()
79+
functionFile.writeText(commandList.joinToString("\n"))
7480

7581
updateDatapack(player)
7682

0 commit comments

Comments
 (0)