public static void openAnvilInventory(final Player player) { EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); FakeAnvilv_1_8_R3 fakeAnvil = new FakeAnvilv_1_8_R3(entityPlayer); int containerId = entityPlayer.nextContainerCounter(); ((CraftPlayer) player) .getHandle() .playerConnection .sendPacket( new PacketPlayOutOpenWindow( containerId, "minecraft:anvil", new ChatMessage("Repairing", new Object[] {}), 0)); entityPlayer.activeContainer = fakeAnvil; entityPlayer.activeContainer.windowId = containerId; entityPlayer.activeContainer.addSlotListener(entityPlayer); entityPlayer.activeContainer = fakeAnvil; entityPlayer.activeContainer.windowId = containerId; Inventory inv = fakeAnvil.getBukkitView().getTopInventory(); inv.setItem(0, new ItemStack(Material.PAPER)); }
public static void sendPlayerMessage(Player player, String message) { HashMap<String, UrlEntry> urls = new HashMap<>(); // JsonObject component = new JsonObject(); String result = message; while (Regex.isMatch(result, REGEX_URL)) { String[] groups = Regex.getGroups(message, REGEX_URL); String url = groups[0]; String name = groups[1]; urls.put("\\{URL_" + (urls.size() + 1) + "\\}", new UrlEntry(url, name)); result = Regex.replace(result, REGEX_URL, "\\{URL_" + (urls.size() + 1) + "\\}"); } for (Map.Entry<String, UrlEntry> entry : urls.entrySet()) { result = result.replace(entry.getKey(), entry.getValue().getJson()); } // component.addProperty("text", "test"); IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(result); Bukkit.broadcastMessage("Sending: " + comp.getText()); PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 0); ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); }
public static void sendPacket(Player p, Packet packet) { ((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet); }