Перейти к содержимому
Mineforgian

WorldAccessBlocker

WorldAccessBlocker is a Minecraft plugin that temporarily restricts access to the Nether, the End, elytra flight and custom worlds — by date or weekly schedule.

Загрузки
858
Подписчики
5
Обновлён
3 июля 2026 г.
Лицензия
MIT

Опубликован 6 июня 2025 г.

🌍 WorldAccessBlocker

Servers Players License

WorldAccessBlocker temporarily restricts access to the Nether, the End, elytra flight, and custom worlds — by a fixed date or a recurring weekly schedule. Built for Paper and its forks (Purpur, Folia).


✨ Features

  • Date-based restrictions — block a feature until a specific date and time.
  • 📅 Recurring schedules — allow access only on certain days and time windows (e.g. weekends, or Sundays 15:00–17:00).
  • 🌋 Nether blocker — cancels portal creation, portal travel, and ender-pearl teleports.
  • 🐉 End blocker — prevents End portal activation (and the trip to the End).
  • 🪽 Elytra control — block equipping and/or flight independently.
  • 🗺️ Custom worlds — restrict any named world by date or schedule.
  • 🚪 Fallback teleport — send blocked players to a configurable world spawn.
  • 🎫 Per-player bypasses — grant a timed bypass with /wab bypass, revoke with /wab remove.
  • 🔌 PlaceholderAPI support — expose restriction state and time-left to scoreboards / TAB.
  • 🌐 Multi-language — English and Russian included; add your own .yml.
  • ♻️ Live reload — apply config changes without a restart via /wabreload.
  • 🧵 Folia-native — uses the regional scheduler on Folia (no thread-safety warnings).
  • 🔔 Update notifications — admins get an in-game alert when a new version is out.

📦 Installation

  1. Download the latest WorldAccessBlocker.jar.
  2. Drop it into your server's plugins/ folder.
  3. Restart the server.
  4. Edit plugins/WorldAccessBlocker/config.yml to taste, then run /wabreload.

⚙️ Configuration

# Message language: "en" or "ru"
language: "en"

# Server time zone (important for recurring schedules!)
time-zone: "Europe/Moscow"

nether:
  disable: true
  # Used only when there is NO `recurring` block (blocked until this date):
  restriction-date: "2025-03-10 00:00:00"
  disable-portal-creation: true
  disable-teleportation: true

  # Weekly schedule. If this block is present, `restriction-date` is IGNORED.
  # Each period is an OPEN (allowed) window — outside these windows access is blocked.
  recurring:
    periods:
      # Open only on Sundays, 15:00–17:00
      - days: [SUNDAY]
        start-time: "15:00"
        end-time: "17:00"
      # Open all day on weekends
      - days: [SATURDAY, SUNDAY]

end:
  disable: true
  disable-portal-activation: true
  # Empty list = no open windows = ALWAYS blocked
  recurring:
    periods: []

elytra:
  disable: true
  disable-equip: true
  disable-flight: true

custom-worlds:
  lobby_world:
    disable: true
    recurring:
      periods:
        - days: [MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY]
          start-time: "09:00"
          end-time: "17:00"

# Where blocked players are teleported (world name → its spawn)
fallback-spawns:
  default: "world"
  nether: "hub"

How the schedule works: when recurring: is set, each period defines an open window. If the current day/time falls inside a period, access is open; otherwise it is blocked. An empty periods: [] means always blocked.


🧩 Commands & Permissions

Command Permission Default Description
/wab bypass <player> <feature> <seconds> wab.bypass op Grant a timed bypass
/wab remove <player> <feature> wab.bypass op Remove a bypass
/wab status [player] wab.status all Show restriction status
/wabreload wab.reload op Reload config without a restart

<feature> is nether, end, elytra, or a custom world name.


🔧 PlaceholderAPI

Placeholder Returns
%wab_nether_blocked% true / false
%wab_end_blocked% true / false
%wab_elytra_blocked% true / false
%wab_time_left_nether% time remaining (or schedule)
%wab_time_left_end% time remaining (or schedule)
%wab_time_left_elytra% time remaining (or schedule)

💻 Compatibility

Platform Versions Status
Paper 1.20.5 – 1.21.4 ✅ Full support
Purpur 1.20.5 – 1.21.4 ✅ Full support
Folia 1.20.5+ ✅ Native scheduler

Requires Java 21. Spigot/Bukkit are not supported (the plugin uses Paper's Adventure & scheduler APIs).


📊 Stats

bStats

🐛 Bugs & Suggestions

Open an issue on GitHub or leave a comment here on Modrinth.

Ченджлог

0.11.0Релиз26.1.1, 26.1.2, 26.2 · 3 июля 2026 г.

release: bump to 0.11.0 — support Minecraft 1.20.1+ (Java 17)

Lower the baseline from Java 21 / Paper 1.20.5+ back to Java 17 / Paper 1.20.1 so a single JAR runs on 1.20.1–1.20.4 (Java 17) and 1.20.5+ (Java 21), up to the latest release.

  • pom: compile to Java 17 (--release), build against paper-api 1.20.1
  • replace Java 21 List.getFirst()/getLast() with index access
  • release workflow: build Modrinth game_versions dynamically (1.20+), static fallback
  • docs: README/Modrinth/BlackMinecraft compatibility -> 1.20.1+, Java 17+
  • issue templates: refresh version and supported-versions line
  • add EN Modrinth and RU BlackMinecraft descriptions
0.10.0Релиз26.1.1, 26.1.2, 26.2 · 23 июня 2026 г.

ci: upload Modrinth metadata as a file part

Passing multi-line JSON inline via -F "data=$DATA" corrupted the payload and Modrinth rejected it with HTTP 400 (invalid_input / EOF while parsing a string). Write the metadata to modrinth-data.json and send it as -F "[email protected];type=application/json", which is immune to shell quoting and curl -F content parsing.

Co-Authored-By: Claude Opus 4.8 (1M context) [email protected]

0.9.0Релиз26.1, 26.1.1, 26.1.2 · 28 мая 2026 г.

fix: use Modrinth project ID (chVqXf9e) instead of slug

0.8.0Релиз1.21.9, 1.21.10, 1.21.11 · 10 марта 2026 г.

Version 0.8.0

Added

  • New /wab status [player|uuid] command to view restriction status.
  • PlaceholderAPI support (soft dependency).
  • New placeholders:
    • %wab_nether_blocked%
    • %wab_end_blocked%
    • %wab_elytra_blocked%
    • %wab_time_left_nether%
    • %wab_time_left_end%
    • %wab_time_left_elytra%
  • Per-feature/custom-world fallback spawn configuration (fallback-spawns).
  • Unit tests for core restriction logic (ConfigManagerTest).

Changed

  • /wab bypass and /wab remove now support offline players and UUIDs.
  • Bypass expiration timestamps now use configured plugin timezone.
  • Bypass persistence optimized with delayed save scheduling to reduce disk writes.
  • Updated README with new commands, placeholders, and config examples.

Fixed

  • Fixed recurring behavior: periods: [] now correctly means "always blocked".
  • Fixed date parsing with configured timezone for restriction-date.
  • Fixed Elytra equip checks (inventory edge cases and null-safety).
  • Fixed potential crash in portal creation handling when block list is empty.
  • Fixed teleport fallback handling when blocking Nether/End/custom world access.
  • Fixed broken README encoding.

Notes

  • PlaceholderAPI integration is optional and auto-enabled when the plugin is installed.
0.7.1Релиз1.21.9, 1.21.10, 1.21.11 · 14 ноября 2025 г.

Full schedule support has been added — now you can set precise time frames for each day of the week. For example, you can specify that the function is active only on Sundays from 3:00 p.m. to 5:00 p.m.

Key features:

  • Flexible period settings (recurring.periods): select days, times, or specify “all day.”
  • Smart prompts for users: the system automatically generates clear messages such as “available on weekends from 10:00 a.m. to 10:00 p.m. and all day on Mondays.”
  • Support for schedules for user worlds.

Example from the new config.yml:

# ===================================================================
# Nether
# ===================================================================
nether:
  disable: true
  # If recurring is NO, this date is used (until when it is blocked)
  restriction-date: “2025-03-10 00:00:00”
  disable-portal-creation: true
  disable-teleportation: true

  # NEW: schedule by day and time
  # If this block is present, restriction-date is IGNORED
  recurring:
    periods:
      # Example 1: only on Sundays from 3:00 p.m. to 5:00 p.m.
      - days: [SUNDAY]
        start-time: “15:00”
        end-time: “17:00”

      # Example 2: all day on weekends
      - days: [SATURDAY, SUNDAY]

      # Example 3: every Monday from 6:00 p.m. to 11:59 p.m.
      - days: [MONDAY]
        start-time: “18:00”
        end-time: “23:59”
0.6Релиз1.21.6, 1.21.7, 1.21.8 · 13 сентября 2025 г.

WorldAccessBlocker v0.6 – Changelog

Major update for Minecraft 1.21.x (incl. Folia) improving restrictions, Elytra handling, and bypass control.

Custom Worlds: Block access via custom-worlds in config.yml. Blocked players return to Overworld spawn. Grant bypass: /wab bypass .

Elytra: Auto-unequip every second if disabled; moved to inventory or dropped.

Bypasses: Localized bypass_granted / bypass_removed. Remove with /wab remove (saves to bypasses.yml).

Fixes: Closed Nether portal exploit, improved localization & Folia support.

0.4Релиз1.21.3, 1.21.4, 1.21.5 · 6 июня 2025 г.

📦 Changelog – WorldAccessBlocker

[0.4] – 2025-06-07

✨ Added

  • 🕒 Time Zone Support
    Added time-zone option in config.yml to specify a custom time zone for restriction dates (e.g., UTC, Europe/Moscow).
    ➜ Includes reference link to the IANA Time Zone Database.

  • 🔍 Granular Restrictions
    Introduced detailed restriction toggles for:

    • Nether: portal-creation, teleportation
    • End: portal-activation
    • Elytra: equipping, flight
  • 🛡️ Bypass Command
    New command:
    /wab bypass

Temporarily allows a player to bypass restrictions for Nether, End, or Elytra.

  • ⌨️ Tab Completion
    Added intelligent tab suggestions for /wab command:

  • Subcommands (e.g. bypass)

  • Online player names

  • Features: nether, end, elytra

  • Durations (e.g. 3600, 86400)

  • 🚨 Active Restriction Check
    Plugin now periodically checks if players are inside restricted dimensions (Nether or End) and teleports them out if needed.


🐛 Fixed

  • Nether Portal Creation
    Fixed exploit where players could still create Nether portals by handling PortalCreateEvent.

  • Vehicle Teleportation
    Resolved issue allowing teleportation into the Nether using boats or minecarts via EntityPortalEvent.

  • Elytra Equipping
    Fixed bypass where players could equip elytra using off-hand right-click (handled via PlayerInteractEvent).


🔧 Changed

  • ⚡ Performance Optimizations
    Improved event handlers with early-exit conditions to reduce CPU usage on high-player servers.

  • 🌐 Language Enhancements
    Updated en.yml and ru.yml to display remaining restriction time in days and hours for clearer user messages.

  • 🗂 Configuration Layout
    Restructured config.yml:

  • Grouped features under nether, end, elytra sections

  • Added clear comments and descriptions for easier customization


📝 Notes

  • ✅ Plugin now supports Folia, though Nether portal blocking may still be limited due to PlayerPortalEvent behavior.
  • 🧭 Make sure to set a valid IANA time zone in the config (time-zone: Europe/Moscow, etc.).
  • 📁 Check config.yml for new nested options and adjust your settings accordingly.
0.3Релиз1.21.3, 1.21.4, 1.21.5 · 6 июня 2025 г.

UPD

Комментарии

Загружаем…