Skip to content

Bring tshock console to your server staff without giving them access to host machine.

License

Notifications You must be signed in to change notification settings

Terraria-Minigames/vk-rest-console

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VK Rest Console

Дайте вашему стаффу серверную консоль без необходимости давать доступ к хосту.

Гайд по настройке.

0. Скачиваем

Откройте страницу релизов, скачайте бинарник для вашей ОС, закиньте куда-угодно на ту же машину, где держите tshock сервер. Запустите. Будет создан стандартный config.yaml, а потом программа выйдет.

1. Получаем токен группы ВК и подключаем Callback API

Заходим в группу, жмём Управление, затем Настройки > Работа с API.

Во вкладке Ключи доступа жмём Создать ключ, отмечаем галочку Разрешить приложению доступ к сообщениям сообщества, жмём Создать. Копируем созданный ключ и записываем его в config.yaml значением для поля Token

Во кладке Callback API жмём Добавить сервер.

  • Ставим Версию API на 5.131.
  • Ставим Адрес на адрес вашего сервера.
  • Ставим в Секретный ключ любое сложноугадываемое значение.

Записываем Секретный ключ в config.yaml значением поля Secret. Делаем то же самое для значения Строки, которую должен вернуть сервер значением для ConfirmationToken.

2. Настраиваем конфиг TShock

Полем для TShockConfigPath в config.yaml ставим абсолютный путь до config.json tshock-а. Примеры парой заголовков ниже. В config.json tshock-а настраиваем "ApplicationRestTokens" в соответствии с официальном гайдом tshock.

После того, как сделали это, нужно добавить "VKId": {АЙДИ_АККАУНТА} к каждому токену, который нужно будет использовать через сообщения группы в ВК.

3. Используем

Если всё сделано правильно, любой пользователь, чей id был приставлен к токену tshock, теперь может просто писать команды в личные сообщения группы, и они будут выполнены.

Учитывайте, что команды, которые нельзя выполнить из обычной консоли TShock, так же нельзя выполнить через ВК.

Примеры

config.yaml

  Port: 80
  TShockConfigPath: "C:/Users/Admin/server/tshock/config.json"
  CommandPrefix: "/" # Если оставить пустым, его возьмёт из конфига тишока
  RestAddr: "http://127.0.0.1:7878" # Если оставить пустым, возьмёт как "http://127.0.0.1:{port}", где {port} взят из конфига TShock
  VK:
    Token: "a9eabd3ef76be720606e010107a339e203fe2cid81b67715ebaf823e8e52380f634516850cf0ab8344bb1"
    ConfirmationToken: "ba7bf260"
    Secret: "3vUA8FBVJLpjjQd37ZxqZVFLRi93rRuC"
  Messages:
    NoCommandOutput: "Команда ничего не вернула"
    RestRequestFailed: "Не удалось выполнить команду, гляньте логи"

config.json tshock-а

"ApplicationRestTokens": {
  "my_very_own_and_very_secret_rest_token": {
    "Username": "btvoidx",
    "UserGroupName": "superadmin",
    "VKId": 187569882
  },
  "not_my_own_and_not_so_secret_rest_token": {
    "Username": "Nikita Matrosoff",
    "UserGroupName": "supersuperadmin",
    "VKId": 206352149
  }
}

Настройка

Перезапустите программку после редактирования настроек для их применения.

Все поля и их значения:

  • Port - число - порт, на котором запускать Callback API сервер. Для запуска за прокси, например Nginx.
  • TShockConfigPath - строка - путь до config.json tshock-сервера.
  • CommandPrefix - строка - префикс команд. Если оставить пустым, возьмёт из конфига tshock.
  • RestAddr - строка - адрес REST Api tshock-сервера. Если оставить пустым, возьмёт порт из конфига tshock.
  • RemoveChatTags - булевое - пытаться ли вырезать теги цвета и предметов из ответов на команды.
  • VK
    • ConfirmationToken - строка - код, который требует ВК для подтверждения Callback API сервера.
    • Secret - строка - секретный код, который посылается ВК для подверждения достоверности запросов.
    • Token - строка - токен группы с доступом к сообщениям.
  • Messages
    • NoCommandOutput - строка - текст сообщения, которое оправляется, если команда не вернула ответа.
    • RestRequestFailed - строка - текст сообщения, которое отправляется, если не удалось связаться с REST Api tshock.

Нашли баг?

Откройте новый issue!

About

Bring tshock console to your server staff without giving them access to host machine.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Languages