package me.arasple.mc.trmenu.nms.imp; import io.izzel.taboolib.module.lite.SimpleReflection; import me.arasple.mc.trmenu.nms.TrMenuNms; import net.minecraft.server.v1_13_R2.ChatComponentText; import net.minecraft.server.v1_13_R2.EntityPlayer; import net.minecraft.server.v1_13_R2.PacketPlayOutCloseWindow; import net.minecraft.server.v1_13_R2.PacketPlayOutOpenWindow; import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; /** * @author Arasple * @date 2020/1/20 14:24 * for versions below Minecraft 1.14 */ public class TrMenuNmsOld extends TrMenuNms { static { SimpleReflection.checkAndSave(PacketPlayOutOpenWindow.class); } @Override public void setInventoryTitle(Player player, Inventory inventory, String title) { EntityPlayer handle = ((CraftPlayer) player).getHandle(); PacketPlayOutOpenWindow packet = new PacketPlayOutOpenWindow( handle.activeContainer.windowId, getByInventory(inventory), new ChatComponentText(title), inventory.getSize() ); handle.playerConnection.sendPacket(packet); handle.updateInventory(handle.activeContainer); } @Override public void closeInventory(Player player) { PacketPlayOutCloseWindow packet = new PacketPlayOutCloseWindow(); EntityPlayer handle = ((CraftPlayer) player).getHandle(); handle.playerConnection.sendPacket(packet); } private String getByInventory(Inventory inventory) { return "minecraft:" + inventory.getType().name().toLowerCase(); } }