Navigation

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Communiquer par packets entre un mod Forge et un plugin Sponge

    Sans suite
    1.10.x
    3
    8
    1310
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • MajorSquirrel
      MajorSquirrel last edited by

      Bonsoir,

      Je suis un peu (beaucoup) désespéré, je n’arrive à trouver aucune réponse qui puisse m’apporter de l’aide. Voilà le topo :

      • Mon ami développe actuellement un plugin Sponge. Son plugin est un plugin PvP où les joueurs ont la possibilité de créer des villes et se battre en eux pour gagner des points. De ce fait, toute la data concernant les villes et tout le toutim est stockée dans une database MySQL et c’est le plugin qui interagit avec elle.

      • J’ai décidé de mon côté de créer un mod Forge pour ajouter du contenu inédit (blocks, items, entities & tile entities) et faciliter la gestion de ces villes en offrant aux joueurs plusieurs interfaces (gui) pour créer des villes, les gérer, etc…

      Mon problème actuellement, c’est que je n’ai aucun moyen de communiquer la data du plugin vers le mod (ou inverse). Je sais qu’on peut créer des channels pour envoyer des packets dans Forge, mais je n’ai aucune idée de comment m’y prendre pour faire du Forge à Sponge et vice versa. (Pour la petite anecdote, j’ai posté sur le forum Sponge pour tenter d’avoir des réponses et des infos concrètes, mais très sincèrement il n’y a aucune documentation sur comment utiliser le networking sur Sponge)

      Je ne vais pas vous mentir, ça m’énerve un peu (beaucoup), je vois beaucoup de tutoriaux qui montrent comment créer des blocks ou des items, mais j’ai l’impression que la communauté de modding manque sincèrement de tutoriaux sur des concepts plus poussés (comme le networking avancé ou les concepts profonds de Forge ou de Sponge).

      Du coup, ma question est : est-ce qu’il existe un moyen pour communiquer de la data entre un mod Forge et un plugin Sponge ? 🙂
      PS: je vous invite à lire mon post sur le forum Sponge plus haut pour observer les réponses qui ont déjà été données.

      Merci de votre aide !

      1 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

        Salut,
        Je n’ai jamais développé avec sponge donc je ne connais pas du tout son api.

        Par contre je vois une solution à ton problème bien plus simple :
        Dans ton mod créé une classe avec des méthodes static et dans ces derniers envoies un paquet au client. En argument pour ces méthodes tu peux mettre le joueur à qui envoyer et les données en question.

        Ensuite depuis le plugin sponge tu as juste à appeler les méthodes en question.

        try
        {
           Class spongeToForge = Class.forName("package.du.mod.SpongeToForge.class");
           Method method = spongeToForge.getMethod("nomDeLaMethode", EntityPlayer.class, String.class); // pour un string
           method.invoke(null, player, value); // methode static donc pas besoin d'instance, d'où le premier null
        }
        catch (Exception ex)
        {
        
           ex.printStackTrace()
        }
        
        1 Reply Last reply Reply Quote 0
        • AymericRed
          AymericRed last edited by

          Les plugins Sponge sont différents des plugins bukkit, mais ceci t’aidera peut-être https://www.minecraftforgefrance.fr/showthread.php?tid=2668

          1 Reply Last reply Reply Quote 0
          • MajorSquirrel
            MajorSquirrel last edited by

            Bonjour à vous deux,

            Merci de vos réponses ! Concernant la solution que propose robin, eh bien je ne comprends pas tout à fait la démarche à suivre, j’entends par là : quel système d’envoi de packet je dois utiliser dans cette fameuse classe, le networking de Forge ou celui de Sponge ? Et aussi, cette solution permet d’envoyer du plugin (server) au mod (client side), mais comment puis-je faire pour faire l’inverse et récupérer les infos ?

            À propos de la solution qu’AymericRed propose, je vais y jeter un coup d’oeil dans les moments à suivre et voir si je peux utiliser cette méthode. 🙂

            Mais pour le coup j’aimerais vraiment mieux comprendre ta solution robin !

            1 Reply Last reply Reply Quote 0
            • robin4002
              robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

              Avec ma solution il faut passer uniquement par le système de paquet de forge.
              Et oui c’est que j’ai proposé c’est uniquement pour sponge vers forge.
              Mais on peut utiliser le même principe dans l’autre sens.

              1 Reply Last reply Reply Quote 0
              • AymericRed
                AymericRed last edited by

                En fait le principe de Robin, c’est que les packets passent par Forge, et côté serveur, le mod et le plugin communiquent entre eux grâce à la réflexion java (donc le plugin pourra appeler des fonctions du mod, et inversement). Mais essaye déja le lien que j’ai donné, devrait être plus simple.

                1 Reply Last reply Reply Quote 0
                • MajorSquirrel
                  MajorSquirrel last edited by

                  @‘AymericRed’:

                  En fait le principe de Robin, c’est que les packets passent par Forge, et côté serveur, le mod et le plugin communiquent entre eux grâce à la réflexion java (donc le plugin pourra appeler des fonctions du mod, et inversement). Mais essaye déja le lien que j’ai donné, devrait être plus simple.

                  Pour l’envoi du client vers le serveur le tutoriel semble ok, mais du coup il manque la partie réception côté Forge (donc tout ce qui est envoi du serveur vers le client). Faut-il que je fasse un mélange de ce tutoriel et de la suggestion de robin ?

                  1 Reply Last reply Reply Quote 0
                  • AymericRed
                    AymericRed last edited by

                    Je sais pas si c’est le meilleur moyen, mais c’est possible de faire ça oui.

                    1 Reply Last reply Reply Quote 0
                    • 1 / 1
                    • First post
                      Last post
                    Design by Woryk
                    Contact / Mentions Légales / Faire un don

                    MINECRAFT FORGE FRANCE © 2018

                    Powered by NodeBB