HomeLimiterСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (4)
release
HomeLimiter 2.0
2.04 апр. 2026 г.137Minecraft: 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2paper, purpur, spigot
Что нового
## v2.0 — Compatibility & Modernisation
### Compatibility
- Raised minimum supported server version from 1.20 to **1.21**
- Added support for **MC 26.1** (Tiny Takeover) and newer year-based releases
- Raised minimum Java version from 17 to **21**
- Java 25 (required by MC 26.1) runs Java 21 bytecode without issues
### Code
- Replaced deprecated `ChatColor` API with Paper's **Adventure API** (`LegacyComponentSerializer`)
- `formatMessage()` now returns `Component` instead of `String`
- All `sendMessage(String)` calls updated to `sendMessage(Component)`
- Added `SECTION` serializer for `§`-coded inline messages
- Added `AMPERSAND` serializer for `&`-coded config messages
- Added `msg()` helper for clean inline message construction
### Build
- Updated Paper API dependency: `1.20.4-R0.1-SNAPSHOT` → `1.21.4-R0.1-SNAPSHOT`
- Updated SQLite JDBC: `3.45.1.0` → `3.47.1.0`
- Updated `maven-compiler-plugin`: `3.11.0` → `3.13.0`
- Fixed malformed `<n>` tag in `pom.xml` (should have been `<name>`)
### Docs
- Updated plugin description to accurately reflect locking behaviour (homes are locked and restored, not permanently deleted)
- Corrected description: oldest homes are locked, not newest
- Clarified that limits are read from EssentialsX's config, not HomeLimiter's own
- Updated requirements to reflect Java 21+ and Paper 1.21–26.1+
release
HomeLimiter 1.2
1.24 апр. 2026 г.32Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9paper, purpur, spigot
Что нового
# Changelog
## UpdateChecker
### Bug Fix — Spurious updates on latest version
`parseVersion()` now strips a leading `v`/`V` before parsing. Modrinth version strings like `v1.2.3` were previously parsed as `v1` → `0`, making every release appear newer than the installed version and triggering a re-download even when already up to date.
### Refactor — Hardcoded Modrinth project ID
Removed the `projectId` instance field and its constructor assignment. The ID is now a `private static final` constant (`PROJECT_ID = "eT7gbibF"`). The dead `isBlank()` / `"YOUR_MODRINTH_PROJECT_ID"` guard in `start()` was removed alongside it.
### Improvement — Side-by-side version log
Both the Modrinth version and the installed version are now logged before the comparison runs, making any future version string mismatches immediately visible in the console.
release
HomeLimiter 1.1
1.13 апр. 2026 г.20Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9paper, purpur, spigot
Что нового
# HomeLimiter Changelog
---
## v1.1
### Bug Fixes
- **Fixed `/sethome` alias detection** — the old version incorrectly listened for `/ehome` (which is the *teleport* alias) when tracking new home creation. It now correctly listens for `/esethome`.
- **Fixed home creation timestamps being overwritten** — re-running `/sethome` on an existing home used to reset its timestamp, which could cause the wrong homes to get locked when enforcing limits. The timestamp is now preserved on re-set (`INSERT OR IGNORE` instead of `INSERT OR REPLACE`).
- **Fixed locked home restoration losing original creation time** — when a home was restored from the locked list, it was saved with the current time instead of the original creation time. The original timestamp is now carried through correctly.
- **Fixed `onDisable` not checking if connection is already closed** — could throw an exception on shutdown in some cases.
### Improvements
- **Overhauled home limit calculation** — the old system read limits from a custom `groups.*` section in `config.yml` and picked the highest-weighted LuckPerms group. The new system reads directly from Essentials' own `sethome-multiple` config section and checks `essentials.sethome.multiple.<key>` permissions in LuckPerms, making it fully compatible with existing Essentials setups without any extra configuration.
- **Enforcement is now fully async/main-thread safe** — the old `enforce()` ran entirely on the main thread, blocking it during DB reads. The new version choreographs work across threads: DB reads happen async, all Essentials API calls happen on the main thread, and DB writes are flushed async at the end.
- **Bulk DB timestamp loading** — instead of querying the database once per home during enforcement, all timestamps for a player are now loaded in a single query upfront.
- **All DB mutations are batched** — locking and restoration no longer write to the database mid-enforcement. Changes are collected and flushed in one async pass at the end, reducing DB contention.
- **SQLite WAL mode and busy timeout enabled** — `PRAGMA journal_mode=WAL` and `PRAGMA busy_timeout=5000` are now set on startup, allowing concurrent reads during writes and preventing instant failures on a locked write.
- **Context-aware permission queries** — online players now use full contextual `QueryOptions` (respecting world/gamemode contexts) when checking LuckPerms permissions, with a fallback to static options for offline players.
- **Re-enforce on LP data recalculate** — LuckPerms' `UserDataRecalculateEvent` now triggers enforcement directly instead of going through a `safeEnforce` wrapper, simplifying the code path.
- **`/reload` now requires permission** — the `homelimiter.admin` permission is checked before allowing a config reload. Previously any player could run it.
- **Tab completion now requires permission** — tab completion for `/hl reload` is now gated behind `homelimiter.admin` as well.
- **Startup scan delay uses `long`** — `delay-ticks` is now read as a `long` instead of `int`, preventing overflow on very large configured values.
### Code Cleanup
- Removed unused `findOfflineByName()` helper method.
- Removed unused `import net.luckperms.api.model.group.Group`.
- Replaced the `safeEnforce()` wrapper with inline error handling in the async callback.
- Replaced the `LockedHome` static class with a `LockedHomeRecord` record for DB mutation staging.
- Orphan timestamp cleanup is now handled inline during enforcement instead of in a separate `cleanupOrphans()` method.
- Added section comments throughout for readability.
release
HomeLimiter 1.0
1.021 февр. 2026 г.40Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9paper, purpur, spigot
Что нового
## Features
* Automatically enforces EssentialsX home limits based on LuckPerms group
* Supports rank upgrades and downgrades instantly
* Excess homes are **locked instead of permanently deleted**
* Locked homes are automatically restored when rank is regained
* SQLite database storage for safe persistence
* Startup scan to enforce limits after server restart
* Automatic config updater (adds new config options on update)
* Supports `/sethome` and `/delhome`
* Protected homes support (e.g. default "home")
## Database
* Stores home creation timestamps
* Saves locked home locations safely
* Automatically cleans up orphaned database entries