diff --git a/.gitignore b/.gitignore index 629d356..d18cd0f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ run/ build/ .gradle/ gradle/ +remappedSrc/ # IDE-related .idea/ diff --git a/build.gradle b/build.gradle index f4689ae..60f1388 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.10-SNAPSHOT' + id 'fabric-loom' version "${loom_version}" id 'maven-publish' } diff --git a/gradle.properties b/gradle.properties index 6d3838b..b7474da 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,13 +2,14 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://modmuss50.me/fabric.html -minecraft_version=1.21.5 -yarn_mappings=1.21.5+build.1 -loader_version=0.16.13 +minecraft_version=1.21.8 +yarn_mappings=1.21.8+build.1 +loader_version=0.16.14 +loom_version=1.11-SNAPSHOT # Mod Properties mod_version=1.1 maven_group=D7lan archives_base_name=minecartsloadchunks # Dependencies # check this on https://modmuss50.me/fabric.html -fabric_version=0.120.0+1.21.5 +fabric_version=0.130.0+1.21.8 diff --git a/gradlew b/gradlew index f5feea6..23d15a9 100644 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # 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 -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi 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, +# * DEFAULT_JVM_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. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9d21a21..db3a6ac 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/src/main/java/D7lan/minecartsloadchunks/MinecartsLoadChunks.java b/src/main/java/D7lan/minecartsloadchunks/MinecartsLoadChunks.java index 7fe159f..4cc7878 100644 --- a/src/main/java/D7lan/minecartsloadchunks/MinecartsLoadChunks.java +++ b/src/main/java/D7lan/minecartsloadchunks/MinecartsLoadChunks.java @@ -5,6 +5,7 @@ import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; import net.minecraft.entity.EntityType; import net.minecraft.entity.vehicle.AbstractMinecartEntity; +import net.minecraft.entity.vehicle.ChestMinecartEntity; import net.minecraft.server.MinecraftServer; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.ChunkPos; @@ -37,6 +38,15 @@ private void onServerTick(MinecraftServer server) { for (EntityType type : MINECART_TYPES) { for (AbstractMinecartEntity minecart : world.getEntitiesByType((EntityType) type, e -> true)) { + if (minecart instanceof ChestMinecartEntity chest) { + if (chest.getCommandTags().contains("minecartsloadchunks_ignore")) + continue; + + if (chest.getLootTable() != null) { + chest.addCommandTag("minecartsloadchunks_ignore"); + } + } + if (!getConfig().alwaysLoad) { boolean isMoving = minecart.getVelocity().lengthSquared() > 1e-6; if (isMoving) MINECART_LAST_MOVED.put(minecart.getUuid(), currentTick);