Sueta

LightVision

1.3-BETA

Lightweight night vision plugin. Let players toggle it themselves, or control, block and automate it as staff.

·Plugin

Discord
Release
Downloads
Servers
License

Built with Java 21
Available for Paper
Available for Purpur
Available for Spigot
Available for Bukkit

Chat with us on Discord
Available on Codeberg

bStats

LightVision

Night vision as a toggle. Players switch it on and off for themselves with /lv,
staff can set it for others, block anyone who abuses it, and let the plugin turn
it on automatically whenever someone walks into the dark.

The state survives restarts, blacklisted worlds stay dark no matter what, and the
plugin never touches a night vision effect it did not hand out itself - a potion
or a beacon keeps working exactly as the player expects.

Requirements

  • Paper (or a fork) on Minecraft 1.21+
  • Java 21

Commands

/lv and /lightvision are the same command.

CommandDescriptionPermission
/lvToggle your own night visionlv.use
/lv <player> [on|off]Toggle or set night vision for someone elselv.admin
/lv block <player>Block a player from using night visionlv.admin
/lv unblock <player>Lift the block againlv.admin
/lv reloadReload config.yml and apply it to everyone onlinelv.admin

lv.use defaults to true, lv.admin to op. lv.bypass.block (op) protects a
player from being blocked by other staff members.

/lv unblock also works on offline players, as long as the server has seen them
before. A raw UUID works too.

Configuration

config.yml holds two sections, both documented inline:

  • settings - remember state across restarts, actionbar instead of chat, titles,
    the blindness flash when night vision goes off, the darkness trigger, and the
    world blacklist
  • messages - every player-facing text, in
    MiniMessage format

Darkness trigger

Off by default. Once enabled, players below light-level get night vision
automatically and lose it again when it gets bright. Automatic night vision is
kept apart from what a player toggled themselves: it is never written to
data.yml, it gives way the moment someone uses /lv, and switching the trigger
off and running /lv reload takes it away from everyone who currently has it.

Light is checked on movement (at most twice a second per player) and by a
background task every check-interval-ticks.

Data

data.yml stores the UUIDs of players whose night vision is on, plus the
blocklist. Players who are off are simply absent, so the file stays small. It is
written off the main thread, once a minute at most, and on shutdown.

Building

mvn clean package

The shaded jar lands in target/lightvision-1.1-RELEASE.jar. bStats is shaded and
relocated into de.empireblocks.lightVision.libs.bstats; paper-api is provided
and stays out of the jar.

License

GNU General Public License v3.0. See LICENSE.

Similar projects

Plugin →