Advertisement
Guest User

Gradle.Build

a guest
Sep 24th, 2024
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.28 KB | None | 0 0
  1. import java.util.jar.JarFile
  2.  
  3. plugins {
  4. id 'fabric-loom' version '1.0-SNAPSHOT'
  5. id 'maven-publish'
  6. id 'com.github.johnrengelman.shadow' version '6.0.0'
  7. }
  8.  
  9. sourceCompatibility = JavaVersion.VERSION_1_8
  10. targetCompatibility = JavaVersion.VERSION_1_8
  11.  
  12. archivesBaseName = project.archives_base_name
  13. version = project.mod_version + (System.getenv("CIRCLE_BUILD_NUM") != null ? ("-" + System.getenv("CIRCLE_BUILD_NUM")) : "")
  14. group = project.maven_group
  15.  
  16. minecraft {
  17. accessWidener "src/main/resources/meteor-client.accesswidener"
  18. }
  19.  
  20. repositories {
  21. maven { url "https://jitpack.io" }
  22. }
  23.  
  24. dependencies {
  25. def dependency = { id ->
  26. modImplementation id
  27. shadow id
  28. }
  29.  
  30. //to change the versions see the gradle.properties file
  31. minecraft "com.mojang:minecraft:${project.minecraft_version}"
  32. mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
  33. modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
  34.  
  35. // Fabric API. This is technically optional, but you probably want it anyway.
  36. modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
  37.  
  38. // PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
  39. // You may need to force-disable transitiveness on them.
  40.  
  41. modImplementation "com.gitlab.CDAGaming:fabritone:fabritone~1.16.x-Fabric-SNAPSHOT"
  42. include "com.gitlab.CDAGaming:fabritone:fabritone~1.16.x-Fabric-SNAPSHOT"
  43.  
  44. dependency "com.github.ZeroMemes:Alpine:1.9"
  45. dependency "com.github.Vatuu:discord-rpc:1.6.2"
  46. dependency "com.g00fy2:versioncompare:1.3.4"
  47. }
  48.  
  49. shadowJar {
  50. configurations = [ project.configurations.shadow ]
  51. }
  52.  
  53. processResources {
  54. inputs.property "version", project.version
  55.  
  56. from(sourceSets.main.resources.srcDirs) {
  57. include "fabric.mod.json"
  58. expand "version": project.version
  59. }
  60.  
  61. from(sourceSets.main.resources.srcDirs) {
  62. exclude "fabric.mod.json"
  63. }
  64. }
  65.  
  66. // ensure that the encoding is set to UTF-8, no matter what the system default is
  67. // this fixes some edge cases with special characters not displaying correctly
  68. // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
  69. tasks.withType(JavaCompile) {
  70. options.encoding = "UTF-8"
  71. }
  72.  
  73. // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
  74. // if it is present.
  75. // If you remove this task, sources will not be generated.
  76. task sourcesJar(type: Jar, dependsOn: classes) {
  77. classifier = "sources"
  78. from sourceSets.main.allSource
  79. }
  80.  
  81. task generatePacketUtils() {
  82. doLast {
  83. // Get minecraft jar file
  84. def mc = ""
  85. def dir = new File(".gradle/loom-cache/1.16.3-projectmapped-net.fabricmc.yarn-1.16.3+build.7-v2")
  86. for (def file in dir.listFiles()) {
  87. if (file.name.contains("minecraft") && file.name.contains("mapped") && file.name.endsWith((String) project.yarn_mappings + "-v2.jar")) {
  88. mc = file.absolutePath
  89. break
  90. }
  91. }
  92.  
  93. // Get packets
  94. def s2cPackets = []
  95. def c2sPackets = []
  96.  
  97. def file = new JarFile(mc)
  98. for (entry in file.entries()) {
  99. if (entry.name.endsWith("S2CPacket.class")) s2cPackets << entry.name.substring(0, entry.name.length() - 6)
  100. else if (entry.name.endsWith("C2SPacket.class")) c2sPackets << entry.name.substring(0, entry.name.length() - 6)
  101. }
  102.  
  103. // Generate PacketUtils.java
  104. def writer = new File("src/main/java/minegame159/meteorclient/utils/PacketUtils.java").newWriter()
  105. writer << "package minegame159.meteorclient.utils;\n\n"
  106.  
  107. // Write imports
  108. writer << "import net.minecraft.network.Packet;\n"
  109. writer << "import java.util.Map;\n"
  110. writer << "import java.util.HashMap;\n"
  111. writer << "import java.util.Set;\n"
  112.  
  113. // Write class
  114. writer << "\npublic class PacketUtils {\n"
  115.  
  116. // Write fields
  117. writer << " private static final Map<Class<? extends Packet<?>>, String> S2C_PACKETS = new HashMap<>();\n"
  118. writer << " private static final Map<Class<? extends Packet<?>>, String> C2S_PACKETS = new HashMap<>();\n\n"
  119. writer << " private static final Map<String, Class<? extends Packet<?>>> S2C_PACKETS_R = new HashMap<>();\n"
  120. writer << " private static final Map<String, Class<? extends Packet<?>>> C2S_PACKETS_R = new HashMap<>();\n\n"
  121.  
  122. // Write static block
  123. writer << " static {\n"
  124. s2cPackets.each { def packet = (String) it; def name = packet.substring(packet.lastIndexOf("/") + 1); writer << " S2C_PACKETS.put(${packet.replace("/", ".")}.class, \"$name\");\n" }
  125. writer << "\n"
  126. c2sPackets.each { def packet = (String) it; def name = packet.substring(packet.lastIndexOf("/") + 1); writer << " C2S_PACKETS.put(${packet.replace("/", ".")}.class, \"$name\");\n" }
  127. writer << "\n\n"
  128. s2cPackets.each { def packet = (String) it; def name = packet.substring(packet.lastIndexOf("/") + 1); writer << " S2C_PACKETS_R.put(\"$name\", ${packet.replace("/", ".")}.class);\n" }
  129. writer << "\n"
  130. c2sPackets.each { def packet = (String) it; def name = packet.substring(packet.lastIndexOf("/") + 1); writer << " C2S_PACKETS_R.put(\"$name\", ${packet.replace("/", ".")}.class);\n" }
  131. writer << " }\n\n"
  132.  
  133. // Write getName method
  134. writer << " public static String getName(Class<? extends Packet<?>> packetClass) {\n"
  135. writer << " String name = S2C_PACKETS.get(packetClass);\n"
  136. writer << " if (name != null) return name;\n"
  137. writer << " return C2S_PACKETS.get(packetClass);\n"
  138. writer << " }\n\n"
  139.  
  140. // Write getPacket method
  141. writer << " public static Class<? extends Packet<?>> getPacket(String name) {\n"
  142. writer << " Class<? extends Packet<?>> packet = S2C_PACKETS_R.get(name);\n"
  143. writer << " if (packet != null) return packet;\n"
  144. writer << " return C2S_PACKETS_R.get(name);\n"
  145. writer << " }\n\n"
  146.  
  147. // Write getS2CPackets method
  148. writer << " public static Set<Class<? extends Packet<?>>> getS2CPackets() {\n"
  149. writer << " return S2C_PACKETS.keySet();\n"
  150. writer << " }\n\n"
  151.  
  152. // Write getC2SPackets method
  153. writer << " public static Set<Class<? extends Packet<?>>> getC2SPackets() {\n"
  154. writer << " return C2S_PACKETS.keySet();\n"
  155. writer << " }\n"
  156.  
  157. // Write end class
  158. writer << "}\n"
  159.  
  160. writer.close()
  161. }
  162. }
  163.  
  164. jar {
  165. from "LICENSE"
  166. }
  167.  
  168. remapJar {
  169. dependsOn shadowJar
  170. input.set(shadowJar.archiveFile)
  171. }
  172.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement