aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/lorenz/mod/utils
diff options
context:
space:
mode:
authorLorenz <ESs95s3P5z8Pheb>2022-07-14 12:06:07 +0200
committerLorenz <ESs95s3P5z8Pheb>2022-07-14 12:06:07 +0200
commitd1a99b2a9a9859c922002771c3d8229fab2ecb8d (patch)
treedbbe5b208e6871378a10868d1206d1d78beeb950 /src/main/java/at/lorenz/mod/utils
parentf20b096222ebbffd7decec2fecf1416002644865 (diff)
downloadSkyHanni-d1a99b2a9a9859c922002771c3d8229fab2ecb8d.tar.gz
SkyHanni-d1a99b2a9a9859c922002771c3d8229fab2ecb8d.tar.bz2
SkyHanni-d1a99b2a9a9859c922002771c3d8229fab2ecb8d.zip
renamed mod to SkyHanni
Diffstat (limited to 'src/main/java/at/lorenz/mod/utils')
-rw-r--r--src/main/java/at/lorenz/mod/utils/APIUtil.kt48
-rw-r--r--src/main/java/at/lorenz/mod/utils/BlockUtils.kt23
-rw-r--r--src/main/java/at/lorenz/mod/utils/GuiRender.kt32
-rw-r--r--src/main/java/at/lorenz/mod/utils/ItemUtil.kt213
-rw-r--r--src/main/java/at/lorenz/mod/utils/ItemUtils.kt72
-rw-r--r--src/main/java/at/lorenz/mod/utils/LorenzColor.kt27
-rw-r--r--src/main/java/at/lorenz/mod/utils/LorenzDebug.kt16
-rw-r--r--src/main/java/at/lorenz/mod/utils/LorenzLogger.kt70
-rw-r--r--src/main/java/at/lorenz/mod/utils/LorenzUtils.kt130
-rw-r--r--src/main/java/at/lorenz/mod/utils/LorenzVec.kt61
-rw-r--r--src/main/java/at/lorenz/mod/utils/NumberUtil.kt152
-rw-r--r--src/main/java/at/lorenz/mod/utils/RenderUtils.kt355
12 files changed, 0 insertions, 1199 deletions
diff --git a/src/main/java/at/lorenz/mod/utils/APIUtil.kt b/src/main/java/at/lorenz/mod/utils/APIUtil.kt
deleted file mode 100644
index 7e0193f50..000000000
--- a/src/main/java/at/lorenz/mod/utils/APIUtil.kt
+++ /dev/null
@@ -1,48 +0,0 @@
-package at.lorenz.mod.utils
-
-import com.google.gson.JsonObject
-import com.google.gson.JsonParser
-import org.apache.http.client.config.RequestConfig
-import org.apache.http.client.methods.HttpGet
-import org.apache.http.impl.client.HttpClientBuilder
-import org.apache.http.impl.client.HttpClients
-import org.apache.http.message.BasicHeader
-import org.apache.http.util.EntityUtils
-
-
-object APIUtil {
- private val parser = JsonParser()
-
- val builder: HttpClientBuilder =
- HttpClients.custom().setUserAgent("LorenzMod")
- .setDefaultHeaders(
- mutableListOf(
- BasicHeader("Pragma", "no-cache"),
- BasicHeader("Cache-Control", "no-cache")
- )
- )
- .setDefaultRequestConfig(
- RequestConfig.custom()
- .build()
- )
- .useSystemProperties()
-
- fun getJSONResponse(urlString: String): JsonObject {
- val client = builder.build()
- try {
- client.execute(HttpGet(urlString)).use { response ->
- val entity = response.entity
- if (entity != null) {
- val retSrc = EntityUtils.toString(entity)
- return parser.parse(retSrc) as JsonObject
- }
- }
- } catch (ex: Throwable) {
- ex.printStackTrace()
- LorenzUtils.error("Lorenz Mod ran into an ${ex::class.simpleName ?: "error"} whilst fetching a resource. See logs for more details.")
- } finally {
- client.close()
- }
- return JsonObject()
- }
-} \ No newline at end of file
diff --git a/src/main/java/at/lorenz/mod/utils/BlockUtils.kt b/src/main/java/at/lorenz/mod/utils/BlockUtils.kt
deleted file mode 100644
index d16194c70..000000000
--- a/src/main/java/at/lorenz/mod/utils/BlockUtils.kt
+++ /dev/null
@@ -1,23 +0,0 @@
-package at.lorenz.mod.utils
-
-import net.minecraft.block.Block
-import net.minecraft.client.Minecraft
-import net.minecraft.tileentity.TileEntitySkull
-import net.minecraft.util.BlockPos
-import net.minecraftforge.common.util.Constants
-
-object BlockUtils {
-
- fun LorenzVec.getBlockAt(): Block =
- Minecraft.getMinecraft().theWorld.getBlockState(toBlocPos()).block
-
- fun LorenzVec.isInLoadedChunk(): Boolean =
- Minecraft.getMinecraft().theWorld.chunkProvider.provideChunk(toBlocPos()).isLoaded
-
- fun getSkinFromSkull(position: BlockPos?): String? {
- val entity = Minecraft.getMinecraft().theWorld.getTileEntity(position) as TileEntitySkull
- val serializeNBT = entity.serializeNBT()
- return serializeNBT.getCompoundTag("Owner").getCompoundTag("Properties")
- .getTagList("textures", Constants.NBT.TAG_COMPOUND).getCompoundTagAt(0).getString("Value")
- }
-} \ No newline at end of file
diff --git a/src/main/java/at/lorenz/mod/utils/GuiRender.kt b/src/main/java/at/lorenz/mod/utils/GuiRender.kt
deleted file mode 100644
index 03918fb66..000000000
--- a/src/main/java/at/lorenz/mod/utils/GuiRender.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-package at.lorenz.mod.utils
-
-import at.lorenz.mod.utils.LorenzUtils.removeColorCodes
-import at.lorenz.mod.config.core.config.Position
-import net.minecraft.client.Minecraft
-import net.minecraft.client.gui.ScaledResolution
-import net.minecraft.client.renderer.GlStateManager
-
-object GuiRender {
-
- fun Position.renderString(string: String) {
- val textToRender = "§f$string"
-
- GlStateManager.pushMatrix()
- val resolution = ScaledResolution(Minecraft.getMinecraft())
-
- val renderer = Minecraft.getMinecraft().renderManager.fontRenderer
-
- val offsetX = (200 - renderer.getStringWidth(textToRender.removeColorCodes())) / 2
-
- val x = getAbsX(resolution, 200) + offsetX
- val y = getAbsY(resolution, 16)
-
-
-
- GlStateManager.translate(x + 1.0, y + 1.0, 0.0)
- renderer.drawStringWithShadow(textToRender, 0f, 0f, 0)
-
-
- GlStateManager.popMatrix()
- }
-} \ No newline at end of file
diff --git a/src/main/java/at/lorenz/mod/utils/ItemUtil.kt b/src/main/java/at/lorenz/mod/utils/ItemUtil.kt
deleted file mode 100644
index 341b94ca8..000000000
--- a/src/main/java/at/lorenz/mod/utils/ItemUtil.kt
+++ /dev/null
@@ -1,213 +0,0 @@
-package at.lorenz.mod.utils
-
-import net.minecraft.init.Items
-import net.minecraft.item.ItemStack
-import net.minecraft.nbt.NBTTagCompound
-import net.minecraft.nbt.NBTTagList
-import net.minecraft.nbt.NBTTagString
-import net.minecraftforge.common.util.Constants
-import java.util.*
-
-object ItemUtil {
- private val PET_PATTERN = "§7\\[Lvl \\d+] (?<color>§[0-9a-fk-or]).+".toRegex()
- const val NBT_INTEGER = 3
- private const val NBT_STRING = 8
- private const val NBT_LIST = 9
- private const val NBT_COMPOUND = 10
-
- /**
- * Returns the display name of a given item
- * @author Mojang
- * @param item the Item to get the display name of
- * @return the display name of the item
- */
- @JvmStatic
- fun getDisplayName(item: ItemStack): String {
- var s = item.item.getItemStackDisplayName(item)
- if (item.tagCompound != null && item.tagCompound.hasKey("display", 10)) {
- val nbtTagCompound = item.tagCompound.getCompoundTag("display")
- if (nbtTagCompound.hasKey("Name", 8)) {
- s = nbtTagCompound.getString("Name")
- }
- }
- return s
- }
-
- /**
- * Returns the Skyblock Item ID of a given Skyblock item
- *
- * @author BiscuitDevelopment
- * @param item the Skyblock item to check
- * @return the Skyblock Item ID of this item or `null` if this isn't a valid Skyblock item
- */
- @JvmStatic
- fun getSkyBlockItemID(item: ItemStack?): String? {
- if (item == null) {
- return null
- }
- val extraAttributes = getExtraAttributes(item) ?: return null
- return if (!extraAttributes.hasKey("id", NBT_STRING)) {
- null
- } else extraAttributes.getString("id")
- }
-
- /**
- * Returns the `ExtraAttributes` compound tag from the item's NBT data.
- *
- * @author BiscuitDevelopment
- * @param item the item to get the tag from
- * @return the item's `ExtraAttributes` compound tag or `null` if the item doesn't have one
- */
- @JvmStatic
- fun getExtraAttributes(item: ItemStack?): NBTTagCompound? {
- return if (item == null || !item.hasTagCompound()) {
- null
- } else item.getSubCompound("ExtraAttributes", false)
- }
-
- /**
- * Returns the Skyblock Item ID of a given Skyblock Extra Attributes NBT Compound
- *
- * @author BiscuitDevelopment
- * @param extraAttributes the NBT to check
- * @return the Skyblock Item ID of this item or `null` if this isn't a valid Skyblock NBT
- */
- @JvmStatic
- fun getSkyBlockItemID(extraAttributes: NBTTagCompound?): String? {
- if (extraAttributes != null) {
- val itemId = extraAttributes.getString("id")
- if (itemId.isNotEmpty()) {
- return itemId
- }
- }
- return null
- }
-
- /**
- * Returns a string list containing the nbt lore of an ItemStack, or
- * an empty list if this item doesn't have a lore. The returned lore
- * list is unmodifiable since it has been converted from an NBTTagList.
- *
- * @author BiscuitDevelopment
- * @param itemStack the ItemStack to get the lore from
- * @return the lore of an ItemStack as a string list
- */
- @JvmStatic
- fun getItemLore(itemStack: ItemStack): List<String> {
- if (itemStack.hasTagCompound() && itemStack.tagCompound.hasKey("display", NBT_COMPOUND)) {
- val display = itemStack.tagCompound.getCompoundTag("display")
- if (display.hasKey("Lore", NBT_LIST)) {
- val lore = display.getTagList("Lore", NBT_STRING)
- val loreAsList = ArrayList<String>(lore.tagCount())
- for (lineNumber in 0 until lore.tagCount()) {
- loreAsList.add(lore.getStringTagAt(lineNumber))
- }
- return Collections.unmodifiableList(loreAsList)
- }
- }
- return emptyList()
- }
-
-// @JvmStatic
-// fun hasRightClickAbility(itemStack: ItemStack): Boolean {
-// for (line in getItemLore(itemStack)) {
-// val stripped = line.stripControlCodes()
-// if (stripped.startsWith("Item Ability:") && stripped.endsWith("RIGHT CLICK")) return true
-// }
-// return false
-// }
-
-// /**
-// * Returns the rarity of a given Skyblock item
-// * Modified
-// * @author BiscuitDevelopment
-// * @param item the Skyblock item to check
-// * @return the rarity of the item if a valid rarity is found, `null` if no rarity is found, `null` if item is `null`
-// */
-// fun getRarity(item: ItemStack?): ItemRarity {
-// if (item == null || !item.hasTagCompound()) {
-// return ItemRarity.NONE
-// }
-// val display = item.getSubCompound("display", false)
-// if (display == null || !display.hasKey("Lore")) {
-// return ItemRarity.NONE
-// }
-// val lore = display.getTagList("Lore", Constants.NBT.TAG_STRING)
-// val name = display.getString("Name")
-//
-// // Determine the item's rarity
-// for (i in (lore.tagCount() - 1) downTo 0) {
-// val currentLine = lore.getStringTagAt(i)
-// val rarityMatcher = RARITY_PATTERN.find(currentLine)
-// if (rarityMatcher != null) {
-// val rarity = rarityMatcher.groups["rarity"]?.value ?: continue
-// ItemRarity.values().find {
-// it.rarityName == rarity.stripControlCodes().substringAfter("SHINY ")
-// }?.let {
-// return it
-// }
-// }
-// }
-// val petRarityMatcher = PET_PATTERN.find(name)
-// if (petRarityMatcher != null) {
-// val color = petRarityMatcher.groupValues.getOrNull(1) ?: return ItemRarity.NONE
-// return ItemRarity.byBaseColor(color) ?: ItemRarity.NONE
-// }
-//
-// // If the item doesn't have a valid rarity, return null
-// return ItemRarity.NONE
-// }
-
- fun isPet(item: ItemStack?): Boolean {
- if (item == null || !item.hasTagCompound()) {
- return false
- }
- val display = item.getSubCompound("display", false)
- if (display == null || !display.hasKey("Lore")) {
- return false
- }
- val name = display.getString("Name")
-
- return PET_PATTERN.matches(name)
- }
-
- fun setSkullTexture(item: ItemStack, texture: String, SkullOwner: String): ItemStack {
- val textureTagCompound = NBTTagCompound()
- textureTagCompound.setString("Value", texture)
-
- val textures = NBTTagList()
- textures.appendTag(textureTagCompound)
-
- val properties = NBTTagCompound()
- properties.setTag("textures", textures)
-
- val skullOwner = NBTTagCompound()
- skullOwner.setString("Id", SkullOwner)
- skullOwner.setTag("Properties", properties)
-
- val nbtTag = NBTTagCompound()
- nbtTag.setTag("SkullOwner", skullOwner)
-
- item.tagCompound = nbtTag
- return item
- }
-
- fun getSkullTexture(item: ItemStack): String? {
- if (item.item != Items.skull) return null
- val nbt = item.tagCompound
- if (!nbt.hasKey("SkullOwner")) return null
- return nbt.getCompoundTag("SkullOwner").getCompoundTag("Properties")
- .getTagList("textures", Constants.NBT.TAG_COMPOUND).getCompoundTagAt(0).getString("Value")
- }
-
- fun ItemStack.setLore(lines: List<String>): ItemStack {
- setTagInfo("display", getSubCompound("display", true).apply {
- setTag("Lore", NBTTagList().apply {
- for (line in lines) appendTag(NBTTagString(line))
- })
- })
- return this
- }
-
- fun NBTTagList.asStringSet() = (0..tagCount()).mapTo(hashSetOf()) { getStringTagAt(it) }
-} \ No newline at end of file
diff --git a/src/main/java/at/lorenz/mod/utils/ItemUtils.kt b/src/main/java/at/lorenz/mod/utils/ItemUtils.kt
deleted file mode 100644
index 6d5bf57da..000000000
--- a/src/main/java/at/lorenz/mod/utils/ItemUtils.kt
+++ /dev/null
@@ -1,72 +0,0 @@
-package at.lorenz.mod.utils
-
-import at.lorenz.mod.utils.LorenzUtils.matchRegex
-import at.lorenz.mod.utils.LorenzUtils.removeColorCodes
-import net.minecraft.client.Minecraft
-import net.minecraft.client.gui.inventory.GuiChest
-import net.minecraft.item.ItemStack
-
-object ItemUtils {
-
- fun ItemStack.cleanName() = this.displayName.removeColorCodes()
-
- fun getItemsInOpenChest(): List<ItemStack> {
- val list = mutableListOf<ItemStack>()
- val guiChest = Minecraft.getMinecraft().currentScreen as GuiChest
- val inventorySlots = guiChest.inventorySlots.inventorySlots
- val skipAt = inventorySlots.size - 9 * 4
- var i = 0
- for (slot in inventorySlots) {
- val stack = slot.stack
- if (stack != null) {
- list.add(stack)
- }
- i++
- if (i == skipAt) break
- }
- return list
- }
-
- fun isSack(name: String): Boolean = name.endsWith(" Sack")
-
- fun ItemStack.getLore() = ItemUtil.getItemLore(this)
-
- fun isCoOpSoulBound(stack: ItemStack): Boolean = stack.getLore().any { it.contains("Co-op Soulbound") }
-
- fun isRecombobulated(stack: ItemStack): Boolean = stack.getLore().any { it.contains("§k") }
-
- fun isPet(name: String): Boolean = name.matchRegex("\\[Lvl (.*)] (.*)") && !listOf(
- "Archer",
- "Berserk",
- "Mage",
- "Tank",
- "Healer",
- "➡",
- ).any { name.contains(it) }
-
- fun maxPetLevel(name: String) = if (name.contains("Golden Dragon")) 200 else 100
-
- fun getItemsInInventoryWithSlots(withCursorItem: Boolean = false): Map<ItemStack, Int> {
- val map: LinkedHashMap<ItemStack, Int> = LinkedHashMap()
- val player = Minecraft.getMinecraft().thePlayer
- if (player == null) {
- LorenzUtils.warning("getItemsInInventoryWithSlots: player is null!")
- return map
- }
- for (slot in player.openContainer.inventorySlots) {
- if (slot.hasStack) {
- map[slot.stack] = slot.slotNumber
- }
- }
-
- if (withCursorItem) {
- if (player.inventory != null) {
- if (player.inventory.itemStack != null) {
- map[player.inventory.itemStack] = -1
- }
- }
- }
-
- return map
- }
-} \ No newline at end of file
diff --git a/src/main/java/at/lorenz/mod/utils/LorenzColor.kt b/src/main/java/at/lorenz/mod/utils/LorenzColor.kt
deleted file mode 100644
index e60d6d8d1..000000000
--- a/src/main/java/at/lorenz/mod/utils/LorenzColor.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-package at.lorenz.mod.utils
-
-import java.awt.Color
-
-enum class LorenzColor(private var chatColorCode: Char, private val color: Color) {
- BLACK('0', Color(0, 0, 0)),
- DARK_BLUE('1', Color(0, 0, 170)),
- DARK_GREEN('2', Color(0, 170, 0)),
- DARK_AQUA('3', Color(0, 170, 170)),
- DARK_RED('4', Color(170, 0, 0)),
- DARK_PURPLE('5', Color(170, 0, 170)),
- GOLD('6', Color(255, 170, 0)),
- GRAY('7', Color(170, 170, 170)),
- DARK_GRAY('8', Color(85, 85, 85)),
- BLUE('9', Color(85, 85, 255)),
- GREEN('a', Color(85, 255, 85)),
- AQUA('b', Color(85, 255, 255)),
- RED('c', Color(255, 85, 85)),
- LIGHT_PURPLE('d', Color(255, 85, 255)),
- YELLOW('e', Color(255, 255, 85)),
- WHITE('f', Color(255, 255, 255)),
- ;
-
- fun getChatColor(): String = "§$chatColorCode"
-
- fun toColor(): Color = color
-} \ No newline at end of file
diff --git a/src/main/java/at/lorenz/mod/utils/LorenzDebug.kt b/src/main/java/at/lorenz/mod/utils/LorenzDebug.kt
deleted file mode 100644
index 32e4ac6f0..000000000
--- a/src/main/java/at/lorenz/mod/utils/LorenzDebug.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package at.lorenz.mod.utils
-
-object LorenzDebug {
-
- private val logger = LorenzLogger("debug")
-
- fun log(text: String) {
- logger.log(text)
- println("debug logger: $text")
- }
-
- fun writeAndLog(text: String) {
- LorenzUtils.debug(text)
- log(text)
- }
-} \ No newline at end of file
diff --git a/src/main/java/at/lorenz/mod/utils/LorenzLogger.kt b/src/main/java/at/lorenz/mod/utils/LorenzLogger.kt
deleted file mode 100644
index 48bfc6099..000000000
--- a/src/main/java/at/lorenz/mod/utils/LorenzLogger.kt
+++ /dev/null
@@ -1,70 +0,0 @@
-package at.lorenz.mod.utils
-
-import at.lorenz.mod.utils.LorenzUtils.formatCurrentTime
-import java.io.File
-import java.io.IOException
-import java.text.SimpleDateFormat
-import java.util.logging.FileHandler
-import java.util.logging.Formatter
-import java.util.logging.LogRecord
-import java.util.logging.Logger
-
-class LorenzLogger(filePath: String) {
- private val format = SimpleDateFormat("HH:mm:ss")
- private val fileName = "$PREFIX_PATH$filePath.log"
-
- companion object {
- private var PREFIX_PATH: String
-
- init {
- val format = SimpleDateFormat("yyyy_MM_dd/HH_mm_ss").formatCurrentTime()
- PREFIX_PATH = "mods/LorenzMod/logs/$format/"
- }
- }
-
- private lateinit var logger: Logger
-
- private fun getLogger(): Logger {
- if (::logger.isInitialized) {
- return logger
- }
-
- val initLogger = initLogger()
- this.logger = initLogger
- return initLogger
- }
-
- private fun initLogger(): Logger {
- val logger = Logger.getLogger("" + System.nanoTime())
- try {
- createParent(File(fileName))
- val handler = FileHandler(fileName)
- handler.encoding ="utf-8"
- logger.addHandler(handler)
- handler.formatter = object : Formatter() {
- override fun format(logRecord: LogRecord): String {
- val message = logRecord.message
- return format.formatCurrentTime() + " $message\n"
- }
- }
- } catch (e: SecurityException) {
- e.printStackTrace()
- } catch (e: IOException) {
- e.printStackTrace()
- }
- return logger
- }
-
- private fun createParent(file: File) {
- val parent = file.parentFile
- if (parent != null) {
- if (!parent.isDirectory) {
- parent.mkdirs()
- }
- }
- }
-
- fun log(text: String?) {
- getLogger().info(text)
- }
-}
diff --git a/src/main/java/at/lorenz/mod/utils/LorenzUtils.kt b/src/main/java/at/lorenz/mod/utils/LorenzUtils.kt
deleted file mode 100644
index 875b41af5..000000000
--- a/src/main/java/at/lorenz/mod/utils/LorenzUtils.kt
+++ /dev/null
@@ -1,130 +0,0 @@
-package at.lorenz.mod.utils
-
-import at.lorenz.mod.misc.HypixelData
-import net.minecraft.client.Minecraft
-import net.minecraft.entity.EntityLivingBase
-import net.minecraft.entity.SharedMonsterAttributes
-import net.minecraft.util.ChatComponentText
-import org.intellij.lang.annotations.Language
-import java.text.DecimalFormat
-import java.text.SimpleDateFormat
-
-object LorenzUtils {
-
- val isOnHypixel: Boolean
- get() = HypixelData.hypixel
-
- val inSkyblock: Boolean
- get() = HypixelData.hypixel && HypixelData.skyblock
-
- val inDungeons: Boolean
- get() = HypixelData.hypixel && HypixelData.skyblock && HypixelData.dungeon
-
- const val DEBUG_PREFIX = "[Debug] §7"
-
- fun debug(message: String) {
- internalChat(DEBUG_PREFIX + message)
- }
-
- fun warning(message: String) {
- internalChat("§cWarning! $message")
- }
-
- fun error(message: String) {
- internalChat("§4$message")
- }
-
- fun chat(message: String) {
- internalChat(message)
- }
-
- private fun internalChat(message: String) {
- val minecraft = Minecraft.getMinecraft()
- if (minecraft == null) {
- println(message)
- return
- }
-
- val thePlayer = minecraft.thePlayer
- if (thePlayer == null) {
- println(message)
- return
- }
-
- thePlayer.addChatMessage(ChatComponentText(message))
- }
-
- fun String.matchRegex(@Language("RegExp") regex: String): Boolean = regex.toRegex().matches(this)
-
- fun String.removeColorCodes(): String {
- val builder = StringBuilder()
- var skipNext = false
- for (c in this.toCharArray()) {
- if (c == '§') {
- skipNext = true
- continue
- }
- if (skipNext) {
- skipNext = false
- continue
- }
- builder.append(c)
- }
-
- return builder.toString()
- }
-
- fun SimpleDateFormat.formatCurrentTime(): String = this.format(System.currentTimeMillis())
-
- fun stripVanillaMessage(originalMessage: String): String {
- var message = originalMessage
-
- while (message.startsWith("§r")) {
- message = message.substring(2)
- }
- while (message.endsWith("§r")) {
- message = message.substring(0, message.length - 2)
- }
-
-// if (!message.startsWith(LorenzUtils.DEBUG_PREFIX + "chat api got (123)")) {
-// if (message.matchRegex("(.*)§r§7 \\((.{1,3})\\)")) {
-// val indexOf = message.lastIndexOf("(")
-//// LorenzAddons.testLogger.log("chat api got (123)!")
-//// LorenzAddons.testLogger.log("before: '$message'")
-// message = message.substring(0, indexOf - 5)
-//// LorenzAddons.testLogger.log("after: '$message'")
-//// LorenzAddons.testLogger.log("")
-//// LorenzUtils.debug("chat api got (123)")
-//// } else if (message.endsWith("§r§7 (2)")) {
-////// LorenzAddons.testLogger.log("other variant: '$message'")
-////// LorenzAddons.testLogger.log("")
-//// LorenzUtils.debug("chat api got WRONG (123)")
-// }
-// }
-
- return message
- }
-
- fun Double.round(decimals: Int): Double {
- var multiplier = 1.0
- repeat(decimals) { multiplier *= 10 }
- return kotlin.math.round(this * multiplier) / multiplier
- }
-
- fun String.between(start: String, end: String): String = this.split(start, end)[1]
-
- val EntityLivingBase.baseMaxHealth: Double
- get() = this.getEntityAttribute(SharedMonsterAttributes.maxHealth).baseValue
-
- fun formatPercentage(percentage: Double): String = formatPercentage(percentage, "0.00")
-
- fun formatPercentage(percentage: Double, format: String?): String =
- DecimalFormat(format).format(percentage * 100).replace(',', '.') + "%"
-
- fun formatInteger(i: Int): String = DecimalFormat("#,##0").format(i.toLong()).replace(',', '.')
-
- fun formatDouble(d: Double, format: String?): String =
- DecimalFormat(format).format(d).replace(',', 'x').replace('.', ',').replace('x', '.')
-
- fun formatDouble(d: Double): String = formatDouble(d, "#,##0.0")
-} \ No newline at end of file
diff --git a/src/main/java/at/lorenz/mod/utils/LorenzVec.kt b/src/main/java/at/lorenz/mod/utils/LorenzVec.kt
deleted file mode 100644
index 7dc29b369..000000000
--- a/src/main/java/at/lorenz/mod/utils/LorenzVec.kt
+++ /dev/null
@@ -1,61 +0,0 @@
-package at.lorenz.mod.utils
-
-import net.minecraft.entity.Entity
-import net.minecraft.util.BlockPos
-import net.minecraft.util.Vec3
-import kotlin.math.pow
-
-data class LorenzVec(
- val x: Double,
- val y: Double,
- val z: Double
-) {
- constructor(x: Int, y: Int, z: Int) : this(x.toDouble(), y.toDouble(), z.toDouble())
-
- fun toBlocPos(): BlockPos = BlockPos(x, y, z)
-
- fun toVec3(): Vec3 = Vec3(x, y, z)
-
- fun distance(other: LorenzVec): Double = distanceSq(other).pow(0.5)
-
- fun distanceSq(x: Double, y: Double, z: Double): Double = distanceSq(LorenzVec(x, y, z))
-
- fun distance(x: Double, y: Double, z: Double): Double = distance(LorenzVec(x, y, z))
-
- fun distanceSq(other: LorenzVec): Double {
- val dx = (other.x - x)
- val dy = (other.y - y)
- val dz = (other.z - z)
- return (dx * dx + dy * dy + dz * dz)
- }
-
- fun add(x: Double, y: Double, z: Double): LorenzVec = LorenzVec(this.x + x, this.y + y, this.z + z)
-
- fun add(x: Int, y: Int, z: Int): LorenzVec = LorenzVec(this.x + x, this.y + y, this.z + z)
-
- override fun toString(): String {
- return "LorenzVec{" +
- "x=" + x +
- ", y=" + y +
- ", z=" + z +
- '}'
- }
-
- fun multiply(d: Double): LorenzVec = LorenzVec(x multiplyZeroSave d, y multiplyZeroSave d, z multiplyZeroSave d)
-
- fun multiply(d: Int): LorenzVec =
- LorenzVec(x multiplyZeroSave d.toDouble(), y multiplyZeroSave d.toDouble(), z multiplyZeroSave d.toDouble())
-
- fun add(other: LorenzVec) = LorenzVec(x + other.x, y + other.y, z + other.z)
-}
-
-private infix fun Double.multiplyZeroSave(other: Double): Double {
- val result = this * other
- return if (result == -0.0) 0.0 else result
-}
-
-fun BlockPos.toLorenzVec(): LorenzVec = LorenzVec(x, y, z)
-
-fun Entity.getLorenzVec(): LorenzVec = LorenzVec(posX, posY, posZ)
-
-fun Vec3.toLorenzVec(): LorenzVec = LorenzVec(xCoord, yCoord, zCoord) \ No newline at end of file
diff --git a/src/main/java/at/lorenz/mod/utils/NumberUtil.kt b/src/main/java/at/lorenz/mod/utils/NumberUtil.kt
deleted file mode 100644
index 12040bd07..000000000
--- a/src/main/java/at/lorenz/mod/utils/NumberUtil.kt
+++ /dev/null
@@ -1,152 +0,0 @@
-package at.lorenz.mod.utils
-
-import java.text.NumberFormat
-import java.util.*
-import kotlin.math.pow
-import kotlin.math.roundToInt
-
-object NumberUtil {
- @JvmField
- val nf: NumberFormat = NumberFormat.getInstance(Locale.US)
- private val suffixes = TreeMap<Long, String>().apply {
- this[1000L] = "k"
- this[1000000L] = "M"
- this[1000000000L] = "B"
- this[1000000000000L] = "T"
- this[1000000000000000L] = "P"
- this[1000000000000000000L] = "E"
- }
- private val romanSymbols = TreeMap(
- mapOf(
- 1000 to "M",
- 900 to "CM",
- 500 to "D",
- 400 to "CD",
- 100 to "C",
- 90 to "XC",
- 50 to "L",
- 40 to "XL",
- 10 to "X",
- 9 to "IX",
- 5 to "V",
- 4 to "IV",
- 1 to "I",
- )
- )
-
- /**
- * This code was unmodified and taken under CC BY-SA 3.0 license
- * @link https://stackoverflow.com/a/30661479
- * @author assylias
- */
- @JvmStatic
- fun format(value: Number): String {
- @Suppress("NAME_SHADOWING")
- val value = value.toLong()
- //Long.MIN_VALUE == -Long.MIN_VALUE so we need an adjustment here
- if (value == Long.MIN_VALUE) return format(Long.MIN_VALUE + 1)
- if (value < 0) return "-" + format(-value)
- if (value < 1000) return value.toString() //deal with easy case
- val (divideBy, suffix) = suffixes.floorEntry(value)
- val truncated = value / (divideBy / 10) //the number part of the output times 10
- val hasDecimal = truncated < 100 && truncated / 10.0 != (truncated / 10).toDouble()
- return if (hasDecimal) (truncated / 10.0).toString() + suffix else (truncated / 10).toString() + suffix
- }
-
- @JvmStatic
- fun unformat(value: String): Long {
- val suffix = value.filter { !it.isDigit() }.lowercase()
- val num = value.filter { it.isDigit() }.toLong()
- return num * (suffixes.entries.find { it.value.lowercase() == suffix }?.key ?: 1)
- }
-
- /**
- * This code was unmodified and taken under CC BY-SA 3.0 license
- * @link https://stackoverflow.com/a/22186845
- * @author jpdymond
- */
- fun Double.roundToPrecision(precision: Int): Double {
- val scale = 10.0.pow(precision).toInt()
- return (this * scale).roundToInt().toDouble() / scale
- }
-
- /**
- * This code was unmodified and taken under CC BY-SA 3.0 license
- * @link https://stackoverflow.com/a/22186845
- * @author jpdymond
- */
- fun Float.roundToPrecision(precision: Int): Float {
- val scale = 10.0.pow(precision).toInt()
- return (this * scale).roundToInt().toFloat() / scale
- }
-
- fun Number.addSuffix(): String {
- val long = this.toLong()
- if (long in 11..13) return "${this}th"
- return when (long % 10) {
- 1L -> "${this}st"
- 2L -> "${this}nd"
- 3L -> "${this}rd"
- else -> "${this}th"
- }
- }
-
- /**
- * This code was converted to Kotlin and taken under CC BY-SA 3.0 license
- * @link https://stackoverflow.com/a/9073310
- */
- fun String.romanToDecimal(): Int {
- var decimal = 0
- var lastNumber = 0
- val romanNumeral = this.uppercase()
- for (x in romanNumeral.length - 1 downTo 0) {
- when (romanNumeral[x]) {
- 'M' -> {
- decimal = processDecimal(1000, lastNumber, decimal)
- lastNumber = 1000
- }
- 'D' -> {
- decimal = processDecimal(500, lastNumber, decimal)
- lastNumber = 500
- }
- 'C' -> {
- decimal = processDecimal(100, lastNumber, decimal)