Développer des plugins pour Craftbukkit

Statut
N'est pas ouverte pour d'autres réponses.

Yannoulu

Sniffeur professionnel
28 Juin 2011
559
29
23
26
127.0.0.1
www.twitter.com
Salut ! Je sais pas si je suis le seul mais j'ai une question.
tu le prends ou ton object "log" dans le "else" ?

J'ai copié tous tes codes et fait juste du c/c et pourtant j'ai cette erreur...

Je dois faire un object Logger ?
ou alors je dois aller chercher l'object Logger de bukkit ?

Merci de la réponse :)
Faut que tu cherches l'objet Logger dans bukkit, mais je sais plus comment j'avais fait :S
 

Ptibiscuit

Modérateur sucre vanillé
11 Mars 2011
620
25
13
Code:
Logger log = Logger.getLogger("Minecraft");
Logger log = Logger.getLog("Minecraft");
Un des 2, je sais plus :X
 

XDki113r

Moddeur sur MacBook Pro
23 Septembre 2011
172
12
13
26
Québec, Canada
bon ça fonctionne pour le Logger mais maintenant j'ai cette erreur :
Code:
2011-12-14 19:50:23 [SEVERE] Could not load 'plugins\FirstPlugin.jar' in folder 'plugins':
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:175)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:215)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:136)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:151)
    at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:127)
    at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigurationManager.java:52)
    at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:145)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:399)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)
Caused by: java.lang.NullPointerException
    at com.XDki113r.FirstPlugin.FirstPlugin.<init>(FirstPlugin.java:19)
    ... 13 more

la ligne 19 de FirstPlugin.java correspond à ça :
Code:
    PluginManager pm = this.getServer().getPluginManager();

Merci :)

P.S.: Déso pour le double post
 

Ptibiscuit

Modérateur sucre vanillé
11 Mars 2011
620
25
13
Il faut faire attention a ne jamais rien faire durant l'initialisation d'un objet et son constructeur. En effet, voici en pseudo-code le loading du plugin dans les codes sources de Bukkit:
Code:
Plugin p = new FirstPlugin();
/.../
p.setServer(server);
/../
p.onEnable();
Donc, si tu fait ta ligne avant même que PluginLoader n'ai mis le singleton de Server, ça va envoyé un NullPointerException. Il faut donc que tu initialises tes variables dans onEnable(). :)
 

XDki113r

Moddeur sur MacBook Pro
23 Septembre 2011
172
12
13
26
Québec, Canada
ah daccord merci :)

EDIT:
Bon ça y est... j'ai une nouvelle erreur :S

là voici donc :
Code:
[SEVERE] java.util.ArrayList cannot be cast to java.lang.String loading SuperPlugin v1 (Is it up to date?)
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String
    at org.bukkit.command.PluginCommandYamlParser.parse(PluginCommandYamlParser.java:25)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:273)
    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:186)
    at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:169)
    at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:348)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:335)
    at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:165)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:399)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)

Merci d'avance...
 

Ptibiscuit

Modérateur sucre vanillé
11 Mars 2011
620
25
13
Dans ton fichier Yaml, a un moment, tu as un objet ArrayList (Donc des tirets a la suite) que tu essais de mettre en String.
 

xaxaWOW

FullMetal Codeur
23 Mai 2011
148
0
11
Hillion
Bonjour PtitBiscuit !

J'ai un probleme lorsque je veut utiliser le plugin Menelas sur mon serveur , voici le log de mon serveur
Code:
-12-18 22:37:56 [SEVERE] Could not pass event BLOCK_DAMAGE to Menelas
java.lang.NullPointerException
    at org.bukkit.plugin.java.JavaPluginLoader$33.execute(JavaPluginLoader.java:490)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339)
    at org.bukkit.craftbukkit.event.CraftEventFactory.callBlockDamageEvent(CraftEventFactory.java:196)
    at net.minecraft.server.ItemInWorldManager.dig(ItemInWorldManager.java:133)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:498)
    at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:208)
    at net.minecraft.server.Packet14BlockDig.a(SourceFile:43)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:93)
    at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:550)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:527)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:425)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)

Voila et voici ma class Menelas.java
Code:
package com.ptibiscuit.menelas;

import org.bukkit.event.Event;
import org.bukkit.event.Event.Priority;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

public class Menelas extends JavaPlugin {
  
private static final Listener bm = null;

@Override
public void onDisable() {
// TODO Auto-generated method stub

}

@Override
public void onEnable() {
// TODO Auto-generated method stub
    PluginManager pm = this.getServer().getPluginManager();
    pm.registerEvent(Event.Type.BLOCK_DAMAGE, bm, Priority.Normal, this);
}

}

Voila ! J'espere que tu va pouvoir m'aider ;)
 
Statut
N'est pas ouverte pour d'autres réponses.