Skip to content

Commit 87ec596

Browse files
authored
Merge pull request #54 from misieur/feat/mannequin
Mannequin support
2 parents 87c8f12 + df483c6 commit 87ec596

2 files changed

Lines changed: 48 additions & 0 deletions

File tree

api/src/main/java/me/tofaa/entitylib/meta/MetaConverterRegistry.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import me.tofaa.entitylib.meta.other.*;
3333
import me.tofaa.entitylib.meta.projectile.*;
3434
import me.tofaa.entitylib.meta.types.LivingEntityMeta;
35+
import me.tofaa.entitylib.meta.types.MannequinMeta;
3536
import me.tofaa.entitylib.meta.types.PlayerMeta;
3637
import org.jetbrains.annotations.NotNull;
3738

@@ -114,6 +115,7 @@ final class MetaConverterRegistry {
114115
put(LLAMA, LlamaMeta.class, LlamaMeta::new);
115116
put(LLAMA_SPIT, LlamaSpitMeta.class, LlamaSpitMeta::new);
116117
put(MAGMA_CUBE, MagmaCubeMeta.class, MagmaCubeMeta::new);
118+
put(MANNEQUIN, MannequinMeta.class, MannequinMeta::new);
117119
put(MARKER, MarkerMeta.class, MarkerMeta::new);
118120
put(MOOSHROOM, MooshroomMeta.class, MooshroomMeta::new);
119121
put(MULE, MuleMeta.class, MuleMeta::new);
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package me.tofaa.entitylib.meta.types;
2+
3+
import com.github.retrooper.packetevents.manager.server.ServerVersion;
4+
import com.github.retrooper.packetevents.protocol.component.builtin.item.ItemProfile;
5+
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
6+
import me.tofaa.entitylib.meta.Metadata;
7+
import net.kyori.adventure.text.Component;
8+
9+
import java.util.Collections;
10+
import java.util.Optional;
11+
12+
public class MannequinMeta extends AvatarMeta {
13+
14+
public static final byte OFFSET = AvatarMeta.MAX_OFFSET;
15+
public static final byte MAX_OFFSET = OFFSET + 3;
16+
17+
public MannequinMeta(int entityId, Metadata metadata) {
18+
super(entityId, metadata);
19+
isVersionNewer(ServerVersion.V_1_21_8);
20+
}
21+
22+
public ItemProfile getProfile() {
23+
return super.metadata.getIndex(OFFSET, new ItemProfile(null, null, Collections.emptyList()));
24+
}
25+
26+
public void setProfile(ItemProfile value) {
27+
super.metadata.setIndex(OFFSET, EntityDataTypes.RESOLVABLE_PROFILE, value);
28+
}
29+
30+
public boolean getImmovable() {
31+
return super.metadata.getIndex(offset(OFFSET, 1), false);
32+
}
33+
34+
public void setImmovable(boolean value) {
35+
super.metadata.setIndex(offset(OFFSET, 1), EntityDataTypes.BOOLEAN, value);
36+
}
37+
38+
public Optional<Component> getDescription() {
39+
return super.metadata.getIndex(offset(OFFSET, 2), Optional.empty());
40+
}
41+
42+
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
43+
public void setDescription(Optional<Component> value) {
44+
super.metadata.setIndex(offset(OFFSET, 2), EntityDataTypes.OPTIONAL_ADV_COMPONENT, value);
45+
}
46+
}

0 commit comments

Comments
 (0)