Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Плагин для сохранения инвентаря

Тема в разделе "Запросы на разработку плагинов", создана пользователем MOR_IV, 5 май 2014.

  1. Автор темы
    MOR_IV

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

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Сколько лазию по интернету, не могу найти плагин.
    Так вот что мне надо - по типу inventorysql
    только без БД

    Смысл в плагине:
    Заходим на сервер, плагин кидает команду загрузить инвентарь из файла "worldName"/Players/"nickName"
    Уходим на другой сервер "/switch "serverName", плагин кидает команду сохранения инвентаря в фаил "worldName"/Players/"nickName" и сразу при заходе опять загружает инвентарь.

    Должно работать в связке с BungeeCord и MCPC+ 1.6.4

    Можно обойтись стандартными баккитовскими эвентами при заходе, выходе с сервера.

    И т.д.

    inventorysql работает так же, только кидает все в mysql, а мне надо в фаил.

    Работа не сложная.

    Исходники https://github.com/ExoNetwork/InventorySQL/


    Цена в скайпе MOR_IV или по почте MOR_IV@mail.ru
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    MOR_IV

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

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Еще лучше если будет сохранять и загружать в другой папке на каталог выше сервера, которая настраивается в конфиге и по полному пути.

    Но это не обязательно. Можно обойтись командой ln -s
     
  4. CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Файлики наверное весит много будут, ведь нужно хранить не только id предметов, но и Durability lore name и т.д.
     
  5. Автор темы
    MOR_IV

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

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Мне надо просто вбить баккитовские эвенты стандартные. Весить будут столько-же сколько и весили. Просто плагин должен обязать при смене серва в bungeecord save/load перса. Вот и все.[DOUBLEPOST=1399374280,1399298601][/DOUBLEPOST]Может объяснил плохо. Попробую еще раз:
    Имеем плагин: https://github.com/ExoNetwork/InventorySQL/
    - Из него надо все убрать кроме команды /switch и эвентов на загрузку инвентаря при смене сервера
    - Эвент на сохранение инвентаря в mysql при команде /switch надо заменить на стандартный баккитовский эвент сохранения персонажа при релоге игрока
    - Эвент на загрузку персонажа из mysql при заходе игрока, надо заменить на стандартны баккитовский эвент загрузки персонажа при входе игрока.

    Все!
     
  6. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    ВСЁ? Ну сам тогда и пиши.
    Всё куда сложнее чем кажется.
    Как ты например собрался передавать файлы между машинами?
     
  7. Автор темы
    MOR_IV

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

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    ln -s
    Все на одной машине.
    Папка с пользователями 1на. В остальных местах ярлыки на эту папку.
    Оно так работает, единственное не хватает эвентов на сохранение и загрузку. При первом заходе, и просто вышел и зашел на другой серв - работает нормально без плагина. В случае с bungeeCord при первом разе ОК, остальные нет. =(
     
  8. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    У меня на хардлинках всё вполне работало таким методом.
    Так что проблемы несохранения данных ищите у себя, ибо в таком сучае плагин тут не сильно поможет.
     
  9. Автор темы
    MOR_IV

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

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Пишу плагин сам. Не могу найти класс с сохранением персонажа. Допустим когда выходит и заходит player, то инвентарь сохраняется/загружается. Как это сделать вручную?
    Не могу найти эвент сохранения персонажа в фаил.

    public void onJoin(PlayerJoinEvent event){
    event.getPlayer().loadData(); // Что тут написать?
    }[DOUBLEPOST=1400128089][/DOUBLEPOST]И кстати да - проще написать новый плагин.
     
    Последнее редактирование: 15 май 2014
  10. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    saveData()
     
    MOR_IV нравится это.
  11. Автор темы
    MOR_IV

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

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Вот как раз onJoin надо loadData как понимаю. А при смене сервера saveData. спс.[DOUBLEPOST=1400129113,1400129043][/DOUBLEPOST]забыл куда надо импортировать saveData и loadData ?[DOUBLEPOST=1400139319][/DOUBLEPOST]Нашел
     

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