Couleur pas que sur la ligne !



  • Salut !

    J'ai un mini problème mais qui me dérange et qui est très basique mais je n'ai pas trouvé la réponse.

    J'aimerais appliqué une couleur à un texte dans le chat, j'utilisais le EnumChatFormatting mais celui-ci ne procure que la couleur personnalisé que sur une ligne (dont celle-ci peut-être adapté par le Client avec les Réglages), alors je me demande comment définir un code couleur pour un texte et qu'il reste fonctionnel jusqu'à ce que je lui dise de ne plus l'être.

    En espérant avoir été clair,

    Benjamin Loison, 😉



  • J'avais fait ça dans mon mod, je regarde ça demain si pas de réponse



  • Sinon aussi j'aimerais faire un I18n.format dans un packet Side.SERVER mais j'ai cette erreur, moyen de résoudre ?

    [01:48:50] [Server thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
    java.lang.NoClassDefFoundError: net/minecraft/client/resources/I18n
    at fr.altiscraft.benjaminloison.packets.PacketAmendePlayer$Handler.onMessage(PacketAmendePlayer.java:57) ~[PacketAmendePlayer$Handler.class:?]
    at fr.altiscraft.benjaminloison.packets.PacketAmendePlayer$Handler.onMessage(PacketAmendePlayer.java:1) ~[PacketAmendePlayer$Handler.class:?]
    at cpw.mods.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:37) ~[SimpleChannelHandlerWrapper.class:?]
    at cpw.mods.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:17) ~[SimpleChannelHandlerWrapper.class:?]
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:98) ~[SimpleChannelInboundHandler.class:?]
    at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
    at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [MessageToMessageDecoder.class:?]
    at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) [MessageToMessageCodec.class:?]
    at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
    at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
    at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:?]
    at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?]
    at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) [NetworkSystem.class:?]
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) [MinecraftServer.class:?]
    at net.minecraft.server.dedicated.DedicatedServer.updateTimeLightAndEntities(DedicatedServer.java:349) [DedicatedServer.class:?]
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
    Caused by: java.lang.ClassNotFoundException: net.minecraft.client.resources.I18n
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_60]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_60]
    … 21 more
    Caused by: java.lang.RuntimeException: Attempted to load class net/minecraft/client/resources/I18n for invalid side SERVER
    at cpw.mods.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:50) ~[forgeSrc-1.7.10-10.13.4.1492-1.7.10.jar:?]
    at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_60]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_60]
    … 21 more
    

  • Administrateurs

    StatCollector pour côté serveur, I18n n'est que côté client.

    Pas sûr que ce soit possible de faire ce que tu veux.



  • J'ai farfouillé le forum a fond et même Internet mais je n'arrive pas à faire ceci :

    player.envoiMessage("Amende envoy" + Traduction("accent.er") + "e !");
    

    Un bout de code qui marche qui réponds à mon besoin ? 😕

    Sinon pour mon problème de couleur doit y avoir un truc, mettre des EnumChatFormatting à chaque mots, c'est très dérangeant :')



  • Pour la couleur moi je créé le chat component text, je récupère le chat style et j'y appliqué la couleur, ça marche bien pour tt les lignes

    Pour la traduction côté serveur je regarde comment que les commandes font.
    Edit : c'est bien hardcodé mais utilisé tout simplement un ChatComponentTranslation


  • Administrateurs

    player.envoiMessage("Amende envoy" + Traduction("accent.er") + "e !");
    What ?
    Pourquoi tu veux juste mettre l'accent traduit et pas tout le message ?



  • Sinon mon fichier lang serais super long…

    Merci Aymeric je vais test 😉



  • Et alors, tu veux que je te sorte des mods avec des fichiers .lang qui ont + de 400 lignes ?! Tu sais c'est mieux d'avoir +400 lignes de traduction dans un fichier lang que dans le code du mod.


  • Administrateurs

    385 lignes dans le fichier lang de nhg. Et encore c'est rien.
    Et puis si c'est juste pour l'accent, tu peux le mettre directement dans le texte. Faut juste avoir la workspace en utf8.



  • Tu as ChatComponentTranslation il me semble aussi pour du support client et serveur des .lang (ref. Commandes), ensuite pour les accents sur tu ne veux pas passer par un .lang

    Go check: https://fr.wikipedia.org/wiki/Table_des_caractères_Unicode_(0000-0FFF)

    Tu utilise les code unicode en renplaçant U+BLABLA par \uBLABLA dans ton texte pour avoir des accents corrects sans passer par un .lang et limite tu fait un check de si

    é est écrit tu remplace par \u00E9, mais c'est con de pas passer par un .lang…



  • Mon idée était conne pour les accents et j'ai abandonné pour la couleur sur plusieurs lignes.