Skip to content

Latest commit

History

History
82 lines (60 loc) · 4.98 KB

File metadata and controls

82 lines (60 loc) · 4.98 KB

Integrations

Required Economy Stack

Vault is a hard dependency. ShopChest also requires an economy provider registered through Vault; Vault alone is not enough. All creation charges, refunds, buys, sells, balance checks, and displayed currency formatting use that provider.

Optional Protection and World Integrations

PluginVerified ShopChest behavior
WorldGuardRegisters create-shop, use-shop, and use-admin-shop state flags and checks them during creation and trading. It also supplies the region membership used by marketplace-scoped storefront discovery.
TownyRestricts shop creation to configured plot types according to resident, mayor, and king context.
PlotSquaredRegisters and evaluates shop flags for supported old and newer PlotSquared API layouts.
BentoBoxRegisters a shop flag and checks island access.
GriefPreventionChecks claim permission before shop creation/use through its listener hook.
AreaShopRemoves shops on configured region lifecycle events; its listener is used with the WorldGuard-backed integration.
ASkyBlock / uSkyBlock / IslandWorldChecks island ownership or access through the installed plugin API.
AuthMeIgnores shop interactions from players who are not authenticated.

Each hook has an enable-*-integration setting. Most are also listed as soft dependencies so they load before ShopChest when installed. Restart after adding, removing, updating, or toggling an integration.

shopchest.external.bypass lets trusted staff bypass integrated region, plot, island, or claim denials while using shops. shopchest.create.protected separately bypasses a cancelled creation event.

/warp shops Discovery Scope

The default storefront-discovery.location-scope: MARKETPLACE includes a shop only when WorldGuard confirms that it is in world general and region shops, or the configured replacements. If WorldGuard is absent, disabled, or cannot answer the region lookup, discovery fails closed. This affects public profiles, item search, Featured Listing eligibility, and advertising.

GLOBAL is available for servers that intentionally want broader in-game discovery. Ordinary coordinates remain non-clickable, and the reviewed website snapshot remains limited to the configured /warp shops marketplace.

AFK Shrine Token Advertising Currency

AFK Shrine Tokens are earned through the 1MB-Library /afkshrine trades, but ShopChest does not depend on an AFK Shrine API or guess an internal PDC key. An administrator holds one genuine token and runs /shops admin advertise currency capture. ShopChest serializes that complete ItemStack with amount normalized to 1 in its own data folder.

At purchase time a candidate stack is also normalized to amount 1 and accepted only when Bukkit's ItemStack.isSimilar says it matches the captured template. Plain LIGHT_BLUE_DYE, renamed dyes, copied display names/lore, and items with missing, extra, or changed PDC/components are rejected. A missing or unreadable template disables purchases rather than falling back to a weaker identity.

This capture boundary lets the AFK Shrine implementation evolve without making ShopChest depend on a guessed token schema. After an intentional token format change, staff should clear and recapture the new genuine item during a maintenance window.

CMI Worth Price Advisory

CMI is an optional soft dependency. When installed and cmi-worth-price-warning.enabled is true, ShopChest uses CMI's public WorthManager API to compare proposed normal-shop unit prices with the product's loaded /sell worth. It can flag direct resale opportunities and unusually low or high ratios without blocking shop creation.

ShopChest does not parse Worth.yml, schedule a file scan, or perform this comparison during normal trades. It makes one lookup only when a valid normal-shop proposal is being created. CMI remains responsible for interpreting item metadata and its worth configuration. /shops admin debug reports whether the advisory is active and which thresholds are loaded.

Multiworld and Proxy Behavior

Multiverse-Core and MultiWorld are soft dependencies used to improve load ordering for persisted shops in multiple worlds. Shop records include world and block coordinates.

When enable-vendor-bungee-messages is enabled, ShopChest sends vendor notifications over the outgoing BungeeCord plugin channel. This is message forwarding, not shared shop storage. A network that needs common shops must configure a shared MySQL database and validate concurrent behavior in staging.

Metrics and Updates

This custom fork does not include bStats or transmit usage metrics. It also does not contact the original Spigot resource for update information. Plugin updates are distributed as reviewed 1MoreBlock builds through normal server maintenance.

ShopChest does not provide a PlaceholderAPI expansion and does not integrate with mcMMO. Hologram placeholders are internal to ShopChest; external plugins should not treat the fake display entities as players.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
ShopChest/docs/integrations.md at master · mrfdev/ShopChest · GitHub
Skip to content

Latest commit

History

History
82 lines (60 loc) · 4.98 KB

File metadata and controls

82 lines (60 loc) · 4.98 KB

Integrations

Required Economy Stack

Vault is a hard dependency. ShopChest also requires an economy provider registered through Vault; Vault alone is not enough. All creation charges, refunds, buys, sells, balance checks, and displayed currency formatting use that provider.

Optional Protection and World Integrations

PluginVerified ShopChest behavior
WorldGuardRegisters create-shop, use-shop, and use-admin-shop state flags and checks them during creation and trading. It also supplies the region membership used by marketplace-scoped storefront discovery.
TownyRestricts shop creation to configured plot types according to resident, mayor, and king context.
PlotSquaredRegisters and evaluates shop flags for supported old and newer PlotSquared API layouts.
BentoBoxRegisters a shop flag and checks island access.
GriefPreventionChecks claim permission before shop creation/use through its listener hook.
AreaShopRemoves shops on configured region lifecycle events; its listener is used with the WorldGuard-backed integration.
ASkyBlock / uSkyBlock / IslandWorldChecks island ownership or access through the installed plugin API.
AuthMeIgnores shop interactions from players who are not authenticated.

Each hook has an enable-*-integration setting. Most are also listed as soft dependencies so they load before ShopChest when installed. Restart after adding, removing, updating, or toggling an integration.

shopchest.external.bypass lets trusted staff bypass integrated region, plot, island, or claim denials while using shops. shopchest.create.protected separately bypasses a cancelled creation event.

/warp shops Discovery Scope

The default storefront-discovery.location-scope: MARKETPLACE includes a shop only when WorldGuard confirms that it is in world general and region shops, or the configured replacements. If WorldGuard is absent, disabled, or cannot answer the region lookup, discovery fails closed. This affects public profiles, item search, Featured Listing eligibility, and advertising.

GLOBAL is available for servers that intentionally want broader in-game discovery. Ordinary coordinates remain non-clickable, and the reviewed website snapshot remains limited to the configured /warp shops marketplace.

AFK Shrine Token Advertising Currency

AFK Shrine Tokens are earned through the 1MB-Library /afkshrine trades, but ShopChest does not depend on an AFK Shrine API or guess an internal PDC key. An administrator holds one genuine token and runs /shops admin advertise currency capture. ShopChest serializes that complete ItemStack with amount normalized to 1 in its own data folder.

At purchase time a candidate stack is also normalized to amount 1 and accepted only when Bukkit's ItemStack.isSimilar says it matches the captured template. Plain LIGHT_BLUE_DYE, renamed dyes, copied display names/lore, and items with missing, extra, or changed PDC/components are rejected. A missing or unreadable template disables purchases rather than falling back to a weaker identity.

This capture boundary lets the AFK Shrine implementation evolve without making ShopChest depend on a guessed token schema. After an intentional token format change, staff should clear and recapture the new genuine item during a maintenance window.

CMI Worth Price Advisory

CMI is an optional soft dependency. When installed and cmi-worth-price-warning.enabled is true, ShopChest uses CMI's public WorthManager API to compare proposed normal-shop unit prices with the product's loaded /sell worth. It can flag direct resale opportunities and unusually low or high ratios without blocking shop creation.

ShopChest does not parse Worth.yml, schedule a file scan, or perform this comparison during normal trades. It makes one lookup only when a valid normal-shop proposal is being created. CMI remains responsible for interpreting item metadata and its worth configuration. /shops admin debug reports whether the advisory is active and which thresholds are loaded.

Multiworld and Proxy Behavior

Multiverse-Core and MultiWorld are soft dependencies used to improve load ordering for persisted shops in multiple worlds. Shop records include world and block coordinates.

When enable-vendor-bungee-messages is enabled, ShopChest sends vendor notifications over the outgoing BungeeCord plugin channel. This is message forwarding, not shared shop storage. A network that needs common shops must configure a shared MySQL database and validate concurrent behavior in staging.

Metrics and Updates

This custom fork does not include bStats or transmit usage metrics. It also does not contact the original Spigot resource for update information. Plugin updates are distributed as reviewed 1MoreBlock builds through normal server maintenance.

ShopChest does not provide a PlaceholderAPI expansion and does not integrate with mcMMO. Hologram placeholders are internal to ShopChest; external plugins should not treat the fake display entities as players.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' ShopChest/docs/integrations.md at master · mrfdev/ShopChest · GitHub
Skip to content

Latest commit

History

History
82 lines (60 loc) · 4.98 KB

File metadata and controls

82 lines (60 loc) · 4.98 KB

Integrations

Required Economy Stack

Vault is a hard dependency. ShopChest also requires an economy provider registered through Vault; Vault alone is not enough. All creation charges, refunds, buys, sells, balance checks, and displayed currency formatting use that provider.

Optional Protection and World Integrations

PluginVerified ShopChest behavior
WorldGuardRegisters create-shop, use-shop, and use-admin-shop state flags and checks them during creation and trading. It also supplies the region membership used by marketplace-scoped storefront discovery.
TownyRestricts shop creation to configured plot types according to resident, mayor, and king context.
PlotSquaredRegisters and evaluates shop flags for supported old and newer PlotSquared API layouts.
BentoBoxRegisters a shop flag and checks island access.
GriefPreventionChecks claim permission before shop creation/use through its listener hook.
AreaShopRemoves shops on configured region lifecycle events; its listener is used with the WorldGuard-backed integration.
ASkyBlock / uSkyBlock / IslandWorldChecks island ownership or access through the installed plugin API.
AuthMeIgnores shop interactions from players who are not authenticated.

Each hook has an enable-*-integration setting. Most are also listed as soft dependencies so they load before ShopChest when installed. Restart after adding, removing, updating, or toggling an integration.

shopchest.external.bypass lets trusted staff bypass integrated region, plot, island, or claim denials while using shops. shopchest.create.protected separately bypasses a cancelled creation event.

/warp shops Discovery Scope

The default storefront-discovery.location-scope: MARKETPLACE includes a shop only when WorldGuard confirms that it is in world general and region shops, or the configured replacements. If WorldGuard is absent, disabled, or cannot answer the region lookup, discovery fails closed. This affects public profiles, item search, Featured Listing eligibility, and advertising.

GLOBAL is available for servers that intentionally want broader in-game discovery. Ordinary coordinates remain non-clickable, and the reviewed website snapshot remains limited to the configured /warp shops marketplace.

AFK Shrine Token Advertising Currency

AFK Shrine Tokens are earned through the 1MB-Library /afkshrine trades, but ShopChest does not depend on an AFK Shrine API or guess an internal PDC key. An administrator holds one genuine token and runs /shops admin advertise currency capture. ShopChest serializes that complete ItemStack with amount normalized to 1 in its own data folder.

At purchase time a candidate stack is also normalized to amount 1 and accepted only when Bukkit's ItemStack.isSimilar says it matches the captured template. Plain LIGHT_BLUE_DYE, renamed dyes, copied display names/lore, and items with missing, extra, or changed PDC/components are rejected. A missing or unreadable template disables purchases rather than falling back to a weaker identity.

This capture boundary lets the AFK Shrine implementation evolve without making ShopChest depend on a guessed token schema. After an intentional token format change, staff should clear and recapture the new genuine item during a maintenance window.

CMI Worth Price Advisory

CMI is an optional soft dependency. When installed and cmi-worth-price-warning.enabled is true, ShopChest uses CMI's public WorthManager API to compare proposed normal-shop unit prices with the product's loaded /sell worth. It can flag direct resale opportunities and unusually low or high ratios without blocking shop creation.

ShopChest does not parse Worth.yml, schedule a file scan, or perform this comparison during normal trades. It makes one lookup only when a valid normal-shop proposal is being created. CMI remains responsible for interpreting item metadata and its worth configuration. /shops admin debug reports whether the advisory is active and which thresholds are loaded.

Multiworld and Proxy Behavior

Multiverse-Core and MultiWorld are soft dependencies used to improve load ordering for persisted shops in multiple worlds. Shop records include world and block coordinates.

When enable-vendor-bungee-messages is enabled, ShopChest sends vendor notifications over the outgoing BungeeCord plugin channel. This is message forwarding, not shared shop storage. A network that needs common shops must configure a shared MySQL database and validate concurrent behavior in staging.

Metrics and Updates

This custom fork does not include bStats or transmit usage metrics. It also does not contact the original Spigot resource for update information. Plugin updates are distributed as reviewed 1MoreBlock builds through normal server maintenance.

ShopChest does not provide a PlaceholderAPI expansion and does not integrate with mcMMO. Hologram placeholders are internal to ShopChest; external plugins should not treat the fake display entities as players.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' ShopChest/docs/integrations.md at master · mrfdev/ShopChest · GitHub
Skip to content

Latest commit

History

History
82 lines (60 loc) · 4.98 KB

File metadata and controls

82 lines (60 loc) · 4.98 KB

Integrations

Required Economy Stack

Vault is a hard dependency. ShopChest also requires an economy provider registered through Vault; Vault alone is not enough. All creation charges, refunds, buys, sells, balance checks, and displayed currency formatting use that provider.

Optional Protection and World Integrations

PluginVerified ShopChest behavior
WorldGuardRegisters create-shop, use-shop, and use-admin-shop state flags and checks them during creation and trading. It also supplies the region membership used by marketplace-scoped storefront discovery.
TownyRestricts shop creation to configured plot types according to resident, mayor, and king context.
PlotSquaredRegisters and evaluates shop flags for supported old and newer PlotSquared API layouts.
BentoBoxRegisters a shop flag and checks island access.
GriefPreventionChecks claim permission before shop creation/use through its listener hook.
AreaShopRemoves shops on configured region lifecycle events; its listener is used with the WorldGuard-backed integration.
ASkyBlock / uSkyBlock / IslandWorldChecks island ownership or access through the installed plugin API.
AuthMeIgnores shop interactions from players who are not authenticated.

Each hook has an enable-*-integration setting. Most are also listed as soft dependencies so they load before ShopChest when installed. Restart after adding, removing, updating, or toggling an integration.

shopchest.external.bypass lets trusted staff bypass integrated region, plot, island, or claim denials while using shops. shopchest.create.protected separately bypasses a cancelled creation event.

/warp shops Discovery Scope

The default storefront-discovery.location-scope: MARKETPLACE includes a shop only when WorldGuard confirms that it is in world general and region shops, or the configured replacements. If WorldGuard is absent, disabled, or cannot answer the region lookup, discovery fails closed. This affects public profiles, item search, Featured Listing eligibility, and advertising.

GLOBAL is available for servers that intentionally want broader in-game discovery. Ordinary coordinates remain non-clickable, and the reviewed website snapshot remains limited to the configured /warp shops marketplace.

AFK Shrine Token Advertising Currency

AFK Shrine Tokens are earned through the 1MB-Library /afkshrine trades, but ShopChest does not depend on an AFK Shrine API or guess an internal PDC key. An administrator holds one genuine token and runs /shops admin advertise currency capture. ShopChest serializes that complete ItemStack with amount normalized to 1 in its own data folder.

At purchase time a candidate stack is also normalized to amount 1 and accepted only when Bukkit's ItemStack.isSimilar says it matches the captured template. Plain LIGHT_BLUE_DYE, renamed dyes, copied display names/lore, and items with missing, extra, or changed PDC/components are rejected. A missing or unreadable template disables purchases rather than falling back to a weaker identity.

This capture boundary lets the AFK Shrine implementation evolve without making ShopChest depend on a guessed token schema. After an intentional token format change, staff should clear and recapture the new genuine item during a maintenance window.

CMI Worth Price Advisory

CMI is an optional soft dependency. When installed and cmi-worth-price-warning.enabled is true, ShopChest uses CMI's public WorthManager API to compare proposed normal-shop unit prices with the product's loaded /sell worth. It can flag direct resale opportunities and unusually low or high ratios without blocking shop creation.

ShopChest does not parse Worth.yml, schedule a file scan, or perform this comparison during normal trades. It makes one lookup only when a valid normal-shop proposal is being created. CMI remains responsible for interpreting item metadata and its worth configuration. /shops admin debug reports whether the advisory is active and which thresholds are loaded.

Multiworld and Proxy Behavior

Multiverse-Core and MultiWorld are soft dependencies used to improve load ordering for persisted shops in multiple worlds. Shop records include world and block coordinates.

When enable-vendor-bungee-messages is enabled, ShopChest sends vendor notifications over the outgoing BungeeCord plugin channel. This is message forwarding, not shared shop storage. A network that needs common shops must configure a shared MySQL database and validate concurrent behavior in staging.

Metrics and Updates

This custom fork does not include bStats or transmit usage metrics. It also does not contact the original Spigot resource for update information. Plugin updates are distributed as reviewed 1MoreBlock builds through normal server maintenance.

ShopChest does not provide a PlaceholderAPI expansion and does not integrate with mcMMO. Hologram placeholders are internal to ShopChest; external plugins should not treat the fake display entities as players.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' ShopChest/docs/integrations.md at master · mrfdev/ShopChest · GitHub
Skip to content

Latest commit

History

History
82 lines (60 loc) · 4.98 KB

File metadata and controls

82 lines (60 loc) · 4.98 KB

Integrations

Required Economy Stack

Vault is a hard dependency. ShopChest also requires an economy provider registered through Vault; Vault alone is not enough. All creation charges, refunds, buys, sells, balance checks, and displayed currency formatting use that provider.

Optional Protection and World Integrations

PluginVerified ShopChest behavior
WorldGuardRegisters create-shop, use-shop, and use-admin-shop state flags and checks them during creation and trading. It also supplies the region membership used by marketplace-scoped storefront discovery.
TownyRestricts shop creation to configured plot types according to resident, mayor, and king context.
PlotSquaredRegisters and evaluates shop flags for supported old and newer PlotSquared API layouts.
BentoBoxRegisters a shop flag and checks island access.
GriefPreventionChecks claim permission before shop creation/use through its listener hook.
AreaShopRemoves shops on configured region lifecycle events; its listener is used with the WorldGuard-backed integration.
ASkyBlock / uSkyBlock / IslandWorldChecks island ownership or access through the installed plugin API.
AuthMeIgnores shop interactions from players who are not authenticated.

Each hook has an enable-*-integration setting. Most are also listed as soft dependencies so they load before ShopChest when installed. Restart after adding, removing, updating, or toggling an integration.

shopchest.external.bypass lets trusted staff bypass integrated region, plot, island, or claim denials while using shops. shopchest.create.protected separately bypasses a cancelled creation event.

/warp shops Discovery Scope

The default storefront-discovery.location-scope: MARKETPLACE includes a shop only when WorldGuard confirms that it is in world general and region shops, or the configured replacements. If WorldGuard is absent, disabled, or cannot answer the region lookup, discovery fails closed. This affects public profiles, item search, Featured Listing eligibility, and advertising.

GLOBAL is available for servers that intentionally want broader in-game discovery. Ordinary coordinates remain non-clickable, and the reviewed website snapshot remains limited to the configured /warp shops marketplace.

AFK Shrine Token Advertising Currency

AFK Shrine Tokens are earned through the 1MB-Library /afkshrine trades, but ShopChest does not depend on an AFK Shrine API or guess an internal PDC key. An administrator holds one genuine token and runs /shops admin advertise currency capture. ShopChest serializes that complete ItemStack with amount normalized to 1 in its own data folder.

At purchase time a candidate stack is also normalized to amount 1 and accepted only when Bukkit's ItemStack.isSimilar says it matches the captured template. Plain LIGHT_BLUE_DYE, renamed dyes, copied display names/lore, and items with missing, extra, or changed PDC/components are rejected. A missing or unreadable template disables purchases rather than falling back to a weaker identity.

This capture boundary lets the AFK Shrine implementation evolve without making ShopChest depend on a guessed token schema. After an intentional token format change, staff should clear and recapture the new genuine item during a maintenance window.

CMI Worth Price Advisory

CMI is an optional soft dependency. When installed and cmi-worth-price-warning.enabled is true, ShopChest uses CMI's public WorthManager API to compare proposed normal-shop unit prices with the product's loaded /sell worth. It can flag direct resale opportunities and unusually low or high ratios without blocking shop creation.

ShopChest does not parse Worth.yml, schedule a file scan, or perform this comparison during normal trades. It makes one lookup only when a valid normal-shop proposal is being created. CMI remains responsible for interpreting item metadata and its worth configuration. /shops admin debug reports whether the advisory is active and which thresholds are loaded.

Multiworld and Proxy Behavior

Multiverse-Core and MultiWorld are soft dependencies used to improve load ordering for persisted shops in multiple worlds. Shop records include world and block coordinates.

When enable-vendor-bungee-messages is enabled, ShopChest sends vendor notifications over the outgoing BungeeCord plugin channel. This is message forwarding, not shared shop storage. A network that needs common shops must configure a shared MySQL database and validate concurrent behavior in staging.

Metrics and Updates

This custom fork does not include bStats or transmit usage metrics. It also does not contact the original Spigot resource for update information. Plugin updates are distributed as reviewed 1MoreBlock builds through normal server maintenance.

ShopChest does not provide a PlaceholderAPI expansion and does not integrate with mcMMO. Hologram placeholders are internal to ShopChest; external plugins should not treat the fake display entities as players.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' ShopChest/docs/integrations.md at master · mrfdev/ShopChest · GitHub
Skip to content

Latest commit

History

History
82 lines (60 loc) · 4.98 KB

File metadata and controls

82 lines (60 loc) · 4.98 KB

Integrations

Required Economy Stack

Vault is a hard dependency. ShopChest also requires an economy provider registered through Vault; Vault alone is not enough. All creation charges, refunds, buys, sells, balance checks, and displayed currency formatting use that provider.

Optional Protection and World Integrations

PluginVerified ShopChest behavior
WorldGuardRegisters create-shop, use-shop, and use-admin-shop state flags and checks them during creation and trading. It also supplies the region membership used by marketplace-scoped storefront discovery.
TownyRestricts shop creation to configured plot types according to resident, mayor, and king context.
PlotSquaredRegisters and evaluates shop flags for supported old and newer PlotSquared API layouts.
BentoBoxRegisters a shop flag and checks island access.
GriefPreventionChecks claim permission before shop creation/use through its listener hook.
AreaShopRemoves shops on configured region lifecycle events; its listener is used with the WorldGuard-backed integration.
ASkyBlock / uSkyBlock / IslandWorldChecks island ownership or access through the installed plugin API.
AuthMeIgnores shop interactions from players who are not authenticated.

Each hook has an enable-*-integration setting. Most are also listed as soft dependencies so they load before ShopChest when installed. Restart after adding, removing, updating, or toggling an integration.

shopchest.external.bypass lets trusted staff bypass integrated region, plot, island, or claim denials while using shops. shopchest.create.protected separately bypasses a cancelled creation event.

/warp shops Discovery Scope

The default storefront-discovery.location-scope: MARKETPLACE includes a shop only when WorldGuard confirms that it is in world general and region shops, or the configured replacements. If WorldGuard is absent, disabled, or cannot answer the region lookup, discovery fails closed. This affects public profiles, item search, Featured Listing eligibility, and advertising.

GLOBAL is available for servers that intentionally want broader in-game discovery. Ordinary coordinates remain non-clickable, and the reviewed website snapshot remains limited to the configured /warp shops marketplace.

AFK Shrine Token Advertising Currency

AFK Shrine Tokens are earned through the 1MB-Library /afkshrine trades, but ShopChest does not depend on an AFK Shrine API or guess an internal PDC key. An administrator holds one genuine token and runs /shops admin advertise currency capture. ShopChest serializes that complete ItemStack with amount normalized to 1 in its own data folder.

At purchase time a candidate stack is also normalized to amount 1 and accepted only when Bukkit's ItemStack.isSimilar says it matches the captured template. Plain LIGHT_BLUE_DYE, renamed dyes, copied display names/lore, and items with missing, extra, or changed PDC/components are rejected. A missing or unreadable template disables purchases rather than falling back to a weaker identity.

This capture boundary lets the AFK Shrine implementation evolve without making ShopChest depend on a guessed token schema. After an intentional token format change, staff should clear and recapture the new genuine item during a maintenance window.

CMI Worth Price Advisory

CMI is an optional soft dependency. When installed and cmi-worth-price-warning.enabled is true, ShopChest uses CMI's public WorthManager API to compare proposed normal-shop unit prices with the product's loaded /sell worth. It can flag direct resale opportunities and unusually low or high ratios without blocking shop creation.

ShopChest does not parse Worth.yml, schedule a file scan, or perform this comparison during normal trades. It makes one lookup only when a valid normal-shop proposal is being created. CMI remains responsible for interpreting item metadata and its worth configuration. /shops admin debug reports whether the advisory is active and which thresholds are loaded.

Multiworld and Proxy Behavior

Multiverse-Core and MultiWorld are soft dependencies used to improve load ordering for persisted shops in multiple worlds. Shop records include world and block coordinates.

When enable-vendor-bungee-messages is enabled, ShopChest sends vendor notifications over the outgoing BungeeCord plugin channel. This is message forwarding, not shared shop storage. A network that needs common shops must configure a shared MySQL database and validate concurrent behavior in staging.

Metrics and Updates

This custom fork does not include bStats or transmit usage metrics. It also does not contact the original Spigot resource for update information. Plugin updates are distributed as reviewed 1MoreBlock builds through normal server maintenance.

ShopChest does not provide a PlaceholderAPI expansion and does not integrate with mcMMO. Hologram placeholders are internal to ShopChest; external plugins should not treat the fake display entities as players.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' ShopChest/docs/integrations.md at master · mrfdev/ShopChest · GitHub
Skip to content

Latest commit

History

History
82 lines (60 loc) · 4.98 KB

File metadata and controls

82 lines (60 loc) · 4.98 KB

Integrations

Required Economy Stack

Vault is a hard dependency. ShopChest also requires an economy provider registered through Vault; Vault alone is not enough. All creation charges, refunds, buys, sells, balance checks, and displayed currency formatting use that provider.

Optional Protection and World Integrations

PluginVerified ShopChest behavior
WorldGuardRegisters create-shop, use-shop, and use-admin-shop state flags and checks them during creation and trading. It also supplies the region membership used by marketplace-scoped storefront discovery.
TownyRestricts shop creation to configured plot types according to resident, mayor, and king context.
PlotSquaredRegisters and evaluates shop flags for supported old and newer PlotSquared API layouts.
BentoBoxRegisters a shop flag and checks island access.
GriefPreventionChecks claim permission before shop creation/use through its listener hook.
AreaShopRemoves shops on configured region lifecycle events; its listener is used with the WorldGuard-backed integration.
ASkyBlock / uSkyBlock / IslandWorldChecks island ownership or access through the installed plugin API.
AuthMeIgnores shop interactions from players who are not authenticated.

Each hook has an enable-*-integration setting. Most are also listed as soft dependencies so they load before ShopChest when installed. Restart after adding, removing, updating, or toggling an integration.

shopchest.external.bypass lets trusted staff bypass integrated region, plot, island, or claim denials while using shops. shopchest.create.protected separately bypasses a cancelled creation event.

/warp shops Discovery Scope

The default storefront-discovery.location-scope: MARKETPLACE includes a shop only when WorldGuard confirms that it is in world general and region shops, or the configured replacements. If WorldGuard is absent, disabled, or cannot answer the region lookup, discovery fails closed. This affects public profiles, item search, Featured Listing eligibility, and advertising.

GLOBAL is available for servers that intentionally want broader in-game discovery. Ordinary coordinates remain non-clickable, and the reviewed website snapshot remains limited to the configured /warp shops marketplace.

AFK Shrine Token Advertising Currency

AFK Shrine Tokens are earned through the 1MB-Library /afkshrine trades, but ShopChest does not depend on an AFK Shrine API or guess an internal PDC key. An administrator holds one genuine token and runs /shops admin advertise currency capture. ShopChest serializes that complete ItemStack with amount normalized to 1 in its own data folder.

At purchase time a candidate stack is also normalized to amount 1 and accepted only when Bukkit's ItemStack.isSimilar says it matches the captured template. Plain LIGHT_BLUE_DYE, renamed dyes, copied display names/lore, and items with missing, extra, or changed PDC/components are rejected. A missing or unreadable template disables purchases rather than falling back to a weaker identity.

This capture boundary lets the AFK Shrine implementation evolve without making ShopChest depend on a guessed token schema. After an intentional token format change, staff should clear and recapture the new genuine item during a maintenance window.

CMI Worth Price Advisory

CMI is an optional soft dependency. When installed and cmi-worth-price-warning.enabled is true, ShopChest uses CMI's public WorthManager API to compare proposed normal-shop unit prices with the product's loaded /sell worth. It can flag direct resale opportunities and unusually low or high ratios without blocking shop creation.

ShopChest does not parse Worth.yml, schedule a file scan, or perform this comparison during normal trades. It makes one lookup only when a valid normal-shop proposal is being created. CMI remains responsible for interpreting item metadata and its worth configuration. /shops admin debug reports whether the advisory is active and which thresholds are loaded.

Multiworld and Proxy Behavior

Multiverse-Core and MultiWorld are soft dependencies used to improve load ordering for persisted shops in multiple worlds. Shop records include world and block coordinates.

When enable-vendor-bungee-messages is enabled, ShopChest sends vendor notifications over the outgoing BungeeCord plugin channel. This is message forwarding, not shared shop storage. A network that needs common shops must configure a shared MySQL database and validate concurrent behavior in staging.

Metrics and Updates

This custom fork does not include bStats or transmit usage metrics. It also does not contact the original Spigot resource for update information. Plugin updates are distributed as reviewed 1MoreBlock builds through normal server maintenance.

ShopChest does not provide a PlaceholderAPI expansion and does not integrate with mcMMO. Hologram placeholders are internal to ShopChest; external plugins should not treat the fake display entities as players.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); ShopChest/docs/integrations.md at master · mrfdev/ShopChest · GitHub
Skip to content

Latest commit

History

History
82 lines (60 loc) · 4.98 KB

File metadata and controls

82 lines (60 loc) · 4.98 KB

Integrations

Required Economy Stack

Vault is a hard dependency. ShopChest also requires an economy provider registered through Vault; Vault alone is not enough. All creation charges, refunds, buys, sells, balance checks, and displayed currency formatting use that provider.

Optional Protection and World Integrations

PluginVerified ShopChest behavior
WorldGuardRegisters create-shop, use-shop, and use-admin-shop state flags and checks them during creation and trading. It also supplies the region membership used by marketplace-scoped storefront discovery.
TownyRestricts shop creation to configured plot types according to resident, mayor, and king context.
PlotSquaredRegisters and evaluates shop flags for supported old and newer PlotSquared API layouts.
BentoBoxRegisters a shop flag and checks island access.
GriefPreventionChecks claim permission before shop creation/use through its listener hook.
AreaShopRemoves shops on configured region lifecycle events; its listener is used with the WorldGuard-backed integration.
ASkyBlock / uSkyBlock / IslandWorldChecks island ownership or access through the installed plugin API.
AuthMeIgnores shop interactions from players who are not authenticated.

Each hook has an enable-*-integration setting. Most are also listed as soft dependencies so they load before ShopChest when installed. Restart after adding, removing, updating, or toggling an integration.

shopchest.external.bypass lets trusted staff bypass integrated region, plot, island, or claim denials while using shops. shopchest.create.protected separately bypasses a cancelled creation event.

/warp shops Discovery Scope

The default storefront-discovery.location-scope: MARKETPLACE includes a shop only when WorldGuard confirms that it is in world general and region shops, or the configured replacements. If WorldGuard is absent, disabled, or cannot answer the region lookup, discovery fails closed. This affects public profiles, item search, Featured Listing eligibility, and advertising.

GLOBAL is available for servers that intentionally want broader in-game discovery. Ordinary coordinates remain non-clickable, and the reviewed website snapshot remains limited to the configured /warp shops marketplace.

AFK Shrine Token Advertising Currency

AFK Shrine Tokens are earned through the 1MB-Library /afkshrine trades, but ShopChest does not depend on an AFK Shrine API or guess an internal PDC key. An administrator holds one genuine token and runs /shops admin advertise currency capture. ShopChest serializes that complete ItemStack with amount normalized to 1 in its own data folder.

At purchase time a candidate stack is also normalized to amount 1 and accepted only when Bukkit's ItemStack.isSimilar says it matches the captured template. Plain LIGHT_BLUE_DYE, renamed dyes, copied display names/lore, and items with missing, extra, or changed PDC/components are rejected. A missing or unreadable template disables purchases rather than falling back to a weaker identity.

This capture boundary lets the AFK Shrine implementation evolve without making ShopChest depend on a guessed token schema. After an intentional token format change, staff should clear and recapture the new genuine item during a maintenance window.

CMI Worth Price Advisory

CMI is an optional soft dependency. When installed and cmi-worth-price-warning.enabled is true, ShopChest uses CMI's public WorthManager API to compare proposed normal-shop unit prices with the product's loaded /sell worth. It can flag direct resale opportunities and unusually low or high ratios without blocking shop creation.

ShopChest does not parse Worth.yml, schedule a file scan, or perform this comparison during normal trades. It makes one lookup only when a valid normal-shop proposal is being created. CMI remains responsible for interpreting item metadata and its worth configuration. /shops admin debug reports whether the advisory is active and which thresholds are loaded.

Multiworld and Proxy Behavior

Multiverse-Core and MultiWorld are soft dependencies used to improve load ordering for persisted shops in multiple worlds. Shop records include world and block coordinates.

When enable-vendor-bungee-messages is enabled, ShopChest sends vendor notifications over the outgoing BungeeCord plugin channel. This is message forwarding, not shared shop storage. A network that needs common shops must configure a shared MySQL database and validate concurrent behavior in staging.

Metrics and Updates

This custom fork does not include bStats or transmit usage metrics. It also does not contact the original Spigot resource for update information. Plugin updates are distributed as reviewed 1MoreBlock builds through normal server maintenance.

ShopChest does not provide a PlaceholderAPI expansion and does not integrate with mcMMO. Hologram placeholders are internal to ShopChest; external plugins should not treat the fake display entities as players.