Plugins Java Serveur Minecraft / sérialisation
Bonjour à tous,
alors je me lance dans l'apprentissage de Java à travers la création de plugins pour serveur minecraft Spigot.
Jusqu’à la tous allais bien j’avançais doucement mais je trouvais toujours solution dans la documentation JAVA et dans quelque petite recherche internet.
cependant je rencontre un problème dans la sauvegarde d'un fichier dans le qu'elle je stock une variable ArrayList (qui est bien sérialisable, oui j'ai vérifié).
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
public class Main extends JavaPlugin {
public ArrayList<Location> location = new ArrayList<Location>() ;
@Override
public void onEnable() {
//texte de console démarrage plugins
System.out.println( "location : " + (new Location(null, 700,500,210)).toString());
try {
this.save("Test.tmp", new Location(null, 700,500,210));
} catch (FileNotFoundException e) {
System.out.println("erreur6");
e.printStackTrace();
} catch (IOException e) {
System.out.println("erreur7");
e.printStackTrace();
}
System.out.println("la méthode renvoir : " + this.TestLocation("Test.tmp",new Location(null, 700,500,210)));
} |
En gros quand démarre le serveur sa lance la methode save puis la méthode TestLocation que vous retrouver ci-après :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
public void save(String fileName,Location location) throws IOException {
System.out.println("1");
FileOutputStream fos = new FileOutputStream(fileName);
ObjectOutputStream oos = new ObjectOutputStream(fos);
this.location.clear();
try {
this.location = this.load(fileName);
} catch (ClassNotFoundException e) {
System.out.println("erreur3");
e.printStackTrace();
} catch (IOException e) {
System.out.println("erreur4");
e.printStackTrace();
}
this.location.add(location);
oos.writeObject(this.location);
oos.close();
}
public ArrayList<Location> load(String fileName) throws IOException, ClassNotFoundException {
System.out.println("3");
FileInputStream fis = new FileInputStream("t.tmp");
ObjectInputStream ois = new ObjectInputStream(fis);
location = (ArrayList<Location>)ois.readObject();
System.out.println("location");
ois.close();
return location;
}
public boolean TestLocation(String fileName,Location location){
this.location.clear();
try {
this.location = this.load(fileName);
} catch (ClassNotFoundException e) {
System.out.println("eereur1");
e.printStackTrace();
} catch (IOException e) {
System.out.println("erreur2");
e.printStackTrace();
}
if(this.location.contains(location)) {
return true;
}
return false;
} |
cependant dans la console j'ai que des erreurs ...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
[01:24:53] [Server thread/INFO]: location : Location{world=null,x=700.0,y=500.0,z=210.0,pitch=0.0,yaw=0.0}
[01:24:53] [Server thread/INFO]: 1
[01:24:53] [Server thread/INFO]: 3
[01:24:53] [Server thread/INFO]: erreur4
[01:24:53] [Server thread/WARN]: java.io.EOFException
[01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject0(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.load(Main.java:103)
[01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.save(Main.java:84)
[01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.onEnable(Main.java:29)
[01:24:53] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263)
[01:24:53] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:352)
[01:24:53] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:417)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugin(CraftServer.java:462)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugins(CraftServer.java:376)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.reload(CraftServer.java:811)
[01:24:53] [Server thread/WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:576)
[01:24:53] [Server thread/WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27)
[01:24:53] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:711)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchServerCommand(CraftServer.java:696)
[01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.handleCommandQueue(DedicatedServer.java:430)
[01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.b(DedicatedServer.java:394)
[01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:978)
[01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:823)
[01:24:53] [Server thread/WARN]: at java.lang.Thread.run(Unknown Source)
[01:24:53] [Server thread/INFO]: erreur7
[01:24:53] [Server thread/WARN]: java.io.NotSerializableException: org.bukkit.Location
[01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject0(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.util.ArrayList.writeObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:24:53] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[01:24:53] [Server thread/WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.lang.reflect.Method.invoke(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject0(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.save(Main.java:94)
[01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.onEnable(Main.java:29)
[01:24:53] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263)
[01:24:53] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:352)
[01:24:53] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:417)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugin(CraftServer.java:462)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugins(CraftServer.java:376)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.reload(CraftServer.java:811)
[01:24:53] [Server thread/WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:576)
[01:24:53] [Server thread/WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27)
[01:24:53] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:711)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchServerCommand(CraftServer.java:696)
[01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.handleCommandQueue(DedicatedServer.java:430)
[01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.b(DedicatedServer.java:394)
[01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:978)
[01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:823)
[01:24:53] [Server thread/WARN]: at java.lang.Thread.run(Unknown Source)
[01:24:53] [Server thread/INFO]: 3
[01:24:53] [Server thread/INFO]: erreur2
[01:24:53] [Server thread/WARN]: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.bukkit.Location
[01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject0(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.util.ArrayList.readObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:24:53] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[01:24:53] [Server thread/WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.lang.reflect.Method.invoke(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readSerialData(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject0(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectInputStream.readObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.load(Main.java:103)
[01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.TestLocation(Main.java:113)
[01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.onEnable(Main.java:38)
[01:24:53] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263)
[01:24:53] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:352)
[01:24:53] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:417)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugin(CraftServer.java:462)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugins(CraftServer.java:376)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.reload(CraftServer.java:811)
[01:24:53] [Server thread/WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:576)
[01:24:53] [Server thread/WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27)
[01:24:53] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:711)
[01:24:53] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchServerCommand(CraftServer.java:696)
[01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.handleCommandQueue(DedicatedServer.java:430)
[01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.b(DedicatedServer.java:394)
[01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:978)
[01:24:53] [Server thread/WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:823)
[01:24:53] [Server thread/WARN]: at java.lang.Thread.run(Unknown Source)
[01:24:53] [Server thread/WARN]: Caused by: java.io.NotSerializableException: org.bukkit.Location
[01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject0(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.util.ArrayList.writeObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:24:53] [Server thread/WARN]: at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[01:24:53] [Server thread/WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.lang.reflect.Method.invoke(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject0(Unknown Source)
[01:24:53] [Server thread/WARN]: at java.io.ObjectOutputStream.writeObject(Unknown Source)
[01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.save(Main.java:94)
[01:24:53] [Server thread/WARN]: at fr.passepartout007.principal.Main.onEnable(Main.java:29)
[01:24:53] [Server thread/WARN]: ... 16 more |
Pouvez vous m'aider a comprendre ses erreur et m'aider a les corrigés ? cela fais 2 jours que je cherche sans grande reussite.
Mon but final étant de sérialsié la variable location (qui est un ArrayList).
Merci pas avance si il y à des réponse.
Bien à vous,
Passepartout007