Fixed some initial porting mistakes and improved mixin code style

This commit is contained in:
RaphiMC 2023-12-09 02:19:50 +01:00
parent b7612bf808
commit db5c96d038
No known key found for this signature in database
GPG Key ID: 0F6BB0657A03AC94
7 changed files with 37 additions and 36 deletions

View File

@ -38,7 +38,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
public abstract class MixinDecoratedPotBlock { public abstract class MixinDecoratedPotBlock {
@Inject(method = "onUse", at = @At("HEAD"), cancellable = true) @Inject(method = "onUse", at = @At("HEAD"), cancellable = true)
public void alwaysPass(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit, CallbackInfoReturnable<ActionResult> cir) { private void alwaysPass(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit, CallbackInfoReturnable<ActionResult> cir) {
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_20_2)) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_20_2)) {
cir.setReturnValue(ActionResult.PASS); cir.setReturnValue(ActionResult.PASS);
} }

View File

@ -32,14 +32,15 @@ import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(AbstractHorseEntity.class) @Mixin(AbstractHorseEntity.class)
public abstract class MixinAbstractHorseEntity { public abstract class MixinAbstractHorseEntity {
@Shadow protected abstract boolean receiveFood(PlayerEntity player, ItemStack item); @Shadow
protected abstract boolean receiveFood(PlayerEntity player, ItemStack item);
@Redirect(method = "interactHorse", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/passive/AbstractHorseEntity;receiveFood(Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/item/ItemStack;)Z")) @Redirect(method = "interactHorse", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/passive/AbstractHorseEntity;receiveFood(Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/item/ItemStack;)Z"))
public boolean dontRemoveItemOnClientside(AbstractHorseEntity instance, PlayerEntity player, ItemStack item) { private boolean decrementFoodItemClientside(AbstractHorseEntity instance, PlayerEntity player, ItemStack item) {
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_20_2)) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_20_2)) {
return false; return true;
} }
return receiveFood(player, item); return this.receiveFood(player, item);
} }
} }

View File

@ -73,7 +73,7 @@ public abstract class MixinPlayerEntity extends LivingEntity {
} }
@Redirect(method = "getMaxRelativeHeadRotation", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;isBlocking()Z")) @Redirect(method = "getMaxRelativeHeadRotation", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;isBlocking()Z"))
public boolean dontModifyHeadRotationWhenBlocking(PlayerEntity instance) { private boolean dontModifyHeadRotationWhenBlocking(PlayerEntity instance) {
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_20_2)) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_20_2)) {
return false; return false;
} }

View File

@ -26,7 +26,6 @@ import de.florianmichael.viafabricplus.injection.access.IDownloadingTerrainScree
import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack;
import de.florianmichael.viafabricplus.settings.impl.VisualSettings; import de.florianmichael.viafabricplus.settings.impl.VisualSettings;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.DownloadingTerrainScreen;
import net.minecraft.client.network.*; import net.minecraft.client.network.*;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
@ -70,7 +69,8 @@ public abstract class MixinClientPlayNetworkHandler extends ClientCommonNetworkH
@Shadow @Shadow
public abstract void onSynchronizeRecipes(SynchronizeRecipesS2CPacket packet); public abstract void onSynchronizeRecipes(SynchronizeRecipesS2CPacket packet);
@Shadow protected abstract boolean isSecureChatEnforced(); @Shadow
protected abstract boolean isSecureChatEnforced();
protected MixinClientPlayNetworkHandler(MinecraftClient client, ClientConnection connection, ClientConnectionState connectionState) { protected MixinClientPlayNetworkHandler(MinecraftClient client, ClientConnection connection, ClientConnectionState connectionState) {
super(client, connection, connectionState); super(client, connection, connectionState);
@ -120,8 +120,8 @@ public abstract class MixinClientPlayNetworkHandler extends ClientCommonNetworkH
} }
@Inject(method = "onPlayerSpawnPosition", at = @At("RETURN")) @Inject(method = "onPlayerSpawnPosition", at = @At("RETURN"))
public void moveDownloadingTerrainClosing(PlayerSpawnPositionS2CPacket packet, CallbackInfo ci) { private void moveDownloadingTerrainClosing(PlayerSpawnPositionS2CPacket packet, CallbackInfo ci) {
if (ProtocolHack.getTargetVersion().isBetweenInclusive(VersionEnum.r1_19, VersionEnum.r1_20_2) && this.client.currentScreen instanceof IDownloadingTerrainScreen mixinDownloadingTerrainScreen) { if (ProtocolHack.getTargetVersion().isBetweenInclusive(VersionEnum.r1_18_2, VersionEnum.r1_20_2) && this.client.currentScreen instanceof IDownloadingTerrainScreen mixinDownloadingTerrainScreen) {
mixinDownloadingTerrainScreen.viaFabricPlus$setReady(); mixinDownloadingTerrainScreen.viaFabricPlus$setReady();
} }
} }

View File

@ -21,7 +21,6 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.screen;
import de.florianmichael.viafabricplus.injection.access.IDownloadingTerrainScreen; import de.florianmichael.viafabricplus.injection.access.IDownloadingTerrainScreen;
import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.DownloadingTerrainScreen; import net.minecraft.client.gui.screen.DownloadingTerrainScreen;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.network.packet.c2s.common.KeepAliveC2SPacket; import net.minecraft.network.packet.c2s.common.KeepAliveC2SPacket;
@ -60,26 +59,7 @@ public abstract class MixinDownloadingTerrainScreen extends Screen implements ID
private void modifyCloseCondition(CallbackInfo ci) { private void modifyCloseCondition(CallbackInfo ci) {
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_20_2)) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_20_2)) {
ci.cancel(); ci.cancel();
if (System.currentTimeMillis() > this.loadStartTime + 30000L) {
this.close();
} else {
if (this.viaFabricPlus$closeOnNextTick) {
if (this.client.player == null) return;
BlockPos blockPos = this.client.player.getBlockPos();
boolean bl = this.client.world != null && this.client.world.isOutOfHeightLimit(blockPos.getY());
if (bl || this.client.worldRenderer.isRenderingReady(blockPos) || this.client.player.isSpectator() || !this.client.player.isAlive()) {
this.close();
}
} else {
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_19_1tor1_19_2)) {
this.viaFabricPlus$closeOnNextTick = this.viaFabricPlus$ready || System.currentTimeMillis() > this.loadStartTime + 2000;
} else {
this.viaFabricPlus$closeOnNextTick = this.viaFabricPlus$ready;
}
}
}
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_18tor1_18_1)) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_18tor1_18_1)) {
if (this.viaFabricPlus$ready) { if (this.viaFabricPlus$ready) {
this.close(); this.close();
@ -88,7 +68,27 @@ public abstract class MixinDownloadingTerrainScreen extends Screen implements ID
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_12_1)) { if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_12_1)) {
this.viaFabricPlus$tickCounter++; this.viaFabricPlus$tickCounter++;
if (this.viaFabricPlus$tickCounter % 20 == 0) { if (this.viaFabricPlus$tickCounter % 20 == 0) {
MinecraftClient.getInstance().getNetworkHandler().sendPacket(new KeepAliveC2SPacket(0)); this.client.getNetworkHandler().sendPacket(new KeepAliveC2SPacket(0));
}
}
} else {
if (System.currentTimeMillis() > this.loadStartTime + 30000L) {
this.close();
} else {
if (this.viaFabricPlus$closeOnNextTick) {
if (this.client.player == null) return;
final BlockPos blockPos = this.client.player.getBlockPos();
final boolean isOutOfHeightLimit = this.client.world != null && this.client.world.isOutOfHeightLimit(blockPos.getY());
if (isOutOfHeightLimit || this.client.worldRenderer.isRenderingReady(blockPos) || this.client.player.isSpectator() || !this.client.player.isAlive()) {
this.close();
}
} else {
if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_19_1tor1_19_2)) {
this.viaFabricPlus$closeOnNextTick = this.viaFabricPlus$ready || System.currentTimeMillis() > this.loadStartTime + 2000;
} else {
this.viaFabricPlus$closeOnNextTick = this.viaFabricPlus$ready;
}
} }
} }
} }
@ -97,7 +97,7 @@ public abstract class MixinDownloadingTerrainScreen extends Screen implements ID
@Override @Override
public void viaFabricPlus$setReady() { public void viaFabricPlus$setReady() {
viaFabricPlus$ready = true; this.viaFabricPlus$ready = true;
} }
} }

View File

@ -39,7 +39,7 @@ public class TextComponentTranslator {
* Converts a ViaVersion 1.14 text component to a native text component, both in JSON format * Converts a ViaVersion 1.14 text component to a native text component, both in JSON format
* *
* @param component The ViaVersion 1.14 text component * @param component The ViaVersion 1.14 text component
* @return The native text component * @return The ViaVersion text component for the native version
*/ */
public static Tag via1_14toViaLatest(final JsonElement component) { public static Tag via1_14toViaLatest(final JsonElement component) {
try { try {

View File

@ -66,6 +66,7 @@
"fixes.minecraft.block.MixinCauldronBlock", "fixes.minecraft.block.MixinCauldronBlock",
"fixes.minecraft.block.MixinChestBlock", "fixes.minecraft.block.MixinChestBlock",
"fixes.minecraft.block.MixinCropBlock", "fixes.minecraft.block.MixinCropBlock",
"fixes.minecraft.block.MixinDecoratedPotBlock",
"fixes.minecraft.block.MixinEnderChestBlock", "fixes.minecraft.block.MixinEnderChestBlock",
"fixes.minecraft.block.MixinEndPortalBlock", "fixes.minecraft.block.MixinEndPortalBlock",
"fixes.minecraft.block.MixinEndPortalFrameBlock", "fixes.minecraft.block.MixinEndPortalFrameBlock",
@ -87,6 +88,7 @@
"fixes.minecraft.block.MixinSoulSandBlock", "fixes.minecraft.block.MixinSoulSandBlock",
"fixes.minecraft.block.MixinWallBlock", "fixes.minecraft.block.MixinWallBlock",
"fixes.minecraft.entity.MixinAbstractClientPlayerEntity", "fixes.minecraft.entity.MixinAbstractClientPlayerEntity",
"fixes.minecraft.entity.MixinAbstractHorseEntity",
"fixes.minecraft.entity.MixinAnimalEntity", "fixes.minecraft.entity.MixinAnimalEntity",
"fixes.minecraft.entity.MixinBipedEntityModel", "fixes.minecraft.entity.MixinBipedEntityModel",
"fixes.minecraft.entity.MixinBoatEntity", "fixes.minecraft.entity.MixinBoatEntity",
@ -195,9 +197,7 @@
"viaversion.MixinAbstractFenceConnectionHandler", "viaversion.MixinAbstractFenceConnectionHandler",
"viaversion.MixinConfig", "viaversion.MixinConfig",
"viaversion.MixinGlassConnectionHandler", "viaversion.MixinGlassConnectionHandler",
"viaversion.MixinProtocolVersion", "viaversion.MixinProtocolVersion"
"fixes.minecraft.block.MixinDecoratedPotBlock",
"fixes.minecraft.entity.MixinAbstractHorseEntity"
], ],
"injectors": { "injectors": {
"defaultRequire": 1 "defaultRequire": 1