Untitled
unknown
java
a year ago
1.6 kB
9
Indexable
package com.trexmine.guiapi; import com.trexmine.guiapi.gui.GuiManager; import com.trexmine.guiapi.packets.GuiPacketPlayInWindowClick; import com.trexmine.guiapi.packets.GuiPacketPlayOutSetSlot; import com.trexmine.guiapi.packets.GuiPacketPlayOutWindowItems; import lombok.Getter; import lombok.SneakyThrows; import net.minecraft.server.v1_8_R3.EnumProtocol; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.lang.reflect.Field; import java.util.Map; @Getter public final class GuiAPI { private static final Logger LOGGER = LogManager.getLogger(GuiAPI.class); private static GuiAPI INSTANCE; private final GuiManager guiManager = new GuiManager(); private static final Field enumProtocol_registry; static { try { enumProtocol_registry = EnumProtocol.class.getDeclaredField("h"); } catch (NoSuchFieldException e) { throw new RuntimeException(e); } enumProtocol_registry.setAccessible(true); } public static GuiAPI getInstance() { if (INSTANCE == null) { INSTANCE = new GuiAPI(); INSTANCE.registerPackets(); } return INSTANCE; } @SneakyThrows @SuppressWarnings({"unchecked", "rawtypes"}) private void registerPackets() { Map map = (Map) enumProtocol_registry.get(null); map.put(GuiPacketPlayOutSetSlot.class, EnumProtocol.PLAY); map.put(GuiPacketPlayOutWindowItems.class, EnumProtocol.PLAY); map.put(GuiPacketPlayInWindowClick.class, EnumProtocol.PLAY); LOGGER.info("Registered GUI packets"); } }
Editor is loading...
Leave a Comment