Skip to content

Repository files navigation

ARMAddon

License Java Version Minecraft Version Build System Author

Lightweight Spigot/Paper plugin and PlaceholderAPI expansion for AdvancedRegionMarket (ARM). Developed by INFUNV Studio for custom GUI integration (DeluxeMenus, ChestCommands, etc.) and custom unicode symbol mapping based on region availability.


Technical Overview

ARMAddon serves as a bridge between AdvancedRegionMarket (ARM) and PlaceholderAPI (PAPI). Native ARM placeholders are designed primarily for chat and signs, making it difficult to render dynamic custom font glyphs, unicode symbols, or custom state toggles in GUI menus without complex Denizen/Skript wrappers.

ARMAddon directly hooks into the AdvancedRegionMarket Java API to evaluate region states in real-time and expose highly configurable, low-overhead placeholders.


Features

  • Fail-Safe Startup Architecture: Validates hard dependencies (AdvancedRegionMarket and PlaceholderAPI) during onEnable(). Automatically disables itself gracefully if dependencies are missing, preventing null-pointer exceptions or server crashes.
  • Configurable Symbol/State Mapping: Allows mapping occupied (isSold(), subregions, active owners) and free region states to custom unicode characters or strings via config.yml.
  • Zero Runtime Allocation Overhead: Placeholder evaluations utilize direct memory lookup from ARM's RegionManager.
  • Admin Management Suite: Full in-game control via /armaddon with tab-completion and explicit permission nodes.
  • Multi-Stage Build Pipeline: Configured with Gradle, ShadowJar, and aggressive ProGuard bytecode shrinking/obfuscation.

Dependencies

Required

  • Minecraft Server: Spigot / Paper / Purpur 1.20.x or higher (Java 17 runtime required).
  • AdvancedRegionMarket: v3.5.0 or higher.
  • PlaceholderAPI: v2.11.0 or higher.

Installation

  1. Ensure AdvancedRegionMarket and PlaceholderAPI are installed in your server's plugins/ directory.
  2. Download the compiled ARMAddon-x.x.x.jar from releases.
  3. Place ARMAddon-x.x.x.jar into your server's plugins/ folder.
  4. Restart the server or execute /plugman load ARMAddon.
  5. Configure custom characters and messages in plugins/ARMAddon/config.yml.
  6. Run /armaddon reload to apply configuration changes without restarting.

Placeholders Reference

All placeholders use the identifier armaddon.

Placeholder Description Example Output
%armaddon_status_<region>% Returns custom occupied/free character based on region state. ʬ (Occupied) / ʨ (Free)
%armaddon_owner_<region>% Returns nickname of the primary owner or fallback string. Player123 / Free

Commands & Permissions

Base Command

  • /armaddon (Aliases: /arma)

Subcommands

Command Description Permission
/armaddon help Displays administrative command syntax. armaddon.admin
/armaddon reload Reloads config.yml settings from disk. armaddon.admin
/armaddon info Displays version, author, and dependency status. armaddon.admin
/armaddon placeholders Lists active placeholders and evaluated symbols. armaddon.admin

Configuration (config.yml)

# ====================================================== #
#               ARMAddon Configuration File              #
#               Created by INFUNV Studio                 #
#                 [https://infunv.ru](https://infunv.ru)                      #
# ====================================================== #

messages:
  prefix: "&8[&bARMAddon&8] &r"
  no-permission: "&cYou do not have permission to execute this command."
  reload-success: "&aConfiguration successfully reloaded!"
  unknown-subcommand: "&cUnknown subcommand. Use &b/armaddon help &cfor details."

placeholders:
  status:
    occupied: "ʬ"       # String or unicode symbol when region is occupied/bought (\u02AC)
    free: "ʨ"           # String or unicode symbol when region is free/available (\u02A8)
    not-found: "&c?"     # Output when region does not exist
  owner:
    no-owner: "&aFree"   # Displayed when region has no active owner
    not-found: "&cN/A"   # Output when region does not exist

Developer Guide & Building from Source

Prerequisites

  • JDK 17 or higher
  • Git

Repository Setup

git clone [https://github.com/infunv/ARMAddon.git](https://github.com/infunv/ARMAddon.git)
cd ARMAddon

Gradle Build Tasks

The repository includes pre-configured tasks for various environment builds:

# Standard Compilation (Generates lightweight un-obfuscated jar)
./gradlew build

# Fat-JAR Generation (Bundles relocated dependencies)
./gradlew shadowJar

# Production Build (Runs aggressive ProGuard shrinking and bytecode obfuscation)
./gradlew proguard

# Debug Build (Retains full line numbers, local variable tables, and source attributes)
./gradlew debugJar

ProGuard Bytecode Minimization

The proguard task executes rules specified in proguard-rules.pro. It strips non-essential debugging metadata, renames non-API classes to single-letter descriptors, and optimizes execution pathways to yield minimum output binary size.


License

This project is licensed under the Apache License 2.0.

Copyright 2026 INFUNV Studio

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

Addon to ARM and PlaceholderAPI. Displays the employment status of the regions in unicode characters and the nicknames of the owners for the GUI menu.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages