aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/dulkirmod/utils/Utils.kt
blob: c3caa261ccb681815d8b84f224599c4de81fc53c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package dulkirmod.utils

import com.google.gson.Gson
import dulkirmod.DulkirMod.Companion.mc
import dulkirmod.config.Config
import net.minecraft.util.ChatComponentText
import net.minecraft.util.EnumChatFormatting
import java.awt.Toolkit
import java.awt.datatransfer.Clipboard
import java.awt.datatransfer.DataFlavor
import java.awt.datatransfer.StringSelection
import java.lang.IllegalArgumentException
import java.util.*

object Utils {
    fun stripColorCodes(string: String): String {
        return string.replace("§.".toRegex(), "")
    }

    fun animationConfigToString() {
        var s = ""
        var gson = Gson()
        var jsonString = gson.toJson(ConfigData())
        s = Base64.getEncoder().encodeToString(jsonString.toByteArray())
        // set clipboard
        val selection = StringSelection(s)
        val clipboard: Clipboard = Toolkit.getDefaultToolkit().systemClipboard
        clipboard.setContents(selection, selection)
    }

    fun animationStringtoConfig() {
        val gson = Gson()
        val clipboard: Clipboard = Toolkit.getDefaultToolkit().systemClipboard
        val base64 = clipboard.getData(DataFlavor.stringFlavor) as String
        try {
            val jsonString = String(Base64.getDecoder().decode(base64))
            val import = gson.fromJson(jsonString, ConfigData::class.java)
            Config.customSize = import.size
            Config.customSpeed = import.speed
            Config.doesScaleSwing = import.scaleSwing
            Config.customX = import.x
            Config.customY = import.y
            Config.customZ = import.z
            Config.customYaw = import.yaw
            Config.customPitch = import.pitch
            Config.customRoll = import.roll
            Config.drinkingSelector = import.drinkingFix
            Config.ignoreHaste = import.ignoreHaste } catch (e : Exception) {
            mc.thePlayer.addChatMessage(
                ChatComponentText(
                    EnumChatFormatting.GOLD.toString() + "" + EnumChatFormatting.BOLD + "Current clipboard is not a recognizable Custom Animation Preset."
                )
            )
        }
        mc.displayGuiScreen(null)
    }
}