mirror of
https://github.com/elyby/docs.git
synced 2024-12-23 13:39:58 +05:30
164 lines
11 KiB
ReStructuredText
164 lines
11 KiB
ReStructuredText
Система скинов
|
||
--------------
|
||
|
||
На этой странице вы найдёте информацию о самостоятельной реализации системы скинов на базе сервиса Ely.by.
|
||
|
||
Система скинов Ely.by, в отличие от других, не заменяет, а дополняет официальную, тем самым игроки с лицензией не теряют
|
||
свои скины, а игроки без лицензии смогут установить себе скин и видеть скины других игроков.
|
||
|
||
Кроме того, в основных принципах сервиса лежит соответствие официальной системе скинов: нет плащей, нет ушек, нет HD-скинов.
|
||
Это означает, что на вашем сервере не будут бегать разноцветные пугала с вырвиглазными скинами.
|
||
|
||
URL-адреса запросов
|
||
===================
|
||
|
||
Система скинов располагается по URL **http://skinsystem.ely.by**. На сервере доступно 3 основных обработчика:
|
||
|
||
.. function:: /skins/{nickname}.png
|
||
|
||
Этот URL отвечает за загрузку скинов. Вместо параметра **nickname** необходимо передать ник игрока. Расширение .png можно опустить.
|
||
|
||
.. function:: /cloaks/{nickname}.png
|
||
|
||
Этот URL отвечает за загрузку плащей. Вместо параметра **nickname** необходимо передать ник игрока. Расширение .png можно опустить.
|
||
|
||
Хотя Ely.by не поддерживает пользовательскую загрузку плащей, мы оставляем за собой право устанавливать дополнительные,
|
||
относительно официальной системы скинов, плащи. В любом случае, мы будет пользоваться теми же принципами, что и Mojang -
|
||
плащи только за великие заслуги.
|
||
|
||
.. function:: /textures/{nickname}
|
||
|
||
По этому URL вы можете получить текстуры для указанного в запросе **nickname**. Результатом является JSON строка, с
|
||
meta-информацией о скине следующего формата:
|
||
|
||
.. code-block:: javascript
|
||
|
||
{
|
||
'SKIN': {
|
||
'url': 'http://example.com/skin.png',
|
||
'hash': 'uniquehashofskin',
|
||
'metadata': {
|
||
'model': 'default' /* default или slim, в зависимости от формата скина */
|
||
}
|
||
},
|
||
'CAPE': {
|
||
'url': '',
|
||
'hash': ''
|
||
}
|
||
}
|
||
|
||
*В абсолютном большинстве случаев, содержание CAPE будет именно таким, как показано выше.*
|
||
|
||
.. note:: Ник не чувствителен к регистру и внутри обработчика в любом случае приводится к нижнему регистру.
|
||
|
||
Кроме того, для всех запросов необходимо в GET параметрах передать следующие значения:
|
||
|
||
:version: Версия протокола, по которому идёт запрос на скины. На данный момент таковым является 2 протокол, т.е. вам
|
||
нужно всегда указывать version=2.
|
||
|
||
:minecraft_version: Версия Minecraft, с которой идёт запрос. Этот параметр можно не передавать в том случае, если вы
|
||
передаёте параметр authlib_version.
|
||
|
||
:authlib_version: Версия authlib, с которой выполняется запрос. Этот параметр актуален для версий Minecraft 1.7.6+, когда
|
||
для загрузки скинов стала использоваться отдельная библиотека, а не реализация внутри игры.
|
||
|
||
Параметр может быть передан вместо параметра **minecraft_version**.
|
||
|
||
Если в запросе не будет параметра **version** и **minecraft_version** или **authlib_version**, сервер ответит 400
|
||
ошибкой и скин не будет загружен.
|
||
|
||
Примеры запросов
|
||
~~~~~~~~~~~~~~~~
|
||
|
||
.. code-block:: http
|
||
|
||
http://skinsystem.ely.by/skins/erickskrauch.png?version=2&minecraft_version=1.7.2
|
||
|
||
Получает скин игрока **erickskrauch** с версии Minecraft 1.7.2.
|
||
|
||
.. code-block:: http
|
||
|
||
http://skinsystem.ely.by/cloaks/notch?version=2&minecraft_version=1.6.4
|
||
|
||
Получает плащ игрока **notch** с версии Minecraft 1.6.4. Обратите внимание, что расширение ".png" не передано.
|
||
|
||
.. code-block:: http
|
||
|
||
http://skinsystem.ely.by/textures/EnoTiK?version=2&authlib_version=1.5.17
|
||
|
||
Получает текстуры игрока **EnoTiK** с версии authlib 1.5.17 (версия Minecraft 1.8).
|
||
|
||
Вспомогательные адреса запросов
|
||
===============================
|
||
|
||
Кроме того, во 2 версии протокола системы скинов определены несколько специальных URL, которые проксируют трафик внутрь
|
||
основных запросов, перечисленных выше.
|
||
|
||
Ник как GET параметр
|
||
~~~~~~~~~~~~~~~~~~~~
|
||
|
||
Эти URL, в отличие от основных запросов, позволяют передать ник игрока в качестве одного из GET параметров. Такие запросы
|
||
полезены для версии Minecraft 1.5.2 и ниже, когда внутри кода игры не использовалась подстановка %s для ника, а производилась
|
||
простая конкатенация строк. Таким образом можно передать все необходимые GET параметры, указав ник последним.
|
||
|
||
.. function:: /skins/?name={nickname}.png
|
||
|
||
Тот же запрос на скин. Вместо параметра **nickname** необходимо передать ник игрока. Расширение .png можно опустить.
|
||
|
||
.. function:: /cloaks/?name={nickname}.png
|
||
|
||
Тот же запрос на плащ. Вместо параметра **nickname** необходимо передать ник игрока. Расширение .png можно опустить.
|
||
|
||
Примеры запросов:
|
||
"""""""""""""""""
|
||
|
||
.. code-block:: http
|
||
|
||
http://skinsystem.ely.by/skins/?version=2&minecraft_version=1.5.2&name=erickskrauch.png
|
||
|
||
Получает скин игрока **erickskrauch** с версии Minecraft 1.5.2.
|
||
|
||
.. code-block:: http
|
||
|
||
http://skinsystem.ely.by/cloaks/?version=2&minecraft_version=1.4.7&name=notch
|
||
|
||
Получает плащ игрока **notch** с версии Minecraft 1.4.7. Обратите внимание, что расширение ".png" не передано.
|
||
|
||
Старый формат запроса
|
||
~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
В 1 версии протокола системы скинов применялся другой способ загрузки скинов. Все запросы шли по URL
|
||
**http://ely.by/minecraft.php** и все данные передавались через GET параметры.
|
||
|
||
На данный момент любой запрос, выполненный на вышеуказанный URL приведёт к 301 редиректу на
|
||
**http://skinsystem.ely.by/minecraft.php**, где запрос будет проксирован на основные запросы.
|
||
|
||
Этот запрос является fallback роутом, применяемым для обратной совместимости с 1 версией и не рекомендуется для
|
||
использования в новых проектах. Тем не менее, он должен быть описан, так как применятся и будет достаточно долго применяться
|
||
в связи с долгосрочным переходом на 2 версию протокола системы скинов.
|
||
|
||
1 версия системы скинов (deprecated)
|
||
====================================
|
||
|
||
.. warning:: Информация в этом разделе является устаревшей и приведена здесь только ради создания иллюзии крутого развития
|
||
проекта. В любом случае вы **не должны** использовать этот протокол, т.к. в один момент он окончательно перестанет
|
||
работать.
|
||
|
||
На старте проекта применялся URL для загрузки скинов **http://ely.by/minecraft.php**, в который через GET параметры
|
||
передавались данные. Сейчас этот URL является устаревшим и планомерно выводится из обращения в пользу 2 версии протокола.
|
||
|
||
.. function:: /minecraft.php
|
||
|
||
Параметры, передаваемые в этот запрос:
|
||
|
||
:name: Имя игрока без учёта регистра и без расширения **.png**.
|
||
|
||
:type: Тип запрашиваемых данных. Возможные значения: skin и cloack. Изначально была допущена ошибка, из-за которой
|
||
запрос на плащи шёл с значением cloack, вместо cloak. Увы, это так и останется в истории проекта.
|
||
|
||
:mine_ver: Версия Minecraft. Точки в версии должны были быть заменены на прочерки, т.е. 1.7.2 должно было быть передано
|
||
как 1_7_2. Хотя могло работать и с точками :)
|
||
|
||
:ver: Версия протокола. Обычно передавалось значение 1_0_0, которое, в принципе, ни на что не влияло, но тем не менее
|
||
передавалось. Сейчас применяется для идентификации запроса, проксируемого с 1 версии во 2.
|