
Lock End
Lock or unlock the End globally. Blocks portals, teleports, commands. Lightweight, multilingual, and MC 26.3+ compatible.
Автор: vwtfafa7,3 тыс.11обновлён 26 окт. 2026 г.
Механики игрыУправлениеУтилиты
Описание
🔒 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 (native Brigadier suggestions)
- 🖥️ Console can toggle without permission
- 🚫 Blocks player teleportation to End (portals,
/tp,/execute, plugin teleports) - 📢 Broadcast system (actionbar or chat) on lock/unlock
- 🕒 Restart-safe scheduled unlocks with absolute target times
- 🔒 Schedule a future lock with
/endlock lockin <minutes>or/endlock lockat <yyyy-MM-dd> <HH:mm> - 📅 Inspect and clear schedules with
/endlock schedule statusand/endlock schedule clear - 🛡️ Bypass rules by player name, UUID, world, or world-specific permission
- 🧩 PlaceholderAPI values for status, reason, timing, blocked attempts, and schedules
- 🧾 Structured audit history with pagination and JSON/CSV export
- 🔍 Filter history by player or action with tab completion
- 🚨 Optional evacuation: warn and move players out of the End after locking
- 🔔 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 | endlock.admin |
/endlock reload | Reload configuration and dependent components | endlock.reload |
/endlock history | View recent lock/unlock history | endlock.history |
| `/endlock history [player | action ]` | Filter history by player or action |
/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 unlockin <duration> | Schedule an automatic unlock, e.g. 12h or 7d | endlock.toggle |
/endlock unlockat <yyyy-MM-dd> <HH:mm> | Schedule an automatic unlock at a specific time | endlock.toggle |
/endlock lockin <minutes> | Schedule an automatic lock | endlock.toggle |
/endlock lockin <duration> | Schedule an automatic lock, e.g. 30m or 2h | endlock.toggle |
/endlock lockat <yyyy-MM-dd> <HH:mm> | Schedule an automatic lock at a specific time | endlock.toggle |
/endlock lock in <duration> / unlock in <duration> | Natural alias, e.g. lock in 5m | endlock.toggle |
/endlock schedule status | Show the active schedule | endlock.admin |
/endlock schedule clear | Clear the active schedule | endlock.admin |
/lock | Alias for /endlock | endlock.toggle |
/el | Mobile-friendly alias for /endlock | endlock.toggle |
The base commands do not have a global permission in plugin.yml; each subcommand checks its own permission. This keeps public commands such as status and stats available while protecting administrative actions.
🧩 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
config-version: 2
locked: false
language: en # Supported: de en es fr it ja ru zh
# End access scope. An empty world list means all End worlds.
end:
worlds: []
block-end-gateway: true
block-entities: true # Also block non-player entities from entering the End
# Update Checker: Notifications for available updates
update-checker:
enabled: true
notify-ops: true
notify-chat: 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)
# Preview notifications - Warn players before automatic lock/unlock
preview-notifications:
enabled: false
seconds: 30 # How many seconds before lock/unlock to send preview
# Sound effects for access denial
sound-effects:
enabled: false
sound: "BLOCK_ANVIL_LAND" # Enum style or namespaced key (minecraft:block.anvil.land)
volume: 1.0
pitch: 1.0
# Lock reasons - Customizable reasons shown when blocking
lock-reasons:
default: "Maintenance"
maintenance: "Maintenance in progress"
event: "Event in progress"
# Grace period - Delays enforcement of a new lock so players inside the
# End can finish and leave safely. Access is blocked once it ends.
grace-period:
enabled: false
duration: 10 # seconds
# Whitelists - Players, UUIDs, and worlds that can bypass the lock
whitelists:
players: [] # Player names that can bypass the lock
uuids: [] # Player UUIDs that can bypass the lock
worlds: [] # End world names where players can bypass the lock
# Evacuation - Optional removal of players already inside the End when locking
evacuation:
enabled: false
warning-seconds: 10
target-world: "world"
exclude-bypass: true
# Logging - Audit log for lock actions and access attempts
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
# Schedule pause/resume - Temporarily override scheduled events
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
unlock-count: 0
blocked-count: 0
evacuated-count: 0
# Lock history storage
history:
max-entries: 1000 # Oldest entries are dropped beyond this size
retention-days: 30 # Entries older than this are removed (<=0 keeps forever)
# Optional join notifications for players joining while the End is locked
join-notifications:
enabled: false
# Optional scheduled unlock
scheduled-unlock:
enabled: false
action: "unlock" # lock or unlock
mode: "days" # days or datetime
days: 7
datetime: ""
target-datetime: "" # Internal absolute target, persisted across restarts
# Countdown timer - Visible countdown before scheduled lock/unlock
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.3+ | ✅ Recommended |
| Purpur 26.3+ | ✅ Paper-based, works |
| Spigot | ❌ Not supported |
| Folia | ❌ Not supported |
- Minecraft:
26.3 - Java:
25
⚠️ Notes
- Players and, when enabled, non-player entities are blocked from entering the End (
end.block-entities, enabled by default) - Players already inside the End when locking stay there unless
evacuation.enabledis set (then they are warned and teleported out) - 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-2.1.0.jarinto yourpluginsfolder - Restart your server (Paper 26.3+, Java 25)
- Edit
plugins/EndLock/config.ymlif you want to customize behavior
🔗 Links
Последние версии
Все версии →release
Lock End 3.0.1
3.0.126 окт. 2026 г.22Minecraft: 26.3folia, paper, purpur
Что нового
Bug Fixes
And faststats intigration
release
Lock End 3.0.0
3.0.015 окт. 2026 г.490Minecraft: 26.3folia, paper
Что нового
https://github.com/vwtfafa/lock-end/releases/tag/v3.0.0
**Finally folia support.**
release
Lock End 2.1.0
2.1.02 окт. 2026 г.399Minecraft: 26.3paper, purpur
release
Lock End 2.0.1
2.0.115 сент. 2026 г.265Minecraft: 26.3folia, paper, purpur
Что нового
- Updated to Paper/Minecraft 26.3
- Improved evacuation thread safety
- Fixed scheduling and configuration edge cases
- Improved `lock in` / `unlock in` duration commands
- Added filtered JSON/CSV history exports
- Improved reload stability and localized error messages
release
Lock End 2.0.0
2.0.07 сент. 2026 г.725Minecraft: 26.2bukkit, paper, purpur, spigot
release
Lock End 1.6.0
1.6.017 авг. 2026 г.393Minecraft: 26.2bukkit, folia, paper, purpur, spigot
Что нового
## 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.yml` and 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.yml` with `/whitelist add` command
- **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 pause` and `/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.yml` for 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**: `/el` as 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.yml` with new v1.6 options (preview-notifications, sound-effects, lock-reasons, grace-period, whitelists, logging.rate-limit-seconds, scheduled-unlock.countdown)
- Updated `messages_en.yml` and `messages_de.yml` with new message keys
- Updated `plugin.yml` with new commands and permissions
- Consolidated all subcommands (history, undo, validateconfig) to be accessible only via `/endlock`, `/lock`, and `/el` aliases to avoid command conflicts with other plugins
release
Lock End 1.5.0
1.5.015 авг. 2026 г.78Minecraft: 26.2bukkit, folia, paper, purpur, spigot
Что нового
- 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).
release
Lock End 1.4.1
1.4.15 июл. 2026 г.998Minecraft: 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot
release
Lock End 1.4.0
1.4.04 июл. 2026 г.29Minecraft: 26.2bukkit, paper, purpur, spigot
release
Lock-End 1.3
1.316 июн. 2026 г.438Minecraft: 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur
Что нового
1. 📋 Full tab completion support for all commands
2. 📢 Broadcast notifications (actionbar + chat)
3. 📝 Event logging with timestamps
4. 🧪 Portal blocking test command
5. ✅ Fixed a lot of bugs 🔄 Updated to the latest Minecraft/Paper version