Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ preprocess {

def mc260102 = createNode('26.1.2', 26_01_02, '')
def mc260200 = createNode('26.2', 26_02_00, '')
def mc260300 = createNode('26.3', 26_03_00, '')

mc260102.link(mc260200, file('versions/mapping-26.1.2-26.2.txt'))
mc260200.link(mc260300, file('versions/mapping-26.2-26.3.txt'))
}

tasks.register('buildAndGather') {
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ loader_version = 0.19.3
# Mod Properties
mod_id = fuzz
mod_name = Fuzz
mod_version = 1.6.13
mod_version = 1.6.14
maven_group = top.1024byteeeee
archives_base_name = Fuzz

Expand Down
3 changes: 2 additions & 1 deletion minecraftVersions.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"versions": [
"26.1.2",
"26.2"
"26.2",
"26.3"
]
}
8 changes: 6 additions & 2 deletions run/options.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version:4903
version:5023
ao:true
biomeBlendRadius:2
chunkSectionFadeInTime:0.75
Expand All @@ -18,8 +18,10 @@ graphicsPreset:"custom"
prioritizeChunkUpdates:0
fullscreen:false
exclusiveFullscreen:false
macFullscreenMenuVisibility:false
gamma:0.5
guiScale:0
debugGuiScale:0
maxAnisotropyBit:2
textureFiltering:0
maxFps:260
Expand Down Expand Up @@ -89,8 +91,9 @@ mainHand:"right"
attackIndicator:1
tutorialStep:none
mouseWheelSensitivity:1.0
rawMouseInput:true
allowCursorChanges:true
quitShortcuts:true
ctrlClickEmulatesRightClick:false
glDebugVerbosity:1
skipMultiplayerWarning:true
hideMatchedNames:true
Expand Down Expand Up @@ -170,6 +173,7 @@ key_key.debug.profilingChart:key.keyboard.1
key_key.debug.fpsCharts:key.keyboard.2
key_key.debug.networkCharts:key.keyboard.3
key_key.debug.lightmapTexture:key.keyboard.4
key_key.debug.improvedTransparency:key.keyboard.x
key_快捷踢出假人:key.keyboard.unknown
key_快捷扔出假人背包:key.keyboard.unknown
key_清除坐标罗盘:key.keyboard.unknown
Expand Down
12 changes: 11 additions & 1 deletion src/main/java/top/byteeeee/fuzz/key/KeyMappings.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@
import com.mojang.blaze3d.platform.InputConstants;

import org.jspecify.annotations.NonNull;
//#if MC<260300
import org.lwjgl.glfw.GLFW;
//#endif

import top.byteeeee.fuzz.utils.IdentifierUtil;
import top.byteeeee.fuzz.translations.Translator;
Expand Down Expand Up @@ -58,7 +60,15 @@ private static class FuzzKeyBinding extends KeyMapping {
private final String translationKey;

public FuzzKeyBinding(String translationKey) {
super(tr.tr(translationKey).getString(), InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_UNKNOWN, FUZZ_CATEGORY);
super(
tr.tr(translationKey).getString(),
//#if MC>=260300
//$$ InputConstants.Type.KEYBOARD, InputConstants.UNKNOWN.getValue(),
//#else
InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_UNKNOWN,
//#endif
FUZZ_CATEGORY
);
this.translationKey = translationKey;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
package top.byteeeee.fuzz.mixin.rule.letFluidInteractLikeAir;

import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;

Expand All @@ -32,6 +31,9 @@

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

import top.byteeeee.fuzz.FuzzSettings;
import top.byteeeee.fuzz.utils.ClientUtil;
Expand Down Expand Up @@ -94,22 +96,27 @@ private boolean noPush(Entity entity, Operation<Boolean> original) {
}
}

@WrapWithCondition(
method = "setSwimming",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/world/entity/Entity;setSharedFlag(IZ)V"
)
)
private boolean setSwimming(Entity entity, int index, boolean value) {
return !FuzzSettings.letFluidInteractLikeAir && ClientUtil.isLocalPlayerSelf(entity);
@Inject(method = "setSwimming", at = @At("HEAD"), cancellable = true)
private void setSwimming(CallbackInfo ci) {
Entity entity = (Entity) (Object) this;
if (FuzzSettings.letFluidInteractLikeAir && ClientUtil.isLocalPlayerSelf(entity)) {
ci.cancel();
}
}

@Inject(method = "isSwimming", at = @At("HEAD"), cancellable = true)
private void isSwimming(CallbackInfoReturnable<Boolean> cir) {
Entity entity = (Entity) (Object) this;
if (FuzzSettings.letFluidInteractLikeAir && ClientUtil.isLocalPlayerSelf(entity)) {
cir.setReturnValue(false);
}
}

@ModifyReturnValue(method = "getFluidHeight", at = @At("RETURN"))
private double getFluidHeight(double original) {
Entity entity = (Entity) (Object) this;
if (FuzzSettings.letFluidInteractLikeAir && ClientUtil.isLocalPlayerSelf(entity)) {
return 0.114514D;
return 0.0D;
} else {
return original;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,32 +20,24 @@

package top.byteeeee.fuzz.mixin.rule.letFluidInteractLikeAir;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;

import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;

import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;

import org.spongepowered.asm.mixin.Mixin;

import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import top.byteeeee.fuzz.FuzzSettings;
import top.byteeeee.fuzz.utils.ClientUtil;

@Environment(EnvType.CLIENT)
@Mixin(value = LocalPlayer.class, priority = 1688)
public abstract class LocalPlayerMixin {

@Shadow
private boolean wasSprinting;

@WrapMethod(method = "updateIsUnderwater")
private boolean preventSwimmingWhileSprinting(Operation<Boolean> original) {
LocalPlayer player = (LocalPlayer) (Object) this;
Expand All @@ -56,18 +48,14 @@ private boolean preventSwimmingWhileSprinting(Operation<Boolean> original) {
}
}

@Inject(method = "sendPosition", at = @At("HEAD"), cancellable = true)
private void onSendMovementPackets(CallbackInfo ci) {
if (FuzzSettings.letFluidInteractLikeAir) {
final Minecraft client = ClientUtil.getCurrentClient();
final LocalPlayer player = ClientUtil.getCurrentPlayer();
if (!client.isLocalServer() && client.getCurrentServer() != null) {
boolean isSprinting = player.isSprinting();
if (isSprinting != this.wasSprinting) {
this.wasSprinting = isSprinting;
ci.cancel();
}
}
}
@ModifyExpressionValue(
method = "sendIsSprintingIfNeeded",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/player/LocalPlayer;isSprinting()Z"
)
)
private boolean hideSprintingFromServer(boolean original) {
return original && !FuzzSettings.letFluidInteractLikeAir;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,11 @@ public abstract class PlayerMixin {
method = "tryToStartFallFlying",
at = @At(
value = "INVOKE",
//#if MC>=260300
//$$ target = "Lnet/minecraft/world/entity/player/Player;isInLiquid()Z"
//#else
target = "Lnet/minecraft/world/entity/player/Player;isInWater()Z"
//#endif
)
)
private boolean checkFallFlying(Player player, Operation<Boolean> original) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,51 @@
import net.fabricmc.api.Environment;

import net.minecraft.client.renderer.SkyRenderer;

import net.minecraft.client.renderer.state.level.SkyRenderState;

//#if MC>=260300
//$$ import org.joml.Vector3f;
//$$ import org.joml.Vector3fc;
//#endif

import org.objectweb.asm.Opcodes;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

import top.byteeeee.fuzz.FuzzSettings;

import java.util.Objects;

@Environment(EnvType.CLIENT)
@Mixin(SkyRenderer.class)
public abstract class SkyRenderStateMixin {
//#if MC>=260300
//$$ @WrapOperation(
//$$ method = "extractRenderState",
//$$ at = @At(
//$$ value = "FIELD",
//$$ target = "Lnet/minecraft/client/renderer/state/level/SkyRenderState;skyColor:Lorg/joml/Vector3fc;",
//$$ opcode = Opcodes.PUTFIELD
//$$ )
//$$ )
//$$ private void modifySkyColor(
//$$ SkyRenderState state,
//$$ Vector3fc value,
//$$ Operation<Void> original
//$$ ) {
//$$ if ("false".equals(FuzzSettings.skyColor)) {
//$$ original.call(state, value);
//$$ return;
//$$ }
//$$
//$$ int rgb = Integer.parseInt(FuzzSettings.skyColor.substring(1), 16);
//$$ Vector3fc customColor = new Vector3f(
//$$ ((rgb >>> 16) & 0xFF) / 255.0F,
//$$ ((rgb >>> 8) & 0xFF) / 255.0F,
//$$ (rgb & 0xFF) / 255.0F
//$$ );
//$$ original.call(state, customColor);
//$$ }
//#else
@WrapOperation(
method = "extractRenderState",
at = @At(
Expand All @@ -49,12 +80,18 @@ public abstract class SkyRenderStateMixin {
opcode = Opcodes.PUTFIELD
)
)
private static void modifySkyColor(SkyRenderState state, int value, Operation<Void> original) {
if (!Objects.equals(FuzzSettings.skyColor, "false")) {
int customColor = Integer.parseInt(FuzzSettings.skyColor.substring(1), 16);
original.call(state, customColor);
} else {
private static void modifySkyColor(
SkyRenderState state,
int value,
Operation<Void> original
) {
if ("false".equals(FuzzSettings.skyColor)) {
original.call(state, value);
return;
}

int customColor = Integer.parseInt(FuzzSettings.skyColor.substring(1), 16);
original.call(state, customColor);
}
//#endif
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@
import net.minecraft.resources.Identifier;
import net.minecraft.world.phys.Vec3;

//#if MC>=260300
//$$ import org.joml.Matrix4f;
//#endif
import org.joml.Quaternionf;

import top.byteeeee.fuzz.FuzzSettings;
Expand Down Expand Up @@ -96,7 +99,11 @@ protected static void renderWorld(LevelRenderContext context) {

float yaw = -camera.yRot();
float pitch = camera.xRot();
//#if MC>=260300
//$$ matrixStack.mulPose(new Matrix4f().rotation(new Quaternionf().rotationYXZ((float)Math.toRadians(yaw), (float)Math.toRadians(pitch), 0)));
//#else
matrixStack.mulPose(new Quaternionf().rotationYXZ((float)Math.toRadians(yaw), (float)Math.toRadians(pitch), 0));
//#endif
float scale = 1.0F;
matrixStack.scale(scale, scale, scale);
//#if MC<260200
Expand Down
8 changes: 5 additions & 3 deletions src/main/java/top/byteeeee/fuzz/utils/ClientUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,13 @@ public static LocalPlayer getCurrentPlayer() {
}

public static boolean isLocalPlayerSelf(Entity entity) {
if (getCurrentPlayer() != null) {
return entity.is(getCurrentPlayer());
} else {
LocalPlayer player = getCurrentPlayer();

if (player == null) {
return false;
}

return entity == player || entity.getUUID().equals(player.getUUID());
}

public static boolean isLocalPlayerTicking() {
Expand Down
1 change: 1 addition & 0 deletions versions/26.3/fuzz.accesswidener
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
accessWidener v1 official
16 changes: 16 additions & 0 deletions versions/26.3/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Fabric Properties
# check these on https://fabricmc.net/develop/
minecraft_version = 26.3

# Fabric Mod Metadata
minecraft_dependency = >=26.3
fabric_api_dependency = >=0.161.0+26.3

# Build Infomation
game_versions = 26.3

fabric_api_version = 0.161.0+26.3
# fabric_module_version = 0.133.10+1.21.9

# https://masa.dy.fi/maven/carpet/fabric-carpet/
# carpet_core_version = 1.21.11-1.4.193+v251211
Empty file added versions/mapping-26.2-26.3.txt
Empty file.
Loading