Plugin Résolu [Mon plugin] Supprimer flèches, effets de potion et particules

ShE3py

Développeur en autodidacte
Support
26 Septembre 2015
2 430
56
343
247
19
Mìlhüsa
Code:
for(Player p : Bukkit.getServer().getOnlinePlayers()) {
    PacketPlayOutEntityDestroy packet = new PacketPlayOutEntityDestroy(arrow.getEntityId());
    ((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet);
}

Cela supprimera la flèche à tous les joueurs connectés, mais pas sur le serveur.
 

iKreal

Poseur de cobblestone
30 Octobre 2015
40
2
23
20
Bonjour, merci pour la réponse.
En testant le code, j'aperçois la flèche un moment puis elle disparaît.
Cependant, lorsqu'elle me touche en créatif, elle ne se fait pas remove, du coup je la ramasse... En plus elle oneshot tous les mobs, même l'Ender Dragon, et en fait elle ne semble pas les one shot mais les remove, car je ne vois pas la mort du dragon avec les éclats, le bruit et les particules... En revanche les mobs donnent quand-même des items à leur mort (les moutons droppent de la laine et de la viande par exemple).
Donc ça fait plusieurs problèmes...

Edit :
Je pense que le dernier problème vient de là :
@EventHandler
public void onEntityDamagedByEntity(EntityDamageByEntityEvent e) {

if(e.getDamager().getType() != EntityType.ARROW || !activeBullets.contains(e.getDamager().getEntityId())) return;

e.setDamage(e.getDamage() * 2);

activeBullets.remove((Integer) e.getEntity().getEntityId());
e.getEntity().remove();

}
Cette ligne remove peut-être de la liste l'entité touchée et non l'entité qui touche (= la flèche) ?
Cette ligne remove peut-être l'entité touchée et non l'entité qui touche, donc je dois peut-être remplacer e.getEntity() par e.getDamager() ?
 

ShE3py

Développeur en autodidacte
Support
26 Septembre 2015
2 430
56
343
247
19
Mìlhüsa
Effectivement c'est e.getDamager() (tout est là)

Et pour le loot de la flèche il faut voir avec un évènement, je te laisses te débrouiller à partir de là je ne vais pas aller chercher la documentation à ta place ^c^