
OPShield
Protects your server from OP/admin abuse with console-only OP (via password) and optional admin command restriction.
112
1
Список изменений
[1.7.0] - 2026-04-24 — Architecture Improvements & God Class Refactoring
🚀 Improvements
Architecture Refactoring
-
LockoutManager (NEW) — Extracted lockout logic from main class
- Centralized player/IP lockout state management
- Clean public API for lockout operations
- Expired lockout cleanup methods
-
ShadowBanManager (NEW) — Extracted shadow ban logic
- Shadow ban state tracking
- Fake action message generation
- Duration management with expiry cleanup
- Improved message consistency
Password Security
- PasswordHasher improvements — Enhanced password handling
- PBKDF2 iteration count configurable at runtime
- Legacy SHA-256 detection with
isLegacyHash()method - Iteration count validation (10,000 - 1,000,000 range)
- Better separation of hash versioning concerns
Code Organization
- Created
manager/package for extracting business logic - Reduced OPShield.java God Class burden
- Better separation of concerns
- Improved testability of individual components
Language Files
- Fixed grammar inconsistencies (e.g., "1 player" vs "1 players")
- Improved fake action message clarity
- Better error message wording
📊 Code Quality
Metrics
- Before: 1,172 LOC in single class (God Class)
- After: OPShield.java reduced + 2 new manager classes
- Managers Created: 2 (LockoutManager, ShadowBanManager)
- Lines Extracted: ~300+ from main class
Quality Improvements
- ✅ Reduced cyclomatic complexity in main class
- ✅ Improved code organization
- ✅ Better separation of concerns
- ✅ More testable components
- ✅ Easier to extend for future features
📝 Migration Notes
For existing servers:
- No database migration needed
- All configuration stays the same
- No command changes
- Direct drop-in JAR replacement
🔮 Future Work (v1.8.0+)
Recommended further refactoring:
- Extract
AutoPunishmentManagerfor ban/kick logic - Extract
IpLimitManagerfor IP tracking - Extract
CommandRestrictionManagerfor command validation - Create interface-based services for better testability
- Add unit tests for new manager classes
Файлы
opshield-1.7.0.jar(41.19 KiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.7.0
Загрузчики
BukkitPaperPurpurSpigot
Версии игры
1.21–1.21.11
Загрузок
4
Дата публикации
2 нед. назад
