HyCodeYourTale
classpublicPriority 3

VulnerableMatcher

com.hypixel.hytale.server.core.modules.interaction.interaction.config.selector.VulnerableMatcher

extends SelectInteraction.EntityMatcher

2

Methods

2

Public Methods

0

Fields

1

Constructors

Constants

BuilderCodec<VulnerableMatcher>CODEC= BuilderCodec.builder(VulnerableMatcher.class, VulnerableMatcher::new, BASE_CODEC) .document...

Constructors

public
VulnerableMatcher()

Methods

Public Methods (2)

public
boolean test0(Ref<EntityStore> attacker, Ref<EntityStore> target, CommandBuffer<EntityStore> commandBuffer)
@Override
public
EntityMatcher toPacket()
@Nonnull@Override

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Related Classes

Source Code

package com.hypixel.hytale.server.core.modules.interaction.interaction.config.selector;

import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.component.CommandBuffer;
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.protocol.EntityMatcher;
import com.hypixel.hytale.protocol.EntityMatcherType;
import com.hypixel.hytale.server.core.modules.entity.component.Invulnerable;
import com.hypixel.hytale.server.core.modules.interaction.interaction.config.none.SelectInteraction;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import javax.annotation.Nonnull;

public class VulnerableMatcher extends SelectInteraction.EntityMatcher {
   @Nonnull
   public static final BuilderCodec<VulnerableMatcher> CODEC = BuilderCodec.builder(VulnerableMatcher.class, VulnerableMatcher::new, BASE_CODEC)
      .documentation("Used to match any entity that is attackable")
      .build();

   public VulnerableMatcher() {
   }

   @Override
   public boolean test0(Ref<EntityStore> attacker, @Nonnull Ref<EntityStore> target, @Nonnull CommandBuffer<EntityStore> commandBuffer) {
      boolean invulnerable = commandBuffer.getArchetype(target).contains(Invulnerable.getComponentType());
      return !invulnerable;
   }

   @Nonnull
   @Override
   public EntityMatcher toPacket() {
      EntityMatcher packet = super.toPacket();
      packet.type = EntityMatcherType.VulnerableMatcher;
      return packet;
   }
}