Fix astralsorcery compat (#217)
This commit is contained in:
parent
77378c43f1
commit
047a913c63
|
@ -11,6 +11,7 @@ import io.izzel.arclight.common.bridge.server.management.PlayerInteractionManage
|
|||
import io.izzel.arclight.common.bridge.server.management.PlayerListBridge;
|
||||
import io.izzel.arclight.common.bridge.tileentity.SignTileEntityBridge;
|
||||
import io.izzel.arclight.common.mod.ArclightConstants;
|
||||
import io.izzel.arclight.common.mod.compat.AstralSorceryHooks;
|
||||
import io.izzel.arclight.common.mod.util.ArclightCaptures;
|
||||
import io.netty.util.concurrent.Future;
|
||||
import io.netty.util.concurrent.GenericFutureListener;
|
||||
|
@ -1189,7 +1190,7 @@ public abstract class ServerPlayNetHandlerMixin implements ServerPlayNetHandlerB
|
|||
this.player.sendContainerToPlayer(this.player.openContainer);
|
||||
}
|
||||
} else if (packetIn.getAction() == CUseEntityPacket.Action.ATTACK) {
|
||||
if (entity instanceof ItemEntity || entity instanceof ExperienceOrbEntity || entity instanceof AbstractArrowEntity || (entity == this.player && !this.player.isSpectator())) {
|
||||
if ((entity instanceof ItemEntity && AstralSorceryHooks.notInteractable(entity)) || entity instanceof ExperienceOrbEntity || entity instanceof AbstractArrowEntity || (entity == this.player && !this.player.isSpectator())) {
|
||||
this.disconnect(new TranslationTextComponent("multiplayer.disconnect.invalid_entity_attacked"));
|
||||
LOGGER.warn("Player {} tried to attack an invalid entity", this.player.getName().getString());
|
||||
return;
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package io.izzel.arclight.common.mod.compat;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
|
||||
public class AstralSorceryHooks {
|
||||
|
||||
private static Class<?> interactClass;
|
||||
|
||||
static {
|
||||
try {
|
||||
interactClass = Class.forName("hellfirepvp.astralsorcery.common.entity.InteractableEntity");
|
||||
} catch (ClassNotFoundException e) {
|
||||
interactClass = null;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean notInteractable(Entity entity) {
|
||||
return interactClass == null || !interactClass.isInstance(entity);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user