[1.7.10 ] [SoundManager] Petit problème pour récupérer une information.
-
Oui et c’est normal, le son n’est que géré côté client. Il n’a aucun intérêt côté serveur. Tout ce qui concerne le son ne doit que être fait sur le client.
-
Du coup je vais essayer nettoyer mon code, est aller après tester les Packet ^^ je vous tient au courant.
-
Nan regarde mon message (je l’ai édité). Pas besoin de packet, rajoute juste une condition de ce genre
if(this.worldObj.isRemote)
{
//Ta méthode qui check si un disque est joué
} -
je peux pas le mettre dans isSoundPlaying parce que coté server il va return false quand même ^^ du coup il va coupé la musique est remettre un autre en boucle sans que la musique soie fini ^^
Est quand tu parler de TE sa va dit ?
(Les TE sont gérés des 2 côtés)
En plus par IMessage je peux pas le faire non plus,
Le updateTick fonctionne que sur server est pas sur client

-
Les TileEntity sont des 2 côtés : client et serveur. Du coup tu peux très bien vérifier dans la méthode updateEntity de ta TE si une musique est jouée. Et comme on te le dit depuis plusieurs messages, occupe toi que du client ^^ Le serveur n’en a rien à faire de ta musique. Du coup rajoute cette condition :
if(this.worldObj.isRemote) -
J’ai déjà teste ^^ le problème c’est que quand le mod est sur le server le client utilise pas la fonction updateTick, il y a que le serveur. j’ai teste avec un System.out.println est il y à que le server qui l’affiche dans le console le client non

-
Est-ce que t’as essayé mon code au moins avant de dire qu’il ne marche pas ? Si c’est le cas, alors packet obligatoire !
-
Juste un problème c’est que le updateTick marche pas sur le client quand j’ajoute le mod sur un server forge.
Il y à que le server qui updateTick le blockJe comprend pas

@Override public void updateTick(World world, int x, int y, int z, Random rand) { if (world.isRemote == true) { System.out.println("Client updateTick"); // Quand le mod est sur le server ça marche pas ! } else { System.out.println("Server updateTick"); } world.markBlockForUpdate(x, y, z); } -
C’est tout à fait normal. Sur serveur il y a que les fonctions serveurs qui sont exécutés et world.isRemote est toujours faux.
Sur ton client c’est l’inverse.
Et lorsque tu joues en solo tu as les deux, car il y a un serveur intégré qui tourne. -
J’ai trouvé un moyen plus simple, j’ai créer 2 classe pour géré la duré des musique, faut juste l’ajoute dans un fichier json mais du coup ça fonction des 2 coté est j’ai plus besoin de SoundManager. j’ai juste encore quelque problème avec les ticks. parce que le sound s’arrête 3 seconde en avance ^^
Je passerai le code.