{"id":15017643,"url":"https://github.com/ar4ikov/mvs","last_synced_at":"2026-01-05T03:47:45.900Z","repository":{"id":57444237,"uuid":"129862307","full_name":"Ar4ikov/MVS","owner":"Ar4ikov","description":"OpenSource Server for verificate your MC Account to VK","archived":false,"fork":false,"pushed_at":"2018-05-12T12:56:34.000Z","size":325,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-03T02:06:59.939Z","etag":null,"topics":["auth","client","hypixel","hypixel-api","java","minecraft","minecraft-api","mojang","python","server","verification","vk","vk-advanced-api","vk-api","vk-bot","vk-bot-python","vkbot"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ar4ikov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-17T07:14:25.000Z","updated_at":"2022-04-08T17:21:03.000Z","dependencies_parsed_at":"2022-09-14T01:00:21.185Z","dependency_job_id":null,"html_url":"https://github.com/Ar4ikov/MVS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar4ikov%2FMVS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar4ikov%2FMVS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar4ikov%2FMVS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar4ikov%2FMVS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ar4ikov","download_url":"https://codeload.github.com/Ar4ikov/MVS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245020314,"owners_count":20548156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auth","client","hypixel","hypixel-api","java","minecraft","minecraft-api","mojang","python","server","verification","vk","vk-advanced-api","vk-api","vk-bot","vk-bot-python","vkbot"],"created_at":"2024-09-24T19:50:47.633Z","updated_at":"2026-01-05T03:47:45.846Z","avatar_url":"https://github.com/Ar4ikov.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Minecraft Verification System\n\n**Minecraft Verification System** - достаточно массивная и обширная для дальшейшего\nсоздания система \"привязки\" аккаунта Minecraft к социальной сети Вконтакт.\n\nПринцип работы:\n1. Вы должны иметь лицензионный аккаунт игры Minecraft\n2. Зайдите на сервер `mc.hypixel.net` и введите команду `/api new`\n3. Введите в методе `createUser` ваш Id VK и Hypixel API Key, который вы получили в предыдущем шаге.\n\nПо желанию (если иметь прямые руки или хотя бы небольшое понимания `Python Flask` и `Java`) можно изменить сервер подтверждения\nна свой. Тогда авторизация будет происходить через него.\n\nВесь принцип работы основывается на \"доверенных приложениях\", как в случае с Hypixel API, где вы получаете\nсвой уникальный ключ для работы, по которому можно подтвердить аккаунт Minecraft, так и в случае с подтверждением\nстранички ВК, поскольку система расчитана не на прямые запросы, а запросы через чат-бота в сообществе или на странице.\n\nДополнительную степень защиты оказывает кабинет администратора, в котором вы можете сами создавать и контролировать некие\n`Access Token'ы`, которые являются локально серверными, дающими доступ к приватным методам. Именно эти токены должны быть\nу ваших скриптов и ботов, которые будут подавать запросы, выступая в виде `доверенных приложений и/или доверенных лиц`.\n\nНачало работы\n---\nИтак, сперва мы должны понять, как запустить сервер.\nНо и также посмотреть, какие потребуются элементы для его запуска, а именно\nзависимые модули и библиотеки\n- flask (Ядро сервера)\n- requests (элемент запросов на другие сервера)\n- vk_advanced_api (для чат-бота ВК). [Посмотреть его можно тут.](https://github.com/Ar4ikov/vk_advanced_api)\n\nСледующий этап - конфигурация.\nКонфигурационный файл лежит в `/server/` и именуется как `config.ini`.\nТам полностью описана структура, а также каждый параметр, который необходимо указать.\n\nИ наконец - запуск. запускать нужно обязательно в директории `/server/`. Но если вы не хотите так делать, \nустановите в файле `/server/api/config.py` свой путь до конфига (по дефолту стоит локальный из папки `/server/`)\n\nПервый запуск\n---\n\nПри первом запуске система потребует создать нового пользователя-администратора для входа в админ-панель и дальнейшим управлением `Access Token'ами`.\n\n![hey1](docs/get_started.png 'Начало работы')\n\nПосле необходимо будет войти в админ панель:\n`https://\u003cserver\u003e/admin`\n\nСистема потребует нас туда войти\n\n![hey2](docs/login_to_admin.jpg \"Вход в систему\")\n\nСистема защищена дополнительно `reCaptcha v2` от Google. Вы можете настроить свою `reCaptcha`, \nнастроив заранее в конфиге ключ для нее. \n\n\u003e [Подробнее о рекапче прочтите тут.](https://www.google.com/recaptcha/)\n\nДалее мы попадаем на страницу с админ-панелью\n\n![hey3](docs/admin_panel.png \"Админ-панель\")\n\nНажимаем на `Создать токен`, указываем имя приложения, которому хотим сделать новый токен (на ваше усмотрение, не хочу углубляться в такие подробности с созданием \nсвоих приложений и так далее). Создаем! Приложений может быть неограниченное количество.\n\n![hey4](docs/creating_token.png \"Создание токена\")\n\nНовый токен появился в базе данных!\n\n![hey5](docs/tokens.png \"Токены\")\n\nДля чего нужен этот токен? Для доступа к приватным методам API, таким, как `createUser`, ведь это - служебный метод, который создает юзера на основе доверия и\nподтверждения всех принимаемых им данных, таких как Id юзера ВК и Hypixel API Key от вашего Minecraft аккаунта.\n\nОсновные методы системы\n\nМетод   | Зачем и как работает\n---------|:----------\ngetUser | Получение юзера из MVS БД. Необходимо указать или `mvs id (id)`, или `vk`, или `mc`, или `nickname`\ngetUsers | Получение всех юзеров их MVS\ncreateUser | Создание нового пользователя. Принимает `vk`, `hypixel_key` и `access_token`\nconfirmUser | Принимает `hypixel_key`, нужен для проверки подлинности `hypixel_key`\nupdateNickname | Принимает или `mvs id (id)`, или `vk`, или `mc`, или `nickname`, а также особый способ подтверждения (`hypixel_key` юзера или `access_token` приложения). Обновляет ник в базе данных, сверяясь с Mojang API\nbanUser | Бан пользователя в системе. Принимает или `mvs id (id)`, или `vk`, или `mc`, или `nickname`, а также `access_token` приложения \nunbanUser | Бан пользователя в системе. Принимает или `mvs id (id)`, или `vk`, или `mc`, или `nickname`, а также `access_token` приложения \n\n\nНа этом, пожалуй, с серверной частью и её настройкой мы закончили.\n\nПоля, которые возможно передать\n\nПоле | Значение поля\n---------|-------------\nid | Id юзера в системе MVS\nvk | Id юзера ВК\nmc | UUID пользователя Minecraft\nnickname | Ник игрока Minecraft\nhypixel_key | Hypixel API Key\naccess_token | Access Token приложения\n\nТеперь разберём ответы сервера\n\n`getUser` при удачном запросе\n```json\n{\n  \t\"response\": {\n    \t\"user\": {\n            \"id\": \"mvs_id\",\n            \"vk\": \"vk_id\",\n            \"nickname\": \"nickname\",\n            \"confirmation_type\": \"confirm_type\",\n            \"is_banned\": False,\n            \"mc\": \"mc_uuid\"\n    \t}\n  \t}, \n  \t\"status\": \"success\"\n}\n```\n\n`getUsers`\n```json\n{\n  \t\"response\": {\n    \t\"users\": [\n      \t\t{\n                \"id\": 1, \n                \"is_banned\": \"False\", \n                \"mc\": \"aa0f6b98a6b4438d96a0388d22d8e326\", \n                \"vk\": 160213445,\n                \"nickname\": \"nickname\",\n                \"confirmation_type\": \"confirm_type\"\n      \t\t}\n    \t]\n  \t}, \n  \t\"status\": \"success\"\n}\n\n```\n\n`createUser` при удачном запросе\n```json\n{\n  \t\"response\": {\n    \t\"user\": {\n            \"id\": \"mvs_id\",\n            \"vk\": \"vk_id\",\n            \"nickname\": \"nickname\",\n            \"confirmation_type\": \"confirm_type\",\n            \"is_banned\": False,\n            \"mc\": \"mc_uuid\"\n            }\n      }, \n      \"status\": \"success\"\n}\n\n```\n\n\n`confirmUser`\n```json\n{\n    \"response\": {\n        \"key_info\": {\n            \"hypixel_key\": \"hypixel_key\", \n            \"ownerUuid\": \"mc_uuid\",\n            \"confirmation_type\": \"confirm_type\",\n            \"nickname\": \"nickname\"\n    \t}\n  \t}, \n  \t\"status\": \"success\"\n}\n```\n\nupdateNickname при удачном запросе\n\n```json\n{\n  \"response\": {\n    \"new_nickname\": {\n      \"name\": \"NewNickName1337\"\n    }\n  }, \n  \"status\": \"success\"\n}\n```\n\nbanUser или unbanUser при удачном запросе\n\n```json\n{\n  \"response\": {}, \n  \"status\": \"success\"\n}\n```\n\n\n\nСписок возвращаемых ошибок вы можете узреть в `/server/errors.txt`\n\n\nКлиентская часть\n---\n\n\u003e Клиент всегда прав, если имеет на это основания\n\nКлиентская часть обусловлена небольшим модулем, который лишь отправляет запросы и дает ответ в виде\nсвоего класса `MVS_Response`\n\nВы также може его установить с платформы `PyPi`\n```bash\npip install requests\npip install mvs_client\n```\n\nПростой пример инициализации:\n```python\n\n# Импорт модуля\nimport mvs_client as MVS\n\n# Объявление экземпляра класса MVS_Client\nmvs = MVS.MVS_Client(\n      server=\"http://127.0.0.1\",\n      access_token=\"D7MSoV0qiRn5WzSBDdJicrGpLCxznaD1g0sFuGvATnu2SdRx108M5otnsiVBZAVY\"\n)\n\n```\nгде\n- server - сервер MVS API\n- access_token - Access Token приложения\n\nВзаимодействие:\n```python\n\n# Получаем пользователя с MVS Id 1\nresponse = mvs.getUser(id=1).getResponse()\nprint(response)\n\n# Получаем ошибку (1. Unknown Method)\nresponse = mvs.getUUseeeer().getErrorCode()\nprint(response)\n\n```\n\nПерейдем к классу `MVS_Response`\n\nМетод | Его функционал\n---|---\n`getStatus` | Получение статуса ответа от сервера. Бывает либо `success`, либо `failed`\n`getResponse` | Получение ключа `response` в ответе. Содержит основную информацию. Если была допущена ошибка, вернет None\n`getErrorCode` | Получение кода ошибки о ответе. Если ошибки нет, вернет None\n`getCause` | Получение причины ошибки в ответе. Если ошибки нет, вернет None\n`getResponseBody` | Вернет полный ответ сервера в формате JSON\n\n\nНа этом закончим с клиентской частью\n\nВК Бот\n---\n...\n...\n...\n...\n\nИнформация появится позже с появлением этого самого бота.\n\nЗаключение\n---\n\nХотелось бы добавить в окончание данной документации, что система была сделана лишь в помощь тем,\nкто в ней нуждается, а именно в автоматическом приеме игроков в Hypixel Guild, без какой-либо нужны проверки\nуровня и статистики игрока, а уж тем более без проверки подлинности аккаунта, ведь теперь абсолютно каждый\nсможет сделать это.\n\nСпасибо за понимание и за прочтение.\n\nСпасибо [@Trippsol](https://vk.con/trippsol) за идею, а также его проекту `MAV`, клиент для которого\nот меня вы можете встретить [тут](https://github.com/Ar4ikov/MAVAPI)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Far4ikov%2Fmvs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Far4ikov%2Fmvs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Far4ikov%2Fmvs/lists"}