Skip to content

Commit 4738381

Browse files
committed
Added: AvatarMeta
Changed: PlayerMeta extends AvatarMeta
1 parent 120fee0 commit 4738381

File tree

2 files changed

+119
-104
lines changed

2 files changed

+119
-104
lines changed
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
package me.tofaa.entitylib.meta.types;
2+
3+
import com.github.retrooper.packetevents.manager.server.ServerVersion;
4+
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
5+
import me.tofaa.entitylib.EntityLib;
6+
import me.tofaa.entitylib.meta.Metadata;
7+
8+
public class AvatarMeta extends LivingEntityMeta {
9+
10+
public static final byte OFFSET = LivingEntityMeta.MAX_OFFSET;
11+
public static final byte MAX_OFFSET = OFFSET + 2;
12+
13+
private static final byte CAPE_BIT = 0x01;
14+
private static final byte JACKET_BIT = 0x02;
15+
private static final byte LEFT_SLEEVE_BIT = 0x04;
16+
private static final byte RIGHT_SLEEVE_BIT = 0x08;
17+
private static final byte LEFT_LEG_BIT = 0x10;
18+
private static final byte RIGHT_LEG_BIT = 0x20;
19+
private static final byte HAT_BIT = 0x40;
20+
21+
public AvatarMeta(int entityId, Metadata metadata) {
22+
super(entityId, metadata);
23+
}
24+
25+
public boolean isRightHandMain() {
26+
if (EntityLib.getApi().getPacketEvents().getServerManager().getVersion().isOlderThan(ServerVersion.V_1_9)) {
27+
return true;
28+
}
29+
return super.metadata.getIndex(OFFSET, (byte) 1) == (byte) 1;
30+
}
31+
32+
public void setRightHandMain(boolean value) {
33+
if (EntityLib.getApi().getPacketEvents().getServerManager().getVersion().isOlderThan(ServerVersion.V_1_9)) {
34+
return;
35+
}
36+
super.metadata.setIndex(OFFSET, EntityDataTypes.BYTE, (byte) (value ? 1 : 0));
37+
}
38+
39+
public boolean isCapeEnabled() {
40+
isVersionNewer(ServerVersion.V_1_9);
41+
return getMaskBit(offset(OFFSET, 1), CAPE_BIT);
42+
}
43+
44+
public void setCapeEnabled(boolean value) {
45+
isVersionNewer(ServerVersion.V_1_9);
46+
setMaskBit(offset(OFFSET, 1), CAPE_BIT, value);
47+
}
48+
49+
public boolean isJacketEnabled() {
50+
isVersionNewer(ServerVersion.V_1_9);
51+
return getMaskBit(offset(OFFSET, 1), JACKET_BIT);
52+
}
53+
54+
public void setJacketEnabled(boolean value) {
55+
isVersionNewer(ServerVersion.V_1_9);
56+
setMaskBit(offset(OFFSET, 1), JACKET_BIT, value);
57+
}
58+
59+
public boolean isLeftSleeveEnabled() {
60+
isVersionNewer(ServerVersion.V_1_9);
61+
return getMaskBit(offset(OFFSET, 1), LEFT_SLEEVE_BIT);
62+
}
63+
64+
public void setLeftSleeveEnabled(boolean value) {
65+
isVersionNewer(ServerVersion.V_1_9);
66+
setMaskBit(offset(OFFSET, 1), LEFT_SLEEVE_BIT, value);
67+
}
68+
69+
public boolean isRightSleeveEnabled() {
70+
isVersionNewer(ServerVersion.V_1_9);
71+
return getMaskBit(offset(OFFSET, 1), RIGHT_SLEEVE_BIT);
72+
}
73+
74+
public void setRightSleeveEnabled(boolean value) {
75+
isVersionNewer(ServerVersion.V_1_9);
76+
setMaskBit(offset(OFFSET, 1), RIGHT_SLEEVE_BIT, value);
77+
}
78+
79+
public boolean isLeftLegEnabled() {
80+
isVersionNewer(ServerVersion.V_1_9);
81+
return getMaskBit(offset(OFFSET, 1), LEFT_LEG_BIT);
82+
}
83+
84+
public void setLeftLegEnabled(boolean value) {
85+
isVersionNewer(ServerVersion.V_1_9);
86+
setMaskBit(offset(OFFSET, 1), LEFT_LEG_BIT, value);
87+
}
88+
89+
public boolean isRightLegEnabled() {
90+
isVersionNewer(ServerVersion.V_1_9);
91+
return getMaskBit(offset(OFFSET, 1), RIGHT_LEG_BIT);
92+
}
93+
94+
public void setRightLegEnabled(boolean value) {
95+
isVersionNewer(ServerVersion.V_1_9);
96+
setMaskBit(offset(OFFSET, 1), RIGHT_LEG_BIT, value);
97+
}
98+
99+
public boolean isHatEnabled() {
100+
isVersionNewer(ServerVersion.V_1_9);
101+
return getMaskBit(offset(OFFSET, 1), HAT_BIT);
102+
}
103+
104+
public void setHatEnabled(boolean value) {
105+
isVersionNewer(ServerVersion.V_1_9);
106+
setMaskBit(offset(OFFSET, 1), HAT_BIT, value);
107+
}
108+
}

api/src/main/java/me/tofaa/entitylib/meta/types/PlayerMeta.java

Lines changed: 11 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,13 @@
33
import com.github.retrooper.packetevents.manager.server.ServerVersion;
44
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
55
import com.github.retrooper.packetevents.protocol.nbt.NBTCompound;
6-
import me.tofaa.entitylib.EntityLib;
76
import me.tofaa.entitylib.meta.Metadata;
87
import org.jetbrains.annotations.Nullable;
98

10-
public class PlayerMeta extends LivingEntityMeta {
9+
public class PlayerMeta extends AvatarMeta {
1110

12-
public static final byte OFFSET = LivingEntityMeta.MAX_OFFSET;
13-
public static final byte MAX_OFFSET = OFFSET + 1;
14-
15-
private final static byte CAPE_BIT = 0x01;
16-
private final static byte JACKET_BIT = 0x02;
17-
private final static byte LEFT_SLEEVE_BIT = 0x04;
18-
private final static byte RIGHT_SLEEVE_BIT = 0x08;
19-
private final static byte LEFT_LEG_BIT = 0x10;
20-
private final static byte RIGHT_LEG_BIT = 0x20;
21-
private final static byte HAT_BIT = 0x40;
11+
public static final byte OFFSET = AvatarMeta.MAX_OFFSET;
12+
public static final byte MAX_OFFSET = OFFSET + 4;
2213

2314
public PlayerMeta(int entityId, Metadata metadata) {
2415
super(entityId, metadata);
@@ -33,115 +24,31 @@ public void setAdditionalHearts(float value) {
3324
}
3425

3526
public int getScore() {
36-
return super.metadata.getIndex(offset(OFFSET,1), 0);
27+
return super.metadata.getIndex(offset(OFFSET, 1), 0);
3728
}
3829

3930
public void setScore(int value) {
40-
super.metadata.setIndex(offset(OFFSET,1), EntityDataTypes.INT, value);
41-
}
42-
43-
public boolean isCapeEnabled() {
44-
isVersionNewer(ServerVersion.V_1_9);
45-
return getMaskBit(offset(OFFSET,2), CAPE_BIT);
46-
}
47-
48-
public void setCapeEnabled(boolean value) {
49-
isVersionNewer(ServerVersion.V_1_9);
50-
setMaskBit(offset(OFFSET,2), CAPE_BIT, value);
51-
}
52-
53-
public boolean isJacketEnabled() {
54-
isVersionNewer(ServerVersion.V_1_9);
55-
return getMaskBit(offset(OFFSET,2), JACKET_BIT);
56-
}
57-
58-
public void setJacketEnabled(boolean value) {
59-
isVersionNewer(ServerVersion.V_1_9);
60-
setMaskBit(offset(OFFSET,2), JACKET_BIT, value);
61-
}
62-
63-
public boolean isLeftSleeveEnabled() {
64-
isVersionNewer(ServerVersion.V_1_9);
65-
return getMaskBit(offset(OFFSET,2), LEFT_SLEEVE_BIT);
66-
}
67-
68-
public void setLeftSleeveEnabled(boolean value) {
69-
isVersionNewer(ServerVersion.V_1_9);
70-
setMaskBit(offset(OFFSET,2), LEFT_SLEEVE_BIT, value);
71-
}
72-
73-
public boolean isRightSleeveEnabled() {
74-
isVersionNewer(ServerVersion.V_1_9);
75-
return getMaskBit(offset(OFFSET,2), RIGHT_SLEEVE_BIT);
76-
}
77-
78-
public void setRightSleeveEnabled(boolean value) {
79-
isVersionNewer(ServerVersion.V_1_9);
80-
setMaskBit(offset(OFFSET,2), RIGHT_SLEEVE_BIT, value);
81-
}
82-
83-
public boolean isLeftLegEnabled() {
84-
isVersionNewer(ServerVersion.V_1_9);
85-
return getMaskBit(offset(OFFSET,2), LEFT_LEG_BIT);
86-
}
87-
88-
public void setLeftLegEnabled(boolean value) {
89-
isVersionNewer(ServerVersion.V_1_9);
90-
setMaskBit(offset(OFFSET,2), LEFT_LEG_BIT, value);
91-
}
92-
93-
public boolean isRightLegEnabled() {
94-
isVersionNewer(ServerVersion.V_1_9);
95-
return getMaskBit(offset(OFFSET,2), RIGHT_LEG_BIT);
96-
}
97-
98-
public void setRightLegEnabled(boolean value) {
99-
isVersionNewer(ServerVersion.V_1_9);
100-
setMaskBit(offset(OFFSET,2), RIGHT_LEG_BIT, value);
101-
}
102-
103-
public boolean isHatEnabled() {
104-
isVersionNewer(ServerVersion.V_1_9);
105-
return getMaskBit(offset(OFFSET,2), HAT_BIT);
106-
}
107-
108-
public void setHatEnabled(boolean value) {
109-
isVersionNewer(ServerVersion.V_1_9);
110-
setMaskBit(offset(OFFSET,2), HAT_BIT, value);
111-
}
112-
113-
public boolean isRightHandMain() {
114-
if (EntityLib.getApi().getPacketEvents().getServerManager().getVersion().isOlderThan(ServerVersion.V_1_9)) {
115-
return true;
116-
}
117-
return super.metadata.getIndex(offset(OFFSET,3), (byte) 1) == (byte) 1;
118-
}
119-
120-
public void setRightHandMain(boolean value) {
121-
if (EntityLib.getApi().getPacketEvents().getServerManager().getVersion().isOlderThan(ServerVersion.V_1_9)) {
122-
return;
123-
}
124-
super.metadata.setIndex(offset(OFFSET,3), EntityDataTypes.BYTE, (byte) (value ? 1 : 0));
31+
super.metadata.setIndex(offset(OFFSET, 1), EntityDataTypes.INT, value);
12532
}
12633

12734
public @Nullable NBTCompound getLeftShoulderData() {
12835
isVersionNewer(ServerVersion.V_1_11);
129-
return super.metadata.getIndex(offset(OFFSET,4), null);
36+
return super.metadata.getIndex(offset(OFFSET, 2), null);
13037
}
13138

13239
public void setLeftShoulderData(@Nullable NBTCompound value) {
133-
if (value == null) value = new NBTCompound();
134-
super.metadata.setIndex(offset(OFFSET,4), EntityDataTypes.NBT, value);
40+
isVersionNewer(ServerVersion.V_1_11);
41+
super.metadata.setIndex(offset(OFFSET, 2), EntityDataTypes.NBT, value);
13542
}
13643

13744
public @Nullable NBTCompound getRightShoulderData() {
13845
isVersionNewer(ServerVersion.V_1_11);
139-
return super.metadata.getIndex(offset(OFFSET,5), null);
46+
return super.metadata.getIndex(offset(OFFSET, 3), null);
14047
}
14148

14249
public void setRightShoulderData(@Nullable NBTCompound value) {
50+
isVersionNewer(ServerVersion.V_1_11);
14351
if (value == null) value = new NBTCompound();
144-
super.metadata.setIndex(offset(OFFSET,5), EntityDataTypes.NBT, value);
52+
super.metadata.setIndex(offset(OFFSET, 3), EntityDataTypes.NBT, value);
14553
}
146-
14754
}

0 commit comments

Comments
 (0)