diff --git a/build.gradle b/build.gradle index 6140e12..ae0c27e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,9 +1,10 @@ plugins { + id 'java-library' id 'eclipse' id 'idea' id 'maven-publish' - id 'net.minecraftforge.gradle' version '[6.0,6.2)' - id 'com.matthewprenger.cursegradle' version '1.4.0' + id 'net.neoforged.gradle.userdev' version '7.0.93' + id 'net.darkhax.curseforgegradle' version '1.1.17' id 'com.modrinth.minotaur' version "2.+" } @@ -16,80 +17,40 @@ base { // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. 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'}" -minecraft { - mappings channel: mapping_channel, version: mapping_version +minecraft.accessTransformers.file rootProject.file('src/main/resources/META-INF/accesstransformer.cfg') +//minecraft.accessTransformers.entry public net.minecraft.client.Minecraft textureManager # textureManager - copyIdeResources = true +runs { + // applies to all the run configs below + configureEach { + // Recommended logging data for a userdev environment + systemProperty 'forge.logging.markers', 'REGISTRIES' - accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') + // Recommended logging level for the console + systemProperty 'forge.logging.console.level', 'debug' - runs { - client { - workingDirectory project.file('run') - property 'mixin.env.remapRefMap', 'true' - property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" - - // Recommended logging data for a userdev environment - // property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' - property 'forge.logging.markers', 'REGISTRIES' + //Limit ram usage for the dev environment to 4GB + jvmArgument '-Xmx4G' - // Recommended logging level for the console - property 'forge.logging.console.level', 'debug' - - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', "${mod_id}" - - mods { - "${mod_id}" { - source sourceSets.main - } - } - } - - server { - workingDirectory project.file('run') - property 'mixin.env.remapRefMap', 'true' - property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" - - // Recommended logging data for a userdev environment - // property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' - property 'forge.logging.markers', 'REGISTRIES' - - // Recommended logging level for the console - property 'forge.logging.console.level', 'debug' - - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', "${mod_id}" - - mods { - "${mod_id}" { - source sourceSets.main - } - } - } - - data { - workingDirectory project.file('run') - property 'mixin.env.remapRefMap', 'true' - property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" + modSource project.sourceSets.main + } - // Recommended logging data for a userdev environment - // property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' - property 'forge.logging.markers', 'REGISTRIES' + client { + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + systemProperty 'neoforge.enabledGameTestNamespaces', "${mod_id}" + } - // Recommended logging level for the console - property 'forge.logging.console.level', 'debug' + server { + systemProperty 'neoforge.enabledGameTestNamespaces', "${mod_id}" + programArgument '--nogui' + } - // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. - args '--mod', "${mod_id}", '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + data { + // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it + // workingDirectory project.file('run-data') - mods { - "${mod_id}" { - source sourceSets.main - } - } - } + // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. + programArguments.addAll '--mod', "${mod_id}", '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() } } @@ -97,23 +58,22 @@ minecraft { sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { - maven { + maven { url = "https://maven.blamejared.com" - } + } } dependencies { - minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}" - - compileOnly fg.deobf("mezz.jei:jei-${mc_version}-common-api:${jei_version}") - compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}") + implementation "net.neoforged:neoforge:${neo_version}" + + compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}" + compileOnly "mezz.jei:jei-${mc_version}-neoforge-api:${jei_version}" - runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}") + runtimeOnly "mezz.jei:jei-${mc_version}-neoforge:${jei_version}" - implementation fg.deobf("com.blamejared.crafttweaker:CraftTweaker-forge-${mc_version}:${crafttweaker_version}") + implementation "com.blamejared.crafttweaker:CraftTweaker-neoforge-${mc_version}:${crafttweaker_version}" } -// Example for how to get properties into the manifest for reading at runtime. jar { manifest { attributes([ @@ -128,25 +88,13 @@ jar { } } -// Example configuration to allow publishing using the maven-publish plugin -// This is the preferred method to reobfuscate your jar file -jar.finalizedBy('reobfJar') -// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing -// publish.dependsOn('reobfJar') - -def reobfFile = file("$buildDir/reobfJar/output.jar") -def reobfArtifact = artifacts.add('default', reobfFile) { - type 'jar' - builtBy 'reobfJar' -} publishing { publications { - mavenJava(MavenPublication) { - artifact(reobfArtifact) { - builtBy reobfArtifact - artifactId = base.archivesName.get() - classifier null - } + register('mavenJava', MavenPublication) { + groupId project.group + artifactId base.archivesName.get() + version project.version + from components.java } } repositories { @@ -162,9 +110,41 @@ publishing { } } -tasks.withType(JavaCompile).configureEach { - options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation +if (System.getenv().CURSEFORGE_KEY) { + task curseforge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) { + apiToken = System.getenv().CURSEFORGE_KEY + + def mainFile = upload(project.curseforge_id, jar) + mainFile.releaseType = 'beta' + mainFile.addGameVersion "NeoForge" + mainFile.addGameVersion "${mc_version}" + mainFile.addGameVersion "Java 17" + + mainFile.changelog = file("$project.rootDir/changelog.md") + mainFile.changelogType = 'markdown' + + mainFile.addOptional("crafttweaker") + } } -apply from: 'gradle/curseforge.gradle' -apply from: 'gradle/modrinth.gradle' +if (System.getenv().MODRINTH_KEY) { + modrinth { + token = System.getenv().MODRINTH_KEY + projectId = project.modrinth_id + versionType = "beta" + versionName = "${mod_name} ${mc_version}" + versionNumber = project.version + uploadFile = jar + changelog = file("$project.rootDir/changelog.md").text + gameVersions = ["${mc_version}"] + loaders = ["neoforge"] + + dependencies { + optional.project "crafttweaker" + } + } +} + +tasks.withType(JavaCompile).configureEach { + options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 9e413d4..a74dd3e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,10 +4,10 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false # Base info -mc_version=1.20.1 -forge_version=47.1.3 -mapping_channel=official -mapping_version=1.20.1 +mc_version=1.20.4 +neo_version=20.4.161-beta +neogradle.subsystems.parchment.minecraftVersion=1.20.3 +neogradle.subsystems.parchment.mappingsVersion=2023.12.31 mod_group=com.mrbysco.angrymobs mod_id=angrymobs mod_archive_name=AngryMobs @@ -18,8 +18,8 @@ curseforge_id=430225 modrinth_id=W9PF5nLR # Version -version=4.1.0 +version=5.0.0 -# Mod support -jei_version=15.2.0.23 -crafttweaker_version=14.0.17 \ No newline at end of file +# Dependencies +jei_version=17.3.0.49 +crafttweaker_version=17.0.7 \ No newline at end of file diff --git a/gradle/curseforge.gradle b/gradle/curseforge.gradle deleted file mode 100644 index c8a77ba..0000000 --- a/gradle/curseforge.gradle +++ /dev/null @@ -1,22 +0,0 @@ -apply plugin: "com.matthewprenger.cursegradle" - -if (System.getenv().CURSEFORGE_KEY) { - curseforge { - apiKey = System.getenv().CURSEFORGE_KEY - project { - id = project.curseforge_id - releaseType = "beta" - addGameVersion "Forge" - addGameVersion "1.20" - addGameVersion "${mc_version}" - addGameVersion "Java 17" - mainArtifact(jar) - changelog = file("$project.rootDir/changelog.md") - changelogType = 'markdown' - - relations { - optionalDependency "crafttweaker" - } - } - } -} \ No newline at end of file diff --git a/gradle/modrinth.gradle b/gradle/modrinth.gradle deleted file mode 100644 index 834167d..0000000 --- a/gradle/modrinth.gradle +++ /dev/null @@ -1,20 +0,0 @@ -apply plugin: "com.modrinth.minotaur" - -if (System.getenv().MODRINTH_KEY) { - String fileContents = file("$project.rootDir/changelog.md").text - modrinth { - token = System.getenv().MODRINTH_KEY - projectId = project.modrinth_id - versionType = "beta" - versionName = "${mod_name} ${mc_version}" - versionNumber = project.version - uploadFile = jar - changelog = fileContents - gameVersions = ["1.20", "${mc_version}"] - loaders = ["forge"] - - dependencies { - optional.project "crafttweaker" - } - } -} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 943f0cb..d64cd49 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 37aef8d..a80b22c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 65dcd68..1aa94a4 100644 --- a/gradlew +++ b/gradlew @@ -83,10 +83,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -# 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"' +# 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 @@ -133,10 +131,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + 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. @@ -144,7 +145,7 @@ 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=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -197,11 +198,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# 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" \ diff --git a/gradlew.bat b/gradlew.bat index 93e3f59..25da30d 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +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 @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +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 diff --git a/settings.gradle b/settings.gradle index 291d399..b03169b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,12 +2,12 @@ pluginManagement { repositories { gradlePluginPortal() maven { - name = 'MinecraftForge' - url = 'https://maven.minecraftforge.net/' + name = 'Official NeoForge Maven' + url = 'https://maven.neoforged.net/releases' } } } plugins { - id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0' -} \ No newline at end of file + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' +} diff --git a/src/main/java/com/mrbysco/angrymobs/AngryMobs.java b/src/main/java/com/mrbysco/angrymobs/AngryMobs.java index 2871901..da0cc5b 100644 --- a/src/main/java/com/mrbysco/angrymobs/AngryMobs.java +++ b/src/main/java/com/mrbysco/angrymobs/AngryMobs.java @@ -5,12 +5,11 @@ import com.mrbysco.angrymobs.handler.AIHandler; import com.mrbysco.angrymobs.handler.AttributeHandler; import com.mrbysco.angrymobs.registry.TweakReloadManager; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.fml.ModLoadingContext; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.config.ModConfig; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModLoadingContext; +import net.neoforged.fml.common.Mod; +import net.neoforged.fml.config.ModConfig; +import net.neoforged.neoforge.common.NeoForge; import org.slf4j.Logger; @Mod(AngryMobs.MOD_ID) @@ -18,14 +17,13 @@ public class AngryMobs { public static final String MOD_ID = "angrymobs"; public static final Logger LOGGER = LogUtils.getLogger(); - public AngryMobs() { - IEventBus eventBus = FMLJavaModLoadingContext.get().getModEventBus(); + public AngryMobs(IEventBus eventBus) { ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, AngryConfig.commonSpec); eventBus.register(AngryConfig.class); eventBus.addListener(AttributeHandler::addEntityAttributes); - MinecraftForge.EVENT_BUS.register(new TweakReloadManager()); - MinecraftForge.EVENT_BUS.register(new AIHandler()); + NeoForge.EVENT_BUS.register(new TweakReloadManager()); + NeoForge.EVENT_BUS.register(new AIHandler()); } } diff --git a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddAttackNearestTweak.java b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddAttackNearestTweak.java index 5630aee..1a205af 100644 --- a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddAttackNearestTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddAttackNearestTweak.java @@ -3,15 +3,15 @@ import com.blamejared.crafttweaker.api.action.base.IRuntimeAction; import com.mrbysco.angrymobs.registry.AITweakRegistry; import com.mrbysco.angrymobs.registry.tweaks.AttackNearestTweak; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; -import net.minecraftforge.registries.ForgeRegistries; public class ActionAddAttackNearestTweak implements IRuntimeAction { public final AttackNearestTweak attackNearestTweak; public ActionAddAttackNearestTweak(EntityType entity, EntityType targetEntity, int priority, boolean checkSight) { - this.attackNearestTweak = new AttackNearestTweak(ForgeRegistries.ENTITY_TYPES.getKey(entity), ForgeRegistries.ENTITY_TYPES.getKey(targetEntity), priority, checkSight); + this.attackNearestTweak = new AttackNearestTweak(BuiltInRegistries.ENTITY_TYPE.getKey(entity), BuiltInRegistries.ENTITY_TYPE.getKey(targetEntity), priority, checkSight); } @Override diff --git a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddBreakDoorTweak.java b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddBreakDoorTweak.java index f3c933a..1ae0ec4 100644 --- a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddBreakDoorTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddBreakDoorTweak.java @@ -3,15 +3,15 @@ import com.blamejared.crafttweaker.api.action.base.IRuntimeAction; import com.mrbysco.angrymobs.registry.AITweakRegistry; import com.mrbysco.angrymobs.registry.tweaks.BreakDoorTweak; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; -import net.minecraftforge.registries.ForgeRegistries; public class ActionAddBreakDoorTweak implements IRuntimeAction { public final BreakDoorTweak breakDoorTweak; public ActionAddBreakDoorTweak(EntityType entity, int priority, int difficulty) { - this.breakDoorTweak = new BreakDoorTweak(ForgeRegistries.ENTITY_TYPES.getKey(entity), priority, difficulty); + this.breakDoorTweak = new BreakDoorTweak(BuiltInRegistries.ENTITY_TYPE.getKey(entity), priority, difficulty); } @Override diff --git a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddHurtTweak.java b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddHurtTweak.java index f181a42..2c06d74 100644 --- a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddHurtTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddHurtTweak.java @@ -3,15 +3,15 @@ import com.blamejared.crafttweaker.api.action.base.IRuntimeAction; import com.mrbysco.angrymobs.registry.AITweakRegistry; import com.mrbysco.angrymobs.registry.tweaks.HurtByTargetTweak; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; -import net.minecraftforge.registries.ForgeRegistries; public class ActionAddHurtTweak implements IRuntimeAction { public final HurtByTargetTweak hurtByTargetTweak; public ActionAddHurtTweak(EntityType entity, int priority, boolean callReinforcements) { - this.hurtByTargetTweak = new HurtByTargetTweak(ForgeRegistries.ENTITY_TYPES.getKey(entity), priority, callReinforcements); + this.hurtByTargetTweak = new HurtByTargetTweak(BuiltInRegistries.ENTITY_TYPE.getKey(entity), priority, callReinforcements); } @Override diff --git a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddLeapTweak.java b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddLeapTweak.java index 5304fa8..f277f60 100644 --- a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddLeapTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddLeapTweak.java @@ -3,15 +3,15 @@ import com.blamejared.crafttweaker.api.action.base.IRuntimeAction; import com.mrbysco.angrymobs.registry.AITweakRegistry; import com.mrbysco.angrymobs.registry.tweaks.LeapAtTargetTweak; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; -import net.minecraftforge.registries.ForgeRegistries; public class ActionAddLeapTweak implements IRuntimeAction { public final LeapAtTargetTweak leapTweak; public ActionAddLeapTweak(EntityType entity, int priority, float leapMotion) { - this.leapTweak = new LeapAtTargetTweak(ForgeRegistries.ENTITY_TYPES.getKey(entity), priority, leapMotion); + this.leapTweak = new LeapAtTargetTweak(BuiltInRegistries.ENTITY_TYPE.getKey(entity), priority, leapMotion); } @Override diff --git a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddMeleeTweak.java b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddMeleeTweak.java index 754ed91..3388b4a 100644 --- a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddMeleeTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddMeleeTweak.java @@ -3,15 +3,15 @@ import com.blamejared.crafttweaker.api.action.base.IRuntimeAction; import com.mrbysco.angrymobs.registry.AITweakRegistry; import com.mrbysco.angrymobs.registry.tweaks.MeleeAttackTweak; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; -import net.minecraftforge.registries.ForgeRegistries; public class ActionAddMeleeTweak implements IRuntimeAction { public final MeleeAttackTweak meleeTweak; public ActionAddMeleeTweak(EntityType entity, int priority, double speedIn, float damage, float knockback, boolean useLongMemory) { - this.meleeTweak = new MeleeAttackTweak(ForgeRegistries.ENTITY_TYPES.getKey(entity), priority, speedIn, damage, knockback, useLongMemory); + this.meleeTweak = new MeleeAttackTweak(BuiltInRegistries.ENTITY_TYPE.getKey(entity), priority, speedIn, damage, knockback, useLongMemory); } @Override diff --git a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddProjectileAttackTweak.java b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddProjectileAttackTweak.java index 8e1c138..be579a3 100644 --- a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddProjectileAttackTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAddProjectileAttackTweak.java @@ -3,16 +3,16 @@ import com.blamejared.crafttweaker.api.action.base.IRuntimeAction; import com.mrbysco.angrymobs.registry.AITweakRegistry; import com.mrbysco.angrymobs.registry.tweaks.ProjectileAttackTweak; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; -import net.minecraftforge.registries.ForgeRegistries; public class ActionAddProjectileAttackTweak implements IRuntimeAction { public final ProjectileAttackTweak projectileTweak; public ActionAddProjectileAttackTweak(EntityType entity, EntityType projectileEntity, String soundLocation, int priority, float attackDamage, float velocity) { - this.projectileTweak = new ProjectileAttackTweak(ForgeRegistries.ENTITY_TYPES.getKey(entity), ForgeRegistries.ENTITY_TYPES.getKey(projectileEntity), new ResourceLocation(soundLocation), + this.projectileTweak = new ProjectileAttackTweak(BuiltInRegistries.ENTITY_TYPE.getKey(entity), BuiltInRegistries.ENTITY_TYPE.getKey(projectileEntity), new ResourceLocation(soundLocation), priority, attackDamage, velocity); } diff --git a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAvoidEntityTweak.java b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAvoidEntityTweak.java index d9ddd6a..e450a6b 100644 --- a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAvoidEntityTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionAvoidEntityTweak.java @@ -3,15 +3,15 @@ import com.blamejared.crafttweaker.api.action.base.IRuntimeAction; import com.mrbysco.angrymobs.registry.AITweakRegistry; import com.mrbysco.angrymobs.registry.tweaks.AvoidEntityTweak; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; -import net.minecraftforge.registries.ForgeRegistries; public class ActionAvoidEntityTweak implements IRuntimeAction { public final AvoidEntityTweak attackNearestTweak; public ActionAvoidEntityTweak(EntityType entity, EntityType targetEntity, int priority, float maxDistance, double walkSpeedModifier, double sprintSpeedModifier) { - this.attackNearestTweak = new AvoidEntityTweak(ForgeRegistries.ENTITY_TYPES.getKey(entity), ForgeRegistries.ENTITY_TYPES.getKey(targetEntity), priority, maxDistance, walkSpeedModifier, sprintSpeedModifier); + this.attackNearestTweak = new AvoidEntityTweak(BuiltInRegistries.ENTITY_TYPE.getKey(entity), BuiltInRegistries.ENTITY_TYPE.getKey(targetEntity), priority, maxDistance, walkSpeedModifier, sprintSpeedModifier); } @Override diff --git a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionLookAtEntityTweak.java b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionLookAtEntityTweak.java index 96e5743..664581d 100644 --- a/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionLookAtEntityTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/compat/ct/ActionLookAtEntityTweak.java @@ -3,15 +3,15 @@ import com.blamejared.crafttweaker.api.action.base.IRuntimeAction; import com.mrbysco.angrymobs.registry.AITweakRegistry; import com.mrbysco.angrymobs.registry.tweaks.LookAtEntityTweak; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; -import net.minecraftforge.registries.ForgeRegistries; public class ActionLookAtEntityTweak implements IRuntimeAction { public final LookAtEntityTweak lookAtPlayerTweak; public ActionLookAtEntityTweak(EntityType entity, EntityType targetEntity, int priority, float lookDistance) { - this.lookAtPlayerTweak = new LookAtEntityTweak(ForgeRegistries.ENTITY_TYPES.getKey(entity), ForgeRegistries.ENTITY_TYPES.getKey(targetEntity), priority, lookDistance); + this.lookAtPlayerTweak = new LookAtEntityTweak(BuiltInRegistries.ENTITY_TYPE.getKey(entity), BuiltInRegistries.ENTITY_TYPE.getKey(targetEntity), priority, lookDistance); } @Override diff --git a/src/main/java/com/mrbysco/angrymobs/config/AngryConfig.java b/src/main/java/com/mrbysco/angrymobs/config/AngryConfig.java index 521c83b..42e32e4 100644 --- a/src/main/java/com/mrbysco/angrymobs/config/AngryConfig.java +++ b/src/main/java/com/mrbysco/angrymobs/config/AngryConfig.java @@ -1,10 +1,10 @@ package com.mrbysco.angrymobs.config; import com.mrbysco.angrymobs.AngryMobs; -import net.minecraftforge.common.ForgeConfigSpec; -import net.minecraftforge.common.ForgeConfigSpec.BooleanValue; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.event.config.ModConfigEvent; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.event.config.ModConfigEvent; +import net.neoforged.neoforge.common.ModConfigSpec; +import net.neoforged.neoforge.common.ModConfigSpec.BooleanValue; import org.apache.commons.lang3.tuple.Pair; public class AngryConfig { @@ -14,7 +14,7 @@ public static class Common { public final BooleanValue aggressiveAnimals; public final BooleanValue useAttributes; - Common(ForgeConfigSpec.Builder builder) { + Common(ModConfigSpec.Builder builder) { builder.comment("Common settings") .push("Common"); @@ -38,11 +38,11 @@ public static class Common { } } - public static final ForgeConfigSpec commonSpec; + public static final ModConfigSpec commonSpec; public static final Common COMMON; static { - final Pair specPair = new ForgeConfigSpec.Builder().configure(Common::new); + final Pair specPair = new ModConfigSpec.Builder().configure(Common::new); commonSpec = specPair.getRight(); COMMON = specPair.getLeft(); } diff --git a/src/main/java/com/mrbysco/angrymobs/config/attributes/AttributeConfigHandler.java b/src/main/java/com/mrbysco/angrymobs/config/attributes/AttributeConfigHandler.java index 1144715..424a13f 100644 --- a/src/main/java/com/mrbysco/angrymobs/config/attributes/AttributeConfigHandler.java +++ b/src/main/java/com/mrbysco/angrymobs/config/attributes/AttributeConfigHandler.java @@ -3,7 +3,7 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.mrbysco.angrymobs.AngryMobs; -import net.minecraftforge.fml.loading.FMLPaths; +import net.neoforged.fml.loading.FMLPaths; import java.io.File; import java.io.FileReader; diff --git a/src/main/java/com/mrbysco/angrymobs/handler/AIHandler.java b/src/main/java/com/mrbysco/angrymobs/handler/AIHandler.java index bf81a1e..7a40138 100644 --- a/src/main/java/com/mrbysco/angrymobs/handler/AIHandler.java +++ b/src/main/java/com/mrbysco/angrymobs/handler/AIHandler.java @@ -2,10 +2,10 @@ import com.mrbysco.angrymobs.registry.AITweakRegistry; import com.mrbysco.angrymobs.registry.tweaks.ITweak; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; -import net.minecraftforge.event.entity.EntityJoinLevelEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.registries.ForgeRegistries; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.neoforge.event.entity.EntityJoinLevelEvent; import java.util.List; @@ -14,7 +14,7 @@ public class AIHandler { public void onEntityCreation(EntityJoinLevelEvent event) { if (!event.getLevel().isClientSide()) { AITweakRegistry tweakRegistry = AITweakRegistry.instance(); - ResourceLocation registryName = ForgeRegistries.ENTITY_TYPES.getKey(event.getEntity().getType()); + ResourceLocation registryName = BuiltInRegistries.ENTITY_TYPE.getKey(event.getEntity().getType()); if (tweakRegistry.containsEntity(registryName)) { final List tweakList = tweakRegistry.getTweaksFromType(registryName); for (ITweak tweak : tweakList) { diff --git a/src/main/java/com/mrbysco/angrymobs/handler/AttributeHandler.java b/src/main/java/com/mrbysco/angrymobs/handler/AttributeHandler.java index 1b4aeb7..fc5c320 100644 --- a/src/main/java/com/mrbysco/angrymobs/handler/AttributeHandler.java +++ b/src/main/java/com/mrbysco/angrymobs/handler/AttributeHandler.java @@ -2,12 +2,12 @@ import com.mrbysco.angrymobs.AngryMobs; import com.mrbysco.angrymobs.config.attributes.AttributeConfigHandler; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.ai.attributes.Attribute; -import net.minecraftforge.event.entity.EntityAttributeModificationEvent; -import net.minecraftforge.registries.ForgeRegistries; +import net.neoforged.neoforge.event.entity.EntityAttributeModificationEvent; public class AttributeHandler { public static void addEntityAttributes(EntityAttributeModificationEvent event) { @@ -17,13 +17,13 @@ public static void addEntityAttributes(EntityAttributeModificationEvent event) { if (AttributeConfigHandler.additionMap.isEmpty()) return; for (EntityType entityType : event.getTypes()) { - ResourceLocation entityLocation = ForgeRegistries.ENTITY_TYPES.getKey(entityType); + ResourceLocation entityLocation = BuiltInRegistries.ENTITY_TYPE.getKey(entityType); if (entityLocation != null) { var values = AttributeConfigHandler.additionMap.getOrDefault(entityLocation.toString(), null); if (values != null) { ResourceLocation attributeLocation = ResourceLocation.tryParse(values.attribute()); if (attributeLocation != null) { - Attribute attribute = ForgeRegistries.ATTRIBUTES.getValue(attributeLocation); + Attribute attribute = BuiltInRegistries.ATTRIBUTE.get(attributeLocation); if (attribute != null) { if (!event.has(entityType, attribute)) { AngryMobs.LOGGER.info("Adding attribute: {} with value: {} to entity: {}", attributeLocation, values.value(), entityLocation); diff --git a/src/main/java/com/mrbysco/angrymobs/handler/goals/MobHurtByTargetGoal.java b/src/main/java/com/mrbysco/angrymobs/handler/goals/MobHurtByTargetGoal.java index 8f3de05..92a2c1d 100644 --- a/src/main/java/com/mrbysco/angrymobs/handler/goals/MobHurtByTargetGoal.java +++ b/src/main/java/com/mrbysco/angrymobs/handler/goals/MobHurtByTargetGoal.java @@ -89,7 +89,7 @@ protected void alertOthers() { } mobentity = iterator.next(); - if (this.mob != mobentity && mobentity.getTarget() == null && (!(this.mob instanceof TamableAnimal) || ((TamableAnimal) this.mob).getOwner() == ((TamableAnimal) mobentity).getOwner()) && !mobentity.isAlliedTo(this.mob.getLastHurtByMob())) { + if (this.mob != mobentity && mobentity.getTarget() == null && (!(this.mob instanceof TamableAnimal) || ((TamableAnimal) this.mob).getOwner() == ((TamableAnimal) mobentity).getOwner()) && (this.mob.getLastHurtByMob() == null || !mobentity.isAlliedTo(this.mob.getLastHurtByMob()))) { if (this.reinforcementTypes == null) { break; } diff --git a/src/main/java/com/mrbysco/angrymobs/registry/AITweakRegistry.java b/src/main/java/com/mrbysco/angrymobs/registry/AITweakRegistry.java index c96099f..e776ee3 100644 --- a/src/main/java/com/mrbysco/angrymobs/registry/AITweakRegistry.java +++ b/src/main/java/com/mrbysco/angrymobs/registry/AITweakRegistry.java @@ -6,10 +6,10 @@ import com.mrbysco.angrymobs.registry.tweaks.ITweak; import com.mrbysco.angrymobs.registry.tweaks.LeapAtTargetTweak; import com.mrbysco.angrymobs.registry.tweaks.MeleeAttackTweak; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.PathfinderMob; -import net.minecraftforge.registries.ForgeRegistries; import java.util.ArrayList; import java.util.Collections; @@ -84,7 +84,7 @@ public void registerTweak(ITweak event) { } public boolean containsEntity(EntityType entityType) { - return tweakMap.containsKey(ForgeRegistries.ENTITY_TYPES.getKey(entityType)); + return tweakMap.containsKey(BuiltInRegistries.ENTITY_TYPE.getKey(entityType)); } public boolean containsEntity(ResourceLocation entityLocation) { @@ -92,7 +92,7 @@ public boolean containsEntity(ResourceLocation entityLocation) { } public List getTweaksFromType(EntityType entityType) { - return tweakMap.containsKey(ForgeRegistries.ENTITY_TYPES.getKey(entityType)) ? tweakMap.get(ForgeRegistries.ENTITY_TYPES.getKey(entityType)) : new ArrayList<>(); + return tweakMap.containsKey(BuiltInRegistries.ENTITY_TYPE.getKey(entityType)) ? tweakMap.get(BuiltInRegistries.ENTITY_TYPE.getKey(entityType)) : new ArrayList<>(); } public List getTweaksFromType(ResourceLocation entityLocation) { diff --git a/src/main/java/com/mrbysco/angrymobs/registry/TweakReloadManager.java b/src/main/java/com/mrbysco/angrymobs/registry/TweakReloadManager.java index 0e41b15..052fcac 100644 --- a/src/main/java/com/mrbysco/angrymobs/registry/TweakReloadManager.java +++ b/src/main/java/com/mrbysco/angrymobs/registry/TweakReloadManager.java @@ -2,13 +2,14 @@ import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.server.packs.resources.ResourceManagerReloadListener; -import net.minecraftforge.event.AddReloadListenerEvent; -import net.minecraftforge.eventbus.api.EventPriority; -import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.neoforged.bus.api.EventPriority; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.neoforge.event.AddReloadListenerEvent; +import org.jetbrains.annotations.NotNull; public class TweakReloadManager implements ResourceManagerReloadListener { @Override - public void onResourceManagerReload(ResourceManager resourceManager) { + public void onResourceManagerReload(@NotNull ResourceManager resourceManager) { AITweakRegistry.instance().initializeTweaks(); } diff --git a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/AttackNearestTweak.java b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/AttackNearestTweak.java index 611de5b..f162a76 100644 --- a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/AttackNearestTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/AttackNearestTweak.java @@ -1,6 +1,7 @@ package com.mrbysco.angrymobs.registry.tweaks; import com.mrbysco.angrymobs.AngryMobs; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; @@ -9,7 +10,6 @@ import net.minecraft.world.entity.ai.goal.Goal; import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal; import net.minecraft.world.entity.player.Player; -import net.minecraftforge.registries.ForgeRegistries; public class AttackNearestTweak extends BaseTweak { protected final ResourceLocation targetEntityLocation; @@ -24,7 +24,7 @@ public AttackNearestTweak(ResourceLocation entity, ResourceLocation target, int } public AttackNearestTweak(EntityType entity, EntityType target, int priority, boolean checkSight) { - this(ForgeRegistries.ENTITY_TYPES.getKey(entity), ForgeRegistries.ENTITY_TYPES.getKey(target), priority, checkSight); + this(BuiltInRegistries.ENTITY_TYPE.getKey(entity), BuiltInRegistries.ENTITY_TYPE.getKey(target), priority, checkSight); } @Override @@ -34,7 +34,7 @@ public void adjust(Entity entity) { if (targetEntityLocation.toString().equals("minecraft:player")) { mob.targetSelector.addGoal(goalPriority, new NearestAttackableTargetGoal<>(mob, Player.class, checkSight)); } else { - Entity targetEntity = ForgeRegistries.ENTITY_TYPES.getValue(targetEntityLocation).create(entity.level()); + Entity targetEntity = BuiltInRegistries.ENTITY_TYPE.get(targetEntityLocation).create(entity.level()); if (targetEntity instanceof LivingEntity) { Class entityClass = ((LivingEntity) targetEntity).getClass(); mob.targetSelector.addGoal(goalPriority, new NearestAttackableTargetGoal<>(mob, entityClass, checkSight)); @@ -58,7 +58,7 @@ public boolean canHaveGoal(Mob mob) { return false; } } else { - Entity targetEntity = ForgeRegistries.ENTITY_TYPES.getValue(targetEntityLocation).create(mob.level()); + Entity targetEntity = BuiltInRegistries.ENTITY_TYPE.get(targetEntityLocation).create(mob.level()); if (targetEntity instanceof LivingEntity) { Class entityClass = ((LivingEntity) targetEntity).getClass(); if (nearestAttackable.targetType == entityClass) { diff --git a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/AvoidEntityTweak.java b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/AvoidEntityTweak.java index b950c44..62a5f8d 100644 --- a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/AvoidEntityTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/AvoidEntityTweak.java @@ -1,6 +1,7 @@ package com.mrbysco.angrymobs.registry.tweaks; import com.mrbysco.angrymobs.AngryMobs; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; @@ -8,7 +9,6 @@ import net.minecraft.world.entity.ai.goal.AvoidEntityGoal; import net.minecraft.world.entity.ai.goal.Goal; import net.minecraft.world.entity.player.Player; -import net.minecraftforge.registries.ForgeRegistries; public class AvoidEntityTweak extends BaseTweak { protected final ResourceLocation targetEntityLocation; @@ -33,7 +33,7 @@ public void adjust(Entity entity) { if (targetEntityLocation.toString().equals("minecraft:player")) { pathfinderMob.targetSelector.addGoal(goalPriority, new AvoidEntityGoal<>(pathfinderMob, Player.class, maxDistance, walkSpeedModifier, sprintSpeedModifier)); } else { - Entity targetEntity = ForgeRegistries.ENTITY_TYPES.getValue(targetEntityLocation).create(entity.level()); + Entity targetEntity = BuiltInRegistries.ENTITY_TYPE.get(targetEntityLocation).create(entity.level()); if (targetEntity instanceof LivingEntity) { Class entityClass = ((LivingEntity) targetEntity).getClass(); pathfinderMob.targetSelector.addGoal(goalPriority, new AvoidEntityGoal<>(pathfinderMob, entityClass, maxDistance, walkSpeedModifier, sprintSpeedModifier)); @@ -57,7 +57,7 @@ public boolean canHaveGoal(PathfinderMob pathfinderMob) { return false; } } else { - Entity targetEntity = ForgeRegistries.ENTITY_TYPES.getValue(targetEntityLocation).create(pathfinderMob.level()); + Entity targetEntity = BuiltInRegistries.ENTITY_TYPE.get(targetEntityLocation).create(pathfinderMob.level()); if (targetEntity instanceof LivingEntity) { Class entityClass = ((LivingEntity) targetEntity).getClass(); if (avoidEntity.avoidClass == entityClass) { diff --git a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/BreakDoorTweak.java b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/BreakDoorTweak.java index 1d45e28..4f13a3f 100644 --- a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/BreakDoorTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/BreakDoorTweak.java @@ -1,13 +1,13 @@ package com.mrbysco.angrymobs.registry.tweaks; import com.mrbysco.angrymobs.AngryMobs; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.Difficulty; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.ai.goal.BreakDoorGoal; -import net.minecraftforge.registries.ForgeRegistries; import java.util.function.Predicate; @@ -22,7 +22,7 @@ public BreakDoorTweak(ResourceLocation entity, int priority, int difficulty) { } public BreakDoorTweak(EntityType entity, int priority, int difficulty) { - this(ForgeRegistries.ENTITY_TYPES.getKey(entity), priority, difficulty); + this(BuiltInRegistries.ENTITY_TYPE.getKey(entity), priority, difficulty); } @Override diff --git a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/HurtByTargetTweak.java b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/HurtByTargetTweak.java index a5b891c..04b9b62 100644 --- a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/HurtByTargetTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/HurtByTargetTweak.java @@ -2,12 +2,12 @@ import com.mrbysco.angrymobs.AngryMobs; import com.mrbysco.angrymobs.handler.goals.MobHurtByTargetGoal; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.ai.goal.Goal; -import net.minecraftforge.registries.ForgeRegistries; public class HurtByTargetTweak extends BaseTweak { protected final int goalPriority; @@ -20,7 +20,7 @@ public HurtByTargetTweak(ResourceLocation entity, int priority, boolean callRein } public HurtByTargetTweak(EntityType entity, int priority, boolean callReinforcements) { - this(ForgeRegistries.ENTITY_TYPES.getKey(entity), priority, callReinforcements); + this(BuiltInRegistries.ENTITY_TYPE.getKey(entity), priority, callReinforcements); } @Override diff --git a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/LeapAtTargetTweak.java b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/LeapAtTargetTweak.java index 7c1ee01..dd6f1c5 100644 --- a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/LeapAtTargetTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/LeapAtTargetTweak.java @@ -1,13 +1,13 @@ package com.mrbysco.angrymobs.registry.tweaks; import com.mrbysco.angrymobs.AngryMobs; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.PathfinderMob; import net.minecraft.world.entity.ai.goal.LeapAtTargetGoal; -import net.minecraftforge.registries.ForgeRegistries; public class LeapAtTargetTweak extends BaseTweak { protected final int goalPriority; @@ -20,7 +20,7 @@ public LeapAtTargetTweak(ResourceLocation entity, int priority, float leapMotion } public LeapAtTargetTweak(EntityType entity, int priority, float leapMotion) { - this(ForgeRegistries.ENTITY_TYPES.getKey(entity), priority, leapMotion); + this(BuiltInRegistries.ENTITY_TYPE.getKey(entity), priority, leapMotion); } @Override diff --git a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/LookAtEntityTweak.java b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/LookAtEntityTweak.java index bccb806..0948b42 100644 --- a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/LookAtEntityTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/LookAtEntityTweak.java @@ -1,6 +1,7 @@ package com.mrbysco.angrymobs.registry.tweaks; import com.mrbysco.angrymobs.AngryMobs; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; @@ -8,7 +9,6 @@ import net.minecraft.world.entity.ai.goal.Goal; import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal; import net.minecraft.world.entity.player.Player; -import net.minecraftforge.registries.ForgeRegistries; public class LookAtEntityTweak extends BaseTweak { protected final ResourceLocation targetEntityLocation; @@ -29,7 +29,7 @@ public void adjust(Entity entity) { if (targetEntityLocation.toString().equals("minecraft:player")) { mob.targetSelector.addGoal(goalPriority, new LookAtPlayerGoal(mob, Player.class, lookDistance)); } else { - Entity targetEntity = ForgeRegistries.ENTITY_TYPES.getValue(targetEntityLocation).create(entity.level()); + Entity targetEntity = BuiltInRegistries.ENTITY_TYPE.get(targetEntityLocation).create(entity.level()); if (targetEntity instanceof LivingEntity) { Class entityClass = ((LivingEntity) targetEntity).getClass(); mob.targetSelector.addGoal(goalPriority, new LookAtPlayerGoal(mob, entityClass, lookDistance)); @@ -53,7 +53,7 @@ public boolean canHaveGoal(Mob mob) { return false; } } else { - Entity targetEntity = ForgeRegistries.ENTITY_TYPES.getValue(targetEntityLocation).create(mob.level()); + Entity targetEntity = BuiltInRegistries.ENTITY_TYPE.get(targetEntityLocation).create(mob.level()); if (targetEntity instanceof LivingEntity) { Class entityClass = ((LivingEntity) targetEntity).getClass(); if (lookAtPlayerGoal.lookAtType == entityClass) { diff --git a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/MeleeAttackTweak.java b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/MeleeAttackTweak.java index 996f300..d320ee2 100644 --- a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/MeleeAttackTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/MeleeAttackTweak.java @@ -2,13 +2,13 @@ import com.mrbysco.angrymobs.AngryMobs; import com.mrbysco.angrymobs.handler.goals.MobMeleeAttackGoal; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.ai.goal.MeleeAttackGoal; import net.minecraft.world.entity.ai.goal.PanicGoal; -import net.minecraftforge.registries.ForgeRegistries; public class MeleeAttackTweak extends BaseTweak { protected final int goalPriority; @@ -27,11 +27,11 @@ public MeleeAttackTweak(ResourceLocation entity, int priority, double speedIn, f } public MeleeAttackTweak(EntityType entity, int priority, double speedIn, float damage, float knockback, boolean useLongMemory) { - this(ForgeRegistries.ENTITY_TYPES.getKey(entity), priority, speedIn, damage, knockback, useLongMemory); + this(BuiltInRegistries.ENTITY_TYPE.getKey(entity), priority, speedIn, damage, knockback, useLongMemory); } public MeleeAttackTweak(EntityType entity, int priority, double speedIn, float damage, boolean useLongMemory) { - this(ForgeRegistries.ENTITY_TYPES.getKey(entity), priority, speedIn, damage, 0.0F, useLongMemory); + this(BuiltInRegistries.ENTITY_TYPE.getKey(entity), priority, speedIn, damage, 0.0F, useLongMemory); } @Override diff --git a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/ProjectileAttackTweak.java b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/ProjectileAttackTweak.java index 23eaae1..ff6a8cd 100644 --- a/src/main/java/com/mrbysco/angrymobs/registry/tweaks/ProjectileAttackTweak.java +++ b/src/main/java/com/mrbysco/angrymobs/registry/tweaks/ProjectileAttackTweak.java @@ -2,6 +2,7 @@ import com.mrbysco.angrymobs.AngryMobs; import com.mrbysco.angrymobs.handler.goals.ThrowableAttackGoal; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.entity.Entity; @@ -10,7 +11,6 @@ import net.minecraft.world.entity.ai.goal.PanicGoal; import net.minecraft.world.entity.ai.goal.RangedBowAttackGoal; import net.minecraft.world.entity.projectile.Projectile; -import net.minecraftforge.registries.ForgeRegistries; public class ProjectileAttackTweak extends BaseTweak { protected final ResourceLocation projectileEntityLocation; @@ -29,13 +29,13 @@ public ProjectileAttackTweak(ResourceLocation entity, ResourceLocation projectil } public ProjectileAttackTweak(EntityType entity, EntityType throwableType, SoundEvent soundEvent, int priority, float attackDamage, float velocity) { - this(ForgeRegistries.ENTITY_TYPES.getKey(entity), ForgeRegistries.ENTITY_TYPES.getKey(throwableType), ForgeRegistries.SOUND_EVENTS.getKey(soundEvent), priority, attackDamage, velocity); + this(BuiltInRegistries.ENTITY_TYPE.getKey(entity), BuiltInRegistries.ENTITY_TYPE.getKey(throwableType), BuiltInRegistries.SOUND_EVENT.getKey(soundEvent), priority, attackDamage, velocity); } @Override public void adjust(Entity entity) { if (entity instanceof Mob mob) { - EntityType type = ForgeRegistries.ENTITY_TYPES.getValue(projectileEntityLocation); + EntityType type = BuiltInRegistries.ENTITY_TYPE.get(projectileEntityLocation); if (type != null) { Entity foundEntity = type.create(entity.level()); if (foundEntity instanceof Projectile throwable) { @@ -48,7 +48,7 @@ public void adjust(Entity entity) { }); mob.goalSelector.availableGoals.removeIf(goal -> goal.getGoal() instanceof RangedBowAttackGoal); - SoundEvent sound = ForgeRegistries.SOUND_EVENTS.getValue(soundLocation); + SoundEvent sound = BuiltInRegistries.SOUND_EVENT.get(soundLocation); mob.targetSelector.addGoal(goalPriority, new ThrowableAttackGoal(mob, (EntityType) throwable.getType(), () -> sound, attackDamage, velocity)); foundEntity.discard(); } else { diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 8d0faa1..f155c62 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -1,4 +1,4 @@ -public net.minecraft.world.entity.ai.goal.GoalSelector f_25345_ # goals -public net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal f_26048_ # targetClass -public net.minecraft.world.entity.ai.goal.AvoidEntityGoal f_25020_ # avoidClass -public net.minecraft.world.entity.ai.goal.LookAtPlayerGoal f_25516_ # lookAtType \ No newline at end of file +public net.minecraft.world.entity.ai.goal.GoalSelector availableGoals +public net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal targetType +public net.minecraft.world.entity.ai.goal.AvoidEntityGoal avoidClass +public net.minecraft.world.entity.ai.goal.LookAtPlayerGoal lookAtType \ No newline at end of file diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index ffe8cac..0a3bfe2 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader="javafml" -loaderVersion="[46,)" +loaderVersion="[2,)" issueTrackerURL="https://github.com/Mrbysco/AngryMobs/issues" license="MIT" @@ -15,7 +15,7 @@ Allows a pack developer to add additional AI goals to existing mobs ''' [[dependencies.angrymobs]] modId="minecraft" -mandatory=true -versionRange="[1.20,1.21)" +type="REQUIRED" +versionRange="[1.20.4,1.21)" ordering="NONE" side="BOTH" \ No newline at end of file diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index 6367445..df0c347 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -3,6 +3,6 @@ "description": { "text": "Angry Mobs resources" }, - "pack_format": 15 + "pack_format": 22 } }