From c240f9cc1ac37dcb73b8497277f4e6e30fbf4067 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sun, 2 Oct 2022 20:55:29 +0700 Subject: [PATCH] Use git username for devenv username --- build.gradle.kts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index d197db312..944984a37 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,6 +4,7 @@ import java.util.Date import java.text.SimpleDateFormat import it.unimi.dsi.fastutil.io.FastByteArrayOutputStream import kotlin.text.Regex +import java.util.UUID val mod_version: String by project val mc_version: String by project @@ -211,6 +212,36 @@ minecraft { source(sourceSets["main"]) } } + + val usernameStream = FastByteArrayOutputStream() + + val gotUsername = exec { + commandLine("git", "config", "--global", "--get", "user.name") + workingDir(".") + standardOutput = usernameStream + }.exitValue == 0 + + if (gotUsername) { + val originalUsername = usernameStream.array.copyOfRange(0, usernameStream.length).toString(Charsets.UTF_8).trim() + + if (originalUsername.isNotEmpty()) { + var username = originalUsername + var speculatedUUID = UUID.nameUUIDFromBytes("OfflinePlayer:$username".toByteArray(Charsets.UTF_8)) + var counter = 1 + + while (speculatedUUID.hashCode() and 1 == 1) { + username = originalUsername + "_".repeat(counter) + speculatedUUID = UUID.nameUUIDFromBytes("OfflinePlayer:$username".toByteArray(Charsets.UTF_8)) + counter++ + } + + args("--username", username) + } else { + args("--username", "Dev_${System.getProperty("user.name")}") + } + } else { + args("--username", "Dev_${System.getProperty("user.name")}") + } } create("server") {