@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);
  }
Beispiel #3
0
  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);
 }