Перейти к публикации

Автокик при муте на сайте


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

На данный момент, на серверах мут  с сайта, доходит с задержкой, и чтобы получить его "моментально" надо перезайти.

Предлагаю внести автокик при муте на сайте.

kick PLAYERNAME.

 

Если не знаете как сделать, то вот код и пакет:

 

Пакет rcon-client (npm) 

 

import { Rcon } from "rcon-client"

const rcon = await Rcon.connect({
    host: "хостсервера", port: порт, password: "пароль"
})

 await Promise.all([
    rcon.send(`mute ${playername} ${time}`),
    rcon.send(`kick ${playername}`)
])

rcon.end();

//other code

 

  • Лукасик 4
  • Спасибо 2
Ссылка на комментарий
$host = 'айпи'; 
$port = порт;                     
$password = 'Пароль'; 
$timeout = 3;               

$playername = "zotsuperplus";
$time = "1";

use Thedudeguy\Rcon;

$rcon = new Rcon($host, $port, $password, $timeout);

if ($rcon->connect())
{
 $rcon->sendCommand("mute " + $playername + " " + $time);
  $rcon->sendCommand("kick " + $playername);
echo 'Completed';
}

Тот же самый код, но на PHP.

Библиотека, используемая в примере -> https://github.com/thedudeguy/PHP-Minecraft-Rcon

Ссылка на комментарий

Ну как бы разработчики на то и разработчики, что бы заняматся этим.

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

(Им как бы за это деньги платят если что)

Да и какая разница когда игроку прилетит мут. Он же всеравно дойдёт 🤷‍♂️

Ссылка на комментарий
3 часа назад, ArnyFourR сказал:

Ну как бы разработчики на то и разработчики, что бы заняматся этим.

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

(Им как бы за это деньги платят если что)

Да и какая разница когда игроку прилетит мут. Он же всеравно дойдёт 🤷‍♂️

АХАХАХАХАХА, меншу это бы сказал

Ссылка на комментарий

Я, конечно, ни разу не программист.

Но!

Если мут  с сайта приходит с задержкой, это означает. что сайт и сервера синхронизируются с какой-то периодичностью

И тогда если мут приходит с задержкой, то и кик будет приходить ровно с той же задержкой в момент синхронизации, разве нет?

Ссылка на комментарий
  • Главный Модератор
7 часов назад, Awuglgzyr сказал:

Я, конечно, ни разу не программист.

Но!

Если мут  с сайта приходит с задержкой, это означает. что сайт и сервера синхронизируются с какой-то периодичностью

И тогда если мут приходит с задержкой, то и кик будет приходить ровно с той же задержкой в момент синхронизации, разве нет?

 

Существует небольшая проблемка, если игрок получивший мут на сайте, будет находится онлайн, мут за ним будет числится, но не будет работать до тех пор, пока игрок не перезайдёт на сервер. Автор хочет исправить эту проблему автоматическим киком.

 

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

Ссылка на комментарий
4 часа назад, BlackSauron сказал:

 

Существует небольшая проблемка, если игрок получивший мут на сайте, будет находится онлайн, мут за ним будет числится, но не будет работать до тех пор, пока игрок не перезайдёт на сервер. Автор хочет исправить эту проблему автоматическим киком.

 

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

import { Rcon } from "rcon-client"

const rcon = await Rcon.connect({
    host: "хостсервера", port: порт, password: "пароль"
})

 await Promise.all([
    rcon.send(`mute ${playername} ${time}`),
   rcon.send(`msg ${playername} Уважаемый игрок, вы были замучены, и автоматически будете кикнуты через 1 минуту. Пожалуйста, не совершайте обменов в этот момент и не сражайтесь с другими игроками. `)
])

const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
await sleep(60000)
rcon.send(`kick ${playername}`)
rcon.end();

//other code

Тогда мы решим эту проблему предварительным уведомлением пользователя, и дадим минуту чтоб он закончил работу, обмен, крафт, PvP.

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

Я могу написать как логику клиента, так и сервера

Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...