Войти или зарегистрироваться

Помогите Лучший способ сохранить инвентарь в mysql?

Статус
Закрыто для дальнейших ответов.

Yourbreath

Активный участник
Пользователь
Баллы
61
Нужно сохранять содержимое кастомных инвентарей в бд. Есть ли какие-то способы - во что можно преобразовать массив айтем стаков, чтобы записывать в бд и читать оттуда?

Единственный вариант у меня в голове - превратить массив айтем стаков в массив байт, и, соответственно, последний полетит в бд. Главное, чтобы big int типа хватило, он вроде большой, но не имею представления
 
Нужно сохранять содержимое кастомных инвентарей в бд. Есть ли какие-то способы - во что можно преобразовать массив айтем стаков, чтобы записывать в бд и читать оттуда?

Единственный вариант у меня в голове - превратить массив айтем стаков в массив байт, и, соответственно, последний полетит в бд. Главное, чтобы big int типа хватило, он вроде большой, но не имею представления
Как вариант сериализовать в json
 
Единственный вариант у меня в голове - превратить массив айтем стаков в массив байт, и, соответственно, последний полетит в бд. Главное, чтобы big int типа хватило, он вроде большой, но не имею представления
Если память не изменяет, ChestShop примерно так и делает, только хранит предметы в виде base64.
 
закодировать в Base64:good:
 
закодировать в Base64:good:
Если память не изменяет, ChestShop примерно так и делает, только хранит предметы в виде base64.
а в чем прикол base64 и как примерно это работает? На сколько я помню, это длинная строка из каких-то закодированных букав
 
а в чем прикол base64 и как примерно это работает? На сколько я помню, это длинная строка из каких-то закодированных букав
примерно так:
Код:
    public static List<ItemStack> deserializeItems(String string) {
        List<ItemStack> items = new ArrayList<>();

        if (string.isEmpty()) return items;

        ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(string));
        BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);

        try {
            while (true) {
                items.add((ItemStack) dataInput.readObject());
            }
        } catch (IOException | ClassNotFoundException ignored) {
        }


        dataInput.close();

        return items;
    }

    @SneakyThrows
    public static String serializeItems(ItemStack... items) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream);
        for (ItemStack item : items)
            dataOutput.writeObject(item);
        dataOutput.close();
        return Base64Coder.encodeLines(outputStream.toByteArray());
    }
 
а в чем прикол base64 и как примерно это работает? На сколько я помню, это длинная строка из каких-то закодированных букав
Это те же биты да байты, просто перекодированные в символы, чтобы проще и более ёмко держать подобные данные. Глянь статью на Вики, там понятнее.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх