Skip to content

Commit 56e64cd

Browse files
committed
feat: Add entity meta support for WrappedBlockState.
1 parent 9dec137 commit 56e64cd

File tree

4 files changed

+43
-1
lines changed

4 files changed

+43
-1
lines changed

api/src/main/java/me/tofaa/entitylib/meta/display/BlockDisplayMeta.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package me.tofaa.entitylib.meta.display;
22

3+
import com.github.retrooper.packetevents.PacketEvents;
34
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
5+
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
46
import me.tofaa.entitylib.meta.Metadata;
57

68
public class BlockDisplayMeta extends AbstractDisplayMeta {
@@ -20,4 +22,11 @@ public void setBlockId(int blockId) {
2022
super.metadata.setIndex(OFFSET, EntityDataTypes.BLOCK_STATE, blockId);
2123
}
2224

25+
public WrappedBlockState getBlockState() {
26+
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), getBlockId());
27+
}
28+
29+
public void setBlockState(WrappedBlockState blockState) {
30+
setBlockId(blockState.getGlobalId());
31+
}
2332
}

api/src/main/java/me/tofaa/entitylib/meta/mobs/monster/EndermanMeta.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package me.tofaa.entitylib.meta.mobs.monster;
22

3+
import com.github.retrooper.packetevents.PacketEvents;
34
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
5+
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
46
import me.tofaa.entitylib.meta.Metadata;
57
import me.tofaa.entitylib.meta.types.MobMeta;
68
import org.jetbrains.annotations.Nullable;
@@ -24,6 +26,16 @@ public void setCarriedBlockID(@Nullable Integer value) {
2426
super.metadata.setIndex(OFFSET, EntityDataTypes.OPTIONAL_INT, Optional.ofNullable(value));
2527
}
2628

29+
public WrappedBlockState getCarriedBlockState() {
30+
Integer carriedBlockID = getCarriedBlockID();
31+
if (carriedBlockID == null) return null;
32+
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), carriedBlockID);
33+
}
34+
35+
public void setCarriedBlockState(WrappedBlockState blockState) {
36+
setCarriedBlockID(blockState.getGlobalId());
37+
}
38+
2739
public boolean isScreaming() {
2840
return super.metadata.getIndex(offset(OFFSET, 1), false);
2941
}
@@ -33,7 +45,7 @@ public void setScreaming(boolean value) {
3345
}
3446

3547
public boolean isStaring() {
36-
return super.metadata.getIndex(offset(OFFSET, 2), false);
48+
return super.metadata.getIndex(offset(OFFSET, 2), false);
3749
}
3850

3951
public void setStaring(boolean value) {

api/src/main/java/me/tofaa/entitylib/meta/other/FallingBlockMeta.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package me.tofaa.entitylib.meta.other;
22

3+
import com.github.retrooper.packetevents.PacketEvents;
34
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
5+
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
46
import com.github.retrooper.packetevents.util.Vector3i;
57
import me.tofaa.entitylib.meta.EntityMeta;
68
import me.tofaa.entitylib.meta.Metadata;
@@ -34,6 +36,14 @@ public void setBlockStateId(int blockStateId) {
3436
this.blockStateId = blockStateId;
3537
}
3638

39+
public WrappedBlockState getBlockState() {
40+
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), getBlockStateId());
41+
}
42+
43+
public void setBlockStateId(WrappedBlockState blockState) {
44+
setBlockStateId(blockState.getGlobalId());
45+
}
46+
3747
@Override
3848
public int getObjectData() {
3949
return blockStateId;

api/src/main/java/me/tofaa/entitylib/meta/other/TntMeta.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package me.tofaa.entitylib.meta.other;
22

3+
import com.github.retrooper.packetevents.PacketEvents;
34
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
5+
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
46
import com.github.retrooper.packetevents.protocol.world.states.type.StateTypes;
57
import me.tofaa.entitylib.meta.EntityMeta;
68
import me.tofaa.entitylib.meta.Metadata;
@@ -28,4 +30,13 @@ public int getBlockData() {
2830
public void setBlockData(int blockData) {
2931
super.metadata.setIndex(offset(OFFSET, 1), EntityDataTypes.BLOCK_STATE, blockData);
3032
}
33+
34+
public WrappedBlockState getBlockState() {
35+
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), getBlockData());
36+
}
37+
38+
public void setBlockState(WrappedBlockState blockState) {
39+
setBlockData(blockState.getGlobalId());
40+
}
41+
3142
}

0 commit comments

Comments
 (0)