Region transfers previously moved ownership silently: no event was broadcast, so integrations such as ShopBridge-OG had no way to migrate the QuickShop shops sitting inside a transferred plot. Shops kept their old owner while WorldGuard membership followed the new one. Add TransferredRegionEvent to events/notify and fire it from TransferCommand after the region is updated and saved, carrying the previous owner, the new owner, and whether the landlord moved. Also: - Declare areashop.transfer and areashop.settransfer in plugin.yml. Both were undeclared, so they silently fell back to op-only and players could never run /as transfer. - Default general.transferMode to true so transfers are usable. - Guard deleteFriend against a null owner. A landlord transferring an unoccupied region passed null into Bukkit.getOfflinePlayer. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
AreaShop-OG
Fork of AreaShop by NLThijs48 (continuing
md5sha256's dev/bleeding line), maintained by the
TrueOG Network for use on true-og.net.
AreaShop rents and sells WorldGuard regions to players. Players interact with signs to rent, buy, extend and give up
shops, and admins manage everything with /as commands. This fork keeps all of that and replaces the money, permission
and shop-flow layers with the ones TrueOG runs, after migrating the network off AdvancedRegionMarket (ARM).
The plugin display name, jar and data folder are now AreaShop-OG, but the commands (/as, /areashop) and the
permission namespace (areashop.*) are unchanged.
Differences from upstream
Economy and permissions
- Diamonds instead of Vault money — the Vault dependency is gone. Every rent, extend, buy, resell and refund goes
through DiamondBank-OG, so shop payments come out of (and go back into)
a player's diamond bank and show up in their bank history. Prices are shown as
12.5 Diamonds, where the fractional digit is diamond shards (9 shards = 1 diamond). - LuckPerms instead of Vault permissions — rank and limit lookups talk to LuckPerms 5.5 directly.
- Jubilee mode (
jubilee: trueinconfig.yml) — while it is on, the first rent of a shop costs Diamonds and immediately grants the maximum rent time; extending, buying and reselling are free, and unrenting or selling pays nothing back. Set it tofalsefor the normal pay-per-period economy. - Rank-based shop limits shipped in the config — players without a rank cannot own a shop; the
og,og-proandog-masterranks raise the totals and cap how many shops of one region group (for exampleshoporunion-shop) a player may hold. Ranks stack, the highest number wins, and the rules are documented inline inconfig.yml.
Playing with shops
- Shift-click sign menus — shift-clicking a sign opens an in-game confirmation menu instead of firing the action
straight away. Renting, buying, selling back and reselling all confirm through a GUI, and the shop's renter gets a
rent menu with extend and sell-back options. New commands behind those menus:
/as confirmrent,/as confirmbuy,/as confirmsell,/as rentoptionsand/as payrent(pay the rent of someone else's shop). - Shop announcements — renting, buying, reselling and claiming a shop is broadcast to everyone in the worlds listed
under
announceWorldsinconfig.yml. An empty list turns broadcasts off. - New-owner celebration — a player who takes over a shop is teleported into it facing away from the sign, with particles and a sound.
- ARM-style signs — sign layouts, colors and click actions were carried over from AdvancedRegionMarket, including
the compact
%durationshort%placeholder (30d,1d 12h,45min). Sign text was also darkened and given a dye color fallback so it stays readable on light sign materials and on older clients. - Reworded messages — limit, sign and rent messages explain what to do next ("sell or unrent one before taking another") instead of only stating the rule, and prices are colored.
Migration from AdvancedRegionMarket
- ARM region files are converted to the AreaShop-OG format on startup, ARM region groups are merged into
groups.yml, and incomplete ARM migrations inconfig.ymlanddefault.ymlare repaired automatically. - The jar ships TrueOG's 89 migrated shop definitions, which are used to fill in the parts of an ARM region file that ARM's own export left out.
Platform and build
- Targets Paper/Spigot 1.19.4+ on Java 17. Versioning restarts at
1.0for this fork. - FastAsyncWorldEdit is not supported — its adapter has been dropped, so region saving and restoring always goes through plain WorldEdit.
- Update checks are off by default (
checkForUpdates: false) and point at this repository when enabled. - Gradle 8.14.3 build with Spotless and TrueOG's Eclipse formatter, DiamondBank-OG pulled in as a git submodule.
Upgrading an existing AreaShop install
The plugin name changed, so the plugin now reads and writes plugins/AreaShop-OG/ instead of plugins/AreaShop/.
Rename (or copy) the old folder before the first start to keep your regions, groups and configs. The chat prefixes in
an existing config.yml are rebranded automatically on startup, as long as they were left at their default values.
Required dependencies
- Java 17 or higher (latest recommended)
- Bukkit/Spigot 1.19.4 or newer (hybrids such as Mohist are not supported)
- WorldGuard: 7.0.7 or newer
- WorldEdit: 7.2.12 or newer
- DiamondBank-OG: diamond-based economy provider
- LuckPerms: 5.5 or newer
Building
git clone --recurse-submodules https://github.com/true-og/AreaShop-OG.git
cd AreaShop-OG
./gradlew build
The usable jar is AreaShop-OG/build/libs/AreaShop-OG-<version>.jar (the -original and -sources jars are not the
plugin). More detail in documentation/compiling.md.
Documentation
The upstream wiki still describes the region setup, config system and command reference, minus the changes listed above:
- Commands and permissions
- Basic regions setup & advanced regions setup
- Configuration files
- Limit groups
- Save/restore region blocks
- Language support
- Frequently asked questions & common errors
Upstream links
- Original repository by NLThijs48
- Fork this branch continues by md5sha256
- Spigot resource page
License
GPL-3.0, same as upstream. See LICENSE.