Skip to content

Commit

Permalink
Fix plugins being unable to replace tracked entities
Browse files Browse the repository at this point in the history
  • Loading branch information
Samsuik committed Nov 15, 2023
1 parent e65c26d commit 8e60224
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions patches/server/0002-Sakura-Utils.patch
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand Down

0 comments on commit 8e60224

Please sign in to comment.