package com.bergerkiller.bukkit.common.reflection.classes; import java.util.Arrays; import java.util.logging.Level; import com.bergerkiller.bukkit.common.internal.CommonPlugin; import com.bergerkiller.bukkit.common.reflection.ClassBuilder; import com.bergerkiller.bukkit.common.utils.CommonUtil; public class SpigotDummyFlatMap { private static final Object INSTANCE; static { Class<?> flatMapClass = CommonUtil.getClass("org.spigotmc.FlatMap"); Object flatInstance = null; if (flatMapClass == null) { CommonPlugin.LOGGER.log(Level.SEVERE, "The Spigot FlatMap class could not be located!"); } else { try { // Initialize a new dummy flatmap (that does nothing) ClassBuilder builder = new ClassBuilder(flatMapClass, FlatMapImpl.class); flatInstance = builder.create(new Class<?>[0], new Object[0], Arrays.asList((Object) new FlatMapImpl())); } catch (Throwable t) { CommonPlugin.LOGGER.log(Level.SEVERE, "Failed to initialize the Spigot Dummy FlatMap:", t); } } INSTANCE = flatInstance; } public static Object getInstance() { return INSTANCE; } public static class FlatMapImpl implements FlatMapMethods { public Object get(long msw, long lsw) {return null;} public Object get(long key) {return null;} public void put(long msw, long lsw, Object value) {} public void put(long key, Object value) {} } public static interface FlatMapMethods { public Object get(long msw, long lsw); public Object get(long key); public void put(long msw, long lsw, Object value); public void put(long key, Object value); } }