LightPlusСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (6)
release
LightPlus 1.2.0
1.2.031 авг. 2026 г.164Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3folia, paper, purpur
Что нового
## [1.2.0] - 2026-08-31
### Added
- Sound effects for light-block level switching, and all four LightPlus sounds (place, break, level change, level off) are now fully configurable under a new `sounds` section in `config.yml` — each with its own `sound` key, `volume` and `pitch`, plus a master `sounds.enabled` toggle and per-sound muting via an empty `sound`. The level-change sound still slides its pitch up with brightness, now anchored to the configured pitch at level 15.
- Land protection support. Placing, removing and adjusting light blocks now respects land/region protection plugins. Block break/place already flowed through standard Bukkit events; the interaction-driven paths (right-click level rotation, shift-right-click adjacent placement, left-click removal) now dispatch a simulated block break/place event and abort if a protection plugin cancels it. Works with WorldGuard, GriefPrevention, GriefDefender, Residence, Towny, Lands, PlotSquared, BentoBox (and its skyblock forks), and any other plugin that cancels `BlockBreakEvent` / `BlockPlaceEvent`. Toggle it under the new `land_protection.enabled` option (default `true`). Added the corresponding plugins to `softdepend`.
- `/lightplus give <player> [level] [amount]` (permission `lightplus.give`, default op) to hand a player leveled light items — level 0-15 (default 15), amount 1-64 (default 1) — with tab completion for the sub-command, player names and common values.
- Per-player and per-world light-level caps. The highest `lightplus.maxlevel.<0-15>` permission node a player holds is the brightest level they may set (right-click adjust, shift-place, and placing a stored-level item all clamp to it); players with no node fall back to `limits.default_max_level`. `limits.world_max_levels.<world>` caps a level per world, and the effective limit is the lower of the two. `lightplus.maxlevel.bypass` (default op) removes all caps. `/lightplus give` is not clamped.
- `actions` section in `config.yml` to individually disable the extra interactions: `adjust_level` (right-click level cycle), `place_adjacent` (shift-right-click place), `left_click_break` (left-click removal), and `pick_block`. A disabled action falls back to vanilla behaviour.
- Pick-block support: middle-clicking a placed light block in Creative gives a light item at that block's exact level (vanilla would give the default level). `actions.pick_block`, on by default.
- Sneak + scroll to step a placed light block's level up/down one at a time (looking at it, holding a light item). Unlike right-click it clamps at 0 and the player's max instead of wrapping. `actions.scroll_level`, on by default.
- Configurable `messages.prefix` — a MiniMessage snippet (a `LightPlus »` gradient tag by default) prepended automatically to every chat message. Use the `%prefix%` token to place it manually or add it to an action-bar line.
- Per-language messages. With `messages.follow_client_locale` (on by default), each player gets the string from `messages.locales.<their client language>` when one exists (keyed by full locale like `zh_tw` or just the language `zh`), otherwise the English default. Console always gets the default. Ships example Traditional Chinese (`zh_tw`) entries.
- `/lightplus help` (also shown with no arguments) — a formatted, gradient-headed command panel with click-to-type and hover text, listing only the sub-commands the sender can use.
- `/lightplus version` — a panel showing plugin version, author, server/Minecraft version, Folia support, detected land-protection plugins, and metrics backends.
- `MessageService.sendLines` for multi-line MiniMessage output that keeps click/hover interactivity (sends `Component`s instead of legacy strings).
- Named light items. The `item` config section gives crafted / dropped / given light items a MiniMessage display name (`%level%` token) and lore; `item.custom_name: false` restores the plain vanilla item. Different-level items already didn't stack; the name just makes the level readable.
- Modrinth update check. On startup LightPlus asks the Modrinth API (off-thread, never blocking startup) for the latest release and compares it three ways: up to date, an update is available (logged + `lightplus.update` join notice), or the running build is *ahead* of the latest release (`/lightplus version` shows "dev build"). Configured under `update_check` (`enabled`, `notify_on_join`); the project id is hard-coded. Message key `messages.update_available` (`%current%` / `%latest%` / `%url%`).
- Optional light-block decay (`decay` config section, off by default). When on, a player-placed light block is removed `decay.after_seconds` later; a repeating sweep clears expired blocks on their region thread. Pending lights are persisted to `decay-data.yml` (`decay.persist`, default on) — saved on shutdown and every ~60s, reloaded shortly after start — so they still decay across a restart. `lightplus.decay.exempt` (default op) places permanent lights; breaking a light by hand cancels its pending decay.
- PlaceholderAPI expansion (identifier `lightplus`, registered only when PlaceholderAPI is installed): `%lightplus_version%`, `%lightplus_lights_placed%`, `%lightplus_lights_mined%`, `%lightplus_update_available%`, `%lightplus_latest_version%`, `%lightplus_pending_decay%`, and the player placeholders `%lightplus_max_level%`, `%lightplus_holding_light%`, `%lightplus_held_level%`.
- WorldGuard `lightplus-use` region flag (StateFlag, default allow). Setting it to `deny` in a region blocks every LightPlus light-block action there — adjust, place, shift-place and both break paths — regardless of build permission, and independently of the `land_protection.enabled` toggle. Registered in `onLoad`; requires the flag registry, so it needs a server restart to take effect (not `/reload`). The WorldGuard API is a `provided` dependency (EngineHub repo) and is not shaded.
### Changed
- Added a `README.md` (build / test / run-server docs) and a JUnit 5 test suite — `mvn test`, also run by `mvn package` — covering the update-check version comparison and light-level clamping.
- Metrics initialisation (bStats + FastStats) is wrapped so a metrics failure logs a warning instead of aborting plugin enable.
- Rewrote `config.yml` comments to explain the reasoning behind every option (how the land-protection check works, what `volume` above 1.0 does, pitch ranges, recipe shape rules, level-cap resolution, message tokens).
- Sound settings, land protection, action toggles and level limits are read live, so `/lightplus reload` applies them without a restart.
- Expanded `plugin.yml` command and permission descriptions.
- The `/lightplus` command no longer carries a blanket `lightplus.reload` requirement; each sub-command checks its own permission, so `lightplus.give` can be granted independently.
### Fixed
- MiniMessage messages containing a `<gradient:#hex:#hex>` (such as the new prefix) rendered as literal `<gradient::>` text — the legacy `&#RRGGBB` converter was rewriting the hex colours inside the tag. It now only rewrites hex when prefixed with `&`.
- `registerCraftLightRecipe` could throw and abort plugin enable when an upgraded `config.yml` predated the `crafting_recipe` section (the shape resolved from jar defaults while `items` did not, producing an unmapped-symbol recipe). Recipe building is now validated up front — row count/length, single-character keys, valid materials, and every shape symbol having an `items` entry — and wrapped so any failure logs a warning and skips the recipe instead of disabling the plugin.
release
LightPlus 1.1.3
1.1.37 июл. 2026 г.66Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2folia, paper, purpur
Что нового
## [1.1.3] - 2026-07-07
### Added
- Folia support: light particle preview and recipe discovery now run through the global region and per-player entity schedulers instead of the Bukkit scheduler.
- faststats metrics integration, shaded and relocated alongside bStats.
- Configurable shaped crafting recipe for a light block, defined in `config.yml` via a generic `crafting_recipe.items` (key → material) map and `crafting_recipe.recipe` shape list, with `enabled` and `result_level` options. Reapplied on `/lightplus reload`. Defaults to glass border / glowstone center, matching the previous hardcoded recipe.
- `/lp` alias for `/lightplus`.
- The configurable crafting recipe is now auto-discovered for players on join and on `/lightplus reload`, alongside the stonecutter recipes.
- `lights_placed` and `lights_mined` custom faststats metrics, tracking every light block placed (crafting table and right-click adjustment) and mined (block break and left-click removal).
### Removed
- Dedicated Spigot build/compatibility path; the plugin now targets Paper (and Folia) only.
### Fixed
- Removed the explicit `net.kyori` Adventure/MiniMessage dependencies (previously pinned to 4.17.0 and shaded unrelocated), letting `paper-api` supply its own matching Adventure version transitively — the pinned version was overriding Paper's and causing classpath conflicts (`cannot access ...PlayerHeadObjectContents` and similar errors).
release
LightPlus 1.1.2
1.1.231 мар. 2026 г.42Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1paper, purpur
Что нового
## [1.1.2] - 2026-03-31
### Changed
- Bundled Adventure and MiniMessage into the shaded plugin jar so formatted messages also work on Spigot.
- Updated message rendering to support both legacy `&` formatting and MiniMessage tags in the same config strings.
- Unified Paper and Spigot message delivery so MiniMessage content is converted to Minecraft color formatting for non-Adventure paths.
- Improved cross-server action bar handling with additional runtime fallbacks for Spigot compatibility.
- Added and expanded `spigotServer/run.sh` to auto-build the latest shaded jar, copy it into the local test server, and validate the required Java runtime.
- Replaced `Location#toCenterLocation()` usage with explicit centered coordinates for broader server API compatibility.
- Removed the duplicate manual placement sound from the normal light block placement path.
release
LightPlus 1.1.1
1.1.116 февр. 2026 г.36Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11paper, purpur
Что нового
## [1.1.1] - 2026-02-16
### Added
- bStats dependency (`org.bstats:bstats-bukkit:3.1.0`) to the build.
### Changed
- Added the Shadow plugin (`com.gradleup.shadow`).
- Configured `shadowJar` to include only bStats from runtime dependencies.
- Relocated `org.bstats` classes into the plugin group package to avoid cross-plugin conflicts.
- Build now produces a shaded plugin artifact via `./gradlew shadowJar`.
release
LightPlus 1.1.0
1.1.016 февр. 2026 г.21Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11paper, purpur
Что нового
## [1.1.0] - 2026-02-16
### Added
- MiniMessage support for plugin messages.
- PlaceholderAPI support for player-facing messages when PlaceholderAPI is installed.
- New configurable command messages:
- `messages.command_usage`
- `messages.command_no_permission`
- `messages.command_reloaded`
### Changed
- Action bar level message now uses MiniMessage formatting.
- Message handling was centralized via a dedicated `MessageService`.
- Added `softdepend: [PlaceholderAPI]` to `plugin.yml`.
- Updated build configuration with PlaceholderAPI repository/dependency.
release
LightPlus 1.0.0
1.0.016 февр. 2026 г.19Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11paper, purpur
Что нового
First Version