Inv View Forge/NeoForge

Allows you to open and manipulate the inventories and ender chests of online and offline players. Server Side

File Details

inv_view_neoforge-3.0.1-1.21.1.jar

  • R
  • Jun 22, 2025
  • 84.07 KB
  • 793
  • 1.21.1
  • NeoForge

File Name

inv_view_neoforge-3.0.1-1.21.1.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:inv-view-forge-997252:6683435"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Port InvView to NeoForge 1.21.1 with complete refactoring and new features

- Fully ported InvView from Forge to NeoForge 1.21.1, ensuring compatibility with the latest API.
- Refactored codebase for modularity and extensibility:
  - Introduced `InventoryProvider` API for dynamic inventory handling (PlayerInventoryProvider, EnderChestProvider).
  - Replaced hardcoded commands with `InventoryProviderRegistry` for provider-based command registration.
  - Created `AbstractInventoryScreenHandler` to centralize common inventory container logic.
- Added `InventoryLockManager` with `InventoryType` enum (PLAYER_INVENTORY, ENDER_CHEST, CURIOS, CURIOS_COSMETIC) to prevent concurrent modifications.
- Implemented Curios API integration:
  - Added `CuriosInventoryProvider` and `CuriosCosmeticInventoryProvider` for functional and cosmetic Curios slots.
  - Updated `PlayerCuriosInventoryScreenHandler` and `PlayerCuriosCosmeticInventoryScreenHandler` to handle inventory changes with proper synchronization.
  - Registered Curios providers conditionally using `ModList.get().isLoaded("curios")`.
- Integrated LuckPerms support for fine-grained permissions:
  - Created `PermissionHandler` for conditional permission checks (`inv_view.inv`, `inv_view.echest`, `inv_view.curios`, `inv_view.curios_cosmetic`).
  - Fallback to Minecraft operator level 2) when LuckPerms is not installed.
- Enhanced offline player support:
  - Improved `InvViewCommands` to load offline player data using `MinecraftServer.getPlayerList().getPlayerForLogin()`.
  - Ensured data persistence with `InvViewNeoforge.savePlayerData()` for all inventory modifications.
- Added translation support for UI and error messages (e.g., `inv_view_neoforge.inventory_in_use.error`, `inv_view_neoforge.curios.inventory`).
- Optimized code for performance and maintainability, removing deprecated Forge methods.