- 7
- 15
SAMPQuery
SAMPQuery — это библиотека, которая позволяет запрашивать информацию о серверах SAMP и выполнять RCON команды. Включает в себя коррекцию кодировки, поддержка подключении по имен хоста, асинхронные запросы и многое другое.
Установка
Менеджер пакетов
Терминал
Package Reference
Клонировать репозиторию
Использование
Документация
Конструктор
Конструктор имеет перегрузки:
Имя хоста также поддерживается:
GetServerInfo
Запрашивает основную информацию о сервере
GetServerInfoAsync
Асинхронно запрашивает основную информацию о сервере
GetServerRules
Запрашивает правила, назначенные сервером
GetServerRulesAsync
Асинхронно запрашивает правила, назначенные сервером
GetServerPlayers
Запрашивает игроков в онлайне с детальной информацией (работает до 100 игроков, лимит SA-MP)
Максимальное значение ID игрока 255. Двухбайтовые идентификаторы не поддерживаются (ограничение SA-MP).
GetServerPlayersAsync
Асинхронно запрашивает игроков в онлайне с детальной информацией (работает до 100 игроков, лимит SA-MP)
Максимальное значение ID игрока 255. Двухбайтовые идентификаторы не поддерживаются (ограничение SA-MP).
SendRconCommand
Исполняет команду RCON
SendRconCommandAsync
Асинхронно исполняет команду RCON
ServerInfo
Класс, представляющий информацию о сервере. Свойства:
ServerRules
Класс, представляющий правила сервера. Свойства:
ServerPlayer
Класс, представляющий информацию об игроке. Свойства:
Благодарность
Оставайся на связи
SAMPQuery — это библиотека, которая позволяет запрашивать информацию о серверах SAMP и выполнять RCON команды. Включает в себя коррекцию кодировки, поддержка подключении по имен хоста, асинхронные запросы и многое другое.
Установка
Менеджер пакетов
Код:
Install-Package SAMPQuery -Version 1.1.0
Терминал
Bash:
$ dotnet add package SAMPQuery --version 1.1.0
Package Reference
XML:
<PackageReference Include="SAMPQuery" Version="1.1.0" />
Клонировать репозиторию
Bash:
$ git clone https://github.com/justmavi/sampquery.git
Использование
C#:
var server = new SampQuery("localhost", 7777);
ServerInfo serverInfo = await server.GetServerInfoAsync();
ServerRules serverRules = await server.GetServerRulesAsync();
IEnumerable<ServerPlayer> serverPlayers = await server.GetServerPlayersAsync();
Console.WriteLine($"Welcome to ${serverInfo.HostName}! Mapname: ${serverRules.MapName}");
Console.WriteLine("Players online:");
serverPlayers.ToList().ForEach(player => Console.WriteLine(player.PlayerName));
Документация
Конструктор
C#:
var server = new SampQuery("127.0.0.1", 7777);
Конструктор имеет перегрузки:
C#:
SampQuery(IPAddress ip, ushort port)
SampQuery(string ip, ushort port, string password)
SampQuery(IPAddress ip, ushort port, string password)
SampQuery(IPAddress ip) // будет использоваться дефолтный 7777 порт
SampQuery(string ip) // будет использоваться дефолтный 7777 порт. Также здесь поддерживается строка подключения формата "HOST:PORT".
Имя хоста также поддерживается:
C#:
var server = new SampQuery("localhost", 7777);
GetServerInfo
Запрашивает основную информацию о сервере
C#:
var server = new SampQuery("127.0.0.1", 7777);
ServerInfo data = server.GetServerInfo();
Console.WriteLine($"Server {data.HostName}. Online: {data.Players}/{data.MaxPlayers}");
GetServerInfoAsync
Асинхронно запрашивает основную информацию о сервере
C#:
var server = new SampQuery("127.0.0.1", 7777);
ServerInfo data = await server.GetServerInfoAsync();
Console.WriteLine($"Server {data.HostName}. Online: {data.Players}/{data.MaxPlayers}");
GetServerRules
Запрашивает правила, назначенные сервером
C#:
var server = new SampQuery("127.0.0.1", 7777);
ServerInfo data = server.GetServerRules();
Console.WriteLine($"Lagcomp {(data.Lagcomp ? "On" : "Off")}. Map: {data.MapName}. SAMPCAC: {data.SAMPCAC_Version ?? "Isn't required"}");
GetServerRulesAsync
Асинхронно запрашивает правила, назначенные сервером
C#:
var server = new SampQuery("127.0.0.1", 7777);
ServerInfo data = await server.GetServerRulesAsync();
Console.WriteLine($"Lagcomp {(data.Lagcomp ? "On" : "Off")}. Map: {data.MapName}. SAMPCAC: {data.SAMPCAC_Version ?? "Isn't required"}");
GetServerPlayers
Запрашивает игроков в онлайне с детальной информацией (работает до 100 игроков, лимит SA-MP)
C#:
var server = new SampQuery("127.0.0.1", 7777);
IEnumerable<ServerPlayer> players = server.GetServerPlayers();
Console.WriteLine("ID | Nick | Score | Ping\n");
foreach(ServerPlayer player in players)
{
Console.WriteLine($"{player.PlayerId} | {player.PlayerName} | {player.PlayerScore} | {player.PlayerPing}");
}
GetServerPlayersAsync
Асинхронно запрашивает игроков в онлайне с детальной информацией (работает до 100 игроков, лимит SA-MP)
C#:
var server = new SampQuery("127.0.0.1", 7777);
IEnumerable<ServerPlayer> players = await server.GetServerPlayersAsync();
Console.WriteLine("ID | Nick | Score | Ping\n");
foreach(ServerPlayer player in players)
{
Console.WriteLine($"{player.PlayerId} | {player.PlayerName} | {player.PlayerScore} | {player.PlayerPing}");
}
SendRconCommand
Исполняет команду RCON
C#:
var server = new SampQuery("127.0.0.1", 7777, "helloworld");
string answer = sampQuery.SendRconCommand("varlist");
Console.WriteLine($"Server says: {answer}");
SendRconCommandAsync
Асинхронно исполняет команду RCON
C#:
var server = new SampQuery("127.0.0.1", 7777, "helloworld");
string answer = await sampQuery.SendRconCommandAsync("varlist");
Console.WriteLine($"Server says: {answer}");
ServerInfo
Класс, представляющий информацию о сервере. Свойства:
- HostName
- GameMode
- Language
- Players
- MaxPlayers
- Password
- ServerPing
ServerRules
Класс, представляющий правила сервера. Свойства:
- Lagcomp
- MapName
- Version
- SAMPCAC_Version
- Weather
- Weburl
- WorldTime
- Gravity
ServerPlayer
Класс, представляющий информацию об игроке. Свойства:
- PlayerId
- PlayerName
- PlayerScore
- PlayerPing
Благодарность
- Отдельная благодарность @continue98 за помощь.
Оставайся на связи
- Автор — justmavi
Последнее редактирование: