WebInv
Complete documentation for the WebInventory plugin.
WebInventory Plugin - Complete Documentation
> Version 1.4 | Supports Spigot/Paper 1.20+ | Folia Compatible
WebInventory is a premium Minecraft plugin that provides a web-based interface for viewing player inventories, running a web store, and managing your server through an admin dashboard.
Table of Contents
- Installation
- Getting Started
- Commands
- Permissions
- Configuration
- Web Store
- Admin Dashboard
- Custom Items Support
- Economy Integration
- Map Integration
- Theme Customization
- Security Features
- REST API
- WebSocket API
- Database Setup
- Localization
- Discord Webhooks
- Troubleshooting
Installation
Requirements
- Minecraft Server: Spigot, Paper, or Folia 1.20+
- Java: 21 or higher
- Economy Plugin: Vault, PlayerPoints, or compatible (for store features)
Steps
- Download
WebInventory.jarfrom Spigot or BuiltByBit - Place the JAR in your
plugins/folder - Restart your server
- Edit
plugins/WebInventory/config.yml - Restart again or use
/winv reload
Accessing the Web Interface
After installation, access the web interface at:
http://YOUR_SERVER_IP:8081
Getting Started
For Players
- Run
/winv enableto enable your web inventory - Share your inventory link with others
- Run
/winv link <code>to link your account for web store access
For Admins
- Set an admin password in
config.ymlor grant thedimictech.webinv.adminpermission - Access the admin dashboard at
http://YOUR_SERVER_IP:8081/admin - Login with password or use in-game link code
Commands
Player Commands
| Command | Description |
|---|---|
/winv |
Show help and current status |
/winv enable |
Enable your web inventory |
/winv disable |
Disable your web inventory |
/winv link <code> |
Link account using web-generated code |
/winv url |
Get your personal inventory URL |
Admin Commands
| Command | Permission | Description |
|---|---|---|
/winv reload |
dimictech.webinv.admin |
Reload configuration |
/winv admin-link <code> |
dimictech.webinv.admin |
Link admin account for dashboard |
Permissions
| Permission | Description | Default |
|---|---|---|
webinventory.use |
Allow using /winv command |
true |
webinventory.enable |
Allow enabling web inventory | true |
webinventory.link |
Allow linking account | true |
dimictech.webinv.admin |
Admin dashboard access | op |
dimictech.webinv.reload |
Reload configuration | op |
Configuration
Web Server Settings
web:
# IP to bind to (0.0.0.0 = all interfaces)
address: "0.0.0.0"
# Port for web server
port: 8081
# Mode: "embedded" (full) or "api-only" (REST only)
mode: "embedded"
Visibility Modes
data:
# OPTIONAL - Players choose (default)
# FORCE_ENABLED - Always on for everyone
# FORCE_DISABLED - Always off for everyone
# PERMISSION - Enabled if player has webinventory.enable permission
visibility-mode: "OPTIONAL"
# Show OPs in FORCE_ENABLED mode
ops-visible: true
Security Settings
security:
rate-limit:
enabled: true
requests-per-minute: 60
websocket:
max-connections-per-ip: 5
https:
enabled: false
keystore-path: "keystore.jks"
keystore-password: "changeit"
Web Store
The web store allows players to buy and sell items through the web interface.
Setup
- Install an economy plugin (Vault, PlayerPoints)
- Access admin dashboard at
/admin - Create categories and add items
- Players link accounts with
/winv link <code>
Economy Support
store:
economy:
# AUTO - Auto-detect available economy
# VAULT - Use Vault
# PLAYERPOINTS - Use PlayerPoints
type: AUTO
Stock System
- Set stock to
-1for unlimited - Stock decreases on purchase
- "Out of Stock" shown when stock = 0
Price History
The plugin tracks all price changes with:
- Who changed the price
- When it was changed
- Old and new values
Admin Dashboard
Access at: http://YOUR_SERVER_IP:8081/admin
Features
- Overview: Server stats, recent transactions
- Items: Add, edit, delete store items
- Categories: Organize items into categories
- Transactions: View all buy/sell history
- Price History: Track price changes over time
Authentication Methods
1. Password Login
admin:
password: "your_bcrypt_hash"
Generate BCrypt hash at: https://bcrypt-generator.com
2. In-Game Link
- Click "Link with Minecraft" on login page
- Copy the 6-character code
- Run
/winv admin-link <code>in-game - You're logged in!
Two-Factor Authentication (2FA)
admin:
security:
2fa:
enabled: true
Set up via admin dashboard before enabling.
IP Whitelist
admin:
security:
ip-whitelist: ["127.0.0.1", "192.168.1.0/24"]
Custom Items Support
WebInventory supports custom item plugins:
ItemsAdder
# In admin panel:
Provider: ITEMSADDER
Custom ID: namespace:item_id
Icon: DIAMOND_SWORD (vanilla material for texture)
MMOItems
# In admin panel:
Provider: MMOITEMS
MMO Type: SWORD (item type)
Custom ID: RUBY_SWORD (item ID)
Icon: DIAMOND_SWORD
Oraxen
# In admin panel:
Provider: ORAXEN
Custom ID: item_id
Icon: DIAMOND_SWORD
Economy Integration
Vault
Most common economy bridge. Works with:
- EssentialsX Economy
- CMI Economy
- Any Vault-compatible plugin
PlayerPoints
Point-based economy system.
Configuration
store:
economy:
type: AUTO # or VAULT, PLAYERPOINTS
Real-Money Payments (Premium)
Accept PayPal and crypto payments for store items.
Setup
store:
payments:
enabled: true
currency: "USD"
callback-url: "https://yourserver.com:8081/api/payments/callback"
paypal:
enabled: true
mode: "sandbox" # or "live"
client-id: "YOUR_PAYPAL_CLIENT_ID"
client-secret: "YOUR_PAYPAL_SECRET"
crypto:
enabled: true
api-key: "YOUR_NOWPAYMENTS_API_KEY"
ipn-secret: "YOUR_IPN_SECRET"
PayPal Setup
- Create account at developer.paypal.com
- Create REST API app (Sandbox for testing)
- Copy Client ID and Secret
- Test with sandbox, switch to "live" for production
Crypto Setup (NOWPayments)
- Create account at nowpayments.io
- Get API Key from dashboard
- Configure IPN Secret for webhooks
- Supports BTC, ETH, LTC, and 100+ cryptocurrencies
Payment Flow
- Player clicks "PayPal" or "Crypto" on item
- Redirected to payment provider
- After payment, item delivered in-game
- Offline players receive items on next login
Map Integration
Integrates with popular map plugins to show player locations.
Supported Plugins
- Dynmap
- BlueMap
- Pl3xMap
- Squaremap
Configuration
maps:
enabled: true
# Optional: Force specific URL
url: "https://map.yourserver.com"
Theme Customization (Premium)
Customize the look and feel of your web interface.
Configuration
customization:
# Remove "Powered by WebInventory" footer
remove-branding: true
# Custom footer text
footer-text: "My Awesome Server"
# Theme preset: default, dark, midnight, custom
theme: "dark"
# Custom colors (override theme)
colors:
primary: "#3B82F6"
secondary: "#6366F1"
accent: "#22C55E"
background: "#0f0f1a"
card: "#1a1a2e"
text: "#ffffff"
# Custom logo/favicon
logo-url: "/custom/assets/logo.png"
favicon-url: "/custom/assets/favicon.ico"
# Load custom CSS/JS
custom-css: true
custom-js: false
Theme Presets
| Theme | Description |
|---|---|
default |
Light theme with white background |
dark |
Dark theme with blue accents |
midnight |
Deep dark with purple/pink accents |
custom |
Use only custom colors |
Custom Files
Place files in plugins/WebInventory/custom/:
custom/
├── style.css # Custom CSS (loaded after default)
├── custom.js # Custom JavaScript
└── assets/
├── logo.png # Custom logo
└── favicon.ico
Example: Custom CSS
/* custom/style.css */
:root {
--theme-primary: #ff6b6b !important;
--theme-accent: #ffd93d !important;
}
.header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
Security Features
Rate Limiting
Protects against DDoS and brute-force attacks.
security:
rate-limit:
enabled: true
requests-per-minute: 60
HTTPS/SSL
For production, use a reverse proxy (nginx/Caddy) or:
security:
https:
enabled: true
keystore-path: "keystore.jks"
keystore-password: "changeit"
Admin Security
- Failed Login Lockout: 5 attempts, 15 minute lockout
- IP Whitelisting: Restrict admin access by IP
- Session Fingerprinting: Ties sessions to IP/User-Agent
- 2FA: TOTP-based two-factor authentication
API Security
api:
secret-key: "your-secret-key-here"
Use header: Authorization: Bearer your-secret-key-here
REST API
Authentication
Header: Authorization: Bearer YOUR_SECRET_KEY
Header: X-Store-Token: SESSION_TOKEN (for store)
Public Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Server health check |
| GET | /api/settings |
Feature settings |
| GET | /api/players |
List enabled players |
| GET | /api/map |
Map integration config |
Player Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/player/{username} |
Player info |
| GET | /api/player/{username}/inventory |
Full inventory |
| GET | /api/player/{username}/enderchest |
Ender chest |
Store Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/store/link |
Generate link code |
| POST | /api/store/verify |
Verify code, get token |
| GET | /api/store/session |
Check session |
| GET | /api/store/balance |
Get balance |
| GET | /api/store/items |
Get store items |
| POST | /api/store/buy |
Buy item |
| POST | /api/store/sell |
Sell item |
Admin Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/admin/login |
Admin login |
| GET | /api/admin/items |
List items |
| POST | /api/admin/items |
Add item |
| PUT | /api/admin/items |
Update item |
| DELETE | /api/admin/items |
Delete item |
| GET | /api/admin/categories |
List categories |
| GET | /api/admin/transactions |
Transaction history |
| GET | /api/admin/stats |
Store statistics |
WebSocket API
Real-time inventory updates via WebSocket.
Connection
ws://YOUR_SERVER:8081/ws/inventory/{username}
Client Messages
{"type": "subscribe", "player": "Steve"}
{"type": "unsubscribe", "player": "Steve"}
{"type": "ping"}
Server Messages
{"type": "inventory_update", "player": "Steve", "data": {...}}
{"type": "player_disabled", "player": "Steve"}
{"type": "pong"}
{"type": "error", "error": "..."}
Database Setup
JSON (Default)
Data stored in plugins/WebInventory/data/ as JSON files.
- Simple, no setup required
- Good for single servers
MySQL
For multi-server setups or better performance:
database:
type: "mysql"
host: "localhost"
port: 3306
name: "minecraft"
username: "root"
password: "password"
use-ssl: false
Localization
Supported Languages
- English (en) - Default
- Add your own!
Configuration
language: en
Custom Messages
Edit plugins/WebInventory/messages_en.yml:
prefix: "&8[&bWebInventory&8]&r "
enabled: "&aWeb inventory enabled! View at: &e{url}"
disabled: "&cWeb inventory disabled."
Discord Webhooks
Get notifications for admin actions and events.
Configuration
webhooks:
enabled: true
url: "https://discord.com/api/webhooks/..."
events:
login: true
security: true
item_add: true
item_remove: true
price_change: true
Event Types
- login: Admin logins
- security: Failed logins, lockouts
- item_add/remove: Store item changes
- price_change: Price updates
- 2fa: 2FA enabled/disabled
Troubleshooting
Port Already in Use
Error: Address already in use
Change the port in config.yml or stop the conflicting application.
Cannot Access Web Interface
- Check firewall allows the port
- Verify
address: "0.0.0.0"in config - Try accessing locally first:
http://localhost:8081
Store Not Working
- Ensure economy plugin is installed
- Check
store.economy.typein config - Verify player has linked their account
Custom Items Not Showing
- Ensure ItemsAdder/MMOItems/Oraxen is installed
- Check item ID is correct
- Set a valid vanilla material for Icon field
License Issues
- Verify your license key in config
- Check internet connectivity
- Contact support if issues persist
Support
- Discord: https://discord.gg/tyjc4KfRsM
- Issues: https://github.com/idosysstuff/mc-webinventory
- Website: https://dimic.tech
License
WebInventory is a premium plugin. Get your license at dimic.tech.
Free Features
- Web inventory viewing
- Player profiles
- Basic web interface
Premium Features
- REST API access
- WebSocket real-time updates
- Custom template support
- Remove branding
- Priority support