Перейти к содержанию
Авторизация  
RedTeapot

Дела админские

Рекомендуемые сообщения

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

 

 


 

 

Реализовал посадку за прокси.

 

Есть белый список - список игроков, которых не сажает ни при каких условиях. Если кто-то хочет добавиться - пишите.

 

Спойлер

RedTeapot - @RedTeapot

Lady_Lava - @Lady_Lava

Mexises - @Mexises

 

При определении прокси выполняются следующие команды ({} заменяется на никнейм игрока):

Спойлер

tellraw {} "Кажется, Вы используете прокси. Это не очень разрешено. Для выпуска из тюрьмы напишите на форум: https://forum.bbyaworld.com/"
scoreboard players set {} alarmCode 103

 

 

 


 

 

Также происходит посадка слишком быстро богатеющих новичков. Подробнее тут.

 

Изменено пользователем RedTeapot
Пофиксил ник Лавы в вайтлисте
  • Спасибо 1
  • Алмазик 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 18.09.2018 в 15:29, RedTeapot сказал:

Есть белый список - список игроков, которых не сажает ни при каких условиях

Какие критерии входа в этот список?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Особых - никаких.

Для начала можешь попробовать описать - зачем тебе прокси, какой именно сервис используешь и зачем попадение в белый список?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 часов назад, BBya_Elsirion сказал:

Какие критерии входа в этот список?

 

Просто сюда пишешь никнеймы, которые надо добавить. Есесна, ты за них отвечаешь.

 

 


 

 

На всякий решил еще прописать, как происходит запуск и работа с игровым сервером.

 

Работает оно все в screen-сессии юзера mcserver.

 

Для создания сессии (например, после рестарта VPS) юзаем это:

screen -dmS mcserver

Оно запустит сессию, но не подключится к ней.

 

Для подключения к уже работающей сессии вводим это:

screen -x mcserver

Для отключения от сессии (без ее остановки) жмем Ctrl-A, потом D.

 

В целом, это сообщение - памятка мне и, возможно, кому-то еще.

 

 


 

 

Поднял ufw. По умолчанию все порты закрыты, работаем по белому списку.

 

Спойлер

80 - HTTP

443 - HTTPS

22568 - SSH

22570 - GetScoreboardVariable

25565 - Minecraft Server

25566 - Minecraft Server Query

28565 - Dynmap

 

Плюс 5 к безопасности. И RCON теперь наружу не торчит.

Изменено пользователем RedTeapot
Уточнил, как работает screen -dmS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня такое бывало, когда неправильно игрался с переменной - Admins, которая должна быть = 1

 + со всякими командами Prisoners и значением переменной alarmCode: нужно всё в правильной последовательности выставить = тогда не будет сажать )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Admin сказал:

У меня такое бывало, когда неправильно игрался с переменной - Admins, которая должна быть = 1

 + со всякими командами Prisoners и значением переменной alarmCode: нужно всё в правильной последовательности выставить = тогда не будет сажать )

да не, технически меня не сажает, но при каждом заходе меняет мой алармкод на 103 и пишет, что я оготай. собственно из-за админс 1 меня и не сажает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Так, пара апдейтов.

 

Потрогал банилку за прокси:

  • Пофиксил уязвимость, позволявшую любому игроку посадить любого игрока, написав определенное сообщение в чат
  • Пофиксил работу с вайтлистом: раньше он просто не работал (был косяк в загрузке конфига скрипта)
  • Ну и по мелочи - поправил ник Лавы в вайтлисте на правильный (изначально было пропущено подчеркивание)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, RedTeapot сказал:

уязвимость, позволявшую любому игроку посадить любого игрока, написав определенное сообщение в чат

Наверное, это сообщение выглядело примерно так:

 

import { savedState } from '../files/default_struct.js';
import {objMap}  from '../files/objMap.js';

export function nFormatter(num, digits) {
  var si = [
    { value: 1, symbol: '' },
    { value: 1e3, symbol: 'k' },
    { value: 1e6, symbol: 'M' },
    { value: 1e9, symbol: 'B' },
    { value: 1e12, symbol: 'T' },
    { value: 1e15, symbol: 'P' },
    { value: 1e18, symbol: 'E' },
  ];
  var rx = /\.0+$|(\.[0-9]*[1-9])0+$/;
  var i;
  for (i = si.length - 1; i > 0; i--) {
    if (num >= si[i].value) {
      break;
    }
  }
  return (num / si[i].value).toFixed(digits).replace(rx, '$1') + si[i].symbol;
}

 

  • Хаха 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, Admin сказал:

Наверное, это сообщение выглядело примерно так:

 


import { savedState } from '../files/default_struct.js';
import {objMap}  from '../files/objMap.js';

export function nFormatter(num, digits) {
  var si = [
    { value: 1, symbol: '' },
    { value: 1e3, symbol: 'k' },
    { value: 1e6, symbol: 'M' },
    { value: 1e9, symbol: 'B' },
    { value: 1e12, symbol: 'T' },
    { value: 1e15, symbol: 'P' },
    { value: 1e18, symbol: 'E' },
  ];
  var rx = /\.0+$|(\.[0-9]*[1-9])0+$/;
  var i;
  for (i = si.length - 1; i > 0; i--) {
    if (num >= si[i].value) {
      break;
    }
  }
  return (num / si[i].value).toFixed(digits).replace(rx, '$1') + si[i].symbol;
}

 

 

Почти. Могу в личку отправить, если хочешь 🌚

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

  • Плюс 1
  • Алмазик 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потыркал конфиги сервера. Сохраняю на будущее ссылки, которыми руководствовался:

https://github.com/YouHaveTrouble/minecraft-optimization

https://github.com/brucethemoose/Minecraft-Performance-Flags-Benchmarks

(Будем надеяться, что в обозримом будущем ссылки не протухнут)

  • Алмазик 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще мысля (скорее всего, на будущее, когда/если активность на сервере вырастет и появится мотивация).

 

Веб-гуй для ГМов.

 

Допустим, у нас есть две роли для юзеров: админ и ГМ.


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

 

crdafhQ.png


ГМ у себя видит эти шаблоны и может их инстанцировать, заполнив имеющиеся у них поля:

 

ZdpwiYU.png


После сохранения система из инстанцированных шаблонов создает нужные функции автоматически:

# Effect minecraft:night_vision 1 for player RedTeapot
effect give RedTeapot minecraft:night_vision 600 1 true

# Effect minecraft:speed 255 for player Notch
effect give Notch minecraft:speed 600 255 true

# Effect minecraft:strength 42 for player jeb_
effect give jeb_ minecraft:strength 600 42 true


Например, для покупного эффекта (он же еще вручную делается?) ГМ заполняет соответствующий шаблон, куда вбивается просто имя игрока и сам эффект. Сами команды в нужный файл генерит система на основании заранее подготовленного шаблона.

 

По идее, это должно упростить жизнь ГМ'ам и настройку сервера (по крайней мере в той части, что работает на командах). Вдобавок, больше команд переедет из КБ в функции, что должно немного снизить нагрузку на сервер.

  • Алмазик 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, RedTeapot сказал:

Еще мысля (скорее всего, на будущее, когда/если активность на сервере вырастет и появится мотивация).

 

Веб-гуй для ГМов.

 

Допустим, у нас есть две роли для юзеров: админ и ГМ.


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

 

crdafhQ.png


ГМ у себя видит эти шаблоны и может их инстанцировать, заполнив имеющиеся у них поля:

 

ZdpwiYU.png


После сохранения система из инстанцированных шаблонов создает нужные функции автоматически:


# Effect minecraft:night_vision 1 for player RedTeapot
effect give RedTeapot minecraft:night_vision 600 1 true

# Effect minecraft:speed 255 for player Notch
effect give Notch minecraft:speed 600 255 true

# Effect minecraft:strength 42 for player jeb_
effect give jeb_ minecraft:strength 600 42 true


Например, для покупного эффекта (он же еще вручную делается?) ГМ заполняет соответствующий шаблон, куда вбивается просто имя игрока и сам эффект. Сами команды в нужный файл генерит система на основании заранее подготовленного шаблона.

 

По идее, это должно упростить жизнь ГМ'ам и настройку сервера (по крайней мере в той части, что работает на командах). Вдобавок, больше команд переедет из КБ в функции, что должно немного снизить нагрузку на сервер.


Покупные эффекты выдаются на время, а значит нужно периодически проверять актуальность эффекта. впрочем, можно через cron, например, проверять это. ( 0 0 * * * ) и стирать строки. Не самая "востребованная" услуга. Проще без всяких "веб интерфейсов" это сделать, скинув шаблонную команду. Ctrl+c, Ctrl+v, и заменить ник/эффект/время это не сверхсложная задача. (у меня вот, например, валяются заготовки под все задачи)

Впринципе это можно и в телеге сделать, с кнопочками. Аля конструктор команд для покупных эффектов. Потыкать на кнопки, в конце вбить ник, прочитать проверку и отправить.
rcon можно прикрутить,  чтобы слать произвольные/заготовленные команды.
Думаю Велвету будет такое удобно. (если когда-нибудь пригодиться)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

10 часов назад, Lady_Lava сказал:


Покупные эффекты выдаются на время, а значит нужно периодически проверять актуальность эффекта. впрочем, можно через cron, например, проверять это. ( 0 0 * * * ) и стирать строки. Не самая "востребованная" услуга. Проще без всяких "веб интерфейсов" это сделать, скинув шаблонную команду. Ctrl+c, Ctrl+v, и заменить ник/эффект/время это не сверхсложная задача. (у меня вот, например, валяются заготовки под все задачи)

Впринципе это можно и в телеге сделать, с кнопочками. Аля конструктор команд для покупных эффектов. Потыкать на кнопки, в конце вбить ник, прочитать проверку и отправить.
rcon можно прикрутить,  чтобы слать произвольные/заготовленные команды.
Думаю Велвету будет такое удобно. (если когда-нибудь пригодиться)

 

Ну, эффекты для примера были, я просто не помню уже, что там еще бывает. Есть что-то менее тривиальное?

Вроде, Вельвет обмолвился, что часть логики обратно в КБ перенесли из функций ради удобства, вот и думаю насчет этого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, RedTeapot сказал:

Есть что-то менее тривиальное?

нет. всё остальное можно решить вбиванием команды в чат.
из подобных вещей только сигналка. Её, вроде, утаскивали в функции. (от пипирки)
Там вообще раз в столетие надо что-то делать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×