fix types not all though
This commit is contained in:
parent
c1e0fcb717
commit
49d8b3d066
10 changed files with 94 additions and 25 deletions
|
@ -5,7 +5,16 @@
|
|||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="9d5d9b6f-43c8-41a4-bb42-a66ffc96c9b0" name="Changes" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/me/tofaa/entitylib/meta/EntityMeta.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/tofaa/entitylib/meta/EntityMeta.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/me/tofaa/entitylib/meta/display/BlockDisplayMeta.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/tofaa/entitylib/meta/display/BlockDisplayMeta.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/me/tofaa/entitylib/meta/display/ItemDisplayMeta.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/tofaa/entitylib/meta/display/ItemDisplayMeta.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/me/tofaa/entitylib/meta/display/TextDisplayMeta.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/tofaa/entitylib/meta/display/TextDisplayMeta.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/me/tofaa/entitylib/meta/types/DisplayMeta.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/tofaa/entitylib/meta/types/DisplayMeta.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/test-plugin/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/test-plugin/build.gradle" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/test-plugin/src/main/java/me/tofaa/entitylib/TestCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/test-plugin/src/main/java/me/tofaa/entitylib/TestCommand.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/test-plugin/src/main/java/me/tofaa/entitylib/TestDisplayCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/test-plugin/src/main/java/me/tofaa/entitylib/TestDisplayCommand.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/test-plugin/src/main/resources/plugin.yml" beforeDir="false" afterPath="$PROJECT_DIR$/test-plugin/src/main/resources/plugin.yml" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
@ -211,7 +220,7 @@
|
|||
<workItem from="1705534524814" duration="15424000" />
|
||||
<workItem from="1705578156456" duration="78000" />
|
||||
<workItem from="1705636302508" duration="7111000" />
|
||||
<workItem from="1705951390204" duration="2550000" />
|
||||
<workItem from="1705951390204" duration="3936000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
|
@ -226,6 +235,15 @@
|
|||
<line>6787</line>
|
||||
<option name="timeStamp" value="1" />
|
||||
</line-breakpoint>
|
||||
<line-breakpoint enabled="true" type="java-method">
|
||||
<url>file://$PROJECT_DIR$/src/main/java/me/tofaa/entitylib/meta/types/DisplayMeta.java</url>
|
||||
<line>153</line>
|
||||
<properties class="me.tofaa.entitylib.meta.types.DisplayMeta" method="setShadowRadius">
|
||||
<option name="EMULATED" value="true" />
|
||||
<option name="WATCH_EXIT" value="false" />
|
||||
</properties>
|
||||
<option name="timeStamp" value="2" />
|
||||
</line-breakpoint>
|
||||
</breakpoints>
|
||||
</breakpoint-manager>
|
||||
</component>
|
||||
|
|
|
@ -152,13 +152,6 @@ public class EntityMeta implements EntityMetadataProvider {
|
|||
return metadata.createPacket();
|
||||
}
|
||||
|
||||
|
||||
protected static void isVersion(ServerVersion version) {
|
||||
if (!EntityLib.getPacketEvents().getServerManager().getVersion().is(VersionComparison.EQUALS, version)) {
|
||||
throw new InvalidVersionException("This method is only available for " + version.name() + " and above.");
|
||||
}
|
||||
}
|
||||
|
||||
protected static void isVersionOlder(ServerVersion version) {
|
||||
if (!EntityLib.getPacketEvents().getServerManager().getVersion().is(VersionComparison.OLDER_THAN, version)) {
|
||||
throw new InvalidVersionException("This method is only available for versions older than " + version.name() + ".");
|
||||
|
@ -171,6 +164,14 @@ public class EntityMeta implements EntityMetadataProvider {
|
|||
}
|
||||
}
|
||||
|
||||
protected static boolean isVersion(ServerVersion version, VersionComparison comparison) {
|
||||
return EntityLib.getPacketEvents().getServerManager().getVersion().is(comparison, version);
|
||||
}
|
||||
|
||||
protected static boolean isVersion(ServerVersion version) {
|
||||
return EntityLib.getPacketEvents().getServerManager().getVersion().is(VersionComparison.EQUALS, version);
|
||||
}
|
||||
|
||||
/**
|
||||
* Annoying java 8 not letting me do OFFSET + amount in the method call so this is a workaround
|
||||
* @param value the value to offset
|
||||
|
|
|
@ -7,7 +7,7 @@ import me.tofaa.entitylib.meta.types.DisplayMeta;
|
|||
public class BlockDisplayMeta extends DisplayMeta {
|
||||
|
||||
public static final byte OFFSET = DisplayMeta.MAX_OFFSET;
|
||||
public static final byte MAX_OFFSET = OFFSET + 1;
|
||||
public static final byte MAX_OFFSET = offset(OFFSET, 1);
|
||||
|
||||
public BlockDisplayMeta(int entityId, Metadata metadata) {
|
||||
super(entityId, metadata);
|
||||
|
|
|
@ -8,7 +8,7 @@ import me.tofaa.entitylib.meta.types.DisplayMeta;
|
|||
public class ItemDisplayMeta extends DisplayMeta {
|
||||
|
||||
public static final byte OFFSET = DisplayMeta.MAX_OFFSET;
|
||||
public static final byte MAX_OFFSET = OFFSET + 1;
|
||||
public static final byte MAX_OFFSET = offset(OFFSET, 1);
|
||||
|
||||
public ItemDisplayMeta(int entityId, Metadata metadata) {
|
||||
super(entityId, metadata);
|
||||
|
|
|
@ -8,7 +8,7 @@ import net.kyori.adventure.text.Component;
|
|||
public class TextDisplayMeta extends DisplayMeta {
|
||||
|
||||
public static final byte OFFSET = DisplayMeta.MAX_OFFSET;
|
||||
public static final byte MAX_OFFSET = OFFSET + 5;
|
||||
public static final byte MAX_OFFSET = offset(OFFSET, 5);
|
||||
|
||||
private static final byte SHADOW = 1;
|
||||
private static final byte SEE_THROUGH = 2;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package me.tofaa.entitylib.meta.types;
|
||||
|
||||
import com.github.retrooper.packetevents.manager.server.ServerVersion;
|
||||
import com.github.retrooper.packetevents.manager.server.VersionComparison;
|
||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||
import com.github.retrooper.packetevents.util.Quaternion4f;
|
||||
import com.github.retrooper.packetevents.util.Vector3f;
|
||||
|
@ -10,7 +11,15 @@ import me.tofaa.entitylib.meta.Metadata;
|
|||
public class DisplayMeta extends EntityMeta {
|
||||
|
||||
public static final byte OFFSET = EntityMeta.MAX_OFFSET;
|
||||
public static final byte MAX_OFFSET = OFFSET + 15;
|
||||
public static final byte MAX_OFFSET;
|
||||
static {
|
||||
if (isVersion(ServerVersion.V_1_20_2, VersionComparison.NEWER_THAN_OR_EQUALS)) {
|
||||
MAX_OFFSET = OFFSET + 15;
|
||||
}
|
||||
else {
|
||||
MAX_OFFSET = OFFSET + 14;
|
||||
}
|
||||
}
|
||||
|
||||
public DisplayMeta(int entityId, Metadata metadata) {
|
||||
super(entityId, metadata);
|
||||
|
@ -42,43 +51,83 @@ public class DisplayMeta extends EntityMeta {
|
|||
}
|
||||
|
||||
public Vector3f getTranslation() {
|
||||
return super.metadata.getIndex(offset(OFFSET, 3), Vector3f.zero());
|
||||
byte offset = offset(OFFSET, 3);
|
||||
if (isVersion(ServerVersion.V_1_20_2, VersionComparison.OLDER_THAN)) {
|
||||
offset = offset(OFFSET, 2);
|
||||
}
|
||||
return super.metadata.getIndex(offset, Vector3f.zero());
|
||||
}
|
||||
|
||||
public void setTranslation(Vector3f value) {
|
||||
super.metadata.setIndex(offset(OFFSET, 3), EntityDataTypes.VECTOR3F, value);
|
||||
byte offset = offset(OFFSET, 3);
|
||||
if (isVersion(ServerVersion.V_1_20_2, VersionComparison.OLDER_THAN)) {
|
||||
offset = offset(OFFSET, 2);
|
||||
}
|
||||
super.metadata.setIndex(offset, EntityDataTypes.VECTOR3F, value);
|
||||
}
|
||||
|
||||
public Vector3f getScale() {
|
||||
return super.metadata.getIndex(offset(OFFSET, 4), new Vector3f(1.0f, 1.0f, 1.0f));
|
||||
byte offset = offset(OFFSET, 4);
|
||||
if (isVersion(ServerVersion.V_1_20_2, VersionComparison.OLDER_THAN)) {
|
||||
offset = offset(OFFSET, 3);
|
||||
}
|
||||
return super.metadata.getIndex(offset, new Vector3f(1.0f, 1.0f, 1.0f));
|
||||
}
|
||||
|
||||
public void setScale(Vector3f value) {
|
||||
super.metadata.setIndex(offset(OFFSET, 4), EntityDataTypes.VECTOR3F, value);
|
||||
byte offset = offset(OFFSET, 4);
|
||||
if (isVersion(ServerVersion.V_1_20_2, VersionComparison.OLDER_THAN)) {
|
||||
offset = offset(OFFSET, 3);
|
||||
}
|
||||
super.metadata.setIndex(offset, EntityDataTypes.VECTOR3F, value);
|
||||
}
|
||||
|
||||
public Quaternion4f getLeftRotation() {
|
||||
return super.metadata.getIndex(offset(OFFSET, 5), new Quaternion4f(0.0f, 0.0f, 0.0f, 1.0f));
|
||||
byte offset = offset(OFFSET, 5);
|
||||
if (isVersion(ServerVersion.V_1_20_2, VersionComparison.OLDER_THAN)) {
|
||||
offset = offset(OFFSET, 4);
|
||||
}
|
||||
return super.metadata.getIndex(offset, new Quaternion4f(0.0f, 0.0f, 0.0f, 1.0f));
|
||||
}
|
||||
|
||||
public void setLeftRotation(Quaternion4f value) {
|
||||
super.metadata.setIndex(offset(OFFSET, 5), EntityDataTypes.QUATERNION, value);
|
||||
byte offset = offset(OFFSET, 5);
|
||||
if (isVersion(ServerVersion.V_1_20_2, VersionComparison.OLDER_THAN)) {
|
||||
offset = offset(OFFSET, 4);
|
||||
}
|
||||
super.metadata.setIndex(offset, EntityDataTypes.QUATERNION, value);
|
||||
}
|
||||
|
||||
public Quaternion4f getRightRotation() {
|
||||
return super.metadata.getIndex(offset(OFFSET, 6), new Quaternion4f(0.0f, 0.0f, 0.0f, 1.0f));
|
||||
byte offset = offset(OFFSET, 6);
|
||||
if (isVersion(ServerVersion.V_1_20_2, VersionComparison.OLDER_THAN)) {
|
||||
offset = offset(OFFSET, 5);
|
||||
}
|
||||
return super.metadata.getIndex(offset, new Quaternion4f(0.0f, 0.0f, 0.0f, 1.0f));
|
||||
}
|
||||
|
||||
public void setRightRotation(Quaternion4f value) {
|
||||
super.metadata.setIndex(offset(OFFSET, 6), EntityDataTypes.QUATERNION, value);
|
||||
byte offset = offset(OFFSET, 6);
|
||||
if (isVersion(ServerVersion.V_1_20_2, VersionComparison.OLDER_THAN)) {
|
||||
offset = offset(OFFSET, 5);
|
||||
}
|
||||
super.metadata.setIndex(offset, EntityDataTypes.QUATERNION, value);
|
||||
}
|
||||
|
||||
public BillboardConstraints getBillboardConstraints() {
|
||||
return BillboardConstraints.VALUES[super.metadata.getIndex(offset(OFFSET, 7), (byte) 0)];
|
||||
byte offset = offset(OFFSET, 7);
|
||||
if (isVersion(ServerVersion.V_1_20_2, VersionComparison.OLDER_THAN)) {
|
||||
offset = offset(OFFSET, 6);
|
||||
}
|
||||
return BillboardConstraints.VALUES[super.metadata.getIndex(offset, (byte) 0)];
|
||||
}
|
||||
|
||||
public void setBillboardConstraints(BillboardConstraints value) {
|
||||
super.metadata.setIndex(offset(OFFSET, 7), EntityDataTypes.BYTE, (byte) value.ordinal());
|
||||
byte offset = offset(OFFSET, 7);
|
||||
if (isVersion(ServerVersion.V_1_20_2, VersionComparison.OLDER_THAN)) {
|
||||
offset = offset(OFFSET, 6);
|
||||
}
|
||||
super.metadata.setIndex(offset, EntityDataTypes.BYTE, (byte) value.ordinal());
|
||||
}
|
||||
|
||||
//(blockLight << 4 | skyLight << 20)
|
||||
|
|
|
@ -32,6 +32,6 @@ dependencies {
|
|||
|
||||
tasks {
|
||||
runServer {
|
||||
minecraftVersion("1.20.4")
|
||||
minecraftVersion("1.19.4")
|
||||
}
|
||||
}
|
|
@ -40,7 +40,7 @@ public class TestCommand implements CommandExecutor {
|
|||
passenger.addViewer(player.getUniqueId());
|
||||
base.spawn(location);
|
||||
passenger.spawn(pass);
|
||||
base.addPassenger(passenger);
|
||||
base.addPassenger(player.getEntityId());
|
||||
player.sendMessage("Spawned");
|
||||
|
||||
return true;
|
||||
|
|
|
@ -66,6 +66,7 @@ public class TestDisplayCommand implements CommandExecutor, TabCompleter {
|
|||
meta.setHasGlowingEffect(true);
|
||||
meta.setText(Component.text("Hello World!"));
|
||||
meta.setBillboardConstraints(DisplayMeta.BillboardConstraints.CENTER);
|
||||
meta.setTranslation(new Vector3f(4.0f, 0.0f, 0.0f));
|
||||
meta.setScale(new Vector3f(2, 2, 2));
|
||||
e.addViewer(player.getUniqueId());
|
||||
e.spawn(fromPlayer(player));
|
||||
|
|
|
@ -3,7 +3,7 @@ version: 1.0.0
|
|||
depend:
|
||||
- packetevents
|
||||
main: me.tofaa.entitylib.EntityLibPlugin
|
||||
api-version: 1.20
|
||||
api-version: "1.19"
|
||||
commands:
|
||||
testapi:
|
||||
description: Test PEEntityMeta API
|
||||
|
|
Loading…
Reference in a new issue