Представление о проекте SphereWeb

  • Автор темы Автор темы Logan22
  • Дата начала Дата начала

Logan22

Гений мысли
Проверенный
Победитель в номинации 2024
Знаток Lineage2
Орден Почета
Мастер реакций
Любитель реакций
Знаток письма
Медаль Благодарности
Старожил I степени
Медаль за активность на Форуме
За заслуги перед форумом
Преподаватель
За веру и верность форуму
Сообщения
1 658
Розыгрыши
0
Решения
3
Репутация
1 762
Реакции
1 519
Баллы
1 893
Доброго времени суток.
Хочу представить новый и бесплатный веб-движок (CMS / UCP) с богатым набором возможностей и отрытым исходным кодом для управления JAVA серверами.
Вероятно, моя работа это лучшее веб решение что есть, из числа бесплатных и платного (за исключением (визуально, не пользовался) - wizardcp).
Разработка не прекращена, она продолжается постоянно практически каждый день.

Прежде чем я опишу в подробностях возможности, помните, что я делал как лучше мне, мне - как игроку Lineage ][ .

Теперь возможности ЛК и нюансы.
Две возможности регистрации.
1. Без предварительной регистрации в ЛК, в этом случае, с регистрацией игрового аккаунта, зарегистрируется и профиль ЛК.
2. Регистрация из своего профиля в ЛК.

Быстрая и простая модальная панель регистрации, где у пользователя есть возможность не скрывать свой пароль от себя же, это удобно, если у пользователя много аккаунтов и он часто путешествует по серверам.
Иногда сложно придумать логин и пароль, по этому есть автогенерация логин и пароля.
1687901652420.png

Отображается зарегистрированные аккаунты так.
Как видите пароль, который не был скрыт, доступен для просмотра.
Его можно будет скрыть в любое время.
Ранее скрытый пароль сделать просматриваемым - запрещено.
1687902703510.png

Статистику (оно же и рейтинг) я сделал достаточно богатую.
PvP / PK / Кланы / Конкретный Клан / Замки / Герои / Время игры персонажей / Заблокированные / По классам / Просмотр информации персонажей.
1687903612873.jpeg
image.psd (4).jpg
Некоторые персонажи в статистики, вместо имени, имеют кнопку с именем.
Эта функция, которая позволит просматривать информацию о персонаже.
По умолчанию такая возможность недоступна, однако, каждый пользователь может включить для своего персонажа.
image.psd (1).jpg

Возможность разрешить/запретить доступ к просмотру данных персонажа посторонним пользователям.
image.psd (3).jpg

Самый неопределенный для меня раздел, я так и не решил как сделать лучше, проще и удобнее, и делал уже несколько вариантов. Пока остановился на таком.

Панель для пожертвования выглядит так.
На сайте своя валюта Донат Бонусы или Донат Очки (как Вам угодно), за пожертвование пользователь получает их, и может в разделе "Магазин" купить что-то за них.
Пользователь нажимает купить, вписывает ник своего персонажа и предмет отправляется персонажу, донат бонусы списываются.

Это раздел, где пользователь может создать публичную тему, описать проблему, прикрепить 3 (5) изображений, ввести переписку с администратором, добавлять сообщения.
В тикет не могут писать посторонние пользователи, только администратор и автор тикета.

Пользователь может распространить личную ссылку на регистрацию, и за привлеченного пользователя получать Донат Бонус.
По умолчанию, для того чтоб пользователю засчиталось привлечения игрока, игрок должен соответствовать ряду требований, по умолчанию это 3 час. игры, 80 уровень, 1 PvP, 1 PK - изменяется в конфиге.
1687914381914.png

Для динамики на сайте, чтоб на сайте было что-то новое и игроки могли хвастаться, я сделал систему галерей.
Пользователь может загружать скриншоты игры (кол-во ограничено), они будут опубликованы на главной страницы.
Публиковаться скриншоты будут только после одобрения администратором.


Администратор может создавать страницы двух типов, обычные страницы и новостные.
Администратор может включать/отключать возможность комментирования страницы пользователями.
Так и выбирать язык новости. Новости для русского языка, не будет выводиться тем у кого включен англ. язык, для них выводится англ. новости/страницы.

Давно хотели себе, чтоб чат из игры выводился на сайте в реал тайме?
Я решил что это очень интересно. И сделал.
1687905871142.png
По умолчанию на сайте выводится только чат GLOBAL / TRADE / обычный чат.
Чат пати, клан и прочие, выводятся только в админке, возможен поиск по сообщениям/игроку.
1687906003401.png
Следите за разделом, позже будет информация как это сделать.

С общими представлениями хватит, перейдем поверхностно к техническим аспектам.
Вы можете создавать неограниченное кол-во языковых пакетов.
Языковой пакет находится и имеет название ru.php или en.php , вы можете дополнить, просто создав новый файл с названием языка по стандарту ISO 639-1 и сделать в нем свой перевод.
Я не знаю сколько в будущем будет языковых пакетов, по этому заблаговременно сделал в конфе возможность выбирать какие языковые пакеты использовать.
1687908427116.png

Появилась такая вещь как коллекции, это PHP класс, который просто возвращает строку SQL запроса, в них общий стандарт запросов к каждой сборке. На данный момент, Вам нужно знать что тут (\src\component\base\source) реализуются запросы к БД. На данный момент там реализована работа со сборками L2jEternity, L2jOpen, L2jFirstTeam (267, 268, 271, 273), L2jLucera3 (746), L2jMobiusClassic (338, 362, 388, 414, 418).

После установки, вам может понадобится зарегистрировать свой сервер.
Кол-во серверов, которые могут работать с SphereWeb неограниченно.
В админке Сервер->Настройки->Добавить и заполняем все данные.
Тут стоит отметить, что после выбора версии игры, появится выше упомянутая коллекция запроса исходя из протокола версии игры.
1687907487613.png
После выбора хроник, будет возможна выборка коллекций.
1687907539894.png
...
1687907583718.png 1687907608420.png
Думаю с этим всё ясно, всё другое имеет однозначное описание.

Все данные, которые получаем из базы, будь то статистика, статистика персонажа или игровой чат-сервера... сохраняются в файл JSON формат и при повторном обращение к страницы, мы возвращаем сохраненные ранее результаты.
Время кэширования можно установить гибко.
1687907969043.png

Сервера, которые мы зарегистрировали в системе, выводятся в боковой панели.
На этой панели выводится ссылка на описание сервера (если указано в настройках), онлайн сервера, хроники, работает логин/гейм сервер, и ссылка на страницу обновления сервера (на данный момент не в публичном доступе, но кому интересно ->
).
Данные из этой панели тоже кэшируются.

Если мы хотим пользователя наградить определенным бонусным предметом, который пользователь отправит себе на персонажа, условно за розыгрыш или за голосование, красивые глазки...
Тогда мы записываем в таблицу bonus данные о подарке.
1687910914528.png
После этого, у пользователя появится новый значок сверху
1687910944485.png
При нажатии появится панель с бонусами.
1687910971199.png
При нажатии, предложит отправить на персонажа (это обязательно должен быть один из персонажей аккаунтов пользователя)
1687911026645.png

в файле можно отключить (false) или включить (true) определенные опции.

Эта информация про ту страницу, которую пользователь видит, когда заходит на Ваш сайт:
По умолчанию, шаблон используется только на главной страницы, больше нет страниц где будет использоваться Ваш шаблон.
Шаблоны можно сильно кастомизировать.
Создав в шаблоне файл route.php и указывать какие страницы роутера Вам нужны и какой html шаблон должен открываться.
<?php
$pages = [
'/download' => 'download.html',
'/about' => 'about.html',
];
В данном случае, при посещении страницы example.com/download будет открыта download.html страница.
Таким образом, шаблон абсолютно не привязывается к зарезервированным роутерам движка.
Аналогично обстоят дела и с языком, Вы можете в шаблоне определить свои языки и свой перевод создав в нем файл lang.php
<?php
return [
'ru' => [
'home' => 'Главная',
'important_announcements' => 'ВАЖНЫЕ ОБЪЯВЛЕНИЯ',
'project_streamers' => 'Стримеры проекта',
],
'en' => [
'home' => 'home',
'important_announcements' => 'IMPORTANT ANNOUNCEMENTS',
'project_streamers' => 'Project streamers',
],
];
Синтексис в шаблонах ->

За одно и упомяну, можно добавить в шаблон файл readme.json с описанием автора, скриншота шаблона, время создания, контактных данных разработчика шаблона.
Тогда у админа, при выборе шаблона будет информация.
1687913557130.png

Я дал Вам поверхностное описание, теперь я хочу рассказать о минусах, которые есть.

Так как кода написано там много, со временем образовался код, который не используется и никак не доходят руки удалить его, рефакторинговать.
Ещё к минусам я отношу - верблюжьим и змеиным регистром написан код.
Много где отсутствует комментарии / в некоторых местах (если ещё осталось) комментарии "прыгнули" в другие места, не над функцией (спасибо phpStorm).
Много есть кода, который можно улучшить, переписать более лаконично.
Мне не нравится, как я использую модули, без однозначного определения, просто обращаясь через неймспейс модуля.
Встречаются баги: без этого никуда, к тому же я часто что-то дорабатываю/делаю, но к счастью, я их моментально фиксю, как только получаю информацию.
Час от часу встречаются в шаблонах текст, без перевода на разные языки. Поправим.
Много где верстку нужно улучшить, доработать, поправить и сделать более красивее.

Необходимо PHP 8.2 , если Вы решите установить ниже, то работать не будет, так как я по мере устаревания переписываю старый код используя последние сахар новых версий.


Разработка бесплатная, публикуется на моем гитхаб
Вы можете изменять код под себя, или дорабатывать под себя, фиксить.
Почему бесплатно? - изначально я не планировал делать CMS/ЛК/UCP... а мне нужно было сделать просто веб-интерфейс для лаунчера, но я увлекся и продолжил делать.

Если у Вас есть возможность, установите через git .
Если нет, перейдите по ссылке и загрузите
1687911315721.png
Архив распакуйте, и перейдите на главную страницу сайта, если всё сработало, у вас откроется установщик, следуйте инструкции.
Если на этапе установки, произошел сбой, перестало грузится и т.д. отпишите мне в телеграмм, чтоб я ознакомился с проблемой и решил её.

Будет больше и подробнее как пользоваться... я описал тему на лету, не готовился. Следите за разделом, скоро будет больше информации.

Есть в планах сделать взаимосвязь с телеграммом.
Есть в планах сделать розыгрыши с выдачей призов, к примеру в виде бонус-кода, где пользователь введет код и получит рандомный приз.
Сделать лаунчер в ЛК, он готов, работает, но требуется доработки нюансов.
Появятся уведомления, к примеру кто-то написал в тикете, чтоб админу приходила информация об этом.

.... Я буду всегда рад Вашим идеям, а ещё лучше помощи , одному сложно, и делается оч долго.


Список новых доработок: Представление о проекте SphereWeb
 
Последнее редактирование:
В сфере2 бесплатная лицензия автоматически? Сфера 1 не обновляется патчами безопасности?
Сфера 1 не обновляется и разработка ещё летом завершилась, а репозиторий добавлен в архив.

На её базе дорабатывается и улучшается 2 версия Сферы.
Разница между первой и второй сферой достаточно ощутимая.
Сфера вторая развивается как коммерческий продукт и на данный момент цена низкая, 12 баксов в месяц, при условии, что можно пополнить баланс только на тот период когда нужно, и никаких ограничений не будет, кроме как ограничение на кол-во регистраций аккаунта и отдельные платные плагины, типа лаунчера, рулетки.
На Сферу обновления выходят регулярно и автоматически загружаются и обновляются на сайтах пользователей сферы, с фиксами, новыми функционалом, рефакторингом и т.д., по пару раз в неделю.
 

Сфера 1 не обновляется и разработка ещё летом завершилась, а репозиторий добавлен в архив.

На её базе дорабатывается и улучшается 2 версия Сферы.
Разница между первой и второй сферой достаточно ощутимая.
Сфера вторая развивается как коммерческий продукт и на данный момент цена низкая, 12 баксов в месяц, при условии, что можно пополнить баланс только на тот период когда нужно, и никаких ограничений не будет, кроме как ограничение на кол-во регистраций аккаунта и отдельные платные плагины, типа лаунчера, рулетки.
На Сферу обновления выходят регулярно и автоматически загружаются и обновляются на сайтах пользователей сферы, с фиксами, новыми функционалом, рефакторингом и т.д., по пару раз в неделю.
А со второй так не будет как с первой ?)
 
В сфере2 бесплатная лицензия автоматически? Сфера 1 не обновляется патчами безопасности?
Сфера 1 вообще ни как не обновляется, чисто брать и пилить самому все.
 
как на счёт дюпов ? и шеллов ?

хто-то тестил уже на лайф проектах ?
 
Я так понял СтрессВеб это Логана была обвязка ? Бо Логан открыто писал на соседнем форуме, что ломал тех, кто юзал её без лицензии.
Если это так, то каковы гарантии сейчас, что не дёрнется рука ? когда бекенд находится непосредственно у разработчика, а в проект влито 2 млн ?
 
Я так понял СтрессВеб это Логана была обвязка ? Бо Логан открыто писал на соседнем форуме, что ломал тех, кто юзал её без лицензии.
Если это так, то каковы гарантии сейчас, что не дёрнется рука ? когда бекенд находится непосредственно у разработчика, а в проект влито 2 млн ?
Предположение твое полная чушь, про взлом не слышал, но предположу что взлому подвергались именно пользователи св на нуленной версии как раз из-за присутствия дыр в ней.
 
Я так понял СтрессВеб это Логана была обвязка ? Бо Логан открыто писал на соседнем форуме, что ломал тех, кто юзал её без лицензии.
Если это так, то каковы гарантии сейчас, что не дёрнется рука ? когда бекенд находится непосредственно у разработчика, а в проект влито 2 млн ?
Стресс ко мне не имеет никакого отношения, в свое время распосранялась версия стресс веб на шмакси где было много багов с уязвимостью, а если ещё в придачу шел на сервере форумах IPB и можно было даже шелл залить, а дальше уже делать что угодно. У меня даже на скрытое видео на Ютьюбе осталось, где я так веселился 😂.
 
Logan22 Вопрос по тех. части =)
Как ты реализовал "Указания пути к клиенту игры" в бразуере? вот ссылка с похожим вопросом


У тебя же обновления файлов и прочее все через бразуер указывается?! Если да, было бы интересно узнать метод реализации, столкнулся с такой проблемой на своем проекте =)
 
Logan22 Вопрос по тех. части =)
Как ты реализовал "Указания пути к клиенту игры" в бразуере? вот ссылка с похожим вопросом


У тебя же обновления файлов и прочее все через бразуер указывается?! Если да, было бы интересно узнать метод реализации, столкнулся с такой проблемой на своем проекте =)
 
Logan22 Вопрос по тех. части =)
Как ты реализовал "Указания пути к клиенту игры" в бразуере? вот ссылка с похожим вопросом


У тебя же обновления файлов и прочее все через бразуер указывается?! Если да, было бы интересно узнать метод реализации, столкнулся с такой проблемой на своем проекте =)
Да, через браузер все указывается и загружается, и в том вопросе ответ правильно дан был, что браузеры в целях безопасности не дают возможности получать список дисков, папок, файлов, скрытых папок и т.д.
Магия тут достаточно простая, хотя может выглядит как магия высокого уровня.
Метод достаточно тривиален, браузер используем как интерфейс лаунчера, а сам лаунчер просто передает данные в браузер или с браузера в лаунчер.
 
Да, через браузер все указывается и загружается, и в том вопросе ответ правильно дан был, что браузеры в целях безопасности не дают возможности получать список дисков, папок, файлов, скрытых папок и т.д.
Магия тут достаточно простая, хотя может выглядит как магия высокого уровня.
Метод достаточно тривиален, браузер используем как интерфейс лаунчера, а сам лаунчер просто передает данные в браузер или с браузера в лаунчер.
Спасибо, в принципе минут через 10 после вопроса, я так и понял, поняв что средствами бразуера это сделать практически невозможно, то я просто запросом с браузера к лаунчеру (серверу взаимодействия с веб приложением) отправил запрос на открытие папки средствами самой windows. в моем случае библой (tkinter)

Да и в целом мне такая идея с (веб лаунчером) показалось достаточно интересной, единственное что меня смущает, так это то что юзеру в конечном итоге все равно нужно устанавливать лаунчер и что самое не такое, так это то что этот лаунчер в придачу будет разворачиваться как сервер на отдельном порту у каждого чувака.

и тут не важно в фоновом режиме будет работать эта прокладка или в открытом, сам факт установки, увы неизбежен, как и то что это уже полноценный сервер а не просто лаунчер который отправляет запросы к API
 
единственное что меня смущает, так это то что юзеру в конечном итоге все равно нужно устанавливать лаунчер
Разница есть. И она вот в чём.
Юзеру понадобится лишь 1 раз его запустить, и больше загружать лаунчер не нужно будет, будет работать для любого сервера Сферы. Вот это конечный итог. Так было задумано, так было и реализовано.
А то что кого-то смущает, это его проблемы.

так это то что этот лаунчер в придачу будет разворачиваться как сервер на отдельном порту у каждого чувака.
Будут минусы такой придачи или лишь бы что-то написать?
Если будут, то я готов выслушать этот минус в контексте к примеру GitHub (или ты не знал что github для windows делает тоже самое ?), или JetBrains, Докер, TeamViewer, AnyDesk...........

и тут не важно в фоновом режиме будет работать эта прокладка или в открытом, сам факт установки, увы неизбежен, как и то что это уже полноценный сервер а не просто лаунчер который отправляет запросы к API
Я не пойму, к чему твое сообщение, просто набор рандомных бессвязных слов.

Конечный итог 1: Лаунчер достаточно 1 раз запустить пользоватлю и забыть про него, он вызывается из браузера, как открытие чата телеги из браузера.
Конечный итог 2: разворачивает необходимый для обработки подключений сервер для работы вебсокета и это не мешает ему выполнять свои задачи быстрее всех других лаунчеров.
Конечный итог 3: Размер скомпилированного приложения, в котором всё что необходимо, включая сервер для обработки запросов, необходые методы хэширования и сжатия файлов, обработка создания патча и полно остального, - 8 мб, с UPX 3 мегабайта.
Конечный итог 4: Пользователю не нужно иметь 100500 лаунчеров, достаточно одного.
Конечный итог 5: Пользователю не нужно знать как и что работает под капотом, ему это не интересно.
Конечный итог 6: Антивирусники ничего не имеют против моего подхода.
 
Разница есть. И она вот в чём.
Юзеру понадобится лишь 1 раз его запустить, и больше загружать лаунчер не нужно будет, будет работать для любого сервера Сферы. Вот это конечный итог. Так было задумано, так было и реализовано.
А то что кого-то смущает, это его проблемы.


Будут минусы такой придачи или лишь бы что-то написать?
Если будут, то я готов выслушать этот минус в контексте к примеру GitHub (или ты не знал что github для windows делает тоже самое ?), или JetBrains, Докер, TeamViewer, AnyDesk...........


Я не пойму, к чему твое сообщение, просто набор рандомных бессвязных слов.

Конечный итог 1: Лаунчер достаточно 1 раз запустить пользоватлю и забыть про него, он вызывается из браузера, как открытие чата телеги из браузера.
Конечный итог 2: разворачивает необходимый для обработки подключений сервер для работы вебсокета и это не мешает ему выполнять свои задачи быстрее всех других лаунчеров.
Конечный итог 3: Размер скомпилированного приложения, в котором всё что необходимо, включая сервер для обработки запросов, необходые методы хэширования и сжатия файлов, обработка создания патча и полно остального, - 8 мб, с UPX 3 мегабайта.
Конечный итог 4: Пользователю не нужно иметь 100500 лаунчеров, достаточно одного.
Конечный итог 5: Пользователю не нужно знать как и что работает под капотом, ему это не интересно.
Конечный итог 6: Антивирусники ничего не имеют против моего подхода.
Почему ты воспринимаешь мои слова как критику? Я вообще не имел ввиду под этим твой продукт!

Я высказался про сам способ реализации такой вещи в принципе как (веб лаунчер) а не про "сферу" которую ты продвигаешь.

я зашел в данный топик потому что я сам делаю что то похожее, для своего личного сервера который никак не связан с л2, и потому что у меня возник вопрос который касался реализации выбора "директории игры"

Будь проще, и не воспринимай все на свой счет друган, ну или прими припараты если не воспринимаешь инфу должным образом)

на всякий случай проясню, в моем крайнем сообщении, была благодарность за твой ответ по поводу "директории" и мое общее мнение про сам способ реализации всего этого дела =)
 
Почему ты воспринимаешь мои слова как критику? Я вообще не имел ввиду под этим твой продукт!

Я высказался про сам способ реализации такой вещи в принципе как (веб лаунчер) а не про "сферу" которую ты продвигаешь.

я зашел в данный топик потому что я сам делаю что то похожее, для своего личного сервера который никак не связан с л2, и потому что у меня возник вопрос который касался реализации выбора "директории игры"

Будь проще, и не воспринимай все на свой счет друган, ну или прими припараты если не воспринимаешь инфу должным образом)
Я твои слова воспринял как фейспалм.
Ты написал кучу текста, где 0 полезной информации, какие-то свои личные умозаключения, сам порасуждал что является прокладкой, а что нет, что является полноценным сервером, а что лаунчером, что там тебя смущает, а что не смущает.
Ну коммон, это всё лишнее, которое не относится ни к теме, ни к лаунчеру.
 
Я твои слова воспринял как фейспалм.
Ты написал кучу текста, где 0 полезной информации, какие-то свои личные умозаключения, сам порасуждал что является прокладкой, а что нет, что является полноценным сервером, а что лаунчером, что там тебя смущает, а что не смущает.
Ну коммон, это всё лишнее, которое не относится ни к теме, ни к лаунчеру.
Хорошо! Ты абсолютно прав.
Надо было остановится на "Спасибо" и не высказывать мнение токсику, про свою личную разработку которая логически идентична тому что ты продаешь.
(Можете удалить все сообщения которые я написал, включая вопрос про реализацию директории, сам не могу удалить)
 
Назад
Сверху Снизу