1818package com .viaversion .viabackwards .protocol .v1_14to1_13_2 .storage ;
1919
2020import com .viaversion .viaversion .api .connection .StorableObject ;
21- import java . lang . reflect . Constructor ;
22- import java . lang . reflect . InvocationTargetException ;
21+ import com . viaversion . viaversion . libs . fastutil . longs . Long2ObjectMap ;
22+ import com . viaversion . viaversion . libs . fastutil . longs . Long2ObjectOpenHashMap ;
2323import java .util .Arrays ;
24- import java .util .HashMap ;
25- import java .util .Map ;
2624
2725public class ChunkLightStorage implements StorableObject {
2826 public static final byte [] FULL_LIGHT = new byte [2048 ];
2927 public static final byte [] EMPTY_LIGHT = new byte [2048 ];
30- private static Constructor <?> fastUtilLongObjectHashMap ;
3128
32- private final Map < Long , ChunkLight > storedLight = createLongObjectMap ();
29+ private final Long2ObjectMap < ChunkLight > storedLight = new Long2ObjectOpenHashMap <> ();
3330
3431 static {
3532 Arrays .fill (FULL_LIGHT , (byte ) 0xFF );
3633 Arrays .fill (EMPTY_LIGHT , (byte ) 0x0 );
37- try {
38- fastUtilLongObjectHashMap = Class .forName ("it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap" ).getConstructor ();
39- } catch (ClassNotFoundException | NoSuchMethodException ignored ) {
40- }
4134 }
4235
4336 public void setStoredLight (byte [][] skyLight , byte [][] blockLight , int x , int z ) {
@@ -60,17 +53,6 @@ private long getChunkSectionIndex(int x, int z) {
6053 return ((x & 0x3FFFFFFL ) << 38 ) | (z & 0x3FFFFFFL );
6154 }
6255
63- private Map <Long , ChunkLight > createLongObjectMap () {
64- if (fastUtilLongObjectHashMap != null ) {
65- try {
66- return (Map <Long , ChunkLight >) fastUtilLongObjectHashMap .newInstance ();
67- } catch (IllegalAccessException | InstantiationException | InvocationTargetException e ) {
68- e .printStackTrace ();
69- }
70- }
71- return new HashMap <>();
72- }
73-
7456 public record ChunkLight (byte [][] skyLight , byte [][] blockLight ) {
7557
7658 @ Override
0 commit comments