1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Slavkaa, 26 мар 2018.

Статус темы:
Закрыта.
  1. Автор темы
    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 вообще.
    Подскажите, пожалуйста.
     
  2. Автор темы
    Slavkaa

    Slavkaa Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Это получилось реализовать, но другой вопрос: почему через gson.fromJson(.., ...) не десериализируется итем мета в мапу?
    Выделенные десериализируются, а то, что ниже - нет:
    upload_2018-3-26_20-10-28.png
     
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Там все завраплено. Че ты хотел то.
     
  4. Автор темы
    Slavkaa

    Slavkaa Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Как я понимаю, создавать отдельный класс и лепить ItemStack из его переменных?
     
  5. Alastar

    Alastar Старожил Пользователь

    Баллы:
    173
    В NBT пиши :D
     
  6. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Можно и так.

    Код:
    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;
     
  7. Автор темы
    Slavkaa

    Slavkaa Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Ну ладно, спасибо, буду делать так.
     
Статус темы:
Закрыта.

Поделиться этой страницей