Skip to content

Commit d6a3cb7

Browse files
authored
Merge pull request #39 from huanmeng-qwq/blockstate
Add entity meta support for WrappedBlockState.
2 parents 9dec137 + 64021bb commit d6a3cb7

4 files changed

Lines changed: 48 additions & 3 deletions

File tree

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: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
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;
6-
import org.jetbrains.annotations.Nullable;
7-
88
import java.util.Optional;
9+
import org.jetbrains.annotations.Nullable;
910

1011
public class EndermanMeta extends MobMeta {
1112

@@ -24,6 +25,20 @@ public void setCarriedBlockID(@Nullable Integer value) {
2425
super.metadata.setIndex(OFFSET, EntityDataTypes.OPTIONAL_INT, Optional.ofNullable(value));
2526
}
2627

28+
public WrappedBlockState getCarriedBlockState() {
29+
Integer carriedBlockID = getCarriedBlockID();
30+
if (carriedBlockID == null) return null;
31+
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), carriedBlockID);
32+
}
33+
34+
public void setCarriedBlockState(WrappedBlockState blockState) {
35+
if (blockState == null) {
36+
setCarriedBlockID(null);
37+
return;
38+
}
39+
setCarriedBlockID(blockState.getGlobalId());
40+
}
41+
2742
public boolean isScreaming() {
2843
return super.metadata.getIndex(offset(OFFSET, 1), false);
2944
}
@@ -33,7 +48,7 @@ public void setScreaming(boolean value) {
3348
}
3449

3550
public boolean isStaring() {
36-
return super.metadata.getIndex(offset(OFFSET, 2), false);
51+
return super.metadata.getIndex(offset(OFFSET, 2), false);
3752
}
3853

3954
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 setBlockState(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)