PokePlugin v3 - The Ultimate Player Interaction & Privacy Update
🧩 Platform Support
Release Date: 20 October 2025
Maintained by: AlanTheDev
Public Brand Name: PokeNotify
🚀 Version Overview
PokePlugin v3 is a major technical refinement release focused on performance, thread safety, and reliability.
This version rebuilds the plugin core for faster initialization, platform-accurate scheduling, stronger privacy enforcement, and better cross-platform support — all while remaining lightweight and stable across Folia, Paper, Spigot, Purpur, and Bukkit servers.
🔹 Core System Changes
⚡ Database Initialization
- Converted async initialization to synchronous during plugin startup.
- Prevents server hang and ensures faster boot times (<1 second).
- Auto-disables the plugin if database creation or connection fails.
- Enhanced error reporting and recovery handling.
🧠 Scheduler System
- Implemented Platform-Aware Execution Model:
- Folia: Uses
player.getScheduler().run()(region-safe). - Others: Uses
Bukkit.getScheduler().runTask().
- Folia: Uses
- Database operations remain fully async-safe.
- GUI operations are automatically routed to the correct scheduler.
- Centralized utility ensures uniform task dispatching across all server types.
🔒 Privacy & Interaction Enhancements
✅ Poke Validation Improvements
- Verifies target’s privacy mode before sending a poke.
- Prevents poking blocked players or those who disabled pokes.
- Improved error messages for blocked/disabled targets.
- Admin command
/poke @abypasses all restrictions for announcements.
🧩 Enhanced Command System
- Added context-aware tab completion for:
/poke settings/poke allow/poke disable/poke block <player>/poke unblock <player>
- Autocompletes @a for admins.
- Sorted alphabetically for cleaner UX.
🎨 GUI & Event System
🪟 GUI Click Handling
- GUI interactions now use platform-specific thread handling.
- Fixed async inventory creation causing GUI not to open.
- Improved color code stripping for reliable item title detection.
- Separated logic paths for Folia vs Bukkit-based servers.
- Optional debug logs for developer builds.
🧭 Player GUI Experience
- Smooth transitions between settings and blocked players list.
- Dynamic sizing (auto-resizes up to 54 players).
- Fully thread-safe GUI operations.
🧱 Technical Stability Fixes
🛠 Server Hang on Startup
- Eliminated blocking
.join()calls. - Database operations no longer freeze the main thread.
- Startup initialization time: under 1 second on Folia.
⚙️ Cross-Platform Compatibility
- Fixed Folia scheduler conflicts and Paper async issues.
- Corrected Bukkit main-thread violations.
- Fully tested on 1.20.x – 1.21.4 versions.
💾 Database Thread Safety
- All SQLite calls are fully asynchronous.
- Prevents concurrent modification and threading issues.
- Uses PreparedStatements for SQL injection protection.
- UUID validation and malformed data filtering added.
✨ Message & Localization Updates
- Fixed placeholder replacements (
%poke_status%,%poke_privacy%) across all message contexts. - Corrected color formatting (now supports
&and§codes). - Added multi-line message support for cleaner formatting.
- Hot-reload compatible with
/poke reload.
🔐 Security & Permissions
- Players can now block unwanted pokes with full privacy enforcement.
- Blocked players cannot detect their status (hidden protection).
- Permission validation for all commands:
pokeplugin.settings– Access to player settings GUI (default: true)pokeplugin.admin– Use/poke @a(default: op)
- Database hardened with safe query execution and data filtering.
📊 Performance & Metrics
- Fully integrated bStats (Plugin ID: 27606).
- Tracks installations, Minecraft versions, and platforms.
- Automatically relocates metrics package to
com.alan.pokePlugin.metrics. - Lightweight — adds <5KB overhead to plugin size.
🧩 Configuration Overview
privacy:
default-mode: ALLOW_ALL # Default privacy for new players
database:
type: sqlite
file: data/pokedata.db
placeholders:
enabled: true
gui:
enabled: true
title: "&aPoke Settings"
size: 27
metrics:
enabled: true
debug: false # Enable detailed debug logging
🧩 Platform Support
PokePlugin v2 Changelog
Release Date: 16 October 2025
Upgrade Highlights: This update focuses on player privacy, admin broadcast features, cross-platform threading improvements, GUI settings, and better analytics integration.
🔹 New Features (V2)
- Player Privacy System: Players can now choose to disable being poked by everyone or specific players.
- Admin Broadcast
/poke @a: Admins can poke all players at once, bypassing individual privacy settings, ideal for announcements. - GUI Settings Menu: Players can manage their poke preferences with a clean in-game interface (
/poke settings). - Block/Unblock System: Allow or block individual players from poking you.
- SQLite Database Integration: Persistent storage for privacy settings, poke logs, and block lists.
- PlaceholderAPI Support: Dynamic placeholders
%poke_status%and%poke_privacy%for messages. - Multi-Language Support: Easily localize messages using
messages.yml. - bStats Integration: Collect usage metrics (Plugin ID: 27606) for analytics.
- Enhanced Startup Logging: Fully aligned 50-character console banner for all platforms (Bukkit, Spigot, Paper, Purpur, Folia).
🔹 Improvements & Optimizations
- Platform-Aware Scheduler: Automatic detection and optimized threading for Folia, Paper, Spigot, Purpur, and Bukkit.
- Async Database Operations: All SQLite reads/writes handled asynchronously for performance.
- GUI Thread Safety: Ensures all GUI interactions run on the correct scheduler depending on platform.
- Improved Event Handling: Strips color codes, adds null checks, and fixes click detection issues.
- Logging Enhancements:
[Folia]or[Bukkit]prefixes for clear debugging.
🔹 Bug Fixes
- Fixed GUI creation issues on Folia and Bukkit.
- Fixed potential crashes due to null player references.
- Fixed color code handling in poke notifications.
- Fixed async callback issues when saving or loading player settings.
PokePlugin V2 — maintained by AlanTheDev, compatible with all major Minecraft server platforms (Bukkit, Spigot, Paper, Purpur, Folia).
🧩 Platform Support
📜 Changelog
PokeNotify — Version 1.0.0
Codename: “The Friendly Jab”
Release Date: 16 October 2025
🚀 Version 1.0.0
Initial Release Highlights
- Added
/poke <player>command for sending poke notifications. - Introduced 3-hour cooldown system to prevent spam.
- Integrated Vault for economy transactions (soft-dependency).
- Added configurable poke cost (default: $50 per poke).
- Implemented chat, sound, and title notifications for poke events.
- Designed config.yml with editable messages and options.
- Added permissions system:
poke.use→ allows poking other players.poke.bypass.cooldown→ ignores cooldown.poke.bypass.cost→ ignores poke cost.
- Cross-platform compatibility:
- Paper, Spigot, Purpur, Bukkit, and Folia (region-thread safe).
- Optimized for lightweight performance (<100KB) and async operations.
🧠 Developer Notes
- Built with Java 17 and Paper 1.21.4 API.
- Uses Vault API (v1.7) for economy hooks.
- Fully compatible with Folia’s concurrency model.
- No external dependencies beyond Vault.



