Я пытаюсь воссоздать систему плагинов Minecraft на Java, но на C++. Я знаю, что я мог бы просто связать полностью открытый PluginManagerExample с плагинами и предоставить им заголовок и файл .lib.
Однако на более позднем этапе производства я хочу иметь четко разделенные проекты. Если пойти по этому пути, мне потребуется скопировать и вставить файлы заголовков и файлы .lib для отладки и выпуска в репозиторий API плагинов каждый раз, когда я выпускаю новую версию. Я не уверен, является ли это предполагаемым или рекомендуемым подходом.
Примечание: я создал свой собственный мод и покончил с ним, но теперь многие люди попросили меня предоставить API. Я хотел бы воссоздать что-то похожее на Spigot, только на C++.
Поэтому у меня есть несколько вопросов:
- Как лучше всего предоставить плагинам доступ к моему API?
Я нашел два возможных подхода, но второй мне не нравится, и с первым я сейчас застрял:
Предоставьте заголовки и .lib. - После создания плагина предоставьте ему PluginContext, в котором хранятся адреса всех функций API в стиле C.
[*]Является ли существующий код PluginManager хотя бы достойным?
Я знаю, что класс Singleton не нужен — это всего лишь остаток от предыдущих экспериментов. Меня также не устраивают возвращаемые значения статуса, особенно в функциях unload_all и reload_all.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ally-the-a
Мобильная версия