From 54a730754f6cedbb9ff6f6c07b4b10062c38ea59 Mon Sep 17 00:00:00 2001
From: Tofaa <82680183+Tofaa2@users.noreply.github.com>
Date: Mon, 22 Jan 2024 23:42:27 +0300
Subject: [PATCH] add wrapper world
---
.idea/gradle.xml | 1 +
.idea/workspace.xml | 17 +++++--------
api/build.gradle | 19 ++++++++++++++
settings.gradle | 1 +
.../me/tofaa/entitylib/EntityLibPlatform.java | 15 +++++++++++
.../java/me/tofaa/entitylib/WrapperWorld.java | 25 +++++++++++++++++++
6 files changed, 67 insertions(+), 11 deletions(-)
create mode 100644 api/build.gradle
create mode 100644 src/main/java/me/tofaa/entitylib/EntityLibPlatform.java
create mode 100644 src/main/java/me/tofaa/entitylib/WrapperWorld.java
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 784391e..3feea6d 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -8,6 +8,7 @@
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index addaac9..0c3487f 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,16 +5,11 @@
+
+
+
-
-
-
-
-
-
-
-
-
+
@@ -84,7 +79,7 @@
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"WebServerToolWindowFactoryState": "false",
- "git-widget-placeholder": "master",
+ "git-widget-placeholder": "feat/platform-api",
"ignore.virus.scanning.warn.message": "true",
"jdk.selected.JAVA_MODULE": "corretto-17",
"kotlin-language-version-configured": "true",
@@ -238,7 +233,7 @@
file://$PROJECT_DIR$/src/main/java/me/tofaa/entitylib/meta/types/DisplayMeta.java
153
-
+
diff --git a/api/build.gradle b/api/build.gradle
new file mode 100644
index 0000000..18d60d6
--- /dev/null
+++ b/api/build.gradle
@@ -0,0 +1,19 @@
+plugins {
+ id 'java'
+}
+
+group = 'me.tofaa.entitylib'
+version = '1.0-SNAPSHOT'
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ testImplementation platform('org.junit:junit-bom:5.9.1')
+ testImplementation 'org.junit.jupiter:junit-jupiter'
+}
+
+test {
+ useJUnitPlatform()
+}
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index a756887..81e87e9 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,3 +1,4 @@
rootProject.name = 'EntityLib'
include 'test-plugin'
+include 'api'
diff --git a/src/main/java/me/tofaa/entitylib/EntityLibPlatform.java b/src/main/java/me/tofaa/entitylib/EntityLibPlatform.java
new file mode 100644
index 0000000..2901424
--- /dev/null
+++ b/src/main/java/me/tofaa/entitylib/EntityLibPlatform.java
@@ -0,0 +1,15 @@
+package me.tofaa.entitylib;
+
+import com.github.retrooper.packetevents.PacketEventsAPI;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.UUID;
+
+public interface EntityLibPlatform {
+
+ @NotNull PacketEventsAPI> getPacketEvents();
+
+ @NotNull WrapperWorld createWorld(UUID uuid, String name);
+
+
+}
diff --git a/src/main/java/me/tofaa/entitylib/WrapperWorld.java b/src/main/java/me/tofaa/entitylib/WrapperWorld.java
new file mode 100644
index 0000000..5ed747c
--- /dev/null
+++ b/src/main/java/me/tofaa/entitylib/WrapperWorld.java
@@ -0,0 +1,25 @@
+package me.tofaa.entitylib;
+
+import me.tofaa.entitylib.entity.WrapperEntity;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.UUID;
+
+/**
+ * A platform independent wrapper for a "world" object.
+ * @param The generic takes the actual world handle used by the platform.
+ */
+public interface WrapperWorld {
+
+ @NotNull UUID getUuid();
+
+ @NotNull String getName();
+
+ @Nullable WrapperEntity getEntity(@NotNull UUID uuid);
+
+ @Nullable WrapperEntity getEntity(int entityId);
+
+ @NotNull W getHandle();
+
+}