File Details
Jvips-1.3.0.jar
- R
- Feb 13, 2026
- 2.38 MB
- 50
- Early Access
File Name
Jvips-1.3.0.jar
Supported Versions
- Early Access
JVIPS — Changelog
All notable changes to this project will be documented in this file.
v1.3.0 — Command Vouchers
Single-use vouchers that only execute commands — no VIP, no duration, no persistence.
✨ Added
- Command Voucher System — new voucher type for running server commands via items
- Separate config file
command_vouchers.json— independent fromvips.json - No HMAC — simplified system without cryptographic overhead
- No data persistence — nothing written to
players.jsonorhistory.json - Never blocked by active VIP — works regardless of player's VIP status
- Any item ID — supports custom items (
Jvips_Voucher2, etc.) for different visuals - UUID-bound — non-transferable, same security as VIP vouchers
- Drop-blocked — cannot be thrown on the ground
- New command
/vips givecmd <id> <player>— delivers a command voucher (requiresjvips.admin) - New messages:
commandvoucher.received— player notification on receiving a command vouchercommandvoucher.activated— player notification on activationerror.invalidCommandVoucher— unknown command voucher IDerror.commandVoucherNotLoaded— config not loadedadmin.givecmd.ok— admin confirmation after delivery
- Full localization in
en_US,pt_BR, andes_ES - Reloaded automatically via
/vips reload
🔧 Changed
JvipsVoucherInteraction— detectsjvips:type = "command_voucher"and routes to separate handlerVoucherDropBlockSystem— now blocks bothvip_voucherandcommand_vouchertypesVoucherUseListener— recognizes both voucher typesVipCommandService— new publicdispatchCommand(String)method for command vouchersVipsCommand— registered/vips givecmdsubcommandJvipsPlugin— loads and reloadscommand_vouchers.jsonon startup and/vips reloadadmin.helpmessages updated with/vips givecmdin all 3 languages
📁 New Files
| File | Description |
|---|---|
CommandVoucherDefinition.java |
Model: id, displayName, voucher spec, commandsOnActivate |
CommandVoucherConfig.java |
Loader for command_vouchers.json |
CommandVoucherItemFactory.java |
Creates items with jvips:type = "command_voucher" metadata |
VipsGiveCmdCommand.java |
/vips givecmd admin command |
command_vouchers.json |
Default config with hunterquest example |
💡 Use Cases
- Quest starters — teleport player to quest area
- Kit delivery — give items via commands
- Event access — run permission commands
- Reward coupons — execute any server command
- Teleport tokens — tp to specific locations
v1.2.0 — Stacking, Custom Duration & Smart Config Merge
✨ Added — Voucher Stacking
- New
stackable(boolean) andstackAmount(int) per-VIP invips.json - Using a voucher of the same VIP type extends the active duration instead of being blocked
stackAmount: 0= unlimited stacking; any other value = max extensions allowed- Stack count tracked per player in
players.json - Works with both voucher activation (
Right Click) and/vips add - New messages:
player.vipStacked,error.stackLimitReached
✨ Added — Custom Duration
- New
--durationflag for/vips givekeyand/vips add - Compact format:
1d2h10m5s(days, hours, minutes, seconds) - Custom duration embedded in voucher's HMAC signature (tamper-proof)
- Voucher lore and admin messages reflect the effective duration
- New utility:
DurationParser.java— parses duration strings to seconds - New message:
error.invalidDuration
✨ Added — Smart Config Merge
- Automatic merge of new configuration properties on plugin update
config.json— new sections and fields added without overwriting existing valuesvips.json— new VIP properties (e.g.,stackable) injected into all existing VIPsMessages/*.json— new message keys added to all language files- Arrays (
commandsOnActivate,commandsOnExpire,lore) are never modified - Runs on startup and
/vips reload - All merge actions logged to console for transparency
📁 New Files
| File | Description |
|---|---|
DurationParser.java |
Parses 1d2h10m5s format to seconds |
ConfigMerger.java |
Generic deep-merge for JSON configs |
VipsConfigMerger.java |
Specialized merge for vips.json structure |
v1.1.0 — Virtual Chest & History
✨ Added — Virtual Chest
- New
/vips chestcommand with native Hytale container GUI - Permission-based capacity:
jvips.chest.9throughjvips.chest.54(1–6 rows) - Full item persistence (ID, quantity, durability, metadata)
- Smart downgrade: excess items dropped at player's feet via ECS item spawning (never silently deleted)
- Atomic JSON writes prevent data loss on crash
- Persistent storage: items survive VIP expiration and are restored when renewed
✨ Added — History & Status
- New
/vips statuscommand for players — view active VIPs with remaining time - New
/vips list <player>for admins — view any player's active VIPs - New
/vips history <player>for admins — full activation/expiration history with timestamps - Paginated output for large histories
- Full event log stored in
data/history.json
✨ Added — Multilingual
- Added
es_ES(Spanish) language file - All new features fully localized in
en_US,pt_BR, andes_ES
📁 New Files
| File | Description |
|---|---|
VipsChestStore.java |
Persistent storage for chest contents |
VipsChestManager.java |
Chest logic: open, save, capacity, downgrade |
VipsChestWindow.java |
Native Hytale container GUI integration |
VipsChestCommand.java |
/vips chest command |
HistoryStore.java |
Storage for VIP event history |
HistoryRecorder.java |
Records activation/expiration events |
VipStatusCommand.java |
/vips status player command |
VipsHistoryCommand.java |
/vips history admin command |
es_ES.json |
Spanish language file |
v1.0.3 — Initial Release
✨ Core
- Secure voucher system with HMAC-SHA256 validation
- Player-bound vouchers (UUID) — non-transferable
- Persistent VIP storage in
data/players.json
✨ Automation
- Automatic VIP expiration via background ticking system
- Player does not need to be online for expiration
- Configurable
commandsOnActivateandcommandsOnExpireper VIP - Sequential command execution (order guaranteed)
✨ Assets
- Embedded asset pack with custom
Jvips_Voucheritem - Custom icon and 3D model
🔒 Security
- HMAC signature validation on all vouchers
- Voucher replay protection (used vouchers tracked in
data/vouchers.json) - Drop-blocking for VIP vouchers
- Atomic file writes (
.tmp+ move) for all persistent data
✨ Multilingual
en_US(English) andpt_BR(Portuguese) language files- Fully customizable messages via JSON
- Language selection via
config.json
🧾 Commands
/vips givekey <vip> <player>— give a VIP voucher/vips add <player> <vip>— grant VIP directly/vips remove <player> <vip>— remove VIP/vips reload— reload configuration
📢 VIP Broadcast (included since v1.0.3)
- Global EventTitle broadcast on VIP activation
- Cooldown and grouping support for multiple activations
- Plain-text optimized for Hytale UI stability
- Fully customizable via language files

