diff --git a/.gradle/8.8/checksums/checksums.lock b/.gradle/8.8/checksums/checksums.lock new file mode 100644 index 0000000..2d370c4 Binary files /dev/null and b/.gradle/8.8/checksums/checksums.lock differ diff --git a/.gradle/8.8/dependencies-accessors/gc.properties b/.gradle/8.8/dependencies-accessors/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/8.8/executionHistory/executionHistory.bin b/.gradle/8.8/executionHistory/executionHistory.bin new file mode 100644 index 0000000..a3cc731 Binary files /dev/null and b/.gradle/8.8/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.8/executionHistory/executionHistory.lock b/.gradle/8.8/executionHistory/executionHistory.lock new file mode 100644 index 0000000..8068f9b Binary files /dev/null and b/.gradle/8.8/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.8/fileChanges/last-build.bin b/.gradle/8.8/fileChanges/last-build.bin new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/.gradle/8.8/fileChanges/last-build.bin differ diff --git a/.gradle/8.8/fileHashes/fileHashes.bin b/.gradle/8.8/fileHashes/fileHashes.bin new file mode 100644 index 0000000..4176a15 Binary files /dev/null and b/.gradle/8.8/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.8/fileHashes/fileHashes.lock b/.gradle/8.8/fileHashes/fileHashes.lock new file mode 100644 index 0000000..7aa94e3 Binary files /dev/null and b/.gradle/8.8/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.8/fileHashes/resourceHashesCache.bin b/.gradle/8.8/fileHashes/resourceHashesCache.bin new file mode 100644 index 0000000..2c3baa9 Binary files /dev/null and b/.gradle/8.8/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/8.8/gc.properties b/.gradle/8.8/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000..6714908 Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 0000000..d3ef842 --- /dev/null +++ b/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Wed Oct 08 05:17:43 CEST 2025 +gradle.version=8.8 diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000..efee463 Binary files /dev/null and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.gradle/configuration-cache/6jo271vzo402llotakqvcifez/buildfingerprint.bin b/.gradle/configuration-cache/6jo271vzo402llotakqvcifez/buildfingerprint.bin new file mode 100644 index 0000000..c61b3f0 Binary files /dev/null and b/.gradle/configuration-cache/6jo271vzo402llotakqvcifez/buildfingerprint.bin differ diff --git a/.gradle/configuration-cache/6jo271vzo402llotakqvcifez/entry.bin b/.gradle/configuration-cache/6jo271vzo402llotakqvcifez/entry.bin new file mode 100644 index 0000000..97f34ce Binary files /dev/null and b/.gradle/configuration-cache/6jo271vzo402llotakqvcifez/entry.bin differ diff --git a/.gradle/configuration-cache/6jo271vzo402llotakqvcifez/projectfingerprint.bin b/.gradle/configuration-cache/6jo271vzo402llotakqvcifez/projectfingerprint.bin new file mode 100644 index 0000000..3555567 Binary files /dev/null and b/.gradle/configuration-cache/6jo271vzo402llotakqvcifez/projectfingerprint.bin differ diff --git a/.gradle/configuration-cache/6jo271vzo402llotakqvcifez/work.bin b/.gradle/configuration-cache/6jo271vzo402llotakqvcifez/work.bin new file mode 100644 index 0000000..7b8328e Binary files /dev/null and b/.gradle/configuration-cache/6jo271vzo402llotakqvcifez/work.bin differ diff --git a/.gradle/configuration-cache/configuration-cache.lock b/.gradle/configuration-cache/configuration-cache.lock new file mode 100644 index 0000000..7a94985 Binary files /dev/null and b/.gradle/configuration-cache/configuration-cache.lock differ diff --git a/.gradle/configuration-cache/gc.properties b/.gradle/configuration-cache/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe new file mode 100644 index 0000000..8337190 Binary files /dev/null and b/.gradle/file-system.probe differ diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b86273d --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..912db82 --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..44e3409 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..89659c9 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..9749c3f --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..35a8b7a --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/commandify.main.iml b/.idea/modules/commandify.main.iml new file mode 100644 index 0000000..645f40d --- /dev/null +++ b/.idea/modules/commandify.main.iml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..6299b86 --- /dev/null +++ b/build.gradle @@ -0,0 +1,116 @@ +plugins { + id 'java-library' + id 'maven-publish' + id 'idea' + id 'net.neoforged.moddev' version '2.0.113' +} + +version = mod_version +group = mod_group_id + +repositories { + mavenLocal() +} + +base { + archivesName = mod_id +} + +java.toolchain.languageVersion = JavaLanguageVersion.of(21) + +neoForge { + version = project.neo_version + + parchment { + mappingsVersion = project.parchment_mappings_version + minecraftVersion = project.parchment_minecraft_version + } + + runs { + client { + client() + systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id + } + + server { + server() + programArgument '--nogui' + systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id + } + + gameTestServer { + type = "gameTestServer" + systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id + } + + data { + data() + programArguments.addAll '--mod', project.mod_id, '--all', + '--output', file('src/generated/resources/').getAbsolutePath(), + '--existing', file('src/main/resources/').getAbsolutePath() + } + + configureEach { + systemProperty 'forge.logging.markers', 'REGISTRIES' + logLevel = org.slf4j.event.Level.DEBUG + } + } + + mods { + "${mod_id}" { + sourceSet(sourceSets.main) + } + } +} + +// Inclut les ressources générées +sourceSets.main.resources { srcDir 'src/generated/resources' } + +// 🔧 Gère la substitution automatique dans META-INF/neoforge.mods.toml +processResources { + def replaceProperties = [ + "minecraft_version" : minecraft_version, + "minecraft_version_range": minecraft_version_range, + "neo_version" : neo_version, + "neo_version_range" : neo_version_range, + "loader_version_range" : loader_version_range, + "mod_id" : mod_id, + "mod_name" : mod_name, + "mod_license" : mod_license, + "mod_version" : mod_version, + "mod_authors" : mod_authors, + "mod_description" : mod_description + ] + + inputs.properties replaceProperties + + filesMatching("META-INF/neoforge.mods.toml") { + expand replaceProperties + } +} + +dependencies { + // Tu peux ajouter ici d’autres dépendances si besoin +} + +// 📦 Publication locale (utile pour tests ou modpack perso) +publishing { + publications { + register('mavenJava', MavenPublication) { + from components.java + } + } + repositories { + maven { + url "file://${project.projectDir}/repo" + } + } +} + +// 🔍 Téléchargement auto des sources et Javadoc dans IntelliJ +idea { + module { + downloadSources = true + downloadJavadoc = true + } +} diff --git a/build/classes/java/main/fr/ultralion/commandify/Commandify$ConsoleColors.class b/build/classes/java/main/fr/ultralion/commandify/Commandify$ConsoleColors.class new file mode 100644 index 0000000..a546175 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/Commandify$ConsoleColors.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/Commandify$ServerEvents.class b/build/classes/java/main/fr/ultralion/commandify/Commandify$ServerEvents.class new file mode 100644 index 0000000..3a5bf97 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/Commandify$ServerEvents.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/Commandify.class b/build/classes/java/main/fr/ultralion/commandify/Commandify.class new file mode 100644 index 0000000..3271305 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/Commandify.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/Config.class b/build/classes/java/main/fr/ultralion/commandify/Config.class new file mode 100644 index 0000000..664b854 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/Config.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/LateCommandRegister.class b/build/classes/java/main/fr/ultralion/commandify/LateCommandRegister.class new file mode 100644 index 0000000..27eac22 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/LateCommandRegister.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/admin/CommandInvsee$1$1.class b/build/classes/java/main/fr/ultralion/commandify/commands/admin/CommandInvsee$1$1.class new file mode 100644 index 0000000..1805347 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/admin/CommandInvsee$1$1.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/admin/CommandInvsee$1.class b/build/classes/java/main/fr/ultralion/commandify/commands/admin/CommandInvsee$1.class new file mode 100644 index 0000000..65eaef3 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/admin/CommandInvsee$1.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/admin/CommandInvsee.class b/build/classes/java/main/fr/ultralion/commandify/commands/admin/CommandInvsee.class new file mode 100644 index 0000000..c080610 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/admin/CommandInvsee.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandBroadcast.class b/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandBroadcast.class new file mode 100644 index 0000000..c736439 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandBroadcast.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandIgnore.class b/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandIgnore.class new file mode 100644 index 0000000..64cb115 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandIgnore.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandIgnored.class b/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandIgnored.class new file mode 100644 index 0000000..08a98cc Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandIgnored.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandMsg.class b/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandMsg.class new file mode 100644 index 0000000..e03e8ef Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandMsg.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandReply.class b/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandReply.class new file mode 100644 index 0000000..4ca9917 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandReply.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandUnignore.class b/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandUnignore.class new file mode 100644 index 0000000..d2d5f77 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/chat/CommandUnignore.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/other/CommandCommandifyInfo.class b/build/classes/java/main/fr/ultralion/commandify/commands/other/CommandCommandifyInfo.class new file mode 100644 index 0000000..4a83b9c Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/other/CommandCommandifyInfo.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/reload/ReloadCommand.class b/build/classes/java/main/fr/ultralion/commandify/commands/reload/ReloadCommand.class new file mode 100644 index 0000000..6f4ca0d Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/reload/ReloadCommand.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/back/BackEvents.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/back/BackEvents.class new file mode 100644 index 0000000..6209941 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/back/BackEvents.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/back/BackManager$BackLocation.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/back/BackManager$BackLocation.class new file mode 100644 index 0000000..2b6484a Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/back/BackManager$BackLocation.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/back/BackManager.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/back/BackManager.class new file mode 100644 index 0000000..afd6119 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/back/BackManager.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/back/CommandBack.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/back/CommandBack.class new file mode 100644 index 0000000..0c7bd3e Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/back/CommandBack.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/CommandDelHome.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/CommandDelHome.class new file mode 100644 index 0000000..0510226 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/CommandDelHome.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/CommandHome.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/CommandHome.class new file mode 100644 index 0000000..6e1debe Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/CommandHome.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/CommandHomes.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/CommandHomes.class new file mode 100644 index 0000000..bec94ab Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/CommandHomes.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/CommandSetHome.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/CommandSetHome.class new file mode 100644 index 0000000..87a2a72 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/CommandSetHome.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/HomeData$ConsoleColors.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/HomeData$ConsoleColors.class new file mode 100644 index 0000000..b089756 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/HomeData$ConsoleColors.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/HomeData$Home.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/HomeData$Home.class new file mode 100644 index 0000000..5c5111f Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/HomeData$Home.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/HomeData.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/HomeData.class new file mode 100644 index 0000000..d9cd083 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/homes/HomeData.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/rtp/CommandRtp.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/rtp/CommandRtp.class new file mode 100644 index 0000000..224eff1 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/rtp/CommandRtp.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/spawn/SetSpawnCommand.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/spawn/SetSpawnCommand.class new file mode 100644 index 0000000..b987c97 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/spawn/SetSpawnCommand.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/spawn/SpawnCommand.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/spawn/SpawnCommand.class new file mode 100644 index 0000000..60138d7 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/spawn/SpawnCommand.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/spawn/data/SpawnData.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/spawn/data/SpawnData.class new file mode 100644 index 0000000..b0f33c8 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/spawn/data/SpawnData.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpa.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpa.class new file mode 100644 index 0000000..11c9a9d Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpa.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpaccept.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpaccept.class new file mode 100644 index 0000000..7de7096 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpaccept.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpadeny.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpadeny.class new file mode 100644 index 0000000..090a3bd Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpadeny.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpahere.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpahere.class new file mode 100644 index 0000000..ba31166 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpahere.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpatoggle.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpatoggle.class new file mode 100644 index 0000000..ec96cda Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpatoggle.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/TeleportManager$TpaRequest.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/TeleportManager$TpaRequest.class new file mode 100644 index 0000000..0a2838f Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/TeleportManager$TpaRequest.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/TeleportManager.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/TeleportManager.class new file mode 100644 index 0000000..4fb52c5 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/teleport/TeleportManager.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/CommandDelWarp.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/CommandDelWarp.class new file mode 100644 index 0000000..2607025 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/CommandDelWarp.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/CommandSetWarp.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/CommandSetWarp.class new file mode 100644 index 0000000..d45b2c3 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/CommandSetWarp.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/CommandWarp.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/CommandWarp.class new file mode 100644 index 0000000..9623488 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/CommandWarp.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/CommandWarps.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/CommandWarps.class new file mode 100644 index 0000000..332045a Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/CommandWarps.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/WarpData$ConsoleColors.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/WarpData$ConsoleColors.class new file mode 100644 index 0000000..3a4b86b Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/WarpData$ConsoleColors.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/WarpData$Warp.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/WarpData$Warp.class new file mode 100644 index 0000000..a5a1aa4 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/WarpData$Warp.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/WarpData.class b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/WarpData.class new file mode 100644 index 0000000..6821409 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/teleportation/warps/WarpData.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/commands/worldmanagement/CommandWorld.class b/build/classes/java/main/fr/ultralion/commandify/commands/worldmanagement/CommandWorld.class new file mode 100644 index 0000000..01907e7 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/commands/worldmanagement/CommandWorld.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/events/ChatFilter.class b/build/classes/java/main/fr/ultralion/commandify/events/ChatFilter.class new file mode 100644 index 0000000..e04b9f9 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/events/ChatFilter.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/util/ChatManager.class b/build/classes/java/main/fr/ultralion/commandify/util/ChatManager.class new file mode 100644 index 0000000..921a534 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/util/ChatManager.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/util/IgnoreManager$1.class b/build/classes/java/main/fr/ultralion/commandify/util/IgnoreManager$1.class new file mode 100644 index 0000000..c511c23 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/util/IgnoreManager$1.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/util/IgnoreManager$ConsoleColors.class b/build/classes/java/main/fr/ultralion/commandify/util/IgnoreManager$ConsoleColors.class new file mode 100644 index 0000000..d24730b Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/util/IgnoreManager$ConsoleColors.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/util/IgnoreManager.class b/build/classes/java/main/fr/ultralion/commandify/util/IgnoreManager.class new file mode 100644 index 0000000..97f1737 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/util/IgnoreManager.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/util/Lang$1.class b/build/classes/java/main/fr/ultralion/commandify/util/Lang$1.class new file mode 100644 index 0000000..5145052 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/util/Lang$1.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/util/Lang$2.class b/build/classes/java/main/fr/ultralion/commandify/util/Lang$2.class new file mode 100644 index 0000000..7be62f5 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/util/Lang$2.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/util/Lang$ConsoleColors.class b/build/classes/java/main/fr/ultralion/commandify/util/Lang$ConsoleColors.class new file mode 100644 index 0000000..e1c4c95 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/util/Lang$ConsoleColors.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/util/Lang.class b/build/classes/java/main/fr/ultralion/commandify/util/Lang.class new file mode 100644 index 0000000..67093e6 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/util/Lang.class differ diff --git a/build/classes/java/main/fr/ultralion/commandify/util/OtherPlayerInventory.class b/build/classes/java/main/fr/ultralion/commandify/util/OtherPlayerInventory.class new file mode 100644 index 0000000..5c6ff81 Binary files /dev/null and b/build/classes/java/main/fr/ultralion/commandify/util/OtherPlayerInventory.class differ diff --git a/build/libs/commandify-1.0.1.jar b/build/libs/commandify-1.0.1.jar new file mode 100644 index 0000000..d575188 Binary files /dev/null and b/build/libs/commandify-1.0.1.jar differ diff --git a/build/moddev/artifacts/neoforge-21.1.208-client-extra-aka-minecraft-resources.jar b/build/moddev/artifacts/neoforge-21.1.208-client-extra-aka-minecraft-resources.jar new file mode 100644 index 0000000..b26c422 Binary files /dev/null and b/build/moddev/artifacts/neoforge-21.1.208-client-extra-aka-minecraft-resources.jar differ diff --git a/build/moddev/artifacts/neoforge-21.1.208-merged.jar b/build/moddev/artifacts/neoforge-21.1.208-merged.jar new file mode 100644 index 0000000..236fc87 Binary files /dev/null and b/build/moddev/artifacts/neoforge-21.1.208-merged.jar differ diff --git a/build/moddev/artifacts/neoforge-21.1.208-sources.jar b/build/moddev/artifacts/neoforge-21.1.208-sources.jar new file mode 100644 index 0000000..6875e5b Binary files /dev/null and b/build/moddev/artifacts/neoforge-21.1.208-sources.jar differ diff --git a/build/moddev/artifacts/neoforge-21.1.208.jar b/build/moddev/artifacts/neoforge-21.1.208.jar new file mode 100644 index 0000000..721ebdc Binary files /dev/null and b/build/moddev/artifacts/neoforge-21.1.208.jar differ diff --git a/build/moddev/clientLegacyClasspath.txt b/build/moddev/clientLegacyClasspath.txt new file mode 100644 index 0000000..8ef7dfc --- /dev/null +++ b/build/moddev/clientLegacyClasspath.txt @@ -0,0 +1,107 @@ +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.electronwill.night-config\core\3.8.3\b442a95f09e349927f5a945ecb594455870fcf4f\core-3.8.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.electronwill.night-config\toml\3.8.3\90b2fd6efcb4a7d5b9810cf78f9d824994d717f2\toml-3.8.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.github.oshi\oshi-core\6.4.10\b1d8ab82d11d92fd639b56d639f8f46f739dd5fa\oshi-core-6.4.10.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.code.findbugs\jsr305\3.0.2\25ea2e8b0c338a877313bd4672d3fe056ea78f0d\jsr305-3.0.2.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.10.1\b3add478d4382b78ea20b1671390a858002feb6c\gson-2.10.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.errorprone\error_prone_annotations\2.18.0\89b684257096f548fa39a7df9fdaa409d4d4df91\error_prone_annotations-2.18.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.guava\failureaccess\1.0.1\1dcf1de382a0bf95a3d8b0849546c88bac1292c9\failureaccess-1.0.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\32.1.2-jre\5e64ec7e056456bef3a4bc4c6fdaef71e8ab6318\guava-32.1.2-jre.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\b421526c5f297295adef1c886e5246c39d4ac629\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.j2objc\j2objc-annotations\2.8\c85270e307e7b822f1086b93689124b89768e273\j2objc-annotations-2.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.ibm.icu\icu4j\73.2\61ad4ef7f9131fcf6d25c34b817f90d6da06c9e9\icu4j-73.2.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.machinezoo.noexception\noexception\1.7.1\b65330c98e38a1f915fa54a6e5eca496505e3f0a\noexception-1.7.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\authlib\6.0.54\de8bc95660e1b2fe8793fd427a7a10dcec5b3ea7\authlib-6.0.54.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\blocklist\1.0.10\5c685c5ffa94c4cd39496c7184c1d122e515ecef\blocklist-1.0.10.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\brigadier\1.3.10\d15b53a14cf20fdcaa98f731af5dda654452c010\brigadier-1.3.10.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\datafixerupper\8.0.16\67d4de6d7f95d89bcf5862995fb854ebaec02a34\datafixerupper-8.0.16.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\logging\1.2.7\24cb95ffb0e3433fd6e844c04e68009e504ca1c0\logging-1.2.7.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\patchy\2.2.10\da05971b07cbb379d002cf7eaec6a2048211fefc\patchy-2.2.10.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\text2speech\1.17.9\3cad216e3a7f0c19b4b394388bc9ffc446f13b14\text2speech-1.17.9.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\commons-codec\commons-codec\1.16.0\4e3eb3d79888d76b54e28b350915b5dc3919c9de\commons-codec-1.16.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\commons-io\commons-io\2.15.1\f11560da189ab563a5c8e351941415430e9304ea\commons-io-2.15.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\commons-logging\commons-logging\1.2\4bfc12adfe4842bf07b657f0369c4cb522955686\commons-logging-1.2.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\cpw.mods\bootstraplauncher\2.0.2\1a2d076cbc33b0520cbacd591224427b2a20047d\bootstraplauncher-2.0.2.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\cpw.mods\modlauncher\11.0.5\b8f0d49294f733fdb6173931b263553e943dc950\modlauncher-11.0.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\cpw.mods\securejarhandler\3.0.8\c0ef95cecd8699a0449053ac7d9c160748d902cd\securejarhandler-3.0.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-buffer\4.1.97.Final\f8f3d8644afa5e6e1a40a3a6aeb9d9aa970ecb4f\netty-buffer-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-codec\4.1.97.Final\384ba4d75670befbedb45c4d3b497a93639c206d\netty-codec-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-common\4.1.97.Final\7cceacaf11df8dc63f23d0fb58e9d4640fc88404\netty-common-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-handler\4.1.97.Final\abb86c6906bf512bf2b797a41cd7d2e8d3cd7c36\netty-handler-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-resolver\4.1.97.Final\cec8348108dc76c47cf87c669d514be52c922144\netty-resolver-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-classes-epoll\4.1.97.Final\795da37ded759e862457a82d9d92c4d39ce8ecee\netty-transport-classes-epoll-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-native-unix-common\4.1.97.Final\d469d84265ab70095b01b40886cabdd433b6e664\netty-transport-native-unix-common-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport\4.1.97.Final\f37380d23c9bb079bc702910833b2fd532c9abd0\netty-transport-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\it.unimi.dsi\fastutil\8.5.12\c24946d46824bd528054bface3231d2ecb7e95e8\fastutil-8.5.12.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.fabricmc\sponge-mixin\0.15.2+mixin.0.8.7\2af2f021d8e02a0220dc27a7a72b4666d66d44ca\sponge-mixin-0.15.2+mixin.0.8.7.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna-platform\5.14.0\28934d48aed814f11e4c584da55c49fa7032b31b\jna-platform-5.14.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna\5.14.0\67bf3eaea4f0718cb376a181a629e5f88fa1c9dd\jna-5.14.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.jodah\typetools\0.6.3\a01aaa6ddaea9ec07ec4f209487b7a46a526283a\typetools-0.6.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.minecraftforge\srgutils\0.4.15\ca408b131759478f164e010fae0d73997e125fb5\srgutils-0.4.15.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.minecrell\terminalconsoleappender\1.3.0\b562e9bb61235c9520e26282cdee71f8f802d1fc\terminalconsoleappender-1.3.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged.accesstransformers\at-modlauncher\10.0.1\5aba50202aceead086bc09fbc2751c9f05cb4890\at-modlauncher-10.0.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged.fancymodloader\earlydisplay\4.0.41\53dfbd387ed1b88c7d144bdb6551b7f57d5da6d7\earlydisplay-4.0.41.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged.fancymodloader\loader\4.0.41\3aebc81b9347fa87bb629ffaed20276f2a4c944e\loader-4.0.41.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarFileSystems\0.4.1\78f59f89defcd032ed788b151ca6a0d40ace796a\JarJarFileSystems-0.4.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarMetadata\0.4.1\f8da03683dc81694556dc3e177c5e3bb77ae6fcb\JarJarMetadata-0.4.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarSelector\0.4.1\fb3cc7a58af22ad2880adb98af6d518128c47dae\JarJarSelector-0.4.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\accesstransformers\10.0.1\fd83b5725f76eae9115e9355fa1c456a6a441400\accesstransformers-10.0.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\bus\8.0.5\5b2d33285ab5d1554e9798ad98c40d6ea3868bd5\bus-8.0.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\coremods\7.0.3\9147e6f638b4272b3bd5fc8f92ad37802512c6c\coremods-7.0.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\mergetool\2.0.0\52fe1949be64e3303aabaaa21e315f551db9c9f4\mergetool-2.0.0-api.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.sf.jopt-simple\jopt-simple\5.0.4\4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c\jopt-simple-5.0.4.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.antlr\antlr4-runtime\4.13.1\17125bae1d965624e265ef49552f6465a2bfa307\antlr4-runtime-4.13.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-compress\1.26.0\659feffdd12280201c8aacb8f7be94f9a883c824\commons-compress-1.26.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-lang3\3.14.0\1ed471194b02f2c6cb734a0cd6f6f107c673afae\commons-lang3-3.14.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpclient\4.5.13\e5f6cae5ca7ecaac1ec2827a9e2d65ae2869cada\httpclient-4.5.13.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.4.16\51cf043c87253c9f58b539c9f7e44c8894223850\httpcore-4.4.16.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.22.1\bea6fede6328fabafd7e68363161a7ea6605abd1\log4j-api-2.22.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-core\2.22.1\7183a25510a02ad00cc6a95d3b3d2a7d3c5a8dc4\log4j-core-2.22.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-slf4j2-impl\2.22.1\d7e6693c2606cb7e7335047d7bb96dec52db5665\log4j-slf4j2-impl-2.22.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.maven\maven-artifact\3.8.5\4433f50c07debefaed0553bd0068f4f48d449313\maven-artifact-3.8.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.checkerframework\checker-qual\3.33.0\de2b60b62da487644fc11f734e73c8b0b431238f\checker-qual-3.33.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.codehaus.plexus\plexus-utils\3.3.0\cf43b5391de623b36fe066a21127baef82c64022\plexus-utils-3.3.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.jcraft\jorbis\0.0.17\8872d22b293e8f5d7d56ff92be966e6dc28ebdc6\jorbis-0.0.17.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.jline\jline-reader\3.20.0\8f15415b022a25b473e8e16c28ae913186ffb9c4\jline-reader-3.20.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.jline\jline-terminal\3.20.0\d0ddcc708ddf527a3454c941b7b9225cc83a15ff\jline-terminal-3.20.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.joml\joml\1.10.5\22566d58af70ad3d72308bab63b8339906deb649\joml-1.10.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-freetype\3.3.3\15a8c1de7f51d07a92eae7ce1222557073a0c0c3\lwjgl-freetype-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-freetype\3.3.3\81091b006dbb43fab04c8c638e9ac87c51b4096d\lwjgl-freetype-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-freetype\3.3.3\82028265a0a2ff33523ca75137ada7dc176e5210\lwjgl-freetype-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-freetype\3.3.3\a0db6c84a8becc8ca05f9dbfa985edc348a824c7\lwjgl-freetype-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.3\32334f3fd5270a59bad9939a93115acb6de36dcf\lwjgl-glfw-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.3\e449e28b4891fc423c54c85fbc5bb0b9efece67a\lwjgl-glfw-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.3\efa1eb78c5ccd840e9f329717109b5e892d72f8e\lwjgl-glfw-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.3\f27018dc74f6289574502b46cce55d52817554e2\lwjgl-glfw-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-jemalloc\3.3.3\426222fc027602a5f21b9c0fe79cde6a4c7a011f\lwjgl-jemalloc-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-jemalloc\3.3.3\b543467b7ff3c6920539a88ee602d34098628be5\lwjgl-jemalloc-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-jemalloc\3.3.3\ba1f3fed0ee4be0217eaa41c5bbfb4b9b1383c33\lwjgl-jemalloc-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-jemalloc\3.3.3\f6063b6e0f23be483c5c88d84ce51b39dc69126c\lwjgl-jemalloc-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.3\87b8d5050e3adb46bb58fe1cb2669a4a48fce10d\lwjgl-openal-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.3\8e0615235116b9e4160dfe87bec90f5f6378bf72\lwjgl-openal-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.3\cf83862ae95d98496b26915024c7e666d8ab1c8f\lwjgl-openal-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.3\daada81ceb5fc0c291fbfdd4433cb8d9423577f2\lwjgl-openal-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.3.3\2f6b0147078396a58979125a4c947664e98293a\lwjgl-opengl-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.3.3\65e956d3735a1abdc82eff4baec1b61174697d4b\lwjgl-opengl-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.3.3\d32d833dcaa2f355a886eaf21f0408b5f03241d\lwjgl-opengl-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.3.3\e6c1eec8be8a71951b830a4d69efc01c6531900c\lwjgl-opengl-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-stb\3.3.3\1d9facdf6541de114b0f963be33505b7679c78cb\lwjgl-stb-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-stb\3.3.3\25dd6161988d7e65f71d5065c99902402ee32746\lwjgl-stb-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-stb\3.3.3\a584ab44de569708871f0a79561f4d8c37487f2c\lwjgl-stb-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-stb\3.3.3\b5c874687b9aac1a936501d4ed2c49567fd1b575\lwjgl-stb-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-tinyfd\3.3.3\82d755ca94b102e9ca77283b9e2dc46d1b15fbe5\lwjgl-tinyfd-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-tinyfd\3.3.3\a6697981b0449a5087c1d546fc08b4f73e8f98c9\lwjgl-tinyfd-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-tinyfd\3.3.3\a88c494f3006eb91a7433b12a3a55a9a6c20788b\lwjgl-tinyfd-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-tinyfd\3.3.3\c336c84ee88cccb495c6ffa112395509e7378e8a\lwjgl-tinyfd-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl\3.3.3\29589b5f87ed335a6c7e7ee6a5775f81f97ecb84\lwjgl-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl\3.3.3\9e670718e050aeaeea0c2d5b907cffb142f2e58f\lwjgl-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl\3.3.3\a5ed18a2b82fc91b81f40d717cb1f64c9dcb0540\lwjgl-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl\3.3.3\e9aca8c5479b520a2a7f0d542a118140e812c5e8\lwjgl-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lz4\lz4-java\1.8.0\4b986a99445e49ea5fbf5d149c4b63f6ed6c6780\lz4-java-1.8.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.openjdk.nashorn\nashorn-core\15.4\f67f5ffaa5f5130cf6fb9b133da00c7df3b532a5\nashorn-core-15.4.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-analysis\9.8\b9747a320844b6cb1eacd90d8ecfd260a16c01d3\asm-analysis-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-commons\9.8\36e4d212970388e5bd2c5180292012502df461bb\asm-commons-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-tree\9.8\18419ca5b77a2f81097c741e7872e6ab8d2f40d\asm-tree-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-util\9.8\395f1c1f035258511f27bc9b2583d76e4b143f59\asm-util-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\9.8\dc19ecb3f7889b7860697215cae99c0f9b6f6b4b\asm-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.9\7cf2726fdcfbc8610f9a71fb3ed639871f315340\slf4j-api-2.0.9.jar +F:\java\mods\neoforge\1.21.1\commandify\build\moddev\artifacts\neoforge-21.1.208-client-extra-aka-minecraft-resources.jar diff --git a/build/moddev/clientLog4j2.xml b/build/moddev/clientLog4j2.xml new file mode 100644 index 0000000..773e88a --- /dev/null +++ b/build/moddev/clientLog4j2.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/moddev/clientRunProgramArgs.txt b/build/moddev/clientRunProgramArgs.txt new file mode 100644 index 0000000..a2f0bf2 --- /dev/null +++ b/build/moddev/clientRunProgramArgs.txt @@ -0,0 +1,24 @@ +# Main Class +cpw.mods.bootstraplauncher.BootstrapLauncher + +# NeoForge Run-Type Program Arguments +--launchTarget +forgeclientdev +--version +21.1.208 +--assetIndex +17 +--assetsDir +C:\\Users\\jessy\\.gradle\\caches\\neoformruntime\\assets +--gameDir +. +--fml.fmlVersion +4.0.41 +--fml.mcVersion +1.21.1 +--fml.neoForgeVersion +21.1.208 +--fml.neoFormVersion +20240808.144430 + +# User Supplied Program Arguments \ No newline at end of file diff --git a/build/moddev/clientRunVmArgs.txt b/build/moddev/clientRunVmArgs.txt new file mode 100644 index 0000000..a59dcda --- /dev/null +++ b/build/moddev/clientRunVmArgs.txt @@ -0,0 +1,19 @@ +-p +C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\JarJarFileSystems\\0.4.1\\78f59f89defcd032ed788b151ca6a0d40ace796a\\JarJarFileSystems-0.4.1.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\bootstraplauncher\\2.0.2\\1a2d076cbc33b0520cbacd591224427b2a20047d\\bootstraplauncher-2.0.2.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\securejarhandler\\3.0.8\\c0ef95cecd8699a0449053ac7d9c160748d902cd\\securejarhandler-3.0.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-commons\\9.8\\36e4d212970388e5bd2c5180292012502df461bb\\asm-commons-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.8\\395f1c1f035258511f27bc9b2583d76e4b143f59\\asm-util-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.8\\b9747a320844b6cb1eacd90d8ecfd260a16c01d3\\asm-analysis-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.8\\18419ca5b77a2f81097c741e7872e6ab8d2f40d\\asm-tree-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.8\\dc19ecb3f7889b7860697215cae99c0f9b6f6b4b\\asm-9.8.jar +--add-modules +ALL-MODULE-PATH +--add-opens +java.base/java.util.jar=cpw.mods.securejarhandler +--add-opens +java.base/java.lang.invoke=cpw.mods.securejarhandler +--add-exports +java.base/sun.security.util=cpw.mods.securejarhandler +--add-exports +jdk.naming.dns/com.sun.jndi.dns=java.naming +-Dlog4j2.configurationFile=F:\\java\\mods\\neoforge\\1.21.1\\commandify\\build\\moddev\\clientLog4j2.xml +-Djava.net.preferIPv6Addresses=system +-DignoreList=mixinextras-neoforge-0.5.0.jar,client-extra,neoforge- +-DlegacyClassPath.file=F:\\java\\mods\\neoforge\\1.21.1\\commandify\\build\\moddev\\clientLegacyClasspath.txt +-Dneoforge.enableGameTest=true +-Dneoforge.enabledGameTestNamespaces=commandify +-Dforge.logging.markers=REGISTRIES \ No newline at end of file diff --git a/build/moddev/dataLegacyClasspath.txt b/build/moddev/dataLegacyClasspath.txt new file mode 100644 index 0000000..8ef7dfc --- /dev/null +++ b/build/moddev/dataLegacyClasspath.txt @@ -0,0 +1,107 @@ +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.electronwill.night-config\core\3.8.3\b442a95f09e349927f5a945ecb594455870fcf4f\core-3.8.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.electronwill.night-config\toml\3.8.3\90b2fd6efcb4a7d5b9810cf78f9d824994d717f2\toml-3.8.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.github.oshi\oshi-core\6.4.10\b1d8ab82d11d92fd639b56d639f8f46f739dd5fa\oshi-core-6.4.10.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.code.findbugs\jsr305\3.0.2\25ea2e8b0c338a877313bd4672d3fe056ea78f0d\jsr305-3.0.2.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.10.1\b3add478d4382b78ea20b1671390a858002feb6c\gson-2.10.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.errorprone\error_prone_annotations\2.18.0\89b684257096f548fa39a7df9fdaa409d4d4df91\error_prone_annotations-2.18.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.guava\failureaccess\1.0.1\1dcf1de382a0bf95a3d8b0849546c88bac1292c9\failureaccess-1.0.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\32.1.2-jre\5e64ec7e056456bef3a4bc4c6fdaef71e8ab6318\guava-32.1.2-jre.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\b421526c5f297295adef1c886e5246c39d4ac629\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.j2objc\j2objc-annotations\2.8\c85270e307e7b822f1086b93689124b89768e273\j2objc-annotations-2.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.ibm.icu\icu4j\73.2\61ad4ef7f9131fcf6d25c34b817f90d6da06c9e9\icu4j-73.2.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.machinezoo.noexception\noexception\1.7.1\b65330c98e38a1f915fa54a6e5eca496505e3f0a\noexception-1.7.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\authlib\6.0.54\de8bc95660e1b2fe8793fd427a7a10dcec5b3ea7\authlib-6.0.54.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\blocklist\1.0.10\5c685c5ffa94c4cd39496c7184c1d122e515ecef\blocklist-1.0.10.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\brigadier\1.3.10\d15b53a14cf20fdcaa98f731af5dda654452c010\brigadier-1.3.10.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\datafixerupper\8.0.16\67d4de6d7f95d89bcf5862995fb854ebaec02a34\datafixerupper-8.0.16.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\logging\1.2.7\24cb95ffb0e3433fd6e844c04e68009e504ca1c0\logging-1.2.7.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\patchy\2.2.10\da05971b07cbb379d002cf7eaec6a2048211fefc\patchy-2.2.10.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\text2speech\1.17.9\3cad216e3a7f0c19b4b394388bc9ffc446f13b14\text2speech-1.17.9.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\commons-codec\commons-codec\1.16.0\4e3eb3d79888d76b54e28b350915b5dc3919c9de\commons-codec-1.16.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\commons-io\commons-io\2.15.1\f11560da189ab563a5c8e351941415430e9304ea\commons-io-2.15.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\commons-logging\commons-logging\1.2\4bfc12adfe4842bf07b657f0369c4cb522955686\commons-logging-1.2.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\cpw.mods\bootstraplauncher\2.0.2\1a2d076cbc33b0520cbacd591224427b2a20047d\bootstraplauncher-2.0.2.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\cpw.mods\modlauncher\11.0.5\b8f0d49294f733fdb6173931b263553e943dc950\modlauncher-11.0.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\cpw.mods\securejarhandler\3.0.8\c0ef95cecd8699a0449053ac7d9c160748d902cd\securejarhandler-3.0.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-buffer\4.1.97.Final\f8f3d8644afa5e6e1a40a3a6aeb9d9aa970ecb4f\netty-buffer-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-codec\4.1.97.Final\384ba4d75670befbedb45c4d3b497a93639c206d\netty-codec-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-common\4.1.97.Final\7cceacaf11df8dc63f23d0fb58e9d4640fc88404\netty-common-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-handler\4.1.97.Final\abb86c6906bf512bf2b797a41cd7d2e8d3cd7c36\netty-handler-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-resolver\4.1.97.Final\cec8348108dc76c47cf87c669d514be52c922144\netty-resolver-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-classes-epoll\4.1.97.Final\795da37ded759e862457a82d9d92c4d39ce8ecee\netty-transport-classes-epoll-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-native-unix-common\4.1.97.Final\d469d84265ab70095b01b40886cabdd433b6e664\netty-transport-native-unix-common-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport\4.1.97.Final\f37380d23c9bb079bc702910833b2fd532c9abd0\netty-transport-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\it.unimi.dsi\fastutil\8.5.12\c24946d46824bd528054bface3231d2ecb7e95e8\fastutil-8.5.12.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.fabricmc\sponge-mixin\0.15.2+mixin.0.8.7\2af2f021d8e02a0220dc27a7a72b4666d66d44ca\sponge-mixin-0.15.2+mixin.0.8.7.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna-platform\5.14.0\28934d48aed814f11e4c584da55c49fa7032b31b\jna-platform-5.14.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna\5.14.0\67bf3eaea4f0718cb376a181a629e5f88fa1c9dd\jna-5.14.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.jodah\typetools\0.6.3\a01aaa6ddaea9ec07ec4f209487b7a46a526283a\typetools-0.6.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.minecraftforge\srgutils\0.4.15\ca408b131759478f164e010fae0d73997e125fb5\srgutils-0.4.15.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.minecrell\terminalconsoleappender\1.3.0\b562e9bb61235c9520e26282cdee71f8f802d1fc\terminalconsoleappender-1.3.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged.accesstransformers\at-modlauncher\10.0.1\5aba50202aceead086bc09fbc2751c9f05cb4890\at-modlauncher-10.0.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged.fancymodloader\earlydisplay\4.0.41\53dfbd387ed1b88c7d144bdb6551b7f57d5da6d7\earlydisplay-4.0.41.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged.fancymodloader\loader\4.0.41\3aebc81b9347fa87bb629ffaed20276f2a4c944e\loader-4.0.41.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarFileSystems\0.4.1\78f59f89defcd032ed788b151ca6a0d40ace796a\JarJarFileSystems-0.4.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarMetadata\0.4.1\f8da03683dc81694556dc3e177c5e3bb77ae6fcb\JarJarMetadata-0.4.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarSelector\0.4.1\fb3cc7a58af22ad2880adb98af6d518128c47dae\JarJarSelector-0.4.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\accesstransformers\10.0.1\fd83b5725f76eae9115e9355fa1c456a6a441400\accesstransformers-10.0.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\bus\8.0.5\5b2d33285ab5d1554e9798ad98c40d6ea3868bd5\bus-8.0.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\coremods\7.0.3\9147e6f638b4272b3bd5fc8f92ad37802512c6c\coremods-7.0.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\mergetool\2.0.0\52fe1949be64e3303aabaaa21e315f551db9c9f4\mergetool-2.0.0-api.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.sf.jopt-simple\jopt-simple\5.0.4\4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c\jopt-simple-5.0.4.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.antlr\antlr4-runtime\4.13.1\17125bae1d965624e265ef49552f6465a2bfa307\antlr4-runtime-4.13.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-compress\1.26.0\659feffdd12280201c8aacb8f7be94f9a883c824\commons-compress-1.26.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-lang3\3.14.0\1ed471194b02f2c6cb734a0cd6f6f107c673afae\commons-lang3-3.14.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpclient\4.5.13\e5f6cae5ca7ecaac1ec2827a9e2d65ae2869cada\httpclient-4.5.13.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.4.16\51cf043c87253c9f58b539c9f7e44c8894223850\httpcore-4.4.16.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.22.1\bea6fede6328fabafd7e68363161a7ea6605abd1\log4j-api-2.22.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-core\2.22.1\7183a25510a02ad00cc6a95d3b3d2a7d3c5a8dc4\log4j-core-2.22.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-slf4j2-impl\2.22.1\d7e6693c2606cb7e7335047d7bb96dec52db5665\log4j-slf4j2-impl-2.22.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.maven\maven-artifact\3.8.5\4433f50c07debefaed0553bd0068f4f48d449313\maven-artifact-3.8.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.checkerframework\checker-qual\3.33.0\de2b60b62da487644fc11f734e73c8b0b431238f\checker-qual-3.33.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.codehaus.plexus\plexus-utils\3.3.0\cf43b5391de623b36fe066a21127baef82c64022\plexus-utils-3.3.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.jcraft\jorbis\0.0.17\8872d22b293e8f5d7d56ff92be966e6dc28ebdc6\jorbis-0.0.17.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.jline\jline-reader\3.20.0\8f15415b022a25b473e8e16c28ae913186ffb9c4\jline-reader-3.20.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.jline\jline-terminal\3.20.0\d0ddcc708ddf527a3454c941b7b9225cc83a15ff\jline-terminal-3.20.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.joml\joml\1.10.5\22566d58af70ad3d72308bab63b8339906deb649\joml-1.10.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-freetype\3.3.3\15a8c1de7f51d07a92eae7ce1222557073a0c0c3\lwjgl-freetype-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-freetype\3.3.3\81091b006dbb43fab04c8c638e9ac87c51b4096d\lwjgl-freetype-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-freetype\3.3.3\82028265a0a2ff33523ca75137ada7dc176e5210\lwjgl-freetype-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-freetype\3.3.3\a0db6c84a8becc8ca05f9dbfa985edc348a824c7\lwjgl-freetype-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.3\32334f3fd5270a59bad9939a93115acb6de36dcf\lwjgl-glfw-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.3\e449e28b4891fc423c54c85fbc5bb0b9efece67a\lwjgl-glfw-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.3\efa1eb78c5ccd840e9f329717109b5e892d72f8e\lwjgl-glfw-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.3\f27018dc74f6289574502b46cce55d52817554e2\lwjgl-glfw-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-jemalloc\3.3.3\426222fc027602a5f21b9c0fe79cde6a4c7a011f\lwjgl-jemalloc-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-jemalloc\3.3.3\b543467b7ff3c6920539a88ee602d34098628be5\lwjgl-jemalloc-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-jemalloc\3.3.3\ba1f3fed0ee4be0217eaa41c5bbfb4b9b1383c33\lwjgl-jemalloc-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-jemalloc\3.3.3\f6063b6e0f23be483c5c88d84ce51b39dc69126c\lwjgl-jemalloc-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.3\87b8d5050e3adb46bb58fe1cb2669a4a48fce10d\lwjgl-openal-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.3\8e0615235116b9e4160dfe87bec90f5f6378bf72\lwjgl-openal-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.3\cf83862ae95d98496b26915024c7e666d8ab1c8f\lwjgl-openal-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.3\daada81ceb5fc0c291fbfdd4433cb8d9423577f2\lwjgl-openal-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.3.3\2f6b0147078396a58979125a4c947664e98293a\lwjgl-opengl-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.3.3\65e956d3735a1abdc82eff4baec1b61174697d4b\lwjgl-opengl-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.3.3\d32d833dcaa2f355a886eaf21f0408b5f03241d\lwjgl-opengl-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.3.3\e6c1eec8be8a71951b830a4d69efc01c6531900c\lwjgl-opengl-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-stb\3.3.3\1d9facdf6541de114b0f963be33505b7679c78cb\lwjgl-stb-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-stb\3.3.3\25dd6161988d7e65f71d5065c99902402ee32746\lwjgl-stb-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-stb\3.3.3\a584ab44de569708871f0a79561f4d8c37487f2c\lwjgl-stb-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-stb\3.3.3\b5c874687b9aac1a936501d4ed2c49567fd1b575\lwjgl-stb-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-tinyfd\3.3.3\82d755ca94b102e9ca77283b9e2dc46d1b15fbe5\lwjgl-tinyfd-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-tinyfd\3.3.3\a6697981b0449a5087c1d546fc08b4f73e8f98c9\lwjgl-tinyfd-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-tinyfd\3.3.3\a88c494f3006eb91a7433b12a3a55a9a6c20788b\lwjgl-tinyfd-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-tinyfd\3.3.3\c336c84ee88cccb495c6ffa112395509e7378e8a\lwjgl-tinyfd-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl\3.3.3\29589b5f87ed335a6c7e7ee6a5775f81f97ecb84\lwjgl-3.3.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl\3.3.3\9e670718e050aeaeea0c2d5b907cffb142f2e58f\lwjgl-3.3.3-natives-windows-x86.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl\3.3.3\a5ed18a2b82fc91b81f40d717cb1f64c9dcb0540\lwjgl-3.3.3-natives-windows.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl\3.3.3\e9aca8c5479b520a2a7f0d542a118140e812c5e8\lwjgl-3.3.3-natives-windows-arm64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lz4\lz4-java\1.8.0\4b986a99445e49ea5fbf5d149c4b63f6ed6c6780\lz4-java-1.8.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.openjdk.nashorn\nashorn-core\15.4\f67f5ffaa5f5130cf6fb9b133da00c7df3b532a5\nashorn-core-15.4.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-analysis\9.8\b9747a320844b6cb1eacd90d8ecfd260a16c01d3\asm-analysis-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-commons\9.8\36e4d212970388e5bd2c5180292012502df461bb\asm-commons-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-tree\9.8\18419ca5b77a2f81097c741e7872e6ab8d2f40d\asm-tree-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-util\9.8\395f1c1f035258511f27bc9b2583d76e4b143f59\asm-util-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\9.8\dc19ecb3f7889b7860697215cae99c0f9b6f6b4b\asm-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.9\7cf2726fdcfbc8610f9a71fb3ed639871f315340\slf4j-api-2.0.9.jar +F:\java\mods\neoforge\1.21.1\commandify\build\moddev\artifacts\neoforge-21.1.208-client-extra-aka-minecraft-resources.jar diff --git a/build/moddev/dataLog4j2.xml b/build/moddev/dataLog4j2.xml new file mode 100644 index 0000000..773e88a --- /dev/null +++ b/build/moddev/dataLog4j2.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/moddev/dataRunProgramArgs.txt b/build/moddev/dataRunProgramArgs.txt new file mode 100644 index 0000000..9af0b84 --- /dev/null +++ b/build/moddev/dataRunProgramArgs.txt @@ -0,0 +1,29 @@ +# Main Class +cpw.mods.bootstraplauncher.BootstrapLauncher + +# NeoForge Run-Type Program Arguments +--launchTarget +forgedatadev +--assetIndex +17 +--assetsDir +C:\\Users\\jessy\\.gradle\\caches\\neoformruntime\\assets +--gameDir +. +--fml.fmlVersion +4.0.41 +--fml.mcVersion +1.21.1 +--fml.neoForgeVersion +21.1.208 +--fml.neoFormVersion +20240808.144430 + +# User Supplied Program Arguments +--mod +commandify +--all +--output +F:\\java\\mods\\neoforge\\1.21.1\\commandify\\src\\generated\\resources +--existing +F:\\java\\mods\\neoforge\\1.21.1\\commandify\\src\\main\\resources \ No newline at end of file diff --git a/build/moddev/dataRunVmArgs.txt b/build/moddev/dataRunVmArgs.txt new file mode 100644 index 0000000..08f5c33 --- /dev/null +++ b/build/moddev/dataRunVmArgs.txt @@ -0,0 +1,17 @@ +-p +C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\JarJarFileSystems\\0.4.1\\78f59f89defcd032ed788b151ca6a0d40ace796a\\JarJarFileSystems-0.4.1.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\bootstraplauncher\\2.0.2\\1a2d076cbc33b0520cbacd591224427b2a20047d\\bootstraplauncher-2.0.2.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\securejarhandler\\3.0.8\\c0ef95cecd8699a0449053ac7d9c160748d902cd\\securejarhandler-3.0.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-commons\\9.8\\36e4d212970388e5bd2c5180292012502df461bb\\asm-commons-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.8\\395f1c1f035258511f27bc9b2583d76e4b143f59\\asm-util-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.8\\b9747a320844b6cb1eacd90d8ecfd260a16c01d3\\asm-analysis-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.8\\18419ca5b77a2f81097c741e7872e6ab8d2f40d\\asm-tree-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.8\\dc19ecb3f7889b7860697215cae99c0f9b6f6b4b\\asm-9.8.jar +--add-modules +ALL-MODULE-PATH +--add-opens +java.base/java.util.jar=cpw.mods.securejarhandler +--add-opens +java.base/java.lang.invoke=cpw.mods.securejarhandler +--add-exports +java.base/sun.security.util=cpw.mods.securejarhandler +--add-exports +jdk.naming.dns/com.sun.jndi.dns=java.naming +-Dlog4j2.configurationFile=F:\\java\\mods\\neoforge\\1.21.1\\commandify\\build\\moddev\\dataLog4j2.xml +-Djava.net.preferIPv6Addresses=system +-DignoreList=mixinextras-neoforge-0.5.0.jar,client-extra,neoforge- +-DlegacyClassPath.file=F:\\java\\mods\\neoforge\\1.21.1\\commandify\\build\\moddev\\dataLegacyClasspath.txt +-Dforge.logging.markers=REGISTRIES \ No newline at end of file diff --git a/build/moddev/gameTestServerLegacyClasspath.txt b/build/moddev/gameTestServerLegacyClasspath.txt new file mode 100644 index 0000000..9ab7b45 --- /dev/null +++ b/build/moddev/gameTestServerLegacyClasspath.txt @@ -0,0 +1,67 @@ +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.electronwill.night-config\core\3.8.3\b442a95f09e349927f5a945ecb594455870fcf4f\core-3.8.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.electronwill.night-config\toml\3.8.3\90b2fd6efcb4a7d5b9810cf78f9d824994d717f2\toml-3.8.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.github.oshi\oshi-core\6.4.10\b1d8ab82d11d92fd639b56d639f8f46f739dd5fa\oshi-core-6.4.10.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.code.findbugs\jsr305\3.0.2\25ea2e8b0c338a877313bd4672d3fe056ea78f0d\jsr305-3.0.2.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.10.1\b3add478d4382b78ea20b1671390a858002feb6c\gson-2.10.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.errorprone\error_prone_annotations\2.18.0\89b684257096f548fa39a7df9fdaa409d4d4df91\error_prone_annotations-2.18.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.guava\failureaccess\1.0.1\1dcf1de382a0bf95a3d8b0849546c88bac1292c9\failureaccess-1.0.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\32.1.2-jre\5e64ec7e056456bef3a4bc4c6fdaef71e8ab6318\guava-32.1.2-jre.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\b421526c5f297295adef1c886e5246c39d4ac629\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.j2objc\j2objc-annotations\2.8\c85270e307e7b822f1086b93689124b89768e273\j2objc-annotations-2.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.machinezoo.noexception\noexception\1.7.1\b65330c98e38a1f915fa54a6e5eca496505e3f0a\noexception-1.7.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\authlib\6.0.54\de8bc95660e1b2fe8793fd427a7a10dcec5b3ea7\authlib-6.0.54.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\brigadier\1.3.10\d15b53a14cf20fdcaa98f731af5dda654452c010\brigadier-1.3.10.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\datafixerupper\8.0.16\67d4de6d7f95d89bcf5862995fb854ebaec02a34\datafixerupper-8.0.16.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\logging\1.2.7\24cb95ffb0e3433fd6e844c04e68009e504ca1c0\logging-1.2.7.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\commons-io\commons-io\2.15.1\f11560da189ab563a5c8e351941415430e9304ea\commons-io-2.15.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\cpw.mods\bootstraplauncher\2.0.2\1a2d076cbc33b0520cbacd591224427b2a20047d\bootstraplauncher-2.0.2.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\cpw.mods\modlauncher\11.0.5\b8f0d49294f733fdb6173931b263553e943dc950\modlauncher-11.0.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\cpw.mods\securejarhandler\3.0.8\c0ef95cecd8699a0449053ac7d9c160748d902cd\securejarhandler-3.0.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-buffer\4.1.97.Final\f8f3d8644afa5e6e1a40a3a6aeb9d9aa970ecb4f\netty-buffer-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-codec\4.1.97.Final\384ba4d75670befbedb45c4d3b497a93639c206d\netty-codec-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-common\4.1.97.Final\7cceacaf11df8dc63f23d0fb58e9d4640fc88404\netty-common-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-handler\4.1.97.Final\abb86c6906bf512bf2b797a41cd7d2e8d3cd7c36\netty-handler-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-resolver\4.1.97.Final\cec8348108dc76c47cf87c669d514be52c922144\netty-resolver-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-classes-epoll\4.1.97.Final\795da37ded759e862457a82d9d92c4d39ce8ecee\netty-transport-classes-epoll-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-native-epoll\4.1.97.Final\54188f271e388e7f313aea995e82f58ce2cdb809\netty-transport-native-epoll-4.1.97.Final-linux-x86_64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-native-epoll\4.1.97.Final\5514744c588190ffda076b35a9b8c9f24946a960\netty-transport-native-epoll-4.1.97.Final-linux-aarch_64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-native-unix-common\4.1.97.Final\d469d84265ab70095b01b40886cabdd433b6e664\netty-transport-native-unix-common-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport\4.1.97.Final\f37380d23c9bb079bc702910833b2fd532c9abd0\netty-transport-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\it.unimi.dsi\fastutil\8.5.12\c24946d46824bd528054bface3231d2ecb7e95e8\fastutil-8.5.12.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.fabricmc\sponge-mixin\0.15.2+mixin.0.8.7\2af2f021d8e02a0220dc27a7a72b4666d66d44ca\sponge-mixin-0.15.2+mixin.0.8.7.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna-platform\5.14.0\28934d48aed814f11e4c584da55c49fa7032b31b\jna-platform-5.14.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna\5.14.0\67bf3eaea4f0718cb376a181a629e5f88fa1c9dd\jna-5.14.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.jodah\typetools\0.6.3\a01aaa6ddaea9ec07ec4f209487b7a46a526283a\typetools-0.6.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.minecraftforge\srgutils\0.4.15\ca408b131759478f164e010fae0d73997e125fb5\srgutils-0.4.15.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.minecrell\terminalconsoleappender\1.3.0\b562e9bb61235c9520e26282cdee71f8f802d1fc\terminalconsoleappender-1.3.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged.accesstransformers\at-modlauncher\10.0.1\5aba50202aceead086bc09fbc2751c9f05cb4890\at-modlauncher-10.0.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged.fancymodloader\earlydisplay\4.0.41\53dfbd387ed1b88c7d144bdb6551b7f57d5da6d7\earlydisplay-4.0.41.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged.fancymodloader\loader\4.0.41\3aebc81b9347fa87bb629ffaed20276f2a4c944e\loader-4.0.41.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarFileSystems\0.4.1\78f59f89defcd032ed788b151ca6a0d40ace796a\JarJarFileSystems-0.4.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarMetadata\0.4.1\f8da03683dc81694556dc3e177c5e3bb77ae6fcb\JarJarMetadata-0.4.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarSelector\0.4.1\fb3cc7a58af22ad2880adb98af6d518128c47dae\JarJarSelector-0.4.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\accesstransformers\10.0.1\fd83b5725f76eae9115e9355fa1c456a6a441400\accesstransformers-10.0.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\bus\8.0.5\5b2d33285ab5d1554e9798ad98c40d6ea3868bd5\bus-8.0.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\coremods\7.0.3\9147e6f638b4272b3bd5fc8f92ad37802512c6c\coremods-7.0.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\mergetool\2.0.0\52fe1949be64e3303aabaaa21e315f551db9c9f4\mergetool-2.0.0-api.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.sf.jopt-simple\jopt-simple\5.0.4\4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c\jopt-simple-5.0.4.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.antlr\antlr4-runtime\4.13.1\17125bae1d965624e265ef49552f6465a2bfa307\antlr4-runtime-4.13.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-lang3\3.14.0\1ed471194b02f2c6cb734a0cd6f6f107c673afae\commons-lang3-3.14.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.22.1\bea6fede6328fabafd7e68363161a7ea6605abd1\log4j-api-2.22.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-core\2.22.1\7183a25510a02ad00cc6a95d3b3d2a7d3c5a8dc4\log4j-core-2.22.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-slf4j2-impl\2.22.1\d7e6693c2606cb7e7335047d7bb96dec52db5665\log4j-slf4j2-impl-2.22.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.maven\maven-artifact\3.8.5\4433f50c07debefaed0553bd0068f4f48d449313\maven-artifact-3.8.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.checkerframework\checker-qual\3.33.0\de2b60b62da487644fc11f734e73c8b0b431238f\checker-qual-3.33.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.codehaus.plexus\plexus-utils\3.3.0\cf43b5391de623b36fe066a21127baef82c64022\plexus-utils-3.3.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.jline\jline-reader\3.20.0\8f15415b022a25b473e8e16c28ae913186ffb9c4\jline-reader-3.20.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.jline\jline-terminal\3.20.0\d0ddcc708ddf527a3454c941b7b9225cc83a15ff\jline-terminal-3.20.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.joml\joml\1.10.5\22566d58af70ad3d72308bab63b8339906deb649\joml-1.10.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lz4\lz4-java\1.8.0\4b986a99445e49ea5fbf5d149c4b63f6ed6c6780\lz4-java-1.8.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.openjdk.nashorn\nashorn-core\15.4\f67f5ffaa5f5130cf6fb9b133da00c7df3b532a5\nashorn-core-15.4.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-analysis\9.8\b9747a320844b6cb1eacd90d8ecfd260a16c01d3\asm-analysis-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-commons\9.8\36e4d212970388e5bd2c5180292012502df461bb\asm-commons-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-tree\9.8\18419ca5b77a2f81097c741e7872e6ab8d2f40d\asm-tree-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-util\9.8\395f1c1f035258511f27bc9b2583d76e4b143f59\asm-util-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\9.8\dc19ecb3f7889b7860697215cae99c0f9b6f6b4b\asm-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.9\7cf2726fdcfbc8610f9a71fb3ed639871f315340\slf4j-api-2.0.9.jar +F:\java\mods\neoforge\1.21.1\commandify\build\moddev\artifacts\neoforge-21.1.208-client-extra-aka-minecraft-resources.jar diff --git a/build/moddev/gameTestServerLog4j2.xml b/build/moddev/gameTestServerLog4j2.xml new file mode 100644 index 0000000..773e88a --- /dev/null +++ b/build/moddev/gameTestServerLog4j2.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/moddev/gameTestServerRunProgramArgs.txt b/build/moddev/gameTestServerRunProgramArgs.txt new file mode 100644 index 0000000..e8ef3f6 --- /dev/null +++ b/build/moddev/gameTestServerRunProgramArgs.txt @@ -0,0 +1,18 @@ +# Main Class +cpw.mods.bootstraplauncher.BootstrapLauncher + +# NeoForge Run-Type Program Arguments +--launchTarget +forgeserverdev +--gameDir +. +--fml.fmlVersion +4.0.41 +--fml.mcVersion +1.21.1 +--fml.neoForgeVersion +21.1.208 +--fml.neoFormVersion +20240808.144430 + +# User Supplied Program Arguments \ No newline at end of file diff --git a/build/moddev/gameTestServerRunVmArgs.txt b/build/moddev/gameTestServerRunVmArgs.txt new file mode 100644 index 0000000..62b3af4 --- /dev/null +++ b/build/moddev/gameTestServerRunVmArgs.txt @@ -0,0 +1,20 @@ +-p +C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\JarJarFileSystems\\0.4.1\\78f59f89defcd032ed788b151ca6a0d40ace796a\\JarJarFileSystems-0.4.1.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\bootstraplauncher\\2.0.2\\1a2d076cbc33b0520cbacd591224427b2a20047d\\bootstraplauncher-2.0.2.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\securejarhandler\\3.0.8\\c0ef95cecd8699a0449053ac7d9c160748d902cd\\securejarhandler-3.0.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-commons\\9.8\\36e4d212970388e5bd2c5180292012502df461bb\\asm-commons-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.8\\395f1c1f035258511f27bc9b2583d76e4b143f59\\asm-util-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.8\\b9747a320844b6cb1eacd90d8ecfd260a16c01d3\\asm-analysis-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.8\\18419ca5b77a2f81097c741e7872e6ab8d2f40d\\asm-tree-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.8\\dc19ecb3f7889b7860697215cae99c0f9b6f6b4b\\asm-9.8.jar +--add-modules +ALL-MODULE-PATH +--add-opens +java.base/java.util.jar=cpw.mods.securejarhandler +--add-opens +java.base/java.lang.invoke=cpw.mods.securejarhandler +--add-exports +java.base/sun.security.util=cpw.mods.securejarhandler +--add-exports +jdk.naming.dns/com.sun.jndi.dns=java.naming +-Dlog4j2.configurationFile=F:\\java\\mods\\neoforge\\1.21.1\\commandify\\build\\moddev\\gameTestServerLog4j2.xml +-Djava.net.preferIPv6Addresses=system +-DignoreList=mixinextras-neoforge-0.5.0.jar,client-extra,neoforge- +-DlegacyClassPath.file=F:\\java\\mods\\neoforge\\1.21.1\\commandify\\build\\moddev\\gameTestServerLegacyClasspath.txt +-Dneoforge.enableGameTest=true +-Dneoforge.gameTestServer=true +-Dneoforge.enabledGameTestNamespaces=commandify +-Dforge.logging.markers=REGISTRIES \ No newline at end of file diff --git a/build/moddev/minecraft_assets.properties b/build/moddev/minecraft_assets.properties new file mode 100644 index 0000000..6a13c43 --- /dev/null +++ b/build/moddev/minecraft_assets.properties @@ -0,0 +1,3 @@ +#Wed Oct 08 05:17:47 CEST 2025 +asset_index=17 +assets_root=C\:\\Users\\jessy\\.gradle\\caches\\neoformruntime\\assets diff --git a/build/moddev/serverLegacyClasspath.txt b/build/moddev/serverLegacyClasspath.txt new file mode 100644 index 0000000..9ab7b45 --- /dev/null +++ b/build/moddev/serverLegacyClasspath.txt @@ -0,0 +1,67 @@ +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.electronwill.night-config\core\3.8.3\b442a95f09e349927f5a945ecb594455870fcf4f\core-3.8.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.electronwill.night-config\toml\3.8.3\90b2fd6efcb4a7d5b9810cf78f9d824994d717f2\toml-3.8.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.github.oshi\oshi-core\6.4.10\b1d8ab82d11d92fd639b56d639f8f46f739dd5fa\oshi-core-6.4.10.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.code.findbugs\jsr305\3.0.2\25ea2e8b0c338a877313bd4672d3fe056ea78f0d\jsr305-3.0.2.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.10.1\b3add478d4382b78ea20b1671390a858002feb6c\gson-2.10.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.errorprone\error_prone_annotations\2.18.0\89b684257096f548fa39a7df9fdaa409d4d4df91\error_prone_annotations-2.18.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.guava\failureaccess\1.0.1\1dcf1de382a0bf95a3d8b0849546c88bac1292c9\failureaccess-1.0.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\32.1.2-jre\5e64ec7e056456bef3a4bc4c6fdaef71e8ab6318\guava-32.1.2-jre.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\b421526c5f297295adef1c886e5246c39d4ac629\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.google.j2objc\j2objc-annotations\2.8\c85270e307e7b822f1086b93689124b89768e273\j2objc-annotations-2.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.machinezoo.noexception\noexception\1.7.1\b65330c98e38a1f915fa54a6e5eca496505e3f0a\noexception-1.7.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\authlib\6.0.54\de8bc95660e1b2fe8793fd427a7a10dcec5b3ea7\authlib-6.0.54.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\brigadier\1.3.10\d15b53a14cf20fdcaa98f731af5dda654452c010\brigadier-1.3.10.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\datafixerupper\8.0.16\67d4de6d7f95d89bcf5862995fb854ebaec02a34\datafixerupper-8.0.16.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\com.mojang\logging\1.2.7\24cb95ffb0e3433fd6e844c04e68009e504ca1c0\logging-1.2.7.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\commons-io\commons-io\2.15.1\f11560da189ab563a5c8e351941415430e9304ea\commons-io-2.15.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\cpw.mods\bootstraplauncher\2.0.2\1a2d076cbc33b0520cbacd591224427b2a20047d\bootstraplauncher-2.0.2.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\cpw.mods\modlauncher\11.0.5\b8f0d49294f733fdb6173931b263553e943dc950\modlauncher-11.0.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\cpw.mods\securejarhandler\3.0.8\c0ef95cecd8699a0449053ac7d9c160748d902cd\securejarhandler-3.0.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-buffer\4.1.97.Final\f8f3d8644afa5e6e1a40a3a6aeb9d9aa970ecb4f\netty-buffer-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-codec\4.1.97.Final\384ba4d75670befbedb45c4d3b497a93639c206d\netty-codec-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-common\4.1.97.Final\7cceacaf11df8dc63f23d0fb58e9d4640fc88404\netty-common-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-handler\4.1.97.Final\abb86c6906bf512bf2b797a41cd7d2e8d3cd7c36\netty-handler-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-resolver\4.1.97.Final\cec8348108dc76c47cf87c669d514be52c922144\netty-resolver-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-classes-epoll\4.1.97.Final\795da37ded759e862457a82d9d92c4d39ce8ecee\netty-transport-classes-epoll-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-native-epoll\4.1.97.Final\54188f271e388e7f313aea995e82f58ce2cdb809\netty-transport-native-epoll-4.1.97.Final-linux-x86_64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-native-epoll\4.1.97.Final\5514744c588190ffda076b35a9b8c9f24946a960\netty-transport-native-epoll-4.1.97.Final-linux-aarch_64.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-native-unix-common\4.1.97.Final\d469d84265ab70095b01b40886cabdd433b6e664\netty-transport-native-unix-common-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport\4.1.97.Final\f37380d23c9bb079bc702910833b2fd532c9abd0\netty-transport-4.1.97.Final.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\it.unimi.dsi\fastutil\8.5.12\c24946d46824bd528054bface3231d2ecb7e95e8\fastutil-8.5.12.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.fabricmc\sponge-mixin\0.15.2+mixin.0.8.7\2af2f021d8e02a0220dc27a7a72b4666d66d44ca\sponge-mixin-0.15.2+mixin.0.8.7.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna-platform\5.14.0\28934d48aed814f11e4c584da55c49fa7032b31b\jna-platform-5.14.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna\5.14.0\67bf3eaea4f0718cb376a181a629e5f88fa1c9dd\jna-5.14.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.jodah\typetools\0.6.3\a01aaa6ddaea9ec07ec4f209487b7a46a526283a\typetools-0.6.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.minecraftforge\srgutils\0.4.15\ca408b131759478f164e010fae0d73997e125fb5\srgutils-0.4.15.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.minecrell\terminalconsoleappender\1.3.0\b562e9bb61235c9520e26282cdee71f8f802d1fc\terminalconsoleappender-1.3.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged.accesstransformers\at-modlauncher\10.0.1\5aba50202aceead086bc09fbc2751c9f05cb4890\at-modlauncher-10.0.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged.fancymodloader\earlydisplay\4.0.41\53dfbd387ed1b88c7d144bdb6551b7f57d5da6d7\earlydisplay-4.0.41.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged.fancymodloader\loader\4.0.41\3aebc81b9347fa87bb629ffaed20276f2a4c944e\loader-4.0.41.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarFileSystems\0.4.1\78f59f89defcd032ed788b151ca6a0d40ace796a\JarJarFileSystems-0.4.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarMetadata\0.4.1\f8da03683dc81694556dc3e177c5e3bb77ae6fcb\JarJarMetadata-0.4.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\JarJarSelector\0.4.1\fb3cc7a58af22ad2880adb98af6d518128c47dae\JarJarSelector-0.4.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\accesstransformers\10.0.1\fd83b5725f76eae9115e9355fa1c456a6a441400\accesstransformers-10.0.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\bus\8.0.5\5b2d33285ab5d1554e9798ad98c40d6ea3868bd5\bus-8.0.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\coremods\7.0.3\9147e6f638b4272b3bd5fc8f92ad37802512c6c\coremods-7.0.3.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.neoforged\mergetool\2.0.0\52fe1949be64e3303aabaaa21e315f551db9c9f4\mergetool-2.0.0-api.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\net.sf.jopt-simple\jopt-simple\5.0.4\4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c\jopt-simple-5.0.4.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.antlr\antlr4-runtime\4.13.1\17125bae1d965624e265ef49552f6465a2bfa307\antlr4-runtime-4.13.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-lang3\3.14.0\1ed471194b02f2c6cb734a0cd6f6f107c673afae\commons-lang3-3.14.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.22.1\bea6fede6328fabafd7e68363161a7ea6605abd1\log4j-api-2.22.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-core\2.22.1\7183a25510a02ad00cc6a95d3b3d2a7d3c5a8dc4\log4j-core-2.22.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-slf4j2-impl\2.22.1\d7e6693c2606cb7e7335047d7bb96dec52db5665\log4j-slf4j2-impl-2.22.1.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.apache.maven\maven-artifact\3.8.5\4433f50c07debefaed0553bd0068f4f48d449313\maven-artifact-3.8.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.checkerframework\checker-qual\3.33.0\de2b60b62da487644fc11f734e73c8b0b431238f\checker-qual-3.33.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.codehaus.plexus\plexus-utils\3.3.0\cf43b5391de623b36fe066a21127baef82c64022\plexus-utils-3.3.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.jline\jline-reader\3.20.0\8f15415b022a25b473e8e16c28ae913186ffb9c4\jline-reader-3.20.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.jline\jline-terminal\3.20.0\d0ddcc708ddf527a3454c941b7b9225cc83a15ff\jline-terminal-3.20.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.joml\joml\1.10.5\22566d58af70ad3d72308bab63b8339906deb649\joml-1.10.5.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.lz4\lz4-java\1.8.0\4b986a99445e49ea5fbf5d149c4b63f6ed6c6780\lz4-java-1.8.0.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.openjdk.nashorn\nashorn-core\15.4\f67f5ffaa5f5130cf6fb9b133da00c7df3b532a5\nashorn-core-15.4.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-analysis\9.8\b9747a320844b6cb1eacd90d8ecfd260a16c01d3\asm-analysis-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-commons\9.8\36e4d212970388e5bd2c5180292012502df461bb\asm-commons-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-tree\9.8\18419ca5b77a2f81097c741e7872e6ab8d2f40d\asm-tree-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-util\9.8\395f1c1f035258511f27bc9b2583d76e4b143f59\asm-util-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\9.8\dc19ecb3f7889b7860697215cae99c0f9b6f6b4b\asm-9.8.jar +C:\Users\jessy\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.9\7cf2726fdcfbc8610f9a71fb3ed639871f315340\slf4j-api-2.0.9.jar +F:\java\mods\neoforge\1.21.1\commandify\build\moddev\artifacts\neoforge-21.1.208-client-extra-aka-minecraft-resources.jar diff --git a/build/moddev/serverLog4j2.xml b/build/moddev/serverLog4j2.xml new file mode 100644 index 0000000..773e88a --- /dev/null +++ b/build/moddev/serverLog4j2.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/moddev/serverRunProgramArgs.txt b/build/moddev/serverRunProgramArgs.txt new file mode 100644 index 0000000..0da8230 --- /dev/null +++ b/build/moddev/serverRunProgramArgs.txt @@ -0,0 +1,19 @@ +# Main Class +cpw.mods.bootstraplauncher.BootstrapLauncher + +# NeoForge Run-Type Program Arguments +--launchTarget +forgeserverdev +--gameDir +. +--fml.fmlVersion +4.0.41 +--fml.mcVersion +1.21.1 +--fml.neoForgeVersion +21.1.208 +--fml.neoFormVersion +20240808.144430 + +# User Supplied Program Arguments +--nogui \ No newline at end of file diff --git a/build/moddev/serverRunVmArgs.txt b/build/moddev/serverRunVmArgs.txt new file mode 100644 index 0000000..7cabe79 --- /dev/null +++ b/build/moddev/serverRunVmArgs.txt @@ -0,0 +1,18 @@ +-p +C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\JarJarFileSystems\\0.4.1\\78f59f89defcd032ed788b151ca6a0d40ace796a\\JarJarFileSystems-0.4.1.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\bootstraplauncher\\2.0.2\\1a2d076cbc33b0520cbacd591224427b2a20047d\\bootstraplauncher-2.0.2.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\securejarhandler\\3.0.8\\c0ef95cecd8699a0449053ac7d9c160748d902cd\\securejarhandler-3.0.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-commons\\9.8\\36e4d212970388e5bd2c5180292012502df461bb\\asm-commons-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.8\\395f1c1f035258511f27bc9b2583d76e4b143f59\\asm-util-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.8\\b9747a320844b6cb1eacd90d8ecfd260a16c01d3\\asm-analysis-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.8\\18419ca5b77a2f81097c741e7872e6ab8d2f40d\\asm-tree-9.8.jar;C:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.8\\dc19ecb3f7889b7860697215cae99c0f9b6f6b4b\\asm-9.8.jar +--add-modules +ALL-MODULE-PATH +--add-opens +java.base/java.util.jar=cpw.mods.securejarhandler +--add-opens +java.base/java.lang.invoke=cpw.mods.securejarhandler +--add-exports +java.base/sun.security.util=cpw.mods.securejarhandler +--add-exports +jdk.naming.dns/com.sun.jndi.dns=java.naming +-Dlog4j2.configurationFile=F:\\java\\mods\\neoforge\\1.21.1\\commandify\\build\\moddev\\serverLog4j2.xml +-Djava.net.preferIPv6Addresses=system +-DignoreList=mixinextras-neoforge-0.5.0.jar,client-extra,neoforge- +-DlegacyClassPath.file=F:\\java\\mods\\neoforge\\1.21.1\\commandify\\build\\moddev\\serverLegacyClasspath.txt +-Dneoforge.enabledGameTestNamespaces=commandify +-Dforge.logging.markers=REGISTRIES \ No newline at end of file diff --git a/build/reports/configuration-cache/6jo271vzo402llotakqvcifez/6lvo2qh2otds2nwal4nwbu8z4/configuration-cache-report.html b/build/reports/configuration-cache/6jo271vzo402llotakqvcifez/6lvo2qh2otds2nwal4nwbu8z4/configuration-cache-report.html new file mode 100644 index 0000000..2a997ae --- /dev/null +++ b/build/reports/configuration-cache/6jo271vzo402llotakqvcifez/6lvo2qh2otds2nwal4nwbu8z4/configuration-cache-report.html @@ -0,0 +1,446 @@ + + + + + + + + + + + + + Gradle Configuration Cache + + + +
+ +
+ Loading... +
+ + + + + + diff --git a/build/resources/main/META-INF/neoforge.mods.toml b/build/resources/main/META-INF/neoforge.mods.toml new file mode 100644 index 0000000..40b76c7 --- /dev/null +++ b/build/resources/main/META-INF/neoforge.mods.toml @@ -0,0 +1,25 @@ +modLoader = "javafml" +loaderVersion = "[4,)" +license = "All Rights Reserved" + +[[mods]] +modId = "commandify" +version = "1.0.1" +displayName = "commandify" +displayURL = "https://ultralion.xyz" +authors = "UltraLion" +description = '''Commandify''' + +[[dependencies."commandify"]] +modId = "neoforge" +type = "required" +versionRange = "[21,)" +ordering = "NONE" +side = "SERVER" + +[[dependencies."commandify"]] +modId = "minecraft" +type = "required" +versionRange = "[1.21.1,1.22)" +ordering = "AFTER" +side = "BOTH" diff --git a/build/resources/main/assets/commandify/lang/en_us.json b/build/resources/main/assets/commandify/lang/en_us.json new file mode 100644 index 0000000..5274270 --- /dev/null +++ b/build/resources/main/assets/commandify/lang/en_us.json @@ -0,0 +1,145 @@ +{ + "commandify.invsee.open_self": "§cYou cannot open your own inventory.", + "commandify.invsee.open_target": "§aYou are now editing §e%s§a's inventory.", + "commandify.invsee.title": "Inventory of %s", + "commandify.invsee.error": "§cInternal error while opening the inventory: %s", + + "commandify.broadcast.format": "§6§l[Announcement] §e%s", + "commandify.broadcast.sent": "§aAnnouncement sent to all players.", + + "commandify.ignore.self": "§cYou cannot ignore yourself.", + "commandify.ignore.already": "§eYou are already ignoring §6%s§e.", + "commandify.ignore.added": "§aYou are now ignoring §6%s§a.", + + "commandify.ignored.empty": "§7You are not ignoring any players.", + "commandify.ignored.header": "§e👥 Ignored players:", + "commandify.ignored.hover": "Click to /unignore %s", + + "commandify.unignore.not_ignored": "§eYou are not ignoring §6%s§e.", + "commandify.unignore.success": "§aYou are no longer ignoring §6%s§a.", + + "commandify.msg.self": "§cYou cannot send a message to yourself.", + "commandify.msg.ignored": "§cThis player has ignored you. Your message was not delivered.", + "commandify.msg.to_sender": "§7[§bMe §7→ §e%s§7] §f%s", + "commandify.msg.to_target": "§7[§e%s §7→ §bMe§7] §f%s", + + "commandify.reply.none": "§cNo recent message to reply to.", + "commandify.reply.offline": "§cThat player is no longer online.", + "commandify.reply.ignored": "§cThis player has ignored you. Your message was not delivered.", + "commandify.reply.to_sender": "§7[§bMe §7→ §e%s§7] §f%s", + "commandify.reply.to_target": "§7[§e%s §7→ §bMe§7] §f%s", + + "commandify.info.title": "§6§lCommandify §r§7(v%s)", + "commandify.info.author": "§eAuthor: §fUltraLion", + "commandify.info.website": "§eWebsite: §fhttps://ultralion.xyz", + "commandify.info.modules_title": "§7Active Modules:", + "commandify.info.module.teleport": "§f- Teleportation (Homes, Warps, TPA, RTP, Back)", + "commandify.info.module.world": "§f- World Management (Time, Weather)", + "commandify.info.module.chat": "§f- Chat (Private Msg, Reply, Ignore, Broadcast)", + "commandify.info.modid": "§7Mod ID: §f%s", + "commandify.info.server_version": "§7Server Version: §f%s", + "commandify.info.players": "§7Online Players: §f%s", + + "commandify.reload.success": "§a[Commandify] Configuration successfully reloaded!", + "commandify.reload.error": "§c[Commandify] An error occurred while reloading the configuration.", + + "commandify.back.disabled": "§cThe /back command is disabled on this server.", + "commandify.back.no_previous": "§cNo previous location found.", + "commandify.back.success": "§aTeleported to your last location.", + + "commandify.home.not_found": "§cThe home '%s' does not exist.", + "commandify.home.invalid_world": "§cThe world for this home does not exist or is not loaded.", + "commandify.home.success": "§aTeleported to home '%s'.", + + "commandify.homes.disabled": "§cThe /homes command is disabled on this server.", + "commandify.homes.none": "§7You haven’t set any homes yet.", + "commandify.homes.header": "§6===== Your homes (%s) =====", + "commandify.homes.footer": "§6==============================", + "commandify.homes.hover_tp": "§7Click to teleport to '%s'.", + + "commandify.sethome.limit_reached": "§cYou have reached your home limit (%s).", + "commandify.sethome.success": "§aHome '%s' has been set to your current location.", + + "commandify.delhome.not_found": "§cThe home '%s' does not exist.", + "commandify.delhome.success": "§aHome '%s' has been successfully deleted.", + + "commandify.rtp.no_world": "§cUnable to find the main world.", + "commandify.rtp.disabled": "§cThe /rtp command is disabled on this server.", + "commandify.rtp.cooldown": "§e⏳ Wait %s seconds before using /rtp again.", + "commandify.rtp.searching": "§7Searching for a safe place in the world...", + "commandify.rtp.no_safe": "§cNo safe location found after several attempts.", + "commandify.rtp.success": "§aTeleported to a random global location: §e%s", + + "commandify.setspawn.disabled": "§cThe /setspawn command is disabled in the configuration.", + "commandify.setspawn.player_only": "§cThis command can only be used by a player.", + "commandify.setspawn.success": "§aGlobal spawn point set to your current position!", + + "commandify.spawn.disabled": "§cThe /spawn command is disabled in the configuration.", + "commandify.spawn.player_only": "§cThis command can only be used by a player.", + "commandify.spawn.not_set": "§cNo spawn point has been set. Use /setspawn.", + "commandify.spawn.no_world": "§cError: Overworld not found.", + "commandify.spawn.success": "§aTeleported to the server spawn point.", + + "commandify.tpa.self": "§cYou cannot send a teleport request to yourself.", + "commandify.tpa.blocked": "§cThis player is not accepting teleport requests.", + "commandify.tpa.sent": "§aTeleport request sent to §e%s§a.", + "commandify.tpa.accept_button": "[✅ Accept]", + "commandify.tpa.deny_button": "[❌ Deny]", + "commandify.tpa.accept_hover": "§aClick to accept the teleport request.", + "commandify.tpa.deny_hover": "§cClick to deny the teleport request.", + "commandify.tpa.request_message": " wants to teleport to you. ", + + "commandify.tpaccept.none": "§cYou have no pending teleport request.", + "commandify.tpaccept.offline": "§cThe player who sent the request is no longer online.", + "commandify.tpaccept.here_target": "§aYou accepted the request. Teleporting to §e%s§a!", + "commandify.tpaccept.here_requester": "§a%s§a teleported to you.", + "commandify.tpaccept.tpa_requester": "§aTeleported to §e%s§a.", + "commandify.tpaccept.tpa_target": "§a%s§a teleported to you.", + + "commandify.tpadeny.none": "§cYou have no pending teleport request.", + "commandify.tpadeny.to_requester": "§c%s has denied your teleport request.", + "commandify.tpadeny.to_target": "§aTeleport request denied.", + + "commandify.tpahere.self": "§cYou cannot send a teleport request to yourself.", + "commandify.tpahere.blocked": "§cThat player does not accept teleport requests.", + "commandify.tpahere.sent": "§aTeleport request sent to §e%s§a to teleport to you.", + "commandify.tpahere.request_message": " §ewants you to teleport to them. ", + "commandify.tpahere.accept_button": "[✅ Accept]", + "commandify.tpahere.deny_button": "[❌ Deny]", + "commandify.tpahere.accept_hover": "§aClick to accept", + "commandify.tpahere.deny_hover": "§cClick to deny", + + "commandify.tpatoggle.enabled": "§aYou are now accepting teleport requests.", + "commandify.tpatoggle.disabled": "§cYou are now refusing all teleport requests.", + + "commandify.tpa.expired_requester": "§cYour teleport request to %s has expired.", + "commandify.tpa.expired_target": "§7The teleport request from %s has expired.", + "commandify.tpa.unknown_player": "a player", + + "commandify.setwarp.disabled": "§cThe /setwarp command is disabled on this server.", + "commandify.setwarp.success": "§aWarp '%s' has been successfully created!", + + "commandify.delwarp.disabled": "§cThe /delwarp command is disabled on this server.", + "commandify.delwarp.not_found": "§cThe warp '%s' does not exist.", + "commandify.delwarp.success": "§aWarp '%s' successfully deleted.", + + "commandify.warp.disabled": "§cThe /warp command is disabled on this server.", + "commandify.warp.not_found": "§cThe warp '%s' does not exist.", + "commandify.warp.invalid_world": "§cThe warp's world does not exist or is not loaded.", + "commandify.warp.success": "§aTeleported to warp '%s'.", + + "commandify.warps.disabled": "§cThe /warps command is disabled on this server.", + "commandify.warps.empty": "§7No warps have been created yet.", + "commandify.warps.header": "§6--- Available warps ---", + "commandify.warps.footer": "§6---------------------------", + "commandify.warps.hover": "§7Click to teleport to §e%s", + + "commandify.world.disabled": "§cThis command is disabled on this server.", + "commandify.world.day": "§eTime set to §6day.", + "commandify.world.night": "§9Time set to §bnight.", + "commandify.world.noon": "§eTime set to §6noon.", + "commandify.world.midnight": "§9Time set to §bmidnight.", + "commandify.world.sun": "§eWeather set to §6sunny.", + "commandify.world.rain": "§bWeather set to §9rain.", + "commandify.world.thunder": "§bWeather set to §cthunderstorm." +} \ No newline at end of file diff --git a/build/resources/main/assets/commandify/lang/fr_fr.json b/build/resources/main/assets/commandify/lang/fr_fr.json new file mode 100644 index 0000000..d840515 --- /dev/null +++ b/build/resources/main/assets/commandify/lang/fr_fr.json @@ -0,0 +1,145 @@ +{ + "commandify.invsee.open_self": "§cTu ne peux pas ouvrir ton propre inventaire.", + "commandify.invsee.open_target": "§aTu modifies l’inventaire de §e%s§a.", + "commandify.invsee.title": "Inventaire de %s", + "commandify.invsee.error": "§cErreur interne lors de l’ouverture de l’inventaire : %s", + + "commandify.broadcast.format": "§6§l[Annonce] §e%s", + "commandify.broadcast.sent": "§aAnnonce envoyée à tous les joueurs.", + + "commandify.ignore.self": "§cTu ne peux pas t’ignorer toi-même.", + "commandify.ignore.already": "§eTu ignores déjà §6%s§e.", + "commandify.ignore.added": "§aTu ignores maintenant §6%s§a.", + + "commandify.ignored.empty": "§7Tu n’as ignoré aucun joueur.", + "commandify.ignored.header": "§e👥 Joueurs ignorés :", + "commandify.ignored.hover": "Cliquer pour /unignore %s", + + "commandify.unignore.not_ignored": "§eTu n’ignores pas §6%s§e.", + "commandify.unignore.success": "§aTu n’ignores plus §6%s§a.", + + "commandify.msg.self": "§cTu ne peux pas t’envoyer un message à toi-même.", + "commandify.msg.ignored": "§cCe joueur t’a ignoré, ton message ne lui sera pas envoyé.", + "commandify.msg.to_sender": "§7[§bMoi §7→ §e%s§7] §f%s", + "commandify.msg.to_target": "§7[§e%s §7→ §bMoi§7] §f%s", + + "commandify.reply.none": "§cAucun message récent à qui répondre.", + "commandify.reply.offline": "§cCe joueur n’est plus en ligne.", + "commandify.reply.ignored": "§cCe joueur t’a ignoré, ton message ne lui sera pas envoyé.", + "commandify.reply.to_sender": "§7[§bMoi §7→ §e%s§7] §f%s", + "commandify.reply.to_target": "§7[§e%s §7→ §bMoi§7] §f%s", + + "commandify.info.title": "§6§lCommandify §r§7(v%s)", + "commandify.info.author": "§eAuteur : §fUltraLion", + "commandify.info.website": "§eSite : §fhttps://ultralion.xyz", + "commandify.info.modules_title": "§7Modules actifs :", + "commandify.info.module.teleport": "§f- Téléportation (Homes, Warps, TPA, RTP, Back)", + "commandify.info.module.world": "§f- Monde (Temps, Météo)", + "commandify.info.module.chat": "§f- Chat (MP, Réponse, Ignore, Broadcast)", + "commandify.info.modid": "§7Mod ID : §f%s", + "commandify.info.server_version": "§7Version serveur : §f%s", + "commandify.info.players": "§7Joueurs connectés : §f%s", + + "commandify.reload.success": "§a[Commandify] Configuration rechargée avec succès !", + "commandify.reload.error": "§c[Commandify] Erreur lors du rechargement de la configuration.", + + "commandify.back.disabled": "§cLa commande /back est désactivée sur ce serveur.", + "commandify.back.no_previous": "§cAucune position précédente trouvée.", + "commandify.back.success": "§aTéléportation vers ta dernière position.", + + "commandify.home.not_found": "§cLe home '%s' n’existe pas.", + "commandify.home.invalid_world": "§cLe monde du home n’existe pas ou n’est pas chargé.", + "commandify.home.success": "§aTéléportation vers le home '%s'.", + + "commandify.homes.disabled": "§cLa commande /homes est désactivée sur ce serveur.", + "commandify.homes.none": "§7Tu n’as défini aucun home pour le moment.", + "commandify.homes.header": "§6===== Tes homes (%s) =====", + "commandify.homes.footer": "§6==============================", + "commandify.homes.hover_tp": "§7Clique pour te téléporter à '%s'.", + + "commandify.sethome.limit_reached": "§cTu as atteint la limite de homes (%s).", + "commandify.sethome.success": "§aHome '%s' défini à ta position actuelle.", + + "commandify.delhome.not_found": "§cLe home '%s' n’existe pas.", + "commandify.delhome.success": "§aHome '%s' supprimé avec succès.", + + "commandify.rtp.no_world": "§cImpossible de trouver le monde principal.", + "commandify.rtp.disabled": "§cLa commande /rtp est désactivée sur ce serveur.", + "commandify.rtp.cooldown": "§e⏳ Attends encore %s secondes avant d’utiliser /rtp.", + "commandify.rtp.searching": "§7Recherche d’un lieu sûr dans le monde...", + "commandify.rtp.no_safe": "§cAucun endroit sûr trouvé après plusieurs essais.", + "commandify.rtp.success": "§aTéléporté à un lieu aléatoire global : §e%s", + + "commandify.setspawn.disabled": "§cLa commande /setspawn est désactivée dans la configuration.", + "commandify.setspawn.player_only": "§cCette commande doit être utilisée par un joueur.", + "commandify.setspawn.success": "§aSpawn défini à ta position exacte !", + + "commandify.spawn.disabled": "§cLa commande /spawn est désactivée dans la configuration.", + "commandify.spawn.player_only": "§cCette commande doit être utilisée par un joueur.", + "commandify.spawn.not_set": "§cAucun spawn défini. Utilise /setspawn.", + "commandify.spawn.no_world": "§cErreur : monde Overworld introuvable.", + "commandify.spawn.success": "§aTéléporté au spawn du serveur.", + + "commandify.tpa.self": "§cTu ne peux pas t’envoyer une demande à toi-même.", + "commandify.tpa.blocked": "§cCe joueur n’accepte pas les demandes de téléportation.", + "commandify.tpa.sent": "§aDemande de téléportation envoyée à §e%s§a.", + "commandify.tpa.accept_button": "[✅ Accepter]", + "commandify.tpa.deny_button": "[❌ Refuser]", + "commandify.tpa.accept_hover": "§aClique pour accepter la demande de téléportation.", + "commandify.tpa.deny_hover": "§cClique pour refuser la demande de téléportation.", + "commandify.tpa.request_message": " souhaite se téléporter à toi. ", + + "commandify.tpaccept.none": "§cAucune demande de téléportation en attente.", + "commandify.tpaccept.offline": "§cLe joueur ayant fait la demande n’est plus en ligne.", + "commandify.tpaccept.here_target": "§aTu as accepté la demande, téléportation vers §e%s§a !", + "commandify.tpaccept.here_requester": "§a%s§a s’est téléporté à toi.", + "commandify.tpaccept.tpa_requester": "§aTéléportation vers §e%s§a.", + "commandify.tpaccept.tpa_target": "§a%s§a s’est téléporté à toi.", + + "commandify.tpadeny.none": "§cAucune demande de téléportation en attente.", + "commandify.tpadeny.to_requester": "§c%s a refusé ta demande de téléportation.", + "commandify.tpadeny.to_target": "§aDemande de téléportation refusée.", + + "commandify.tpahere.self": "§cTu ne peux pas t’envoyer une demande à toi-même.", + "commandify.tpahere.blocked": "§cCe joueur n’accepte pas les demandes de téléportation.", + "commandify.tpahere.sent": "§aDemande envoyée à §e%s§a pour qu’il se téléporte à toi.", + "commandify.tpahere.request_message": " §ete demande de te téléporter à lui. ", + "commandify.tpahere.accept_button": "[✅ Accepter]", + "commandify.tpahere.deny_button": "[❌ Refuser]", + "commandify.tpahere.accept_hover": "§aClique pour accepter", + "commandify.tpahere.deny_hover": "§cClique pour refuser", + + "commandify.tpatoggle.enabled": "§aTu acceptes maintenant les demandes de téléportation.", + "commandify.tpatoggle.disabled": "§cTu refuses désormais toutes les demandes de téléportation.", + + "commandify.tpa.expired_requester": "§cTa demande de téléportation vers %s a expiré.", + "commandify.tpa.expired_target": "§7La demande de téléportation de %s a expiré.", + "commandify.tpa.unknown_player": "un joueur", + + "commandify.setwarp.disabled": "§cLa commande /setwarp est désactivée sur ce serveur.", + "commandify.setwarp.success": "§aWarp '%s' défini avec succès !", + + "commandify.delwarp.disabled": "§cLa commande /delwarp est désactivée sur ce serveur.", + "commandify.delwarp.not_found": "§cLe warp '%s' n’existe pas.", + "commandify.delwarp.success": "§aWarp '%s' supprimé avec succès.", + + "commandify.warp.disabled": "§cLa commande /warp est désactivée sur ce serveur.", + "commandify.warp.not_found": "§cLe warp '%s' n’existe pas.", + "commandify.warp.invalid_world": "§cLe monde du warp n’existe pas ou n’est pas chargé.", + "commandify.warp.success": "§aTéléportation vers le warp '%s'.", + + "commandify.warps.disabled": "§cLa commande /warps est désactivée sur ce serveur.", + "commandify.warps.empty": "§7Aucun warp n’a encore été défini.", + "commandify.warps.header": "§6--- Warps disponibles ---", + "commandify.warps.footer": "§6---------------------------", + "commandify.warps.hover": "§7Clique pour te téléporter à §e%s", + + "commandify.world.disabled": "§cCette commande est désactivée sur ce serveur.", + "commandify.world.day": "§eHeure définie sur §6jour.", + "commandify.world.night": "§9Heure définie sur §bla nuit.", + "commandify.world.noon": "§eHeure définie sur §6midi.", + "commandify.world.midnight": "§9Heure définie sur §bminuit.", + "commandify.world.sun": "§eMétéo réglée sur §6ensoleillé.", + "commandify.world.rain": "§bMétéo réglée sur §9pluie.", + "commandify.world.thunder": "§bMétéo réglée sur §corage." +} \ No newline at end of file diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000..41a1051 Binary files /dev/null and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/build/tmp/createMinecraftArtifacts/nfrt-problem-report.json b/build/tmp/createMinecraftArtifacts/nfrt-problem-report.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/build/tmp/createMinecraftArtifacts/nfrt-problem-report.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/build/tmp/createMinecraftArtifacts/nfrt_artifact_manifest.properties b/build/tmp/createMinecraftArtifacts/nfrt_artifact_manifest.properties new file mode 100644 index 0000000..a460ed8 --- /dev/null +++ b/build/tmp/createMinecraftArtifacts/nfrt_artifact_manifest.properties @@ -0,0 +1,132 @@ +# +#Wed Oct 08 05:17:45 CEST 2025 +ca.weblite\:java-objc-bridge\:1.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\ca.weblite\\java-objc-bridge\\1.1\\1227f9e0666314f9de41477e3ec277e542ed7f7b\\java-objc-bridge-1.1.jar +com.electronwill.night-config\:core\:3.8.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.electronwill.night-config\\core\\3.8.3\\b442a95f09e349927f5a945ecb594455870fcf4f\\core-3.8.3.jar +com.electronwill.night-config\:toml\:3.8.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.electronwill.night-config\\toml\\3.8.3\\90b2fd6efcb4a7d5b9810cf78f9d824994d717f2\\toml-3.8.3.jar +com.github.oshi\:oshi-core\:6.4.10=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.github.oshi\\oshi-core\\6.4.10\\b1d8ab82d11d92fd639b56d639f8f46f739dd5fa\\oshi-core-6.4.10.jar +com.google.code.findbugs\:jsr305\:3.0.2=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.code.findbugs\\jsr305\\3.0.2\\25ea2e8b0c338a877313bd4672d3fe056ea78f0d\\jsr305-3.0.2.jar +com.google.code.gson\:gson\:2.10.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.code.gson\\gson\\2.10.1\\b3add478d4382b78ea20b1671390a858002feb6c\\gson-2.10.1.jar +com.google.errorprone\:error_prone_annotations\:2.18.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.errorprone\\error_prone_annotations\\2.18.0\\89b684257096f548fa39a7df9fdaa409d4d4df91\\error_prone_annotations-2.18.0.jar +com.google.guava\:failureaccess\:1.0.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.guava\\failureaccess\\1.0.1\\1dcf1de382a0bf95a3d8b0849546c88bac1292c9\\failureaccess-1.0.1.jar +com.google.guava\:guava\:32.1.2-jre=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.guava\\guava\\32.1.2-jre\\5e64ec7e056456bef3a4bc4c6fdaef71e8ab6318\\guava-32.1.2-jre.jar +com.google.guava\:listenablefuture\:9999.0-empty-to-avoid-conflict-with-guava=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.guava\\listenablefuture\\9999.0-empty-to-avoid-conflict-with-guava\\b421526c5f297295adef1c886e5246c39d4ac629\\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar +com.google.j2objc\:j2objc-annotations\:2.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.j2objc\\j2objc-annotations\\2.8\\c85270e307e7b822f1086b93689124b89768e273\\j2objc-annotations-2.8.jar +com.ibm.icu\:icu4j\:73.2=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.ibm.icu\\icu4j\\73.2\\61ad4ef7f9131fcf6d25c34b817f90d6da06c9e9\\icu4j-73.2.jar +com.machinezoo.noexception\:noexception\:1.7.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.machinezoo.noexception\\noexception\\1.7.1\\b65330c98e38a1f915fa54a6e5eca496505e3f0a\\noexception-1.7.1.jar +com.mojang\:authlib\:6.0.54=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\authlib\\6.0.54\\de8bc95660e1b2fe8793fd427a7a10dcec5b3ea7\\authlib-6.0.54.jar +com.mojang\:blocklist\:1.0.10=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\blocklist\\1.0.10\\5c685c5ffa94c4cd39496c7184c1d122e515ecef\\blocklist-1.0.10.jar +com.mojang\:brigadier\:1.3.10=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\brigadier\\1.3.10\\d15b53a14cf20fdcaa98f731af5dda654452c010\\brigadier-1.3.10.jar +com.mojang\:datafixerupper\:8.0.16=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\datafixerupper\\8.0.16\\67d4de6d7f95d89bcf5862995fb854ebaec02a34\\datafixerupper-8.0.16.jar +com.mojang\:logging\:1.2.7=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\logging\\1.2.7\\24cb95ffb0e3433fd6e844c04e68009e504ca1c0\\logging-1.2.7.jar +com.mojang\:patchy\:2.2.10=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\patchy\\2.2.10\\da05971b07cbb379d002cf7eaec6a2048211fefc\\patchy-2.2.10.jar +com.mojang\:text2speech\:1.17.9=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\text2speech\\1.17.9\\3cad216e3a7f0c19b4b394388bc9ffc446f13b14\\text2speech-1.17.9.jar +commons-codec\:commons-codec\:1.16.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\commons-codec\\commons-codec\\1.16.0\\4e3eb3d79888d76b54e28b350915b5dc3919c9de\\commons-codec-1.16.0.jar +commons-io\:commons-io\:2.15.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\commons-io\\commons-io\\2.15.1\\f11560da189ab563a5c8e351941415430e9304ea\\commons-io-2.15.1.jar +commons-logging\:commons-logging\:1.2=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\commons-logging\\commons-logging\\1.2\\4bfc12adfe4842bf07b657f0369c4cb522955686\\commons-logging-1.2.jar +cpw.mods\:bootstraplauncher\:2.0.2=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\bootstraplauncher\\2.0.2\\1a2d076cbc33b0520cbacd591224427b2a20047d\\bootstraplauncher-2.0.2.jar +cpw.mods\:modlauncher\:11.0.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\modlauncher\\11.0.5\\b8f0d49294f733fdb6173931b263553e943dc950\\modlauncher-11.0.5.jar +cpw.mods\:securejarhandler\:3.0.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\securejarhandler\\3.0.8\\c0ef95cecd8699a0449053ac7d9c160748d902cd\\securejarhandler-3.0.8.jar +io.codechicken\:DiffPatch\:2.0.0.36\:all=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.codechicken\\DiffPatch\\2.0.0.36\\5b32f9baa0c0371c0dc80a3b88794960af0c6b44\\DiffPatch-2.0.0.36-all.jar +io.github.llamalad7\:mixinextras-neoforge\:0.5.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.github.llamalad7\\mixinextras-neoforge\\0.5.0\\d734b83ce6542bb70ea31755c1595b88992dbe65\\mixinextras-neoforge-0.5.0.jar +io.netty\:netty-buffer\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-buffer\\4.1.97.Final\\f8f3d8644afa5e6e1a40a3a6aeb9d9aa970ecb4f\\netty-buffer-4.1.97.Final.jar +io.netty\:netty-codec\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-codec\\4.1.97.Final\\384ba4d75670befbedb45c4d3b497a93639c206d\\netty-codec-4.1.97.Final.jar +io.netty\:netty-common\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-common\\4.1.97.Final\\7cceacaf11df8dc63f23d0fb58e9d4640fc88404\\netty-common-4.1.97.Final.jar +io.netty\:netty-handler\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-handler\\4.1.97.Final\\abb86c6906bf512bf2b797a41cd7d2e8d3cd7c36\\netty-handler-4.1.97.Final.jar +io.netty\:netty-resolver\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-resolver\\4.1.97.Final\\cec8348108dc76c47cf87c669d514be52c922144\\netty-resolver-4.1.97.Final.jar +io.netty\:netty-transport-classes-epoll\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-transport-classes-epoll\\4.1.97.Final\\795da37ded759e862457a82d9d92c4d39ce8ecee\\netty-transport-classes-epoll-4.1.97.Final.jar +io.netty\:netty-transport-native-unix-common\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-transport-native-unix-common\\4.1.97.Final\\d469d84265ab70095b01b40886cabdd433b6e664\\netty-transport-native-unix-common-4.1.97.Final.jar +io.netty\:netty-transport\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-transport\\4.1.97.Final\\f37380d23c9bb079bc702910833b2fd532c9abd0\\netty-transport-4.1.97.Final.jar +it.unimi.dsi\:fastutil\:8.3.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\it.unimi.dsi\\fastutil\\8.3.1\\ff33b340d60b81f4c1015fa8008bb30ff0a0d53b\\fastutil-8.3.1.jar +it.unimi.dsi\:fastutil\:8.5.12=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\it.unimi.dsi\\fastutil\\8.5.12\\c24946d46824bd528054bface3231d2ecb7e95e8\\fastutil-8.5.12.jar +net.covers1624\:Quack\:0.4.10.101=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.covers1624\\Quack\\0.4.10.101\\970b7f652b5c40c893ef9a4bf13a97a291587d74\\Quack-0.4.10.101.jar +net.fabricmc\:sponge-mixin\:0.15.2+mixin.0.8.7=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.fabricmc\\sponge-mixin\\0.15.2+mixin.0.8.7\\2af2f021d8e02a0220dc27a7a72b4666d66d44ca\\sponge-mixin-0.15.2+mixin.0.8.7.jar +net.java.dev.jna\:jna-platform\:5.14.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.java.dev.jna\\jna-platform\\5.14.0\\28934d48aed814f11e4c584da55c49fa7032b31b\\jna-platform-5.14.0.jar +net.java.dev.jna\:jna\:5.14.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.java.dev.jna\\jna\\5.14.0\\67bf3eaea4f0718cb376a181a629e5f88fa1c9dd\\jna-5.14.0.jar +net.jodah\:typetools\:0.6.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.jodah\\typetools\\0.6.3\\a01aaa6ddaea9ec07ec4f209487b7a46a526283a\\typetools-0.6.3.jar +net.minecraftforge\:mergetool\:1.1.7\:fatjar=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.minecraftforge\\mergetool\\1.1.7\\3d41564f78f123d64573cae7948014baf3aaba3f\\mergetool-1.1.7-fatjar.jar +net.minecraftforge\:srgutils\:0.4.15=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.minecraftforge\\srgutils\\0.4.15\\ca408b131759478f164e010fae0d73997e125fb5\\srgutils-0.4.15.jar +net.minecrell\:terminalconsoleappender\:1.3.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.minecrell\\terminalconsoleappender\\1.3.0\\b562e9bb61235c9520e26282cdee71f8f802d1fc\\terminalconsoleappender-1.3.0.jar +net.neoforged.accesstransformers\:at-modlauncher\:10.0.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged.accesstransformers\\at-modlauncher\\10.0.1\\5aba50202aceead086bc09fbc2751c9f05cb4890\\at-modlauncher-10.0.1.jar +net.neoforged.fancymodloader\:earlydisplay\:4.0.41=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged.fancymodloader\\earlydisplay\\4.0.41\\53dfbd387ed1b88c7d144bdb6551b7f57d5da6d7\\earlydisplay-4.0.41.jar +net.neoforged.fancymodloader\:loader\:4.0.41=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged.fancymodloader\\loader\\4.0.41\\3aebc81b9347fa87bb629ffaed20276f2a4c944e\\loader-4.0.41.jar +net.neoforged.installertools\:installertools\:2.1.2\:fatjar=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged.installertools\\installertools\\2.1.2\\62740d5aa8f75f4a4d542d363bdda5b64a198f7a\\installertools-2.1.2-fatjar.jar +net.neoforged.jst\:jst-cli-bundle\:1.0.74=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged.jst\\jst-cli-bundle\\1.0.74\\4b55f9a755ff69d480d3fb5d68c40662f5265b7e\\jst-cli-bundle-1.0.74.jar +net.neoforged\:AutoRenamingTool\:2.0.3\:all=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\AutoRenamingTool\\2.0.3\\d9890c71b4366f886c2b1006782043a6a6816eb6\\AutoRenamingTool-2.0.3-all.jar +net.neoforged\:JarJarFileSystems\:0.4.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\JarJarFileSystems\\0.4.1\\78f59f89defcd032ed788b151ca6a0d40ace796a\\JarJarFileSystems-0.4.1.jar +net.neoforged\:JarJarMetadata\:0.4.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\JarJarMetadata\\0.4.1\\f8da03683dc81694556dc3e177c5e3bb77ae6fcb\\JarJarMetadata-0.4.1.jar +net.neoforged\:JarJarSelector\:0.4.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\JarJarSelector\\0.4.1\\fb3cc7a58af22ad2880adb98af6d518128c47dae\\JarJarSelector-0.4.1.jar +net.neoforged\:accesstransformers\:10.0.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\accesstransformers\\10.0.1\\fd83b5725f76eae9115e9355fa1c456a6a441400\\accesstransformers-10.0.1.jar +net.neoforged\:bus\:8.0.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\bus\\8.0.5\\5b2d33285ab5d1554e9798ad98c40d6ea3868bd5\\bus-8.0.5.jar +net.neoforged\:coremods\:7.0.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\coremods\\7.0.3\\9147e6f638b4272b3bd5fc8f92ad37802512c6c\\coremods-7.0.3.jar +net.neoforged\:mergetool\:2.0.0\:api=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\mergetool\\2.0.0\\52fe1949be64e3303aabaaa21e315f551db9c9f4\\mergetool-2.0.0-api.jar +net.neoforged\:mergetool\:2.0.3\:api=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\mergetool\\2.0.3\\1275202cbbb248f49345cf6787ce299afd9a02fb\\mergetool-2.0.3-api.jar +net.neoforged\:mergetool\:2.0.3\:fatjar=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\mergetool\\2.0.3\\85c096b0155715275f84922d41462484c9a0285c\\mergetool-2.0.3-fatjar.jar +net.neoforged\:neoforge\:21.1.208\:sources=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\neoforge\\21.1.208\\9a95d45b028b825d956fde60435baa4c26115afe\\neoforge-21.1.208-sources.jar +net.neoforged\:neoforge\:21.1.208\:universal=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\neoforge\\21.1.208\\6ba51e7eb3315ea421d4392bb4a3b69c5fbe2caa\\neoforge-21.1.208-universal.jar +net.neoforged\:neoforge\:21.1.208\:userdev=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\neoforge\\21.1.208\\9855f11263143135035746877eef33fd1025f457\\neoforge-21.1.208-userdev.jar +net.neoforged\:neoform\:1.21.1-20240808.144430@zip=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\neoform\\1.21.1-20240808.144430\\811e2bd86fa2cda2812e5e8e51d718ea8bd6d3f4\\neoform-1.21.1-20240808.144430.zip +net.sf.jopt-simple\:jopt-simple\:5.0.4=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.sf.jopt-simple\\jopt-simple\\5.0.4\\4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c\\jopt-simple-5.0.4.jar +org.antlr\:antlr4-runtime\:4.13.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.antlr\\antlr4-runtime\\4.13.1\\17125bae1d965624e265ef49552f6465a2bfa307\\antlr4-runtime-4.13.1.jar +org.apache.commons\:commons-compress\:1.18=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.commons\\commons-compress\\1.18\\1191f9f2bc0c47a8cce69193feb1ff0a8bcb37d5\\commons-compress-1.18.jar +org.apache.commons\:commons-compress\:1.26.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.commons\\commons-compress\\1.26.0\\659feffdd12280201c8aacb8f7be94f9a883c824\\commons-compress-1.26.0.jar +org.apache.commons\:commons-lang3\:3.14.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.commons\\commons-lang3\\3.14.0\\1ed471194b02f2c6cb734a0cd6f6f107c673afae\\commons-lang3-3.14.0.jar +org.apache.commons\:commons-lang3\:3.9=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.commons\\commons-lang3\\3.9\\122c7cee69b53ed4a7681c03d4ee4c0e2765da5\\commons-lang3-3.9.jar +org.apache.httpcomponents\:httpclient\:4.5.13=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.httpcomponents\\httpclient\\4.5.13\\e5f6cae5ca7ecaac1ec2827a9e2d65ae2869cada\\httpclient-4.5.13.jar +org.apache.httpcomponents\:httpcore\:4.4.16=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.httpcomponents\\httpcore\\4.4.16\\51cf043c87253c9f58b539c9f7e44c8894223850\\httpcore-4.4.16.jar +org.apache.logging.log4j\:log4j-api\:2.22.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-api\\2.22.1\\bea6fede6328fabafd7e68363161a7ea6605abd1\\log4j-api-2.22.1.jar +org.apache.logging.log4j\:log4j-core\:2.22.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-core\\2.22.1\\7183a25510a02ad00cc6a95d3b3d2a7d3c5a8dc4\\log4j-core-2.22.1.jar +org.apache.logging.log4j\:log4j-slf4j2-impl\:2.22.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-slf4j2-impl\\2.22.1\\d7e6693c2606cb7e7335047d7bb96dec52db5665\\log4j-slf4j2-impl-2.22.1.jar +org.apache.maven\:maven-artifact\:3.8.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.maven\\maven-artifact\\3.8.5\\4433f50c07debefaed0553bd0068f4f48d449313\\maven-artifact-3.8.5.jar +org.checkerframework\:checker-qual\:3.33.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.checkerframework\\checker-qual\\3.33.0\\de2b60b62da487644fc11f734e73c8b0b431238f\\checker-qual-3.33.0.jar +org.codehaus.plexus\:plexus-utils\:3.3.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.codehaus.plexus\\plexus-utils\\3.3.0\\cf43b5391de623b36fe066a21127baef82c64022\\plexus-utils-3.3.0.jar +org.jcraft\:jorbis\:0.0.17=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.jcraft\\jorbis\\0.0.17\\8872d22b293e8f5d7d56ff92be966e6dc28ebdc6\\jorbis-0.0.17.jar +org.jetbrains\:annotations\:24.1.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.jetbrains\\annotations\\24.1.0\\7af6a669488450c4a07c2c3254e2151df42d7d04\\annotations-24.1.0.jar +org.jline\:jline-reader\:3.20.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-reader\\3.20.0\\8f15415b022a25b473e8e16c28ae913186ffb9c4\\jline-reader-3.20.0.jar +org.jline\:jline-terminal\:3.20.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-terminal\\3.20.0\\d0ddcc708ddf527a3454c941b7b9225cc83a15ff\\jline-terminal-3.20.0.jar +org.joml\:joml\:1.10.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.joml\\joml\\1.10.5\\22566d58af70ad3d72308bab63b8339906deb649\\joml-1.10.5.jar +org.lwjgl\:lwjgl-freetype\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-freetype\\3.3.3\\a0db6c84a8becc8ca05f9dbfa985edc348a824c7\\lwjgl-freetype-3.3.3.jar +org.lwjgl\:lwjgl-freetype\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-freetype\\3.3.3\\81091b006dbb43fab04c8c638e9ac87c51b4096d\\lwjgl-freetype-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-freetype\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-freetype\\3.3.3\\82028265a0a2ff33523ca75137ada7dc176e5210\\lwjgl-freetype-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-freetype\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-freetype\\3.3.3\\15a8c1de7f51d07a92eae7ce1222557073a0c0c3\\lwjgl-freetype-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl-glfw\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-glfw\\3.3.3\\efa1eb78c5ccd840e9f329717109b5e892d72f8e\\lwjgl-glfw-3.3.3.jar +org.lwjgl\:lwjgl-glfw\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-glfw\\3.3.3\\e449e28b4891fc423c54c85fbc5bb0b9efece67a\\lwjgl-glfw-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-glfw\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-glfw\\3.3.3\\f27018dc74f6289574502b46cce55d52817554e2\\lwjgl-glfw-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-glfw\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-glfw\\3.3.3\\32334f3fd5270a59bad9939a93115acb6de36dcf\\lwjgl-glfw-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl-jemalloc\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-jemalloc\\3.3.3\\b543467b7ff3c6920539a88ee602d34098628be5\\lwjgl-jemalloc-3.3.3.jar +org.lwjgl\:lwjgl-jemalloc\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-jemalloc\\3.3.3\\426222fc027602a5f21b9c0fe79cde6a4c7a011f\\lwjgl-jemalloc-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-jemalloc\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-jemalloc\\3.3.3\\ba1f3fed0ee4be0217eaa41c5bbfb4b9b1383c33\\lwjgl-jemalloc-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-jemalloc\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-jemalloc\\3.3.3\\f6063b6e0f23be483c5c88d84ce51b39dc69126c\\lwjgl-jemalloc-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl-openal\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-openal\\3.3.3\\daada81ceb5fc0c291fbfdd4433cb8d9423577f2\\lwjgl-openal-3.3.3.jar +org.lwjgl\:lwjgl-openal\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-openal\\3.3.3\\cf83862ae95d98496b26915024c7e666d8ab1c8f\\lwjgl-openal-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-openal\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-openal\\3.3.3\\8e0615235116b9e4160dfe87bec90f5f6378bf72\\lwjgl-openal-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-openal\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-openal\\3.3.3\\87b8d5050e3adb46bb58fe1cb2669a4a48fce10d\\lwjgl-openal-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl-opengl\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-opengl\\3.3.3\\2f6b0147078396a58979125a4c947664e98293a\\lwjgl-opengl-3.3.3.jar +org.lwjgl\:lwjgl-opengl\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-opengl\\3.3.3\\e6c1eec8be8a71951b830a4d69efc01c6531900c\\lwjgl-opengl-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-opengl\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-opengl\\3.3.3\\65e956d3735a1abdc82eff4baec1b61174697d4b\\lwjgl-opengl-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-opengl\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-opengl\\3.3.3\\d32d833dcaa2f355a886eaf21f0408b5f03241d\\lwjgl-opengl-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl-stb\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-stb\\3.3.3\\25dd6161988d7e65f71d5065c99902402ee32746\\lwjgl-stb-3.3.3.jar +org.lwjgl\:lwjgl-stb\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-stb\\3.3.3\\1d9facdf6541de114b0f963be33505b7679c78cb\\lwjgl-stb-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-stb\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-stb\\3.3.3\\a584ab44de569708871f0a79561f4d8c37487f2c\\lwjgl-stb-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-stb\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-stb\\3.3.3\\b5c874687b9aac1a936501d4ed2c49567fd1b575\\lwjgl-stb-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl-tinyfd\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-tinyfd\\3.3.3\\82d755ca94b102e9ca77283b9e2dc46d1b15fbe5\\lwjgl-tinyfd-3.3.3.jar +org.lwjgl\:lwjgl-tinyfd\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-tinyfd\\3.3.3\\a6697981b0449a5087c1d546fc08b4f73e8f98c9\\lwjgl-tinyfd-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-tinyfd\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-tinyfd\\3.3.3\\a88c494f3006eb91a7433b12a3a55a9a6c20788b\\lwjgl-tinyfd-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-tinyfd\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-tinyfd\\3.3.3\\c336c84ee88cccb495c6ffa112395509e7378e8a\\lwjgl-tinyfd-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl\\3.3.3\\29589b5f87ed335a6c7e7ee6a5775f81f97ecb84\\lwjgl-3.3.3.jar +org.lwjgl\:lwjgl\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl\\3.3.3\\a5ed18a2b82fc91b81f40d717cb1f64c9dcb0540\\lwjgl-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl\\3.3.3\\e9aca8c5479b520a2a7f0d542a118140e812c5e8\\lwjgl-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl\\3.3.3\\9e670718e050aeaeea0c2d5b907cffb142f2e58f\\lwjgl-3.3.3-natives-windows-x86.jar +org.lz4\:lz4-java\:1.8.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lz4\\lz4-java\\1.8.0\\4b986a99445e49ea5fbf5d149c4b63f6ed6c6780\\lz4-java-1.8.0.jar +org.openjdk.nashorn\:nashorn-core\:15.4=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.openjdk.nashorn\\nashorn-core\\15.4\\f67f5ffaa5f5130cf6fb9b133da00c7df3b532a5\\nashorn-core-15.4.jar +org.ow2.asm\:asm-analysis\:9.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.5\\490bacc77de7cbc0be1a30bb3471072d705be4a4\\asm-analysis-9.5.jar +org.ow2.asm\:asm-analysis\:9.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.8\\b9747a320844b6cb1eacd90d8ecfd260a16c01d3\\asm-analysis-9.8.jar +org.ow2.asm\:asm-commons\:9.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-commons\\9.8\\36e4d212970388e5bd2c5180292012502df461bb\\asm-commons-9.8.jar +org.ow2.asm\:asm-tree\:9.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.5\\fd33c8b6373abaa675be407082fdfda35021254a\\asm-tree-9.5.jar +org.ow2.asm\:asm-tree\:9.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.8\\18419ca5b77a2f81097c741e7872e6ab8d2f40d\\asm-tree-9.8.jar +org.ow2.asm\:asm-util\:9.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.5\\64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe\\asm-util-9.5.jar +org.ow2.asm\:asm-util\:9.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.8\\395f1c1f035258511f27bc9b2583d76e4b143f59\\asm-util-9.8.jar +org.ow2.asm\:asm\:9.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.5\\dc6ea1875f4d64fbc85e1691c95b96a3d8569c90\\asm-9.5.jar +org.ow2.asm\:asm\:9.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.8\\dc19ecb3f7889b7860697215cae99c0f9b6f6b4b\\asm-9.8.jar +org.slf4j\:slf4j-api\:2.0.9=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.slf4j\\slf4j-api\\2.0.9\\7cf2726fdcfbc8610f9a71fb3ed639871f315340\\slf4j-api-2.0.9.jar +org.tukaani\:xz\:1.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.tukaani\\xz\\1.8\\c4f7d054303948eb6a4066194253886c8af07128\\xz-1.8.jar +org.vineflower\:vineflower\:1.10.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.vineflower\\vineflower\\1.10.1\\4f48c5947b21f9ebc743e7c80215ee839d3dc668\\vineflower-1.10.1.jar diff --git a/build/tmp/downloadAssets/nfrt_artifact_manifest.properties b/build/tmp/downloadAssets/nfrt_artifact_manifest.properties new file mode 100644 index 0000000..9dd4dc7 --- /dev/null +++ b/build/tmp/downloadAssets/nfrt_artifact_manifest.properties @@ -0,0 +1,132 @@ +# +#Wed Oct 08 05:17:47 CEST 2025 +ca.weblite\:java-objc-bridge\:1.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\ca.weblite\\java-objc-bridge\\1.1\\1227f9e0666314f9de41477e3ec277e542ed7f7b\\java-objc-bridge-1.1.jar +com.electronwill.night-config\:core\:3.8.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.electronwill.night-config\\core\\3.8.3\\b442a95f09e349927f5a945ecb594455870fcf4f\\core-3.8.3.jar +com.electronwill.night-config\:toml\:3.8.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.electronwill.night-config\\toml\\3.8.3\\90b2fd6efcb4a7d5b9810cf78f9d824994d717f2\\toml-3.8.3.jar +com.github.oshi\:oshi-core\:6.4.10=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.github.oshi\\oshi-core\\6.4.10\\b1d8ab82d11d92fd639b56d639f8f46f739dd5fa\\oshi-core-6.4.10.jar +com.google.code.findbugs\:jsr305\:3.0.2=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.code.findbugs\\jsr305\\3.0.2\\25ea2e8b0c338a877313bd4672d3fe056ea78f0d\\jsr305-3.0.2.jar +com.google.code.gson\:gson\:2.10.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.code.gson\\gson\\2.10.1\\b3add478d4382b78ea20b1671390a858002feb6c\\gson-2.10.1.jar +com.google.errorprone\:error_prone_annotations\:2.18.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.errorprone\\error_prone_annotations\\2.18.0\\89b684257096f548fa39a7df9fdaa409d4d4df91\\error_prone_annotations-2.18.0.jar +com.google.guava\:failureaccess\:1.0.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.guava\\failureaccess\\1.0.1\\1dcf1de382a0bf95a3d8b0849546c88bac1292c9\\failureaccess-1.0.1.jar +com.google.guava\:guava\:32.1.2-jre=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.guava\\guava\\32.1.2-jre\\5e64ec7e056456bef3a4bc4c6fdaef71e8ab6318\\guava-32.1.2-jre.jar +com.google.guava\:listenablefuture\:9999.0-empty-to-avoid-conflict-with-guava=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.guava\\listenablefuture\\9999.0-empty-to-avoid-conflict-with-guava\\b421526c5f297295adef1c886e5246c39d4ac629\\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar +com.google.j2objc\:j2objc-annotations\:2.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.google.j2objc\\j2objc-annotations\\2.8\\c85270e307e7b822f1086b93689124b89768e273\\j2objc-annotations-2.8.jar +com.ibm.icu\:icu4j\:73.2=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.ibm.icu\\icu4j\\73.2\\61ad4ef7f9131fcf6d25c34b817f90d6da06c9e9\\icu4j-73.2.jar +com.machinezoo.noexception\:noexception\:1.7.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.machinezoo.noexception\\noexception\\1.7.1\\b65330c98e38a1f915fa54a6e5eca496505e3f0a\\noexception-1.7.1.jar +com.mojang\:authlib\:6.0.54=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\authlib\\6.0.54\\de8bc95660e1b2fe8793fd427a7a10dcec5b3ea7\\authlib-6.0.54.jar +com.mojang\:blocklist\:1.0.10=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\blocklist\\1.0.10\\5c685c5ffa94c4cd39496c7184c1d122e515ecef\\blocklist-1.0.10.jar +com.mojang\:brigadier\:1.3.10=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\brigadier\\1.3.10\\d15b53a14cf20fdcaa98f731af5dda654452c010\\brigadier-1.3.10.jar +com.mojang\:datafixerupper\:8.0.16=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\datafixerupper\\8.0.16\\67d4de6d7f95d89bcf5862995fb854ebaec02a34\\datafixerupper-8.0.16.jar +com.mojang\:logging\:1.2.7=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\logging\\1.2.7\\24cb95ffb0e3433fd6e844c04e68009e504ca1c0\\logging-1.2.7.jar +com.mojang\:patchy\:2.2.10=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\patchy\\2.2.10\\da05971b07cbb379d002cf7eaec6a2048211fefc\\patchy-2.2.10.jar +com.mojang\:text2speech\:1.17.9=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\com.mojang\\text2speech\\1.17.9\\3cad216e3a7f0c19b4b394388bc9ffc446f13b14\\text2speech-1.17.9.jar +commons-codec\:commons-codec\:1.16.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\commons-codec\\commons-codec\\1.16.0\\4e3eb3d79888d76b54e28b350915b5dc3919c9de\\commons-codec-1.16.0.jar +commons-io\:commons-io\:2.15.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\commons-io\\commons-io\\2.15.1\\f11560da189ab563a5c8e351941415430e9304ea\\commons-io-2.15.1.jar +commons-logging\:commons-logging\:1.2=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\commons-logging\\commons-logging\\1.2\\4bfc12adfe4842bf07b657f0369c4cb522955686\\commons-logging-1.2.jar +cpw.mods\:bootstraplauncher\:2.0.2=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\bootstraplauncher\\2.0.2\\1a2d076cbc33b0520cbacd591224427b2a20047d\\bootstraplauncher-2.0.2.jar +cpw.mods\:modlauncher\:11.0.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\modlauncher\\11.0.5\\b8f0d49294f733fdb6173931b263553e943dc950\\modlauncher-11.0.5.jar +cpw.mods\:securejarhandler\:3.0.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\securejarhandler\\3.0.8\\c0ef95cecd8699a0449053ac7d9c160748d902cd\\securejarhandler-3.0.8.jar +io.codechicken\:DiffPatch\:2.0.0.36\:all=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.codechicken\\DiffPatch\\2.0.0.36\\5b32f9baa0c0371c0dc80a3b88794960af0c6b44\\DiffPatch-2.0.0.36-all.jar +io.github.llamalad7\:mixinextras-neoforge\:0.5.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.github.llamalad7\\mixinextras-neoforge\\0.5.0\\d734b83ce6542bb70ea31755c1595b88992dbe65\\mixinextras-neoforge-0.5.0.jar +io.netty\:netty-buffer\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-buffer\\4.1.97.Final\\f8f3d8644afa5e6e1a40a3a6aeb9d9aa970ecb4f\\netty-buffer-4.1.97.Final.jar +io.netty\:netty-codec\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-codec\\4.1.97.Final\\384ba4d75670befbedb45c4d3b497a93639c206d\\netty-codec-4.1.97.Final.jar +io.netty\:netty-common\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-common\\4.1.97.Final\\7cceacaf11df8dc63f23d0fb58e9d4640fc88404\\netty-common-4.1.97.Final.jar +io.netty\:netty-handler\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-handler\\4.1.97.Final\\abb86c6906bf512bf2b797a41cd7d2e8d3cd7c36\\netty-handler-4.1.97.Final.jar +io.netty\:netty-resolver\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-resolver\\4.1.97.Final\\cec8348108dc76c47cf87c669d514be52c922144\\netty-resolver-4.1.97.Final.jar +io.netty\:netty-transport-classes-epoll\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-transport-classes-epoll\\4.1.97.Final\\795da37ded759e862457a82d9d92c4d39ce8ecee\\netty-transport-classes-epoll-4.1.97.Final.jar +io.netty\:netty-transport-native-unix-common\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-transport-native-unix-common\\4.1.97.Final\\d469d84265ab70095b01b40886cabdd433b6e664\\netty-transport-native-unix-common-4.1.97.Final.jar +io.netty\:netty-transport\:4.1.97.Final=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\io.netty\\netty-transport\\4.1.97.Final\\f37380d23c9bb079bc702910833b2fd532c9abd0\\netty-transport-4.1.97.Final.jar +it.unimi.dsi\:fastutil\:8.3.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\it.unimi.dsi\\fastutil\\8.3.1\\ff33b340d60b81f4c1015fa8008bb30ff0a0d53b\\fastutil-8.3.1.jar +it.unimi.dsi\:fastutil\:8.5.12=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\it.unimi.dsi\\fastutil\\8.5.12\\c24946d46824bd528054bface3231d2ecb7e95e8\\fastutil-8.5.12.jar +net.covers1624\:Quack\:0.4.10.101=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.covers1624\\Quack\\0.4.10.101\\970b7f652b5c40c893ef9a4bf13a97a291587d74\\Quack-0.4.10.101.jar +net.fabricmc\:sponge-mixin\:0.15.2+mixin.0.8.7=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.fabricmc\\sponge-mixin\\0.15.2+mixin.0.8.7\\2af2f021d8e02a0220dc27a7a72b4666d66d44ca\\sponge-mixin-0.15.2+mixin.0.8.7.jar +net.java.dev.jna\:jna-platform\:5.14.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.java.dev.jna\\jna-platform\\5.14.0\\28934d48aed814f11e4c584da55c49fa7032b31b\\jna-platform-5.14.0.jar +net.java.dev.jna\:jna\:5.14.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.java.dev.jna\\jna\\5.14.0\\67bf3eaea4f0718cb376a181a629e5f88fa1c9dd\\jna-5.14.0.jar +net.jodah\:typetools\:0.6.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.jodah\\typetools\\0.6.3\\a01aaa6ddaea9ec07ec4f209487b7a46a526283a\\typetools-0.6.3.jar +net.minecraftforge\:mergetool\:1.1.7\:fatjar=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.minecraftforge\\mergetool\\1.1.7\\3d41564f78f123d64573cae7948014baf3aaba3f\\mergetool-1.1.7-fatjar.jar +net.minecraftforge\:srgutils\:0.4.15=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.minecraftforge\\srgutils\\0.4.15\\ca408b131759478f164e010fae0d73997e125fb5\\srgutils-0.4.15.jar +net.minecrell\:terminalconsoleappender\:1.3.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.minecrell\\terminalconsoleappender\\1.3.0\\b562e9bb61235c9520e26282cdee71f8f802d1fc\\terminalconsoleappender-1.3.0.jar +net.neoforged.accesstransformers\:at-modlauncher\:10.0.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged.accesstransformers\\at-modlauncher\\10.0.1\\5aba50202aceead086bc09fbc2751c9f05cb4890\\at-modlauncher-10.0.1.jar +net.neoforged.fancymodloader\:earlydisplay\:4.0.41=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged.fancymodloader\\earlydisplay\\4.0.41\\53dfbd387ed1b88c7d144bdb6551b7f57d5da6d7\\earlydisplay-4.0.41.jar +net.neoforged.fancymodloader\:loader\:4.0.41=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged.fancymodloader\\loader\\4.0.41\\3aebc81b9347fa87bb629ffaed20276f2a4c944e\\loader-4.0.41.jar +net.neoforged.installertools\:installertools\:2.1.2\:fatjar=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged.installertools\\installertools\\2.1.2\\62740d5aa8f75f4a4d542d363bdda5b64a198f7a\\installertools-2.1.2-fatjar.jar +net.neoforged.jst\:jst-cli-bundle\:1.0.74=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged.jst\\jst-cli-bundle\\1.0.74\\4b55f9a755ff69d480d3fb5d68c40662f5265b7e\\jst-cli-bundle-1.0.74.jar +net.neoforged\:AutoRenamingTool\:2.0.3\:all=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\AutoRenamingTool\\2.0.3\\d9890c71b4366f886c2b1006782043a6a6816eb6\\AutoRenamingTool-2.0.3-all.jar +net.neoforged\:JarJarFileSystems\:0.4.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\JarJarFileSystems\\0.4.1\\78f59f89defcd032ed788b151ca6a0d40ace796a\\JarJarFileSystems-0.4.1.jar +net.neoforged\:JarJarMetadata\:0.4.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\JarJarMetadata\\0.4.1\\f8da03683dc81694556dc3e177c5e3bb77ae6fcb\\JarJarMetadata-0.4.1.jar +net.neoforged\:JarJarSelector\:0.4.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\JarJarSelector\\0.4.1\\fb3cc7a58af22ad2880adb98af6d518128c47dae\\JarJarSelector-0.4.1.jar +net.neoforged\:accesstransformers\:10.0.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\accesstransformers\\10.0.1\\fd83b5725f76eae9115e9355fa1c456a6a441400\\accesstransformers-10.0.1.jar +net.neoforged\:bus\:8.0.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\bus\\8.0.5\\5b2d33285ab5d1554e9798ad98c40d6ea3868bd5\\bus-8.0.5.jar +net.neoforged\:coremods\:7.0.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\coremods\\7.0.3\\9147e6f638b4272b3bd5fc8f92ad37802512c6c\\coremods-7.0.3.jar +net.neoforged\:mergetool\:2.0.0\:api=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\mergetool\\2.0.0\\52fe1949be64e3303aabaaa21e315f551db9c9f4\\mergetool-2.0.0-api.jar +net.neoforged\:mergetool\:2.0.3\:api=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\mergetool\\2.0.3\\1275202cbbb248f49345cf6787ce299afd9a02fb\\mergetool-2.0.3-api.jar +net.neoforged\:mergetool\:2.0.3\:fatjar=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\mergetool\\2.0.3\\85c096b0155715275f84922d41462484c9a0285c\\mergetool-2.0.3-fatjar.jar +net.neoforged\:neoforge\:21.1.208\:sources=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\neoforge\\21.1.208\\9a95d45b028b825d956fde60435baa4c26115afe\\neoforge-21.1.208-sources.jar +net.neoforged\:neoforge\:21.1.208\:universal=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\neoforge\\21.1.208\\6ba51e7eb3315ea421d4392bb4a3b69c5fbe2caa\\neoforge-21.1.208-universal.jar +net.neoforged\:neoforge\:21.1.208\:userdev=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\neoforge\\21.1.208\\9855f11263143135035746877eef33fd1025f457\\neoforge-21.1.208-userdev.jar +net.neoforged\:neoform\:1.21.1-20240808.144430@zip=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.neoforged\\neoform\\1.21.1-20240808.144430\\811e2bd86fa2cda2812e5e8e51d718ea8bd6d3f4\\neoform-1.21.1-20240808.144430.zip +net.sf.jopt-simple\:jopt-simple\:5.0.4=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\net.sf.jopt-simple\\jopt-simple\\5.0.4\\4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c\\jopt-simple-5.0.4.jar +org.antlr\:antlr4-runtime\:4.13.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.antlr\\antlr4-runtime\\4.13.1\\17125bae1d965624e265ef49552f6465a2bfa307\\antlr4-runtime-4.13.1.jar +org.apache.commons\:commons-compress\:1.18=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.commons\\commons-compress\\1.18\\1191f9f2bc0c47a8cce69193feb1ff0a8bcb37d5\\commons-compress-1.18.jar +org.apache.commons\:commons-compress\:1.26.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.commons\\commons-compress\\1.26.0\\659feffdd12280201c8aacb8f7be94f9a883c824\\commons-compress-1.26.0.jar +org.apache.commons\:commons-lang3\:3.14.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.commons\\commons-lang3\\3.14.0\\1ed471194b02f2c6cb734a0cd6f6f107c673afae\\commons-lang3-3.14.0.jar +org.apache.commons\:commons-lang3\:3.9=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.commons\\commons-lang3\\3.9\\122c7cee69b53ed4a7681c03d4ee4c0e2765da5\\commons-lang3-3.9.jar +org.apache.httpcomponents\:httpclient\:4.5.13=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.httpcomponents\\httpclient\\4.5.13\\e5f6cae5ca7ecaac1ec2827a9e2d65ae2869cada\\httpclient-4.5.13.jar +org.apache.httpcomponents\:httpcore\:4.4.16=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.httpcomponents\\httpcore\\4.4.16\\51cf043c87253c9f58b539c9f7e44c8894223850\\httpcore-4.4.16.jar +org.apache.logging.log4j\:log4j-api\:2.22.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-api\\2.22.1\\bea6fede6328fabafd7e68363161a7ea6605abd1\\log4j-api-2.22.1.jar +org.apache.logging.log4j\:log4j-core\:2.22.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-core\\2.22.1\\7183a25510a02ad00cc6a95d3b3d2a7d3c5a8dc4\\log4j-core-2.22.1.jar +org.apache.logging.log4j\:log4j-slf4j2-impl\:2.22.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-slf4j2-impl\\2.22.1\\d7e6693c2606cb7e7335047d7bb96dec52db5665\\log4j-slf4j2-impl-2.22.1.jar +org.apache.maven\:maven-artifact\:3.8.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.maven\\maven-artifact\\3.8.5\\4433f50c07debefaed0553bd0068f4f48d449313\\maven-artifact-3.8.5.jar +org.checkerframework\:checker-qual\:3.33.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.checkerframework\\checker-qual\\3.33.0\\de2b60b62da487644fc11f734e73c8b0b431238f\\checker-qual-3.33.0.jar +org.codehaus.plexus\:plexus-utils\:3.3.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.codehaus.plexus\\plexus-utils\\3.3.0\\cf43b5391de623b36fe066a21127baef82c64022\\plexus-utils-3.3.0.jar +org.jcraft\:jorbis\:0.0.17=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.jcraft\\jorbis\\0.0.17\\8872d22b293e8f5d7d56ff92be966e6dc28ebdc6\\jorbis-0.0.17.jar +org.jetbrains\:annotations\:24.1.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.jetbrains\\annotations\\24.1.0\\7af6a669488450c4a07c2c3254e2151df42d7d04\\annotations-24.1.0.jar +org.jline\:jline-reader\:3.20.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-reader\\3.20.0\\8f15415b022a25b473e8e16c28ae913186ffb9c4\\jline-reader-3.20.0.jar +org.jline\:jline-terminal\:3.20.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-terminal\\3.20.0\\d0ddcc708ddf527a3454c941b7b9225cc83a15ff\\jline-terminal-3.20.0.jar +org.joml\:joml\:1.10.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.joml\\joml\\1.10.5\\22566d58af70ad3d72308bab63b8339906deb649\\joml-1.10.5.jar +org.lwjgl\:lwjgl-freetype\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-freetype\\3.3.3\\a0db6c84a8becc8ca05f9dbfa985edc348a824c7\\lwjgl-freetype-3.3.3.jar +org.lwjgl\:lwjgl-freetype\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-freetype\\3.3.3\\81091b006dbb43fab04c8c638e9ac87c51b4096d\\lwjgl-freetype-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-freetype\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-freetype\\3.3.3\\82028265a0a2ff33523ca75137ada7dc176e5210\\lwjgl-freetype-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-freetype\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-freetype\\3.3.3\\15a8c1de7f51d07a92eae7ce1222557073a0c0c3\\lwjgl-freetype-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl-glfw\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-glfw\\3.3.3\\efa1eb78c5ccd840e9f329717109b5e892d72f8e\\lwjgl-glfw-3.3.3.jar +org.lwjgl\:lwjgl-glfw\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-glfw\\3.3.3\\e449e28b4891fc423c54c85fbc5bb0b9efece67a\\lwjgl-glfw-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-glfw\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-glfw\\3.3.3\\f27018dc74f6289574502b46cce55d52817554e2\\lwjgl-glfw-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-glfw\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-glfw\\3.3.3\\32334f3fd5270a59bad9939a93115acb6de36dcf\\lwjgl-glfw-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl-jemalloc\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-jemalloc\\3.3.3\\b543467b7ff3c6920539a88ee602d34098628be5\\lwjgl-jemalloc-3.3.3.jar +org.lwjgl\:lwjgl-jemalloc\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-jemalloc\\3.3.3\\426222fc027602a5f21b9c0fe79cde6a4c7a011f\\lwjgl-jemalloc-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-jemalloc\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-jemalloc\\3.3.3\\ba1f3fed0ee4be0217eaa41c5bbfb4b9b1383c33\\lwjgl-jemalloc-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-jemalloc\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-jemalloc\\3.3.3\\f6063b6e0f23be483c5c88d84ce51b39dc69126c\\lwjgl-jemalloc-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl-openal\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-openal\\3.3.3\\daada81ceb5fc0c291fbfdd4433cb8d9423577f2\\lwjgl-openal-3.3.3.jar +org.lwjgl\:lwjgl-openal\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-openal\\3.3.3\\cf83862ae95d98496b26915024c7e666d8ab1c8f\\lwjgl-openal-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-openal\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-openal\\3.3.3\\8e0615235116b9e4160dfe87bec90f5f6378bf72\\lwjgl-openal-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-openal\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-openal\\3.3.3\\87b8d5050e3adb46bb58fe1cb2669a4a48fce10d\\lwjgl-openal-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl-opengl\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-opengl\\3.3.3\\2f6b0147078396a58979125a4c947664e98293a\\lwjgl-opengl-3.3.3.jar +org.lwjgl\:lwjgl-opengl\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-opengl\\3.3.3\\e6c1eec8be8a71951b830a4d69efc01c6531900c\\lwjgl-opengl-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-opengl\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-opengl\\3.3.3\\65e956d3735a1abdc82eff4baec1b61174697d4b\\lwjgl-opengl-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-opengl\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-opengl\\3.3.3\\d32d833dcaa2f355a886eaf21f0408b5f03241d\\lwjgl-opengl-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl-stb\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-stb\\3.3.3\\25dd6161988d7e65f71d5065c99902402ee32746\\lwjgl-stb-3.3.3.jar +org.lwjgl\:lwjgl-stb\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-stb\\3.3.3\\1d9facdf6541de114b0f963be33505b7679c78cb\\lwjgl-stb-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-stb\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-stb\\3.3.3\\a584ab44de569708871f0a79561f4d8c37487f2c\\lwjgl-stb-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-stb\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-stb\\3.3.3\\b5c874687b9aac1a936501d4ed2c49567fd1b575\\lwjgl-stb-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl-tinyfd\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-tinyfd\\3.3.3\\82d755ca94b102e9ca77283b9e2dc46d1b15fbe5\\lwjgl-tinyfd-3.3.3.jar +org.lwjgl\:lwjgl-tinyfd\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-tinyfd\\3.3.3\\a6697981b0449a5087c1d546fc08b4f73e8f98c9\\lwjgl-tinyfd-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl-tinyfd\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-tinyfd\\3.3.3\\a88c494f3006eb91a7433b12a3a55a9a6c20788b\\lwjgl-tinyfd-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl-tinyfd\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl-tinyfd\\3.3.3\\c336c84ee88cccb495c6ffa112395509e7378e8a\\lwjgl-tinyfd-3.3.3-natives-windows-x86.jar +org.lwjgl\:lwjgl\:3.3.3=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl\\3.3.3\\29589b5f87ed335a6c7e7ee6a5775f81f97ecb84\\lwjgl-3.3.3.jar +org.lwjgl\:lwjgl\:3.3.3\:natives-windows=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl\\3.3.3\\a5ed18a2b82fc91b81f40d717cb1f64c9dcb0540\\lwjgl-3.3.3-natives-windows.jar +org.lwjgl\:lwjgl\:3.3.3\:natives-windows-arm64=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl\\3.3.3\\e9aca8c5479b520a2a7f0d542a118140e812c5e8\\lwjgl-3.3.3-natives-windows-arm64.jar +org.lwjgl\:lwjgl\:3.3.3\:natives-windows-x86=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lwjgl\\lwjgl\\3.3.3\\9e670718e050aeaeea0c2d5b907cffb142f2e58f\\lwjgl-3.3.3-natives-windows-x86.jar +org.lz4\:lz4-java\:1.8.0=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.lz4\\lz4-java\\1.8.0\\4b986a99445e49ea5fbf5d149c4b63f6ed6c6780\\lz4-java-1.8.0.jar +org.openjdk.nashorn\:nashorn-core\:15.4=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.openjdk.nashorn\\nashorn-core\\15.4\\f67f5ffaa5f5130cf6fb9b133da00c7df3b532a5\\nashorn-core-15.4.jar +org.ow2.asm\:asm-analysis\:9.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.5\\490bacc77de7cbc0be1a30bb3471072d705be4a4\\asm-analysis-9.5.jar +org.ow2.asm\:asm-analysis\:9.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.8\\b9747a320844b6cb1eacd90d8ecfd260a16c01d3\\asm-analysis-9.8.jar +org.ow2.asm\:asm-commons\:9.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-commons\\9.8\\36e4d212970388e5bd2c5180292012502df461bb\\asm-commons-9.8.jar +org.ow2.asm\:asm-tree\:9.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.5\\fd33c8b6373abaa675be407082fdfda35021254a\\asm-tree-9.5.jar +org.ow2.asm\:asm-tree\:9.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.8\\18419ca5b77a2f81097c741e7872e6ab8d2f40d\\asm-tree-9.8.jar +org.ow2.asm\:asm-util\:9.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.5\\64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe\\asm-util-9.5.jar +org.ow2.asm\:asm-util\:9.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.8\\395f1c1f035258511f27bc9b2583d76e4b143f59\\asm-util-9.8.jar +org.ow2.asm\:asm\:9.5=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.5\\dc6ea1875f4d64fbc85e1691c95b96a3d8569c90\\asm-9.5.jar +org.ow2.asm\:asm\:9.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.8\\dc19ecb3f7889b7860697215cae99c0f9b6f6b4b\\asm-9.8.jar +org.slf4j\:slf4j-api\:2.0.9=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.slf4j\\slf4j-api\\2.0.9\\7cf2726fdcfbc8610f9a71fb3ed639871f315340\\slf4j-api-2.0.9.jar +org.tukaani\:xz\:1.8=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.tukaani\\xz\\1.8\\c4f7d054303948eb6a4066194253886c8af07128\\xz-1.8.jar +org.vineflower\:vineflower\:1.10.1=C\:\\Users\\jessy\\.gradle\\caches\\modules-2\\files-2.1\\org.vineflower\\vineflower\\1.10.1\\4f48c5947b21f9ebc743e7c80215ee839d3dc668\\vineflower-1.10.1.jar diff --git a/build/tmp/jar/MANIFEST.MF b/build/tmp/jar/MANIFEST.MF new file mode 100644 index 0000000..59499bc --- /dev/null +++ b/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..13b122b --- /dev/null +++ b/gradle.properties @@ -0,0 +1,40 @@ +# Sets default memory used for gradle commands. Can be overridden by user or command line properties. +org.gradle.jvmargs=-Xmx2G +org.gradle.daemon=true +org.gradle.parallel=true +org.gradle.caching=true +org.gradle.configuration-cache=true +## Environment Properties +# You can find the latest versions here: https://projects.neoforged.net/neoforged/neoforge +# The Minecraft version must agree with the Neo version to get a valid artifact +minecraft_version=1.21.1 +# The Minecraft version range can use any release version of Minecraft as bounds. +# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly +# as they do not follow standard versioning conventions. +minecraft_version_range=[1.21.1,1.22) +# The Neo version must agree with the Minecraft version to get a valid artifact +neo_version=21.1.208 +# The Neo version range can use any version of Neo as bounds +neo_version_range=[21,) +# The loader version range can only use the major version of FML as bounds +loader_version_range=[4,) +parchment_minecraft_version=1.21.1 +parchment_mappings_version=2024.11.17 +## Mod Properties +# The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63} +# Must match the String constant located in the main mod class annotated with @Mod. +mod_id=commandify +# The human-readable display name for the mod. +mod_name=commandify +# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. +mod_license=All Rights Reserved +# The mod version. See https://semver.org/ +mod_version=1.0.1 +# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. +# This should match the base package used for the mod sources. +# See https://maven.apache.org/guides/mini/guide-naming-conventions.html +mod_group_id=fr.ultralion +# The authors of the mod. This is a simple text string that is used for display purposes in the mod list. +mod_authors=UltraLion +# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list. +mod_description=Commandify diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e69de29 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..a441313 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..b740cf1 --- /dev/null +++ b/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..25da30d --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..ada876e --- /dev/null +++ b/settings.gradle @@ -0,0 +1,11 @@ +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + maven { url = 'https://maven.neoforged.net/releases' } + } +} + +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' +} diff --git a/src/main/java/fr/ultralion/commandify/Commandify.java b/src/main/java/fr/ultralion/commandify/Commandify.java new file mode 100644 index 0000000..6abb454 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/Commandify.java @@ -0,0 +1,132 @@ +package fr.ultralion.commandify; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.commands.admin.CommandInvsee; +import fr.ultralion.commandify.commands.chat.*; +import fr.ultralion.commandify.commands.other.CommandCommandifyInfo; +import fr.ultralion.commandify.commands.reload.ReloadCommand; +import fr.ultralion.commandify.commands.teleportation.back.CommandBack; +import fr.ultralion.commandify.commands.teleportation.homes.CommandDelHome; +import fr.ultralion.commandify.commands.teleportation.homes.CommandHome; +import fr.ultralion.commandify.commands.teleportation.homes.CommandHomes; +import fr.ultralion.commandify.commands.teleportation.homes.CommandSetHome; +import fr.ultralion.commandify.commands.teleportation.rtp.CommandRtp; +import fr.ultralion.commandify.commands.teleportation.spawn.SetSpawnCommand; +import fr.ultralion.commandify.commands.teleportation.spawn.SpawnCommand; +import fr.ultralion.commandify.commands.teleportation.teleport.*; +import fr.ultralion.commandify.commands.teleportation.warps.CommandDelWarp; +import fr.ultralion.commandify.commands.teleportation.warps.CommandSetWarp; +import fr.ultralion.commandify.commands.teleportation.warps.CommandWarp; +import fr.ultralion.commandify.commands.teleportation.warps.CommandWarps; +import fr.ultralion.commandify.commands.worldmanagement.CommandWorld; +import fr.ultralion.commandify.util.IgnoreManager; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.fml.common.Mod; +import net.neoforged.fml.loading.FMLLoader; +import net.neoforged.neoforge.event.RegisterCommandsEvent; +import net.neoforged.neoforge.event.server.ServerStartingEvent; +import net.neoforged.neoforge.event.server.ServerStoppingEvent; + +@Mod(Commandify.MOD_ID) +public class Commandify { + + public static final String MOD_ID = "commandify"; + public static final String MOD_VERSION = "1.0.1"; + + public Commandify() { + if (FMLLoader.getDist() != Dist.DEDICATED_SERVER) { + System.out.println(ConsoleColors.RED + "[Commandify] This mod is for servers only!" + ConsoleColors.RESET); + throw new IllegalStateException("[Commandify] Client execution detected."); + } + + Config.register(); + System.out.println(ConsoleColors.GREEN + "[Commandify] Server-side mod initialized successfully!" + ConsoleColors.RESET); + } + + public static class ConsoleColors { + public static final String RESET = "\u001B[0m"; + public static final String RED = "\u001B[31m"; + public static final String GREEN = "\u001B[32m"; + public static final String YELLOW = "\u001B[33m"; + public static final String BLUE = "\u001B[34m"; + public static final String CYAN = "\u001B[36m"; + public static final String WHITE = "\u001B[37m"; + public static final String BOLD = "\u001B[1m"; + } + + @EventBusSubscriber(modid = Commandify.MOD_ID, value = Dist.DEDICATED_SERVER) + public static class ServerEvents { + + @SubscribeEvent + public static void onServerStarting(ServerStartingEvent event) { + var server = event.getServer(); + + System.out.println(ConsoleColors.CYAN + "[Commandify] Loading language files..." + ConsoleColors.RESET); + Lang.load(server); + + System.out.println(ConsoleColors.CYAN + "[Commandify] Initializing IgnoreManager..." + ConsoleColors.RESET); + IgnoreManager.init(server); + + System.out.println(ConsoleColors.GREEN + "[Commandify] Language loaded: " + + Config.DEFAULT_LANGUAGE.get() + ConsoleColors.RESET); + System.out.println(ConsoleColors.GREEN + "[Commandify] IgnoreManager initialized successfully!" + ConsoleColors.RESET); + } + + @SubscribeEvent + public static void onRegisterCommands(RegisterCommandsEvent event) { + CommandDispatcher dispatcher = event.getDispatcher(); + + System.out.println(ConsoleColors.YELLOW + "[Commandify] Registering commands..." + ConsoleColors.RESET); + + SetSpawnCommand.register(dispatcher); + SpawnCommand.register(dispatcher); + ReloadCommand.register(dispatcher); + + CommandTpa.register(dispatcher); + CommandTpahere.register(dispatcher); + CommandTpaccept.register(dispatcher); + CommandTpadeny.register(dispatcher); + CommandTpatoggle.register(dispatcher); + + CommandSetHome.register(dispatcher); + CommandHome.register(dispatcher); + CommandDelHome.register(dispatcher); + CommandHomes.register(dispatcher); + + CommandWarp.register(dispatcher); + CommandSetWarp.register(dispatcher); + CommandDelWarp.register(dispatcher); + CommandWarps.register(dispatcher); + + CommandBack.register(dispatcher); + CommandRtp.register(dispatcher); + + CommandWorld.register(dispatcher); + + CommandMsg.register(dispatcher); + CommandReply.register(dispatcher); + CommandBroadcast.register(dispatcher); + CommandIgnore.register(dispatcher); + CommandUnignore.register(dispatcher); + CommandIgnored.register(dispatcher); + + CommandCommandifyInfo.register(dispatcher); + CommandInvsee.register(dispatcher); + + System.out.println(ConsoleColors.GREEN + "[Commandify] All commands have been successfully registered!" + ConsoleColors.RESET); + } + + @SubscribeEvent + public static void onServerStopping(ServerStoppingEvent event) { + System.out.println(ConsoleColors.YELLOW + "[Commandify] The server is stopping... cleaning up resources." + ConsoleColors.RESET); + + IgnoreManager.clearAll(); + + System.out.println(ConsoleColors.GREEN + "[Commandify] Commandify has been safely disabled (all data preserved)." + ConsoleColors.RESET); + } + } +} diff --git a/src/main/java/fr/ultralion/commandify/Config.java b/src/main/java/fr/ultralion/commandify/Config.java new file mode 100644 index 0000000..39ceb7c --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/Config.java @@ -0,0 +1,140 @@ +package fr.ultralion.commandify; + +import net.neoforged.fml.ModLoadingContext; +import net.neoforged.fml.config.ModConfig; +import net.neoforged.neoforge.common.ModConfigSpec; + +public class Config { + + public static final ModConfigSpec.BooleanValue ENABLE_SETSPAWN_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_RELOAD_COMMAND; + public static final ModConfigSpec.ConfigValue DEFAULT_LANGUAGE; + public static final ModConfigSpec GENERAL_SPEC; + public static final ModConfigSpec.BooleanValue ENABLE_SPAWN_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_TPA; + public static final ModConfigSpec.BooleanValue ENABLE_TPAHERE; + public static final ModConfigSpec.BooleanValue ENABLE_TPAACCEPT; + public static final ModConfigSpec.BooleanValue ENABLE_TPADENY; + public static final ModConfigSpec.BooleanValue ENABLE_TPATOGGLE; + public static final ModConfigSpec.BooleanValue ENABLE_HOME_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_SETHOME_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_DELHOME_COMMAND; + public static final ModConfigSpec.IntValue MAX_HOMES; + public static final ModConfigSpec.BooleanValue ENABLE_WARP_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_WARPS_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_SETWARP_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_DELWARP_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_RTP_COMMAND; + public static final ModConfigSpec.IntValue RTP_MAX_DISTANCE; + public static final ModConfigSpec.IntValue RTP_COOLDOWN; + public static final ModConfigSpec.BooleanValue ENABLE_BACK_COMMAND; + public static final ModConfigSpec TELEPORT_SPEC; + public static final ModConfigSpec.BooleanValue ENABLE_DAY_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_NIGHT_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_NOON_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_MIDNIGHT_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_SUN_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_RAIN_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_THUNDER_COMMAND; + public static final ModConfigSpec WORLD_SPEC; + public static final ModConfigSpec.BooleanValue ENABLE_MSG_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_REPLY_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_BROADCAST_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_IGNORE_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_IGNORED_LIST_COMMAND; + public static final ModConfigSpec.BooleanValue ENABLE_IGNORE_IN_GLOBAL_CHAT; + public static final ModConfigSpec CHAT_SPEC; + public static final ModConfigSpec.BooleanValue ENABLE_INVSEE_COMMAND; + public static final ModConfigSpec ADMIN_SPEC; + // GENERAL + private static final ModConfigSpec.Builder GENERAL_BUILDER = new ModConfigSpec.Builder(); + // TELEPORTATION + private static final ModConfigSpec.Builder TELEPORT_BUILDER = new ModConfigSpec.Builder(); + // WORLD MANAGEMENT + private static final ModConfigSpec.Builder WORLD_BUILDER = new ModConfigSpec.Builder(); + // CHAT COMMANDS + private static final ModConfigSpec.Builder CHAT_BUILDER = new ModConfigSpec.Builder(); + // ADMIN / MODERATION COMMANDS + private static final ModConfigSpec.Builder ADMIN_BUILDER = new ModConfigSpec.Builder(); + + static { + // GENERAL + GENERAL_BUILDER.comment("General configuration for Commandify").push("general"); + ENABLE_SETSPAWN_COMMAND = GENERAL_BUILDER.comment("Enable /setspawn").define("enableSetSpawnCommand", true); + ENABLE_RELOAD_COMMAND = GENERAL_BUILDER.comment("Enable /commandify reload").define("enableReloadCommand", true); + + DEFAULT_LANGUAGE = GENERAL_BUILDER + .comment("Default language for Commandify (e.g., 'en_us' or 'fr_fr')") + .define("defaultLanguage", "en_us"); + + GENERAL_BUILDER.pop(); + GENERAL_SPEC = GENERAL_BUILDER.build(); + + + // TELEPORTATION + TELEPORT_BUILDER.comment("Teleportation, homes, warps, and RTP").push("teleportation"); + ENABLE_SPAWN_COMMAND = TELEPORT_BUILDER.comment("Enable /spawn").define("enableSpawnCommand", true); + ENABLE_TPA = TELEPORT_BUILDER.comment("Enable /tpa").define("enableTpa", true); + ENABLE_TPAHERE = TELEPORT_BUILDER.comment("Enable /tpahere").define("enableTpahere", true); + ENABLE_TPAACCEPT = TELEPORT_BUILDER.comment("Enable /tpaccept").define("enableTpaccept", true); + ENABLE_TPADENY = TELEPORT_BUILDER.comment("Enable /tpadeny").define("enableTpadeny", true); + ENABLE_TPATOGGLE = TELEPORT_BUILDER.comment("Enable /tpatoggle").define("enableTpatoggle", true); + ENABLE_HOME_COMMAND = TELEPORT_BUILDER.comment("Enable /home").define("enableHomeCommand", true); + ENABLE_SETHOME_COMMAND = TELEPORT_BUILDER.comment("Enable /sethome").define("enableSetHomeCommand", true); + ENABLE_DELHOME_COMMAND = TELEPORT_BUILDER.comment("Enable /delhome").define("enableDelHomeCommand", true); + MAX_HOMES = TELEPORT_BUILDER.comment("Maximum number of homes per player").defineInRange("maxHomes", 3, 1, 100); + ENABLE_WARP_COMMAND = TELEPORT_BUILDER.comment("Enable /warp").define("enableWarpCommand", true); + ENABLE_WARPS_COMMAND = TELEPORT_BUILDER.comment("Enable /warps").define("enableWarpsCommand", true); + ENABLE_SETWARP_COMMAND = TELEPORT_BUILDER.comment("Enable /setwarp").define("enableSetWarpCommand", true); + ENABLE_DELWARP_COMMAND = TELEPORT_BUILDER.comment("Enable /delwarp").define("enableDelWarpCommand", true); + ENABLE_RTP_COMMAND = TELEPORT_BUILDER.comment("Enable /rtp (random teleport)").define("enableRtpCommand", true); + RTP_MAX_DISTANCE = TELEPORT_BUILDER.comment("Maximum RTP distance (in blocks)").defineInRange("rtpMaxDistance", 30000, 5000, 100000); + RTP_COOLDOWN = TELEPORT_BUILDER.comment("RTP cooldown (in seconds)").defineInRange("rtpCooldown", 60, 0, 3600); + ENABLE_BACK_COMMAND = TELEPORT_BUILDER.comment("Enable /back").define("enableBackCommand", true); + TELEPORT_BUILDER.pop(); + TELEPORT_SPEC = TELEPORT_BUILDER.build(); + + + // WORLD MANAGEMENT + WORLD_BUILDER.comment("World management (time, weather, etc.)").push("world"); + ENABLE_DAY_COMMAND = WORLD_BUILDER.comment("Enable /day").define("enableDayCommand", true); + ENABLE_NIGHT_COMMAND = WORLD_BUILDER.comment("Enable /night").define("enableNightCommand", true); + ENABLE_NOON_COMMAND = WORLD_BUILDER.comment("Enable /noon").define("enableNoonCommand", true); + ENABLE_MIDNIGHT_COMMAND = WORLD_BUILDER.comment("Enable /midnight").define("enableMidnightCommand", true); + ENABLE_SUN_COMMAND = WORLD_BUILDER.comment("Enable /sun").define("enableSunCommand", true); + ENABLE_RAIN_COMMAND = WORLD_BUILDER.comment("Enable /rain").define("enableRainCommand", true); + ENABLE_THUNDER_COMMAND = WORLD_BUILDER.comment("Enable /thunder").define("enableThunderCommand", true); + WORLD_BUILDER.pop(); + WORLD_SPEC = WORLD_BUILDER.build(); + + + // CHAT + CHAT_BUILDER.comment("Private chat commands, broadcast, and ignore system").push("chat"); + ENABLE_MSG_COMMAND = CHAT_BUILDER.comment("Enable /msg (private messages)").define("enableMsgCommand", true); + ENABLE_REPLY_COMMAND = CHAT_BUILDER.comment("Enable /r (reply to last private message)").define("enableReplyCommand", true); + ENABLE_BROADCAST_COMMAND = CHAT_BUILDER.comment("Enable /broadcast (admin global message)").define("enableBroadcastCommand", true); + ENABLE_IGNORE_COMMAND = CHAT_BUILDER.comment("Enable /ignore and /unignore (block private messages)").define("enableIgnoreCommand", true); + ENABLE_IGNORED_LIST_COMMAND = CHAT_BUILDER.comment("Enable /ignored (view ignored players list)").define("enableIgnoredListCommand", true); + ENABLE_IGNORE_IN_GLOBAL_CHAT = CHAT_BUILDER.comment("Hide ignored players' messages in global chat").define("ignoreInGlobalChat", true); + CHAT_BUILDER.pop(); + CHAT_SPEC = CHAT_BUILDER.build(); + + + // ADMIN / MODERATION + ADMIN_BUILDER.comment("Administrator and moderation commands").push("admin"); + ENABLE_INVSEE_COMMAND = ADMIN_BUILDER.comment("Enable /invsee (view and edit a player's inventory)").define("enableInvseeCommand", true); + ADMIN_BUILDER.pop(); + ADMIN_SPEC = ADMIN_BUILDER.build(); + } + + + // Register config files + public static void register() { + var context = ModLoadingContext.get().getActiveContainer(); + context.registerConfig(ModConfig.Type.SERVER, GENERAL_SPEC, "commandify/commandify-general.toml"); + context.registerConfig(ModConfig.Type.SERVER, TELEPORT_SPEC, "commandify/teleportation.toml"); + context.registerConfig(ModConfig.Type.SERVER, WORLD_SPEC, "commandify/world.toml"); + context.registerConfig(ModConfig.Type.SERVER, CHAT_SPEC, "commandify/chat.toml"); + context.registerConfig(ModConfig.Type.SERVER, ADMIN_SPEC, "commandify/admin.toml"); + } +} diff --git a/src/main/java/fr/ultralion/commandify/LateCommandRegister.java b/src/main/java/fr/ultralion/commandify/LateCommandRegister.java new file mode 100644 index 0000000..c39849a --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/LateCommandRegister.java @@ -0,0 +1,32 @@ +package fr.ultralion.commandify; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.tree.RootCommandNode; +import fr.ultralion.commandify.commands.chat.CommandMsg; +import fr.ultralion.commandify.commands.chat.CommandReply; +import net.minecraft.commands.CommandSourceStack; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.event.RegisterCommandsEvent; + +@EventBusSubscriber(modid = Commandify.MOD_ID) +public class LateCommandRegister { + + @SubscribeEvent + public static void onRegisterCommands(RegisterCommandsEvent event) { + CommandDispatcher dispatcher = event.getDispatcher(); + RootCommandNode root = dispatcher.getRoot(); + + // Remove vanilla /msg, /tell and /w commands to replace them with custom ones + root.getChildren().removeIf(node -> { + String name = node.getName(); + return name.equalsIgnoreCase("msg") || name.equalsIgnoreCase("tell") || name.equalsIgnoreCase("w"); + }); + + + CommandMsg.register(dispatcher); + CommandReply.register(dispatcher); + + System.out.println("[Commandify] Vanilla commands /msg, /tell, and /w removed; replaced with Commandify versions."); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/admin/CommandInvsee.java b/src/main/java/fr/ultralion/commandify/commands/admin/CommandInvsee.java new file mode 100644 index 0000000..666e683 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/admin/CommandInvsee.java @@ -0,0 +1,94 @@ +package fr.ultralion.commandify.commands.admin; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.EntityArgument; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ChestMenu; +import net.minecraft.world.inventory.MenuType; + +public class CommandInvsee { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("invsee") + .requires(src -> src.hasPermission(2)) + .then(Commands.argument("target", EntityArgument.player()) + .executes(ctx -> { + ServerPlayer viewer = ctx.getSource().getPlayerOrException(); + ServerPlayer target = EntityArgument.getPlayer(ctx, "target"); + + if (viewer.getUUID().equals(target.getUUID())) { + viewer.sendSystemMessage(Lang.t("commandify.invsee.self")); + return 0; + } + + try { + openEditableInventory(viewer, target); + viewer.sendSystemMessage(Lang.t("commandify.invsee.open", target.getName().getString())); + } catch (Exception e) { + e.printStackTrace(); + viewer.sendSystemMessage(Lang.t("commandify.invsee.error", e.getMessage())); + } + + return 1; + }) + ) + ); + } + + private static void openEditableInventory(ServerPlayer viewer, ServerPlayer target) { + SimpleContainer container = new SimpleContainer(45); + + for (int i = 0; i < 36; i++) { + container.setItem(i, target.getInventory().items.get(i).copy()); + } + + container.setItem(36, target.getInventory().armor.get(3).copy()); + container.setItem(37, target.getInventory().armor.get(2).copy()); + container.setItem(38, target.getInventory().armor.get(1).copy()); + container.setItem(39, target.getInventory().armor.get(0).copy()); + container.setItem(40, target.getInventory().offhand.get(0).copy()); + + viewer.openMenu(new MenuProvider() { + @Override + public Component getDisplayName() { + return Lang.t("commandify.invsee.title", target.getName().getString()); + } + + @Override + public AbstractContainerMenu createMenu(int id, Inventory viewerInventory, Player player) { + return new ChestMenu(MenuType.GENERIC_9x5, id, viewerInventory, container, 5) { + @Override + public void removed(Player player) { + super.removed(player); + applyChangesToTarget(container, target); + viewer.sendSystemMessage(Lang.t("commandify.invsee.edited", target.getName().getString())); + } + }; + } + }); + } + + private static void applyChangesToTarget(SimpleContainer container, ServerPlayer target) { + for (int i = 0; i < 36; i++) { + target.getInventory().items.set(i, container.getItem(i).copy()); + } + + target.getInventory().armor.set(3, container.getItem(36).copy()); + target.getInventory().armor.set(2, container.getItem(37).copy()); + target.getInventory().armor.set(1, container.getItem(38).copy()); + target.getInventory().armor.set(0, container.getItem(39).copy()); + target.getInventory().offhand.set(0, container.getItem(40).copy()); + + target.containerMenu.broadcastChanges(); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/chat/CommandBroadcast.java b/src/main/java/fr/ultralion/commandify/commands/chat/CommandBroadcast.java new file mode 100644 index 0000000..ae31f35 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/chat/CommandBroadcast.java @@ -0,0 +1,30 @@ +package fr.ultralion.commandify.commands.chat; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; + +public class CommandBroadcast { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("broadcast") + .requires(source -> source.hasPermission(2)) + .then(Commands.argument("message", StringArgumentType.greedyString()) + .executes(ctx -> { + String message = StringArgumentType.getString(ctx, "message"); + + ctx.getSource().getServer().getPlayerList().broadcastSystemMessage( + Lang.t("commandify.broadcast.format", message), + false + ); + + ctx.getSource().sendSystemMessage(Lang.t("commandify.broadcast.sent")); + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/chat/CommandIgnore.java b/src/main/java/fr/ultralion/commandify/commands/chat/CommandIgnore.java new file mode 100644 index 0000000..526e797 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/chat/CommandIgnore.java @@ -0,0 +1,38 @@ +package fr.ultralion.commandify.commands.chat; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.util.IgnoreManager; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.EntityArgument; +import net.minecraft.server.level.ServerPlayer; + +public class CommandIgnore { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("ignore") + .then(Commands.argument("player", EntityArgument.player()) + .executes(ctx -> { + ServerPlayer sender = ctx.getSource().getPlayerOrException(); + ServerPlayer target = EntityArgument.getPlayer(ctx, "player"); + + if (sender.getUUID().equals(target.getUUID())) { + sender.sendSystemMessage(Lang.t("commandify.ignore.self")); + return 0; + } + + if (IgnoreManager.isIgnoring(sender, target)) { + sender.sendSystemMessage(Lang.t("commandify.ignore.already", target.getName().getString())); + return 0; + } + + IgnoreManager.ignore(sender, target); + sender.sendSystemMessage(Lang.t("commandify.ignore.added", target.getName().getString())); + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/chat/CommandIgnored.java b/src/main/java/fr/ultralion/commandify/commands/chat/CommandIgnored.java new file mode 100644 index 0000000..0b5808a --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/chat/CommandIgnored.java @@ -0,0 +1,60 @@ +package fr.ultralion.commandify.commands.chat; + +import com.mojang.authlib.GameProfile; +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.util.IgnoreManager; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.network.chat.Style; +import net.minecraft.server.level.ServerPlayer; + +import java.util.Set; +import java.util.UUID; + +public class CommandIgnored { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("ignores") + .executes(ctx -> { + ServerPlayer player = ctx.getSource().getPlayerOrException(); + Set ignored = IgnoreManager.getIgnoredList(player); + + if (ignored.isEmpty()) { + player.sendSystemMessage(Lang.t("commandify.ignored.empty")); + return 1; + } + + player.sendSystemMessage(Lang.t("commandify.ignored.header")); + + for (UUID uuid : ignored) { + String name = player.server.getProfileCache() + .get(uuid) + .map(GameProfile::getName) + .orElse(uuid.toString().substring(0, 8)); + + MutableComponent clickableName = Component.literal("§e" + name) + .setStyle( + Style.EMPTY + .withUnderlined(true) + .withClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/unignore " + name)) + .withHoverEvent( + new net.minecraft.network.chat.HoverEvent( + net.minecraft.network.chat.HoverEvent.Action.SHOW_TEXT, + Lang.t("commandify.ignored.hover", name) + ) + ) + ); + + player.sendSystemMessage(Component.literal(" §7- ").append(clickableName)); + } + + return 1; + }) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/chat/CommandMsg.java b/src/main/java/fr/ultralion/commandify/commands/chat/CommandMsg.java new file mode 100644 index 0000000..25bc62e --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/chat/CommandMsg.java @@ -0,0 +1,54 @@ +package fr.ultralion.commandify.commands.chat; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import fr.ultralion.commandify.util.ChatManager; +import fr.ultralion.commandify.util.IgnoreManager; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.EntityArgument; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; + +public class CommandMsg { + + public static void register(CommandDispatcher dispatcher) { + + LiteralArgumentBuilder base = Commands.literal("msg") + .then(Commands.argument("target", EntityArgument.player()) + .then(Commands.argument("message", StringArgumentType.greedyString()) + .executes(ctx -> { + ServerPlayer sender = ctx.getSource().getPlayerOrException(); + ServerPlayer target = EntityArgument.getPlayer(ctx, "target"); + String message = StringArgumentType.getString(ctx, "message"); + + if (sender.getUUID().equals(target.getUUID())) { + sender.sendSystemMessage(Lang.t("commandify.msg.self")); + return 0; + } + + if (IgnoreManager.isIgnoring(target, sender)) { + sender.sendSystemMessage(Lang.t("commandify.msg.ignored")); + return 0; + } + + Component toSender = Lang.t("commandify.msg.to_sender", target.getName().getString(), message); + Component toTarget = Lang.t("commandify.msg.to_target", sender.getName().getString(), message); + + sender.sendSystemMessage(toSender); + target.sendSystemMessage(toTarget); + + ChatManager.setLastMessaged(sender, target); + return 1; + }) + ) + ); + + dispatcher.register(base); + + dispatcher.register(Commands.literal("tell").redirect(base.build())); + dispatcher.register(Commands.literal("w").redirect(base.build())); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/chat/CommandReply.java b/src/main/java/fr/ultralion/commandify/commands/chat/CommandReply.java new file mode 100644 index 0000000..ee0af09 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/chat/CommandReply.java @@ -0,0 +1,55 @@ +package fr.ultralion.commandify.commands.chat; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import fr.ultralion.commandify.util.ChatManager; +import fr.ultralion.commandify.util.IgnoreManager; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; + +import java.util.UUID; + +public class CommandReply { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("r") + .then(Commands.argument("message", StringArgumentType.greedyString()) + .executes(ctx -> { + ServerPlayer sender = ctx.getSource().getPlayerOrException(); + String message = StringArgumentType.getString(ctx, "message"); + + UUID lastUUID = ChatManager.getLastMessaged(sender); + if (lastUUID == null) { + sender.sendSystemMessage(Lang.t("commandify.reply.none")); + return 0; + } + + ServerPlayer target = sender.server.getPlayerList().getPlayer(lastUUID); + if (target == null) { + sender.sendSystemMessage(Lang.t("commandify.reply.offline")); + return 0; + } + + if (IgnoreManager.isIgnoring(target, sender)) { + sender.sendSystemMessage(Lang.t("commandify.reply.ignored")); + return 0; + } + + Component toSender = Lang.t("commandify.reply.to_sender", target.getName().getString(), message); + Component toTarget = Lang.t("commandify.reply.to_target", sender.getName().getString(), message); + + sender.sendSystemMessage(toSender); + target.sendSystemMessage(toTarget); + + ChatManager.setLastMessaged(sender, target); + + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/chat/CommandUnignore.java b/src/main/java/fr/ultralion/commandify/commands/chat/CommandUnignore.java new file mode 100644 index 0000000..c3f3944 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/chat/CommandUnignore.java @@ -0,0 +1,33 @@ +package fr.ultralion.commandify.commands.chat; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.util.IgnoreManager; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.commands.arguments.EntityArgument; +import net.minecraft.server.level.ServerPlayer; + +public class CommandUnignore { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("unignore") + .then(Commands.argument("player", EntityArgument.player()) + .executes(ctx -> { + ServerPlayer sender = ctx.getSource().getPlayerOrException(); + ServerPlayer target = EntityArgument.getPlayer(ctx, "player"); + + if (!IgnoreManager.isIgnoring(sender, target)) { + sender.sendSystemMessage(Lang.t("commandify.unignore.not_ignored", target.getName().getString())); + return 0; + } + + IgnoreManager.unignore(sender, target); + sender.sendSystemMessage(Lang.t("commandify.unignore.success", target.getName().getString())); + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/other/CommandCommandifyInfo.java b/src/main/java/fr/ultralion/commandify/commands/other/CommandCommandifyInfo.java new file mode 100644 index 0000000..29b6e73 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/other/CommandCommandifyInfo.java @@ -0,0 +1,37 @@ +package fr.ultralion.commandify.commands.other; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.Commandify; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.Component; + +public class CommandCommandifyInfo { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("commandify") + .then(Commands.literal("info") + .executes(ctx -> { + CommandSourceStack source = ctx.getSource(); + + source.sendSystemMessage(Lang.t("commandify.info.title", Commandify.MOD_VERSION)); + source.sendSystemMessage(Lang.t("commandify.info.author")); + source.sendSystemMessage(Lang.t("commandify.info.website")); + source.sendSystemMessage(Component.literal("")); + source.sendSystemMessage(Lang.t("commandify.info.modules_title")); + source.sendSystemMessage(Lang.t("commandify.info.module.teleport")); + source.sendSystemMessage(Lang.t("commandify.info.module.world")); + source.sendSystemMessage(Lang.t("commandify.info.module.chat")); + source.sendSystemMessage(Component.literal("")); + source.sendSystemMessage(Lang.t("commandify.info.modid", Commandify.MOD_ID)); + source.sendSystemMessage(Lang.t("commandify.info.server_version", source.getServer().getServerVersion())); + source.sendSystemMessage(Lang.t("commandify.info.players", String.valueOf(source.getServer().getPlayerCount()))); + + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/reload/ReloadCommand.java b/src/main/java/fr/ultralion/commandify/commands/reload/ReloadCommand.java new file mode 100644 index 0000000..6ee2c10 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/reload/ReloadCommand.java @@ -0,0 +1,47 @@ +package fr.ultralion.commandify.commands.reload; + +import com.electronwill.nightconfig.core.file.CommentedFileConfig; +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.Config; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; + +import java.nio.file.Path; +import java.nio.file.Paths; + + +public class ReloadCommand { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("commandify") + .requires(source -> source.hasPermission(2)) + .then(Commands.literal("reload") + .executes(ctx -> { + CommandSourceStack source = ctx.getSource(); + + try { + Path path = Paths.get("config", "commandify-server.toml"); + + CommentedFileConfig configData = CommentedFileConfig.builder(path).sync().autosave().build(); + configData.load(); + + Config.ENABLE_SPAWN_COMMAND.set(configData.getOrElse("enableSpawnCommand", true)); + Config.ENABLE_SETSPAWN_COMMAND.set(configData.getOrElse("enableSetSpawnCommand", true)); + + configData.close(); + + source.sendSuccess(() -> Lang.t("commandify.reload.success"), true); + System.out.println("[Commandify] Configuration successfully reloaded!"); + } catch (Exception e) { + e.printStackTrace(); + source.sendFailure(Lang.t("commandify.reload.error")); + } + + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/back/BackEvents.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/back/BackEvents.java new file mode 100644 index 0000000..bbcfd07 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/back/BackEvents.java @@ -0,0 +1,27 @@ +package fr.ultralion.commandify.commands.teleportation.back; + +import fr.ultralion.commandify.Commandify; +import net.minecraft.server.level.ServerPlayer; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.event.entity.EntityTeleportEvent; +import net.neoforged.neoforge.event.entity.living.LivingDeathEvent; + +@EventBusSubscriber(modid = Commandify.MOD_ID, value = Dist.DEDICATED_SERVER) +public class BackEvents { + + @SubscribeEvent + public static void onPlayerDeath(LivingDeathEvent event) { + if (event.getEntity() instanceof ServerPlayer player) { + BackManager.saveLastLocation(player); + } + } + + @SubscribeEvent + public static void onTeleport(EntityTeleportEvent.EnderEntity event) { + if (event.getEntity() instanceof ServerPlayer player) { + BackManager.saveLastLocation(player); + } + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/back/BackManager.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/back/BackManager.java new file mode 100644 index 0000000..8f9dfc2 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/back/BackManager.java @@ -0,0 +1,41 @@ +package fr.ultralion.commandify.commands.teleportation.back; + +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.Level; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public class BackManager { + + private static final Map lastLocations = new HashMap<>(); + + public static void saveLastLocation(ServerPlayer player) { + String dim = player.level().dimension().location().toString(); + lastLocations.put(player.getUUID(), new BackLocation(dim, player.getX(), player.getY(), player.getZ(), player.getYRot(), player.getXRot())); + } + + public static boolean teleportBack(ServerPlayer player) { + BackLocation loc = lastLocations.get(player.getUUID()); + if (loc == null) return false; + + String[] parts = loc.dimension.split(":"); + String namespace = parts.length > 1 ? parts[0] : "minecraft"; + String path = parts.length > 1 ? parts[1] : loc.dimension; + + ResourceKey dim = ResourceKey.create(Registries.DIMENSION, ResourceLocation.fromNamespaceAndPath(namespace, path)); + ServerLevel world = player.getServer().getLevel(dim); + if (world == null) return false; + + player.teleportTo(world, loc.x, loc.y, loc.z, loc.yaw, loc.pitch); + return true; + } + + public record BackLocation(String dimension, double x, double y, double z, float yaw, float pitch) { + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/back/CommandBack.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/back/CommandBack.java new file mode 100644 index 0000000..72a9bc3 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/back/CommandBack.java @@ -0,0 +1,34 @@ +package fr.ultralion.commandify.commands.teleportation.back; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.Config; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.server.level.ServerPlayer; + +public class CommandBack { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("back") + .executes(ctx -> { + ServerPlayer player = ctx.getSource().getPlayerOrException(); + + if (!Config.ENABLE_BACK_COMMAND.get()) { + player.sendSystemMessage(Lang.t("commandify.back.disabled")); + return 0; + } + + boolean ok = BackManager.teleportBack(player); + if (!ok) { + player.sendSystemMessage(Lang.t("commandify.back.no_previous")); + return 0; + } + + player.sendSystemMessage(Lang.t("commandify.back.success")); + return 1; + }) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/CommandDelHome.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/CommandDelHome.java new file mode 100644 index 0000000..6d4ca1a --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/CommandDelHome.java @@ -0,0 +1,38 @@ +package fr.ultralion.commandify.commands.teleportation.homes; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.server.level.ServerPlayer; + +import java.util.Map; + +public class CommandDelHome { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("delhome") + .then(Commands.argument("name", StringArgumentType.word()) + .executes(ctx -> { + ServerPlayer player = ctx.getSource().getPlayerOrException(); + String name = StringArgumentType.getString(ctx, "name").toLowerCase(); + + Map homes = HomeData.loadHomes(player); + + if (!homes.containsKey(name)) { + player.sendSystemMessage(Lang.t("commandify.delhome.not_found", name)); + return 0; + } + + homes.remove(name); + HomeData.saveHomes(player, homes); + + player.sendSystemMessage(Lang.t("commandify.delhome.success", name)); + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/CommandHome.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/CommandHome.java new file mode 100644 index 0000000..ee0d612 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/CommandHome.java @@ -0,0 +1,60 @@ +package fr.ultralion.commandify.commands.teleportation.homes; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import fr.ultralion.commandify.commands.teleportation.back.BackManager; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.Level; + +import java.util.Map; + + +public class CommandHome { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("home") + .then(Commands.argument("name", StringArgumentType.word()) + .executes(ctx -> { + ServerPlayer player = ctx.getSource().getPlayerOrException(); + String name = StringArgumentType.getString(ctx, "name").toLowerCase(); + + Map homes = HomeData.loadHomes(player); + HomeData.Home home = homes.get(name); + + if (home == null) { + player.sendSystemMessage(Lang.t("commandify.home.not_found", name)); + return 0; + } + + String[] parts = home.dimension().split(":"); + String namespace = parts.length > 1 ? parts[0] : "minecraft"; + String path = parts.length > 1 ? parts[1] : home.dimension(); + + ResourceLocation location = ResourceLocation.fromNamespaceAndPath(namespace, path); + ResourceKey dim = ResourceKey.create(Registries.DIMENSION, location); + + ServerLevel world = player.getServer().getLevel(dim); + if (world == null) { + player.sendSystemMessage(Lang.t("commandify.home.invalid_world")); + return 0; + } + + BackManager.saveLastLocation(player); + + player.teleportTo(world, home.x(), home.y(), home.z(), home.yaw(), home.pitch()); + player.sendSystemMessage(Lang.t("commandify.home.success", name)); + + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/CommandHomes.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/CommandHomes.java new file mode 100644 index 0000000..09d17d8 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/CommandHomes.java @@ -0,0 +1,66 @@ +package fr.ultralion.commandify.commands.teleportation.homes; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.Config; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.network.chat.Style; +import net.minecraft.server.level.ServerPlayer; + +import java.util.Map; + +public class CommandHomes { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("homes") + .executes(ctx -> { + ServerPlayer player = ctx.getSource().getPlayerOrException(); + + if (!Config.ENABLE_HOME_COMMAND.get()) { + player.sendSystemMessage(Lang.t("commandify.homes.disabled")); + return 0; + } + + Map homes = HomeData.loadHomes(player); + + if (homes.isEmpty()) { + player.sendSystemMessage(Lang.t("commandify.homes.none")); + return 0; + } + + player.sendSystemMessage(Lang.t("commandify.homes.header", String.valueOf(homes.size()))); + + for (var entry : homes.entrySet()) { + String name = entry.getKey(); + + MutableComponent homeText = Component.literal("§e• " + name + " "); + + MutableComponent tpButton = Component.literal("§a[TP]") + .setStyle( + Style.EMPTY + .withClickEvent(new ClickEvent( + ClickEvent.Action.RUN_COMMAND, + "/home " + name + )) + .withHoverEvent( + new net.minecraft.network.chat.HoverEvent( + net.minecraft.network.chat.HoverEvent.Action.SHOW_TEXT, + Lang.t("commandify.homes.hover_tp", name) + ) + ) + ); + + player.sendSystemMessage(homeText.append(tpButton)); + } + + player.sendSystemMessage(Lang.t("commandify.homes.footer")); + return 1; + }) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/CommandSetHome.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/CommandSetHome.java new file mode 100644 index 0000000..5d2102a --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/CommandSetHome.java @@ -0,0 +1,46 @@ +package fr.ultralion.commandify.commands.teleportation.homes; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import fr.ultralion.commandify.Config; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.server.level.ServerPlayer; + +import java.util.Map; + +public class CommandSetHome { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("sethome") + .then(Commands.argument("name", StringArgumentType.word()) + .executes(ctx -> { + ServerPlayer player = ctx.getSource().getPlayerOrException(); + String name = StringArgumentType.getString(ctx, "name").toLowerCase(); + + Map homes = HomeData.loadHomes(player); + + if (homes.size() >= Config.MAX_HOMES.get() && !homes.containsKey(name)) { + player.sendSystemMessage(Lang.t("commandify.sethome.limit_reached", String.valueOf(Config.MAX_HOMES.get()))); + return 0; + } + + HomeData.Home home = new HomeData.Home( + name, + player.level().dimension().location().toString(), + player.getX(), player.getY(), player.getZ(), + player.getYRot(), player.getXRot() + ); + + homes.put(name, home); + HomeData.saveHomes(player, homes); + + player.sendSystemMessage(Lang.t("commandify.sethome.success", name)); + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/HomeData.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/HomeData.java new file mode 100644 index 0000000..5a7164d --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/homes/HomeData.java @@ -0,0 +1,106 @@ +package fr.ultralion.commandify.commands.teleportation.homes; + +import com.google.gson.GsonBuilder; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.storage.LevelResource; + +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.HashMap; +import java.util.Map; + +public class HomeData { + + private static Path getHomesDir(MinecraftServer server) { + return server.getWorldPath(LevelResource.ROOT) + .resolve("data") + .resolve("commandify") + .resolve("homes"); + } + + public static Map loadHomes(ServerPlayer player) { + Map homes = new HashMap<>(); + try { + Path dir = getHomesDir(player.getServer()); + Files.createDirectories(dir); + Path file = dir.resolve(player.getUUID() + ".json"); + + if (!Files.exists(file)) { + System.out.println(ConsoleColors.YELLOW + "[Commandify] No homes file found for " + player.getName().getString() + ConsoleColors.RESET); + return homes; + } + + try (Reader reader = Files.newBufferedReader(file)) { + JsonObject json = JsonParser.parseReader(reader).getAsJsonObject(); + for (String key : json.keySet()) { + JsonObject data = json.getAsJsonObject(key); + homes.put(key, new Home( + key, + data.get("dimension").getAsString(), + data.get("x").getAsDouble(), + data.get("y").getAsDouble(), + data.get("z").getAsDouble(), + data.get("yaw").getAsFloat(), + data.get("pitch").getAsFloat() + )); + } + } + + System.out.println(ConsoleColors.GREEN + "[Commandify] Loaded " + homes.size() + " homes for " + player.getName().getString() + ConsoleColors.RESET); + + } catch (IOException e) { + System.out.println(ConsoleColors.RED + "[Commandify] Failed to load homes for " + player.getName().getString() + ": " + e.getMessage() + ConsoleColors.RESET); + } + return homes; + } + + public static void saveHomes(ServerPlayer player, Map homes) { + try { + Path dir = getHomesDir(player.getServer()); + Files.createDirectories(dir); + Path file = dir.resolve(player.getUUID() + ".json"); + + JsonObject json = new JsonObject(); + for (var entry : homes.entrySet()) { + Home h = entry.getValue(); + JsonObject data = new JsonObject(); + data.addProperty("dimension", h.dimension); + data.addProperty("x", h.x); + data.addProperty("y", h.y); + data.addProperty("z", h.z); + data.addProperty("yaw", h.yaw); + data.addProperty("pitch", h.pitch); + json.add(entry.getKey(), data); + } + + try (Writer writer = Files.newBufferedWriter(file)) { + new GsonBuilder().setPrettyPrinting().create().toJson(json, writer); + } + + System.out.println(ConsoleColors.GREEN + "[Commandify] Saved " + homes.size() + " homes for " + player.getName().getString() + ConsoleColors.RESET); + + } catch (IOException e) { + System.out.println(ConsoleColors.RED + "[Commandify] Failed to save homes for " + player.getName().getString() + ": " + e.getMessage() + ConsoleColors.RESET); + } + } + + /** + * ANSI color codes for readable console output + */ + public static class ConsoleColors { + public static final String RESET = "\u001B[0m"; + public static final String RED = "\u001B[31m"; + public static final String GREEN = "\u001B[32m"; + public static final String YELLOW = "\u001B[33m"; + public static final String CYAN = "\u001B[36m"; + } + + public record Home(String name, String dimension, double x, double y, double z, float yaw, float pitch) { + } +} \ No newline at end of file diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/rtp/CommandRtp.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/rtp/CommandRtp.java new file mode 100644 index 0000000..05ae9f5 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/rtp/CommandRtp.java @@ -0,0 +1,160 @@ +package fr.ultralion.commandify.commands.teleportation.rtp; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.Config; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceKey; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.levelgen.Heightmap; + +import java.util.*; + +public class CommandRtp { + + private static final int MAX_ATTEMPTS = 40; + private static final Map rtpCooldowns = new HashMap<>(); + private static final Random RANDOM = new Random(); + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("rtp") + .executes(ctx -> { + ServerPlayer player = ctx.getSource().getPlayerOrException(); + ServerLevel world = player.getServer().getLevel(Level.OVERWORLD); + + if (world == null) { + player.sendSystemMessage(Lang.t("commandify.rtp.no_world")); + return 0; + } + + boolean enabled; + int globalRange; + int cooldownSeconds; + + try { + enabled = Config.ENABLE_RTP_COMMAND.get(); + globalRange = Config.RTP_MAX_DISTANCE.get(); + cooldownSeconds = Config.RTP_COOLDOWN.get(); + } catch (IllegalStateException e) { + enabled = true; + globalRange = 30000; + cooldownSeconds = 60; + } + + if (!enabled) { + player.sendSystemMessage(Lang.t("commandify.rtp.disabled")); + return 0; + } + + UUID uuid = player.getUUID(); + long now = System.currentTimeMillis(); + long cooldownEnd = rtpCooldowns.getOrDefault(uuid, 0L); + long cooldownMs = cooldownSeconds * 1000L; + + if (now < cooldownEnd) { + long secondsLeft = (cooldownEnd - now) / 1000; + player.sendSystemMessage(Lang.t("commandify.rtp.cooldown", String.valueOf(secondsLeft))); + return 0; + } + + player.sendSystemMessage(Lang.t("commandify.rtp.searching")); + + final ServerLevel worldFinal = world; + final long nowFinal = now; + final long cooldownMsFinal = cooldownMs; + final int rangeFinal = globalRange; + + new Thread(() -> { + BlockPos safePos = findSafePosition(worldFinal, rangeFinal); + + if (safePos == null) { + player.server.execute(() -> + player.sendSystemMessage(Lang.t("commandify.rtp.no_safe")) + ); + return; + } + + rtpCooldowns.put(uuid, nowFinal + cooldownMsFinal); + + player.server.execute(() -> { + if (!player.isAlive()) return; + + player.teleportTo( + worldFinal, + safePos.getX() + 0.5, + safePos.getY(), + safePos.getZ() + 0.5, + player.getYRot(), + player.getXRot() + ); + + player.sendSystemMessage(Lang.t( + "commandify.rtp.success", + safePos.getX() + " " + safePos.getY() + " " + safePos.getZ() + )); + }); + + }, "Commandify-RTP-Thread-" + player.getName().getString()).start(); + + return 1; + }) + ); + } + + private static BlockPos findSafePosition(ServerLevel world, int maxDistance) { + for (int i = 0; i < MAX_ATTEMPTS; i++) { + int x = RANDOM.nextInt(maxDistance * 2) - maxDistance; + int z = RANDOM.nextInt(maxDistance * 2) - maxDistance; + + world.getChunk(new BlockPos(x, 0, z)); + int y = world.getHeight(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, x, z); + BlockPos pos = new BlockPos(x, y, z); + + if (!isSafe(world, pos)) continue; + + String biomeName = getBiomeName(world, pos); + if (biomeName.contains("ocean") || biomeName.contains("river") || biomeName.contains("deep")) continue; + + return pos; + } + return null; + } + + private static boolean isSafe(ServerLevel world, BlockPos pos) { + if (pos.getY() <= world.getMinBuildHeight() + 1 || pos.getY() >= world.getMaxBuildHeight() - 2) + return false; + + var below = world.getBlockState(pos.below()); + var at = world.getBlockState(pos); + var above = world.getBlockState(pos.above()); + + if (!below.isSolidRender(world, pos.below())) return false; + if (!at.isAir() || !above.isAir()) return false; + + return !(below.is(Blocks.LAVA) || + below.is(Blocks.WATER) || + below.is(Blocks.MAGMA_BLOCK) || + below.is(Blocks.CACTUS) || + below.is(Blocks.FIRE) || + below.is(Blocks.POWDER_SNOW)); + } + + private static String getBiomeName(ServerLevel world, BlockPos pos) { + try { + var biome = world.getBiome(pos).value(); + Optional> biomeKey = world.registryAccess() + .registryOrThrow(net.minecraft.core.registries.Registries.BIOME) + .getResourceKey(biome); + return biomeKey.map(key -> key.location().toString()).orElse("unknown"); + } catch (Exception e) { + return "unknown"; + } + } +} \ No newline at end of file diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/spawn/SetSpawnCommand.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/spawn/SetSpawnCommand.java new file mode 100644 index 0000000..2252c69 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/spawn/SetSpawnCommand.java @@ -0,0 +1,44 @@ +package fr.ultralion.commandify.commands.teleportation.spawn; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.Config; +import fr.ultralion.commandify.commands.teleportation.spawn.data.SpawnData; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.server.level.ServerPlayer; + +public class SetSpawnCommand { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("setspawn") + .requires(source -> source.hasPermission(2)) + .executes(ctx -> { + CommandSourceStack source = ctx.getSource(); + + if (!Config.ENABLE_SETSPAWN_COMMAND.get()) { + source.sendFailure(Lang.t("commandify.setspawn.disabled")); + return 0; + } + + if (!(source.getEntity() instanceof ServerPlayer player)) { + source.sendFailure(Lang.t("commandify.setspawn.player_only")); + return 0; + } + + double x = player.getX(); + double y = player.getY(); + double z = player.getZ(); + float yaw = player.getYRot(); + float pitch = player.getXRot(); + + SpawnData data = new SpawnData(x, y, z, yaw, pitch); + data.save(player.getServer()); + + source.sendSuccess(() -> Lang.t("commandify.setspawn.success"), false); + return 1; + }) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/spawn/SpawnCommand.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/spawn/SpawnCommand.java new file mode 100644 index 0000000..0a4a41c --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/spawn/SpawnCommand.java @@ -0,0 +1,50 @@ +package fr.ultralion.commandify.commands.teleportation.spawn; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.Config; +import fr.ultralion.commandify.commands.teleportation.spawn.data.SpawnData; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.Level; + +public class SpawnCommand { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("spawn") + .executes(ctx -> { + CommandSourceStack source = ctx.getSource(); + + if (!Config.ENABLE_SPAWN_COMMAND.get()) { + source.sendFailure(Lang.t("commandify.spawn.disabled")); + return 0; + } + + if (!(source.getEntity() instanceof ServerPlayer player)) { + source.sendFailure(Lang.t("commandify.spawn.player_only")); + return 0; + } + + SpawnData data = SpawnData.load(player.getServer()); + if (data == null) { + player.sendSystemMessage(Lang.t("commandify.spawn.not_set")); + return 0; + } + + ServerLevel world = player.getServer().getLevel(Level.OVERWORLD); + if (world == null) { + player.sendSystemMessage(Lang.t("commandify.spawn.no_world")); + return 0; + } + + player.teleportTo(world, data.getX(), data.getY(), data.getZ(), data.getYaw(), data.getPitch()); + player.sendSystemMessage(Lang.t("commandify.spawn.success")); + + return 1; + }) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/spawn/data/SpawnData.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/spawn/data/SpawnData.java new file mode 100644 index 0000000..0298255 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/spawn/data/SpawnData.java @@ -0,0 +1,79 @@ +package fr.ultralion.commandify.commands.teleportation.spawn.data; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import net.minecraft.core.BlockPos; +import net.minecraft.server.MinecraftServer; +import net.minecraft.world.level.storage.LevelResource; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; + +public class SpawnData { + + private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); + private static final String FILE_NAME = "commandify_spawn.json"; + + private final double x; + private final double y; + private final double z; + private final float yaw; + private final float pitch; + + public SpawnData(double x, double y, double z, float yaw, float pitch) { + this.x = x; + this.y = y; + this.z = z; + this.yaw = yaw; + this.pitch = pitch; + } + + public static SpawnData load(MinecraftServer server) { + File worldDir = server.getWorldPath(LevelResource.ROOT).toFile(); + File file = new File(worldDir, FILE_NAME); + if (!file.exists()) return null; + + try (FileReader reader = new FileReader(file)) { + return GSON.fromJson(reader, SpawnData.class); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + + public void save(MinecraftServer server) { + File worldDir = server.getWorldPath(LevelResource.ROOT).toFile(); + File file = new File(worldDir, FILE_NAME); + try (FileWriter writer = new FileWriter(file)) { + GSON.toJson(this, writer); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public BlockPos toBlockPos() { + return new BlockPos((int) x, (int) y, (int) z); + } + + public double getX() { + return x; + } + + public double getY() { + return y; + } + + public double getZ() { + return z; + } + + public float getYaw() { + return yaw; + } + + public float getPitch() { + return pitch; + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpa.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpa.java new file mode 100644 index 0000000..590acb8 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpa.java @@ -0,0 +1,60 @@ +package fr.ultralion.commandify.commands.teleportation.teleport; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.ChatFormatting; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.HoverEvent; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.server.level.ServerPlayer; + +public class CommandTpa { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("tpa") + .then(Commands.argument("player", net.minecraft.commands.arguments.EntityArgument.player()) + .executes(ctx -> { + ServerPlayer sender = ctx.getSource().getPlayerOrException(); + ServerPlayer target = net.minecraft.commands.arguments.EntityArgument.getPlayer(ctx, "player"); + + if (target.getUUID().equals(sender.getUUID())) { + sender.sendSystemMessage(Lang.t("commandify.tpa.self")); + return 0; + } + + if (!TeleportManager.sendRequest(sender, target, false)) { + sender.sendSystemMessage(Lang.t("commandify.tpa.blocked")); + return 0; + } + + sender.sendSystemMessage(Lang.t("commandify.tpa.sent", target.getName().getString())); + + MutableComponent acceptButton = Lang.raw("commandify.tpa.accept_button").copy() + .withStyle(style -> style.withColor(ChatFormatting.GREEN) + .withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tpaccept")) + .withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Lang.t("commandify.tpa.accept_hover")))); + + MutableComponent denyButton = Lang.raw("commandify.tpa.deny_button").copy() + .withStyle(style -> style.withColor(ChatFormatting.RED) + .withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tpadeny")) + .withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Lang.t("commandify.tpa.deny_hover")))); + + Component message = Component.empty() + .append(Component.literal(sender.getName().getString()).withStyle(ChatFormatting.GOLD)) + .append(Lang.t("commandify.tpa.request_message")) + .append(Component.literal(" ")) + .append(acceptButton) + .append(Component.literal(" ")) + .append(denyButton); + + target.sendSystemMessage(message); + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpaccept.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpaccept.java new file mode 100644 index 0000000..120e2c7 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpaccept.java @@ -0,0 +1,64 @@ +package fr.ultralion.commandify.commands.teleportation.teleport; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.commands.teleportation.back.BackManager; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.Level; + +import java.util.UUID; + +public class CommandTpaccept { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("tpaccept") + .executes(ctx -> { + ServerPlayer target = ctx.getSource().getPlayerOrException(); + + TeleportManager.TpaRequest request = TeleportManager.getRequest(target.getUUID()); + if (request == null) { + target.sendSystemMessage(Lang.t("commandify.tpaccept.none")); + return 0; + } + + UUID requesterId = request.getRequester(); + ServerPlayer requester = target.getServer().getPlayerList().getPlayer(requesterId); + + if (requester == null) { + target.sendSystemMessage(Lang.t("commandify.tpaccept.offline")); + TeleportManager.removeRequest(target.getUUID()); + return 0; + } + + ServerLevel world = target.getServer().getLevel(Level.OVERWORLD); + + if (request.isHere()) { + BackManager.saveLastLocation(target); + + target.teleportTo(world, + requester.getX(), requester.getY(), requester.getZ(), + requester.getYRot(), requester.getXRot()); + + target.sendSystemMessage(Lang.t("commandify.tpaccept.here_target", requester.getName().getString())); + requester.sendSystemMessage(Lang.t("commandify.tpaccept.here_requester", target.getName().getString())); + } else { + BackManager.saveLastLocation(requester); + + requester.teleportTo(world, + target.getX(), target.getY(), target.getZ(), + target.getYRot(), target.getXRot()); + + requester.sendSystemMessage(Lang.t("commandify.tpaccept.tpa_requester", target.getName().getString())); + target.sendSystemMessage(Lang.t("commandify.tpaccept.tpa_target", requester.getName().getString())); + } + + TeleportManager.removeRequest(target.getUUID()); + return 1; + }) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpadeny.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpadeny.java new file mode 100644 index 0000000..f1994c6 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpadeny.java @@ -0,0 +1,40 @@ +package fr.ultralion.commandify.commands.teleportation.teleport; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.server.level.ServerPlayer; + +import java.util.UUID; + +public class CommandTpadeny { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("tpadeny") + .executes(ctx -> { + ServerPlayer target = ctx.getSource().getPlayerOrException(); + + TeleportManager.TpaRequest request = TeleportManager.getRequest(target.getUUID()); + + if (request == null) { + target.sendSystemMessage(Lang.t("commandify.tpadeny.none")); + return 0; + } + + UUID requesterId = request.getRequester(); + ServerPlayer requester = target.getServer().getPlayerList().getPlayer(requesterId); + + if (requester != null) { + requester.sendSystemMessage(Lang.t("commandify.tpadeny.to_requester", target.getName().getString())); + } + + target.sendSystemMessage(Lang.t("commandify.tpadeny.to_target")); + + TeleportManager.removeRequest(target.getUUID()); + return 1; + }) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpahere.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpahere.java new file mode 100644 index 0000000..a666099 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpahere.java @@ -0,0 +1,60 @@ +package fr.ultralion.commandify.commands.teleportation.teleport; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.ChatFormatting; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.HoverEvent; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.server.level.ServerPlayer; + +public class CommandTpahere { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("tpahere") + .then(Commands.argument("player", net.minecraft.commands.arguments.EntityArgument.player()) + .executes(ctx -> { + ServerPlayer sender = ctx.getSource().getPlayerOrException(); + ServerPlayer target = net.minecraft.commands.arguments.EntityArgument.getPlayer(ctx, "player"); + + if (target.getUUID().equals(sender.getUUID())) { + sender.sendSystemMessage(Lang.t("commandify.tpahere.self")); + return 0; + } + + if (!TeleportManager.sendRequest(sender, target, true)) { + sender.sendSystemMessage(Lang.t("commandify.tpahere.blocked")); + return 0; + } + + sender.sendSystemMessage(Lang.t("commandify.tpahere.sent", target.getName().getString())); + + MutableComponent acceptButton = Lang.raw("commandify.tpahere.accept_button").copy() + .withStyle(style -> style.withColor(ChatFormatting.GREEN) + .withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tpaccept")) + .withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Lang.t("commandify.tpahere.accept_hover")))); + + MutableComponent denyButton = Lang.raw("commandify.tpahere.deny_button").copy() + .withStyle(style -> style.withColor(ChatFormatting.RED) + .withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tpadeny")) + .withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Lang.t("commandify.tpahere.deny_hover")))); + + Component message = Component.empty() + .append(Component.literal(sender.getName().getString()).withStyle(ChatFormatting.GOLD)) + .append(Lang.t("commandify.tpahere.request_message")) + .append(Component.literal(" ")) + .append(acceptButton) + .append(Component.literal(" ")) + .append(denyButton); + + target.sendSystemMessage(message); + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpatoggle.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpatoggle.java new file mode 100644 index 0000000..9e3d693 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/CommandTpatoggle.java @@ -0,0 +1,29 @@ +package fr.ultralion.commandify.commands.teleportation.teleport; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.server.level.ServerPlayer; + +public class CommandTpatoggle { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("tpatoggle") + .executes(ctx -> { + ServerPlayer player = ctx.getSource().getPlayerOrException(); + + boolean enabled = TeleportManager.toggleTpa(player); + + if (enabled) { + player.sendSystemMessage(Lang.t("commandify.tpatoggle.enabled")); + } else { + player.sendSystemMessage(Lang.t("commandify.tpatoggle.disabled")); + } + + return 1; + }) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/TeleportManager.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/TeleportManager.java new file mode 100644 index 0000000..4b24c07 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/teleport/TeleportManager.java @@ -0,0 +1,96 @@ +package fr.ultralion.commandify.commands.teleportation.teleport; + +import fr.ultralion.commandify.util.Lang; +import net.minecraft.server.level.ServerPlayer; + +import java.time.Instant; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +public class TeleportManager { + + private static final Map pendingRequests = new ConcurrentHashMap<>(); + private static final Set tpaDisabled = ConcurrentHashMap.newKeySet(); + private static final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); + private static final int EXPIRATION_SECONDS = 60; + + public static boolean sendRequest(ServerPlayer sender, ServerPlayer target, boolean here) { + if (tpaDisabled.contains(target.getUUID())) return false; + + UUID targetId = target.getUUID(); + TpaRequest request = new TpaRequest(sender.getUUID(), here); + pendingRequests.put(targetId, request); + + scheduler.schedule(() -> expireRequest(target, request), EXPIRATION_SECONDS, TimeUnit.SECONDS); + return true; + } + + public static TpaRequest getRequest(UUID targetId) { + return pendingRequests.get(targetId); + } + + public static void removeRequest(UUID targetId) { + pendingRequests.remove(targetId); + } + + public static boolean isTpaDisabled(ServerPlayer player) { + return tpaDisabled.contains(player.getUUID()); + } + + public static boolean toggleTpa(ServerPlayer player) { + UUID id = player.getUUID(); + if (tpaDisabled.remove(id)) { + return true; + } else { + tpaDisabled.add(id); + return false; + } + } + + private static void expireRequest(ServerPlayer target, TpaRequest request) { + TpaRequest current = pendingRequests.get(target.getUUID()); + if (current != null && current == request) { + pendingRequests.remove(target.getUUID()); + + ServerPlayer requester = target.getServer().getPlayerList().getPlayer(request.getRequester()); + + if (requester != null) { + requester.sendSystemMessage(Lang.t("commandify.tpa.expired_requester", target.getName().getString())); + } + + target.sendSystemMessage(Lang.t( + "commandify.tpa.expired_target", + requester != null ? requester.getName().getString() : Lang.getRaw("commandify.tpa.unknown_player") + )); + } + } + + public static class TpaRequest { + private final UUID requester; + private final boolean here; + private final Instant created; + + public TpaRequest(UUID requester, boolean here) { + this.requester = requester; + this.here = here; + this.created = Instant.now(); + } + + public UUID getRequester() { + return requester; + } + + public boolean isHere() { + return here; + } + + public Instant getCreated() { + return created; + } + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/CommandDelWarp.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/CommandDelWarp.java new file mode 100644 index 0000000..f47da44 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/CommandDelWarp.java @@ -0,0 +1,44 @@ +package fr.ultralion.commandify.commands.teleportation.warps; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import fr.ultralion.commandify.Config; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.server.level.ServerPlayer; + +import java.util.Map; + +public class CommandDelWarp { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("delwarp") + .then(Commands.argument("name", StringArgumentType.word()) + .requires(src -> src.hasPermission(2)) + .executes(ctx -> { + ServerPlayer player = ctx.getSource().getPlayerOrException(); + + if (!Config.ENABLE_DELWARP_COMMAND.get()) { + player.sendSystemMessage(Lang.t("commandify.delwarp.disabled")); + return 0; + } + + String name = StringArgumentType.getString(ctx, "name").toLowerCase(); + Map warps = WarpData.loadWarps(player.getServer()); + + if (!warps.containsKey(name)) { + player.sendSystemMessage(Lang.t("commandify.delwarp.not_found", name)); + return 0; + } + + warps.remove(name); + WarpData.saveWarps(player.getServer(), warps); + player.sendSystemMessage(Lang.t("commandify.delwarp.success", name)); + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/CommandSetWarp.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/CommandSetWarp.java new file mode 100644 index 0000000..5580289 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/CommandSetWarp.java @@ -0,0 +1,47 @@ +package fr.ultralion.commandify.commands.teleportation.warps; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import fr.ultralion.commandify.Config; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.server.level.ServerPlayer; + +import java.util.Map; + +public class CommandSetWarp { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("setwarp") + .then(Commands.argument("name", StringArgumentType.word()) + .requires(src -> src.hasPermission(2)) + .executes(ctx -> { + ServerPlayer player = ctx.getSource().getPlayerOrException(); + + if (!Config.ENABLE_SETWARP_COMMAND.get()) { + player.sendSystemMessage(Lang.t("commandify.setwarp.disabled")); + return 0; + } + + String name = StringArgumentType.getString(ctx, "name").toLowerCase(); + Map warps = WarpData.loadWarps(player.getServer()); + + WarpData.Warp warp = new WarpData.Warp( + name, + player.level().dimension().location().toString(), + player.getX(), player.getY(), player.getZ(), + player.getYRot(), player.getXRot() + ); + + warps.put(name, warp); + WarpData.saveWarps(player.getServer(), warps); + + player.sendSystemMessage(Lang.t("commandify.setwarp.success", name)); + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/CommandWarp.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/CommandWarp.java new file mode 100644 index 0000000..68bd3ef --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/CommandWarp.java @@ -0,0 +1,62 @@ +package fr.ultralion.commandify.commands.teleportation.warps; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.StringArgumentType; +import fr.ultralion.commandify.Config; +import fr.ultralion.commandify.commands.teleportation.back.BackManager; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.Level; + +import java.util.Map; + +public class CommandWarp { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("warp") + .then(Commands.argument("name", StringArgumentType.word()) + .executes(ctx -> { + ServerPlayer player = ctx.getSource().getPlayerOrException(); + + if (!Config.ENABLE_WARP_COMMAND.get()) { + player.sendSystemMessage(Lang.t("commandify.warp.disabled")); + return 0; + } + + String name = StringArgumentType.getString(ctx, "name").toLowerCase(); + Map warps = WarpData.loadWarps(player.getServer()); + WarpData.Warp warp = warps.get(name); + + if (warp == null) { + player.sendSystemMessage(Lang.t("commandify.warp.not_found", name)); + return 0; + } + + String[] parts = warp.dimension().split(":"); + String namespace = parts.length > 1 ? parts[0] : "minecraft"; + String path = parts.length > 1 ? parts[1] : warp.dimension(); + ResourceKey dim = ResourceKey.create(Registries.DIMENSION, ResourceLocation.fromNamespaceAndPath(namespace, path)); + + ServerLevel world = player.getServer().getLevel(dim); + if (world == null) { + player.sendSystemMessage(Lang.t("commandify.warp.invalid_world")); + return 0; + } + + BackManager.saveLastLocation(player); + + player.teleportTo(world, warp.x(), warp.y(), warp.z(), warp.yaw(), warp.pitch()); + player.sendSystemMessage(Lang.t("commandify.warp.success", name)); + return 1; + }) + ) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/CommandWarps.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/CommandWarps.java new file mode 100644 index 0000000..623b98f --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/CommandWarps.java @@ -0,0 +1,61 @@ +package fr.ultralion.commandify.commands.teleportation.warps; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.Config; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.HoverEvent; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.server.level.ServerPlayer; + +import java.util.Map; + +public class CommandWarps { + + public static void register(CommandDispatcher dispatcher) { + dispatcher.register( + Commands.literal("warps") + .executes(ctx -> { + ServerPlayer player = ctx.getSource().getPlayerOrException(); + + if (!Config.ENABLE_WARPS_COMMAND.get()) { + player.sendSystemMessage(Lang.t("commandify.warps.disabled")); + return 0; + } + + Map warps = WarpData.loadWarps(player.getServer()); + + if (warps.isEmpty()) { + player.sendSystemMessage(Lang.t("commandify.warps.empty")); + return 1; + } + + player.sendSystemMessage(Lang.t("commandify.warps.header")); + + for (var entry : warps.entrySet()) { + String name = entry.getKey(); + + MutableComponent warpLine = Component.literal("§e• §f" + name + " ") + .append( + Component.literal("§a[TP]") + .withStyle(style -> style + .withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/warp " + name)) + .withHoverEvent(new HoverEvent( + HoverEvent.Action.SHOW_TEXT, + Lang.t("commandify.warps.hover", name) + )) + ) + ); + + player.sendSystemMessage(warpLine); + } + + player.sendSystemMessage(Lang.t("commandify.warps.footer")); + return 1; + }) + ); + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/WarpData.java b/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/WarpData.java new file mode 100644 index 0000000..4013b89 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/teleportation/warps/WarpData.java @@ -0,0 +1,95 @@ +package fr.ultralion.commandify.commands.teleportation.warps; + +import com.google.gson.GsonBuilder; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import net.minecraft.server.MinecraftServer; +import net.minecraft.world.level.storage.LevelResource; + +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.HashMap; +import java.util.Map; + +public class WarpData { + + private static final String FILE_NAME = "warps.json"; + + private static Path getFile(MinecraftServer server) { + return server.getWorldPath(LevelResource.ROOT) + .resolve("data") + .resolve("commandify") + .resolve(FILE_NAME); + } + + public static Map loadWarps(MinecraftServer server) { + Map warps = new HashMap<>(); + Path file = getFile(server); + if (!Files.exists(file)) { + System.out.println(ConsoleColors.YELLOW + "[Commandify] No warp file found, skipping load." + ConsoleColors.RESET); + return warps; + } + + try (Reader reader = Files.newBufferedReader(file)) { + JsonObject json = JsonParser.parseReader(reader).getAsJsonObject(); + for (String key : json.keySet()) { + JsonObject data = json.getAsJsonObject(key); + warps.put(key, new Warp( + key, + data.get("dimension").getAsString(), + data.get("x").getAsDouble(), + data.get("y").getAsDouble(), + data.get("z").getAsDouble(), + data.get("yaw").getAsFloat(), + data.get("pitch").getAsFloat() + )); + } + System.out.println(ConsoleColors.GREEN + "[Commandify] Loaded " + warps.size() + " warps." + ConsoleColors.RESET); + } catch (IOException e) { + System.out.println(ConsoleColors.RED + "[Commandify] Failed to load warps: " + e.getMessage() + ConsoleColors.RESET); + } + return warps; + } + + public static void saveWarps(MinecraftServer server, Map warps) { + try { + Path file = getFile(server); + Files.createDirectories(file.getParent()); + + JsonObject json = new JsonObject(); + for (var entry : warps.entrySet()) { + Warp w = entry.getValue(); + JsonObject data = new JsonObject(); + data.addProperty("dimension", w.dimension); + data.addProperty("x", w.x); + data.addProperty("y", w.y); + data.addProperty("z", w.z); + data.addProperty("yaw", w.yaw); + data.addProperty("pitch", w.pitch); + json.add(entry.getKey(), data); + } + + try (Writer writer = Files.newBufferedWriter(file)) { + new GsonBuilder().setPrettyPrinting().create().toJson(json, writer); + } + + System.out.println(ConsoleColors.GREEN + "[Commandify] Saved " + warps.size() + " warps." + ConsoleColors.RESET); + } catch (IOException e) { + System.out.println(ConsoleColors.RED + "[Commandify] Failed to save warps: " + e.getMessage() + ConsoleColors.RESET); + } + } + + public static class ConsoleColors { + public static final String RESET = "\u001B[0m"; + public static final String RED = "\u001B[31m"; + public static final String GREEN = "\u001B[32m"; + public static final String YELLOW = "\u001B[33m"; + public static final String CYAN = "\u001B[36m"; + } + + public record Warp(String name, String dimension, double x, double y, double z, float yaw, float pitch) { + } +} diff --git a/src/main/java/fr/ultralion/commandify/commands/worldmanagement/CommandWorld.java b/src/main/java/fr/ultralion/commandify/commands/worldmanagement/CommandWorld.java new file mode 100644 index 0000000..e18fd2a --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/commands/worldmanagement/CommandWorld.java @@ -0,0 +1,110 @@ +package fr.ultralion.commandify.commands.worldmanagement; + +import com.mojang.brigadier.CommandDispatcher; +import fr.ultralion.commandify.Config; +import fr.ultralion.commandify.util.Lang; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.server.level.ServerLevel; + +public class CommandWorld { + + public static void register(CommandDispatcher dispatcher) { + + //day + dispatcher.register( + Commands.literal("day") + .requires(src -> src.hasPermission(2)) + .executes(ctx -> { + if (!Config.ENABLE_DAY_COMMAND.get()) return disabled(ctx.getSource()); + ServerLevel world = ctx.getSource().getLevel(); + world.setDayTime(1000); + ctx.getSource().sendSystemMessage(Lang.t("commandify.world.day")); + return 1; + }) + ); + + //night + dispatcher.register( + Commands.literal("night") + .requires(src -> src.hasPermission(2)) + .executes(ctx -> { + if (!Config.ENABLE_NIGHT_COMMAND.get()) return disabled(ctx.getSource()); + ServerLevel world = ctx.getSource().getLevel(); + world.setDayTime(13000); + ctx.getSource().sendSystemMessage(Lang.t("commandify.world.night")); + return 1; + }) + ); + + //noon + dispatcher.register( + Commands.literal("noon") + .requires(src -> src.hasPermission(2)) + .executes(ctx -> { + if (!Config.ENABLE_NOON_COMMAND.get()) return disabled(ctx.getSource()); + ServerLevel world = ctx.getSource().getLevel(); + world.setDayTime(6000); + ctx.getSource().sendSystemMessage(Lang.t("commandify.world.noon")); + return 1; + }) + ); + + //midnight + dispatcher.register( + Commands.literal("midnight") + .requires(src -> src.hasPermission(2)) + .executes(ctx -> { + if (!Config.ENABLE_MIDNIGHT_COMMAND.get()) return disabled(ctx.getSource()); + ServerLevel world = ctx.getSource().getLevel(); + world.setDayTime(18000); + ctx.getSource().sendSystemMessage(Lang.t("commandify.world.midnight")); + return 1; + }) + ); + + //sun + dispatcher.register( + Commands.literal("sun") + .requires(src -> src.hasPermission(2)) + .executes(ctx -> { + if (!Config.ENABLE_SUN_COMMAND.get()) return disabled(ctx.getSource()); + ServerLevel world = ctx.getSource().getLevel(); + world.setWeatherParameters(6000, 0, false, false); + ctx.getSource().sendSystemMessage(Lang.t("commandify.world.sun")); + return 1; + }) + ); + + //rain + dispatcher.register( + Commands.literal("rain") + .requires(src -> src.hasPermission(2)) + .executes(ctx -> { + if (!Config.ENABLE_RAIN_COMMAND.get()) return disabled(ctx.getSource()); + ServerLevel world = ctx.getSource().getLevel(); + world.setWeatherParameters(0, 6000, true, false); + ctx.getSource().sendSystemMessage(Lang.t("commandify.world.rain")); + return 1; + }) + ); + + //thunder + dispatcher.register( + Commands.literal("thunder") + .requires(src -> src.hasPermission(2)) + .executes(ctx -> { + if (!Config.ENABLE_THUNDER_COMMAND.get()) return disabled(ctx.getSource()); + ServerLevel world = ctx.getSource().getLevel(); + world.setWeatherParameters(0, 6000, true, true); + ctx.getSource().sendSystemMessage(Lang.t("commandify.world.thunder")); + return 1; + }) + ); + } + + private static int disabled(CommandSourceStack source) { + source.sendSystemMessage(Lang.t("commandify.world.disabled")); + return 0; + } +} diff --git a/src/main/java/fr/ultralion/commandify/events/ChatFilter.java b/src/main/java/fr/ultralion/commandify/events/ChatFilter.java new file mode 100644 index 0000000..d1af853 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/events/ChatFilter.java @@ -0,0 +1,29 @@ +package fr.ultralion.commandify.events; + +import fr.ultralion.commandify.Commandify; +import fr.ultralion.commandify.util.IgnoreManager; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.event.ServerChatEvent; + +@EventBusSubscriber(modid = Commandify.MOD_ID) +public class ChatFilter { + + @SubscribeEvent + public static void onPlayerChat(ServerChatEvent event) { + ServerPlayer sender = event.getPlayer(); + var server = sender.getServer(); + + String plain = event.getMessage().getString(); + + event.setCanceled(true); + + for (ServerPlayer target : server.getPlayerList().getPlayers()) { + if (!IgnoreManager.isIgnoring(target, sender)) { + target.sendSystemMessage(Component.literal("<" + sender.getName().getString() + "> " + plain)); + } + } + } +} diff --git a/src/main/java/fr/ultralion/commandify/util/ChatManager.java b/src/main/java/fr/ultralion/commandify/util/ChatManager.java new file mode 100644 index 0000000..8bca180 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/util/ChatManager.java @@ -0,0 +1,25 @@ +package fr.ultralion.commandify.util; + +import net.minecraft.server.level.ServerPlayer; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public class ChatManager { + + private static final Map LAST_MSG = new HashMap<>(); + + public static void setLastMessaged(ServerPlayer sender, ServerPlayer target) { + LAST_MSG.put(sender.getUUID(), target.getUUID()); + LAST_MSG.put(target.getUUID(), sender.getUUID()); + } + + public static UUID getLastMessaged(ServerPlayer player) { + return LAST_MSG.get(player.getUUID()); + } + + public static void clear() { + LAST_MSG.clear(); + } +} diff --git a/src/main/java/fr/ultralion/commandify/util/IgnoreManager.java b/src/main/java/fr/ultralion/commandify/util/IgnoreManager.java new file mode 100644 index 0000000..d92aea9 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/util/IgnoreManager.java @@ -0,0 +1,118 @@ +package fr.ultralion.commandify.util; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerPlayer; + +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.util.*; + +public class IgnoreManager { + + private static final Map> CACHE = new HashMap<>(); + private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); + private static File BASE_DIR; + + public static void init(MinecraftServer server) { + File dataDir = new File(server.getWorldPath(net.minecraft.world.level.storage.LevelResource.ROOT).toFile(), "data/commandify/ignored"); + if (!dataDir.exists()) dataDir.mkdirs(); + BASE_DIR = dataDir; + + File[] files = BASE_DIR.listFiles((dir, name) -> name.endsWith(".json")); + if (files != null) { + for (File f : files) { + try (Reader reader = new InputStreamReader(new FileInputStream(f), StandardCharsets.UTF_8)) { + UUID playerId = UUID.fromString(f.getName().replace(".json", "")); + List list = GSON.fromJson(reader, new TypeToken>() { + }.getType()); + if (list != null) { + Set ignored = new HashSet<>(); + for (String s : list) ignored.add(UUID.fromString(s)); + CACHE.put(playerId, ignored); + } + } catch (Exception e) { + System.out.println(ConsoleColors.RED + "[Commandify] Failed to load ignore file " + f.getName() + ": " + e.getMessage() + ConsoleColors.RESET); + } + } + } + + System.out.println(ConsoleColors.GREEN + "[Commandify] IgnoreManager initialized (" + CACHE.size() + " files loaded)." + ConsoleColors.RESET); + } + + public static void ignore(ServerPlayer ignorer, ServerPlayer target) { + Set ignored = CACHE.computeIfAbsent(ignorer.getUUID(), k -> new HashSet<>()); + ignored.add(target.getUUID()); + save(ignorer.getUUID()); + } + + public static void unignore(ServerPlayer ignorer, ServerPlayer target) { + Set ignored = CACHE.get(ignorer.getUUID()); + if (ignored != null) { + ignored.remove(target.getUUID()); + if (ignored.isEmpty()) { + CACHE.remove(ignorer.getUUID()); + deleteFile(ignorer.getUUID()); + } else { + save(ignorer.getUUID()); + } + } + } + + public static boolean isIgnoring(ServerPlayer ignorer, ServerPlayer target) { + Set ignored = CACHE.get(ignorer.getUUID()); + return ignored != null && ignored.contains(target.getUUID()); + } + + public static Set getIgnoredList(ServerPlayer player) { + return CACHE.getOrDefault(player.getUUID(), Collections.emptySet()); + } + + private static void save(UUID playerId) { + if (BASE_DIR == null) return; + Set ignored = CACHE.get(playerId); + File file = new File(BASE_DIR, playerId.toString() + ".json"); + + if (ignored == null || ignored.isEmpty()) { + if (file.exists()) file.delete(); + return; + } + + try (Writer writer = new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8)) { + List list = new ArrayList<>(); + for (UUID id : ignored) list.add(id.toString()); + GSON.toJson(list, writer); + } catch (IOException e) { + System.out.println(ConsoleColors.RED + "[Commandify] Failed to save ignore file for " + playerId + ": " + e.getMessage() + ConsoleColors.RESET); + } + } + + private static void deleteFile(UUID playerId) { + if (BASE_DIR == null) return; + File file = new File(BASE_DIR, playerId.toString() + ".json"); + if (file.exists()) file.delete(); + } + + public static void clearAll() { + CACHE.clear(); + if (BASE_DIR == null) return; + File[] files = BASE_DIR.listFiles(); + if (files != null) { + for (File f : files) f.delete(); + } + System.out.println(ConsoleColors.YELLOW + "[Commandify] All ignore data cleared." + ConsoleColors.RESET); + } + + /** + * Console colors for better readability + */ + public static class ConsoleColors { + public static final String RESET = "\u001B[0m"; + public static final String RED = "\u001B[31m"; + public static final String GREEN = "\u001B[32m"; + public static final String YELLOW = "\u001B[33m"; + public static final String CYAN = "\u001B[36m"; + } +} diff --git a/src/main/java/fr/ultralion/commandify/util/Lang.java b/src/main/java/fr/ultralion/commandify/util/Lang.java new file mode 100644 index 0000000..b418831 --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/util/Lang.java @@ -0,0 +1,128 @@ +package fr.ultralion.commandify.util; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.mojang.logging.LogUtils; +import fr.ultralion.commandify.Commandify; +import fr.ultralion.commandify.Config; +import net.minecraft.network.chat.Component; +import net.minecraft.server.MinecraftServer; +import org.slf4j.Logger; + +import java.io.*; +import java.lang.reflect.Type; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.HashMap; +import java.util.Map; + +public class Lang { + + private static final Gson GSON = new Gson(); + private static final Map TRANSLATIONS = new HashMap<>(); + private static final Logger LOGGER = LogUtils.getLogger(); + private static String currentLang = null; + + public static void load(MinecraftServer server) { + String langCode = Config.DEFAULT_LANGUAGE.get(); + if (langCode.equals(currentLang)) return; + + TRANSLATIONS.clear(); + currentLang = langCode; + + File langDir = new File("config/commandify/lang"); + if (!langDir.exists()) { + langDir.mkdirs(); + System.out.println(ConsoleColors.CYAN + "[Commandify] Created language folder: " + langDir.getAbsolutePath() + ConsoleColors.RESET); + } + + copyAllLangFiles(); + + File langFile = new File(langDir, langCode + ".json"); + if (!langFile.exists()) { + System.out.println(ConsoleColors.YELLOW + "[Commandify] Language file '" + langCode + "' not found in config folder, falling back to en_us.json" + ConsoleColors.RESET); + langFile = new File(langDir, "en_us.json"); + } + + try (Reader reader = new InputStreamReader(new FileInputStream(langFile), StandardCharsets.UTF_8)) { + Type type = new TypeToken>() { + }.getType(); + TRANSLATIONS.putAll(GSON.fromJson(reader, type)); + System.out.println(ConsoleColors.GREEN + "[Commandify] Loaded language: " + langCode + " (" + TRANSLATIONS.size() + " entries)" + ConsoleColors.RESET); + } catch (Exception e) { + System.out.println(ConsoleColors.RED + "[Commandify] Failed to load language " + langCode + ": " + e.getMessage() + ConsoleColors.RESET); + loadFallback(); + } + } + + private static void copyAllLangFiles() { + String[] availableLangs = {"en_us", "fr_fr"}; + + for (String lang : availableLangs) { + File target = new File("config/commandify/lang/" + lang + ".json"); + if (!target.exists()) { + copyFromJar(lang); + } + } + } + + private static void copyFromJar(String langCode) { + String internalPath = "/assets/" + Commandify.MOD_ID + "/lang/" + langCode + ".json"; + File target = new File("config/commandify/lang/" + langCode + ".json"); + + try (InputStream in = Lang.class.getResourceAsStream(internalPath)) { + if (in == null) { + System.out.println(ConsoleColors.YELLOW + "[Commandify] Could not find language '" + langCode + "' inside assets, skipping copy." + ConsoleColors.RESET); + return; + } + Files.copy(in, target.toPath()); + System.out.println(ConsoleColors.GREEN + "[Commandify] Copied language '" + langCode + "' to config/commandify/lang/" + ConsoleColors.RESET); + } catch (IOException e) { + System.out.println(ConsoleColors.RED + "[Commandify] Failed to copy language '" + langCode + "': " + e.getMessage() + ConsoleColors.RESET); + } + } + + private static void loadFallback() { + try (InputStream in = Lang.class.getResourceAsStream("/assets/" + Commandify.MOD_ID + "/lang/en_us.json")) { + if (in == null) { + System.out.println(ConsoleColors.RED + "[Commandify] Could not load fallback language en_us.json!" + ConsoleColors.RESET); + return; + } + Type type = new TypeToken>() { + }.getType(); + TRANSLATIONS.putAll(GSON.fromJson(new InputStreamReader(in), type)); + System.out.println(ConsoleColors.YELLOW + "[Commandify] Fallback language 'en_us' loaded (" + TRANSLATIONS.size() + " entries)" + ConsoleColors.RESET); + } catch (Exception e) { + System.out.println(ConsoleColors.RED + "[Commandify] Failed to load fallback language: " + e.getMessage() + ConsoleColors.RESET); + } + } + + public static Component t(String key, Object... args) { + String raw = TRANSLATIONS.getOrDefault(key, key); + try { + raw = String.format(raw, args); + } catch (Exception ignored) { + } + return Component.literal(raw); + } + + public static Component raw(String key) { + return Component.literal(TRANSLATIONS.getOrDefault(key, key)); + } + + public static String getRaw(String key) { + return TRANSLATIONS.getOrDefault(key, key); + } + + /** + * Console colors for pretty output (ANSI-compatible terminals) + */ + public static class ConsoleColors { + public static final String RESET = "\u001B[0m"; + public static final String RED = "\u001B[31m"; + public static final String GREEN = "\u001B[32m"; + public static final String YELLOW = "\u001B[33m"; + public static final String CYAN = "\u001B[36m"; + public static final String BOLD = "\u001B[1m"; + } +} diff --git a/src/main/java/fr/ultralion/commandify/util/OtherPlayerInventory.java b/src/main/java/fr/ultralion/commandify/util/OtherPlayerInventory.java new file mode 100644 index 0000000..1fd46fe --- /dev/null +++ b/src/main/java/fr/ultralion/commandify/util/OtherPlayerInventory.java @@ -0,0 +1,82 @@ +package fr.ultralion.commandify.util; + +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.Container; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; + +public class OtherPlayerInventory implements Container { + + private final ServerPlayer target; + + public OtherPlayerInventory(ServerPlayer target) { + this.target = target; + } + + private Inventory getTargetInventory() { + return target.getInventory(); + } + + @Override + public int getContainerSize() { + return 36; + } + + @Override + public boolean isEmpty() { + return getTargetInventory().items.stream().allMatch(ItemStack::isEmpty); + } + + @Override + public ItemStack getItem(int index) { + if (index >= 0 && index < getContainerSize()) { + return getTargetInventory().items.get(index); + } + return ItemStack.EMPTY; + } + + @Override + public ItemStack removeItem(int index, int count) { + ItemStack stack = getItem(index); + if (!stack.isEmpty()) { + ItemStack result = stack.split(count); + if (stack.isEmpty()) setItem(index, ItemStack.EMPTY); + setChanged(); + return result; + } + return ItemStack.EMPTY; + } + + @Override + public ItemStack removeItemNoUpdate(int index) { + ItemStack stack = getItem(index); + if (!stack.isEmpty()) setItem(index, ItemStack.EMPTY); + return stack; + } + + @Override + public void setItem(int index, ItemStack stack) { + if (index >= 0 && index < getContainerSize()) { + getTargetInventory().items.set(index, stack); + setChanged(); + } + } + + @Override + public void setChanged() { + if (target != null && target.containerMenu != null) + target.containerMenu.broadcastChanges(); + } + + @Override + public boolean stillValid(Player player) { + return target != null && target.isAlive() && !target.isRemoved(); + } + + @Override + public void clearContent() { + getTargetInventory().items.clear(); + setChanged(); + } +} diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 0000000..c739eb4 --- /dev/null +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,25 @@ +modLoader = "javafml" +loaderVersion = "${loader_version_range}" +license = "${mod_license}" + +[[mods]] +modId = "${mod_id}" +version = "${mod_version}" +displayName = "${mod_name}" +displayURL = "https://ultralion.xyz" +authors = "${mod_authors}" +description = '''${mod_description}''' + +[[dependencies."${mod_id}"]] +modId = "neoforge" +type = "required" +versionRange = "${neo_version_range}" +ordering = "NONE" +side = "SERVER" + +[[dependencies."${mod_id}"]] +modId = "minecraft" +type = "required" +versionRange = "${minecraft_version_range}" +ordering = "AFTER" +side = "BOTH" diff --git a/src/main/resources/assets/commandify/lang/en_us.json b/src/main/resources/assets/commandify/lang/en_us.json new file mode 100644 index 0000000..98ed6b2 --- /dev/null +++ b/src/main/resources/assets/commandify/lang/en_us.json @@ -0,0 +1,118 @@ +{ + "commandify.invsee.open_self": "§cYou cannot open your own inventory.", + "commandify.invsee.open_target": "§aYou are now editing §e%s§a's inventory.", + "commandify.invsee.title": "Inventory of %s", + "commandify.invsee.error": "§cInternal error while opening the inventory: %s", + "commandify.broadcast.format": "§6§l[Announcement] §e%s", + "commandify.broadcast.sent": "§aAnnouncement sent to all players.", + "commandify.ignore.self": "§cYou cannot ignore yourself.", + "commandify.ignore.already": "§eYou are already ignoring §6%s§e.", + "commandify.ignore.added": "§aYou are now ignoring §6%s§a.", + "commandify.ignored.empty": "§7You are not ignoring any players.", + "commandify.ignored.header": "§e👥 Ignored players:", + "commandify.ignored.hover": "Click to /unignore %s", + "commandify.unignore.not_ignored": "§eYou are not ignoring §6%s§e.", + "commandify.unignore.success": "§aYou are no longer ignoring §6%s§a.", + "commandify.msg.self": "§cYou cannot send a message to yourself.", + "commandify.msg.ignored": "§cThis player has ignored you. Your message was not delivered.", + "commandify.msg.to_sender": "§7[§bMe §7→ §e%s§7] §f%s", + "commandify.msg.to_target": "§7[§e%s §7→ §bMe§7] §f%s", + "commandify.reply.none": "§cNo recent message to reply to.", + "commandify.reply.offline": "§cThat player is no longer online.", + "commandify.reply.ignored": "§cThis player has ignored you. Your message was not delivered.", + "commandify.reply.to_sender": "§7[§bMe §7→ §e%s§7] §f%s", + "commandify.reply.to_target": "§7[§e%s §7→ §bMe§7] §f%s", + "commandify.info.title": "§6§lCommandify §r§7(v%s)", + "commandify.info.author": "§eAuthor: §fUltraLion", + "commandify.info.website": "§eWebsite: §fhttps://ultralion.xyz", + "commandify.info.modules_title": "§7Active Modules:", + "commandify.info.module.teleport": "§f- Teleportation (Homes, Warps, TPA, RTP, Back)", + "commandify.info.module.world": "§f- World Management (Time, Weather)", + "commandify.info.module.chat": "§f- Chat (Private Msg, Reply, Ignore, Broadcast)", + "commandify.info.modid": "§7Mod ID: §f%s", + "commandify.info.server_version": "§7Server Version: §f%s", + "commandify.info.players": "§7Online Players: §f%s", + "commandify.reload.success": "§a[Commandify] Configuration successfully reloaded!", + "commandify.reload.error": "§c[Commandify] An error occurred while reloading the configuration.", + "commandify.back.disabled": "§cThe /back command is disabled on this server.", + "commandify.back.no_previous": "§cNo previous location found.", + "commandify.back.success": "§aTeleported to your last location.", + "commandify.home.not_found": "§cThe home '%s' does not exist.", + "commandify.home.invalid_world": "§cThe world for this home does not exist or is not loaded.", + "commandify.home.success": "§aTeleported to home '%s'.", + "commandify.homes.disabled": "§cThe /homes command is disabled on this server.", + "commandify.homes.none": "§7You haven’t set any homes yet.", + "commandify.homes.header": "§6===== Your homes (%s) =====", + "commandify.homes.footer": "§6==============================", + "commandify.homes.hover_tp": "§7Click to teleport to '%s'.", + "commandify.sethome.limit_reached": "§cYou have reached your home limit (%s).", + "commandify.sethome.success": "§aHome '%s' has been set to your current location.", + "commandify.delhome.not_found": "§cThe home '%s' does not exist.", + "commandify.delhome.success": "§aHome '%s' has been successfully deleted.", + "commandify.rtp.no_world": "§cUnable to find the main world.", + "commandify.rtp.disabled": "§cThe /rtp command is disabled on this server.", + "commandify.rtp.cooldown": "§e⏳ Wait %s seconds before using /rtp again.", + "commandify.rtp.searching": "§7Searching for a safe place in the world...", + "commandify.rtp.no_safe": "§cNo safe location found after several attempts.", + "commandify.rtp.success": "§aTeleported to a random global location: §e%s", + "commandify.setspawn.disabled": "§cThe /setspawn command is disabled in the configuration.", + "commandify.setspawn.player_only": "§cThis command can only be used by a player.", + "commandify.setspawn.success": "§aGlobal spawn point set to your current position!", + "commandify.spawn.disabled": "§cThe /spawn command is disabled in the configuration.", + "commandify.spawn.player_only": "§cThis command can only be used by a player.", + "commandify.spawn.not_set": "§cNo spawn point has been set. Use /setspawn.", + "commandify.spawn.no_world": "§cError: Overworld not found.", + "commandify.spawn.success": "§aTeleported to the server spawn point.", + "commandify.tpa.self": "§cYou cannot send a teleport request to yourself.", + "commandify.tpa.blocked": "§cThis player is not accepting teleport requests.", + "commandify.tpa.sent": "§aTeleport request sent to §e%s§a.", + "commandify.tpa.accept_button": "[✅ Accept]", + "commandify.tpa.deny_button": "[❌ Deny]", + "commandify.tpa.accept_hover": "§aClick to accept the teleport request.", + "commandify.tpa.deny_hover": "§cClick to deny the teleport request.", + "commandify.tpa.request_message": " wants to teleport to you. ", + "commandify.tpaccept.none": "§cYou have no pending teleport request.", + "commandify.tpaccept.offline": "§cThe player who sent the request is no longer online.", + "commandify.tpaccept.here_target": "§aYou accepted the request. Teleporting to §e%s§a!", + "commandify.tpaccept.here_requester": "§a%s§a teleported to you.", + "commandify.tpaccept.tpa_requester": "§aTeleported to §e%s§a.", + "commandify.tpaccept.tpa_target": "§a%s§a teleported to you.", + "commandify.tpadeny.none": "§cYou have no pending teleport request.", + "commandify.tpadeny.to_requester": "§c%s has denied your teleport request.", + "commandify.tpadeny.to_target": "§aTeleport request denied.", + "commandify.tpahere.self": "§cYou cannot send a teleport request to yourself.", + "commandify.tpahere.blocked": "§cThat player does not accept teleport requests.", + "commandify.tpahere.sent": "§aTeleport request sent to §e%s§a to teleport to you.", + "commandify.tpahere.request_message": " §ewants you to teleport to them. ", + "commandify.tpahere.accept_button": "[✅ Accept]", + "commandify.tpahere.deny_button": "[❌ Deny]", + "commandify.tpahere.accept_hover": "§aClick to accept", + "commandify.tpahere.deny_hover": "§cClick to deny", + "commandify.tpatoggle.enabled": "§aYou are now accepting teleport requests.", + "commandify.tpatoggle.disabled": "§cYou are now refusing all teleport requests.", + "commandify.tpa.expired_requester": "§cYour teleport request to %s has expired.", + "commandify.tpa.expired_target": "§7The teleport request from %s has expired.", + "commandify.tpa.unknown_player": "a player", + "commandify.setwarp.disabled": "§cThe /setwarp command is disabled on this server.", + "commandify.setwarp.success": "§aWarp '%s' has been successfully created!", + "commandify.delwarp.disabled": "§cThe /delwarp command is disabled on this server.", + "commandify.delwarp.not_found": "§cThe warp '%s' does not exist.", + "commandify.delwarp.success": "§aWarp '%s' successfully deleted.", + "commandify.warp.disabled": "§cThe /warp command is disabled on this server.", + "commandify.warp.not_found": "§cThe warp '%s' does not exist.", + "commandify.warp.invalid_world": "§cThe warp's world does not exist or is not loaded.", + "commandify.warp.success": "§aTeleported to warp '%s'.", + "commandify.warps.disabled": "§cThe /warps command is disabled on this server.", + "commandify.warps.empty": "§7No warps have been created yet.", + "commandify.warps.header": "§6--- Available warps ---", + "commandify.warps.footer": "§6---------------------------", + "commandify.warps.hover": "§7Click to teleport to §e%s", + "commandify.world.disabled": "§cThis command is disabled on this server.", + "commandify.world.day": "§eTime set to §6day.", + "commandify.world.night": "§9Time set to §bnight.", + "commandify.world.noon": "§eTime set to §6noon.", + "commandify.world.midnight": "§9Time set to §bmidnight.", + "commandify.world.sun": "§eWeather set to §6sunny.", + "commandify.world.rain": "§bWeather set to §9rain.", + "commandify.world.thunder": "§bWeather set to §cthunderstorm." +} \ No newline at end of file diff --git a/src/main/resources/assets/commandify/lang/fr_fr.json b/src/main/resources/assets/commandify/lang/fr_fr.json new file mode 100644 index 0000000..b9d35a6 --- /dev/null +++ b/src/main/resources/assets/commandify/lang/fr_fr.json @@ -0,0 +1,118 @@ +{ + "commandify.invsee.open_self": "§cTu ne peux pas ouvrir ton propre inventaire.", + "commandify.invsee.open_target": "§aTu modifies l’inventaire de §e%s§a.", + "commandify.invsee.title": "Inventaire de %s", + "commandify.invsee.error": "§cErreur interne lors de l’ouverture de l’inventaire : %s", + "commandify.broadcast.format": "§6§l[Annonce] §e%s", + "commandify.broadcast.sent": "§aAnnonce envoyée à tous les joueurs.", + "commandify.ignore.self": "§cTu ne peux pas t’ignorer toi-même.", + "commandify.ignore.already": "§eTu ignores déjà §6%s§e.", + "commandify.ignore.added": "§aTu ignores maintenant §6%s§a.", + "commandify.ignored.empty": "§7Tu n’as ignoré aucun joueur.", + "commandify.ignored.header": "§e👥 Joueurs ignorés :", + "commandify.ignored.hover": "Cliquer pour /unignore %s", + "commandify.unignore.not_ignored": "§eTu n’ignores pas §6%s§e.", + "commandify.unignore.success": "§aTu n’ignores plus §6%s§a.", + "commandify.msg.self": "§cTu ne peux pas t’envoyer un message à toi-même.", + "commandify.msg.ignored": "§cCe joueur t’a ignoré, ton message ne lui sera pas envoyé.", + "commandify.msg.to_sender": "§7[§bMoi §7→ §e%s§7] §f%s", + "commandify.msg.to_target": "§7[§e%s §7→ §bMoi§7] §f%s", + "commandify.reply.none": "§cAucun message récent à qui répondre.", + "commandify.reply.offline": "§cCe joueur n’est plus en ligne.", + "commandify.reply.ignored": "§cCe joueur t’a ignoré, ton message ne lui sera pas envoyé.", + "commandify.reply.to_sender": "§7[§bMoi §7→ §e%s§7] §f%s", + "commandify.reply.to_target": "§7[§e%s §7→ §bMoi§7] §f%s", + "commandify.info.title": "§6§lCommandify §r§7(v%s)", + "commandify.info.author": "§eAuteur : §fUltraLion", + "commandify.info.website": "§eSite : §fhttps://ultralion.xyz", + "commandify.info.modules_title": "§7Modules actifs :", + "commandify.info.module.teleport": "§f- Téléportation (Homes, Warps, TPA, RTP, Back)", + "commandify.info.module.world": "§f- Monde (Temps, Météo)", + "commandify.info.module.chat": "§f- Chat (MP, Réponse, Ignore, Broadcast)", + "commandify.info.modid": "§7Mod ID : §f%s", + "commandify.info.server_version": "§7Version serveur : §f%s", + "commandify.info.players": "§7Joueurs connectés : §f%s", + "commandify.reload.success": "§a[Commandify] Configuration rechargée avec succès !", + "commandify.reload.error": "§c[Commandify] Erreur lors du rechargement de la configuration.", + "commandify.back.disabled": "§cLa commande /back est désactivée sur ce serveur.", + "commandify.back.no_previous": "§cAucune position précédente trouvée.", + "commandify.back.success": "§aTéléportation vers ta dernière position.", + "commandify.home.not_found": "§cLe home '%s' n’existe pas.", + "commandify.home.invalid_world": "§cLe monde du home n’existe pas ou n’est pas chargé.", + "commandify.home.success": "§aTéléportation vers le home '%s'.", + "commandify.homes.disabled": "§cLa commande /homes est désactivée sur ce serveur.", + "commandify.homes.none": "§7Tu n’as défini aucun home pour le moment.", + "commandify.homes.header": "§6===== Tes homes (%s) =====", + "commandify.homes.footer": "§6==============================", + "commandify.homes.hover_tp": "§7Clique pour te téléporter à '%s'.", + "commandify.sethome.limit_reached": "§cTu as atteint la limite de homes (%s).", + "commandify.sethome.success": "§aHome '%s' défini à ta position actuelle.", + "commandify.delhome.not_found": "§cLe home '%s' n’existe pas.", + "commandify.delhome.success": "§aHome '%s' supprimé avec succès.", + "commandify.rtp.no_world": "§cImpossible de trouver le monde principal.", + "commandify.rtp.disabled": "§cLa commande /rtp est désactivée sur ce serveur.", + "commandify.rtp.cooldown": "§e⏳ Attends encore %s secondes avant d’utiliser /rtp.", + "commandify.rtp.searching": "§7Recherche d’un lieu sûr dans le monde...", + "commandify.rtp.no_safe": "§cAucun endroit sûr trouvé après plusieurs essais.", + "commandify.rtp.success": "§aTéléporté à un lieu aléatoire global : §e%s", + "commandify.setspawn.disabled": "§cLa commande /setspawn est désactivée dans la configuration.", + "commandify.setspawn.player_only": "§cCette commande doit être utilisée par un joueur.", + "commandify.setspawn.success": "§aSpawn défini à ta position exacte !", + "commandify.spawn.disabled": "§cLa commande /spawn est désactivée dans la configuration.", + "commandify.spawn.player_only": "§cCette commande doit être utilisée par un joueur.", + "commandify.spawn.not_set": "§cAucun spawn défini. Utilise /setspawn.", + "commandify.spawn.no_world": "§cErreur : monde Overworld introuvable.", + "commandify.spawn.success": "§aTéléporté au spawn du serveur.", + "commandify.tpa.self": "§cTu ne peux pas t’envoyer une demande à toi-même.", + "commandify.tpa.blocked": "§cCe joueur n’accepte pas les demandes de téléportation.", + "commandify.tpa.sent": "§aDemande de téléportation envoyée à §e%s§a.", + "commandify.tpa.accept_button": "[✅ Accepter]", + "commandify.tpa.deny_button": "[❌ Refuser]", + "commandify.tpa.accept_hover": "§aClique pour accepter la demande de téléportation.", + "commandify.tpa.deny_hover": "§cClique pour refuser la demande de téléportation.", + "commandify.tpa.request_message": " souhaite se téléporter à toi. ", + "commandify.tpaccept.none": "§cAucune demande de téléportation en attente.", + "commandify.tpaccept.offline": "§cLe joueur ayant fait la demande n’est plus en ligne.", + "commandify.tpaccept.here_target": "§aTu as accepté la demande, téléportation vers §e%s§a !", + "commandify.tpaccept.here_requester": "§a%s§a s’est téléporté à toi.", + "commandify.tpaccept.tpa_requester": "§aTéléportation vers §e%s§a.", + "commandify.tpaccept.tpa_target": "§a%s§a s’est téléporté à toi.", + "commandify.tpadeny.none": "§cAucune demande de téléportation en attente.", + "commandify.tpadeny.to_requester": "§c%s a refusé ta demande de téléportation.", + "commandify.tpadeny.to_target": "§aDemande de téléportation refusée.", + "commandify.tpahere.self": "§cTu ne peux pas t’envoyer une demande à toi-même.", + "commandify.tpahere.blocked": "§cCe joueur n’accepte pas les demandes de téléportation.", + "commandify.tpahere.sent": "§aDemande envoyée à §e%s§a pour qu’il se téléporte à toi.", + "commandify.tpahere.request_message": " §ete demande de te téléporter à lui. ", + "commandify.tpahere.accept_button": "[✅ Accepter]", + "commandify.tpahere.deny_button": "[❌ Refuser]", + "commandify.tpahere.accept_hover": "§aClique pour accepter", + "commandify.tpahere.deny_hover": "§cClique pour refuser", + "commandify.tpatoggle.enabled": "§aTu acceptes maintenant les demandes de téléportation.", + "commandify.tpatoggle.disabled": "§cTu refuses désormais toutes les demandes de téléportation.", + "commandify.tpa.expired_requester": "§cTa demande de téléportation vers %s a expiré.", + "commandify.tpa.expired_target": "§7La demande de téléportation de %s a expiré.", + "commandify.tpa.unknown_player": "un joueur", + "commandify.setwarp.disabled": "§cLa commande /setwarp est désactivée sur ce serveur.", + "commandify.setwarp.success": "§aWarp '%s' défini avec succès !", + "commandify.delwarp.disabled": "§cLa commande /delwarp est désactivée sur ce serveur.", + "commandify.delwarp.not_found": "§cLe warp '%s' n’existe pas.", + "commandify.delwarp.success": "§aWarp '%s' supprimé avec succès.", + "commandify.warp.disabled": "§cLa commande /warp est désactivée sur ce serveur.", + "commandify.warp.not_found": "§cLe warp '%s' n’existe pas.", + "commandify.warp.invalid_world": "§cLe monde du warp n’existe pas ou n’est pas chargé.", + "commandify.warp.success": "§aTéléportation vers le warp '%s'.", + "commandify.warps.disabled": "§cLa commande /warps est désactivée sur ce serveur.", + "commandify.warps.empty": "§7Aucun warp n’a encore été défini.", + "commandify.warps.header": "§6--- Warps disponibles ---", + "commandify.warps.footer": "§6---------------------------", + "commandify.warps.hover": "§7Clique pour te téléporter à §e%s", + "commandify.world.disabled": "§cCette commande est désactivée sur ce serveur.", + "commandify.world.day": "§eHeure définie sur §6jour.", + "commandify.world.night": "§9Heure définie sur §bla nuit.", + "commandify.world.noon": "§eHeure définie sur §6midi.", + "commandify.world.midnight": "§9Heure définie sur §bminuit.", + "commandify.world.sun": "§eMétéo réglée sur §6ensoleillé.", + "commandify.world.rain": "§bMétéo réglée sur §9pluie.", + "commandify.world.thunder": "§bMétéo réglée sur §corage." +} \ No newline at end of file