From 4c0ca7008ce08137743bc285d8f4eb8caabb550c Mon Sep 17 00:00:00 2001 From: Tofaa2 Date: Fri, 7 Jun 2024 17:02:24 +0400 Subject: [PATCH] EntityMetadata utilities --- .idea/workspace.xml | 88 ++++++++++--------- .../entitylib/wrapper/WrapperEntity.java | 15 ++++ 2 files changed, 60 insertions(+), 43 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 7c0be0c..d493ce1 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,7 +5,7 @@ - + - { + "keyToString": { + "Downloaded.Files.Path.Enabled": "false", + "Gradle.Build EntityLib.executor": "Run", + "Gradle.EntityLib [dependencies].executor": "Run", + "Gradle.EntityLib [publish].executor": "Run", + "Gradle.EntityLib [runServer] (1).executor": "Run", + "Gradle.EntityLib [runServer].executor": "Run", + "Gradle.EntityLib:code-gen [:code-gen:Main.main()].executor": "Run", + "Gradle.EntityLib:test-plugin [cleanAllRunTaskCaches].executor": "Run", + "Gradle.EntityLib:test-plugin [cleanCustomServiceCaches].executor": "Run", + "Gradle.EntityLib:test-plugin [cleanPaperCache].executor": "Run", + "Gradle.EntityLib:test-plugin [cleanPaperPluginsCache].executor": "Run", + "Gradle.EntityLib:test-plugin [publish].executor": "Run", + "Gradle.EntityLib:test-plugin [runServer].executor": "Run", + "Gradle.EntityLib:test-plugin [shadowJar].executor": "Run", + "JAR Application.Unnamed.executor": "Run", + "Repository.Attach.Annotations": "false", + "Repository.Attach.JavaDocs": "false", + "Repository.Attach.Sources": "false", + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "master", + "ignore.virus.scanning.warn.message": "true", + "jdk.selected.JAVA_MODULE": "corretto-17", + "kotlin-language-version-configured": "true", + "last_opened_file_path": "/home/tofaa/Github/EntityLib/model-engine-addon", + "node.js.detected.package.eslint": "true", + "node.js.detected.package.tslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "project.structure.last.edited": "Modules", + "project.structure.proportion": "0.15", + "project.structure.side.proportion": "0.2", + "settings.editor.selected.configurable": "preferences.editor", + "vue.rearranger.settings.migration": "true" }, - "keyToStringList": { - "kotlin-gradle-user-dirs": [ - "/home/tofaa/.gradle" + "keyToStringList": { + "kotlin-gradle-user-dirs": [ + "/home/tofaa/.gradle" ] } -}]]> +} @@ -406,6 +406,8 @@ + + diff --git a/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java b/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java index ad21f86..b75735e 100644 --- a/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java +++ b/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java @@ -17,6 +17,7 @@ import org.jetbrains.annotations.Nullable; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Consumer; public class WrapperEntity implements Tickable, TrackedEntity { @@ -280,6 +281,20 @@ public class WrapperEntity implements Tickable, TrackedEntity { return entityMeta; } + public T getEntityMeta(@NotNull Class metaClass) { + return metaClass.cast(entityMeta); + } + + public void consumeEntityMeta(@NotNull Class metaClass, Consumer consumer) { + T meta = getEntityMeta(metaClass); + consumer.accept(meta); + } + + public void consumeMeta(Consumer consumer) { + consumer.accept(entityMeta); + } + + public @NotNull UUID getUuid() { return uuid; }