@Override public void onPlayerInteractEntity(PlayerInteractEntityEvent event) { CraftPlayer player = (CraftPlayer) event.getPlayer(); if (player.getItemInHand() != null) { switch (player.getItemInHand().getType()) { case WOOD_HOE: case STONE_HOE: case IRON_HOE: case GOLD_HOE: case DIAMOND_HOE: break; default: return; } Entity ent = event.getRightClicked(); if (!(ent instanceof Animals)) return; Animals a1 = (Animals) ent; if (a1.isAdult()) return; if (getCooldown() > 0) { event .getPlayer() .sendMessage( ChatColor.RED + "Veuillez attendre " + getFormattedTime(getCooldown()) + " avant de pouvoir faire cela \u00e0 nouveau."); return; } List<Entity> entities = a1.getNearbyEntities(x, x, z); int i = 0; int j = count - 1; while (i < entities.size() && j > 0) { Entity e = entities.get(i); if (e instanceof Animals) { if (!((Animals) e).isAdult()) { ((Animals) e).setAdult(); --j; } } ++i; } startCooldown(); } }
private void spawnRing( final double radius, final double t, final Player player, final double numParts) { final double[] time = {t}; new BukkitRunnable() { public void run() { Location loc = player.getLocation(); for (double i = 0; i < Math.PI * 2; i += Math.PI * 2 / numParts) { float newX = (float) (xLoc(i, radius) + loc.getX()); float newY = (float) (loc.getY()); float newZ = (float) (zLoc(i, radius) + loc.getZ()); PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles( EnumParticle.FLAME, true, newX, newY, newZ, 0f, 0f, 0f, 0f, 1); PacketPlayOutWorldParticles packet2 = new PacketPlayOutWorldParticles( EnumParticle.FLAME, true, newX, newY + 0.5f, newZ, 0f, 0f, 0f, 0f, 1); PacketPlayOutWorldParticles packet3 = new PacketPlayOutWorldParticles( EnumParticle.SMOKE_NORMAL, true, newX, newY + 1, newZ, 0f, 0f, 0f, 0f, 1); for (Player p : loc.getWorld().getPlayers()) { ((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet); ((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet2); ((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet3); } } time[0] -= 0.5; if (time[0] <= 0) this.cancel(); } }.runTaskTimer(plugin, 0, 10); }
public static void TabHF(Player player, String header, String footer) { CraftPlayer craftplayer = (CraftPlayer) player; PlayerConnection connection = craftplayer.getHandle().playerConnection; IChatBaseComponent JSONheader = ChatSerializer.a("{\"text\": \"" + header + "\"}"); IChatBaseComponent JSONfooter = ChatSerializer.a("{\"text\": \"" + footer + "\"}"); PacketPlayOutPlayerListHeaderFooter packet = new PacketPlayOutPlayerListHeaderFooter(); try { Field headerField = packet.getClass().getDeclaredField("a"); headerField.setAccessible(true); headerField.set(packet, JSONheader); headerField.setAccessible(!headerField.isAccessible()); Field footerField = packet.getClass().getDeclaredField("b"); footerField.setAccessible(true); footerField.set(packet, JSONfooter); footerField.setAccessible(!footerField.isAccessible()); } catch (Exception ex) { ex.printStackTrace(); } connection.sendPacket(packet); }
public void sendParticles( World world, String type, float x, float y, float z, float offsetX, float offsetY, float offsetZ, float data, int amount) { EnumParticle particle = EnumParticle.valueOf(type); PacketPlayOutWorldParticles particles = new PacketPlayOutWorldParticles( particle, false, x, y, z, offsetX, offsetY, offsetZ, data, amount, 1); for (Player player : world.getPlayers()) { CraftPlayer start = (CraftPlayer) player; // Replace player with your player. EntityPlayer target = start.getHandle(); PlayerConnection connect = target.playerConnection; connect.sendPacket(particles); } }
@EventHandler(priority = EventPriority.HIGHEST) public void onPlayerJoinEvent(PlayerJoinEvent e) { e.setJoinMessage(""); Player p = e.getPlayer(); Game.players.add(p.getUniqueId()); p.setHealth(20.0); p.setExp(0); ChatUtilities.broadcast(e.getPlayer().getDisplayName() + " has joined!"); p.removePotionEffect(PotionEffectType.INVISIBILITY); p.setGameMode(GameMode.ADVENTURE); p.getInventory().clear(); p.getInventory().setHelmet(null); Game.setCanStart(Bukkit.getOnlinePlayers().size() >= 2); LocationUtilities.teleportToLobby(p); CraftPlayer craftplayer = (CraftPlayer) p; PlayerConnection connection = craftplayer.getHandle().playerConnection; IChatBaseComponent header = ChatSerializer.a("{\"text\": \" §3Villager Hunt \"}"); IChatBaseComponent footer = ChatSerializer.a("{\"text\": \" §4Development Test \"}"); PacketPlayOutPlayerListHeaderFooter packet = new PacketPlayOutPlayerListHeaderFooter(); try { Field headerField = packet.getClass().getDeclaredField("a"); headerField.setAccessible(true); headerField.set(packet, header); headerField.setAccessible(!headerField.isAccessible()); Field footerField = packet.getClass().getDeclaredField("b"); footerField.setAccessible(true); footerField.set(packet, footer); footerField.setAccessible(!footerField.isAccessible()); } catch (Exception ex) { ex.printStackTrace(); } connection.sendPacket(packet); }
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 sendJson(Player player, Object s) { CraftPlayer craftPlayer = (CraftPlayer) player; PlayerConnection playConnection = craftPlayer.getHandle().playerConnection; playConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a(s.toString()))); }
public static void sendPacket(Player p, Packet packet) { ((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet); }