You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
spec.md gains the appearance backend under §3.1, the /vshop appearance surface
under §4, the two new tables under §8.1, and a §12.2 covering the FancyNpcs
integration — including why the build pins 2.9.2 and the three measured facts
the design rests on (synchronous interact event, blocking setSkin, NPCs absent
from the Bukkit entity API).
README, both admin guides and both player-advanced guides updated in step, with
the wording for each language taken from its own locale file rather than
translated across.
The admin guides call out the operational consequences rather than restating the
command list: URL skins sit behind their own permission because they pull a
remote image through the server, the profession button disappears while a shop
renders as an NPC, NPCs are invisible to other plugins' entity handling, and
/vshop reload re-sends them so config changes land without a restart.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+29-1Lines changed: 29 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,7 @@ ModernVillagerShop replaces the vanilla trade window with a **chest UI + Dialog*
11
11
-**Co-owners with revenue sharing.**`PRIMARY` / `MANAGER` / `STAFF` roles per shop, percentage shares that always add up to 100%, instant payout split on every sale, and an ownership-transfer flow.
12
12
-**Trade limits.** Per-slot caps, counted per player or server-wide, with an optional rolling reset window. Remaining amount and time-to-reset are shown in the slot lore.
13
13
-**Villagers that stay put.** Shop villagers are AI-locked, invulnerable, protected from portals, and respawned from the database on chunk load if something removes them.
14
+
-**Custom shop appearance.** With [FancyNpcs](https://modrinth.com/plugin/fancynpcs) installed, a shop can render as an NPC instead of a villager — a player skin, any entity type, glow colour, scale and equipment — all through `/vshop appearance`, no UI to click through.
14
15
-**Spawn-egg based creation.**`/vshop egg` hands out an egg that encodes how many listing rows the shop gets — 1 to *n* rows, or unlimited.
15
16
-**Full trade history and statistics.** Filterable history (`--side`, `--from`, `--to`, `--player`, `--shop`), per-shop stats, cumulative fees, and audit fields (`basePrice` / `finalPrice` / `resolvedBy`) on every record.
16
17
-**Owner notifications.** Chat notification on each trade while online, a summary on next login while offline, toggleable per player.
@@ -28,6 +29,7 @@ ModernVillagerShop replaces the vanilla trade window with a **chest UI + Dialog*
Appearance is stored in this plugin's own database, so it travels with `/vshop migrate` and NPCs are rebuilt from it on every boot. If FancyNpcs is missing or `fancynpcs.enabled` is false, NPC-backed shops fall back to villagers with a single warning — cosmetics never take a shop offline.
103
+
80
104
## Permissions
81
105
82
106
All nodes are prefixed `modernvillagershop.`. Two convenience bundles exist:
83
107
84
108
-**`modernvillagershop.player`** (default: everyone) — `use`, `egg`, `list`, `search`, `stats`, `history`, `open.nearby`, and the `edit.*` / `coowner.*` nodes needed to run your own shop.
Two independent layers decide what a player can do:
88
112
@@ -91,6 +115,8 @@ Two independent layers decide what a player can do:
91
115
92
116
The `*.others` nodes are moderation overrides — they ignore role entirely and apply to any shop.
93
117
118
+
Two appearance nodes sit outside the bundles' defaults: `edit.appearance.url` (op) gates loading a skin from an arbitrary URL, since that pulls a remote image through the server, and `admin.appearance` (op) bypasses the `fancynpcs.allowedTypes` and `fancynpcs.maxScale` limits.
119
+
94
120
## Configuration highlights
95
121
96
122
Full annotated defaults live in [`src/main/resources/config.yml`](https://github.com/f0reachARR/ModernVillagerShop/blob/main/src/main/resources/config.yml).
**FancyNpcs** (`fancynpcs.enabled: true`) — renders shops as NPCs; see [`/vshop appearance`](#vshop-appearance). Built against the `de.oliver:FancyNpcs` 2.x API. FancyNpcs 2.10.0+ requires Java 25 on the server; if you are on Java 21, use the `-java21` builds FancyNpcs publishes.
**Public API** — `ModernVillagerShopAPI` is registered with Bukkit's `ServicesManager` and exposes shop lookup, search, statistics and history for dashboards, logging and third-party integrations.
0 commit comments