From e8d411d989ce8048971d3a070fb6980e02a50639 Mon Sep 17 00:00:00 2001
From: Tofaa <82680183+Tofaa2@users.noreply.github.com>
Date: Thu, 18 Jan 2024 02:55:52 +0300
Subject: [PATCH] Fix display meta offset values
---
.idea/gradle.xml | 17 ++
.idea/misc.xml | 8 +
.idea/uiDesigner.xml | 124 +++++++++
.idea/vcs.xml | 6 +
.idea/workspace.xml | 237 ++++++++++++++++++
build.gradle | 2 +-
.../entitylib/MetaConverterRegistry.java | 3 +
.../{other => display}/BlockDisplayMeta.java | 2 +-
.../{other => display}/ItemDisplayMeta.java | 3 +-
.../{other => display}/TextDisplayMeta.java | 7 +-
.../entitylib/meta/types/DisplayMeta.java | 4 +-
test-plugin/build.gradle | 6 +-
.../me/tofaa/entitylib/EntityLibPlugin.java | 1 +
.../tofaa/entitylib/TestDisplayCommand.java | 31 +++
test-plugin/src/main/resources/plugin.yml | 3 +
15 files changed, 440 insertions(+), 14 deletions(-)
create mode 100644 .idea/gradle.xml
create mode 100644 .idea/misc.xml
create mode 100644 .idea/uiDesigner.xml
create mode 100644 .idea/vcs.xml
create mode 100644 .idea/workspace.xml
rename src/main/java/me/tofaa/entitylib/meta/{other => display}/BlockDisplayMeta.java (94%)
rename src/main/java/me/tofaa/entitylib/meta/{other => display}/ItemDisplayMeta.java (96%)
rename src/main/java/me/tofaa/entitylib/meta/{other => display}/TextDisplayMeta.java (90%)
create mode 100644 test-plugin/src/main/java/me/tofaa/entitylib/TestDisplayCommand.java
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..784391e
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..35a6479
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..a74619b
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "associatedIndex": 8
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1701041928897
+
+
+ 1701041928897
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.20.1-R0.1-SNAPSHOT/db707b55ae958245adecc7f15b611e1a571e7fe4/spigot-api-1.20.1-R0.1-SNAPSHOT-sources.jar!/org/bukkit/Material.java
+ 6787
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 3699205..1958f2c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -36,6 +36,6 @@ allprojects {
dependencies {
- compileOnlyApi("com.github.retrooper.packetevents:spigot:2.2.0")
+ compileOnlyApi 'com.github.retrooper.packetevents:spigot:2.2.0'
}
diff --git a/src/main/java/me/tofaa/entitylib/MetaConverterRegistry.java b/src/main/java/me/tofaa/entitylib/MetaConverterRegistry.java
index 676e251..dc41653 100644
--- a/src/main/java/me/tofaa/entitylib/MetaConverterRegistry.java
+++ b/src/main/java/me/tofaa/entitylib/MetaConverterRegistry.java
@@ -3,6 +3,9 @@ package me.tofaa.entitylib;
import com.github.retrooper.packetevents.protocol.entity.type.EntityType;
import me.tofaa.entitylib.meta.EntityMeta;
import me.tofaa.entitylib.meta.Metadata;
+import me.tofaa.entitylib.meta.display.BlockDisplayMeta;
+import me.tofaa.entitylib.meta.display.ItemDisplayMeta;
+import me.tofaa.entitylib.meta.display.TextDisplayMeta;
import me.tofaa.entitylib.meta.mobs.*;
import me.tofaa.entitylib.meta.mobs.DonkeyMeta;
import me.tofaa.entitylib.meta.mobs.cuboid.MagmaCubeMeta;
diff --git a/src/main/java/me/tofaa/entitylib/meta/other/BlockDisplayMeta.java b/src/main/java/me/tofaa/entitylib/meta/display/BlockDisplayMeta.java
similarity index 94%
rename from src/main/java/me/tofaa/entitylib/meta/other/BlockDisplayMeta.java
rename to src/main/java/me/tofaa/entitylib/meta/display/BlockDisplayMeta.java
index fa91854..6a7330b 100644
--- a/src/main/java/me/tofaa/entitylib/meta/other/BlockDisplayMeta.java
+++ b/src/main/java/me/tofaa/entitylib/meta/display/BlockDisplayMeta.java
@@ -1,4 +1,4 @@
-package me.tofaa.entitylib.meta.other;
+package me.tofaa.entitylib.meta.display;
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
import me.tofaa.entitylib.meta.Metadata;
diff --git a/src/main/java/me/tofaa/entitylib/meta/other/ItemDisplayMeta.java b/src/main/java/me/tofaa/entitylib/meta/display/ItemDisplayMeta.java
similarity index 96%
rename from src/main/java/me/tofaa/entitylib/meta/other/ItemDisplayMeta.java
rename to src/main/java/me/tofaa/entitylib/meta/display/ItemDisplayMeta.java
index 204fe7d..a2de83d 100644
--- a/src/main/java/me/tofaa/entitylib/meta/other/ItemDisplayMeta.java
+++ b/src/main/java/me/tofaa/entitylib/meta/display/ItemDisplayMeta.java
@@ -1,4 +1,4 @@
-package me.tofaa.entitylib.meta.other;
+package me.tofaa.entitylib.meta.display;
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
import me.tofaa.entitylib.meta.Metadata;
@@ -9,7 +9,6 @@ public class ItemDisplayMeta extends DisplayMeta {
public static final byte OFFSET = DisplayMeta.MAX_OFFSET;
public static final byte MAX_OFFSET = OFFSET + 1;
-
public ItemDisplayMeta(int entityId, Metadata metadata) {
super(entityId, metadata);
}
diff --git a/src/main/java/me/tofaa/entitylib/meta/other/TextDisplayMeta.java b/src/main/java/me/tofaa/entitylib/meta/display/TextDisplayMeta.java
similarity index 90%
rename from src/main/java/me/tofaa/entitylib/meta/other/TextDisplayMeta.java
rename to src/main/java/me/tofaa/entitylib/meta/display/TextDisplayMeta.java
index 4c77d23..94ead89 100644
--- a/src/main/java/me/tofaa/entitylib/meta/other/TextDisplayMeta.java
+++ b/src/main/java/me/tofaa/entitylib/meta/display/TextDisplayMeta.java
@@ -1,10 +1,9 @@
-package me.tofaa.entitylib.meta.other;
+package me.tofaa.entitylib.meta.display;
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
import me.tofaa.entitylib.meta.Metadata;
import me.tofaa.entitylib.meta.types.DisplayMeta;
import net.kyori.adventure.text.Component;
-import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class TextDisplayMeta extends DisplayMeta {
@@ -26,8 +25,8 @@ public class TextDisplayMeta extends DisplayMeta {
return metadata.getIndex(OFFSET, Component.empty());
}
- public void setComponent(Component component) {
- metadata.setIndex(OFFSET, EntityDataTypes.COMPONENT, GsonComponentSerializer.gson().serialize(component));
+ public void setText(Component component) {
+ metadata.setIndex(OFFSET, EntityDataTypes.ADV_COMPONENT, component);
}
public int getLineWidth() {
diff --git a/src/main/java/me/tofaa/entitylib/meta/types/DisplayMeta.java b/src/main/java/me/tofaa/entitylib/meta/types/DisplayMeta.java
index 0f3ed1a..c215a0a 100644
--- a/src/main/java/me/tofaa/entitylib/meta/types/DisplayMeta.java
+++ b/src/main/java/me/tofaa/entitylib/meta/types/DisplayMeta.java
@@ -1,5 +1,6 @@
package me.tofaa.entitylib.meta.types;
+import com.github.retrooper.packetevents.manager.server.ServerVersion;
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
import com.github.retrooper.packetevents.util.Quaternion4f;
import com.github.retrooper.packetevents.util.Vector3f;
@@ -9,10 +10,11 @@ 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 + 13;
+ public static final byte MAX_OFFSET = OFFSET + 14;
public DisplayMeta(int entityId, Metadata metadata) {
super(entityId, metadata);
+ isVersionNewer(ServerVersion.V_1_19_3);
}
public int getInterpolationDelay() {
diff --git a/test-plugin/build.gradle b/test-plugin/build.gradle
index f462f3e..f8a7b47 100644
--- a/test-plugin/build.gradle
+++ b/test-plugin/build.gradle
@@ -32,10 +32,6 @@ dependencies {
tasks {
runServer {
- minecraftVersion("1.20.1")
-
- downloadPlugins {
- modrinth('packetevents', '2.2.0')
- }
+ minecraftVersion("1.19.4")
}
}
\ No newline at end of file
diff --git a/test-plugin/src/main/java/me/tofaa/entitylib/EntityLibPlugin.java b/test-plugin/src/main/java/me/tofaa/entitylib/EntityLibPlugin.java
index 171a584..0db8986 100644
--- a/test-plugin/src/main/java/me/tofaa/entitylib/EntityLibPlugin.java
+++ b/test-plugin/src/main/java/me/tofaa/entitylib/EntityLibPlugin.java
@@ -21,6 +21,7 @@ public final class EntityLibPlugin extends JavaPlugin {
EntityLib.setInteractionProcessor((entity, action, hand, user) -> user.sendMessage("Hello World"));
getCommand("testapi").setExecutor(new TestCommand());
getCommand("testentity").setExecutor(new TestEntityCommand());
+ getCommand("testdisplay").setExecutor(new TestDisplayCommand());
instance = this;
}
}
diff --git a/test-plugin/src/main/java/me/tofaa/entitylib/TestDisplayCommand.java b/test-plugin/src/main/java/me/tofaa/entitylib/TestDisplayCommand.java
new file mode 100644
index 0000000..99fedd4
--- /dev/null
+++ b/test-plugin/src/main/java/me/tofaa/entitylib/TestDisplayCommand.java
@@ -0,0 +1,31 @@
+package me.tofaa.entitylib;
+
+import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes;
+import io.github.retrooper.packetevents.util.SpigotConversionUtil;
+import me.tofaa.entitylib.entity.WrapperEntity;
+import me.tofaa.entitylib.meta.display.TextDisplayMeta;
+import me.tofaa.entitylib.meta.types.DisplayMeta;
+import net.kyori.adventure.text.Component;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.UUID;
+
+public class TestDisplayCommand implements CommandExecutor {
+
+ @Override
+ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
+
+ WrapperEntity e = EntityLib.createEntity(UUID.randomUUID(), EntityTypes.TEXT_DISPLAY);
+ TextDisplayMeta meta = (TextDisplayMeta) e.getMeta();
+ meta.setText(Component.text("Hello World!"));
+ meta.setBillboardConstraints(DisplayMeta.BillboardConstraints.CENTER);
+ e.addViewer(((Player) commandSender).getUniqueId());
+ e.spawn(SpigotConversionUtil.fromBukkitLocation(((Player) commandSender).getLocation()));
+ commandSender.sendMessage("Entity spawned! ID: " + e.getEntityId() + " Type: " + e.getEntityType() + " Text: " + meta.getText());
+ return true;
+ }
+}
diff --git a/test-plugin/src/main/resources/plugin.yml b/test-plugin/src/main/resources/plugin.yml
index 62e7405..2403c5b 100644
--- a/test-plugin/src/main/resources/plugin.yml
+++ b/test-plugin/src/main/resources/plugin.yml
@@ -10,4 +10,7 @@ commands:
testentity:
description: Test PEEntity API
+ usage: /
+ testdisplay:
+ description: Test PEDisplay API
usage: /
\ No newline at end of file