Aller au contenu

Nashoba

Ancien
  • Compteur de contenus

    682
  • Inscription

  • Dernière visite

  • Jours gagnés

    27
  • Crédits

    359 [Faire un don]

Messages posté(e)s par Nashoba


  1. Met a jour "WolvSK".

    Il est à jour

     

    Edit: Plus maintenant, je viens de sortir une nouvelle version ^^

    [WolvSK] Enabling WolvSK v1.4

    [18:40:03] [server thread/ERROR]: Error occurred while enabling WolvSK v1.4 (Is it up to date?)

    java.lang.NoClassDefFoundError: com/comphenix/protocol/events/PacketListener

    at fr.nashoba24.wolvsk.WolvSK.onEnable(WolvSK.java:59) ~[?:?]

    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[spigot.jar:git-Spigot-db6de12-18fbb24]

    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot.jar:git-Spigot-db6de12-18fbb24]

    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Spigot-db6de12-18fbb24]

    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [spigot.jar:git-Spigot-db6de12-18fbb24]

    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [spigot.jar:git-Spigot-db6de12-18fbb24]

    at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:414) [spigot.jar:git-Spigot-db6de12-18fbb24]

    at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:378) [spigot.jar:git-Spigot-db6de12-18fbb24]

    at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:333) [spigot.jar:git-Spigot-db6de12-18fbb24]

    at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:263) [spigot.jar:git-Spigot-db6de12-18fbb24]

    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525) [spigot.jar:git-Spigot-db6de12-18fbb24]

    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]

    Caused by: java.lang.ClassNotFoundException: com.comphenix.protocol.events.PacketListener

    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[?:1.8.0_101]

    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot.jar:git-Spigot-db6de12-18fbb24]

    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot.jar:git-Spigot-db6de12-18fbb24]

    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_101]

    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_101]

    ... 12 more

    Je vais régler le problème. Ça vient du fait qu'il essaye de charger quelques chose qui a besoin de ProtocolLib mais tu n'a pas ce plugin

     

    Edit: Problème réglé, tu peux télécharger la mise à jour

    • J'aime 1

  2. Même avec ton code sa me met sa :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
    Mais pour l'api twitter c'est pareil la même erreur

    As-tu des erreurs quand tu charge tes plugins (qui pourrait notamment venir du mien)?


  3. Bizarre chez moi ça marche o.O

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.

    avec le code:

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.


  4. Avec mon addon ton code devient:

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.

    Ah et je te rappelle que tu as besoin de ProtocolLib pour utiliser cet évent


  5. Des plugins existent déjà pour ça, qui je pense seront bien moins gourmand en ressource qu'un Skript ^^

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.

    Si tu veux vraiment le faire en Skript:

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.


  6. J'ai fini d'ajouter le support de Twitter à mon Addon ^^ Il me reste un truc à faire pour sortir la version 1.4 (qui contient Twitter). Si tu veux tester la beta (pour éventuellement me reporter des bugs):

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.

    Pour ce qui est des effets/conditions/expressions/types je n'ai pas fait la doc car c'est long à faire mais tu peux les trouver dans le code source:

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.

    A partir de la ligne 68

     

    Ah et pour obtenir les tokens et consumer key je t'envoie ici:

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.

    • J'aime 1

  7. En réalité ce n'est pas obligé dans la classe principale ^^. Il faut juste le mettre dans une fonction appelée au démarrage (en réalité c'est même quand on veut, mais je ne vois pas l'utilité d'activer un effet 10 minutes après le démarrage ^^)


  8. Sommaire:

    1. Base de l'addon
    2. Créer un effet
    3. Créer une condition
    4. Créer une expression
    5. Créer un évent
    6. Créer un type

    ---------------------------

     

    Avant de continuer, assurez-vous d'avoir suivi les précédents tutoriaux ou vous pourrez être perdus.

     

    Créer une expression

     

    Cette partie va être plus longue et plus complexe. Une expression je vous le rappelle renvoie un objet, n'importe lequel. Une expression peut être aussi « settable », c'est-à-dire que l'ont peut utiliser « add %object% to %object% » (le premier est votre expression et le deuxième ce que vous ajoutez), « remove %object% from %object% », « set %object% to %object% », « reset %object% » ou « remove all from %object% ».

     

    Tout d'abord voici le code de base de votre class :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    Voyons les fonctions 1 par 1 :

    isSingle() : Si vous renvoyez false, c'est que ce que vous renvoyez avec votre expression est une liste (plusieurs objets), si vous renvoyer true, vous ne renvoyez qu'un seul objet.

    getReturnType() : Permet à Skript d'obtenir la class du type d'objet que vous renvoyez (ex : String.class, Integer.class, Player.class...).

    init() : Si vous avez suivi le reste du tuto, vous la connaissez.

    toString() : Vous connaissez aussi.

    get() : Permet d'obtenir l'objet de l'expression. /!\ Vous devez renvoyer une liste obligatoirement, si vous renvoyez false à la fonction isSingle(), vous devez renvoyer une liste à un seul élément.

     

    Dans votre class, la première chose à faire est de remplacer tous les « Object » par le type d'objet que vous voulez renvoyer (ex : String, Integer, Player, NPC, UUID, Long...).

    Comme exemple je vais faire une expression qui renvoie le nom du joueur, ça renvoie donc un String (texte). Dans ma classe ça me donne :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

     

    Maintenant voyons la fonction get(). Dans le « return new String[]{ } » je dois ajouter le nom du joueur dans la liste. J'obtiens donc le code suivant :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

     

    Maintenant voyons voir pour une expression « settable ». On va rajouter 2 nouvelles fonctions dans notre class :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    La fonction change() est appelée quand l'objet doit être changé. Vous avez 3 paramètres dedans :

    e : Vous le connaissez (pour récupérer une variable private avec getSingle(e))

    delta : L'objet que vous devrez ajouter (vous devrez le cast)

    mode : Le type de changement : add, remove, reset...

    La fonction acceptChange() doit renvoyer les class des objets que vous acceptez lors d'un changement. Par exemple si vous souhaitez pouvoir ajouter uniquement des nombres en fonction de certains mode, il faut faire une condition avec le type de mode et renvoyer Number.class.

     

    Exemple : Avec le plugin PayerPoints, pouvoir récupérer les points du joueur et pouvour en add, remove, reset ou set :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

     

    Maintenant il ne nous reste plus qu'à enregistrer l'expression dans Skript :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    La seule chose en plus des autres patterns est « Object.class ». Vous devez mettre à la place le type d'objet que vous renvoyez dans votre expression. Par exemple avec l'exemple précédent j'obtiens :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

  9. Sommaire:

    1. Base de l'addon
    2. Créer un effet
    3. Créer une condition
    4. Créer une expression
    5. Créer un évent
    6. Créer un type

    ---------------------------

    Avant de commencer, assurez-vous d'avoir suivi les 2 premiers tutoriaux sinon vous serez perdu ^^

     

    Créer une condition

     

    Pour créer une condition, c'est très similaire à un effet. Voici le code de base :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    Pour remplir la condition init(), si vous avez suivi cette partie dans « Créer un effet » vous devez savoir faire, sinon je vous renvoie à cette partie.

    La fonction toString(), pareil.

    Pour la fonction check(), elle doit renvoyer true ou false. Si vous renvoyez false, la condition ne sera pas passée, si vous renvoyer true, elle sera bonne. Dans cette fonction vous pouvez ajouter tout le code que vous voulez mais au final, vous devez renvoyer true ou false.

     

    Exemple : Une condition qui test si un nombre est pair.

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    Pour enregistrer votre pattern, utilisez le code suivant :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    Pour mon exemple j'obtiens :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

  10. Sommaire:

    1. Base de l'addon
    2. Créer un effet
    3. Créer une condition
    4. Créer une expression
    5. Créer un évent
    6. Créer un type

    ---------------------------

    Créer un effet

     

    On va commencer par le plus facile. Je rappelle, un effet permet d’exécuter du code sans renvoyer d'informations en échange.

    Tout d'abord on va choisir l'effet à créer et on va créer une classe où on veut. Par exemple je crée un package « fr.nashoba24.wolvsk.effets » et je crée une classe nommée EffSendMessageToPlayer car je veux envoyer un message à un joueur grâce à cette fonction. Ensuite je vais coller dans cette nouvelle classe le code suivant, puis je l'éditerai :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    La fonction init() permet d'enregistrer les éventuelles variables et de retourner vrai si tout est bon (que les variables sont bonnes par exemple)

    La fonction toString() retourne le nom de l'effet, qui sera éventuellement utilisé dans des messages d'erreur par exemple.

    Pour finir, la fonction execute() est appelée quand l'effet est exécuté. Il contiendra donc votre code pour réaliser un effet en Skript.

     

    Voyons d'abord la fonction init(). L'argument expr[] retourne les variables dont vous aurez éventuellement besoin dans votre fonction execute(). matchedPattern renvoie le numéro du pattern correspondant (on verra plus tard qu'on peut avoir plusieurs patterns pour un(e) même effet/évent/condition). Pour les 2 autres je ne vais pas vous cacher que je n'en ai jamais eu besoin donc je ne sais pas à quoi ça sert ?

     

    Maintenant on va voir comment enregistrer une variable. Tout d'abord, après

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    on va rajouter une voir plusieurs lignes avec les variables dont vous aurez besoin. Vous devez la déclarer comme ceci :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    Ensuite dans init(), on va changer la valeur de la variable. Pour ceci on ajoute autant de lignes que nécessaire avec

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    La numéro correspond au numéro de l'objet envoyé par Skript. Pour le trouver, il vous suffit de compter le numéro de l'objet dans le pattern.

    Par exemple avec

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    Là, l'objet %string% aura pour numéro 0 et player aura pour numéro 1.

     

    Voyons voir maintenant à quoi ressemble ma class si j'enregistre les variables pour envoyer un message. J'aurais besoin de variable : le message et le joueur. Le pattern que j'utilise est « send %string% to %player% »

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

     

    Maintenant attaquons nous à la fonction toString(). C'est relativement simple, il faut retourner un String avec le nom de la fonction qui sera éventuellement utilisé par exemple dans des message d'erreurs. Ici je vais retourner « send message to player ». J'obtiens donc :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    Pour finir il faut remplir la fonction execute(). Vous pouvez mettre ici n'importe quel code, qui fera au final ce que la fonction demande. Ici je dois faire en sorte d'envoyer le message au joueur.

    Vous aurez sûrement besoin de variable, je vais donc vous montrer comment récupérer une variable. Il faut tout simplement faire ceci :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    Au final ma class ressemble à ça :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    Bien, il reste une seule chose à faire : enregistrer l'effet dans Skript. Pour ceci, il faut placer la ligne suivante dans une fonction appelée au démarrage du serveur (par exemple onEnable(), dans la classe principale).

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     

    A la place de VotreClass, vous mettez le nom de la classe contenant l'effet et à la place de pattern vous mettez votre pattern sous forme de String. Si vous voulez en mettre plusieurs, vous pouvez mettre une virgule et mettre d'autres patterns après. Pour mon exemple ça me donne ça :

    Contenu masqué

      Réagissez ou répondez à ce message afin de consulter le contenu masqué.
     
    • J'aime 3
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.