
Lock End
Lock or unlock the End globally. Blocks portals, teleports, commands. Lightweight, multilingual, and Paper 26.2+ compatible.
- Загрузки
- 5K
- Подписчики
- 10
- Обновлён
- 17 августа 2026 г.
- Лицензия
- All-Rights-Reserved
Опубликован 12 октября 2025 г.
🔒 Lock-End
Lock-End is a lightweight Minecraft plugin that allows server admins to globally lock or unlock access to the End dimension with a simple command. Perfect for survival servers, SMPs, events, or progression-based gameplay.
✨ Features
- 🔐 Lock/unlock the End with
/endlock(alias:/lock,/el) —endlock.toggle - 📋 Full tab completion for all commands
- 🖥️ Console can toggle without permission
- 🚫 Blocks player teleportation to End (portals,
/tp,/execute, plugin teleports) - 📢 Broadcast system (actionbar or chat) on lock/unlock
- 🔔 Optional join notifications for locked state
- 📝 Logging with history tracking
- 📊 bStats integration for anonymous usage statistics
- ⬆️ Update checker with clickable links for Ops
- 🌍 8 languages: EN, DE, FR, ES, IT, RU, ZH, JA
📜 Commands
| Command | Description | Permission |
|---|---|---|
/endlock |
Toggles the End lock | endlock.toggle |
/endlock lock |
Lock the End | endlock.admin |
/endlock unlock |
Unlock the End | endlock.admin |
/endlock status |
Show current lock status | — |
/endlock test |
Test if portal blocking works | (no permission, configurable) |
/endlock reload |
Reload configuration and dependent components | (no permission) |
/endlock history |
View recent lock/unlock history | endlock.history |
/endlock undo |
Undo the last lock/unlock action | endlock.undo |
/endlock validateconfig |
Validate configuration file | endlock.validate |
/endlock pause |
Pause scheduled unlock timers | endlock.admin |
/endlock resume |
Resume paused scheduled unlock timers | endlock.admin |
/endlock stats |
Show basic lock and block counters | (no permission) |
/endlock unlockin <days> |
Schedule an automatic unlock | endlock.toggle |
/endlock unlockat <yyyy-MM-dd> <HH:mm> |
Schedule an automatic unlock at a specific time | endlock.toggle |
/lock |
Alias for /endlock |
endlock.toggle |
/el |
Mobile-friendly alias for /endlock |
endlock.toggle |
🧩 Permissions
| Permission | Description | Default |
|---|---|---|
endlock.toggle |
Allows locking/unlocking the End | OP |
endlock.admin |
Allows locking/unlocking the End, pausing/resuming schedules, and using the test command | OP |
⚙️ Configuration
plugins/EndLock/config.yml
# EndLock Plugin Configuration
locked: false
language: en
lock-reason: "Maintenance"
# Update Checker: Notifications for available updates
update-checker:
enabled: true
notify-ops: true
notify-chat: true
# bStats Metrics
metrics:
enabled: true
# Broadcast: Send alerts to all players when End is locked/unlocked
broadcast:
enabled: true
use-actionbar: true # Send as action bar instead of chat
notify-all: true # Notify all players (if false, only Ops)
# v1.6: Preview notifications - Warn players before automatic lock/unlock
preview-notifications:
enabled: false
seconds: 30 # How many seconds before lock/unlock to send preview
# v1.6: Action bar customization
actionbar:
use-alt-char: false # Use alternate character for overflow handling
alt-char: "|"
# v1.6: Sound effects for access denial
sound-effects:
enabled: false
sound: "BLOCK_ANVIL_LAND"
volume: 1.0
pitch: 1.0
# v1.6: Lock reasons
lock-reasons:
default: "Maintenance"
maintenance: "Maintenance in progress"
event: "Event in progress"
# v1.6: Grace period - Temporary unlock after locking to allow safe exit
grace-period:
enabled: false
duration: 10 # seconds
# v1.6: Whitelists
whitelists:
players: [] # Player names that can bypass the lock
entities: [] # Entity types that can bypass the lock
# v1.6: Logging & Analytics
logging:
enabled: true
log-file: "EndLock.log" # Created in plugins/EndLock/logs/
log-attempts: true # Log attempted access to locked End
rate-limit-seconds: 5 # Minimum seconds between logged attempts per player
# v1.6: Schedule pause/resume
schedule:
paused: false
# Test Command: Allow /endlock test for Ops to verify blocking works
test-command:
enabled: true
# Optional statistics collection
stats:
enabled: true
lock-count: 0
blocked-count: 0
# Optional join notifications for players joining while the End is locked
join-notifications:
enabled: false
show-remaining: true
# Optional scheduled unlock
scheduled-unlock:
enabled: false
mode: "days" # days or datetime
days: 7
datetime: ""
# v1.6: Countdown timer
countdown:
enabled: true
interval: 10 # Seconds between countdown updates
start-before: 300 # Show countdown N seconds before unlock
# Optional integrations and formatting
hooks:
mini-message: true
placeholderapi: true
Available languages
| Code | Language |
|---|---|
en |
English |
de |
German |
fr |
French |
es |
Spanish |
it |
Italian |
ru |
Russian |
zh |
Chinese |
ja |
Japanese |
Customize messages in plugins/EndLock/messages_xx.yml (copy from the JAR or plugin folder after first run).
🧱 Compatibility
| Platform | Support |
|---|---|
| Paper 26.2+ | ✅ Recommended |
| Purpur 26.2+ | ✅ Paper-based, works |
| Spigot | ❌ Not supported |
- Minecraft:
26.2 - Java:
25
⚠️ Notes
- Only players are blocked — not mobs or items
- Players already inside the End when locking are not removed
- The End dimension remains accessible via commands that bypass the player check (e.g., certain custom plugins); this plugin blocks the common vanilla pathways.
💡 Example usage
/endlock
/lock
/el
/endlock status
/endlock unlockin 3
/endlock unlockat 2026-12-31 23:59
/endlock reload
/endlock history
/endlock undo
/endlock validateconfig
/endlock pause
/endlock resume
📦 Installation
- Download the latest release from Modrinth or GitHub Releases
- Put
lock-end-1.6.0.jarinto yourpluginsfolder - Restart your server (Paper 26.2+, Java 25)
- Edit
plugins/EndLock/config.ymlif you want to customize behavior
🔗 Links
Ченджлог
1.6.0Релиз26.2 · 17 августа 2026 г.
1.6.0 - 2026-08-17
Added
- Dependabot configuration for automatic Gradle and GitHub Actions updates
- Code quality workflow (Checkstyle, SpotBugs, Tests) running on PR/Push
- Checkstyle and SpotBugs plugins with default configurations
- Preview notifications feature fully integrated (scheduled unlock/lock previews)
- Sound effect configuration reload on
/reload - AsyncLogger properly restarted on config reload to avoid resource leaks
- Updated Gradle wrapper to 9.7
- Updated Java target version to 25 (while maintaining compatibility)
- Lock reasons: Customizable reason displayed when blocking (e.g., "Maintenance", "Event in progress") - can be configured in
config.ymland used in broadcast messages - Grace period: Temporary unlock after locking to allow players to exit safely - configurable duration in seconds
- Player/entity whitelists: Whitelisted players/entities can bypass the lock - configured in
config.ymlwith/whitelist addcommand - Preview notifications: Warn players X seconds before automatic lock/unlock - configurable in
config.yml - Sound effects: Play custom sounds when attempting to access locked End - configurable in
config.yml - Attempt rate limiting: Prevent log spam from rapid attempts - configurable in
config.yml - Detailed attempt logging: Log player name, source world, method used (portal/command/teleport) - fully configurable in
config.yml - Countdown timers: Visible countdown before scheduled lock/unlock - visible in chat during scheduled events
- Pause/resume schedules: Temporarily override scheduled events with
/endlock pauseand/endlock resume(permission:endlock.admin) - Lock history: View recent lock/unlock actions with
/endlock history(permission:endlock.history) - shows last 10 entries with timestamps - Undo last action: Quickly reverse the most recent lock/unlock command with
/endlock undo(permission:endlock.undo) - reverses last recorded action - Configuration validator: Check
config.ymlfor errors with/endlock validateconfig(permission:endlock.validate) - validates YAML syntax and required settings - Cached permission lookups: Optimize permission and configuration checks - uses PermissionCache for faster lookups
- Asynchronous logging: Move file I/O off main thread to prevent lag - async logger prevents server performance impact
- Mobile-friendly alias:
/elas short alias for/endlock
Fixed
- NullPointerException in LockReasonManager.getReasons() when lock-reasons section missing
- Case-sensitive player name comparison in WhitelistChecker (now case-insensitive)
- GracePeriodTask active flag made volatile for correct visibility between threads
- AsyncLogger thread leak on reload (previous instances now shut down)
- Missing preview notification scheduling for scheduled lock/unlock events
Changed
- GracePeriodTask logic unchanged (still unlocks after lock; behavior confirmed as intended)
- Updated build.gradle to include gradlePluginPortal() for plugin resolution
- Updated checkstyle config to minimal rule set
- Updated SpotBugs version to 6.5.10 (compatible with Gradle 9+)
- Updated
config.ymlwith new v1.6 options (preview-notifications, sound-effects, lock-reasons, grace-period, whitelists, logging.rate-limit-seconds, scheduled-unlock.countdown) - Updated
messages_en.ymlandmessages_de.ymlwith new message keys - Updated
plugin.ymlwith new commands and permissions - Consolidated all subcommands (history, undo, validateconfig) to be accessible only via
/endlock,/lock, and/elaliases to avoid command conflicts with other plugins
1.5.0Релиз26.2 · 15 августа 2026 г.
- Reload command:
/endlock reload(and/lock reload) to reload configuration without restart. - Permission
endlock.reload(default: op) for the reload command. - Default language set to English (
en). - All log messages and comments translated to English for consistency.
- Scheduled unlock now uses exact delay until the configured time (supports both days and datetime).
1.3Релиз26.1.1, 26.1.2, 26.2 · 16 июня 2026 г.
- 📋 Full tab completion support for all commands
- 📢 Broadcast notifications (actionbar + chat)
- 📝 Event logging with timestamps
- 🧪 Portal blocking test command
- ✅ Fixed a lot of bugs 🔄 Updated to the latest Minecraft/Paper version
1.1.0Релиз26.1.1, 26.1.2, 26.2-rc-2 · 24 мая 2026 г.
✅ Fixed a lot of bugs 🔄 Updated to the latest Minecraft/Paper version
Комментарии
Загружаем…