-
Compteur de contenus
682 -
Inscription
-
Dernière visite
-
Jours gagnés
27 -
Crédits
359 [Faire un don]
Messages posté(e)s par Nashoba
-
-
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
- 1
-
Même avec ton code sa me met sa :Contenu masqué
-
Réagissez ou répondez à ce message afin de consulter le contenu masqué.
As-tu des erreurs quand tu charge tes plugins (qui pourrait notamment venir du mien)?
-
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é.
-
Condition item
dans Résolus
Ça devrait marcher (non testé)
Contenu masqué
-
Réagissez ou répondez à ce message afin de consulter le contenu masqué.
-
Lien de ton addons révolutionnaire ?Clique sur le mot addon
-
Sinon mon addon permet de ping des serveurs ^^
Contenu masqué
-
Réagissez ou répondez à ce message afin de consulter le contenu masqué.
-
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
-
Ca n'existe pas, je cherchais la même avant x) !Si si ça existe, j'ai passé 1h a testé plein de trucs sur mon serveur local et le parsed as time a marché ^^
-
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é.
-
Nashoba updated [Addon] WolvSK (1.8, 1.9 &1.10) with a new update entry:
- Support de Twitter
- Appeler et récupérer l'objet retourné d'une fonction Java
- Format pour le chat et les messages des mini-jeux
- Bugs corrigés
- Support de Twitter
-
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é.
- 1
-
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 ^^)
-
Au pire tu peux m'envoyer les logs?
-
Si le problème venait du code ou du plugin.yml il devrait y avoir au moins 1 ligne d'erreur dans la console... Donc s'il est au bon endroit et qu'il n'y a pas d'erreur dans la console je ne vois pas pourquoi ça ne marche pas :eek:
-
Le problème pourrait venir de beaucoup d'endroit... As-tu fais attention où tu as exporté ton plugin?
-
Mmmmhh... As-tu déjà créé un plugin Java auparavant ou c'est ton premier?
-
As-tu créé le fichier plugin.yml? As-tu une/des erreur(s) dans la console? Quand tu fais /plugins il est en rouge ou il n'est pas dedans?
-
Ça ne fonctionne pas =( À chaque fois que je rajoute la classe pour créer l'effet et que je suis ton tutoriel, le plugin n'est pas détecté...Il n'est pas détecté sur ton serveur Minecraft?
-
J'ai commencé à développer l'addon mais c'est long >.< (
Contenu masqué
-
Réagissez ou répondez à ce message afin de consulter le contenu masqué.
La prochaine version de mon addon supportera Twitter.
-
J'avais déjà eu l'idée de mettre ça dans mon addon mais j'ai oublié... Je vais voir ça pour une prochaine maj
- 1
-
Ah tant mieux ^^ Je viens de recevoir la notification ;PVoilà elles sont postées :)
- 1
-
Sommaire:
- Base de l'addon
- Créer un effet
- Créer une condition
- Créer une expression
- Créer un évent
- 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é.
-
Sommaire:
- Base de l'addon
- Créer un effet
- Créer une condition
- Créer une expression
- Créer un évent
- 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é.
-
Sommaire:
- Base de l'addon
- Créer un effet
- Créer une condition
- Créer une expression
- Créer un évent
- 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é.
- 3
[Addon] WolvSK (1.8, 1.9, 1.10, 1.11 & 1.12)
dans Skripts
Répondu :
Nashoba updated [Addon] WolvSK (1.8, 1.9 &1.10) with a new update entry:
WolvSK 1.4.1
Read the rest of this update entry...