Skip to content

castledking/GPExpansion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GPExpansion

Extend GriefPrevention with rental signs, mailboxes, and more

Downloads Docs Get Help

GPExpansion adds powerful features to GriefPrevention including rental signs, claim mailboxes, sign protection, and more — all while maintaining the self-service philosophy.

Haven't heard of GriefPrevention 3D Subdivisions? Get it here to enable mailbox support. This is a fork that replaces the GriefPrevention jar.


Supported Platforms

Spigot, Paper, Purpur, and Folia

Requires GriefPrevention and optionally Vault for economy features.

Optionally, replace GriefPrevention with GriefPrevention3D for mailbox support.


Features

🏠 Rental Signs

Allow claim owners to rent out their claims to other players using signs.

  • Set rental prices and durations
  • Automatic trust/untrust on rental start/expiry
  • Supports Vault economy, experience, claim blocks, and item-based payments
  • Interactive setup wizard with /rentclaim command

📬 Claim Mailboxes

Give each claim a mailbox where other players can deposit items.

  • Owners have full access to retrieve items
  • Non-owners can only deposit, not withdraw
  • Storage warnings when mailbox is nearly full
  • Purchasable via signs with configurable prices
  • Interactive setup wizard with /mailbox command

🏷️ Sell Signs

Allow claim owners to sell their claims to other players using signs.

  • Set claim prices
  • Automatic transfer of ownership of claim
  • Supports Vault economy, experience, claim blocks, and item-based payments
  • Interactive setup wizard with /sellclaim command

🔒 Sign Protection

Protect your rental and mailbox signs from unauthorized modification.

  • Admin-only sign breaking for active rentals
  • Automatic cleanup on sign removal

📋 Claim Management

  • /claim name <name> - Set claim name (supports color codes with permissions)
  • /claim desc <description> - Set claim description (uses same color permissions as name)
  • /claim icon <material> - Set claim icon for GUI display
  • /claim spawn - Set the teleport spawn point for your claim
  • /claim tp [claimId] - Teleport to a claim's spawn point
  • /claim ban <player> - Ban players from your claims
  • /claim unban <player> - Unban players from your claims
  • /claim info [claimId] - View detailed claim information
  • /mailbox - Manage your mailboxes
  • /gpx reload - Reload configuration and language files
  • /gpx max - Manage player sign creation limits

💰 Configurable Tax System

Optional tax system for claim maintenance:

  • Configurable tax rates per claim block
  • Multiple payment methods (money, claim blocks, experience)
  • Grace periods before claim deletion
  • Tax exemptions via permissions

Sign Formats

All sign types support flexible formatting where <ecoType> is optional and defaults to money if only a number is provided.

Rental Signs

Short Format (place sign inside claim):

[rent]
<renewTime>
<ecoAmt>

OR with explicit eco type:

[rent]
<renewTime>
<ecoType>
<ecoAmt>

Condensed Format (outside claim):

[rent]
<id>;<ecoAmt>;<renewTime>

OR with max time:

[rent]
<id>;<ecoAmt>;<renewTime>;<maxTime>
  • <id> - Do /claimlist to get this (not needed for short format)
  • <ecoType> - Accepts money, claimblocks, exp or item (optional, defaults to money)
  • <ecoAmt> - The cost per renewal period
  • <renewTime> - Duration of each rental period (e.g., 1w, 7d, 24h)
  • <maxTime> - Maximum total rental duration (optional, defaults to <renewTime>)

Note: Hold the item you wish to set in your offhand while creating an item-based sign.

Sell/Buy Signs

Short Format (place sign inside claim):

[sell]
<ecoAmt>

OR

[sell]
<ecoType>
<ecoAmt>

Condensed Format (outside claim):

[sell]
<id>;<ecoAmt>

OR with explicit eco type:

[sell]
<id>;<ecoType>;<ecoAmt>
  • <id> - Do /claimlist to get this (not needed for short format)
  • <ecoType> - Accepts money, claimblocks, exp or item (optional, defaults to money)
  • <ecoAmt> - The sale price

Note: Hold the item you wish to set in your offhand while creating an item-based sign.

Mailbox Signs

Condensed Format (outside claim):

[mailbox]
<id>;<ecoAmt>

OR with explicit eco type:

[mailbox]
<id>;<ecoType>;<ecoAmt>
  • <id> - Do /claimlist to get this
  • <ecoType> - Accepts money, claimblocks, exp or item (optional, defaults to money)
  • <ecoAmt> - The mailbox purchase price

Note: You need to create a 1x1x1 3D subdivision in your claim with a supported container type (barrel, hopper, chest, etc.).

Setup Wizards

Use the interactive setup wizards for easier sign creation:

  • /rentclaim - Start rental sign setup wizard
  • /sellclaim - Start sell sign setup wizard
  • /mailbox - Start mailbox setup wizard

The wizard will guide you through:

  1. Claim selection (automatic if standing in your claim)
  2. Payment type selection
  3. Price/duration configuration
  4. Optional auto-paste mode for sign placement

Installation

  1. Download the latest release
  2. Place GPExpansion.jar in your plugins folder
  3. Ensure GriefPrevention is installed
  4. (Optional) Install Vault for economy support
  5. Restart your server
  6. Configure plugins/GPExpansion/config.yml

Configuration

The plugin creates config.yml and lang.yml with sensible defaults. Key options include:

config.yml

# Debug settings
debug:
  # Enable debug logging for GPBridge to troubleshoot claim/subclaim detection
  enabled: true
  
# Default limits for sign creation (can be overridden by permissions)
defaults:
  # Default maximum number of sell signs a player can create
  max-sell-signs: 5
  # Default maximum number of rent signs a player can create
  max-rent-signs: 5
  # Default maximum number of mailbox signs a player can create
  max-mailbox-signs: 5
  
# Permission tracking settings
permission-tracking:
  # Enable tracking of player permissions for sign limits
  enabled: true
  # How often to check for permission changes (in minutes)
  check-interval: 5

lang.yml

All messages are customizable in lang.yml. The file includes sections for:

  • General messages (prefix, permissions, etc.)
  • Sign creation messages
  • Wizard prompts and errors
  • Claim command messages
  • Admin messages

Use /gpx reload to reload both configuration files without restarting.


GUI Configuration

All GUIs are fully configurable via YAML files in plugins/GPExpansion/gui/. Each GUI supports:

  • Custom titles, sizes, and layouts
  • PlaceholderAPI placeholders for dynamic content
  • Custom items with materials, names, lore, and custom model data
  • Textured player heads (base64 textures or player names)

Items from Custom Resource Pack

Use PlaceholderAPI placeholders in item names/GUI title/lore for ItemsAdder. Oraxen, and Nexo using glyph:my_image.

ItemsAdder Example:

items:
  my-item:
    material: PAPER
    name: "%img_custom_icon% &aMy Custom Item"
    lore:
      - "%img_arrow% &7Click to continue"
    custom-model-data: 10001

Oraxen Example:

items:
  my-item:
    material: PAPER
    name: "<glyph:my_icon> &bOraxen Item"
    lore:
      - "<glyph:bullet> &7Some description"
    custom-model-data: 20001

Nexo Example:

items:
  my-item:
    material: PAPER
    name: "<glyph:my_image> &dNexo Item"
    custom-model-data: 30001

Textured Player Heads

Use custom skull textures from sites like minecraft-heads.com:

Base64 Texture (Custom Head):

items:
  settings-icon:
    material: PLAYER_HEAD
    skull-texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjc..."
    name: "&e⚙ Settings"
    lore:
      - "&7Click to open settings"

Direct Texture URL:

items:
  custom-icon:
    material: PLAYER_HEAD
    skull-texture: "http://textures.minecraft.net/texture/b7d153..."
    name: "&aCustom Icon"

Player Head (Dynamic):

items:
  player-info:
    material: PLAYER_HEAD
    skull-owner: "{player}"  # Current player's head
    name: "&a{player_name}'s Profile"

Specific Player Head:

items:
  owner-head:
    material: PLAYER_HEAD
    skull-owner: "Notch"  # Or UUID: "069a79f4-44e9-4726-a5be-fca90e38aaf5"
    name: "&6Owner: Notch"

Example GUI Config (claim-menu.yml)

title: "&8&l✦ &6Claim Menu &8&l✦"
size: 54

items:
  info-button:
    slot: 13
    material: PLAYER_HEAD
    skull-owner: "{player}"
    name: "&a&l{claim_name}"
    lore:
      - ""
      - "&7Owner: &f{owner}"
      - "&7Size: &f{area} blocks"
      - ""
      - "%img_left_click% &eLeft-click for details"
  
  settings-button:
    slot: 31
    material: PLAYER_HEAD
    skull-texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6..."
    name: "&e⚙ Claim Settings"
    lore:
      - "&7Manage your claim"

filler:
  material: GRAY_STAINED_GLASS_PANE

Permissions

Sign Creation

Permission Description
griefprevention.sign.create.rent Create rental signs
griefprevention.sign.create.rent.anywhere Create rental signs outside the target claim
griefprevention.sign.create.sell Create sell signs
griefprevention.sign.create.sell.anywhere Create sell signs outside the target claim
griefprevention.sign.create.mailbox Create mailbox signs

Sign Usage

Permission Description
griefprevention.sign.use.rent Use rental signs
griefprevention.sign.use.sell Use sell signs
griefprevention.sign.use.mailbox Use mailbox signs

Economy Types (per sign type)

Permission Description
griefprevention.sign.rent.money Use money economy for rent signs
griefprevention.sign.rent.exp Use experience economy for rent signs
griefprevention.sign.rent.claimblocks Use claim blocks economy for rent signs
griefprevention.sign.rent.item Use item economy for rent signs
griefprevention.sign.sell.money Use money economy for sell signs
griefprevention.sign.sell.exp Use experience economy for sell signs
griefprevention.sign.sell.claimblocks Use claim blocks economy for sell signs
griefprevention.sign.sell.item Use item economy for sell signs
griefprevention.sign.mailbox.money Use money economy for mailbox signs
griefprevention.sign.mailbox.exp Use experience economy for mailbox signs
griefprevention.sign.mailbox.claimblocks Use claim blocks economy for mailbox signs
griefprevention.sign.mailbox.item Use item economy for mailbox signs

Sign Limits

Permission Description
griefprevention.sign.limit.rent.<number> Limit to rental signs
griefprevention.sign.limit.sell.<number> Limit to sell signs
griefprevention.sign.limit.mailbox.<number> Limit to mailbox signs

Claim Management

Permission Description
griefprevention.claim.name Set claim names with /claim name
griefprevention.claim.description Set claim descriptions with /claim desc
griefprevention.claim.icon Set claim icons with /claim icon
griefprevention.claim.spawn Set claim spawn point with /claim spawn
griefprevention.claim.teleport Teleport to claims with /claim tp
griefprevention.claim.ban Ban players from claims with /claim ban
griefprevention.claim.unban Unban players from claims with /claim unban
griefprevention.claim.transfer Transfer claim ownership with /claim transfer
griefprevention.claim.info View claim info with /claim info

Color & Formatting Permissions (Name & Description)

These permissions control which color and formatting codes players can use in both /claim name and /claim desc:

Permission Description Codes
griefprevention.claim.color.black Use black color &0
griefprevention.claim.color.dark_blue Use dark blue color &1
griefprevention.claim.color.dark_green Use dark green color &2
griefprevention.claim.color.dark_aqua Use dark aqua color &3
griefprevention.claim.color.dark_red Use dark red color &4
griefprevention.claim.color.dark_purple Use dark purple color &5
griefprevention.claim.color.gold Use gold color &6
griefprevention.claim.color.gray Use gray color &7
griefprevention.claim.color.dark_gray Use dark gray color &8
griefprevention.claim.color.blue Use blue color &9
griefprevention.claim.color.green Use green color &a
griefprevention.claim.color.aqua Use aqua color &b
griefprevention.claim.color.red Use red color &c
griefprevention.claim.color.light_purple Use light purple/pink color &d
griefprevention.claim.color.yellow Use yellow color &e
griefprevention.claim.color.white Use white color &f
griefprevention.claim.format.obfuscated Use obfuscated/magic text &k
griefprevention.claim.format.bold Use bold text &l
griefprevention.claim.format.strikethrough Use strikethrough text &m
griefprevention.claim.format.underline Use underlined text &n
griefprevention.claim.format.italic Use italic text &o
griefprevention.claim.format.reset Use reset formatting &r
griefprevention.claim.color.* All color codes &0-&f
griefprevention.claim.format.* All format codes &k-&r

Note: The same permissions apply to both /claim name and /claim desc. If a player uses a color code they don't have permission for, that code will be stripped from the text.

Admin

Permission Description
griefprevention.admin Admin commands and sign management
gpexpansion.admin.reload Use /gpx reload command
gpexpansion.admin.max Use /gpx max command
gpexpansion.admin.debug Use /gpx debug command

Support


Building from Source

git clone https://github.com/castledking/GPExpansion.git
cd GPExpansion
mvn clean install

The compiled jar will be in target/.


Built to extend GriefPrevention with love ❤️

About

The ultimate add-on for Griefprevention 3D Subdivisions

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages