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

Плагин [ADMIN]BkrReload v1.2 - Перезагрузи свои плагины! [1.5.2]

Тема в разделе "Релизы плагинов", создана пользователем BeYkeR, 9 июн 2013.

  1. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Т.е. если ввести /plload MyBestPlugin0.1.5.jar, то он загрузится?
     
  2. Автор темы
    BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    /plload MyBestPlugin0.1.5 без джара
     
  3. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Ну и нифига подобного. Пишу /plload ChatMan, меня посылают
    Unexpected exception while parsing console command "plload ChatMan"
    org.bukkit.command.CommandException: Unhandled exception executing command 'plload' in plugin BkrReload v1.1
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186)
    at org.bukkit.craftbukkit.v1_4_R1.CraftServer.dispatchCommand(CraftServer.java:549)
    at org.bukkit.craftbukkit.v1_4_R1.CraftServer.dispatchServerCommand(CraftServer.java:535)
    at ho.al(DedicatedServer.java:353)
    at ho.r(DedicatedServer.java:310)
    at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:746)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:633)
    at fy.run(ThreadMinecraftServer.java:16)
    Caused by: java.lang.NullPointerException
    at ykt.BeYkeRYkt.BkrReload.BkrReload.loadPlugin(BkrReload.java:231)
    at ykt.BeYkeRYkt.BkrReload.BkrReload.loadCommand(BkrReload.java:196)
    at ykt.BeYkeRYkt.BkrReload.BkrReload.onCommand(BkrReload.java:330)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    ... 8 more
     
    djavphu+mb073c нравится это.
  4. Автор темы
    BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Можно список плагинов, сборку CraftBukkit ?
     
  5. Dobrik

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

    Баллы:
    123
    Skype:
    dobrik18
    Реализуйте релоад опр. плагина с промежутком времени. будет отично. или подскажите существующий плагин.
     
  6. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Список плагинов ни к чему, craftbukkit 1.4.7 mcpc+
     
    ПриветОтМиднайта нравится это.
  7. Автор темы
    BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Не знаю почему, но плагин у меня работает и на простом и на mcpc+
    Обновление v1.2:
    - Новая команда : /pltime [плагин] [цифры] [sec/min/hour]
     
    Сникерсни нравится это.
  8. Taras

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

    Баллы:
    103
    Наверное Den_abr закидывает плагин ПОСЛЕ запуска баккита, и хотел бы запустить его не останавливая весь сервер.
     
  9. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Да, так и есть. Правда такое случилось только с ЧятМеном
     
  10. Taras

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

    Баллы:
    103
    @Den_Abr, а такое возможно чисто на api баккита реализовать? Мне кажется что баккит только при запуске сканирует папку на наличие плагинов и запускает их. Тоесть без велосипеда никак?!
     
  11. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Код:
    getServer().getPluginManager().loadPlugin(File);
    Всё реализуется
     
    Taras нравится это.
  12. Live_one

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

    Баллы:
    88
    Skype:
    mc_nakaut
    Имя в Minecraft:
    Live_one
    Очень хороший плагин! Лайк за старания.
    Поставил на сервер :3
     
  13. Gamalei

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

    Баллы:
    68

    ахаха /reload plagin

    не неслышал
     
  14. ensirius

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

    Баллы:
    123
    Утечка памяти от reload? Начитались вы ребят статей от опытных гуру программистов. GC уберет не используемые остатки старого плагина.
     
  15. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    К сожалению разработчики плагинов зачастую не утруждают себя выключить свои таски и потоки при выключении плагина.
    Уже мусор, причём потенциально опасный.
    Далее класслоадер плагина не уничтожается, что тоже мусор (правда 2 плагина умеющие перезагружать плагины таки очищают класслоадер.)

    /reload от баккита тоже не зачищает старые класслоадеры. И вообще много чего не зачищает. Как так рас****яйски можно относиться к подгрузке плагинов я не знаю, но это факт.
     
  16. ensirius

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

    Баллы:
    123
    С чего это вдруг он не удаляется? Вплане, как вы себе представляете процесс очистки класслодера. За тасками следить должен Баккит, а потоки которые пладим мы сами, сами и должны закрывать.
    http://www.tutorialspoint.com/java/util/resourcebundle_clearcache_loader.htm

    Кхм.
     
  17. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    При загрузке плагинов для каждого плагина создаётся свой PluginClassLoader (extends URLClassLoader), который держит референсы классов плагинов, ну и при выключении плагина этот класслоадер не отпускает локи файлов (Windows) а так же не выгружается сам (из-за того что в каком-то месте держится ссылка на этот класслоадер и я запарился это место искать.).
    Он конечно ничего не делает, но это мусор который никода не соберёт GC.
     
  18. ensirius

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

    Баллы:
    123
    он не держит их в локах. Я спокойно заменяю файлы нового плагина. Более того, эта загрузка нужна 1 раз всего.

    https://github.com/Ensemplix/enServer-API/blob/master/src/ru/ensemplix/plugin/PluginManager.java#L38
     
  19. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Попробовал заменить на windows - фейл.
    На никсах лока никогда не было.
     
  20. ensirius

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

    Баллы:
    123
    Наверно в этом дело. Интересно. В любом случаи, это привет разрабам баккита. Захотят - сделают. Но кричать, что это не правильно и вот нам так сказали, не правильно.
     

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