diff --git a/build.gradle b/build.gradle index b9e1b9a..8177609 100644 --- a/build.gradle +++ b/build.gradle @@ -1,19 +1,19 @@ buildscript { repositories { maven { url = 'https://maven.minecraftforge.net' } - jcenter() mavenCentral() gradlePluginPortal() } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true - classpath "com.github.jengelman.gradle.plugins:shadow:5.1.0" +// classpath 'com.github.jengelman.gradle.plugins:shadow:6.1.0' } } apply plugin: 'net.minecraftforge.gradle' // Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. -apply plugin: 'com.github.johnrengelman.shadow' +//apply plugin: 'com.github.johnrengelman.shadow' +//apply plugin: 'java' apply plugin: 'idea' apply plugin: 'maven-publish' @@ -21,8 +21,7 @@ version = mod_version group = "igoodie.twitchspawn" archivesBaseName = "twitchspawn_" + minecraft_version -sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = - compileJava.targetCompatibility = '16' // Need this here so eclipse task generates correctly. +java.toolchain.languageVersion = JavaLanguageVersion.of(17) println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) @@ -97,6 +96,15 @@ repositories { mavenCentral() } +configurations { + shade + implementation.extendsFrom shade +} + +afterEvaluate { + println configurations.runtimeClasspath.extendsFrom +} + dependencies { // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed // that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied. @@ -108,7 +116,7 @@ dependencies { // shadow group: 'com.electronwill.night-config', name: 'toml', version: '3.6.0' // SocketIO Client - shadow "io.socket:socket.io-client:1.0.0" + shade "io.socket:socket.io-client:1.0.0" // JUnit 5 for testings testImplementation 'org.junit.jupiter:junit-jupiter-api:5.5.0' @@ -121,16 +129,37 @@ dependencies { } -shadowJar { - configurations = [project.configurations.shadow] - classifier "" -// relocate 'com.electronwill.nightconfig.core', "com.electronwill.nightconfig.${mod_id}.core" -// relocate 'com.electronwill.nightconfig.toml', "com.electronwill.nightconfig.${mod_id}.toml" -// relocate "io.socket.client", "io.socket.${mod_id}.client" +// Fix the classpath the right way and once and for all +afterEvaluate { + // Collect deps in runtimeClasspath but NOT in minecraft + def deps = (configurations.runtimeClasspath - configurations.minecraft).join(';') + // Add deps to classpath + minecraft.runs.each { run -> + run.token 'minecraft_classpath', deps + } } +jar { + configurations.shade.each { dep -> + from(project.zipTree(dep)){ + exclude 'META-INF', 'META-INF/**' + } + } +} + +//shadowJar { +// configurations = [project.configurations.shadow] +// classifier "" +//// relocate 'com.electronwill.nightconfig.core', "com.electronwill.nightconfig.${mod_id}.core" +//// relocate 'com.electronwill.nightconfig.toml', "com.electronwill.nightconfig.${mod_id}.toml" +//// relocate "io.socket.client", "io.socket.${mod_id}.client" +//} + +// ==================================== + // Example for how to get properties into the manifest for reading by the runtime.. jar { + //noinspection GroovyAssignabilityCheck manifest { attributes([ "Specification-Title" : mod_id, @@ -144,6 +173,8 @@ jar { } } +// ==================================== + // Example configuration to allow publishing using the maven-publish task // This is the preferred method to reobfuscate your jar file jar.finalizedBy('reobfJar') @@ -166,11 +197,3 @@ publishing { test { useJUnitPlatform() } - -artifacts { - archives shadowJar -} - -reobf { - shadowJar {} -} diff --git a/gradle.properties b/gradle.properties index a13bb64..0681144 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,8 +7,8 @@ mod_id=twitchspawn mod_group=net.programmer.igoodie mod_version=1.9.2 -minecraft_version=1.17.1 -forge_version=37.0.9 +minecraft_version=1.18.2 +forge_version=40.0.52 mcpMappings_channel=official -mcpMappings_version=1.17.1 +mcpMappings_version=1.18.2 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 94336fc..7454180 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5b0e045..05679dc 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Mon Jul 20 02:58:43 EET 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 4f906e0..744e882 100644 --- a/gradlew +++ b/gradlew @@ -72,7 +72,7 @@ case "`uname`" in Darwin* ) darwin=true ;; - MINGW* ) + MSYS* | MINGW* ) msys=true ;; NONSTOP* ) diff --git a/gradlew.bat b/gradlew.bat index f955316..107acd3 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,3 +1,19 @@ +@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 @@ -13,15 +29,18 @@ if "%DIRNAME%" == "" set DIRNAME=. 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= +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%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :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 %CMD_LINE_ARGS% +"%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 diff --git a/src/main/java/net/programmer/igoodie/twitchspawn/TwitchSpawn.java b/src/main/java/net/programmer/igoodie/twitchspawn/TwitchSpawn.java index 5b7d3cd..84c4d79 100644 --- a/src/main/java/net/programmer/igoodie/twitchspawn/TwitchSpawn.java +++ b/src/main/java/net/programmer/igoodie/twitchspawn/TwitchSpawn.java @@ -11,6 +11,9 @@ import net.minecraftforge.event.RegisterCommandsEvent; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.server.ServerAboutToStartEvent; +import net.minecraftforge.event.server.ServerStartingEvent; +import net.minecraftforge.event.server.ServerStoppingEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.ModLoadingStage; import net.minecraftforge.fml.common.Mod; @@ -19,10 +22,7 @@ import net.minecraftforge.fml.event.lifecycle.FMLDedicatedServerSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.fml.loading.FMLEnvironment; -import net.minecraftforge.fmllegacy.network.NetworkDirection; -import net.minecraftforge.fmlserverevents.FMLServerAboutToStartEvent; -import net.minecraftforge.fmlserverevents.FMLServerStartingEvent; -import net.minecraftforge.fmlserverevents.FMLServerStoppingEvent; +import net.minecraftforge.network.NetworkDirection; import net.programmer.igoodie.twitchspawn.client.gui.GlobalChatCooldownOverlay; import net.programmer.igoodie.twitchspawn.client.gui.StatusIndicatorOverlay; import net.programmer.igoodie.twitchspawn.command.RulesetNameArgumentType; @@ -94,13 +94,13 @@ public void onRegisterCommands(RegisterCommandsEvent event) { } @SubscribeEvent - public void onServerAboutToStart(FMLServerAboutToStartEvent event) { + public void onServerAboutToStart(ServerAboutToStartEvent event) { SERVER = event.getServer(); TRACE_MANAGER = new TraceManager(); } @SubscribeEvent - public void onServerStarting(FMLServerStartingEvent event) { + public void onServerStarting(ServerStartingEvent event) { if (ConfigManager.PREFERENCES.autoStart == PreferencesConfig.AutoStartEnum.ENABLED) { LOGGER.info("Auto-start is enabled. Attempting to start tracers."); TRACE_MANAGER.start(); @@ -108,7 +108,7 @@ public void onServerStarting(FMLServerStartingEvent event) { } @SubscribeEvent - public void onServerStopping(FMLServerStoppingEvent event) { + public void onServerStopping(ServerStoppingEvent event) { SERVER = null; if (TRACE_MANAGER.isRunning()) diff --git a/src/main/java/net/programmer/igoodie/twitchspawn/eventqueue/EventQueue.java b/src/main/java/net/programmer/igoodie/twitchspawn/eventqueue/EventQueue.java index 42247ec..749f61b 100644 --- a/src/main/java/net/programmer/igoodie/twitchspawn/eventqueue/EventQueue.java +++ b/src/main/java/net/programmer/igoodie/twitchspawn/eventqueue/EventQueue.java @@ -1,7 +1,7 @@ package net.programmer.igoodie.twitchspawn.eventqueue; import net.minecraft.server.level.ServerPlayer; -import net.minecraftforge.fmllegacy.network.NetworkDirection; +import net.minecraftforge.network.NetworkDirection; import net.programmer.igoodie.twitchspawn.TwitchSpawn; import net.programmer.igoodie.twitchspawn.network.NetworkManager; import net.programmer.igoodie.twitchspawn.network.packet.GlobalChatCooldownPacket; diff --git a/src/main/java/net/programmer/igoodie/twitchspawn/network/NetworkManager.java b/src/main/java/net/programmer/igoodie/twitchspawn/network/NetworkManager.java index c1069c5..2f09198 100644 --- a/src/main/java/net/programmer/igoodie/twitchspawn/network/NetworkManager.java +++ b/src/main/java/net/programmer/igoodie/twitchspawn/network/NetworkManager.java @@ -1,8 +1,8 @@ package net.programmer.igoodie.twitchspawn.network; import net.minecraft.resources.ResourceLocation; -import net.minecraftforge.fmllegacy.network.NetworkRegistry; -import net.minecraftforge.fmllegacy.network.simple.SimpleChannel; +import net.minecraftforge.network.NetworkRegistry; +import net.minecraftforge.network.simple.SimpleChannel; import net.programmer.igoodie.twitchspawn.TwitchSpawn; import net.programmer.igoodie.twitchspawn.network.packet.GlobalChatCooldownPacket; import net.programmer.igoodie.twitchspawn.network.packet.OsRunPacket; diff --git a/src/main/java/net/programmer/igoodie/twitchspawn/network/packet/GlobalChatCooldownPacket.java b/src/main/java/net/programmer/igoodie/twitchspawn/network/packet/GlobalChatCooldownPacket.java index b1b7f25..abedc9c 100644 --- a/src/main/java/net/programmer/igoodie/twitchspawn/network/packet/GlobalChatCooldownPacket.java +++ b/src/main/java/net/programmer/igoodie/twitchspawn/network/packet/GlobalChatCooldownPacket.java @@ -1,7 +1,7 @@ package net.programmer.igoodie.twitchspawn.network.packet; import net.minecraft.network.FriendlyByteBuf; -import net.minecraftforge.fmllegacy.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent; import net.programmer.igoodie.twitchspawn.client.gui.GlobalChatCooldownOverlay; import java.util.function.Supplier; diff --git a/src/main/java/net/programmer/igoodie/twitchspawn/network/packet/OsRunPacket.java b/src/main/java/net/programmer/igoodie/twitchspawn/network/packet/OsRunPacket.java index 0e8761b..ae401a5 100644 --- a/src/main/java/net/programmer/igoodie/twitchspawn/network/packet/OsRunPacket.java +++ b/src/main/java/net/programmer/igoodie/twitchspawn/network/packet/OsRunPacket.java @@ -1,7 +1,7 @@ package net.programmer.igoodie.twitchspawn.network.packet; import net.minecraft.network.FriendlyByteBuf; -import net.minecraftforge.fmllegacy.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent; import net.programmer.igoodie.twitchspawn.tslanguage.action.OsRunAction; import java.util.function.Supplier; diff --git a/src/main/java/net/programmer/igoodie/twitchspawn/network/packet/StatusChangedPacket.java b/src/main/java/net/programmer/igoodie/twitchspawn/network/packet/StatusChangedPacket.java index 1249c34..97b54ac 100644 --- a/src/main/java/net/programmer/igoodie/twitchspawn/network/packet/StatusChangedPacket.java +++ b/src/main/java/net/programmer/igoodie/twitchspawn/network/packet/StatusChangedPacket.java @@ -1,7 +1,7 @@ package net.programmer.igoodie.twitchspawn.network.packet; import net.minecraft.network.FriendlyByteBuf; -import net.minecraftforge.fmllegacy.network.NetworkEvent; +import net.minecraftforge.network.NetworkEvent; import net.programmer.igoodie.twitchspawn.client.gui.StatusIndicatorOverlay; import java.util.function.Supplier; diff --git a/src/main/java/net/programmer/igoodie/twitchspawn/tracer/TraceManager.java b/src/main/java/net/programmer/igoodie/twitchspawn/tracer/TraceManager.java index 2361088..c1a764a 100644 --- a/src/main/java/net/programmer/igoodie/twitchspawn/tracer/TraceManager.java +++ b/src/main/java/net/programmer/igoodie/twitchspawn/tracer/TraceManager.java @@ -4,7 +4,7 @@ import net.minecraft.commands.CommandSourceStack; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.server.level.ServerPlayer; -import net.minecraftforge.fmllegacy.network.NetworkDirection; +import net.minecraftforge.network.NetworkDirection; import net.programmer.igoodie.twitchspawn.TwitchSpawn; import net.programmer.igoodie.twitchspawn.configuration.ConfigManager; import net.programmer.igoodie.twitchspawn.configuration.CredentialsConfig; diff --git a/src/main/java/net/programmer/igoodie/twitchspawn/tslanguage/action/OsRunAction.java b/src/main/java/net/programmer/igoodie/twitchspawn/tslanguage/action/OsRunAction.java index f23edf8..5533c47 100644 --- a/src/main/java/net/programmer/igoodie/twitchspawn/tslanguage/action/OsRunAction.java +++ b/src/main/java/net/programmer/igoodie/twitchspawn/tslanguage/action/OsRunAction.java @@ -1,7 +1,7 @@ package net.programmer.igoodie.twitchspawn.tslanguage.action; import net.minecraft.server.level.ServerPlayer; -import net.minecraftforge.fmllegacy.network.NetworkDirection; +import net.minecraftforge.network.NetworkDirection; import net.programmer.igoodie.twitchspawn.TwitchSpawn; import net.programmer.igoodie.twitchspawn.network.NetworkManager; import net.programmer.igoodie.twitchspawn.network.packet.OsRunPacket;