Помогите Не десериализуется ItemStack.(Gson)

  • Автор темы Автор темы Slavkaa
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Slavkaa

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Slavok2001
Код:
Unexpected exception while parsing console command "itest deser"
org.bukkit.command.CommandException: Unhandled exception executing command 'itest' in plugin ItemTest v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit-1.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-33d5de3]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140) ~[craftbukkit-1.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchCommand(CraftServer.java:625) ~[craftbukkit-1.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchServerCommand(CraftServer.java:611) [craftbukkit-1.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-33d5de3]
    at net.minecraft.server.v1_8_R1.DedicatedServer.aM(DedicatedServer.java:320) [craftbukkit-1.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-33d5de3]
    at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:285) [craftbukkit-1.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-33d5de3]
    at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:609) [craftbukkit-1.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-33d5de3]
    at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:517) [craftbukkit-1.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-33d5de3]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_151]
Caused by: java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Integer
    at org.*********ventory.ItemStack.deserialize(ItemStack.java:533) ~[craftbukkit-1.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-33d5de3]
    at test.Main.onCommand(Main.java:57) ~[?:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit-1.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-33d5de3]
    ... 8 more
PHP:
{
  "type": "WOOL",
  "damage": 14,
  "amount": 5,
  "meta": {
    "displayName": "Name",
    "lore": [
      "lore1",
      "lore2"
    ],
    "enchantments": {
      "Enchantment[48, ARROW_DAMAGE]": 1
    },
    "repairCost": 0,
    "hideFlag": 0,
    "unhandledTags": {}
  }
}
Пытаюсь десериализовать так
PHP:
ItemStack.deserialize(gson.fromJson(reader, new HashMap<String,Object>().getClass()));
Судя по ошибке, не получается закастить Double к Integer, но в файле нет Double вообще.
Подскажите, пожалуйста.
 
Это получилось реализовать, но другой вопрос: почему через gson.fromJson(.., ...) не десериализируется итем мета в мапу?
Выделенные десериализируются, а то, что ниже - нет:
upload_2018-3-26_20-10-28.png
 
Как я понимаю, создавать отдельный класс и лепить ItemStack из его переменных?
Можно и так.

Код:
public class Stack {
    private String material;
    private int amount;
    private int date;
    private String customname;
    private List<String> lore;
    private Map<String, Integer> enchant;
    private List<String> flags;
    private boolean unbreak;
 
Можно и так.

Код:
public class Stack {
    private String material;
    private int amount;
    private int date;
    private String customname;
    private List<String> lore;
    private Map<String, Integer> enchant;
    private List<String> flags;
    private boolean unbreak;
Ну ладно, спасибо, буду делать так.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх