WorldAccessBlocker

WorldAccessBlocker

Schedule Nether, End, elytra, and custom-world access for your server β€” by date or recurring weekly windows, with per-player bypasses and PlaceholderAPI support.

1 158 downloads
5 followers

🌍 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.