Résolu Probleme de Chat Local
-
Salut, j’ai fait un chat local en utilisant les conseils de certains mais ca ne marche pas, voila mon code:
[font=Courier New@SubscribeEvent ]**public void **onPlayerChat(ServerChatEvent event){ String message = event.**message**; String username = event.**username**; EntityPlayerMP player = event.**player**; event.setCanceled(**true**); ExtentedEntityProprieties props = ExtentedEntityProprieties.*get*(player); **if**(props.getMute() != 0){ player.addChatComponentMessage(**new **ChatComponentText(**"Vous etes mute! Vous ne pouvez pas parler avant: "**+props.getMute()/20+**" secondes!"**) .setChatStyle(**new **ChatStyle().setColor(EnumChatFormatting.***DARK_RED***))); }**else**{ player.addChatComponentMessage(**new **ChatComponentText(**"[Local<"**]+username+**"> "**+message) .setChatStyle(**new **ChatStyle().setColor(EnumChatFormatting.***YELLOW***))); **for**(Object entities:player.**worldObj**.getEntitiesWithinAABB(EntityPlayerMP.**class**, AxisAlignedBB.*getBoundingBox*(0.0D, 0.0D, 0.0D, 60.0D, 60.0D, 60.0D))){ **if**(entities **instanceof **EntityPlayerMP){ ((EntityPlayerMP) entities).addChatComponentMessage(**new **ChatComponentText(**"[Local<"**]+username+**"> "**+message) .setChatStyle(**new **ChatStyle().setColor(EnumChatFormatting.***YELLOW***))); } } } }
Le code fonctionne pour le player ‘sender’ mais pas pour les joueurs aux alentours.
-
Ton AABB n’est pas correcte : tu prend tous les joueurs qui sont jusqu’à soit blocks en PLUS donc tous ceux qui sont en négatif par rapport au joueur n’apparaissent pas dans la liste. De plus, en omettant le paramètre Predicate, tous les joueurs qui sont en spectateur ne le verront pas.
-
Mon code est pour la 1.8 donc pas de spectateurs, et donc comme je peux regler la ca? Je mets -60.0D au lieu de 0.0D ?
-
String message = event.message; String username = event.username; EntityPlayerMP player = event.player;
J’apprend le moding mais mettre 3 Event c’est un conflit non ?
Essaye :
ev = raccourci de event
m/u/p c’est pour reconnaitre ^^String message = evm.message; String username = evu.username; EntityPlayerMP player = evp.player;
Ci cela marche pas ,je ne suis pas assez qualifié pour te répondre désolé ^^
-
Il y a 1 seul event, l’event ServerChatEvent, les évent.qqch, ce sont des instances que je vais chercher, dans mon cas le event.message va me donner une String contenant le message quand le joueur parle, le event.player va me donner l’instance du joueur en question (lorsqu’un joueur parle) et de cette manière je peux accéder à toutes les données qui sont en rapport avec le joueur. Merci de ton aide quand même ^^
-
@‘iFuSion34’:
String message = event.message; String username = event.username; EntityPlayerMP player = event.player;
J’apprend le moding mais mettre 3 Event c’est un conflit non ?
Essaye :
ev = raccourci de event
m/u/p c’est pour reconnaitre ^^String message = evm.message; String username = evu.username; EntityPlayerMP player = evp.player;
Ci cela marche pas ,je ne suis pas assez qualifié pour te répondre désolé ^^
Tu te mélange les pinceaux. Il n’y a bien qu’un seul event. et ev n’est pas le raccourci de event.
Il doit bien utilise event, puisque c’est le nom qu’il a donné la variable ServerChatEvent :
public void onPlayerChat(ServerChatEvent event){Si il avait fait
public void onPlayerChat(ServerChatEvent machin){
il aurait du utiliser machin.message, machin.username …@‘sosoh’:
Mon code est pour la 1.8 donc pas de spectateurs, et donc comme je peux regler la ca? Je mets -60.0D au lieu de 0.0D ?
Ton code actuel envoie le message à tous les joueurs qui se trouvent entre 0,0,0 et 64,64,64. Si tu veux envoyer à tous les joueurs qui sont à 64 blocs autours du joueur qui a tenté d’envoyer le message, il faut plutôt utiliser :
player.boundingBox.expand(64.0D, 64.0D, 64.0D)