Afficher un message dans le chat avec 2 traductions
-
J’ai trouvé pourquoi ça crash : c’est que j’enregistrai mon eventHandler dans le commonProxy, donc au client et serveur en même temps. Mais dans l’eventHandler, j’avais aussi un event qui gère le son, donc que client, pas serveur. C’est pour ça que ça crashait. J’ai donc fait 2 class : une pour les events client uniquement et une pour les events communes client/serveur. Et ça marche bien, ça affiche bien le message à la connexion.
Merci beaucoup Robin

EDIT : je viens de m’apercevoir d’un léger problème concernant les dates : si je lance le serveur un autre jour que le 25 décembre (par exemple le 24), et que je change la date pour le 25 et je lance le client, quand je me connecte au serveur ça n’affiche pas le message. Par contre, si je lance le serveur le 25 et que je m’y connecte, ça affiche le message. J’ai utilisé ceci pour les dates :
if (calendar.get(2) + 1 == 12 && calendar.get(5) == 25)Ca doit utilisé la date de lancement du serveur. Est-ce possible de récupérer la date de lancement du client ?
-
Fais voir comment tu crées ton instance de Calendar
-
Salut
Désolé du temps de la réponse :Calendar calendar = Calendar.getInstance(); -
Et tu as placé où ce code ?
-
dans mon CommonEventHandler, au dessus de l’event. Il ne faut pas le mettre ici ?
-
Envoies la classe entière car j’arrive pas à repérer.
-
package This_is_Christmas; import java.util.Calendar; import org.apache.logging.log4j.core.helpers.SystemClock; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; public class CommonEventHandler { Calendar calendar = Calendar.getInstance(); @SubscribeEvent public void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent worldevent) { if (calendar.get(2) + 1 == 12 && calendar.get(5) == 25) { worldevent.player.addChatMessage(new ChatComponentTranslation("msg.christmas.merry", worldevent.player.getDisplayName()).setChatStyle((new ChatStyle().setColor(EnumChatFormatting.DARK_GREEN)))); } } } -
Ton calendar est instancié en même temps que la classe (donc lors du chargement du mod).
C’est pour ça que la date reste celle du lancement. -
Je comprend pas où c’est qu’il faut que je la mette alors

-
@‘Axaurus’:
Je comprend pas où c’est qu’il faut que je la mette alors

Dans la méthode onPlayerLoggedIn, au tout début.
-
Effectivement, ça marche
Merci
