From 29b120b01373efad9b774d3a6b844ab784951ec5 Mon Sep 17 00:00:00 2001 From: Sotr Date: Mon, 4 Mar 2019 22:48:32 +0800 Subject: [PATCH] Some koloboke replacements --- .circleci/config.yml | 2 -- pom.xml | 15 +++++++++++++++ .../io/akarin/server/core/AkarinGlobalConfig.java | 5 ++--- .../net/minecraft/server/BlockMonsterEggs.java | 2 +- .../net/minecraft/server/CommandDispatcher.java | 2 +- .../net/minecraft/server/MinecraftServer.java | 2 +- .../java/net/minecraft/server/ProtoChunk.java | 4 ++-- .../net/minecraft/server/RegistryBlockID.java | 6 ++++-- .../net/minecraft/server/RegistryMaterials.java | 2 +- src/main/java/net/minecraft/server/World.java | 4 ++-- src/main/java/net/minecraft/server/WorldData.java | 6 +++--- .../java/org/bukkit/craftbukkit/CraftWorld.java | 2 +- .../craftbukkit/advancement/CraftAdvancement.java | 2 +- .../advancement/CraftAdvancementProgress.java | 4 ++-- .../bukkit/craftbukkit/entity/CraftPlayer.java | 2 +- .../org/bukkit/craftbukkit/tag/CraftBlockTag.java | 2 +- .../org/bukkit/craftbukkit/tag/CraftItemTag.java | 2 +- src/test/java/org/bukkit/ParticleTest.java | 2 +- 18 files changed, 40 insertions(+), 26 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8c856afcf..8d79937f1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -24,8 +24,6 @@ jobs: keys: # This branch if available - v1-dep-{{ .Branch }}- - # Default branch if not - - v1-dep-ver/1.12.2- # Any branch if there are none on the default branch - this should be unnecessary if you have your default branch configured correctly - v1-dep- - run: git config --global user.email "circle@circleci.com" diff --git a/pom.xml b/pom.xml index 51769b50b..d46441bdb 100644 --- a/pom.xml +++ b/pom.xml @@ -119,6 +119,17 @@ caffeine 2.6.3-SNAPSHOT + + com.koloboke + koloboke-api-jdk8 + 1.0.0 + + + com.koloboke + koloboke-impl-jdk8 + 1.0.0 + runtime + @@ -141,6 +152,10 @@ spongepowered-repo https://repo.spongepowered.org/maven/ + + sonatype-nexusg + https://oss.sonatype.org/content/repositories + diff --git a/src/main/java/io/akarin/server/core/AkarinGlobalConfig.java b/src/main/java/io/akarin/server/core/AkarinGlobalConfig.java index 5b8ee735a..42506db3d 100644 --- a/src/main/java/io/akarin/server/core/AkarinGlobalConfig.java +++ b/src/main/java/io/akarin/server/core/AkarinGlobalConfig.java @@ -1,8 +1,6 @@ package io.akarin.server.core; import com.google.common.base.Throwables; -import com.google.common.collect.Lists; - import java.io.File; import java.io.IOException; import java.lang.reflect.InvocationTargetException; @@ -14,7 +12,6 @@ import java.util.regex.Pattern; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.bukkit.Bukkit; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; @@ -155,4 +152,6 @@ public class AkarinGlobalConfig { private static void serverBrandName() { serverBrandName = getString("alternative.modified-server-brand-name", ""); } + + } \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/BlockMonsterEggs.java b/src/main/java/net/minecraft/server/BlockMonsterEggs.java index d385f647e..7ef625e74 100644 --- a/src/main/java/net/minecraft/server/BlockMonsterEggs.java +++ b/src/main/java/net/minecraft/server/BlockMonsterEggs.java @@ -9,7 +9,7 @@ import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; // CraftBukkit public class BlockMonsterEggs extends Block { private final Block a; - private static final Map b = Maps.newIdentityHashMap(); + private static final Map b = com.koloboke.collect.map.hash.HashObjObjMaps.getDefaultFactory().withHashConfig(com.koloboke.collect.hash.HashConfig.fromLoads(1./3., 2./3., 2./3.)).withNullKeyAllowed(true).withKeyEquivalence(com.koloboke.collect.Equivalence.identity()).newUpdatableMap(); public BlockMonsterEggs(Block block, Block.Info block_info) { super(block_info); diff --git a/src/main/java/net/minecraft/server/CommandDispatcher.java b/src/main/java/net/minecraft/server/CommandDispatcher.java index b1bd08e5c..4c3d7af23 100644 --- a/src/main/java/net/minecraft/server/CommandDispatcher.java +++ b/src/main/java/net/minecraft/server/CommandDispatcher.java @@ -246,7 +246,7 @@ public class CommandDispatcher { if ( org.spigotmc.SpigotConfig.tabComplete < 0 ) return; // Spigot // CraftBukkit start // Register Vanilla commands into builtRoot as before - Map, CommandNode> map = Maps.newIdentityHashMap(); // Use identity to prevent aliasing issues + Map, CommandNode> map = com.koloboke.collect.map.hash.HashObjObjMaps.getDefaultFactory().withHashConfig(com.koloboke.collect.hash.HashConfig.fromLoads(1./3., 2./3., 2./3.)).withNullKeyAllowed(true).withKeyEquivalence(com.koloboke.collect.Equivalence.identity()).newMutableMap(); // Use identity to prevent aliasing issues // Akarin - koloboke RootCommandNode vanillaRoot = new RootCommandNode(); RootCommandNode vanilla = entityplayer.server.vanillaCommandDispatcher.a().getRoot(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index ce39ea09e..59739b8da 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -101,7 +101,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati private int F; private int G; public final long[] d = new long[100]; - protected final Map e = Maps.newIdentityHashMap(); + protected final Map e = com.koloboke.collect.map.hash.HashObjObjMaps.getDefaultFactory().withHashConfig(com.koloboke.collect.hash.HashConfig.fromLoads(1./3., 2./3., 2./3.)).withNullKeyAllowed(true).withKeyEquivalence(com.koloboke.collect.Equivalence.identity()).newUpdatableMap(); // Akarin - koloboke private KeyPair H; private String I; private String J; diff --git a/src/main/java/net/minecraft/server/ProtoChunk.java b/src/main/java/net/minecraft/server/ProtoChunk.java index e4c0cc6a3..77977687e 100644 --- a/src/main/java/net/minecraft/server/ProtoChunk.java +++ b/src/main/java/net/minecraft/server/ProtoChunk.java @@ -356,7 +356,7 @@ public class ProtoChunk implements IChunkAccess { } public Map e() { - return Collections.unmodifiableMap(this.n); + return com.koloboke.collect.map.hash.HashObjObjMaps.newImmutableMap(this.n); // Akarin - koloboke } public void a(Map map) { @@ -478,7 +478,7 @@ public class ProtoChunk implements IChunkAccess { } public Map w() { - return Collections.unmodifiableMap(this.i); + return com.koloboke.collect.map.hash.HashObjObjMaps.newImmutableMap(this.i); // Akarin - koloboke } public NBTTagCompound g(BlockPosition blockposition) { diff --git a/src/main/java/net/minecraft/server/RegistryBlockID.java b/src/main/java/net/minecraft/server/RegistryBlockID.java index 93935e7c7..10bbf9749 100644 --- a/src/main/java/net/minecraft/server/RegistryBlockID.java +++ b/src/main/java/net/minecraft/server/RegistryBlockID.java @@ -3,6 +3,8 @@ package net.minecraft.server; import com.google.common.base.Predicates; import com.google.common.collect.Iterators; import com.google.common.collect.Lists; +import com.koloboke.collect.map.hash.HashObjIntMap; + import java.util.IdentityHashMap; import java.util.Iterator; import java.util.List; @@ -11,7 +13,7 @@ import javax.annotation.Nullable; public class RegistryBlockID implements Registry { private int a; - private final IdentityHashMap b; + private final HashObjIntMap b; // Akarin - IdentityHashMap -> HashObjIntMap private final List c; public RegistryBlockID() { @@ -20,7 +22,7 @@ public class RegistryBlockID implements Registry { public RegistryBlockID(int i) { this.c = Lists.newArrayListWithExpectedSize(i); - this.b = new IdentityHashMap(i); + this.b = com.koloboke.collect.map.hash.HashObjIntMaps.getDefaultFactory().withHashConfig(com.koloboke.collect.hash.HashConfig.fromLoads(1./3., 2./3., 2./3.)).withNullKeyAllowed(true).withKeyEquivalence(com.koloboke.collect.Equivalence.identity()).newUpdatableMap(i); // Akarin - koloboke } public void a(T t0, int i) { diff --git a/src/main/java/net/minecraft/server/RegistryMaterials.java b/src/main/java/net/minecraft/server/RegistryMaterials.java index 78de740ac..2fffb6d66 100644 --- a/src/main/java/net/minecraft/server/RegistryMaterials.java +++ b/src/main/java/net/minecraft/server/RegistryMaterials.java @@ -74,7 +74,7 @@ public class RegistryMaterials implements IRegistry { } public Set keySet() { - return Collections.unmodifiableSet(this.c.keySet()); + return com.koloboke.collect.set.hash.HashObjSets.newImmutableSet(this.c.keySet()); // Akarin - koloboke } public boolean d() { diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java index 4d3f88431..c383c1f43 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1384,8 +1384,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc timings.tileEntityTick.startTiming(); // Spigot if (!this.tileEntityListUnload.isEmpty()) { // Paper start - Use alternate implementation with faster contains - java.util.Set toRemove = java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()); - toRemove.addAll(tileEntityListUnload); + java.util.Set toRemove = com.koloboke.collect.set.hash.HashObjSets.getDefaultFactory().withHashConfig(com.koloboke.collect.hash.HashConfig.fromLoads(1./3., 2./3., 2./3.)).withNullKeyAllowed(true).withEquivalence(com.koloboke.collect.Equivalence.identity()).newImmutableSet(tileEntityListUnload); // Akarin - koloboke + //toRemove.addAll(tileEntityListUnload); // Akarin - koloboke this.tileEntityListTick.removeAll(toRemove); // Paper end //this.tileEntityList.removeAll(this.tileEntityListUnload); // Paper - remove unused list diff --git a/src/main/java/net/minecraft/server/WorldData.java b/src/main/java/net/minecraft/server/WorldData.java index b5fb95293..9f38dcfe4 100644 --- a/src/main/java/net/minecraft/server/WorldData.java +++ b/src/main/java/net/minecraft/server/WorldData.java @@ -81,7 +81,7 @@ public class WorldData { this.Q = 15; this.R = Sets.newHashSet(); this.S = Sets.newLinkedHashSet(); - this.T = Maps.newIdentityHashMap(); + this.T = com.koloboke.collect.map.hash.HashObjObjMaps.getDefaultFactory().withHashConfig(com.koloboke.collect.hash.HashConfig.fromLoads(1./3., 2./3., 2./3.)).withNullKeyAllowed(true).withKeyEquivalence(com.koloboke.collect.Equivalence.identity()).newUpdatableMap(); // Akarin - koloboke this.V = new GameRules(); this.p = null; this.q = 1631; @@ -98,7 +98,7 @@ public class WorldData { this.Q = 15; this.R = Sets.newHashSet(); this.S = Sets.newLinkedHashSet(); - this.T = Maps.newIdentityHashMap(); + this.T = com.koloboke.collect.map.hash.HashObjObjMaps.getDefaultFactory().withHashConfig(com.koloboke.collect.hash.HashConfig.fromLoads(1./3., 2./3., 2./3.)).withNullKeyAllowed(true).withKeyEquivalence(com.koloboke.collect.Equivalence.identity()).newUpdatableMap(); // Akarin - koloboke this.V = new GameRules(); this.p = datafixer; NBTTagCompound nbttagcompound2; @@ -270,7 +270,7 @@ public class WorldData { this.Q = 15; this.R = Sets.newHashSet(); this.S = Sets.newLinkedHashSet(); - this.T = Maps.newIdentityHashMap(); + this.T = com.koloboke.collect.map.hash.HashObjObjMaps.getDefaultFactory().withHashConfig(com.koloboke.collect.hash.HashConfig.fromLoads(1./3., 2./3., 2./3.)).withNullKeyAllowed(true).withKeyEquivalence(com.koloboke.collect.Equivalence.identity()).newUpdatableMap(); // Akarin - koloboke this.V = new GameRules(); this.p = null; this.q = 1631; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 6ed7c9355..e6a016f24 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -336,7 +336,7 @@ public class CraftWorld implements World { chunks.add(getChunkAt(ChunkCoordIntPair.a(coord), ChunkCoordIntPair.b(coord))); } - return Collections.unmodifiableCollection(chunks); + return com.koloboke.collect.set.hash.HashObjSets.newImmutableSet(chunks); // Akarin - koloboke } public WorldServer getHandle() { diff --git a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java index a5aadf285..061471835 100644 --- a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java +++ b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java @@ -25,6 +25,6 @@ public class CraftAdvancement implements org.bukkit.advancement.Advancement { @Override public Collection getCriteria() { - return Collections.unmodifiableCollection(handle.getCriteria().keySet()); + return com.koloboke.collect.set.hash.HashObjSets.newImmutableSet(handle.getCriteria().keySet()); // Akarin - koloboke } } diff --git a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementProgress.java b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementProgress.java index 60fc5aff8..a52131e6e 100644 --- a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementProgress.java +++ b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementProgress.java @@ -49,11 +49,11 @@ public class CraftAdvancementProgress implements AdvancementProgress { @Override public Collection getRemainingCriteria() { - return Collections.unmodifiableCollection(Lists.newArrayList(handle.getRemainingCriteria())); + return com.koloboke.collect.set.hash.HashObjSets.newImmutableSet(Lists.newArrayList(handle.getRemainingCriteria())); // Akarin - koloboke } @Override public Collection getAwardedCriteria() { - return Collections.unmodifiableCollection(Lists.newArrayList(handle.getAwardedCriteria())); + return com.koloboke.collect.set.hash.HashObjSets.newImmutableSet(Lists.newArrayList(handle.getAwardedCriteria())); // Akarin - koloboke } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index fbe342902..f8af2422f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1992,7 +1992,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { ret.add( getServer().getPlayer( u ) ); } - return java.util.Collections.unmodifiableSet( ret ); + return com.koloboke.collect.set.hash.HashObjSets.newImmutableSet( ret ); // Akarin - koloboke } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/tag/CraftBlockTag.java b/src/main/java/org/bukkit/craftbukkit/tag/CraftBlockTag.java index 2fe308d91..cfd7b50b0 100644 --- a/src/main/java/org/bukkit/craftbukkit/tag/CraftBlockTag.java +++ b/src/main/java/org/bukkit/craftbukkit/tag/CraftBlockTag.java @@ -22,6 +22,6 @@ public class CraftBlockTag extends CraftTag { @Override public Set getValues() { - return Collections.unmodifiableSet(getHandle().a().stream().map((block) -> CraftMagicNumbers.getMaterial(block)).collect(Collectors.toSet())); + return com.koloboke.collect.set.hash.HashObjSets.newImmutableSet(getHandle().a().stream().map((block) -> CraftMagicNumbers.getMaterial(block)).collect(Collectors.toSet())); // Akarin - koloboke } } diff --git a/src/main/java/org/bukkit/craftbukkit/tag/CraftItemTag.java b/src/main/java/org/bukkit/craftbukkit/tag/CraftItemTag.java index 4a1a45257..160a21835 100644 --- a/src/main/java/org/bukkit/craftbukkit/tag/CraftItemTag.java +++ b/src/main/java/org/bukkit/craftbukkit/tag/CraftItemTag.java @@ -22,6 +22,6 @@ public class CraftItemTag extends CraftTag { @Override public Set getValues() { - return Collections.unmodifiableSet(getHandle().a().stream().map((item) -> CraftMagicNumbers.getMaterial(item)).collect(Collectors.toSet())); + return com.koloboke.collect.set.hash.HashObjSets.newImmutableSet(getHandle().a().stream().map((item) -> CraftMagicNumbers.getMaterial(item)).collect(Collectors.toSet())); // Akarin - koloboke } } diff --git a/src/test/java/org/bukkit/ParticleTest.java b/src/test/java/org/bukkit/ParticleTest.java index 829dfa112..26232c261 100644 --- a/src/test/java/org/bukkit/ParticleTest.java +++ b/src/test/java/org/bukkit/ParticleTest.java @@ -28,7 +28,7 @@ public class ParticleTest extends AbstractTestingBase { Assert.assertNotNull("Missing Bukkit->NMS particle mapping for " + bukkit, CraftParticle.toNMS(bukkit, data)); } - for (net.minecraft.server.Particle nms : (Iterable>) IRegistry.PARTICLE_TYPE) { // Eclipse fail + for (net.minecraft.server.Particle nms : (Iterable>) IRegistry.PARTICLE_TYPE) { // Eclipse fail // Akarin - fixes eclipse Assert.assertNotNull("Missing NMS->Bukkit particle mapping for " + nms, CraftParticle.toBukkit(nms)); } }