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

Помогите Как перезагрузить карту?

Тема в разделе "Разработка плагинов для новичков", создана пользователем NikZanyat, 15 июн 2019.

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

    NikZanyat Ньюби

    Баллы:
    1
    Имя в Minecraft:
    NikZanyat
    Как после игры в скайварс или подобные режимы восстановить карту?
     
  2. alexandrage

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

    Баллы:
    173
    копи пасте.
     
  3. Автор темы
    NikZanyat

    NikZanyat Ньюби

    Баллы:
    1
    Имя в Minecraft:
    NikZanyat
    автоматически
     
  4. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    1. Кикнуть всех игроков с текущего мира
    2. Отгрузить текущий мир
    3. Удалить его
    4. Скопировать оригинал
    5. Загрузить мир
     
  5. alexandrage

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

    Баллы:
    173
    :good:
     
  6. alexandrage

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

    Баллы:
    173
    А ты хотел ручками?
     
  7. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Он наверное подумал что ты предлагаешь ему копипастить ручками)
     
  8. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ну и через 20-30 таких операций у тебя сервер в мемори лик улетит, норм
     
  9. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    С чего бы?
    И какие у тебя предложения?
     
  10. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ну потому, что баккит полностью не очищает мир после вызова Bukkit#unloadWorld, коммон проблема, даже в ишью трекере моджанга есть. Надо кучу всего вручную дочищать
     
  11. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Это уже давно пофиксили, скорее он:
    https://github.com/roblabla/Rob-Spi...ches/0036-Plug-World-Unload-Memory-Leak.patch
    Как минимум в Spigot 1.12.2 таких проблем нет, лично чекнул с простейшим плагином.
    А вот если ТС юзает 1.8 или там похуже, то земля ему пухом :)
     
  12. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ну тот патч что ты скинул фиксит всего лишь один лик связанный с редстоуном да, но их там куда больше. С новыми версиями их меньше, но все равно есть, в 1.12.2 также есть
     
  13. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Есть готовый код или хотя бы список того, что нужно чистить?
    Есть ещё всякие MultiWorld и Multiverse. Там нормально отгружает?
     
  14. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Специально вчера взял оч простой плагин (World Loader) на 1.12.2 и где то раз 20 анлоаднул и лоаднул левый мир. До и после эксперимента памяти было примерно то же ~160 МБ (до каждой проверки шел GC). Так что как говорили выше за 30 раз никуда сервер не уйдет. Где же тогда утечка?
     
  15. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ну потому что ты скорее всего релоадил без игроков и без задержек. А с игроками хотя бы в 10 штук и миром в 10 минут будут утечки
    Multiworld и multiverse хз, не юзал. А так там много позиций че чистить надо, раньше писал, щас хз уже где код. Ну а если лень в этом разбираться, то самое простое это после 20-30 перезагрузок мира реатартать сам сервер
     
  16. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Утечек стало гораздо меньше в самом кране. Но всё ещё остаётся главная - last damage cause в бакките, который может тащить за собой огромную цепочку энтитей, которые и будут тащить ссылки на мир.
     
  17. ilya50

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

    Баллы:
    76
    Вообще можно сделать как в плагине bedwars 1058. После игры анлоадить мир без сохранения, и снова его загружать.
     
  18. alexandrage

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

    Баллы:
    173
    И чем это поможет от утечек памяти?
     
  19. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    В данном случае мир не перезагружается, перезагружаются только чанки.
     
  20. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    IMHO, самый лёгкий способ, всё-таки, остановить/заменить мир/запустить сервер.
     

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