▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/OhTabListPing
OhTabListPing

OhTabListPing

High-performance Minecraft Tab List Ping Display Plugin compatible with Spigot/Paper 1.21.1+

58
0

OhTabListPing

Minecraft Version License GitHub

A high-performance Minecraft server plugin that displays each player's ping (latency) in the tab list with color-coded formatting.

Preview Brownies featured

Features

Real-time Ping Display - Shows ping values next to player names in the tab list
Color-Coded Indicators - Visual feedback for connection quality
In-Game Commands - View and modify configuration without editing files
High Performance - Async updates with intelligent caching
Fully Configurable - Customize format, colors, thresholds, and update intervals
Plugin Compatibility - Works alongside nickname and permission plugins
Optimized Updates - Only updates when ping changes significantly

Requirements

  • Minecraft Version: 1.21.1+ (Spigot or Paper)
  • Java Version: 21 or higher
  • Server Software: Spigot, Paper, or compatible forks

Installation

  1. Download the latest release (OhTabListPing-x.x.xx.jar) from Releases
  2. Place the JAR file in your server's plugins/ folder
  3. Restart your server or load the plugin with a plugin manager
  4. Configure (optional) - Edit plugins/OhTabListPing/config.yml to customize settings
  5. Reload the plugin if you changed the config: /otlp reload

Commands

Manage the plugin configuration in-game with intuitive commands:

Main Command

/ohtablistping [subcommand] [args...]
Aliases: /otlp, /ping-config

Subcommands

View Help

/otlp help

Displays all available commands and usage examples.

List All Config Values

/otlp list

Shows all current configuration values in a formatted display.

Get Specific Value

/otlp get <key>

Examples:
  /otlp get update-interval
  /otlp get debug
  /otlp get color-coding.thresholds.excellent

Set Configuration Value

/otlp set <key> <value>

Examples:
  /otlp set update-interval 60
  /otlp set debug true
  /otlp set ping-format "{player} [{color}{ping}ms]"
  /otlp set color-coding.colors.excellent §a

Reload Configuration

/otlp reload

Reloads config.yml from disk and restarts the update task with new settings.

Permissions

  • ohtablistping.admin - Full admin access (default: op)
  • ohtablistping.reload - Reload configuration only
  • ohtablistping.view - View config values only
  • ohtablistping.set - Modify config values only

Configuration

The plugin automatically creates a config.yml file on first run. Here's what you can customize:

# Update interval in ticks (20 ticks = 1 second)
update-interval: 40  # Recommended: 40 (2 seconds)

# Minimum ping change to trigger update (avoids unnecessary updates)
update-threshold: 5  # Only update if ping changed by 5+ ms

# Display format
ping-format: "{player} §7[{color}{ping}ms§7]"

# Color coding
color-coding:
  enabled: true
  colors:
    excellent: "§a"  # Green (0-50ms)
    good: "§e"       # Yellow (51-100ms)
    acceptable: "§6" # Gold (101-150ms)
    poor: "§c"       # Red (151+ms)
  thresholds:
    excellent: 50
    good: 100
    acceptable: 150

# Performance settings
async-updates: true  # Run updates asynchronously (recommended)
debug: false         # Enable debug logging

Format Placeholders

  • {player} - Player's username
  • {ping} - Current ping value
  • {color} - Automatically determined color code

Color Codes

Standard Minecraft color codes are supported:

  • §a - Green
  • §e - Yellow
  • §6 - Gold
  • §c - Red
  • §7 - Gray
  • §f - White

How It Works

  1. Scheduled Updates: The plugin runs a repeating task every update-interval ticks
  2. Ping Retrieval: Gets each player's ping using Player.getPing() API
  3. Smart Caching: Only updates display if ping changed by more than update-threshold
  4. Color Coding: Applies color based on ping quality thresholds
  5. Display Update: Updates the tab list player name with formatted ping

Performance

  • Async Execution: Updates run asynchronously to prevent server lag
  • Intelligent Caching: Avoids unnecessary updates using threshold system
  • Optimized String Operations: Pre-formatted color codes and efficient formatting
  • Low Memory Footprint: Minimal cache size (only UUID → ping map)

Benchmarks (tested with 100 players):

  • CPU Impact: < 0.1% per update cycle
  • Memory Usage: ~5KB additional RAM
  • TPS Impact: None (async operations)

Compatibility

Compatible With:

LuckPerms (permission prefixes)
EssentialsX (nicknames)
Vault (permission integration)
Most tab-modifying plugins (soft dependencies)

Server Software:

Spigot 1.21.1 Paper 1.21.1 Purpur 1.21.1 Other Spigot-based forks

Troubleshooting

Ping not showing in tab list

  1. Check that the plugin is enabled: /plugins
  2. Verify no errors in console during plugin startup
  3. Check config.yml is valid YAML syntax
  4. Try reloading the plugin: /reload confirm
  5. Ensure no conflicting plugins are overriding tab list

Display names appear truncated

  • Shorten the ping-format string in config
  • Tab list has character limits, keep format concise

Plugin conflicts with nickname plugins

  • OhTabListPing uses soft dependencies and MONITOR priority
  • It should work alongside most nickname plugins
  • If conflicts occur, try adjusting plugin load order

Performance issues

  • Increase update-interval (default: 40 ticks)
  • Increase update-threshold (default: 5ms)
  • Ensure async-updates is enabled (default: true)
  • Enable debug to check for errors

Building from Source

# Clone the repository
git clone https://github.com/anaspui/ohtablistping.git
cd ohtablistping

# Build with Maven
mvn clean package

# Output JAR will be in target/OhTabListPing-x.x.x.jar

Development

Project Structure

ohtablistping/
├── src/main/java/com/anaspui/ohtablistping/
│   ├── OhTabListPing.java         # Main plugin class
│   ├── ConfigManager.java         # Configuration handler
│   ├── TabListUpdater.java        # Ping update logic
│   ├── PlayerEventListener.java   # Event handlers
│   └── ConfigCommand.java         # Command executor
├── src/main/resources/
│   ├── plugin.yml                 # Plugin descriptor
│   └── config.yml                 # Default configuration
└── pom.xml                        # Maven build file

Technologies Used

  • Java 21 - Core language
  • Spigot API 1.21.1 - Minecraft server API
  • Maven - Build management
  • Bukkit Scheduler - Async task execution

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/xyz-feature)
  3. Commit your changes (git commit -m 'Add xyz feature')
  4. Push to the branch (git push origin feature/xyz-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

Author: anaspui

Built with LOVE! for the Minecraft community


⭐ If you find this plugin useful, please star the repository!

Совместимость

Minecraft: Java Edition

1.21.x

Платформы

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:MIT
Опубликован:2 месяца назад
Обновлён:2 месяца назад
Главная