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.server.management.PlayerListBridge;
|
||||||
import io.izzel.arclight.common.bridge.tileentity.SignTileEntityBridge;
|
import io.izzel.arclight.common.bridge.tileentity.SignTileEntityBridge;
|
||||||
import io.izzel.arclight.common.mod.ArclightConstants;
|
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.izzel.arclight.common.mod.util.ArclightCaptures;
|
||||||
import io.netty.util.concurrent.Future;
|
import io.netty.util.concurrent.Future;
|
||||||
import io.netty.util.concurrent.GenericFutureListener;
|
import io.netty.util.concurrent.GenericFutureListener;
|
||||||
|
@ -1189,7 +1190,7 @@ public abstract class ServerPlayNetHandlerMixin implements ServerPlayNetHandlerB
|
||||||
this.player.sendContainerToPlayer(this.player.openContainer);
|
this.player.sendContainerToPlayer(this.player.openContainer);
|
||||||
}
|
}
|
||||||
} else if (packetIn.getAction() == CUseEntityPacket.Action.ATTACK) {
|
} 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"));
|
this.disconnect(new TranslationTextComponent("multiplayer.disconnect.invalid_entity_attacked"));
|
||||||
LOGGER.warn("Player {} tried to attack an invalid entity", this.player.getName().getString());
|
LOGGER.warn("Player {} tried to attack an invalid entity", this.player.getName().getString());
|
||||||
return;
|
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