• Хостинг игровых серверов

    Максимальная производительность для ваших игровых серверов!

    Заказать сейчас

Плагин ChatUserCommand Logs 1.0

Нет прав для скачивания

i-593

9 Апр 2017
201
2
4
16
32
ChatUserCommand - logs - Выводим информацию о "вводимых командах игроками в чат" - в консоль сервера.

После установки плагина Logger на сервер, я заметил что в игре Hurtworld не идёт логирование или протоколирование команд вводимых в чат.
Недоработка видимо со стороны разработчика.

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

Плагин просто ждёт любое вхождение в чат команды с символа "/", далее выводит это в консоль сервера(если она открыта у Вас) в формате: 13:36 [Info] [ChatUserCommand] SteamID Nikname комманда
Затем так же создаёт файл лога в...

Узнать больше об этом ресурсе...
 
  • Мне нравится
Реакции: MrFallen
1.Убери лишние Using-и
2.У тебя много лишнего кода.Вот как надо сделать
Код:
namespace Oxide.Plugins
{
    [Info("ChatUserCommand", "i-593", 1.0)]
    [Description("Plugin for log chatcomand in console and history")]

    class ChatUserCommand : HurtworldPlugin
    {
        void OnChatCommand(PlayerSession session, string command, string[] args)=> Log("",session.SteamId+" "+session.Name+" "+command);
      
        void Log(string filename, string text) => LogToFile(filename, $"[{DateTime.Now}] {text}", this);
    }
}
 

Вложения

  • ChatUserCommand.cs
    639 байт · Просмотры: 4
можно сообщения админам отправлять - /admin_kozel'! :D
Вроде так не сработает,если на сервере нет такой команды) Но зачем знать что вводят игроки? Времена китов ферменса давно уже прошли) Вот накалякал чтобы выводило то что вводят админы
Код:
namespace Oxide.Plugins
{
    [Info("ChatUserCommand", "i-593", 1.0)]
    [Description("Plugin for log chatcomand in console and history")]

    class ChatUserCommand : HurtworldPlugin
    {
        bool admin_check(PlayerSession session) => session.IsAdmin;

        void OnChatCommand(PlayerSession session, string command, string[] args)
        {
             if(admin_check)
                  Log("",session.SteamId+" "+session.Name+" "+command);
        }
    
        void Log(string filename, string text) => LogToFile(filename, $"[{DateTime.Now}] {text}", this);
    }
}
 
можно сообщения админам отправлять - /admin_kozel'! :D
можно конечно отправлять такое в чат, логироваться будет в файле и выводится, что такую команду пытаешья ввести.

Остальные игроки видеть не будут.
[doublepost=1517407459,1517407236][/doublepost]
1.Убери лишние Using-и
2.У тебя много лишнего кода.Вот как надо сделать
Код:
namespace Oxide.Plugins
{
    [Info("ChatUserCommand", "i-593", 1.0)]
    [Description("Plugin for log chatcomand in console and history")]

    class ChatUserCommand : HurtworldPlugin
    {
        void OnChatCommand(PlayerSession session, string command, string[] args)=> Log("",session.SteamId+" "+session.Name+" "+command);
     
        void Log(string filename, string text) => LogToFile(filename, $"[{DateTime.Now}] {text}", this);
    }
}

А как же в твоём коде вывод в консоль?
Puts(session.SteamId+" "+session.Name+" "+command); //write in console-server (Puts)

или будет всё равно видно в консоли?

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

Разве будет значительная оптимизация?
[doublepost=1517407571][/doublepost]
Вроде так не сработает,если на сервере нет такой команды) Но зачем знать что вводят игроки? Времена китов ферменса давно уже прошли) Вот накалякал чтобы выводило то что вводят админы
Код:
namespace Oxide.Plugins
{
    [Info("ChatUserCommand", "i-593", 1.0)]
    [Description("Plugin for log chatcomand in console and history")]

    class ChatUserCommand : HurtworldPlugin
    {
        bool admin_check(PlayerSession session) => session.IsAdmin;

        void OnChatCommand(PlayerSession session, string command, string[] args)
        {
             if(admin_check)
                  Log("",session.SteamId+" "+session.Name+" "+command);
        }
   
        void Log(string filename, string text) => LogToFile(filename, $"[{DateTime.Now}] {text}", this);
    }
}

зачастую спрашивают как команду ввести, пишут что ввели правильно. Даже не могут повторить и путаются /clan invite и /clan event разные команды, а они пытаются ввести.

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

Остальные игроки видеть не будут.
[doublepost=1517407459,1517407236][/doublepost]

А как же в твоём коде вывод в консоль?
Puts(session.SteamId+" "+session.Name+" "+command); //write in console-server (Puts)

или будет всё равно видно в консоли?

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

Разве будет значительная оптимизация?
По моему если сделать вывод в консоль,то будет слишком много спама. Может даже если запилить макрос на быстрый ввод команд то сервер можно ддоснуть)) Когда у меня много сообщений в консоль выводилось то сервер начинал лагать.
 
По моему если сделать вывод в консоль,то будет слишком много спама. Может даже если запилить макрос на быстрый ввод команд то сервер можно ддоснуть)) Когда у меня много сообщений в консоль выводилось то сервер начинал лагать.

Когда пытаются спамить, авто mute выдаётся же.
Был один любитель таких вещей.
[doublepost=1517408047,1517407778][/doublepost]Я в C# не силён так то. Помню мучился долго с этими мини-плагином.

Можем туда config сделать, чтобы считывал из конфига инфу о том, нужно ли сообщения выводить в консоль или же не нужно?

Таким образом
PutsForConcole: true or false;

B в коде условие если в конфиги проставлено значение true и для false...

Конфиг вроде не так сложно подцепить.
 
Активность
Пока никто не печатает сообщение