mirror of
https://github.com/TeamMidnightDust/SwordBlocking.git
synced 2025-12-15 14:35:10 +01:00
Update to work on newer ViaVersion servers
- There will also not be any delay on those servers
This commit is contained in:
@@ -2,8 +2,15 @@ package eu.midnightdust.swordblocking;
|
|||||||
|
|
||||||
import eu.midnightdust.swordblocking.config.SwordBlockingConfig;
|
import eu.midnightdust.swordblocking.config.SwordBlockingConfig;
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
|
import net.minecraft.component.DataComponentTypes;
|
||||||
import net.minecraft.entity.LivingEntity;
|
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 {
|
public class SwordBlockingClient implements ClientModInitializer {
|
||||||
@Override
|
@Override
|
||||||
@@ -12,7 +19,7 @@ public class SwordBlockingClient implements ClientModInitializer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isWeaponBlocking(LivingEntity entity) {
|
public static boolean isWeaponBlocking(LivingEntity entity) {
|
||||||
return entity.isUsingItem() && canWeaponBlock(entity);
|
return entity.isUsingItem() && (canWeaponBlock(entity) || isBlockingOnViaVersion(entity));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean canWeaponBlock(LivingEntity 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)
|
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);
|
|| ((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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user