mirror of
https://github.com/FancyInnovations/FancyPlugins.git
synced 2025-12-06 07:43:36 +00:00
fancynpcs: Add sniffer state attribute
This commit is contained in:
@@ -42,6 +42,7 @@ public class Attributes_1_21_5 {
|
||||
attributes.addAll(BeeAttributes.getAllAttributes());
|
||||
attributes.addAll(VexAttributes.getAllAttributes());
|
||||
attributes.addAll(ArmadilloAttributes.getAllAttributes());
|
||||
attributes.addAll(SnifferAttributes.getAllAttributes());
|
||||
|
||||
attributes.addAll(DisplayAttributes.getAllAttributes());
|
||||
attributes.addAll(TextDisplayAttributes.getAllAttributes());
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package de.oliver.fancynpcs.v1_21_5.attributes;
|
||||
|
||||
import de.oliver.fancynpcs.api.Npc;
|
||||
import de.oliver.fancynpcs.api.NpcAttribute;
|
||||
import de.oliver.fancynpcs.v1_21_5.ReflectionHelper;
|
||||
import net.minecraft.world.entity.animal.sniffer.Sniffer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class SnifferAttributes {
|
||||
|
||||
public static List<NpcAttribute> getAllAttributes() {
|
||||
List<NpcAttribute> attributes = new ArrayList<>();
|
||||
|
||||
attributes.add(new NpcAttribute(
|
||||
"state",
|
||||
Arrays.stream(Sniffer.State.values())
|
||||
.map(Enum::name)
|
||||
.toList(),
|
||||
List.of(EntityType.SNIFFER),
|
||||
SnifferAttributes::setState
|
||||
));
|
||||
|
||||
return attributes;
|
||||
}
|
||||
|
||||
private static void setState(Npc npc, String value) {
|
||||
final Sniffer sniffer = ReflectionHelper.getEntity(npc);
|
||||
|
||||
Sniffer.State state = Sniffer.State.valueOf(value.toUpperCase());
|
||||
sniffer.transitionTo(state);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user