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