
OnePVP
Functional and lightweight PVP plug for servers with Purpur/Paper technology... Maximum lightness, with immense functionality and more.
Список изменений
🐛 Critical Bug Fixed — PvP Behavior for Operators (OP) Issue Identified
The original JAR contained a truncated/corrupted PvpManager.class file, causing unintended PvP behavior:
Operators (OPs) could attack any player regardless of their PvP status. Regular players could not attack OPs because the system only validated the victim's PvP state. Solution Implemented BEFORE (Bugged): If attacker.isOp() → attack always allowed.
NOW (Fixed): EVERYONE, including OPs, must have PvP enabled to attack and receive damage.
The PvP validation logic has been completely rewritten and simplified:
attackerPvP && victimPvP Both players must have PvP enabled. Operators no longer receive automatic PvP bypass privileges. 🐛 Additional Bugs Fixed
Bug Fix
1 OPs bypassing PvP restrictions Removed the isOp() check from canAttack() 2 Sentence and protection data not persisting Added new_player_protection_expiry and sentence_expiry fields to the database 3 Confusing messages for OPs Added a dedicated message: "As an operator, you also need to use /pvp on." 4 Potential thread-safety issues Migrated all managers to use ConcurrentHashMap 5 Combat cooldown race conditions Previous tasks are now properly cancelled before creating new ones 6 ClanCommand missing clan chat toggle access Exposed getClanListener() in the main plugin class 🏰 Clan System Improvements
The clan system has received several quality-of-life upgrades and new features.
👑 Co-Leaders
A new clan role has been added:
CO_LEADER
Co-Leaders have intermediate management permissions, including:
/clan promote /clan demote
This allows leadership responsibilities to be shared without granting full ownership.
🔄 Leadership Transfer
Clan leaders can now transfer ownership directly:
/clan leader
This promotes better clan management and succession.
🟢 Online Member Indicators
Clan member lists now display player status indicators:
● Green → Online ● Gray → Offline
Making it easier to identify active members.
⬆️ Clan Level-Up Announcements
Whenever a clan levels up:
All online clan members receive a notification. Progress becomes more rewarding and visible. 💬 Improved Clan Chat
Clan chat can now be toggled using:
/clan chat
Players receive confirmation messages when enabling or disabling clan chat mode.
🤝 Advanced Clan Relations
Clan relationships now support:
Alliances Wars Neutral status
All with configurable validation and relationship limits.
⚡ Performance Improvements
OnePVP continues to focus heavily on optimization.
Database Optimization SQLite saves now use batch operations for multiple records. Reduces disk access and improves efficiency. Thread-Safe Caches All caches now utilize ConcurrentHashMap. Safer access across asynchronous tasks. Asynchronous Auto-Save Auto-save runs using runTaskTimerAsynchronously. Prevents the main server thread from being blocked. Complete Tab Completion
Every command now includes intelligent tab completion, providing suggestions for:
Players Subcommands Clan names Available options Command arguments 📋 Correct PvP Behavior
PvP now works consistently for everyone.
You (OP/Owner): /pvp on ← Required to attack Regular Player: /pvp on ← Required to attack
Both players have PvP enabled: ✔ Combat is allowed.
If either player has PvP disabled:
✖ Combat is blocked.
No hidden exceptions. No special treatment.
⚙️ Relevant Permissions Permission Default Description onepvp.pvp Everyone Allows players to use /pvp on and /pvp off onepvp.admin OP Grants access to administrative commands onepvp.bypass.pvp OP Allows the attacker to bypass their own PvP requirement
⚠️ Important: onepvp.bypass.pvp is not a full PvP bypass. It only removes the requirement for the attacker to enable PvP. The target must still have PvP enabled to receive damage. If you want complete fairness for all players, simply avoid granting this permission to anyone.
