
NDPlayerStats
✨ Track and display player stats – kills, deaths, killstreak, KD ratio, play time, and more features ✨
Оцените первым
479
1
Список изменений
New Features
- /ndps lookup
- Now works on offline players (can be disabled in config.yml) - Better configuration organization - All command formatting moved from messages.yml to config.yml
Changes
/statscommand formatting moved from messages.yml to config.yml/leaderboardsplit into separate sections for kills and kd in config/ndps lookupformatting added to config.yml (fully customizable)- Offline player lookup for
/ndps lookupis configurable in config.yml
config.yml
# NDPlayerStats Configuration v1.5.1
# Author: Kubass1 - https://kubass.cz/
# ⚠ IMPORTANT: Changing database type requires server restart!
# Edit this file, save it, then restart the server.
# ============================================================
# DATABASE SETTINGS
# ============================================================
database:
# Database type: YAML, MYSQL, or SQLITE
# ⚠ WARNING: Changing this requires server restart!
type: YAML
# SQLite settings (only used when type: SQLITE)
sqlite:
# Name of the SQLite database file
filename: database.db
# MySQL settings (only used when type: MYSQL)
mysql:
# MySQL server address
host: localhost
# MySQL server port
port: 3306
# Name of the database to use
database: mc_server
# Database username
username: root
# Database password
password: ''
# Prefix for all table names (useful for multiple plugins sharing one database)
table-prefix: ndps_
# Enable SSL for MySQL connection
ssl: false
# ============================================================
# UPDATE CHECKER
# ============================================================
# Enable or disable automatic update checking
check-update: true
# ============================================================
# LEADERBOARD SETTINGS
# ============================================================
leaderboard:
# Enable or disable the leaderboard feature
enabled: true
# How many players to show in the leaderboard
size: 10
# How often to auto-update leaderboard cache in seconds (0 = disabled)
update-interval: 60
# Maximum position for placeholders (e.g. %ndplayerstats_kills_100%)
max-position: 100
# Default mode for /leaderboard: "kills" or "kd"
default-mode: kills
# Custom colors for each rank position
colors:
'1': '&6' # #1 - Gold
'2': '&7' # #2 - Silver
'3': '&8' # #3 - Bronze
'4': '&e' # #4 - Yellow
'5': '&e' # #5 - Yellow
'6': '&e' # #6 - Yellow
'7': '&e' # #7 - Yellow
'8': '&e' # #8 - Yellow
'9': '&e' # #9 - Yellow
'10': '&e' # #10 - Yellow
others: '&f' # All other ranks - White
# ============================================================
# RANK SETTINGS
# ============================================================
ranks:
# Enable or disable the ranking system completely
enabled: true
# Show [Unranked] for players with no stats
show-unranked: true
# Text to display for unranked players
unranked-text: Unranked
# Color for unranked text
unranked-color: '&7'
# Maximum rank number to display (ranks above this will show as 999+)
max-display-rank: 999
# Show [999+] for ranks above max-display-rank
show-max-plus: true
# Text for ranks above max-display-rank
max-plus-text: 999+
# Color for max-plus text
max-plus-color: '&8'
# Minimum kills required to get a rank
minimum-kills: 0
# ============================================================
# ADMIN COMMAND SETTINGS
# ============================================================
admin-command:
# Allow /ndps lookup to work for offline players
lookup-offline-players: true
# ============================================================
# STATS COMMAND (/stats)
# ============================================================
# All placeholders available for /stats command:
# {player} - Player name
# {kills} - Total kills
# {deaths} - Total deaths
# {pvp_kills} - PvP kills
# {pve_kills} - PvE kills
# {pvp_deaths} - PvP deaths
# {pve_deaths} - PvE deaths
# {kd} - K/D Ratio (formatted with 2 decimals)
# {pvp_kd} - PvP K/D Ratio
# {pve_kd} - PvE K/D Ratio
# {killstreak} - Current killstreak
# {rank} - Player rank (e.g., #5 or "Unranked")
# {playtime} - Formatted play time (e.g., "2d 5h 30m")
stats-command:
1: "&6&l{player}'s Statistics"
2: "&7══════════════════════════"
3: "&7Kills: &e{kills}"
4: "&7Deaths: &e{deaths}"
5: "&7K/D Ratio: &e{kd}"
6: "&7Killstreak: &e{killstreak}"
7: "&7Rank: &e{rank}"
8: "&7Play Time: &e{playtime}"
9: "&7══════════════════════════"
# Text for players without a rank
stats-unranked: "Unranked (no stats)"
# ============================================================
# LEADERBOARD COMMAND (/leaderboard)
# ============================================================
# All placeholders available for leaderboard:
# {size} - Number of players per page
# {page} - Current page number
# {total} - Total number of pages
# {total_players} - Total number of players with stats
# {rank} - Player rank position
# {color} - Color based on rank position (from config)
# {player} - Player name
# {kills} - Number of kills
# {kd} - K/D Ratio (formatted with 2 decimals)
# {mode} - Current mode (kills or kd)
leaderboard-kills-command:
1: "&8&m &r &6&lTop {size} Players (Kills) - Page {page}/{total} &r &8&m "
2: "&7{rank}. {color}{player} &8- &a{kills} kills"
3: "&7Showing page {page} of {total} (Total: {total_players} players)"
4: "&7Use /leaderboard kills <page> for more"
leaderboard-kd-command:
1: "&8&m &r &6&lTop {size} Players (K/D) - Page {page}/{total} &r &8&m "
2: "&7{rank}. {color}{player} &8- &a{kd} K/D"
3: "&7Showing page {page} of {total} (Total: {total_players} players)"
4: "&7Use /leaderboard kd <page> for more"
# Leaderboard status messages
leaderboard-disabled: "{prefix}&cThe leaderboard is currently disabled!"
leaderboard-no-players: "&7No players with statistics yet!"
# ============================================================
# ADMIN LOOKUP COMMAND (/ndps lookup)
# ============================================================
# All placeholders available for /ndps lookup:
# {player} - Player name
# {uuid} - Player's UUID
# {kills} - Total kills
# {deaths} - Total deaths
# {pvp_kills} - PvP kills
# {pve_kills} - PvE kills
# {pvp_deaths} - PvP deaths
# {pve_deaths} - PvE deaths
# {kd} - K/D Ratio (formatted with 2 decimals)
# {pvp_kd} - PvP K/D Ratio
# {pve_kd} - PvE K/D Ratio
# {killstreak} - Current killstreak
# {highest_killstreak} - Highest killstreak
# {playtime} - Formatted play time
# {rank} - Player rank (e.g., #5 or "Unranked")
admin-lookup-command:
1: "&6=== {player}'s Stats ==="
2: "&eUUID: &f{uuid}"
3: "&eKills: &f{kills}"
4: "&eDeaths: &f{deaths}"
5: "&eK/D: &f{kd}"
6: "&eKillstreak: &f{killstreak}"
7: "&eHighest Killstreak: &f{highest_killstreak}"
8: "&ePlay Time: &f{playtime}"
9: "&eRank: &f{rank}"
10: "&7══════════════════════════"
# ============================================================
# STATISTICS TRACKING
# ============================================================
stats:
# Track total play time for each player
track-play-time: true
# Track PvP kills separately (kills against players)
track-pvp-kills: true
# Track PvE kills separately (kills against mobs/animals)
track-pve-kills: true
# Track the highest killstreak a player has achieved
track-highest-killstreak: true
# Death tracking settings
death-tracking:
# Enable or disable death tracking completely
enabled: true
# What types of deaths to count
count-pvp-deaths: true # Killed by another player
count-pve-deaths: true # Killed by mobs/animals
count-environmental-deaths: true # Fall damage, fire, lava, etc.
count-void-deaths: true # Falling into the void
count-✨-deaths: true # Self-inflicted deaths (e.g. /kill)
# World restrictions (empty list = all worlds)
enabled-worlds: []
excluded-worlds: []
# Minimum playtime required before deaths start counting
minimum-playtime-minutes: 0
# ============================================================
# ANTI-KILL ABUSE SETTINGS (TIME-WINDOW MODE)
# ============================================================
anti-kill-abuse:
# Enable or disable anti-kill abuse protection
enabled: true
# Maximum kills allowed within the time window against the same player
# Example: 2 means if 2 kills happen within time-window-seconds, cooldown activates
max-kills-per-victim: 2
# Time window in seconds to check for kills
# Example: 30 means if 2 kills happen within 30 seconds, cooldown activates
time-window-seconds: 30
# How long the cooldown lasts in seconds after abuse is detected
# Example: 60 means after abuse detected, player cannot kill victim for 60 seconds
cooldown-seconds: 60
# Should death be counted when a kill is blocked?
# true = victim gets death, false = victim does NOT get death
count-death-on-abuse: true
# Should the killer receive a message when a kill is blocked?
notify-killer: true
# Should the victim receive a message when a kill is blocked?
notify-victim: true
# Players with this permission will bypass the check
bypass-permission: "ndplayerstats.antiabuse.bypass"
# World restrictions (empty list = all worlds)
enabled-worlds: []
excluded-worlds: []
# ============================================================
# GUI SETTINGS
# ============================================================
gui:
# Title of the statistics GUI
title: '&9{player}''s Statistics'
# GUI size (must be multiple of 9, between 9 and 54)
size: 27
# Items displayed in the GUI
items:
# Kills item
kills:
material: DIAMOND_SWORD
slot: 11
name: '&aKills'
lore:
- '&7Total kills: &f{kills}'
- '&7PvP kills: &f{pvp_kills}'
- '&7PvE kills: &f{pve_kills}'
- '&7Rank: &f{rank}'
# Deaths item
deaths:
material: SKELETON_SKULL
slot: 13
name: '&6Deaths'
lore:
- '&7Total deaths: &f{deaths}'
- '&7PvP deaths: &f{pvp_deaths}'
- '&7PvE deaths: &f{pve_deaths}'
- '&7K/D Ratio: &f{kd}'
# Killstreak item
killstreak:
material: TOTEM_OF_UNDYING
slot: 15
name: '&2Killstreak'
lore:
- '&7Current: &f{killstreak}'
- '&7Highest: &f{highest_killstreak}'
# Player info item (head)
info:
material: PLAYER_HEAD
slot: 4
name: '&e{player}'
lore:
- '&7Click to refresh'
- ''
- '&7Play Time: &f{playtime}'
# ============================================================
# PLACEHOLDERAPI SETTINGS
# ============================================================
placeholderapi:
# Enable or disable PlaceholderAPI support
enabled: true
# Notify OPs when PlaceholderAPI is enabled/disabled
notify-ops: true
# ============================================================
# PERFORMANCE SETTINGS
# ============================================================
performance:
# Cache statistics for better performance
cache-stats: true
# How long to keep cached data in seconds
cache-ttl: 300
# How often to auto-save statistics to disk in seconds
save-interval: 300
# Use asynchronous operations to avoid lag
async-operations: true
# ============================================================
# NOTES
# ============================================================
# 🔴 SERVER RESTART REQUIRED FOR:
# - Changing database type (YAML/MySQL/SQLite)
# - Changing database connection settings
#
# ✅ Can be reloaded with /ndps reload:
# - All other settings including death tracking, ranks,
# leaderboard, GUI, performance, anti-kill-abuse
# - All text messages in messages.yml
messages.yml
# ============================================================
# NDPlayerStats Messages
# All messages can be customized. Use & for color codes.
# Placeholders: {prefix}, {player}, {count}, etc.
# ============================================================
# ============================================================
# PREFIX
# ============================================================
# This prefix is used in all messages that contain {prefix}
prefix: "&8[&6NDStats&8] &r"
# ============================================================
# COMMAND MESSAGES
# ============================================================
# Message shown when a player doesn't have permission
no-permission: "{prefix}&cYou don't have permission to use this command!"
# Message shown when a command is used by console but requires a player
player-only: "{prefix}&cThis command can only be used by players!"
# Message shown when a player is not found
player-not-found: "{prefix}&cPlayer &e{player} &cnot found!"
# Message shown when a command is used incorrectly
usage: "{prefix}&cUsage: &7{usage}"
# ============================================================
# STATS RESET MESSAGES
# ============================================================
# Message when a player's stats are reset
stats-reset: "{prefix}&aStatistics for &e{player} &ahave been reset!"
# Notification sent to the player when their stats are reset
stats-reset-notify: "&cYour statistics have been reset by an administrator."
# Broadcast message when all stats are reset
stats-all-reset: "&cAll player statistics have been reset by an administrator."
# Success message when all stats are reset
stats-all-reset-success: "&aSuccessfully reset statistics for &e{count} &aplayers!"
# Error message when resetting all stats fails
stats-all-reset-error: "&cFailed to reset all statistics: {error}"
# Warning message before resetting all stats
stats-all-reset-warning: "&c&lWARNING: This will reset ALL player statistics!"
# Second warning line
stats-all-reset-warning2: "&cThis action cannot be undone!"
# Confirmation prompt for resetting all stats
stats-all-reset-confirm: "&eType &6/resetstatsall confirm &eto reset all stats"
# Message when resetting all stats using SQL
stats-all-reset-sql: "&eResetting all statistics using SQL..."
# ============================================================
# GUI MESSAGES (/statsgui)
# ============================================================
gui:
# Message when opening GUI for another player
opening: "{prefix}&aOpening statistics for &e{player}..."
# Message when refreshing the GUI
refreshed: "&aStatistics refreshed!"
# Message when a player is offline
player-offline: "&cPlayer {player} is not online. Use /stats instead."
# ============================================================
# ANTI-KILL ABUSE MESSAGES
# ============================================================
anti-kill-abuse:
# Message shown to killer when kill is blocked
# {victim} = name of the victim
killer-message: "{prefix}&cYou have killed {victim} too many times! Kill not counted."
# Message shown to victim when kill is blocked
# {killer} = name of the killer
# {death} = "counted" or "not counted" (based on count-death-on-abuse config)
victim-message-death-counted: "{prefix}&aKill blocked! You were killed too many times by {killer}. Death counted."
victim-message-death-not-counted: "{prefix}&aKill and death blocked! You were killed too many times by {killer}."
# ============================================================
# ADMIN COMMAND MESSAGES (/ndps)
# ============================================================
admin:
# Success message after reload
reloaded: "{prefix}&aConfiguration reloaded!"
# Error message during reload
reload-error: "&cError during reload: {error}"
# Help menu
help-header: "&6=== NDPlayerStats Admin ==="
help-reload: "&e/ndps reload &7- Reload config"
help-lookup: "&e/ndps lookup <player> &7- Lookup player stats"
help-info: "&e/ndps info &7- Show plugin info"
help-help: "&e/ndps help &7- Show this help"
help-update: "&e/ndps update &7- Check for updates"
help-note: "&cNote: Database type changes require server restart!"
update-checking: "&eChecking for updates..."
update-failed: "&cFailed to check for updates. Check console for details."
# Info command
info-header: "&6=== NDPlayerStats Info ==="
info-version: "&eVersion: &f{version}"
info-author: "&eAuthor: &f{author}"
info-database: "&eDatabase: &f{database}"
info-ranks: "&eRanks: &f{ranks}"
info-papi: "&ePlaceholderAPI: &f{papi}"
# Unknown command
unknown-command: "&cUnknown command. Use /ndps help"
# Database change warnings
db-change-warning: "&cDatabase type changed from {old} to {new}!"
db-change-restart: "&cDatabase type changes require server restart!"
db-change-using: "&eUsing {current} until server restart."
# ============================================================
# PLACEHOLDERAPI MESSAGES
# ============================================================
# Message when PlaceholderAPI support is enabled
papi-enabled: "&a[NDStats] PlaceholderAPI support enabled!"
# Example placeholder usage
papi-example: "&7Use %ndplayerstats_kills%, %ndplayerstats_pvp_kills%, %ndplayerstats_pve_kills%"
# ============================================================
# DATABASE CONNECTION ERROR MESSAGES
# ============================================================
# Message when database connection fails
db-failed: "&c[NDStats] Failed to connect to database!"
# Message to check console for details
db-check-console: "&cCheck console for details."
# Message showing the configured database type
db-config-type: "&eConfig database type: {type}"
Файлы
ndplayerstats-1.5.1.jar(414.40 KiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.5.1
Загрузчики
BukkitPaperPurpurSpigot
Версии игры
1.15–26.2
Загрузок
55
Дата публикации
19.07.2026
