File tree Expand file tree Collapse file tree
src/main/kotlin/com/pulse/datapacktools Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -7,6 +7,6 @@ yarn_mappings=1.20.1+build.10
77loader_version =0.16.9
88fabric_kotlin_version =1.13.6+kotlin.2.2.20
99fabric_api_version =0.90.0+1.20.1
10- mod_version =1.1.1
10+ mod_version =1.1.2
1111
1212org.gradle.jvmargs =-Xmx4000m
Original file line number Diff line number Diff line change @@ -2,11 +2,9 @@ package com.pulse.datapacktools.client.keybindings
22
33import com.pulse.datapacktools.client.screen.ExportFunctionScreen
44import com.pulse.datapacktools.client.util.PlayerUtil.getCommandBlockInFront
5- import com.pulse.datapacktools.main.utils.ExtensionsUtil.getTargetBlock
65import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents
76import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper
87import net.minecraft.client.MinecraftClient
9- import net.minecraft.client.gui.screen.ingame.AbstractCommandBlockScreen
108import net.minecraft.client.option.KeyBinding
119import net.minecraft.client.util.InputUtil
1210import org.lwjgl.glfw.GLFW
Original file line number Diff line number Diff line change @@ -11,6 +11,10 @@ import net.minecraft.text.Text
1111import net.minecraft.util.Colors
1212
1313class 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}
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package com.pulse.datapacktools.main.config
22
33class ConfigData {
44 var enableAutomaticDatapackReload = true
5+ var enableWritingInExistingFunctions = true
56 var datapackNamespace = " datapacktools"
67 var datapackName = " datapacktools"
78}
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments