Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package me.tofaa.entitylib.meta.display;

import com.github.retrooper.packetevents.PacketEvents;
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
import me.tofaa.entitylib.meta.Metadata;

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

public WrappedBlockState getBlockState() {
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), getBlockId());
}

public void setBlockState(WrappedBlockState blockState) {
setBlockId(blockState.getGlobalId());
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package me.tofaa.entitylib.meta.mobs.monster;

import com.github.retrooper.packetevents.PacketEvents;
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
import me.tofaa.entitylib.meta.Metadata;
import me.tofaa.entitylib.meta.types.MobMeta;
import org.jetbrains.annotations.Nullable;

import java.util.Optional;
import org.jetbrains.annotations.Nullable;

public class EndermanMeta extends MobMeta {

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

public WrappedBlockState getCarriedBlockState() {
Integer carriedBlockID = getCarriedBlockID();
if (carriedBlockID == null) return null;
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), carriedBlockID);
}

public void setCarriedBlockState(WrappedBlockState blockState) {
if (blockState == null) {
setCarriedBlockID(null);
return;
}
setCarriedBlockID(blockState.getGlobalId());
}

public boolean isScreaming() {
return super.metadata.getIndex(offset(OFFSET, 1), false);
}
Expand All @@ -33,7 +48,7 @@ public void setScreaming(boolean value) {
}

public boolean isStaring() {
return super.metadata.getIndex(offset(OFFSET, 2), false);
return super.metadata.getIndex(offset(OFFSET, 2), false);
}

public void setStaring(boolean value) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package me.tofaa.entitylib.meta.other;

import com.github.retrooper.packetevents.PacketEvents;
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
import com.github.retrooper.packetevents.util.Vector3i;
import me.tofaa.entitylib.meta.EntityMeta;
import me.tofaa.entitylib.meta.Metadata;
Expand Down Expand Up @@ -34,6 +36,14 @@ public void setBlockStateId(int blockStateId) {
this.blockStateId = blockStateId;
}

public WrappedBlockState getBlockState() {
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), getBlockStateId());
}

public void setBlockState(WrappedBlockState blockState) {
setBlockStateId(blockState.getGlobalId());
}

@Override
public int getObjectData() {
return blockStateId;
Expand Down
11 changes: 11 additions & 0 deletions api/src/main/java/me/tofaa/entitylib/meta/other/TntMeta.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package me.tofaa.entitylib.meta.other;

import com.github.retrooper.packetevents.PacketEvents;
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
import com.github.retrooper.packetevents.protocol.world.states.type.StateTypes;
import me.tofaa.entitylib.meta.EntityMeta;
import me.tofaa.entitylib.meta.Metadata;
Expand Down Expand Up @@ -28,4 +30,13 @@ public int getBlockData() {
public void setBlockData(int blockData) {
super.metadata.setIndex(offset(OFFSET, 1), EntityDataTypes.BLOCK_STATE, blockData);
}

public WrappedBlockState getBlockState() {
return WrappedBlockState.getByGlobalId(PacketEvents.getAPI().getServerManager().getVersion().toClientVersion(), getBlockData());
}

public void setBlockState(WrappedBlockState blockState) {
setBlockData(blockState.getGlobalId());
}

}
Loading