Services - KickBanService
Updated a month agoKickBanService
KickBanService provides functionality for managing player kicks and bans in V Rising server, handling ban list operations and player removal from the server.
Overview
using ScarletCore.Services;
// Ban a player
KickBanService.Ban("PlayerName");
// Check if player is banned
bool isBanned = KickBanService.IsBanned("PlayerName");
// Kick a player
KickBanService.Kick("PlayerName");
Features
- Player banning with persistent storage
- Player kicking without permanent restrictions
- Multiple identification methods (name, platform ID, PlayerData)
- Ban status checking and management
- Automatic ban list persistence
- Built-in error handling and validation
Methods
Ban (PlayerData)
Adds a player to the ban list using PlayerData.
if (PlayerService.TryGetByName("PlayerName", out PlayerData player)) {
KickBanService.Ban(player);
}
Parameters:
playerData
- The player data containing platform ID
Ban (String)
Adds a player to the ban list by name.
KickBanService.Ban("PlayerName");
Parameters:
playerName
- The name of the player to ban
Behavior:
- Logs warning if player is not found
Ban (PlatformId)
Adds a player to the ban list and kicks them if they are currently online.
KickBanService.Ban(7656119800000000);
Parameters:
platformId
- The platform ID of the player to ban
Behavior:
- Creates ban event entity to immediately kick online players
- Adds player to persistent ban list
- Automatically saves and refreshes ban list
Unban (PlayerData)
Removes a player from the ban list using PlayerData.
if (PlayerService.TryGetByName("PlayerName", out PlayerData player)) {
KickBanService.Unban(player);
}
Parameters:
playerData
- The player data containing platform ID
Unban (String)
Removes a player from the ban list by name.
KickBanService.Unban("PlayerName");
Parameters:
playerName
- The name of the player to unban
Behavior:
- Logs warning if player is not found
Unban (PlatformId)
Removes a player from the ban list, allowing them to join the server again.
KickBanService.Unban(7656119800000000);
Parameters:
platformId
- The platform ID of the player to unban
Behavior:
- Removes player from ban list
- Automatically saves and refreshes ban list
IsBanned (PlayerData)
Checks if a player is currently banned using PlayerData.
if (PlayerService.TryGetByName("PlayerName", out PlayerData player)) {
bool banned = KickBanService.IsBanned(player);
if (banned) {
Log.Info("Player is banned");
}
}
Parameters:
playerData
- The player data containing platform ID
Returns: True if the player is banned, false otherwise
IsBanned (String)
Checks if a player is currently banned by name.
if (KickBanService.IsBanned("PlayerName")) {
Log.Info("Player is banned");
}
Parameters:
playerName
- The name of the player to check
Returns: True if the player is banned, false otherwise
Behavior:
- Logs warning if player is not found
- Returns false if player doesn't exist
IsBanned (PlatformId)
Checks if a player is currently banned.
bool banned = KickBanService.IsBanned(7656119800000000);
Parameters:
platformId
- The platform ID of the player to check
Returns: True if the player is banned, false otherwise
Kick (PlayerData)
Kicks a player from the server using PlayerData.
if (PlayerService.TryGetByName("PlayerName", out PlayerData player)) {
KickBanService.Kick(player);
}
Parameters:
playerData
- The player data containing platform ID
Kick (String)
Kicks a player from the server by name.
KickBanService.Kick("PlayerName");
Parameters:
playerName
- The name of the player to kick
Behavior:
- Logs warning if player is not found
Kick (UInt64)
Kicks a player from the server without adding them to the ban list.
KickBanService.Kick(7656119800000000);
Parameters:
platformId
- The platform ID of the player to kick
Behavior:
- Player can reconnect immediately after being kicked
- Creates kick event entity with appropriate network configuration
Usage Examples
Basic Ban Management
using ScarletCore.Services;
// Ban a player by name
KickBanService.Ban("PlayerName");
Log.Info("Player banned");
// Check ban status
if (KickBanService.IsBanned("PlayerName")) {
Log.Info("Player is currently banned");
}
// Unban a player
KickBanService.Unban("PlayerName");
Log.Info("Player unbanned");
Using Platform IDs
ulong platformId = 7656119800000000;
// Ban by platform ID
KickBanService.Ban(platformId);
// Check ban status by platform ID
if (KickBanService.IsBanned(platformId)) {
Log.Info("Player is banned");
}
// Unban by platform ID
KickBanService.Unban(platformId);
Using PlayerData Objects
if (PlayerService.TryGetByName("PlayerName", out PlayerData player)) {
// Ban using PlayerData
KickBanService.Ban(player);
// Check ban status
if (KickBanService.IsBanned(player)) {
Log.Info($"{player.Name} is banned");
}
// Unban the player
KickBanService.Unban(player);
}
Temporary Kicks vs Permanent Bans
// Temporary kick - player can reconnect immediately
KickBanService.Kick("PlayerName");
Log.Info("Player kicked (can reconnect)");
// Permanent ban - player cannot reconnect until unbanned
KickBanService.Ban("PlayerName");
Log.Info("Player banned (cannot reconnect)");
Moderation Workflow
// Check if player is already banned before taking action
if (!KickBanService.IsBanned("PlayerName")) {
// First offense - kick
KickBanService.Kick("PlayerName");
Log.Info("First offense - player kicked");
} else {
Log.Info("Player is already banned");
}
// For serious offenses - immediate ban
KickBanService.Ban("PlayerName");
Log.Info("Player banned for serious offense");
Important Notes
- Persistent storage - Ban list persists across server restarts
- Multiple identification - Use name, platform ID, or PlayerData object
- Kick vs Ban - Kicks are temporary, bans are permanent until removed
- Online player handling - Banning online players automatically kicks them
- Ban list management - Ban list is automatically saved and refreshed
Pages
- Data - Database
- Data - PlayerData
- Data - Settings
- Events - CustomEventManager
- Events - EventManager
- Events - OnAnyDeath
- Events - OnChatMessage
- Events - OnDealDamage
- Events - OnOtherDeath
- Events - OnPlayerDeath
- Events - OnServantDeath
- Events - OnVBloodDeath
- Services - AbilityService
- Services - AdminService
- Services - BuffService
- Services - ClanService
- Services - InventoryService
- Services - KickBanService
- Services - MessageService
- Services - PlayerService
- Services - RevealMapService
- Services - TeleportService
- Services - UnitSpawnerService
- Systems - ActionScheduler
- Systems - CoroutineHandler
- Systems - GameSystems
- Utils - Logger
- Utils - MathUtility
- Utils - RichTextFormatter