promotional bannermobile promotional banner

XenoFactions

Xenofactions is a fork of the Xradar factions mod with various improvements and usability for server owners wanting a factions/claiming mod without using plugins.
Back to Files

Xenofactions-2.2.1.jar

File nameXenofactions-2.2.1.jar
Uploaded
Aug 24, 2026
Downloads
13
Size
33.3 MB
Mod Loaders
Forge
File ID
8721299
Type
R
Release
Supported game versions
  • 1.7.10

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:xenofactions-1157568:8721299")

Learn more about Curse Maven

What's new

# Pull request: secure and distribute Wall Art controllers

- Made Wall Art configuration opening server-authoritative and restricted it to the controller's UUID owner, with localized denial feedback.
- Added the missing Wall Art block display name and a localized `/xwallart` confirmation.
- Added the permission-free `/xwallart` player command, including safe item dropping when the inventory is full.

# Pull request: fix Wall Art collision and wall orientation

- Made Wall Art non-colliding like vanilla 1.7.10 vines while retaining its thin metadata-oriented selection and ray-trace bounds.
- Derived the controller's supporting-wall facing from the clicked horizontal face, rejected vertical attachment, and stopped player yaw from overwriting placement metadata.
- Added clicked-side support validation, centralized placement/support direction mapping, and replaced invalid metadata's full-cube bounds with a safe thin panel.

# Pull request: synchronize Wall Art controller visibility

- Invalidated cached client block geometry when synchronized Wall Art image, facing, or display dimensions change, so configured controllers disappear and cleared controllers reappear immediately.
- Explicitly synchronized newly placed Wall Art tile metadata after server-side ownership and facing initialization.
- Preserved hash-driven controller visibility, thin interaction and inventory geometry, and the existing tile renderer and server update path.

# Pull request: fix Wall Art block rendering

- Hid configured Wall Art controller geometry while preserving the downloaded-image TESR and the logical block's interaction bounds.
- Added a dedicated Forge 1.7.10 block renderer for metadata-oriented thin fallback panels in the world.
- Rendered the Wall Art inventory item as a fixed, thin vertical panel using its neutral fallback texture.

# Pull request: re-audit Wall Art importing against ImageFrame

- Added an independent Wall Art source policy with correct Postimages page/CDN defaults, bounded source dimensions and bytes, manual redirect limits, and separate success/failure cooldowns.
- Added bounded HTML image-page resolution for secure OpenGraph metadata and a limited image fallback, while revalidating every resolved URL and redirect with the existing SSRF protections.
- Switched Wall Art requests to a browser-compatible user agent, retained byte-level PNG/JPEG verification and memory-efficient source subsampling, and improved actionable HTTP, resolver, timeout, size, and decode errors.
- Refactored the asynchronous import lifecycle and all Wall Art-specific source files for readable Java, accurate in-progress/cooldown messages, short failure retries, sanitized diagnostics, and main-thread-only world updates.

# Pull request: fix Wall Art image importing

- Separated bounded Wall Art source downloads and source-dimension safety checks from the much smaller custom faction flag import limits.
- Added metadata-first PNG/JPEG decoding with source subsampling so normal high-resolution photographs are efficiently scaled into the selected 128x128 through 640x640 Wall Art canvas.
- Improved direct HTTPS image handling with byte-based format detection, query-safe parsed-host validation, per-redirect SSRF checks, bounded streamed downloads, image-oriented request headers, and clearer errors for HTML or unsupported payloads.
- Retained server-worker processing, final-image hashing, bounded PNG storage and transfer, and the existing HTTPS host whitelist.

# Pull request: fix Wall Art block and configuration GUI

- Centered and restored the Wall Art URL, display-size, and download controls by separating display dimensions from the inherited GUI screen dimensions.
- Preserved URL text and selected dimensions across GUI resizing, and added an inline prompt for empty submissions.
- Replaced the missing fallback texture reference with the existing neutral concrete panel texture while retaining dynamic image rendering.
- Made wall-mounted controllers drop when their supporting wall is removed using Forge 1.7.10 side-solid checks.

# Pull request: fix Forge 1.7.10 Wall Art compilation

- Updated Wall Art support checks to use Forge 1.7.10 `ForgeDirection` values for each neighboring wall face.
- Removed the unreferenced legacy image-placement helper that still wrote deleted URL, name, and string-owner fields directly into Wall Art tile entities.
- Preserved the server-authoritative Wall Art service, metadata-only tile entities, and the `wall_image_block` registry identity.

# Pull request: fix development runClient identities

- Restored GTNH's blank-name `Developer<random numbers>` behavior for default development clients.
- Assigned one fresh random UUID during each Gradle invocation before the run task finalizes its properties, while retaining validated independent `devUsername` and `devUuid` overrides.
- Kept `runClient` identity logging read-only so task execution no longer attempts to mutate finalized Gradle properties.

# Pull request: isolate faction saves and randomize development players

- Reset all faction, membership, diplomacy, claim, cooldown, protection, and overlay runtime state at the logical-server overworld lifecycle boundary, while retaining one shared database across dimensions.
- Bound cached faction data and auxiliary JSON persistence to the active save so a new or reopened world cannot inherit another world's state.
- Give each `runClient` execution a validated random development username and UUID by default, while preserving independent `devUsername` and `devUuid` overrides.

This mod has no additional files