COWMODSКаталог модов
AmplProtections

ВЕРСИИ (10)

release

AmplProtections 1.0.20

1.0.20
27 авг. 2026 г.44Minecraft: 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.2paper, purpur, spigot
Скачать
Что нового
--- ## [1.0.20] - 2026-08-27 ### Added - Added a dedicated migration log at `plugins/AmplProtections/logs/migration.log`. - Added a configurable database migration progress menu for players. - Added developer-controlled configuration for migration menu slots, materials, titles, and lore. - Added protection inactivity tracking and automatic expiry cleanup. ### Fixed - Fixed SQLite to MySQL migration failing when SQLite stored `created_at` as epoch milliseconds. - Fixed migration retries removing related members, flags, and rentals through MySQL `REPLACE INTO` cascades. - Fixed migration support for numeric, textual, and boolean flag values. - Fixed environmental flags being loaded as permission flags instead of boolean flags after migration. - Preserved protection, member, flag, rental, rollback, merge, and preset relationships during database migration. ---
release

Changelog - AmplProtections 1.0.19

1.0.19
14 авг. 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.11, 26.1, 26.1.1, 26.1.2, 26.2paper, purpur, spigot
Скачать
Что нового
# Changelog All notable changes to AmplProtections will be documented in this file. --- ## [1.0.19] - 2026-08-14 ### Bug Fixes - Fixed menu button collisions: disabled buttons no longer intercept clicks when an enabled button uses the same slot. - Fixed menu item names and lore appearing italic by default. - Fixed concurrent flag writes that could overwrite or erase newer flag changes. - MySQL database writes are now processed in order to prevent races between full flag saves and individual flag updates. ### Maintenance - Replaced unused imports, fields, and methods reported by the Java analyzer. - Added explicit handling for Eclipse null-safety warnings in Bukkit callbacks. - Kept skull profile handling compatible with the Paper 1.21.1 API. - Updated the plugin and Maven project version to `1.0.19`. ---
release

AmplProtections 1.0.18

1.0.18
3 авг. 2026 г.20Minecraft: 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.2paper, purpur, spigot
Скачать
Что нового
--- ## [1.0.18] - 2026-08-03 ### 🔧 Database & Connection Pool - **MySQL:** Plugin now auto-creates the database if it doesn't exist (`CREATE DATABASE IF NOT EXISTS`). No need to manually create it anymore. - **MySQL:** Enabled TCP keepalive (120s) to prevent the connection pool from becoming unresponsive on unstable networks. - **MySQL:** Increased `connectionTimeout` from 5s to 15s to handle server load spikes. - **SQLite:** Reduced `maximumPoolSize` from 5 to 1 — SQLite is an embedded database and does not benefit from multiple connections, which could cause `SQLITE_BUSY` errors. - **SQLite:** Enabled TCP keepalive (120s) for the same reason as MySQL. - **SQLite:** Increased `connectionTimeout` from 5s to 10s. - **Both:** Added graceful shutdown for `ExecutorService` with `awaitTermination(5s)` to ensure pending database operations complete before the server shuts down. ### 🛡️ Plugin Lifecycle - Wrapped `onDisable()` in a `try-catch-finally` block so that `databaseConnection.disconnect()` is always called, even if an error occurs during shutdown (e.g., saving regions). ### 🐛 Bug Fixes - **Fixed duplicate YAML key warnings:** The `ConfigUpdater` was inserting keys that already existed in the user's config files, causing repeated `duplicate keys found` warnings from the YAML parser. Added a pre-insertion check to skip keys that already exist. - **Fixed invalid YAML generation:** List values containing special YAML characters (like `|`, `:`, `{`, etc.) are now properly quoted when inserted by the `ConfigUpdater`, preventing `mapping values are not allowed here` parse errors. - **Silent corrupted file recovery:** When a user's config/menu file is corrupted, the plugin now detects it silently (no errors in console), backs it up, and regenerates it automatically from the JAR. Previously this would flood the server console with YAML parse errors. - **Synced version** in `plugin.yml` with `pom.xml` (was out of sync). ### ✨ Improvements - **Clickable update notification:** The download link shown to admins on player join is now clickable (opens browser to Modrinth page). - **Dynamic plugin name:** The update notification now displays the project name fetched from the Modrinth API instead of a hardcoded string. ---
release

AmplProtections 1.0.17

1.0.17
3 авг. 2026 г.16Minecraft: 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.2paper, purpur, spigot
Скачать
Что нового
# Changelog ## [1.0.17] - 2026-08-02 ### Performance - Spatial index for `getRegionAt()` and `checkCollision()` — O(1) amortized lookups instead of O(n) linear scan - Optimized `loadAllRegionsSync()` — 3 queries with batch loading instead of 2N+1 individual queries - Fixed race condition on `idMap` — changed from `HashMap` to `ConcurrentHashMap` - SQLite `PRAGMA foreign_keys` moved to HikariCP `connectionInitSql` — no longer executes on every `getConnection()` ### Architecture - Extracted `SchemaManager` class — eliminates ~200 lines of duplicated table creation logic between MySQL and SQLite - Consolidated `sendAccessDenied` / `sendAccessDeniedCooldown` into single method in `ProtectionListener` - Unified `saveMemberSync` / `saveMemberAsync` logic into shared `executeSaveMember` in `ProtectionDao` - Added Builder pattern to `ProtectionRegion` (existing constructors preserved for compatibility) ### Changed - `ProtectionManager` now uses `MessageUtils.parse()` singleton instead of inline `MiniMessage.miniMessage().deserialize()` - `getAdjacentRegions()` and `mergeRegions()` now use spatial index instead of scanning all world regions - Removed `@Deprecated isAllowed()` method from `ProtectionRegion` - Removed `@SuppressWarnings("unused")` from `AdminProtectionCommand` - Removed redundant null checks in `ProtectionListener` event handlers - Hardcoded Spanish fallback strings replaced with English in `AdminProtectionCommand` ### Fixed - Fixed SQLite syntax error with `AUTOINCREMENT` keyword order in `SchemaManager`
release

AmplProtections 1.0.16

1.0.16
14 июл. 2026 г.22Minecraft: 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.2paper, purpur, spigot
Скачать
Что нового
# Changelog ## [1.0.16] - 2026-07-14 ### Fixed - Nexo API integration updated to match current Nexo 1.19+ method signatures - Replaced reflection-based NexoHook with direct API calls for better reliability - Fixed double drop when breaking Nexo-based protections (only plugin item drops now) - Fixed "no inventory space" check before breaking Nexo protections - Fixed async thread error during PSStones migration (blocks now placed on main thread) - Fixed PSStones migration not placing Nexo blocks or custom-model-data blocks - Fixed blocks.yml being overwritten on plugin updates (now only created on first install) ### Added - Nexo dependency in pom.xml (`com.nexomc:nexo`) as provided/optional - Maven repository for Nexo (`https://repo.nexomc.com/releases`) - `no-inventory-space` message in lang files (en/es) - Nexo block/furniture type detection before placement (`isNexoFurniture`/`isNexoBlock`)
release

AmplProtections 1.0.15

1.0.15
17 июн. 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.11, 26.1, 26.1.1, 26.1.2paper, purpur, spigot
Скачать
Что нового
# Protection System Update This update optimizes the regional access logic and fixes member permission issues. ## Changes * **Fixed Entry Flag Logic**: Updated `canPlayerAct` in `ProtectionRegion.java` to properly validate the `EVERYONE` flag before checking for member ranks[cite: 2]. * **Improved Permission Hierarchy**: Refactored `canPerformAction` in `ProtectionRegion.java` to use rank weights instead of manual boolean checks[cite: 2, 4]. * This ensures that members and higher-ranking players (Admins, Owners) are correctly granted access when the `entry` flag is set to `MEMBERS`[cite: 2, 4]. * This logic correctly respects the established rank hierarchy: `OWNER > SECONDARY_OWNER > ADMIN > MEMBER`[cite: 4]. * **Fixed Member Notification**: Corrected the message notification logic in `ProtectionCommand.java` to ensure players receive the correct feedback when they are added to a region[cite: 1]. ## Improvements * The logic is now more scalable, allowing new ranks to be integrated easily by simply adjusting their weight in the `PlayerRank` enum[cite: 4]. * Fixed the restriction issue where members were previously denied access despite the `entry` flag being set to `MEMBERS`[cite: 2].
release

AmplProtections 1.0.14

1.0.14
17 июн. 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.11, 26.1, 26.1.1, 26.1.2paper, purpur, spigot
Скачать
Что нового
# Changelog ## [1.0.14] - 2026-06-17 ### Added #### PSStones Migration System - New command `/aprotmigrate psstones` to migrate regions from ProtectionStones - Confirmation GUI menu before migration (fully editable via `menus/migration-menu.yml`) - Option to delete original PS regions after migration - Async migration to prevent server lag - Migrates owners, members, flags, and exact region bounds - Creates dynamic protection types for non-standard radii - Reads `ps-home` flag for correct block placement - Detailed logging of each migrated region #### Nexo Integration - New `NexoHook` class for Nexo API integration - Support for custom block models from Nexo furniture system - New `nexo-id` field in `blocks.yml` for Nexo items - Multiple API compatibility approaches for different Nexo versions #### Custom Model Data Support - Blocks can now be identified by material + custom model data - Compatible with Nexo, ItemsAdder, and Oraxen resource packs - New `getProtectionTypeByMaterialAndModelData()` method #### Configurable Limits - Custom ranks with custom limits (add as many as you want) - Per-world max protections (different limits per world) - New config structure: ```yaml worlds: world-limits: world: 10 world_nether: 3 limits: ranks: default: 3 vip: 5 mvp: 10 admin: 999 ``` #### Migration Messages - Added `migration.*` section to both `en.yml` and `es.yml` - All migration messages are now configurable and translatable ### Fixed #### Critical Fixes - Fixed duplicate `commands` section in language files that caused ~80 messages to be lost - Fixed `CustomModelData` IllegalStateException in Paper 1.21+ (now checks `hasCustomModelData()` first) - Fixed PSStones regions being migrated with wrong size (now uses exact WG region bounds) - Fixed protection block not being placed at correct location during migration #### Language System - LanguageManager now uses ConfigUpdater to add new keys to existing language files - Added missing messages: `commands.list-no-protections`, `commands.preset-invalid-sub`, `buy-menu.*` #### Database - Migration now uses UPSERT instead of INSERT to prevent duplicate key errors - Added proper transaction rollback on migration failure ### Changed #### Plugin Optimization - Reduced jar size from ~15MB to ~1.6MB - Added SQLite native library filters (only Windows x64 and Linux x64) - Enabled `minimizeJar` to remove unused classes #### Dependencies - Added WorldGuard as soft dependency - Added WorldEdit dependency - Added Nexo as soft dependency - Added EngineHub and sk89q repositories ### Technical #### New Files - `src/main/java/com/amplan/amplprotections/database/PSStonesMigrationManager.java` - `src/main/java/com/amplan/amplprotections/hook/NexoHook.java` - `src/main/java/com/amplan/amplprotections/menu/MigrationConfirmMenu.java` - `src/main/resources/menus/migration-menu.yml` #### Modified Files - `src/main/java/com/amplan/amplprotections/AmplProtections.java` - `src/main/java/com/amplan/amplprotections/command/MigrateCommand.java` - `src/main/java/com/amplan/amplprotections/config/MenuConfigManager.java` - `src/main/java/com/amplan/amplprotections/language/LanguageManager.java` - `src/main/java/com/amplan/amplprotections/listener/BlockListener.java` - `src/main/java/com/amplan/amplprotections/manager/ProtectionManager.java` - `src/main/java/com/amplan/amplprotections/model/ProtectionType.java` - `src/main/resources/blocks.yml` - `src/main/resources/config.yml` - `src/main/resources/lang/en.yml` - `src/main/resources/lang/es.yml` - `src/main/resources/plugin.yml` - `pom.xml`
release

AmplProtections 1.0.13

1.0.13
9 июн. 2026 г.20Minecraft: 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.2paper, purpur, spigot
Скачать
Что нового
# Changelog ## [1.0.13] - 2026-06-09 ### Added - Modrinth version checker with automatic update notifications for admins. ### Fixed - Race condition where `getRegionAt()` could return null immediately after placing a protection. - Memory leak in `lastAccessDenied` maps (cleaned up on player quit). - Ownership transfer not updating in memory after async DB call. - Double save when editing protection lore via command. - NPE in `onPlayerMove` when `event.getTo()` returns null. - `saveAllRegionsSync` transaction rollback not handling errors properly. - `getRadius()` truncation on asymmetric regions. ### Removed - Unused variables `cornerDust`, `glowDust`, `pulseGlow` in `ParticleUtils`. - Unused `plugin` field in `MenuManager`. - Duplicate `canMerge()` method in `ProtectionType`. - Redundant `String.valueOf()` and `Objects.requireNonNull()` calls. - Standalone `Logger` in `ConfigUpdater` (now uses plugin logger). - Emoji in message prefix that caused rendering issues on some clients. - `-Xlint:-deprecation` compiler flag (deprecation warnings are now visible).
release

AmplProtections 1.0.12

1.0.12
2 июн. 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.11, 26.1, 26.1.1, 26.1.2paper, purpur, spigot
Скачать
Что нового
# Changelog ## [1.0.11] - 2026-06-02 ### Fixed - Paper API dependency version (`1.21.11-R0.1-SNAPSHOT`) - ConfigUpdater duplicating content when updating menu configs - Automatic detection and regeneration of corrupt YAML config files ### Added - `/protection bulk` command to manage multiple protections at once - Bulk manage menu for adding members to selected protections
release

AmplProtections 1.0.5

1.0.5
29 мая 2026 г.23Minecraft: 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, spigot
Скачать
Что нового
AmplProtections is an advanced Minecraft (Paper 1.21+) protection plugin that adds customizable land protection systems with blocks, flags, rentals, rollback, and economy integration. It supports MySQL storage, configurable protection sizes and limits per rank, and a flexible flag system to control player actions inside protected areas. The plugin also includes features like holograms, particles, protection merging, rental systems, teleport cooldowns, and rollback tools for reverting block changes. Administrators can manage protections through dedicated commands, while players can create, modify, and manage their own protected regions using an in-game command system. It also integrates with Vault for economy support and PlaceholderAPI for external placeholders.