<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Placeholders</title><link>https://sourceforge.net/p/griefprevention3d/wiki/Placeholders/</link><description>Recent changes to Placeholders</description><atom:link href="https://sourceforge.net/p/griefprevention3d/wiki/Placeholders/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 02 Jul 2026 13:04:32 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/griefprevention3d/wiki/Placeholders/feed" rel="self" type="application/rss+xml"/><item><title>Placeholders modified by Jack Korte</title><link>https://sourceforge.net/p/griefprevention3d/wiki/Placeholders/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -47,6 +47,7 @@
 | `Builder`   | Player has Build trust (can build and break blocks)                   |
 | `Container` | Player has Container trust (can access containers)                    |
 | `Access`    | Player has Access trust (can use doors, buttons, and enter the claim) |
+| `Neighbor`  | Player has Neighbor trust (can create claims nearby)                  |
 | `Untrusted` | Player is inside a claim but has no trust                             |
 | `Unclaimed` | Player is not standing inside a claim                                 |

@@ -134,6 +135,7 @@
       PlaceholderTrustLevelBuilder: "Builder"
       PlaceholderTrustLevelContainer: "Container"
       PlaceholderTrustLevelAccess: "Access"

+      PlaceholderTrustLevelNeighbor: "Neighbor"
       PlaceholderTrustLevelUntrusted: "Untrusted"

 ---
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jack Korte</dc:creator><pubDate>Thu, 02 Jul 2026 13:04:32 -0000</pubDate><guid>https://sourceforge.netca10c5ec0f7e6196e69ea68e94961492aa0fa736</guid></item><item><title>Placeholders modified by Jack Korte</title><link>https://sourceforge.net/p/griefprevention3d/wiki/Placeholders/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="h-placeholders-placeholderapi"&gt;Placeholders (PlaceholderAPI)&lt;/h1&gt;
&lt;p&gt;GriefPrevention3D provides its own PlaceholderAPI expansion with identifier &lt;code&gt;gp3d&lt;/code&gt;. These placeholders can be used in any plugin that supports PlaceholderAPI (chat plugins, scoreboards, holograms, TAB, etc.).&lt;/p&gt;
&lt;p&gt;In addition, GriefPrevention's official PlaceholderAPI expansion can be installed from the PlaceholderAPI eCloud to provide claim block and owner placeholders.&lt;/p&gt;
&lt;h2 id="h-installation"&gt;Installation&lt;/h2&gt;
&lt;h3 id="h-griefprevention3d-placeholders"&gt;GriefPrevention3D placeholders&lt;/h3&gt;
&lt;p&gt;No setup is required. GriefPrevention3D automatically registers its PlaceholderAPI expansion on startup.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Expansion ID:&lt;/strong&gt; &lt;code&gt;gp3d&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Persists:&lt;/strong&gt; Yes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="h-additional-griefprevention-placeholders"&gt;Additional GriefPrevention placeholders&lt;/h3&gt;
&lt;p&gt;Install the official GriefPrevention PlaceholderAPI expansion:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/papi ecloud download GriefPrevention
/papi reload
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Expansion ID:&lt;/strong&gt; &lt;code&gt;griefprevention&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;h1 id="h-griefprevention3d-placeholders_1"&gt;GriefPrevention3D Placeholders&lt;/h1&gt;
&lt;h2 id="h-available-placeholders"&gt;Available Placeholders&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Placeholder&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example Output&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%gp3d_in_subdivision%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Whether the player is inside a subdivision (child claim)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt; / &lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%gp3d_in_3d_subdivision%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Whether the player is inside a 3D subdivision&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt; / &lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%gp3d_is_trusted%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Whether the player has any trust level in the current claim&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt; / &lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%gp3d_trust_level%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The player's trust level in the current claim (localized)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Owner&lt;/code&gt;, &lt;code&gt;Manager&lt;/code&gt;, &lt;code&gt;Builder&lt;/code&gt;, &lt;code&gt;Container&lt;/code&gt;, &lt;code&gt;Access&lt;/code&gt;, &lt;code&gt;Untrusted&lt;/code&gt;, &lt;code&gt;Unclaimed&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="h-trust-level-values"&gt;Trust Level Values&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;%gp3d_trust_level%&lt;/code&gt; placeholder returns a localized string based on the player's trust in the current claim.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Trust Level&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Owner&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Player owns the claim&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Manager&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Player has Manage trust (can manage claim settings and trust others)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Builder&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Player has Build trust (can build and break blocks)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Container&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Player has Container trust (can access containers)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Access&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Player has Access trust (can use doors, buttons, and enter the claim)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Untrusted&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Player is inside a claim but has no trust&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Unclaimed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Player is not standing inside a claim&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;h1 id="h-griefprevention-placeholders"&gt;GriefPrevention Placeholders&lt;/h1&gt;
&lt;p&gt;These placeholders are provided by PlaceholderAPI's GriefPrevention expansion.&lt;/p&gt;
&lt;h2 id="h-claim-statistics"&gt;Claim Statistics&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Placeholder&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example Output&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%griefprevention_claims%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Number of claims the player owns&lt;/td&gt;
&lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%griefprevention_claims_formatted%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Formatted claim count&lt;/td&gt;
&lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%griefprevention_bonusclaims%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Player's bonus claim blocks&lt;/td&gt;
&lt;td&gt;&lt;code&gt;1000&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%griefprevention_bonusclaims_formatted%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Formatted bonus claim blocks&lt;/td&gt;
&lt;td&gt;&lt;code&gt;1,000&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%griefprevention_accruedclaims%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Player's accrued claim blocks&lt;/td&gt;
&lt;td&gt;&lt;code&gt;2500&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%griefprevention_accruedclaims_formatted%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Formatted accrued claim blocks&lt;/td&gt;
&lt;td&gt;&lt;code&gt;2,500&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%griefprevention_remainingclaims%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remaining claim blocks available to the player&lt;/td&gt;
&lt;td&gt;&lt;code&gt;3200&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%griefprevention_remainingclaims_formatted%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Formatted remaining claim blocks&lt;/td&gt;
&lt;td&gt;&lt;code&gt;3,200&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="h-current-claim-information"&gt;Current Claim Information&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Placeholder&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example Output&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%griefprevention_currentclaim_ownername%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Owner of the claim the player is currently standing in&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Steve&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;%griefprevention_currentclaim_ownername_color%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Owner name with Minecraft colors applied&lt;/td&gt;
&lt;td&gt;&lt;code&gt;§aSteve&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;h1 id="h-usage-examples"&gt;Usage Examples&lt;/h1&gt;
&lt;h2 id="h-chat-plugins"&gt;Chat Plugins&lt;/h2&gt;
&lt;p&gt;Example (EssentialsChat, ChatControl, etc.):&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Format: "{prefix} &amp;lt;player&amp;gt; %gp3d_trust_level%"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Result:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;[Member] &amp;lt;Steve&amp;gt; Builder
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;hr/&gt;
&lt;h2 id="h-holograms"&gt;Holograms&lt;/h2&gt;
&lt;p&gt;Example (HolographicDisplays):&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Line 1: "&amp;amp;bCurrent Claim Status"
Line 2: "&amp;amp;eTrust: &amp;amp;f%gp3d_trust_level%"
Line 3: "&amp;amp;eClaim Blocks: &amp;amp;f%griefprevention_remainingclaims_formatted%"
Line 4: "&amp;amp;eOwner: &amp;amp;f%griefprevention_currentclaim_ownername%"
Line 5: "&amp;amp;eIn Subdivision: &amp;amp;f%gp3d_in_subdivision%"
Line 6: "&amp;amp;eIn 3D Subdivision: &amp;amp;f%gp3d_in_3d_subdivision%"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;hr/&gt;
&lt;h2 id="h-scoreboards"&gt;Scoreboards&lt;/h2&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Title: "&amp;amp;6Claim Info"
Line 1: "&amp;amp;eTrust: &amp;amp;f%gp3d_trust_level%"
Line 2: "&amp;amp;eClaim Blocks: &amp;amp;f%griefprevention_remainingclaims_formatted%"
Line 3: "&amp;amp;eOwner: &amp;amp;f%griefprevention_currentclaim_ownername%"
Line 4: "&amp;amp;eSub: &amp;amp;f%gp3d_in_subdivision%"
Line 5: "&amp;amp;e3D Sub: &amp;amp;f%gp3d_in_3d_subdivision%"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;hr/&gt;
&lt;h1 id="h-localization"&gt;Localization&lt;/h1&gt;
&lt;p&gt;The trust level strings returned by &lt;code&gt;%gp3d_trust_level%&lt;/code&gt; are fully localizable through &lt;code&gt;messages.yml&lt;/code&gt;:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;Messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;PlaceholderTrustLevelUnclaimed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"Unclaimed"&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;PlaceholderTrustLevelOwner&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"Owner"&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;PlaceholderTrustLevelManager&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"Manager"&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;PlaceholderTrustLevelBuilder&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"Builder"&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;PlaceholderTrustLevelContainer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"Container"&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;PlaceholderTrustLevelAccess&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"Access"&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;PlaceholderTrustLevelUntrusted&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"Untrusted"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;hr/&gt;
&lt;h1 id="h-notes"&gt;Notes&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;GriefPrevention3D automatically registers its PlaceholderAPI expansion.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;%gp3d_trust_level%&lt;/code&gt; uses localized strings from &lt;code&gt;messages.yml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Player-specific placeholders require the target player to be online.&lt;/li&gt;
&lt;li&gt;GriefPrevention3D uses &lt;code&gt;persist() = true&lt;/code&gt;, allowing placeholders to remain available across PlaceholderAPI reloads.&lt;/li&gt;
&lt;li&gt;Both &lt;code&gt;gp3d&lt;/code&gt; and &lt;code&gt;griefprevention&lt;/code&gt; placeholders can be used together in any PlaceholderAPI-compatible plugin.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jack Korte</dc:creator><pubDate>Thu, 02 Jul 2026 13:04:30 -0000</pubDate><guid>https://sourceforge.nete11ef58b5bd8ee7d11abd263636c1b06c14139eb</guid></item></channel></rss>