Для добавления поддержки плагина EnhancedBanSystem и проверки бана игрока на сервере в вашем плагине на Rust на C#, вам нужно вызвать соответствующие методы из EnhancedBanSystem для проверки статуса бана игрока. Ниже приведен пример кода с добавленной поддержкой EnhancedBanSystem и проверкой бана игрока:
C#:
using Oxide.Core;
using System;
using Rust;
namespace YourNamespace
{
public class IPBanPlugin : RustPlugin
{
void Init()
{
LoadDefaultMessages();
}
void OnPlayerInit(BasePlayer player)
{
if (IsPlayerBanned(player.UserIDString))
{
Puts($"Player {player.displayName} is already banned.");
player.Kick("You are banned from the server.");
}
}
bool IsPlayerBanned(string userID)
{
object banStatus = EnhancedBanSystem?.Call("IsBanned", userID);
if (banStatus is bool)
{
return (bool)banStatus;
}
return false;
}
}
}
В данном коде метод
OnPlayerInit
вызывает функцию
IsPlayerBanned
, которая проверяет статус бана игрока по его
userID
. Если игрок забанен, то выводится сообщение и игроку накладывается кик с уведомлением о бане.
Убедитесь, что EnhancedBanSystem подключен к серверу и его методы доступны для вызова из вашего плагина. Также удостоверьтесь, что обращение к EnhancedBanSystem происходит корректно.
Если у вас возникнут дополнительные вопросы или потребуется дальнейшая помощь, не стесняйтесь обращаться. Удачи в разработке вашего плагина для Rust с поддержкой EnhancedBanSystem!
Добавь поддержку плагина EnhancedBanSystem и проверку бана игрока на сервере
using System.Collections.Generic;
using Oxide.Core;
using Rust;
namespace YourNamespace
{
public class IPBanPlugin : RustPlugin
{
private Dictionary<ulong, List<string>> playerBanHistory = new Dictionary<ulong, List<string>>();
private Dictionary<ulong, string> playerIPs = new Dictionary<ulong, string>();
void Init()
{
LoadDefaultMessages();
}
void OnPlayerInit(BasePlayer player)
{
string playerIP = player.net.connection.ipaddress;
ulong playerID = player.userID;
// Проверка истории банов игрока
if (playerBanHistory.ContainsKey(playerID))
{
List<string> banHistory = playerBanHistory[playerID];
foreach (string banReason in banHistory)
{
Puts($"Player {player.displayName} was previously banned for: {banReason}");
}
}
// Проверка смены IP адреса
if (playerIPs.ContainsKey(playerID))
{
string storedIP = playerIPs[playerID];
if (playerIP != storedIP)
{
BanPlayer(player, "IP address change detected.");
Puts($"Player {player.displayName} has been banned for changing IP address.");
return;
}
}
else
{
playerIPs[playerID] = playerIP;
}
}
void BanPlayer(BasePlayer player, string reason)
{
serverusers?.Call("ServerUsers.Remove", player.UserIDString); // Пример удаления игрока из списка разрешенных
player.Kick(reason);
// Добавление информации о бане в историю банов игрока
ulong playerID = player.userID;
if (!playerBanHistory.ContainsKey(playerID))
{
playerBanHistory[playerID] = new List<string>();
}
playerBanHistory[playerID].Add(reason);
}
}
}