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();
+
+}