Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: protocollib as soft dependency #9 #10

Merged
merged 26 commits into from
Dec 24, 2019
Merged

fix: protocollib as soft dependency #9 #10

merged 26 commits into from
Dec 24, 2019

Conversation

Shyrogan
Copy link
Contributor

Fixes:

  • Jar beaucoup plus léger
  • Erreur avec ProtocolLib: Throw une erreur quand il n'y a pas ProtocolLib et qu'il est nécessaire
  • Le fichier de configuration est écrit lorsque le plugin est chargé afin d'être modifié plus facilement (même si absolument pas recommandé)
  • La version BungeeCord devrait maintenant fonctionner (j'crois (pas sûr)), il faudrait que quelqu'un test.

@Shyrogan
Copy link
Contributor Author

Ah oui et j'ai changé la tâche gradew build pour gradlew shadowJar car sinon le jar n'était pas bon, n'empêche ça fonctionne pas c'est toi qui voit @Eywek

@MaximeMichaud
Copy link
Member

MaximeMichaud commented Dec 22, 2019

Pourquoi toi tu ne test pas ?
Moi, présentement je ne peux pas. Je n'ai plus de connexion cela fait 3 journées.
J'ai regarder un peu rapidement les commits, et je n'ai aucune idée si cela pourrait fix le Bungee.

  • Erreur avec ProtocolLib: Throw une erreur quand il n'y a pas ProtocolLib et qu'il est nécessaire

Je ne comprend pas ? ProtocolLib n'est pas un plugin que MineWebBridge dépend.
C'est juste que celui-ci peut interféré avec le Bridge.

@nivcoo
Copy link
Member

nivcoo commented Dec 22, 2019

Pourquoi toi tu ne test pas ?
Moi, présentement je ne peux pas. Je n'ai plus de connexion cela fait 3 journées.
J'ai regarder un peu rapidement les commits, et je n'ai aucune idée si cela pourrait fix le Bungee.

  • Erreur avec ProtocolLib: Throw une erreur quand il n'y a pas ProtocolLib et qu'il est nécessaire

Je ne comprend pas ? ProtocolLib n'est pas un plugin que MineWebBridge dépend.
C'est juste que celui-ci peut interféré avec le Bridge.

C'est juste pour éviter d'avoir une énorme erreur dans la console et afficher une erreur compréhensible par l'user et en sois c'est pas con.

@Shyrogan
Copy link
Contributor Author

Shyrogan commented Dec 22, 2019

Pourquoi toi tu ne test pas ?
Moi, présentement je ne peux pas. Je n'ai plus de connexion cela fait 3 journées.
J'ai regarder un peu rapidement les commits, et je n'ai aucune idée si cela pourrait fix le Bungee.

  • Erreur avec ProtocolLib: Throw une erreur quand il n'y a pas ProtocolLib et qu'il est nécessaire

Je ne comprend pas ? ProtocolLib n'est pas un plugin que MineWebBridge dépend.
C'est juste que celui-ci peut interféré avec le Bridge.

ProtocolLib est indirectement nécessaire car MineWeb utilise leurs utilitaires (voir fr/vmarchaud/mineweb/bukkit/BukkitCore et fr/vmarchaud/mineweb/bukkit/BukkitNettyInjector)
De plus c'est un plugin très largement utilisé et généralement présent dans la liste des plugins de pleins de serveurs, c'est pas contraignant de le réclamer pour MineWeb.

Pour les tests, ce n'est pas que je ne veux pas mais que je n'ai pas de site avec lequel le tester et n'ait aucunement envie d'installer tout le nécessaire pour le faire actuellement. Théoriquement ça devrait fonctionner pour BungeeCord je n'ai pas d'erreur en lançant un serveur avec le dernier build.

@MaximeMichaud
Copy link
Member

MaximeMichaud commented Dec 22, 2019

Pourquoi toi tu ne test pas ?
Moi, présentement je ne peux pas. Je n'ai plus de connexion cela fait 3 journées.
J'ai regarder un peu rapidement les commits, et je n'ai aucune idée si cela pourrait fix le Bungee.

  • Erreur avec ProtocolLib: Throw une erreur quand il n'y a pas ProtocolLib et qu'il est nécessaire

Je ne comprend pas ? ProtocolLib n'est pas un plugin que MineWebBridge dépend.
C'est juste que celui-ci peut interféré avec le Bridge.

C'est juste pour éviter d'avoir une énorme erreur dans la console et afficher une erreur compréhensible par l'user et en sois c'est pas con.

Pourquoi toi tu ne test pas ?
Moi, présentement je ne peux pas. Je n'ai plus de connexion cela fait 3 journées.
J'ai regarder un peu rapidement les commits, et je n'ai aucune idée si cela pourrait fix le Bungee.

  • Erreur avec ProtocolLib: Throw une erreur quand il n'y a pas ProtocolLib et qu'il est nécessaire

Je ne comprend pas ? ProtocolLib n'est pas un plugin que MineWebBridge dépend.
C'est juste que celui-ci peut interféré avec le Bridge.

ProtocolLib est indirectement nécessaire car MineWeb utilise leurs utilitaires (voir fr/vmarchaud/mineweb/bukkit/BukkitCore et fr/vmarchaud/mineweb/bukkit/BukkitNettyInjector)
De plus c'est un plugin très largement utilisé et généralement présent dans la liste des plugins de pleins de serveurs, c'est pas contraignant de le réclamer pour MineWeb.

D'accord, ouais, dans ce cas, je vois & je suis d'accord.
Tout le monde l'utilise, donc de pouvoir mieux le supporté, c'est pas bête.

Je vais voir si je peux le testée avant Janvier (mais je ne promet rien)

@nivcoo
Copy link
Member

nivcoo commented Dec 22, 2019

Pourquoi toi tu ne test pas ?
Moi, présentement je ne peux pas. Je n'ai plus de connexion cela fait 3 journées.
J'ai regarder un peu rapidement les commits, et je n'ai aucune idée si cela pourrait fix le Bungee.

  • Erreur avec ProtocolLib: Throw une erreur quand il n'y a pas ProtocolLib et qu'il est nécessaire

Je ne comprend pas ? ProtocolLib n'est pas un plugin que MineWebBridge dépend.
C'est juste que celui-ci peut interféré avec le Bridge.

ProtocolLib est indirectement nécessaire car MineWeb utilise leurs utilitaires (voir fr/vmarchaud/mineweb/bukkit/BukkitCore et fr/vmarchaud/mineweb/bukkit/BukkitNettyInjector)
De plus c'est un plugin très largement utilisé et généralement présent dans la liste des plugins de pleins de serveurs, c'est pas contraignant de le réclamer pour MineWeb.

C'est pour cela qu'il y a 2 plugins, lorsque le plugins protocolibs est installé en même temps que mineweb cela crée une erreur il faut donc prendre le second plugin même si pour moi le mieux serait de rend dependant le plugin mineweb avec protocol libs pour limiter les demandes de support lorsque les personnes ne lisent pas la doc et ne savent pas que lorsque protocolibs est installé il faut une autre version du pl mw

@MaximeMichaud
Copy link
Member

Pourquoi toi tu ne test pas ?
Moi, présentement je ne peux pas. Je n'ai plus de connexion cela fait 3 journées.
J'ai regarder un peu rapidement les commits, et je n'ai aucune idée si cela pourrait fix le Bungee.

  • Erreur avec ProtocolLib: Throw une erreur quand il n'y a pas ProtocolLib et qu'il est nécessaire

Je ne comprend pas ? ProtocolLib n'est pas un plugin que MineWebBridge dépend.
C'est juste que celui-ci peut interféré avec le Bridge.

ProtocolLib est indirectement nécessaire car MineWeb utilise leurs utilitaires (voir fr/vmarchaud/mineweb/bukkit/BukkitCore et fr/vmarchaud/mineweb/bukkit/BukkitNettyInjector)
De plus c'est un plugin très largement utilisé et généralement présent dans la liste des plugins de pleins de serveurs, c'est pas contraignant de le réclamer pour MineWeb.

C'est pour cela qu'il y a 2 plugins, lorsque le plugins protocolibs est installé en même temps que mineweb cela crée une erreur il faut donc prendre le second plugin même si pour moi le mieux serait de rend dependant le plugin mineweb avec protocol libs pour limiter les demandes de support lorsque les personnes ne lisent pas la doc et ne savent pas que lorsque protocolibs est installé il faut une autre version du pl mw

Selon moi, cela dépendrait toujours si cela en vaut vraiment la peine.
Mais, le fait de le rendre dépendant, n'est en aucun cas un problème.
Tout le monde utilise ProtocolLib, dès qu'il y a support de plusieurs versions, il est présent.
Si on peut avoir une seule version de Bridge, au lieu de 2 (comme 2.0.0), ce serait préférable.
Moins de support, moins de perte de temps pour tous. Même si cela demanderait d'installer ProtocolLib uniquement pour MineWeb.

@Eywek
Copy link
Member

Eywek commented Dec 22, 2019

J'ai fix les conflicts (via un ptit rebase) et comme ça la diff est lisible mtn.
@Shyrogan quand tu disais

n'empêche ça fonctionne pas c'est toi qui voit

Tu parlais des Github actions? Si oui je sais, je vais regarder

Et c'est une bonne idée de mettre ProtocolLib en soft dependency et d'émettre une erreur quand il est nécessaire. Les gens seront pas forcés de l'installer si ils utilisent la commande /mineweb port.

@Shyrogan
Copy link
Contributor Author

J'ai fix les conflicts (via un ptit rebase) et comme ça la diff est lisible mtn.
@Shyrogan quand tu disais

n'empêche ça fonctionne pas c'est toi qui voit

Tu parlais des Github actions? Si oui je sais, je vais regarder

yes boss

@jimmyr57000
Copy link
Member

J'ai utilisé Java 8

@bubafet540
Copy link

Bonjour,
Fonctionne aussi sous thermos en java 8 (debian 9) .

@Shyrogan
Copy link
Contributor Author

Shyrogan commented Dec 23, 2019

J'ai commit un fix pour l'erreur de @jimmyr57000 et j'ai réglé un potentiel problème avec Java 11 (afd56b7).
@Eywek je pense que tu peux merge

@MaximeMichaud
Copy link
Member

J'ai commit un fix pour l'erreur de @jimmyr57000 et j'ai réglé un potentiel problème avec Java 11 (afd56b7).
@Eywek je pense que tu peux merge

Hey, hey ! :)
Je vais peut-être avoir le temps de check ça, ce soir :D
Avec Java 11 sous Bungee.
En tout cas, si cela peut fix Bungee, ce serait magique.

@nivcoo
Copy link
Member

nivcoo commented Dec 23, 2019

Pour moi mon review est pas résolue, donc non il ne faut pas merge encore, tu es sur la version sans protocollibs si protocolibs est installé il crash, donc il ne faut pas le mettre en softdepends, il faudrai le mettre sur la version no-injector, ensuite sur cette version on peut mettre le port du serveur contrairement a l'autre version no injector :p

@Eywek
Copy link
Member

Eywek commented Dec 23, 2019

@nivcoo Maintenant, les deux versions peuvent être merge dans une seule qui est celle-là. En effet si tu veux pouvoir bind le port de ton serveur il te faudra installer protocollib mais si tu ne veux pas l’installer tu pourras utiliser la commande pour bind un port custom

@nivcoo
Copy link
Member

nivcoo commented Dec 23, 2019

Oui j'ai eu ma réponse sur discord j'avais pas vu les modif nécessaire, et de base c'est pas l'inverse ? il ne te faut pas protocolibs si tu veux bind le port du serveur ? Il me semble que c'est ca, dans l'ancienne version si tu avais la no-injector donc avec protocolibs tu pouvais plus bind le port du serveur

if (config.getPort() == null)

if (config.getPort() == null) {
if (Bukkit.getPluginManager().isPluginEnabled("ProtocolLib")) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Si l'erreur est

The bridge requires ProtocolLib to run on server's port
pourquoi mettre

if (Bukkit.getPluginManager().isPluginEnabled("ProtocolLib")) {
Ensuite justement si le port vaut null alors il ne faut pas protocolibs libs, Enfin maintenant que les 2 sont splits ca ne change pas le systeme d'avant : Sans protocolibs nous pouvons mettre un port custom + port du serveur mais avec(donc la version no-injector) il etait impossible de mettre le port du serveur : https://pics.edensky.fr/2019-12/23/18-36_iUxm.png

@nivcoo
Copy link
Member

nivcoo commented Dec 23, 2019

C'est bon je viens de tester sur le bungee cela fonctionne bien , jimmy avait testé sur le bukkit donc c'est ok :p

@jimmyr57000
Copy link
Member

jimmyr57000 commented Dec 24, 2019

Bukkit:

  • (OK) La liaison CMS/Serveur
  • (OK) Achat d'un items
  • (OK) Obliger le joueur à être connecté sur le serveur pour acheter l'article
  • (OK) Exécution d'une commande sur le joueur
  • (OK) Commande global effectuée à chaque achat

MAJ 24/12/2019

BungeeCord:

  • (OK) La liaison CMS/Serveur
  • (OK) Achat d'un items
  • (OK) Obliger le joueur à être connecté sur le serveur pour acheter l'article
  • (OK) Exécution d'une commande sur le joueur
  • (OK) Commande global effectuée à chaque achat

Divers:

  • (OK) Java 8
  • (OK) Java 11
  • (Debian 8, 9, 10)

Voilà, j'ai terminé les essais de mon côté je valide 💯

@MaximeMichaud
Copy link
Member

MaximeMichaud commented Dec 24, 2019

Bukkit:

  • (OK) La liaison CMS/Serveur
  • (OK) Achat d'un items
  • (OK) Obliger le joueur à être connecté sur le serveur pour acheter l'article
  • (OK) Exécution d'une commande sur le joueur
  • (OK) Commande global effectuée à chaque achat

MAJ 24/12/2019

BungeeCord:

  • (OK) La liaison CMS/Serveur
  • (OK) Achat d'un items
  • (OK) Obliger le joueur à être connecté sur le serveur pour acheter l'article
  • (OK) Exécution d'une commande sur le joueur
  • (OK) Commande global effectuée à chaque achat

Divers:

  • (OK) Java 8
  • (OK) Java 11
  • (Debian 8, 9, 10)

Voilà, j'ai terminé les essais de mon côté je valide 💯

Parfait ! 💯
Et pour l'utilisation du même port que du Serveur & de Bungee, ta testé ?
Manque plus que ça et c'est 100% prêt Release

@nivcoo
Copy link
Member

nivcoo commented Dec 24, 2019

Je pense pas qu'il puisse y avoir un probleme avec ca, mais si tu veux je peux tester d'avoir port du serveur pour le bungee et serveur

@jimmyr57000
Copy link
Member

Je pense pas qu'il puisse y avoir un probleme avec ca, mais si tu veux je peux tester d'avoir port du serveur pour le bungee et serveur

Fait le test perso flemme !
Je vois pas pourquoi y'aurais un soucis

@nivcoo
Copy link
Member

nivcoo commented Dec 24, 2019

Je viens de tester il n'y a pas de soucis

@Eywek
Copy link
Member

Eywek commented Dec 24, 2019

Tout le monde est d'accord pour merge alors?

@jimmyr57000
Copy link
Member

Tout le monde est d'accord pour merge alors?

Go pas de soucis

@nivcoo
Copy link
Member

nivcoo commented Dec 24, 2019

Oui et comme ça je vais pouvoir faire mon ajout

@Eywek Eywek merged commit 1e3766e into MineWeb:master Dec 24, 2019
@MaximeMichaud
Copy link
Member

Tout est parfait sauf :

Je n'ai plus utilisé le port par défaut du serveur (25565 Bukkit, 25577 pour Bungee) (aucune idée, si cela avait été implémenté)

Sinon, tout le reste fonctionne correctement, si on précise un port autre que celui par défaut.
Faudra corriger ou préciser, mais les commandes ne sont pas accessibles avec le proxy, et qu'il faut configurer directement à partir de la config.

Et check @Shyrogan :
image

@Shyrogan
Copy link
Contributor Author

@MaximeMichaud C'est pas dramatique pour le moment, c'est mener à disparaître dans les futurs versions de Java mais c'est pas encore le cas donc profitons en.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

7 participants