From 7e3a157fcf48c8dfa9cff50fb611be8278ba03ff Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 16 Oct 2021 13:25:56 +0200 Subject: [PATCH] Revert flare usage for now Caused some issues I have no time to investigate at the moment, but worrying enough to warrant a temporary removal Closes ViaVersion/ViaBackwards#402 --- api/build.gradle.kts | 2 -- .../kotlin/via.shadow-conventions.gradle.kts | 6 ----- .../data/entity/EntityTrackerBase.java | 11 +++++---- .../storage/EntityTracker1_11.java | 7 +++--- .../storage/BlockStorage.java | 3 +-- .../storage/EntityTracker1_14.java | 11 +++++---- .../storage/EntityTracker1_9.java | 24 +++++++++++-------- gradle/libs.versions.toml | 3 --- 8 files changed, 31 insertions(+), 36 deletions(-) diff --git a/api/build.gradle.kts b/api/build.gradle.kts index 09f6ac8d4..5115a5953 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -13,8 +13,6 @@ dependencies { targetConfiguration = "shadow" } api(libs.fastutil) - api(libs.flare) - api(libs.flareFastutil) api(libs.openNBT) api(libs.gson) diff --git a/build-logic/src/main/kotlin/via.shadow-conventions.gradle.kts b/build-logic/src/main/kotlin/via.shadow-conventions.gradle.kts index 8021f6fcb..aee71dfca 100644 --- a/build-logic/src/main/kotlin/via.shadow-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/via.shadow-conventions.gradle.kts @@ -29,7 +29,6 @@ fun ShadowJar.configureRelocations() { relocate("com.google.gson", "com.viaversion.viaversion.libs.gson") relocate("com.github.steveice10.opennbt", "com.viaversion.viaversion.libs.opennbt") relocate("it.unimi.dsi.fastutil", "com.viaversion.viaversion.libs.fastutil") - relocate("space.vectrix.flare", "com.viaversion.viaversion.libs.flare") } fun ShadowJar.configureExcludes() { @@ -53,9 +52,4 @@ fun ShadowJar.configureExcludes() { exclude("it/unimi/dsi/fastutil/*/*Synchronized*") exclude("it/unimi/dsi/fastutil/*/*Unmodifiable*") exclude("it/unimi/dsi/fastutil/io/*") - // Flare - only need int maps - exclude("space/vectrix/flare/fastutil/*Double*") - exclude("space/vectrix/flare/fastutil/*Float*") - exclude("space/vectrix/flare/fastutil/*Long*") - exclude("space/vectrix/flare/fastutil/*Short*") } diff --git a/common/src/main/java/com/viaversion/viaversion/data/entity/EntityTrackerBase.java b/common/src/main/java/com/viaversion/viaversion/data/entity/EntityTrackerBase.java index 54c93e6d3..0a5741206 100644 --- a/common/src/main/java/com/viaversion/viaversion/data/entity/EntityTrackerBase.java +++ b/common/src/main/java/com/viaversion/viaversion/data/entity/EntityTrackerBase.java @@ -24,13 +24,14 @@ import com.viaversion.viaversion.api.data.entity.ClientEntityIdChangeListener; import com.viaversion.viaversion.api.data.entity.EntityTracker; import com.viaversion.viaversion.api.data.entity.StoredEntityData; import com.viaversion.viaversion.api.minecraft.entities.EntityType; -import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import org.checkerframework.checker.nullness.qual.Nullable; -import space.vectrix.flare.fastutil.Int2ObjectSyncMap; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public class EntityTrackerBase implements EntityTracker, ClientEntityIdChangeListener { - private final Int2ObjectMap entityTypes = Int2ObjectSyncMap.hashmap(); - private final Int2ObjectMap entityData; + private final Map entityTypes = new ConcurrentHashMap<>(); + private final Map entityData; private final UserConnection connection; private final EntityType playerType; private int clientEntityId = -1; @@ -45,7 +46,7 @@ public class EntityTrackerBase implements EntityTracker, ClientEntityIdChangeLis public EntityTrackerBase(UserConnection connection, @Nullable EntityType playerType, boolean storesEntityData) { this.connection = connection; this.playerType = playerType; - this.entityData = storesEntityData ? Int2ObjectSyncMap.hashmap() : null; + this.entityData = storesEntityData ? new ConcurrentHashMap<>() : null; } @Override diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_11to1_10/storage/EntityTracker1_11.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_11to1_10/storage/EntityTracker1_11.java index 77eb48017..5d4b8ab66 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_11to1_10/storage/EntityTracker1_11.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_11to1_10/storage/EntityTracker1_11.java @@ -17,14 +17,15 @@ */ package com.viaversion.viaversion.protocols.protocol1_11to1_10.storage; +import com.google.common.collect.Sets; import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.minecraft.entities.Entity1_11Types.EntityType; import com.viaversion.viaversion.data.entity.EntityTrackerBase; -import it.unimi.dsi.fastutil.ints.IntSet; -import space.vectrix.flare.fastutil.Int2ObjectSyncMap; + +import java.util.Set; public class EntityTracker1_11 extends EntityTrackerBase { - private final IntSet holograms = Int2ObjectSyncMap.hashset(); + private final Set holograms = Sets.newConcurrentHashSet(); public EntityTracker1_11(UserConnection user) { super(user, EntityType.PLAYER); diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/storage/BlockStorage.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/storage/BlockStorage.java index 5ede7f119..b417986f0 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/storage/BlockStorage.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/storage/BlockStorage.java @@ -21,7 +21,6 @@ import com.viaversion.viaversion.api.connection.StorableObject; import com.viaversion.viaversion.api.minecraft.Position; import it.unimi.dsi.fastutil.ints.IntOpenHashSet; import it.unimi.dsi.fastutil.ints.IntSet; -import space.vectrix.flare.SyncMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -29,7 +28,7 @@ import java.util.concurrent.ConcurrentHashMap; // TODO Fix memory leak lolz (only a smol one tho) public class BlockStorage implements StorableObject { private static final IntSet WHITELIST = new IntOpenHashSet(46, .99F); - private final Map blocks = SyncMap.hashmap(); + private final Map blocks = new ConcurrentHashMap<>(); static { // Flower pots diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_14to1_13_2/storage/EntityTracker1_14.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_14to1_13_2/storage/EntityTracker1_14.java index e3d4ce6fc..e0106657c 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_14to1_13_2/storage/EntityTracker1_14.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_14to1_13_2/storage/EntityTracker1_14.java @@ -20,14 +20,15 @@ package com.viaversion.viaversion.protocols.protocol1_14to1_13_2.storage; import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.minecraft.entities.Entity1_14Types; import com.viaversion.viaversion.data.entity.EntityTrackerBase; -import it.unimi.dsi.fastutil.ints.Int2ObjectMap; -import space.vectrix.flare.fastutil.Int2ObjectSyncMap; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public class EntityTracker1_14 extends EntityTrackerBase { - private final Int2ObjectMap insentientData = Int2ObjectSyncMap.hashmap(); + private final Map insentientData = new ConcurrentHashMap<>(); // 0x1 = sleeping, 0x2 = riptide - private final Int2ObjectMap sleepingAndRiptideData = Int2ObjectSyncMap.hashmap(); - private final Int2ObjectMap playerEntityFlags = Int2ObjectSyncMap.hashmap(); + private final Map sleepingAndRiptideData = new ConcurrentHashMap<>(); + private final Map playerEntityFlags = new ConcurrentHashMap<>(); private int latestTradeWindowId; private boolean forceSendCenterChunk = true; private int chunkCenterX, chunkCenterZ; diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_9to1_8/storage/EntityTracker1_9.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_9to1_8/storage/EntityTracker1_9.java index e3eef2cbc..0e3e68f5d 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_9to1_8/storage/EntityTracker1_9.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_9to1_8/storage/EntityTracker1_9.java @@ -18,6 +18,7 @@ package com.viaversion.viaversion.protocols.protocol1_9to1_8.storage; import com.google.common.cache.CacheBuilder; +import com.google.common.collect.Sets; import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.legacy.bossbar.BossBar; @@ -39,22 +40,25 @@ import com.viaversion.viaversion.protocols.protocol1_9to1_8.chat.GameMode; import com.viaversion.viaversion.protocols.protocol1_9to1_8.metadata.MetadataRewriter1_9To1_8; import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.BossBarProvider; import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.EntityIdProvider; -import it.unimi.dsi.fastutil.ints.Int2ObjectMap; -import it.unimi.dsi.fastutil.ints.IntSet; -import space.vectrix.flare.fastutil.Int2ObjectSyncMap; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; public class EntityTracker1_9 extends EntityTrackerBase { public static final String WITHER_TRANSLATABLE = "{\"translate\":\"entity.WitherBoss.name\"}"; public static final String DRAGON_TRANSLATABLE = "{\"translate\":\"entity.EnderDragon.name\"}"; - private final Int2ObjectMap uuidMap = Int2ObjectSyncMap.hashmap(); - private final Int2ObjectMap> metadataBuffer = Int2ObjectSyncMap.hashmap(); - private final Int2ObjectMap vehicleMap = Int2ObjectSyncMap.hashmap(); - private final Int2ObjectMap bossBarMap = Int2ObjectSyncMap.hashmap(); - private final IntSet validBlocking = Int2ObjectSyncMap.hashset(); - private final Set knownHolograms = Int2ObjectSyncMap.hashset(); + private final Map uuidMap = new ConcurrentHashMap<>(); + private final Map> metadataBuffer = new ConcurrentHashMap<>(); + private final Map vehicleMap = new ConcurrentHashMap<>(); + private final Map bossBarMap = new ConcurrentHashMap<>(); + private final Set validBlocking = Sets.newConcurrentHashSet(); + private final Set knownHolograms = Sets.newConcurrentHashSet(); private final Set blockInteractions = Collections.newSetFromMap(CacheBuilder.newBuilder() .maximumSize(1000) .expireAfterAccess(250, TimeUnit.MILLISECONDS) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fdb9b78a4..ca93b6d72 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,6 @@ metadata.format.version = "1.1" adventure = "4.9.1" gson = "2.8.8" fastutil = "8.5.6" -flare = "1.0.0" openNBT = "2.0-SNAPSHOT" javassist = "3.28.0-GA" @@ -35,8 +34,6 @@ adventureTextSerializerLegacy = { group = "net.kyori", name = "adventure-text-se gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } fastutil = { group = "it.unimi.dsi", name = "fastutil", version.ref = "fastutil" } -flare = { group = "space.vectrix.flare", name = "flare", version.ref = "flare" } -flareFastutil = { group = "space.vectrix.flare", name = "flare-fastutil", version.ref = "flare" } openNBT = { group = "com.viaversion", name = "opennbt", version.ref = "openNBT" } javassist = { group = "org.javassist", name = "javassist", version.ref = "javassist" }