diff --git a/build.gradle b/build.gradle index 30d2476d..6016269c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.7-SNAPSHOT' + id 'fabric-loom' version '1.9-SNAPSHOT' } sourceCompatibility = targetCompatibility = JavaVersion.VERSION_21 @@ -18,6 +18,11 @@ repositories { maven { url 'https://jitpack.io' } maven { url 'https://maven.duti.dev/releases' } } + +loom { + accessWidenerPath = file("src/main/resources/meteor-rejects.accesswidener") +} + configurations { // configuration that holds jars to include in the jar extraLibs @@ -34,7 +39,7 @@ dependencies { mappings "net.fabricmc:yarn:${project.yarn_version}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" - modImplementation("meteordevelopment:meteor-client:${project.meteor_version}-SNAPSHOT") + modImplementation("meteordevelopment:meteor-client:${project.minecraft_version}-SNAPSHOT") modCompileOnly "meteordevelopment:baritone:${project.baritone_version}-SNAPSHOT" // seed .locate and ore sim @@ -53,10 +58,6 @@ dependencies { configurations.implementation.extendsFrom(configurations.extraLibs) } -loom { - accessWidenerPath = file("src/main/resources/meteor-rejects.accesswidener") -} - processResources { inputs.property "version", project.version @@ -70,7 +71,7 @@ processResources { jar { from("LICENSE") { - rename { "${it}_${project.archivesBaseName}"} + rename { "${it}_${project.archivesBaseName}" } } from { configurations.extraLibs.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/gradle.properties b/gradle.properties index 60b3865d..84389b6d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,14 +2,13 @@ org.gradle.jvmargs=-Xmx2G # Fabric Properties -minecraft_version=1.21 -yarn_version=1.21+build.2 -loader_version=0.15.11 +minecraft_version=1.21.4 +yarn_version=1.21.4+build.8 +loader_version=0.16.9 # Mod Properties mod_version = 0.3 maven_group = anticope.rejects archives_base_name = meteor-rejects-addon -meteor_version=0.5.8 -baritone_version=1.20.6 +baritone_version=1.21.4 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180f..a4b76b95 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 0d184210..cea7a793 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index fe1f4e62..f3b75f3b 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# 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. @@ -15,69 +15,103 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# 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 -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +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 -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# 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"' +# 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 -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" +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 - ;; +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 @@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 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" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,88 +132,120 @@ Please set the JAVA_HOME variable in your environment to match the 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. + 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" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +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 -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -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" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi +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 - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + 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 - i=`expr $i + 1` + # 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 - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +# 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" "$@" \ No newline at end of file +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 477c8966..9d21a218 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,8 +13,10 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +27,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,13 +43,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +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 @@ -56,11 +59,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 @@ -75,15 +78,17 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +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! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +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 \ No newline at end of file +:omega diff --git a/src/main/java/anticope/rejects/commands/CenterCommand.java b/src/main/java/anticope/rejects/commands/CenterCommand.java index bf11c56e..7ca7aff1 100644 --- a/src/main/java/anticope/rejects/commands/CenterCommand.java +++ b/src/main/java/anticope/rejects/commands/CenterCommand.java @@ -17,7 +17,7 @@ public void build(LiteralArgumentBuilder builder) { double x = MathHelper.floor(mc.player.getX()) + 0.5; double z = MathHelper.floor(mc.player.getZ()) + 0.5; mc.player.setPosition(x, mc.player.getY(), z); - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.isOnGround())); + mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.isOnGround(), mc.player.horizontalCollision)); return SINGLE_SUCCESS; })); @@ -26,7 +26,7 @@ public void build(LiteralArgumentBuilder builder) { double x = MathHelper.floor(mc.player.getX()); double z = MathHelper.floor(mc.player.getZ()); mc.player.setPosition(x, mc.player.getY(), z); - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.isOnGround())); + mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.isOnGround(), mc.player.horizontalCollision)); return SINGLE_SUCCESS; })); diff --git a/src/main/java/anticope/rejects/commands/KickCommand.java b/src/main/java/anticope/rejects/commands/KickCommand.java index 19a54d0e..6272eb2d 100644 --- a/src/main/java/anticope/rejects/commands/KickCommand.java +++ b/src/main/java/anticope/rejects/commands/KickCommand.java @@ -44,7 +44,7 @@ public void build(LiteralArgumentBuilder builder) { return SINGLE_SUCCESS; })); builder.then(literal("pos").executes(ctx -> { - mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(Double.NaN, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, !mc.player.isOnGround())); + mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(Double.NaN, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, !mc.player.isOnGround(), mc.player.horizontalCollision)); return SINGLE_SUCCESS; })); builder.then(literal("hurt").executes(ctx -> { diff --git a/src/main/java/anticope/rejects/gui/screens/InteractionScreen.java b/src/main/java/anticope/rejects/gui/screens/InteractionScreen.java index 6f50f03e..63d5b8a2 100644 --- a/src/main/java/anticope/rejects/gui/screens/InteractionScreen.java +++ b/src/main/java/anticope/rejects/gui/screens/InteractionScreen.java @@ -15,12 +15,13 @@ import meteordevelopment.starscript.utils.Error; import meteordevelopment.starscript.utils.StarscriptError; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gl.ShaderProgramKeys; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ChatScreen; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.client.option.KeyBinding; -import net.minecraft.client.render.GameRenderer; +import net.minecraft.client.render.RenderLayer; import net.minecraft.client.util.InputUtil; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.component.DataComponentTypes; @@ -38,6 +39,7 @@ import net.minecraft.text.Text; import net.minecraft.util.Hand; import net.minecraft.util.Identifier; +import net.minecraft.util.PlayerInput; import net.minecraft.util.math.MathHelper; import org.joml.Vector2f; import org.lwjgl.glfw.GLFW; @@ -102,7 +104,9 @@ public InteractionScreen(Entity entity, InteractionMenu module) { functions.put("Open Inventory", (Entity e) -> { closeScreen(); if (client.player.isRiding()) { - client.player.networkHandler.sendPacket(new PlayerInputC2SPacket(0, 0, false, true)); +// client.player.networkHandler.sendPacket(new PlayerInputC2SPacket(0, 0, false, true)); + client.player.networkHandler.sendPacket(new PlayerInputC2SPacket(new PlayerInput(false, false, false, false, false, true, false))); + } client.player.networkHandler.sendPacket(PlayerInteractEntityC2SPacket.interact(entity, true, Hand.MAIN_HAND)); client.player.setSneaking(false); @@ -251,12 +255,12 @@ public void render(DrawContext context, int mouseX, int mouseY, float delta) { MatrixStack matrix = context.getMatrices(); // Fake crosshair stuff RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - RenderSystem.setShader(GameRenderer::getPositionTexProgram); + RenderSystem.setShader(ShaderProgramKeys.POSITION_TEX); RenderSystem.enableBlend(); RenderSystem.blendFuncSeparate(GlStateManager.SrcFactor.ONE_MINUS_DST_COLOR, GlStateManager.DstFactor.ONE_MINUS_SRC_COLOR, GlStateManager.SrcFactor.ONE, GlStateManager.DstFactor.ZERO); - context.drawTexture(GUI_ICONS_TEXTURE, crosshairX - 8, crosshairY - 8, 0, 0, 15, 15); + context.drawTexture(RenderLayer::getGuiTextured, GUI_ICONS_TEXTURE, crosshairX - 8, crosshairY - 8, 0, 0, 15, 15, 256, 256); drawDots(context, (int) (Math.min(height, width) / 2 * 0.75), mouseX, mouseY); matrix.scale(2f, 2f, 1f); diff --git a/src/main/java/anticope/rejects/mixin/GameRendererMixin.java b/src/main/java/anticope/rejects/mixin/GameRendererMixin.java index f1f18231..21b541f1 100644 --- a/src/main/java/anticope/rejects/mixin/GameRendererMixin.java +++ b/src/main/java/anticope/rejects/mixin/GameRendererMixin.java @@ -5,6 +5,7 @@ import net.minecraft.client.gl.PostEffectProcessor; import net.minecraft.client.render.RenderTickCounter; +import net.minecraft.client.util.Pool; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -18,6 +19,8 @@ @Mixin(GameRenderer.class) public class GameRendererMixin { @Shadow @Final MinecraftClient client; + @Shadow @Final + Pool pool; @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;drawEntityOutlinesFramebuffer()V", ordinal = 0)) private void renderShader(RenderTickCounter tickCounter, boolean tick, CallbackInfo ci) { @@ -26,8 +29,8 @@ private void renderShader(RenderTickCounter tickCounter, boolean tick, CallbackI PostEffectProcessor shader = renderingModule.getShaderEffect(); if (shader != null) { - shader.setupDimensions(client.getWindow().getFramebufferWidth(), client.getWindow().getFramebufferHeight()); - shader.render(tickCounter.getTickDelta(tick)); +// shader.setupDimensions(client.getWindow().getFramebufferWidth(), client.getWindow().getFramebufferHeight()); + shader.render(this.client.getFramebuffer(), this.pool); } } } diff --git a/src/main/java/anticope/rejects/mixin/LivingEntityRendererMixin.java b/src/main/java/anticope/rejects/mixin/LivingEntityRendererMixin.java index ed4cce6f..ff6b00f7 100644 --- a/src/main/java/anticope/rejects/mixin/LivingEntityRendererMixin.java +++ b/src/main/java/anticope/rejects/mixin/LivingEntityRendererMixin.java @@ -5,9 +5,11 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.render.entity.LivingEntityRenderer; +import net.minecraft.client.render.entity.model.EntityModel; +import net.minecraft.client.render.entity.state.LivingEntityRenderState; +import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.util.math.RotationAxis; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -16,14 +18,14 @@ @Environment(EnvType.CLIENT) @Mixin(LivingEntityRenderer.class) -public class LivingEntityRendererMixin { +public class LivingEntityRendererMixin> { @Inject(method = "setupTransforms", at = @At(value = "TAIL")) - private void dinnerboneEntities(T entity, MatrixStack matrices, float animationProgress, float bodyYaw, float tickDelta, float scale, CallbackInfo ci) { + private void dinnerboneEntities(S state, MatrixStack matrices, float animationProgress, float bodyYaw, CallbackInfo ci) { Rendering renderingModule = Modules.get().get(Rendering.class); if (renderingModule == null) return; - if ((!(entity instanceof PlayerEntity)) && renderingModule.dinnerboneEnabled()) { - matrices.translate(0.0D, entity.getHeight() + 0.1F, 0.0D); + if ((!(state instanceof PlayerEntityRenderState)) && renderingModule.dinnerboneEnabled()) { + matrices.translate(0.0D, state.height + 0.1F, 0.0D); matrices.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(180.0F)); } } diff --git a/src/main/java/anticope/rejects/mixin/VehicleMoveC2SPacketAccessor.java b/src/main/java/anticope/rejects/mixin/VehicleMoveC2SPacketAccessor.java index 43eb7c89..e6347321 100644 --- a/src/main/java/anticope/rejects/mixin/VehicleMoveC2SPacketAccessor.java +++ b/src/main/java/anticope/rejects/mixin/VehicleMoveC2SPacketAccessor.java @@ -1,17 +1,19 @@ package anticope.rejects.mixin; import net.minecraft.network.packet.c2s.play.VehicleMoveC2SPacket; +import net.minecraft.util.math.Vec3d; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.gen.Accessor; +import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(VehicleMoveC2SPacket.class) public interface VehicleMoveC2SPacketAccessor { - @Mutable - @Accessor("x") - void setX(double x); + @Accessor("position") + Vec3d getPosition(); - @Mutable - @Accessor("z") - void setZ(double z); + @Invoker("") + static VehicleMoveC2SPacket create(Vec3d position, float yaw, float pitch, boolean onGround) { + throw new AssertionError(); + } } diff --git a/src/main/java/anticope/rejects/mixin/meteor/ModuleMixin.java b/src/main/java/anticope/rejects/mixin/meteor/ModuleMixin.java index 2cc1eb41..69146ad5 100644 --- a/src/main/java/anticope/rejects/mixin/meteor/ModuleMixin.java +++ b/src/main/java/anticope/rejects/mixin/meteor/ModuleMixin.java @@ -18,7 +18,7 @@ public class ModuleMixin { @Mutable @Shadow public String title; - @Inject(method = "", at = @At("TAIL")) + @Inject(method = "*", at = @At("TAIL")) private void onInit(Category category, String name, String description, CallbackInfo info) { if (RejectsConfig.get().duplicateModuleNames) { this.name = RejectsUtils.getModuleName(name); diff --git a/src/main/java/anticope/rejects/modules/AntiCrash.java b/src/main/java/anticope/rejects/modules/AntiCrash.java index 166ea913..f3c049cf 100644 --- a/src/main/java/anticope/rejects/modules/AntiCrash.java +++ b/src/main/java/anticope/rejects/modules/AntiCrash.java @@ -11,6 +11,7 @@ import net.minecraft.network.packet.s2c.play.ExplosionS2CPacket; import net.minecraft.network.packet.s2c.play.ParticleS2CPacket; import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket; +import net.minecraft.util.math.Vec3d; public class AntiCrash extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -29,22 +30,25 @@ public AntiCrash() { @EventHandler private void onPacketReceive(PacketEvent.Receive event) { if (event.packet instanceof ExplosionS2CPacket packet) { - if (/* outside of world */ packet.getX() > 30_000_000 || packet.getY() > 30_000_000 || packet.getZ() > 30_000_000 || packet.getX() < -30_000_000 || packet.getY() < -30_000_000 || packet.getZ() < -30_000_000 || - // power too high - packet.getRadius() > 1000 || - // too many blocks - packet.getAffectedBlocks().size() > 100_000 || + Vec3d explodePos = packet.center(); + // TODO: 1.21.3 + Vec3d playerKnockback = new Vec3d(0, 0, 0); + if(packet.playerKnockback().isPresent()) { + playerKnockback = packet.playerKnockback().get(); + } + if (/* outside of world */ explodePos.getX() > 30_000_000 || explodePos.getY() > 30_000_000 || explodePos.getZ() > 30_000_000 || explodePos.getX() < -30_000_000 || explodePos.getY() < -30_000_000 || explodePos.getZ() < -30_000_000 || // too much knockback - packet.getPlayerVelocityX() > 30_000_000 || packet.getPlayerVelocityY() > 30_000_000 || packet.getPlayerVelocityZ() > 30_000_000 + playerKnockback.x > 30_000_000 || playerKnockback.y > 30_000_000 || playerKnockback.z > 30_000_000 // knockback can be negative? - || packet.getPlayerVelocityX() < -30_000_000 || packet.getPlayerVelocityY() < -30_000_000 || packet.getPlayerVelocityZ() < -30_000_000 + || playerKnockback.x < -30_000_000 || playerKnockback.y < -30_000_000 || playerKnockback.z < -30_000_000 ) cancel(event); } else if (event.packet instanceof ParticleS2CPacket packet) { // too many particles if (packet.getCount() > 100_000) cancel(event); } else if (event.packet instanceof PlayerPositionLookS2CPacket packet) { + Vec3d playerPos = packet.change().position(); // out of world movement - if (packet.getX() > 30_000_000 || packet.getY() > 30_000_000 || packet.getZ() > 30_000_000 || packet.getX() < -30_000_000 || packet.getY() < -30_000_000 || packet.getZ() < -30_000_000) + if (playerPos.x > 30_000_000 || playerPos.y > 30_000_000 || playerPos.z > 30_000_000 || playerPos.x < -30_000_000 || playerPos.y < -30_000_000 || playerPos.z < -30_000_000) cancel(event); } else if (event.packet instanceof EntityVelocityUpdateS2CPacket packet) { // velocity diff --git a/src/main/java/anticope/rejects/modules/ArrowDmg.java b/src/main/java/anticope/rejects/modules/ArrowDmg.java index 02c8488f..95587087 100644 --- a/src/main/java/anticope/rejects/modules/ArrowDmg.java +++ b/src/main/java/anticope/rejects/modules/ArrowDmg.java @@ -54,9 +54,9 @@ private void onStopUsingItem(StopUsingItemEvent event) { for (int i = 0; i < packets.get() / 2; i++) { p.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(x, - y - 1e-10, z, true)); + y - 1e-10, z, true, mc.player.horizontalCollision)); p.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(x, - y + 1e-10, z, false)); + y + 1e-10, z, false, mc.player.horizontalCollision)); } } diff --git a/src/main/java/anticope/rejects/modules/AutoCraft.java b/src/main/java/anticope/rejects/modules/AutoCraft.java index f87e5823..cd269917 100644 --- a/src/main/java/anticope/rejects/modules/AutoCraft.java +++ b/src/main/java/anticope/rejects/modules/AutoCraft.java @@ -10,7 +10,10 @@ import meteordevelopment.orbit.EventHandler; import net.minecraft.client.gui.screen.recipebook.RecipeResultCollection; import net.minecraft.item.Item; -import net.minecraft.recipe.RecipeEntry; +import net.minecraft.item.ItemStack; +import net.minecraft.recipe.RecipeDisplayEntry; +import net.minecraft.recipe.display.RecipeDisplay; +import net.minecraft.recipe.display.SlotDisplayContexts; import net.minecraft.screen.CraftingScreenHandler; import net.minecraft.screen.slot.SlotActionType; @@ -70,11 +73,20 @@ private void onTick(TickEvent.Post event) { List itemList = items.get(); List recipeResultCollectionList = mc.player.getRecipeBook().getOrderedResults(); for (RecipeResultCollection recipeResultCollection : recipeResultCollectionList) { - for (RecipeEntry recipe : recipeResultCollection.getRecipes(true)) { - if (!itemList.contains(recipe.value().getResult(mc.world.getRegistryManager()).getItem())) continue; - mc.interactionManager.clickRecipe(currentScreenHandler.syncId, recipe, craftAll.get()); - mc.interactionManager.clickSlot(currentScreenHandler.syncId, 0, 1, - drop.get() ? SlotActionType.THROW : SlotActionType.QUICK_MOVE, mc.player); + // Get craftable recipes only + List craftRecipes = recipeResultCollection.filter(RecipeResultCollection.RecipeFilterMode.CRAFTABLE); + for (RecipeDisplayEntry recipe : craftRecipes) { + RecipeDisplay recipeDisplay = recipe.display(); + if (mc.world == null) continue; // TODO: I don't know how to handle this. Please do something! :D - xtendera + List resultStacks = recipeDisplay.result().getStacks(SlotDisplayContexts.createParameters(mc.world)); + for (ItemStack resultStack : resultStacks) { + // Check if the result item is in the item list + if (!itemList.contains(resultStack.getItem())) continue; + + mc.interactionManager.clickRecipe(currentScreenHandler.syncId, recipe.id(), craftAll.get()); + mc.interactionManager.clickSlot(currentScreenHandler.syncId, 0, 1, + drop.get() ? SlotActionType.THROW : SlotActionType.QUICK_MOVE, mc.player); + } } } } diff --git a/src/main/java/anticope/rejects/modules/AutoWither.java b/src/main/java/anticope/rejects/modules/AutoWither.java index ab5185ae..848775ab 100644 --- a/src/main/java/anticope/rejects/modules/AutoWither.java +++ b/src/main/java/anticope/rejects/modules/AutoWither.java @@ -139,7 +139,7 @@ private void onTick(TickEvent.Pre event) { // Register BlockIterator.register(horizontalRadius.get(), verticalRadius.get(), (blockPos, blockState) -> { - Direction dir = Direction.fromRotation(Rotations.getYaw(blockPos)).getOpposite(); + Direction dir = Direction.fromHorizontalDegrees(Rotations.getYaw(blockPos)).getOpposite(); if (isValidSpawn(blockPos, dir)) withers.add(witherPool.get().set(blockPos, dir)); }); } diff --git a/src/main/java/anticope/rejects/modules/BoatPhase.java b/src/main/java/anticope/rejects/modules/BoatPhase.java index adf54a17..0bce19ed 100644 --- a/src/main/java/anticope/rejects/modules/BoatPhase.java +++ b/src/main/java/anticope/rejects/modules/BoatPhase.java @@ -130,7 +130,7 @@ private void onBoatMove(BoatMoveEvent event) { else if (fall.get()) velY -= fallSpeed.get() / 20; } else if (fall.get()) velY -= fallSpeed.get() / 20; - ((IVec3d) boat.getVelocity()).set(velX,velY,velZ); + ((IVec3d) boat.getVelocity()).meteor$set(velX,velY,velZ); } } } diff --git a/src/main/java/anticope/rejects/modules/ChorusExploit.java b/src/main/java/anticope/rejects/modules/ChorusExploit.java index 54555ad8..7486aa79 100644 --- a/src/main/java/anticope/rejects/modules/ChorusExploit.java +++ b/src/main/java/anticope/rejects/modules/ChorusExploit.java @@ -142,9 +142,10 @@ private void onPacketRecieve(PacketEvent.Receive event) { if (event.packet instanceof PlayerPositionLookS2CPacket posPacket && ateChorus) { event.setCancelled(true); if (positionMode.get() == PositionMode.PosLook) { - cposX = posPacket.getX(); - cposY = posPacket.getY(); - cposZ = posPacket.getZ(); + Vec3d pos = posPacket.change().position(); + cposX = pos.x; + cposY = pos.y; + cposZ = pos.z; gotPosition = true; } } diff --git a/src/main/java/anticope/rejects/modules/CoordLogger.java b/src/main/java/anticope/rejects/modules/CoordLogger.java index b2d89cdc..17fe4389 100644 --- a/src/main/java/anticope/rejects/modules/CoordLogger.java +++ b/src/main/java/anticope/rejects/modules/CoordLogger.java @@ -99,11 +99,11 @@ private void onPacketReceive(PacketEvent.Receive event) { EntityPositionS2CPacket packet = (EntityPositionS2CPacket) event.packet; try { - Entity entity = mc.world.getEntityById(packet.getId()); + Entity entity = mc.world.getEntityById(packet.entityId()); // Player teleport if (entity.getType().equals(EntityType.PLAYER) && players.get()) { - Vec3d packetPosition = new Vec3d(packet.getX(), packet.getY(), packet.getZ()); + Vec3d packetPosition = packet.change().position(); Vec3d playerPosition = entity.getPos(); if (playerPosition.distanceTo(packetPosition) >= minDistance.get()) { @@ -113,7 +113,7 @@ private void onPacketReceive(PacketEvent.Receive event) { // World teleport else if (entity.getType().equals(EntityType.WOLF) && wolves.get()) { - Vec3d packetPosition = new Vec3d(packet.getX(), packet.getY(), packet.getZ()); + Vec3d packetPosition = packet.change().position(); Vec3d wolfPosition = entity.getPos(); UUID ownerUuid = ((TameableEntity) entity).getOwnerUuid(); diff --git a/src/main/java/anticope/rejects/modules/ExtraElytra.java b/src/main/java/anticope/rejects/modules/ExtraElytra.java index a2fdb16f..d5862910 100644 --- a/src/main/java/anticope/rejects/modules/ExtraElytra.java +++ b/src/main/java/anticope/rejects/modules/ExtraElytra.java @@ -8,7 +8,6 @@ import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.ElytraItem; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket; @@ -72,18 +71,17 @@ private void onTick(TickEvent.Post event) { if (chest.getItem() != Items.ELYTRA) return; - if (mc.player.isFallFlying()) { + if (mc.player.isGliding()) { if (stopInWater.get() && mc.player.isTouchingWater()) { sendStartStopPacket(); return; } - controlSpeed(); controlHeight(); return; } - if (ElytraItem.isUsable(chest) && mc.options.jumpKey.isPressed()) + if (chest.getDamage() < chest.getMaxDamage() - 1 && mc.options.jumpKey.isPressed()) doInstantFly(); } diff --git a/src/main/java/anticope/rejects/modules/FullFlight.java b/src/main/java/anticope/rejects/modules/FullFlight.java index f20e723d..023aa627 100644 --- a/src/main/java/anticope/rejects/modules/FullFlight.java +++ b/src/main/java/anticope/rejects/modules/FullFlight.java @@ -112,14 +112,16 @@ private void onSendPacket(PacketEvent.Send event) { mc.player.getZ(), packet.getYaw(0), packet.getPitch(0), - packet.isOnGround() + packet.isOnGround(), + packet.horizontalCollision() ); } else { fullPacket = new PlayerMoveC2SPacket.PositionAndOnGround( mc.player.getX(), mc.player.getY(), mc.player.getZ(), - packet.isOnGround() + packet.isOnGround(), + packet.horizontalCollision() ); } event.cancel(); @@ -146,8 +148,8 @@ private void onPlayerMove(PlayerMoveEvent event) { if (blockCollisions.findAny().isPresent()) break; - mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY() - 0.4, mc.player.getZ(), mc.player.isOnGround())); - mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.isOnGround())); + mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY() - 0.4, mc.player.getZ(), mc.player.isOnGround(), mc.player.horizontalCollision)); + mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.isOnGround(), mc.player.horizontalCollision)); } case Old -> { Box box = mc.player.getBoundingBox(); @@ -161,20 +163,20 @@ private void onPlayerMove(PlayerMoveEvent event) { double groundExtra = ground + 0.1D; for (double posY = mc.player.getY(); posY > groundExtra; posY -= 4D) { - mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), posY, mc.player.getZ(), true)); + mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), posY, mc.player.getZ(), true, mc.player.horizontalCollision)); if (posY - 4D < groundExtra) break; // Prevent next step } - mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), groundExtra, mc.player.getZ(), true)); + mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), groundExtra, mc.player.getZ(), true, mc.player.horizontalCollision)); for (double posY = groundExtra; posY < mc.player.getY(); posY += 4D) { - mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), posY, mc.player.getZ(), mc.player.isOnGround())); + mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), posY, mc.player.getZ(), mc.player.isOnGround(), mc.player.horizontalCollision)); if (posY + 4D > mc.player.getY()) break; // Prevent next step } - mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.isOnGround())); + mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.isOnGround(), mc.player.horizontalCollision)); } } diff --git a/src/main/java/anticope/rejects/modules/Jetpack.java b/src/main/java/anticope/rejects/modules/Jetpack.java index 93ca1b32..b22a2dc6 100644 --- a/src/main/java/anticope/rejects/modules/Jetpack.java +++ b/src/main/java/anticope/rejects/modules/Jetpack.java @@ -29,7 +29,7 @@ public Jetpack() { @EventHandler private void onTick(TickEvent.Pre event) { if (mc.options.jumpKey.isPressed()) { - ((IVec3d) mc.player.getVelocity()).setY(jetpackSpeed.get()); + ((IVec3d) mc.player.getVelocity()).meteor$setY(jetpackSpeed.get()); } } diff --git a/src/main/java/anticope/rejects/modules/KnockbackPlus.java b/src/main/java/anticope/rejects/modules/KnockbackPlus.java index 4e73513b..b53e5e6d 100644 --- a/src/main/java/anticope/rejects/modules/KnockbackPlus.java +++ b/src/main/java/anticope/rejects/modules/KnockbackPlus.java @@ -31,8 +31,8 @@ public KnockbackPlus() { @EventHandler private void onSendPacket(PacketEvent.Send event) { - if (event.packet instanceof IPlayerInteractEntityC2SPacket packet && packet.getType() == PlayerInteractEntityC2SPacket.InteractType.ATTACK) { - Entity entity = packet.getEntity(); + if (event.packet instanceof IPlayerInteractEntityC2SPacket packet && packet.meteor$getType() == PlayerInteractEntityC2SPacket.InteractType.ATTACK) { + Entity entity = packet.meteor$getEntity(); if (!(entity instanceof LivingEntity) || (entity != Modules.get().get(KillAura.class).getTarget() && ka.get())) return; diff --git a/src/main/java/anticope/rejects/modules/NewChunks.java b/src/main/java/anticope/rejects/modules/NewChunks.java index 8834251c..87f4c783 100644 --- a/src/main/java/anticope/rejects/modules/NewChunks.java +++ b/src/main/java/anticope/rejects/modules/NewChunks.java @@ -18,6 +18,7 @@ import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3d; +import net.minecraft.world.Heightmap; import net.minecraft.world.chunk.WorldChunk; import java.util.Collections; @@ -187,8 +188,8 @@ else if (event.packet instanceof ChunkDataS2CPacket && mc.world != null) { for (int x = 0; x < 16; x++) { - for (int y = mc.world.getBottomY(); y < mc.world.getTopY(); y++) { - for (int z = 0; z < 16; z++) { + for (int z = 0; z < 16; z++) { + for (int y = mc.world.getBottomY(); y < mc.world.getTopY(Heightmap.Type.MOTION_BLOCKING, x, z); y++) { FluidState fluid = chunk.getFluidState(x, y, z); if (!fluid.isEmpty() && !fluid.isStill()) { diff --git a/src/main/java/anticope/rejects/modules/PacketFly.java b/src/main/java/anticope/rejects/modules/PacketFly.java index 16339740..6f8fa705 100644 --- a/src/main/java/anticope/rejects/modules/PacketFly.java +++ b/src/main/java/anticope/rejects/modules/PacketFly.java @@ -4,11 +4,11 @@ import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; import meteordevelopment.meteorclient.events.entity.player.SendMovementPacketsEvent; import meteordevelopment.meteorclient.events.packets.PacketEvent; -import meteordevelopment.meteorclient.mixin.PlayerPositionLookS2CPacketAccessor; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.player.PlayerUtils; import meteordevelopment.orbit.EventHandler; +import net.minecraft.entity.player.PlayerPosition; import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; import net.minecraft.network.packet.c2s.play.TeleportConfirmC2SPacket; import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket; @@ -128,7 +128,7 @@ public void onSendMovementPackets(SendMovementPacketsEvent.Pre event) { double speed = 0.0; boolean checkCollisionBoxes = checkHitBoxes(); - speed = mc.player.input.jumping && (checkCollisionBoxes || !(mc.player.input.movementForward != 0.0 || mc.player.input.movementSideways != 0.0)) ? (antiKick.get() && !checkCollisionBoxes ? (resetCounter(downDelayFlying.get()) ? -0.032 : verticalSpeed.get()/20) : verticalSpeed.get()/20) : (mc.player.input.sneaking ? verticalSpeed.get()/-20 : (!checkCollisionBoxes ? (resetCounter(downDelay.get()) ? (antiKick.get() ? -0.04 : 0.0) : 0.0) : 0.0)); + speed = mc.player.input.playerInput.jump() && (checkCollisionBoxes || !(mc.player.input.movementForward != 0.0 || mc.player.input.movementSideways != 0.0)) ? (antiKick.get() && !checkCollisionBoxes ? (resetCounter(downDelayFlying.get()) ? -0.032 : verticalSpeed.get()/20) : verticalSpeed.get()/20) : (mc.player.input.playerInput.sneak() ? verticalSpeed.get()/-20 : (!checkCollisionBoxes ? (resetCounter(downDelay.get()) ? (antiKick.get() ? -0.04 : 0.0) : 0.0) : 0.0)); Vec3d horizontal = PlayerUtils.getHorizontalVelocity(horizontalSpeed.get()); @@ -154,12 +154,17 @@ public void onPacketSent(PacketEvent.Send event) { public void onPacketReceive(PacketEvent.Receive event) { if (event.packet instanceof PlayerPositionLookS2CPacket && !(mc.player == null || mc.world == null)) { PlayerPositionLookS2CPacket packet = (PlayerPositionLookS2CPacket) event.packet; + PlayerPosition oldPos = packet.change(); if (setYaw.get()) { - ((PlayerPositionLookS2CPacketAccessor) event.packet).setPitch(mc.player.getPitch()); - ((PlayerPositionLookS2CPacketAccessor) event.packet).setYaw(mc.player.getYaw()); + PlayerPosition newPos = new PlayerPosition(oldPos.position(), oldPos.deltaMovement(), mc.player.getYaw(), mc.player.getPitch()); + event.packet = PlayerPositionLookS2CPacket.of( + packet.teleportId(), + newPos, + packet.relatives() + ); } if (setID.get()) { - teleportID = packet.getTeleportId(); + teleportID = packet.teleportId(); } } } @@ -180,9 +185,9 @@ private void sendPackets(double x, double y, double z, boolean teleport) { Vec3d vec = new Vec3d(x, y, z); Vec3d position = mc.player.getPos().add(vec); Vec3d outOfBoundsVec = outOfBoundsVec(vec, position); - packetSender(new PlayerMoveC2SPacket.PositionAndOnGround(position.x, position.y, position.z, mc.player.isOnGround())); + packetSender(new PlayerMoveC2SPacket.PositionAndOnGround(position.x, position.y, position.z, mc.player.isOnGround(), mc.player.horizontalCollision)); if (invalidPacket.get()) { - packetSender(new PlayerMoveC2SPacket.PositionAndOnGround(outOfBoundsVec.x, outOfBoundsVec.y, outOfBoundsVec.z, mc.player.isOnGround())); + packetSender(new PlayerMoveC2SPacket.PositionAndOnGround(outOfBoundsVec.x, outOfBoundsVec.y, outOfBoundsVec.z, mc.player.isOnGround(), mc.player.horizontalCollision)); } if (setPos.get()) { mc.player.setPos(position.x, position.y, position.z); diff --git a/src/main/java/anticope/rejects/modules/Rendering.java b/src/main/java/anticope/rejects/modules/Rendering.java index 960ad3f3..0caa38ad 100644 --- a/src/main/java/anticope/rejects/modules/Rendering.java +++ b/src/main/java/anticope/rejects/modules/Rendering.java @@ -7,38 +7,17 @@ import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; import net.minecraft.client.gl.PostEffectProcessor; +import net.minecraft.client.render.DefaultFramebufferSet; import net.minecraft.util.Identifier; -import java.io.IOException; - public class Rendering extends Module { public enum Shader { None, - Notch, - FXAA, - Art, - Bumpy, - Blobs, - Blobs2, - Pencil, - Vibrant, - Deconverge, - Flip, - Invert, - NTSC, - Outline, - Phosphor, - Scanline, - Sobel, - Bits, - Desaturate, - Green, Blur, - Wobble, - Antialias, Creeper, - Spider + Invert, + Spider, } private final SettingGroup sgInvisible = settings.createGroup("Invisible"); @@ -102,17 +81,17 @@ public void onDeactivate() { } public void onChanged(Shader s) { - String name; - if (s == Shader.Vibrant) name = "color_convolve"; - else if (s == Shader.Scanline) name = "scan_pincushion"; - else name = s.toString().toLowerCase(); - Identifier shaderID = Identifier.of(String.format("shaders/post/%s.json", name)); - try { - PostEffectProcessor shader = new PostEffectProcessor(mc.getTextureManager(), mc.getResourceManager(), mc.getFramebuffer(), shaderID); - this.shader = shader; - } catch (IOException e) { + if (mc.world == null) return; + String name = s.toString().toLowerCase(); + + if (name.equals("none")) { this.shader = null; + return; } + + Identifier shaderID = Identifier.ofVanilla(name); + PostEffectProcessor shader = mc.getShaderLoader().loadPostEffect(shaderID, DefaultFramebufferSet.MAIN_ONLY); + this.shader = shader; } public boolean renderStructureVoid() { diff --git a/src/main/java/anticope/rejects/modules/RoboWalk.java b/src/main/java/anticope/rejects/modules/RoboWalk.java index 23208cbe..50d317d9 100644 --- a/src/main/java/anticope/rejects/modules/RoboWalk.java +++ b/src/main/java/anticope/rejects/modules/RoboWalk.java @@ -8,6 +8,7 @@ import meteordevelopment.orbit.EventHandler; import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; import net.minecraft.network.packet.c2s.play.VehicleMoveC2SPacket; +import net.minecraft.util.math.Vec3d; public class RoboWalk extends Module { public RoboWalk() { @@ -30,11 +31,11 @@ private void onPacketSend(PacketEvent.Send event) { ((PlayerMoveC2SPacketAccessor) packet).setX(x); ((PlayerMoveC2SPacketAccessor) packet).setZ(z); } else if (event.packet instanceof VehicleMoveC2SPacket packet) { - double x = smooth(packet.getX()); - double z = smooth(packet.getZ()); + Vec3d pos = ((VehicleMoveC2SPacketAccessor) (Object) packet).getPosition(); + double x = smooth(pos.getX()); + double z = smooth(pos.getZ()); - ((VehicleMoveC2SPacketAccessor) packet).setX(x); - ((VehicleMoveC2SPacketAccessor) packet).setZ(z); + event.packet = VehicleMoveC2SPacketAccessor.create(new Vec3d(x, pos.getY(), z), packet.yaw(), packet.pitch(), packet.onGround()); } } } diff --git a/src/main/java/anticope/rejects/modules/ShieldBypass.java b/src/main/java/anticope/rejects/modules/ShieldBypass.java index 36e8f2b1..4cbec7d7 100644 --- a/src/main/java/anticope/rejects/modules/ShieldBypass.java +++ b/src/main/java/anticope/rejects/modules/ShieldBypass.java @@ -81,13 +81,13 @@ public void bypass(Entity target, Cancellable event) { event.cancel(); - mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(newPos.getX(), newPos.getY(), newPos.getZ(), true)); + mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(newPos.getX(), newPos.getY(), newPos.getZ(), true, false)); mc.getNetworkHandler().sendPacket(PlayerInteractEntityC2SPacket.attack(e, mc.player.isSneaking())); mc.getNetworkHandler().sendPacket(new HandSwingC2SPacket(mc.player.getActiveHand())); mc.player.resetLastAttackedTicks(); - mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), true)); + mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), true, mc.player.horizontalCollision)); } } } diff --git a/src/main/java/anticope/rejects/modules/SkeletonESP.java b/src/main/java/anticope/rejects/modules/SkeletonESP.java index c56ad1dc..b293bf16 100644 --- a/src/main/java/anticope/rejects/modules/SkeletonESP.java +++ b/src/main/java/anticope/rejects/modules/SkeletonESP.java @@ -17,12 +17,14 @@ import meteordevelopment.meteorclient.utils.render.color.SettingColor; import meteordevelopment.orbit.EventHandler; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gl.ShaderProgramKeys; import net.minecraft.client.model.ModelPart; import net.minecraft.client.option.Perspective; import net.minecraft.client.render.*; import net.minecraft.client.render.entity.LivingEntityRenderer; import net.minecraft.client.render.entity.PlayerEntityRenderer; import net.minecraft.client.render.entity.model.PlayerEntityModel; +import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; @@ -61,7 +63,7 @@ private void onRender(Render3DEvent event) { MatrixStack matrixStack = event.matrices; float g = event.tickDelta; - RenderSystem.setShader(GameRenderer::getPositionColorProgram); + RenderSystem.setShader(ShaderProgramKeys.POSITION_COLOR); RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.disableDepthTest(); @@ -79,8 +81,8 @@ private void onRender(Render3DEvent event) { PlayerEntity playerEntity = (PlayerEntity) entity; Vec3d footPos = getEntityRenderPosition(playerEntity, g); - PlayerEntityRenderer livingEntityRenderer = (PlayerEntityRenderer) (LivingEntityRenderer) mc.getEntityRenderDispatcher().getRenderer(playerEntity); - PlayerEntityModel playerEntityModel = (PlayerEntityModel) livingEntityRenderer.getModel(); + PlayerEntityRenderer livingEntityRenderer = (PlayerEntityRenderer) (LivingEntityRenderer) mc.getEntityRenderDispatcher().getRenderer(playerEntity); + PlayerEntityModel playerEntityModel = livingEntityRenderer.getModel(); float h = MathHelper.lerpAngleDegrees(g, playerEntity.prevBodyYaw, playerEntity.bodyYaw); if (mc.player == entity && Rotations.rotationTimer < rotationHoldTicks) h = Rotations.serverYaw; @@ -94,12 +96,17 @@ private void onRender(Render3DEvent event) { float m = playerEntity.getPitch(g); if (mc.player == entity && Rotations.rotationTimer < rotationHoldTicks) m = Rotations.serverPitch; - playerEntityModel.animateModel(playerEntity, q, p, g); - playerEntityModel.setAngles(playerEntity, q, p, o, k, m); + PlayerEntityRenderState renderState = new PlayerEntityRenderState(); + renderState.limbFrequency = q; + renderState.limbAmplitudeMultiplier = p; + renderState.age = o; + renderState.yawDegrees = k; + renderState.pitch = m; + playerEntityModel.setAngles(renderState); boolean swimming = playerEntity.isInSwimmingPose(); boolean sneaking = playerEntity.isSneaking(); - boolean flying = playerEntity.isFallFlying(); + boolean flying = playerEntity.isGliding(); ModelPart head = playerEntityModel.head; ModelPart leftArm = playerEntityModel.leftArm; @@ -189,7 +196,7 @@ private void onRender(Render3DEvent event) { RenderSystem.disableBlend(); RenderSystem.enableDepthTest(); RenderSystem.depthMask(true); - RenderSystem.setShader(GameRenderer::getPositionColorProgram); + RenderSystem.setShader(ShaderProgramKeys.POSITION_COLOR); } private void rotate(MatrixStack matrix, ModelPart modelPart) { diff --git a/src/main/java/anticope/rejects/modules/SoundLocator.java b/src/main/java/anticope/rejects/modules/SoundLocator.java index cb3b8783..9532b8f8 100644 --- a/src/main/java/anticope/rejects/modules/SoundLocator.java +++ b/src/main/java/anticope/rejects/modules/SoundLocator.java @@ -114,7 +114,7 @@ private void onPlaySound(PlaySoundEvent event) { if(whitelist.get()) { // Whitelist ON for (SoundEvent sound : sounds.get()) { - if (sound.getId().equals(event.sound.getId())) { + if (sound.id().equals(event.sound.getId())) { printSound(event.sound); break; } diff --git a/src/main/java/anticope/rejects/modules/TreeAura.java b/src/main/java/anticope/rejects/modules/TreeAura.java index 559a7589..3507dd9f 100644 --- a/src/main/java/anticope/rejects/modules/TreeAura.java +++ b/src/main/java/anticope/rejects/modules/TreeAura.java @@ -1,6 +1,7 @@ package anticope.rejects.modules; import anticope.rejects.MeteorRejectsAddon; +import anticope.rejects.utils.WorldUtils; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.modules.Module; @@ -139,22 +140,9 @@ private boolean canPlant(BlockPos pos) { return false; } - private List getBlocks(BlockPos centerPos, int radius, int height) { - ArrayList blocks = new ArrayList<>(); - for (int i = centerPos.getX() - radius; i < centerPos.getX() + radius; i++) { - for (int j = centerPos.getY() - height; j < centerPos.getY() + height; j++) { - for (int k = centerPos.getZ() - radius; k < centerPos.getZ() + radius; k++) { - BlockPos pos = new BlockPos(i, j, k); - if (distanceBetween(centerPos, pos) <= radius && !blocks.contains(pos)) blocks.add(pos); - } - } - } - return blocks; - } - private List findSaplings(BlockPos centerPos, int radius, int height) { ArrayList blocc = new ArrayList<>(); - List blocks = getBlocks(centerPos, radius, height); + List blocks = WorldUtils.getSphere(centerPos, radius, height); for (BlockPos b : blocks) if (isSapling(b)) blocc.add(b); return blocc; } @@ -169,7 +157,7 @@ private BlockPos findPlantedSapling() { private List getPlantLocations(BlockPos centerPos, int radius, int height) { ArrayList blocc = new ArrayList<>(); - List blocks = getBlocks(centerPos, radius, height); + List blocks = WorldUtils.getSphere(centerPos, radius, height); for (BlockPos b : blocks) if (canPlant(b)) blocc.add(b); return blocc; } diff --git a/src/main/java/anticope/rejects/utils/GiveUtils.java b/src/main/java/anticope/rejects/utils/GiveUtils.java index b49742c3..22065c85 100644 --- a/src/main/java/anticope/rejects/utils/GiveUtils.java +++ b/src/main/java/anticope/rejects/utils/GiveUtils.java @@ -132,27 +132,27 @@ public static void giveItem(ItemStack item) throws CommandSyntaxException { } stack.set(DataComponentTypes.POTION_CONTENTS, new PotionContentsComponent(Optional.empty(), Optional.empty(), - effects)); + effects, Optional.empty())); stack.set(DataComponentTypes.CUSTOM_NAME, Text.literal("Lingering Potion of Trolling")); return stack; }); PRESETS.put("32k", (preview) -> { - enchantmentRegistry = mc.world.getRegistryManager().get(RegistryKeys.ENCHANTMENT); + enchantmentRegistry = mc.world.getRegistryManager().getOrThrow(RegistryKeys.ENCHANTMENT); if (preview || enchantmentRegistry == null) return Items.DIAMOND_SWORD.getDefaultStack(); ItemStack stack = Items.DIAMOND_SWORD.getDefaultStack(); stack.apply(DataComponentTypes.ENCHANTMENTS, ItemEnchantmentsComponent.DEFAULT, component -> { ItemEnchantmentsComponent.Builder builder = new ItemEnchantmentsComponent.Builder(component); - builder.add(enchantmentRegistry.entryOf(Enchantments.SHARPNESS), 255); - builder.add(enchantmentRegistry.entryOf(Enchantments.KNOCKBACK), 255); - builder.add(enchantmentRegistry.entryOf(Enchantments.FIRE_ASPECT), 255); - builder.add(enchantmentRegistry.entryOf(Enchantments.LOOTING), 10); - builder.add(enchantmentRegistry.entryOf(Enchantments.SWEEPING_EDGE), 3); - builder.add(enchantmentRegistry.entryOf(Enchantments.UNBREAKING), 255); - builder.add(enchantmentRegistry.entryOf(Enchantments.MENDING), 1); - builder.add(enchantmentRegistry.entryOf(Enchantments.VANISHING_CURSE), 1); + builder.add(enchantmentRegistry.getOrThrow(Enchantments.SHARPNESS), 255); + builder.add(enchantmentRegistry.getOrThrow(Enchantments.KNOCKBACK), 255); + builder.add(enchantmentRegistry.getOrThrow(Enchantments.FIRE_ASPECT), 255); + builder.add(enchantmentRegistry.getOrThrow(Enchantments.LOOTING), 10); + builder.add(enchantmentRegistry.getOrThrow(Enchantments.SWEEPING_EDGE), 3); + builder.add(enchantmentRegistry.getOrThrow(Enchantments.UNBREAKING), 255); + builder.add(enchantmentRegistry.getOrThrow(Enchantments.MENDING), 1); + builder.add(enchantmentRegistry.getOrThrow(Enchantments.VANISHING_CURSE), 1); return builder.build(); }); diff --git a/src/main/java/anticope/rejects/utils/Ore.java b/src/main/java/anticope/rejects/utils/Ore.java index 762679bb..311b3830 100755 --- a/src/main/java/anticope/rejects/utils/Ore.java +++ b/src/main/java/anticope/rejects/utils/Ore.java @@ -48,8 +48,8 @@ public class Ore { public static Map, List> getRegistry(Dimension dimension) { RegistryWrapper.WrapperLookup registry = BuiltinRegistries.createWrapperLookup(); - RegistryWrapper.Impl features = registry.getWrapperOrThrow(RegistryKeys.PLACED_FEATURE); - var reg = registry.getWrapperOrThrow(RegistryKeys.WORLD_PRESET).getOrThrow(WorldPresets.DEFAULT).value().createDimensionsRegistryHolder().dimensions(); + RegistryWrapper.Impl features = registry.getOrThrow(RegistryKeys.PLACED_FEATURE); + var reg = registry.getOrThrow(RegistryKeys.WORLD_PRESET).getOrThrow(WorldPresets.DEFAULT).value().createDimensionsRegistryHolder().dimensions(); var dim = switch (dimension) { case Overworld -> reg.get(DimensionOptions.OVERWORLD); diff --git a/src/main/java/anticope/rejects/utils/RejectsUtils.java b/src/main/java/anticope/rejects/utils/RejectsUtils.java index 3cc55586..0bb8c71e 100644 --- a/src/main/java/anticope/rejects/utils/RejectsUtils.java +++ b/src/main/java/anticope/rejects/utils/RejectsUtils.java @@ -70,9 +70,9 @@ public static float fullFlightMove(PlayerMoveEvent event, double speed, boolean double xDir = Math.cos(Math.toRadians(dir + 90)); double zDir = Math.sin(Math.toRadians(dir + 90)); - ((IVec3d) event.movement).setXZ(xDir * speed, zDir * speed); + ((IVec3d) event.movement).meteor$setXZ(xDir * speed, zDir * speed); } else { - ((IVec3d) event.movement).setXZ(0, 0); + ((IVec3d) event.movement).meteor$setXZ(0, 0); } float ySpeed = 0; @@ -81,7 +81,7 @@ public static float fullFlightMove(PlayerMoveEvent event, double speed, boolean ySpeed += speed; if (mc.options.sneakKey.isPressed()) ySpeed -= speed; - ((IVec3d) event.movement).setY(verticalSpeedMatch ? ySpeed : ySpeed / 2); + ((IVec3d) event.movement).meteor$setY(verticalSpeedMatch ? ySpeed : ySpeed / 2); return ySpeed; } diff --git a/src/main/java/anticope/rejects/utils/WorldUtils.java b/src/main/java/anticope/rejects/utils/WorldUtils.java index 7d01c8f5..a2e2040e 100644 --- a/src/main/java/anticope/rejects/utils/WorldUtils.java +++ b/src/main/java/anticope/rejects/utils/WorldUtils.java @@ -41,13 +41,13 @@ public static double distanceBetween(BlockPos pos1, BlockPos pos2) { public static boolean interact(BlockPos pos, FindItemResult findItemResult, boolean rotate) { if (!findItemResult.found()) return false; Runnable action = () -> { - boolean wasSneaking = mc.player.input.sneaking; - mc.player.input.sneaking = false; + boolean wasSneaking = mc.player.isSneaking(); + mc.player.setSneaking(false); InvUtils.swap(findItemResult.slot(), true); mc.interactionManager.interactBlock(mc.player, Hand.MAIN_HAND, new BlockHitResult(Vec3d.ofCenter(pos), Direction.UP, pos, false)); mc.player.swingHand(Hand.MAIN_HAND); InvUtils.swapBack(); - mc.player.input.sneaking = wasSneaking; + mc.player.setSneaking(wasSneaking); }; if (rotate) Rotations.rotate(Rotations.getYaw(pos), Rotations.getPitch(pos), -100, action); else action.run(); diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 5b8ab2bb..9d16aea7 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -36,7 +36,7 @@ "github:sha": "${gh_hash}" }, "depends": { - "java": ">=16", + "java": ">=21", "minecraft": "~${mc_version}", "meteor-client": "*" } diff --git a/src/main/resources/meteor-rejects.accesswidener b/src/main/resources/meteor-rejects.accesswidener index 9d83c2af..459332f2 100644 --- a/src/main/resources/meteor-rejects.accesswidener +++ b/src/main/resources/meteor-rejects.accesswidener @@ -1,3 +1,3 @@ -accessWidener v1 named +accessWidener v2 named accessible class net/minecraft/network/packet/c2s/play/PlayerInteractEntityC2SPacket$InteractType \ No newline at end of file