
PvPIndex Factions
Modern Factions refactor, old-school factions but with modern QOL features
Оцените первым
631
2
631
2
Список изменений
Added
- Startup update-check integration using ez-plugins/mc-plugin-update-notifier with chained sources:
Modrinth public API as primary and GitHub public API as fallback.
Modrinth queries loaders
paper,folia, andspigotso the check works on all supported server software. - Operator join notification when an update is available, including clickable release URL output.
- New update config keys:
factions.updates.enabled(defaultfalse- opt-in)factions.updates.notify-ops-on-join(defaultfalse)
- New message keys:
update.availableupdate.url
- DiscordSRV integration (
integrations.discordsrv.enabled: true):- Faction create, disband, ally, truce, and enemy-declared events are broadcast to a Discord channel via DiscordSRV (pure reflection - no hard compile-time dependency).
- Per-event toggles and Discord-markdown message templates are configurable in
config.ymlunderintegrations.discordsrv.events.*. channel-idkey routes messages to a specific text channel; leave empty to use DiscordSRV's main linked channel.- New config keys:
integrations.discordsrv.enabled(defaultfalse)integrations.discordsrv.channel-id(default"")integrations.discordsrv.events.faction-created.enabled/.messageintegrations.discordsrv.events.faction-disbanded.enabled/.messageintegrations.discordsrv.events.relation-ally.enabled/.messageintegrations.discordsrv.events.relation-truce.enabled/.messageintegrations.discordsrv.events.relation-enemy.enabled/.message
- EssentialsX integration overhaul (
integrations.essentialsx.enabled: true):/f warpteleports now route through EssentialsX alongside/f home.- EssentialsX
/backlocation is recorded before every teleport so players can return with/back. - Jailed players are blocked from
/f homeand/f warpwith a message. - Detected EssentialsX version is logged at startup.
- New
messages.ymlkeys:home.teleported,home.teleport-failed,home.jailed,warp.teleported,warp.teleport-failed,warp.jailed.
- Safe zones and war zones (
factions.zones.safe-zone.enabled,factions.zones.war-zone.enabled):- Both zones are enabled by default. Disabling a zone causes its chunks to behave as Wilderness - protection, PvP rules, and power-loss suppression are all inactive.
- New admin commands
/fa safezoneand/fa warzonelet operators assign chunks to each zone in one-shot, square, or circle modes (with an optionalremovesub-mode). - New permissions:
factions.cmd.safezone,factions.cmd.warzone(defaultop).
- Overclaiming (
factions.overclaiming.enabled: false- opt-in):- When enabled, a faction can claim an enemy's chunk if the victim's land count exceeds their current maximum land (power-based). Border adjacency is waived for overclaims.
- Optional guard
factions.overclaiming.require-enemy-relation: truerestricts overclaims to factions that have declaredENEMYrelation. - Attacker receives a
claim.overclaimednotification; all online victim members receiveclaim.overclaimed-victimshowing remaining chunk count. FactionChunkClaimEventgains an optionaloverclaimedFromFactionfield populated on overclaim so third-party plugins can observe the event.- New
messages.ymlkeys:claim.overclaimed,claim.overclaimed-victim,claim.enemy-not-raidable.
- Power and war improvements - six optional, independently toggleable features that
improve PvP/raiding pacing. All are disabled by default:
- F1 - Inactive member exclusion (
factions.power.inactive-exclusion.enabled: false): members who have been offline longer thaninactive-exclusion.daysdo not contribute to the faction's max-land calculation. Their stored power is unchanged; only the land-cap computation skips them, discouraging dead factions from holding territory indefinitely. - F2 - Death streak multiplier (
factions.power.death-streak.enabled: false): consecutive deaths within a rollingwindow-secondswindow each multiply the power loss bymultiplier^streak. After the window expires the streak resets. A separatepower.death-streak-penaltymessage is sent on streak deaths. Persisted in two newPlayerModelcolumns:last_death_at,death_streak. - F3 - Scaled kill rewards (
factions.power.gain-on-kill.scale.enabled: false): kill power gain is multiplied byclamp(victimPower / killerPower, min-factor, max-factor). Rewarding high-risk kills and reducing farming incentive. - F4 - Raidable state broadcast (
factions.raidable.broadcast.enabled: true): after each power tick, the engine detects factions that cross the raidable threshold and notifies members. Optionalserver-wide: truebroadcasts to all online players. The raidable flag is persisted in a newFactionModelcolumn:is_raidable. - F5 - Offline protection (
factions.overclaiming.offline-protection.enabled: false): blocks overclaiming when all members of the defending faction are currently offline, preventing pure offline raiding. - F6 - War shield (
factions.war.shield.enabled: false): a faction may be assigned a daily UTC protection window by an admin using the new/fa shield <faction> <start-hour> <duration-hours>command. During the window the faction's land cannot be overclaimed. Persisted in two newFactionModelcolumns:shield_start_hour,shield_duration_hours. - New admin command:
/fa shield <faction> <clear|<start-hour (0-23)> <duration-hours>>. - New permission:
factions.cmd.shield(defaultop, child offactions.admin). - New
config.ymlkeys:factions.power.inactive-exclusion.enabled/.daysfactions.power.death-streak.enabled/.window-seconds/.multiplierfactions.power.gain-on-kill.scale.enabled/.min-factor/.max-factorfactions.raidable.broadcast.enabled/.server-widefactions.overclaiming.offline-protection.enabledfactions.war.shield.enabled/.max-duration-hours
- New
messages.ymlkeys:power.death-streak-penalty,raidable.*,shield.*,claim.enemy-offline-protected,claim.shield-active.
- F1 - Inactive member exclusion (
/f powerhistory [<player>] [<page>](alias: phist): shows a paginated log of significant power changes (death, kill, and purchase events). Players can view their own history without any extra permission. Viewing another player's history requiresfactions.cmd.power.history.other(defaultop). All message templates are configurable inmessages.ymlunderpower.history-*.- TeamsAPI 1.8.0 power history provider: when TeamsAPI 1.8.0+ is present the plugin
registers a
TeamsPowerHistoryServiceimplementation that exposes all recorded power-change events through the standard TeamsAPI surface. Consumer plugins can read player and team history, filter by time range, add external entries, and remove or clear records without touching the database directly. The provider is registered reflectively so servers running TeamsAPI 1.7.x or earlier start cleanly and the provider is silently skipped. New permissions:factions.cmd.power.history(defaulttrue),factions.cmd.power.history.other(defaultop).
Changed
- TeamsAPI dependency updated to 1.8.0 (was 1.7.0).
- Update notifier library is now explicitly relocated in shading:
com.github.ezplugins.updater->com.pvpindex.lib.updater, preventing runtime classpath conflicts. - Update check is disabled by default (
factions.updates.enabled: false). Opt in by setting it totrue. - EssentialsX interop now uses the compile-time EssentialsX API instead of reflection, making it resilient to future EssentialsX API changes and easier to diagnose when something breaks.
- Plugin validates that the plugin named
Essentialsactually implementsIEssentialsbefore enabling the integration; logs a warning and falls back to noop if not.
Файлы
pvpindex-factions-1.0.7.jar(8.79 MiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.0.7
Загрузчики
BukkitPaperSpigot
Версии игры
1.21–26.1.2
Загрузок
6
Дата публикации
19.05.2026
