Update to work on newer ViaVersion servers

- There will also not be any delay on those servers
This commit is contained in:
Martin Prokoph
2024-07-07 21:02:14 +02:00
parent bf4769bc4f
commit 0bbcf5251e

View File

@@ -2,8 +2,15 @@ package eu.midnightdust.swordblocking;
import eu.midnightdust.swordblocking.config.SwordBlockingConfig;
import net.fabricmc.api.ClientModInitializer;
import net.minecraft.component.DataComponentTypes;
import net.minecraft.entity.LivingEntity;
import net.minecraft.item.*;
import net.minecraft.item.AxeItem;
import net.minecraft.item.Item;
import net.minecraft.item.MaceItem;
import net.minecraft.item.ShieldItem;
import net.minecraft.item.SwordItem;
import java.util.Objects;
public class SwordBlockingClient implements ClientModInitializer {
@Override
@@ -12,7 +19,7 @@ public class SwordBlockingClient implements ClientModInitializer {
}
public static boolean isWeaponBlocking(LivingEntity entity) {
return entity.isUsingItem() && canWeaponBlock(entity);
return entity.isUsingItem() && (canWeaponBlock(entity) || isBlockingOnViaVersion(entity));
}
public static boolean canWeaponBlock(LivingEntity entity) {
@@ -23,4 +30,8 @@ public class SwordBlockingClient implements ClientModInitializer {
return ((mainItem instanceof SwordItem || mainItem instanceof AxeItem || mainItem instanceof MaceItem) && offItem instanceof ShieldItem)
|| ((offItem instanceof SwordItem || offItem instanceof AxeItem || offItem instanceof MaceItem) && mainItem instanceof ShieldItem);
}
public static boolean isBlockingOnViaVersion(LivingEntity entity) {
Item item = entity.getMainHandStack().getItem() instanceof SwordItem ? entity.getMainHandStack().getItem() : entity.getOffHandStack().getItem();
return item instanceof SwordItem && item.getComponents() != null && item.getComponents().contains(DataComponentTypes.FOOD) && Objects.requireNonNull(item.getComponents().get(DataComponentTypes.FOOD)).eatSeconds() == 3600;
}
}