Skip to content
Open
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
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package dev.isxander.debugify.client;

import dev.isxander.debugify.Debugify;
import dev.isxander.debugify.client.utils.ClientUtils;

public class DebugifyClient {
public static void onInitializeClient() {
Debugify.inMultiplayerWorld = ClientUtils::isInMultiplayerWorld;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dev.isxander.debugify.client.mixins.basic.mc231097;
package dev.isxander.debugify.client.mixins.gameplay.mc231097;

import dev.isxander.debugify.Debugify;
import dev.isxander.debugify.fixes.BugFix;
import dev.isxander.debugify.fixes.FixCategory;
import net.minecraft.client.Minecraft;
Expand All @@ -11,7 +12,7 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@BugFix(id = "MC-231097", category = FixCategory.BASIC, env = BugFix.Env.CLIENT, description = "Holding the \"Use\" button continues to slow down the player even after the used item has been dropped")
@BugFix(id = "MC-231097", category = FixCategory.GAMEPLAY, env = BugFix.Env.CLIENT, description = "Holding the \"Use\" button continues to slow down the player even after the used item has been dropped")
@Mixin(LocalPlayer.class)
public abstract class LocalPlayerMixin {
@Shadow @Final protected Minecraft minecraft;
Expand All @@ -20,7 +21,7 @@ public abstract class LocalPlayerMixin {

@Inject(method = "drop", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Inventory;removeFromSelected(Z)Lnet/minecraft/world/item/ItemStack;", shift = At.Shift.AFTER))
private void onDropItem(boolean entireStack, CallbackInfoReturnable<Boolean> cir) {
if (isUsingItem()) {
if (isUsingItem() && Debugify.isGameplayFixesEnabled()) {
minecraft.gameMode.releaseUsingItem((LocalPlayer) (Object) this);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/client/resources/debugify.client.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"basic.mc217716.GameRendererMixin",
"basic.mc22882.AbstractContainerScreenMixin",
"basic.mc22882.MinecraftMixin",
"basic.mc231097.LocalPlayerMixin",
"gameplay.mc231097.LocalPlayerMixin",
"basic.mc237493.OptionsMixin",
"basic.mc237493.TelemetryEventInstanceMixin",
"basic.mc237493.TelemetryEventWidgetMixin",
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/dev/isxander/debugify/Debugify.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

import java.util.List;
import java.util.Map;
import java.util.function.BooleanSupplier;

public class Debugify {
public static final Logger LOGGER = LoggerFactory.getLogger("Debugify");
Expand Down Expand Up @@ -41,7 +42,9 @@ public static BugFix.Env getEnv() {
return FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT ? BugFix.Env.CLIENT : BugFix.Env.SERVER;
}

public static BooleanSupplier inMultiplayerWorld = () -> false;

public static boolean isGameplayFixesEnabled() {
return Debugify.CONFIG.gameplayFixesInMultiplayer;
return !inMultiplayerWorld.getAsBoolean() || Debugify.CONFIG.gameplayFixesInMultiplayer;
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package dev.isxander.debugify.mixins.basic.mc136249;
package dev.isxander.debugify.mixins.gameplay.mc136249;

import com.llamalad7.mixinextras.expression.Definition;
import com.llamalad7.mixinextras.expression.Expression;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import dev.isxander.debugify.Debugify;
import dev.isxander.debugify.fixes.BugFix;
import dev.isxander.debugify.fixes.FixCategory;
import net.minecraft.world.entity.LivingEntity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;

@BugFix(id = "MC-136249", category = FixCategory.BASIC, env = BugFix.Env.SERVER, description = "Wearing boots enchanted with depth strider decreases the strength of the riptide enchantment")
@BugFix(id = "MC-136249", category = FixCategory.GAMEPLAY, env = BugFix.Env.SERVER, description = "Wearing boots enchanted with depth strider decreases the strength of the riptide enchantment")
@Mixin(LivingEntity.class)
public abstract class LivingEntityMixin{
@Shadow
Expand All @@ -21,6 +22,6 @@ public abstract class LivingEntityMixin{
@Expression("this.getAttributeValue(WATER_MOVEMENT_EFFICIENCY)")
@ModifyExpressionValue(method = "travelInFluid", at = @At("MIXINEXTRAS:EXPRESSION"))
private double checkRiptide(double original) {
return this.isAutoSpinAttack() ? 0 : original;
return this.isAutoSpinAttack() && Debugify.isGameplayFixesEnabled() ? 0 : original;
}
}
3 changes: 3 additions & 0 deletions src/main/resources/assets/debugify/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@
"debugify.fix_explanation.mc-176559": "Does not consider item durability when comparing a change in item when checking if block breaking should reset.",
"debugify.fix_explanation.mc-197260": "Overrides the light level passed to the armour stand renderer with a maximum of: the block below the armor stand, bottom of the armor stand, top of the armor stand and the block above of the armor stand.",
"debugify.fix_explanation.mc-237493": "Adds an option in the telemetry menu to completely disable telemetry. Telemetry is disabled by overriding all outgoing telemetry events to be an empty telemetry event, which is not sent.",
"debugify.fix_explanation.mc-231097": "When dropping an item, the client will send a \"release using item\" packet, if the player is currently using an item.",
"debugify.fix_effect.mc-231097": "This can cause very strict anti-cheats, such as Anti-Gaming-Chair, to flag \"invalid packet order\", which may result in a ban.",

"debugify.fix_explanation.mc-2025": "Due to floating point inaccuracies, sometimes the hitbox of entities end up being slightly smaller than desired. Then, if this happens before the entities are pushed against each-other, they will intersect with the wall. Then, when the AABB is recalculated on chunk load, they will be determined as inside the wall, where they are then pushed. This fix simply writes an 'AABB' tag to entity NBT data with double-precision hitbox sizes which then get loaded back in.",
"debugify.fix_effect.mc-2025": "This fix means loading Debugify for the first time will not fix the issue until the chunks are saved and loaded with Debugify.",
Expand All @@ -71,6 +73,7 @@
"debugify.fix_explanation.mc-132878": "Spawns breaking particles when armour stands are hurt.",
"debugify.fix_explanation.mc-134110": "Correctly rotates double chests when a structure that is mirrored is placed.",
"debugify.fix_explanation.mc-135971": "Overrides CTRL+Q behaviour in crafting slot to repeatedly CTRL+Q until there are no items left in the crafting slot.",
"debugify.fix_explanation.mc-136249": "Ignores the water movement efficiency attribute (granted by depth strider) while the player is riptide spin attacking.",
"debugify.fix_explanation.mc-155509": "Checks if the pufferfish is alive before attempting to sting the player.",
"debugify.fix_explanation.mc-159283": "Casts 32-bit integers to 64-bit equivalents to prevent integer overflow at high X and Z values.",
"debugify.fix_effect.mc-159283": "Affects world generation.",
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/debugify.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"basic.mc129909.ServerPlayerMixin",
"basic.mc132878.ArmorStandMixin",
"basic.mc134110.ChestBlockMixin",
"basic.mc136249.LivingEntityMixin",
"gameplay.mc136249.LivingEntityMixin",
"basic.mc139041.FishingRodItemMixin",
"basic.mc147659.CatSpawnerMixin",
"basic.mc147784.FletchingTableBlockMixin",
Expand Down