@SAMACK

Как сделать таймер при помощи команды на сервере игре, чтобы он появился на Сайте?

Суть в том что есть сервер в майнкрафте, и нужно сделать так что бы при помощи команды /autostart set 30m в веб-сайте появился отсчет 30 минут и потом после отсчет опять обнулился. И так каждый раз когда хочешь добавить катку, нужно просто вводить эту команду. Так же чтобы ее отменить (таймер) /autostart cancel тогда просто таймер обнуляется. Вот скриншот: https://pastenow.ru/7AHAS красным цветом показано где должен быть таймер.
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 1
dollar
@dollar
Веб-сайт в данном случае тоже сервер, и для понимания введем понятия:
  • Игровой сервер (или просто сервер)
  • Веб-сервер (бекенд)
  • Браузер пользователя или клиент или фронтенд


Далее задачу можно разделить на два (три) этапа:

Этап первый

Вам нужно, чтобы ваш сервер отсылал на веб-сервер информацию о начале и конце. Это делается по протоколу HTTP или HTTPS, что-то типа java.net.HttpUrlConnection, но я точно не знаю, что вам лучше подойдет для этой цели.

Соответственно, на веб-сервере у вас должен быть свой скрипт на любом языке, обычно это PHP. Этот скрипт сохраняет информацию в базу (обычно MySQL).

Чтобы хранить таймер, который всё время меняется, нужно хранить неизменные его части. А именно - начало и конец, или начало и продолжительность, или просто время окончания (timestamp) с точностью до секунды.

Этап второй
Это общение веб-сервера и браузера (клиента). И тут есть свои тонкости.

Во-первых, сразу вилка на функционал - либо у вас таймер появляется по нажатию по F5 (обновить страницу). То есть вы обновляете страницу, браузер запрашивает новые данные с веб-сервера, и после этого показывает таймер. Либо у вас страница веб-сайта открыта, и там в реальном времени вдруг появляется таймер. Сам! Это можно сделать по-разному, но самый банальный способ - чтобы веб-страница (то есть браузер) делала запрос каждые 10 секунд в фоне (ajax), и если вдруг появляются новые данные, то страница преображается.

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

В остальном всё просто. Информация из базу тупо посылается на клиент, то есть время окончания, и дальше на клиенете скрипт работает локально. Он показывает отсчет времени до старта игры. Собственно, написание этого мини скрипта на JavaScript можно считать третьим этапом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы