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

Идея apt-get для ведра

Тема в разделе "Запросы на разработку плагинов", создана пользователем Dereku, 10 апр 2013.

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

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Думая над тем, как будет серверу далеко от меня, пришла в голову мысль - сделать загрузку нужного нам контента в папку plugins. В нашем случае загрузку плагинов с dev.bukkit.org. Будет вообще щщщикарно, если это чудо сможет удалять закачанные плагины :)

    Требуется: Уметь загружать и удалять файлы, распаковывать zip архивы
    Примерный синтаксис команды:
    Загрузки
    Удаления:
    Только плагина:
    Плагина и его рабочей папки:
     
  2. Хостинг MineCraft
    <
  3. vvswarhead

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

    Баллы:
    173
    Идея хорошая, но как это реализовать... Лол поднимаем репозиторий с рпм пакетами! Добавляем в буккит компилятор для сборки исходников!

    По идее, можно написать простой плагин который закидывает в папку update все что надо, или plugins - если не обновление а установка, запускает небольшой скипт перезагрузки сервера
     
  4. vvswarhead

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

    Баллы:
    173
    Возникает вопрос о конфигах - ибо дефолтные не всегда нужны и работают так как надо, + не думаю, что ребята с dev.bukkit.org будут перепиливать сайт, для того, чтобы сделать из него репозиторий

    Если говорить о синтаксисисе команды то логичнее что то созвучное со словами bukkit или plugins
     
  5. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Зачем делать репозиторий? Он для скачивания через apt-get и так удобен.
    пффф.... говно вопрос :)
     
  6. vvswarhead

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

    Баллы:
    173

    http://dev.bukkit.org/media/files/688/357/Orebfuscator.jar - тогда надо делать тулзу для работы с такими ссылками
     
  7. vvswarhead

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

    Баллы:
    173
    я попробую накатать небольшую тулзу ради теста
     
    RVXman нравится это.
  8. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Если тупо указывать ссылку до файла при вводе команды, то плагин получится 30 строк работы
     
  9. vvswarhead

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

    Баллы:
    173
    я бы послушал мнение java кодеров, а не петросянов... реально ли реализовать как плагин ?
     
  10. SmokeD

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

    Баллы:
    103
    Имя в Minecraft:
    SmokeD
    Написать свою ось на ядре Linux ?! Ради трех команд? Это как сделать свою Винду, из-за того что иконка на рабочем столе не такая.

    А, если по теме - то не обязательно форкать все плагины, там основных штук 100-200, другие попросту не нужны. Слить 200 плагинов - фигня вопрос, но все усложняют зависимости плагинов. Например, для функционирования NoLagg нужен BKCommonLib, для работы iConomy, и других нужен Vault, и.т.д... Это реализовать уже сложнее...
     
  11. vvswarhead

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

    Баллы:
    173
    можно переложить поиск зависимостей на админов - пусть сами их ищут
    с точки зрения java - возможно исполнить некий .sh .bat по команде от плагина ?
     
  12. SmokeD

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

    Баллы:
    103
    Имя в Minecraft:
    SmokeD
    Я не Java кодер, но некоторые познания есть. Реализовать такой плагин - не самое трудное занятие. Допустим, есть своеобразный фронт-енд в виде плагина "AptBukkit". Он даёт возможность прописывать комманды:
    Код:
    /apt-get install %pluginName%  #всем понятно
    /apt-get update #Обновить возможные плагины
    /apt-get remove %pluginName% #Удалить плагин (конфиги сохраняются)
    /apt-get purge %pluginName% #Удалить конфиги плагина
    К примеру, пользователь хочет установить Orebusficator:

    Код:
    [USER]Admin: /apt-get install Orebusficator
    [SERV]Console: Будет загружен файл Orbusficator.jar, размером 1.2Mb
    [SERV]Console: Зависимости отсутствуют. Введите /apt-get accept для установки
    [USER]Admin: /apt-get accept
    [SERV]Console: Начинаем загрузку с fork.rubukkit.org
    [SERV]Console: Загрузка завершена, плагин установлен в папку plugins
    [SERV]Console: Введите /reload для завершения установки
    [USER]Admin: /reload
     
    //Здесь ребутится сервер
     
     
    [SERV]Console: Установка плагина Orebusficator завершена!
    

    Бэкенд будет состоять из базы данных со всеми плагинами, ссылками на них и зависимостями + php скрипт, который принимает и отдаёт инфу плагину.

    Теперь посмотрим установку Orebusficator с учетом всех действий:
    Зеленые строки не отображаются. Они для лучшего понимания моей идеи.
    [PLGN]AptRB - плагин.
    [BACK]backend - бэкенд.

    [USER]Admin: /apt-get install Orebusficator
    [PLGN]AptRB: Выполняю запрос - fork.rubukkit.org?a=install&plugin=Orebusficator
    [PLGN]AptRB: Жду ответа...
    [BACK]backend: Принял запрос, ищу отметку в БД...
    [BACK]backend: Плагин найден! Обработка зависимостей...
    [BACK]backend: Зависимостей не найдено. Формирую ответ: fork.rubukkit.org?addit=none&url=http://fork.rubukkit.org/plugins/admin/Orebusficator.jar?size=1240
    [BACK]backend: Ответ выведен на страницу.
    [PLGN]AptRB: Ответ обнаружен. Парсинг...
    [PLGN]AptRB: Плагин найден. Ссылка есть, размер файла - 1240kb
    [PLGN]AptRB: Оповещаю пользователя и запрашиваю разрешение на установку.
    [SERV]Console: Будет загружен файл Orbusficator.jar, размером 1.2Mb
    [SERV]Console: Зависимости отсутствуют. Введите /apt-get accept для установки
    [PLGN]AptRB: Жду разрешение на установку...
    [USER]Admin: /apt-get accept
    [PLGN]AptRB: Получено разрешение! Начинаю загрузку файла Orebusficator.jar в plugins
    [SERV]Console: Начинаем загрузку с fork.rubukkit.org
    [SERV]Console: Загрузка завершена, плагин установлен в папку plugins
    [PLGN]AptRB: Файл загружен. Ждем перезагрузку...
    [SERV]Console: Введите /reload для завершения установки
    [USER]Admin: /reload

    //Здесь ребутится сервер

    [SERV]Console: Установка плагина Orebusficator завершена!
     
  13. vvswarhead

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

    Баллы:
    173
    теперь нужен человек который кодит на яве ))
     
  14. SmokeD

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

    Баллы:
    103
    Имя в Minecraft:
    SmokeD
    В принципе, можно написать 5-6 ников, и готово... Но, вопрос в том, захочет-ли кто-то это делать. Скажем, бэкенд могу сделать я. Останется сам плагин.
     
  15. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Ох епт, уже ось собираются делать. От плагина нужно тупо качать файлы и разархивировать архивы. По возможности чтобы ещё и удалял. И в примере я взял ссыль с дэвведра для наглядности, мб мой плагинчик на delete-your-code.heroku.com/New Folder/New Folder/New Folder/New Folder/New Folder/New Folder/New Folder/New Folder/New Folder/New Folder/Armamotherfuckinggeddonlink/plugin.jar ?
    и всего лишь 3 команды. Зачем усложнять себе работу?)
     
  16. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Тоесть плагин должен просто уметь качать файл по ссылке(разархивировать и удалять)?
    Если да, то я даже могу его сделать завтра
     
  17. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Ну да. Большего от него не требуется.
    UPD: Разумеется только с правами - не желательно, чтобы игрок взял и удалил, к примеру, тот же Orebfuscator)
     
  18. SmokeD

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

    Баллы:
    103
    Имя в Minecraft:
    SmokeD
    Я просто расписал идею для вселенскогосупермегагиперкрутогоплагина который делает тоже самое...
     
  19. Автор темы
    Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Вроде бэ в первом посте она расписана. Делать репы - не вариант, т.к. плагин должен знать, откуда качать (даже dev версии - я любитель кидать на сервер всякую непроверенную фигню), а это файлик со 100500 ссылками. Правда сама идея автоматизации понравилась, но все-таки для того, кто будет писать, немного слишком мудренно. А так же для кодеров - http://delete-your-code.heroku.com (управлять стрелками right left)
     
  20. Jampire

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

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Замечательная идея, хотел уже писать что-то подобное. Таким образом реализовать обновление своих плагинов на серверах где они используются.
     
  21. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Ухты Я уже закончил плагин :/
     

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