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

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

Logan22

Гений мысли
Проверенный
Сообщения
1 638
Розыгрыши
0
Решения
3
Репутация
1 747
Реакции
1 482
Баллы
1 808
Доброго времени суток.
Хочу представить новый и бесплатный веб-движок (CMS / UCP) с богатым набором возможностей и отрытым исходным кодом для управления JAVA серверами.
Вероятно, моя работа это лучшее веб решение что есть, из числа бесплатных и платного (за исключением (визуально, не пользовался) - wizardcp).
Разработка не прекращена, она продолжается постоянно практически каждый день.

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

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

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


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

Статистику (оно же и рейтинг) я сделал достаточно богатую.
PvP / PK / Кланы / Конкретный Клан / Замки / Герои / Время игры персонажей / Заблокированные / По классам / Просмотр информации персонажей.


Некоторые персонажи в статистики, вместо имени, имеют кнопку с именем.
Эта функция, которая позволит просматривать информацию о персонаже.
По умолчанию такая возможность недоступна, однако, каждый пользователь может включить для своего персонажа.


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

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

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

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

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

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


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

Давно хотели себе, чтоб чат из игры выводился на сайте в реал тайме?
Я решил что это очень интересно. И сделал.

По умолчанию на сайте выводится только чат GLOBAL / TRADE / обычный чат.
Чат пати, клан и прочие, выводятся только в админке, возможен поиск по сообщениям/игроку.

Следите за разделом, позже будет информация как это сделать.

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

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

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

После выбора хроник, будет возможна выборка коллекций.

...

Думаю с этим всё ясно, всё другое имеет однозначное описание.

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

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

Если мы хотим пользователя наградить определенным бонусным предметом, который пользователь отправит себе на персонажа, условно за розыгрыш или за голосование, красивые глазки...
Тогда мы записываем в таблицу bonus данные о подарке.

После этого, у пользователя появится новый значок сверху

При нажатии появится панель с бонусами.

При нажатии, предложит отправить на персонажа (это обязательно должен быть один из персонажей аккаунтов пользователя)

в файле можно отключить (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 с описанием автора, скриншота шаблона, время создания, контактных данных разработчика шаблона.
Тогда у админа, при выборе шаблона будет информация.

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

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

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


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

Если у Вас есть возможность, установите через git .
Если нет, перейдите по ссылке и загрузите

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

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

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

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


Список новых доработок: Представление о проекте SphereWeb
 
Последнее редактирование:
Ну для меня допустим хранение данных в server_list в новинку. Может это и правильно, может не правильно. Но повторюсь я не видел ни в одной L2 CMS подобного. Везде подобные данные хранятся в файлах/конфигах хранящихся на хостинге.
Видеть пароль в мастер-аккаунте от игрового аккаунта это конечно хорошо. Но по мне так это минус в безопасности персонажей имеющихся на мастер-аккаунте(при регистрации ведь создается файл с данными которые сохраняются на пк хозяина). Выставляют пароль на МА или ИА тот который либо запоминают либо даже запоминать не стоит(связан с чем-то). Поэтому проще уж скрыть пароли и дать возможность восстановления через мыло. Кстати как такового мастер-аккаунта у нас здесь нет...


ps это моё мнение которое может быть и неправильным
 
Ужас сколько воды

Ну хорошо, предположим что будет храниться в файле, и что от этого меняется?
Давай больше доводов.
Я могу дискутировать, я этим занимаюсь очень давно.
Причем тут что ты видел или не видел в какой-то CMS в Л2 такое, ты думаешь, или ты предполагаешь, что если кто-то не делал такое, значит оно неверно?
Может мне сделать даунгрейд до 5.2 версии и уйти от PDO на MYSQL функции, потому что там такое используется?
В принципе, если для тебя важно чтоб читался данные подключения из БД из конфига, так ты можешь из конфига это сделать, переделка займет минут 3 от силы, сорс открыт, делай как тебе угодно.

Я думал ты опишешь в чем минус безопасности. Увы не написал, или мне самому придумать?
Я могу написать в чем плюс.
Я как игрок, думаешь часто храню файлы? Для меня это мусор, особенно если я играю каждую неделю на разных серверах.
Я как игрок, который могу зайти на сервер через 3-4 недели, ты думаешь я сильно помню свои аккаунты и их пароли?
Особенно если они с префиксом и я пароль не вспомню.
Никто не вспомнит.
А выполнять процедуры восстановления занимает много времени, а подобрать пароль к возможно ошибочному аккаунту приводит к временной блокировки.
Именно по этому есть такая фича.


Не проще, я этот процесс загаживания почты не люблю.
Мне нужно чтоб были мои аккаунты с моими паролями, мне самому от себя пароли и аккаунты прятать не имеет никакого смысла.


Если ты беспокоишься о безопасности, о реальной безопасности своих игроков, то почему у тебя на сервере SHA1 или Whirlpool, а не какой-то , твои устаревшие на сервере методы хэширования брутятся по 5-7 млдр. ком/сек. и тебя это почему не беспокоит или для тебя это не минус безопасности?

Кстати как такового мастер-аккаунта у нас здесь нет...
Да ладно, а назови по каким критериям ты это определяешь


Для этого же RestAPI чтобы пароли не гонять, верно?
Верно
 
Последнее редактирование:
Я с тобой не спорю. Это бесплатная CMS с открытым кодом и ты имеешь полное право делать то что хочешь в ней делать в том виде в каком хочешь в ней видеть. Кому то что-то не нравится? Лес там! Исходники там же! Но всё же
Xenforo/IPB/IPS а так еже SW/MMOWEB2,3,4 и др в каком из этих движков подключение к БД хранится в БД? И почему ты решил что они все дураки, а ты самый умный и больше разбираешься в безопасности? Если для тебя наличие нешифруемых таблиц server_list и player_accounts проще потому что надо меньше тыкать на кнопочки и меньше думать это одно. И на такой вариант ты имеешь полное право. Но какой плюс в этом и является ли это безопасным на случай слива БД? Я не являюсь профессионалом в этом деле, но я всегда почему-то думал, что проще взломать и слить БД нежели слить файлы лежащие на хостинге(возможно я не прав).
Опять же где я сказал что твои действия неверны? Перечитай внимательно мои слова! Ну для меня допустим хранение данных в server_list в новинку. Может это и правильно, может не правильно.

В данный момент я отписался в большей степени как игрок, который не прыгает по серверам каждые пару тройку дней. И использует 2-3 16-ти значных пароля на своих игровых аккаунтах. И я бы честно говоря очень не хотел нарваться на сервер двух [мат-ов]:
  • где первый [мат] - админ сервера, который исользовал sphereweb не смог защитить бд CMS сайта и это привело к тому, что, мои никем невзломанные за много лет пароли в чистом виде ушли в массы, в том числе потому что
  • второй [мат] - разраб обвязки решил, что их не надо шифровать и они в БД CMS должны хранится в открытом виде.
Причем на шифрацию пароля в БД никак влияет наличие галочки в ЛК скрывать пароль или нет.

Восстановление пароля занимает много времени? 2 минуты это конечно вечность. А так же нажатие кнопочки Удалить в почтовом ящике засирает корзину последнего.

От себя прятать не имеет смысла. Но я говорю о случае сливе БД в которой разраб [мат] не захотел шифровать мои пароли и сотавил их в чистом виде

Да ладно, а назови по каким критериям ты это определяешь
Здесь я был не прав. Извини.
 
Любой админ зашифрует твои данные простым кодом md5(&passworld) это не сложнл))) одна команда решит все))) шифрование даже в server list можно записать так)шифровка и готово)

Ребят, кому не нравится вас не заставляют) но переделать шифрование я думаю админы могут за 10 минут легко))) друга не составит прописать шифровку самим)

Разрабу sphere респект что не нажимается за счёт своих разработок. Я готов поддержать и заплатить за какой-то баг который он не решит сам. Есть человек который поможет решить это и я ему заплачу!

Разрабу респект, всем кому не нравится что-то в этом, сами знаете, что сделать )))
 
хайпанул немножечко)
 
Ты так пишешь, как будто у тебя корпорация уровня гугла, а не пиратский сервак полумертвой игры.
Тебе как админу не похер, что будет с украденой у тебя базой паролей игроков? Логан правильно написал, что из-за бума майнинга, монописуально, будет твой пароль захеширован чем-то вроде md5 или sha1, т.к хеши такого уровня брутятся буквально в момент.
 
Мужчины, возможно я не прав. Я не утверждаю.
Использовать или не использовать данную CMS это выбор каждого, а исходный код даёт возможность любому воять с ней всё что угодно. В любом случае Логану респект за проделанную работу
 
Из всего этого я пользовался XenForo, XenForo внутренние логин и пароль от СОБСТВЕННОЙ базы записывает в файл.
И Сфера делает тоже самое, файл называется src/config/db.php .

Мне сложно с тобой ввести дискуссию, потому что у тебя явно меньше опыт чем у меня.
У тебя есть опыт в взломах серверов и почти 100% расхэшэных паролей их? -
У тебя есть опыт взломал форумов IPB ? - На данном форуме храняться скриншоты взлома 11 лет назад форумамакси, где мне удалось себя сделать админом.
У тебя есть идеи послужной список серверов, которых ты взломал просто вписав 1 строку в шаблон IPB и тем самым залил шел им на форум?
У тебя есть на youtube твои ролики от начала и до конца взлома игровых L2j серверов?
У тебя есть твои программы опубликованы где-то условно на форуме античата на тематику хэширования?
Наверное из всего этого у тебя ничего нет.
Скажи, в таком случае, мне будет легко ввести диалог?

С тобой сложно, потому что ты не имеешь не в чем опыт на тему разговора, но имеешь ошибочное и на лет 15 устаревшее мнение.

Во первых MD5 не является шифрованием, это хэширование.
Хэширование НЕОБРАТИМО, то есть расшифровать пароль невозможно, но тебе в БД MySQL нужно передать исходный пароль для подключения.
Ты понимаешь утрату логики твоего "шифровать пароль для подключения к бд сервера" ?

Смотри. Представим что всё пароли захэшированы (я взламывал сервера много раз). И я кэкэр получил логины и пароли.
Как думаешь, какая скорость брута хэшэй на моей не самой топовой 1070 будет ?
1,2,3, 4 миллиарда комбинаций в секунду ? И это по SHA1 или Whirlpool - хэширование этими алгоритмами устарело, как шифр цезаря.
 
шифровка md5(md5()) у меня такое на моей вап игре))) код старый конечно в ней ноооо, брутить будет немного криво)))
да и как я сказал, кому не нравится, >>>>
 
Хренасе ты выдал, ты чё Овербаффер? могешь, делаешь, можешь!)
 
Хренасе ты выдал, ты чё Овербаффер? могешь, делаешь, можешь!)
Овербаффер просто слил чужие опубликованные взломы из подполья, и выдал как бы за своё и распространил. За это его и забанили и он сам об этом говорил.
 
В общем, кому что не нравится, идут далеко и на долго ))
а мы продолжаем использование и поддержку сферы
 
Фигасе, я этого не знал) а я его раньше смотрел и думал "вот это чувак профи)"
 
Самый толквый в этом только говно. Но он больше по ддосам, и по залить шел на сайт .
Помню он и на мой мой форум на xenforo тоже взломать и шелик повесил, я нашел потом шел . Веселые времена были.
 
Добавьте если это возможно и алгоритм PBKDF2WithHmacSHA1 используется в JTS (HF).
Пример пароля в бд:
Код:
sha1:1000:mkreB1Q4Gf9L7sm78CFzCPoVsOF++306:zHXWi+bM1ySQPw3GFP/c+RWfFuf9gHcs
 
по поводу шифрования
можно вообще ничего не трогать в php, используйте ширование в самом MySQL, он давно уже нормально все сам шифрует.
достаточно запустить сам MySQL с необходимыми ключами шифрования и все, у вас вообще ВСЯ база (все таблицы) будет зашифрованна.
 
Обновление
Информация о SphereWeb дополняю, так как за время создания темы произошло много доработок.
Опишу самые интересные.

Свет и тьма
Теперь появились две темы шаблона ЛК: светлая и темная.
Пользователь выбирает сам, какую предпочитает.
Админ может выбрать цвет темы шаблона по умолчанию.
Кнопка переключения темы.
Шаблон, который был в лк - удален, теперь новый.


Форум
Появился встроенный форум, который является частью SphereWeb.
Пользователи могут создавать темы, отвечать, цитировать другие сообщения, редактировать свои, прикреплять изображения.
Администраторы могут создавать категории, разделы, удалять, изменять темы, закрывать темы, закреплять их.

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

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

Все зарегистрированные пользователи могут использовать форум, не нужны регистрации.


Уведомления
Администратору сложно отслеживать все сообщения, по этому я сделал "уведомления", если кто-то создаст тикет либо ответит в тикете администратору придет в профиле уведомления. По аналогии и с форумом, если пользователя процитируют, ему придет уведомление с ссылкой на тему/пост.


Гибкая система табличной накрутки онлайна
Настройки системы нужно указывать в файле src/config/online_cheating.php

В конфиге есть параметр ONLINE_CHEATING_ENABLE - которому нужно присвоить true (включить) или false (отключить)
Следующая настройка - ONLINE_CHEATING_MIN_MAX_ONLINE - можно указать выводимый онлайн (мин./макс.) на случай, если игроков на сервере 0 и сервер работает.

Следующий параметр cheat_online - это система преувеличения онлайна, в зависимости от сколько у вас сейчас игроков играет и в какое время на сколько умножать.


Чат игры на сайте
Раньше для того чтоб слать в Sphere сообщения из игры на сайт, нужно было запускать скомпилированную программу, изменения её регулярных выражений из-за разности структур chat.log было невозможным без моего вмешательства, по этому переписал на PHP, теперь каждый может под свою сборку переделать.


Бонус-коды
Появилась возможность создавать через админ панель бонус-коды.
Демонстрация сгенерированых бонус кодов.
Пользователь за ввод кода получит предмет 4037 в кол-ве от 5 до 10 шт.
Коды имею срок годности.
Игроку можно передавать код, в виде розыгрыша или другим способом.
Игрок получит бонус.



Предмет добавляется в инвентарь ЛК
.


Аватарки
Существует список аватарок, который пользователь может выбирать для своего профиля.
Теперь для разнообразия, пользователь может загружать свой аватар, и эта услуга может быть платной.
Стоимость загрузки своего аватара определяется в конфиге src/config/general.php

Донат монета
Для удобства и появилась возможность предавать имя деньгам в Sphere, по умолчанию деньги называются SphereCoin.
Для изменения на Ваше усмотрение достаточно в языковом пакете изменить название: src/component/lang/package/ru.php
Находим

Изменяем на своё имя монеты


Скидки и бонусы на донат
Для разнообразвия доната, было много доработаны системы скидок, чтоб админ мог настроить как ему хочется.
Настраивается тут: src/config/donate.php

У пользователя на страницы пожертвования будет писаться сумма бонусной надбавки.

Ниже видно что при покупке больше 25 баночек ХП, пользователю дали 15% скидку на покупку товара.
Вообщем, выбирайте ту систему какая Вам больше нравится.
 
Автору большущий респект.
Достойная работа + неплохой код...

Когда начнёшь платную ветку напиши 100% куплю под свои нужды.
 
Не планирую делать платную ветку. Сфера будет открыта и обновляется по мере возможности.
Но бобло всегда мне можно пожертвовать, особенно в такое время;-)

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