9
0
mirror of https://github.com/Samsuik/Sakura.git synced 2026-01-04 15:31:43 +00:00

Fix plugins being unable to replace tracked entities

This commit is contained in:
Samsuik
2023-11-15 00:01:27 +00:00
parent e65c26d43b
commit 8e60224ca3

View File

@@ -63,10 +63,10 @@ index 0000000000000000000000000000000000000000..ff4909a2ba8f451a7c6aa55ee98e33c8
+}
diff --git a/src/main/java/me/samsuik/sakura/utils/collections/TrackedEntityChunkMap.java b/src/main/java/me/samsuik/sakura/utils/collections/TrackedEntityChunkMap.java
new file mode 100644
index 0000000000000000000000000000000000000000..00fe34d827c01d8772fa9506de75ced7d16e5d48
index 0000000000000000000000000000000000000000..e31998ac50b8bda8687d07b0022c0e039fa2e774
--- /dev/null
+++ b/src/main/java/me/samsuik/sakura/utils/collections/TrackedEntityChunkMap.java
@@ -0,0 +1,30 @@
@@ -0,0 +1,34 @@
+package me.samsuik.sakura.utils.collections;
+
+import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
@@ -80,15 +80,19 @@ index 0000000000000000000000000000000000000000..00fe34d827c01d8772fa9506de75ced7
+
+ @Override
+ public ChunkMap.TrackedEntity put(int k, ChunkMap.TrackedEntity trackedEntity) {
+ ChunkMap.TrackedEntity tracked = super.put(k, trackedEntity);
+ // bad plugins may replace entries
+ if (tracked != null)
+ entityList.remove(trackedEntity);
+ entityList.add(trackedEntity);
+ return super.put(k, trackedEntity);
+ return tracked;
+ }
+
+ @Override
+ public ChunkMap.TrackedEntity remove(int k) {
+ ChunkMap.TrackedEntity v = super.remove(k);
+ entityList.remove(v);
+ return v;
+ ChunkMap.TrackedEntity tracked = super.remove(k);
+ entityList.remove(tracked);
+ return tracked;
+ }
+
+ @Override