Medieval Factions
0
First released June 5, 2020 · Last updated October 10, 2026
Downloads from this site
231 total
17 latest (v7.0.0)
Allows players to organize themselves into feudal, diplomatic, lawful groups akin to nations.
Usage
Last reported in use 45 minutes ago
944 server starts in the last 30 days
Server starts per day
Versions in use, by share of server starts
7.0.0
47% · 447 starts
6.0.0
28% · 269 starts
6.1.0
23% · 219 starts
6.0.0-SNAPSHOT-7-25-2026
1% · 6 starts
7.0.1-SNAPSHOT
<1% · 2 starts
Other versions
<1% · 1 start
Usage reported by trace — how it works. CI and test servers are excluded.
Verified before release
Version 7.0.0 was started on real servers running Minecraft 1.19.4, 1.21.11 and 26.2 before it was published. The jar you download is the exact one that passed. How releases work
Versions
All releases on GitHubAutomated build of main at 13fcc71056b3674b96a5316f14b5a67c45eac51c.
This is not a release. It is unreleased, unreviewed code that has not been through any release check, and a broken build can stop a server from starting. Do not run it on a server you care about without a backup.
Install it with Dan's Plugin Manager:
/dpm get medievalfactions --experimentalReturn to published releases with /dpm get medievalfactions --stable.
7.0.0
For a server running v6.1.0, this release fixes messages that showed as "Missing translation" after an upgrade, and it makes usage reporting tag each event with the plugin version. You don't need to change your config, data or permissions. The major version comes from a change to the bundled usage-reporting client's Java API. It only matters to code that calls TraceClient directly.
Changes
Translations
- Message keys added in newer releases now fall back to the translations bundled in the jar when your
lang/files on disk don't have them. Before this, those messages showed as "Missing translation" because the on-disk files are copied once and never updated. Edits you have made to your on-disk language files still take priority. (#2054) - The Brazilian Portuguese language file (
lang_pt_BR.properties) is now copied into the plugin'slang/folder along with the other languages. (#2054)
Usage reporting
- When usage reporting is enabled, every event now includes the plugin version, not just the startup event. Nothing is sent when reporting is disabled, and the existing switches still work:
usage-reporting.enabled,plugins/trace/config.yml,TRACE_USAGE_REPORTINGandDO_NOT_TRACK. (#2053) TraceClient.builder(...)now requires the program version as a third argument, and the two-argument form has been removed. Code that calls it must be updated. (#2053)
Version
v6.1.0 → 7.0.0 — MAJOR. Mechanical floor from comparing the two jars: MAJOR.
Judgment: The floor is major because the public static TraceClient.builder(String, String) was replaced with a three-argument overload. Any code that compiled against the old signature will break, and nothing in the diff gives grounds to treat this class as outside the public API. Nothing else needs a higher level: the language change is a bug fix plus one more bundled file copied to disk, and the version tag on usage events adds data rather than breaking anything. Major stays as the floor.
- minor: default config value changed: version 6.1.0 → 6.1.1-SNAPSHOT
- major: com.dansplugins.factionsystem.trace.TraceClient: removed/changed public static com.dansplugins.factionsystem.trace.TraceClient$Builder builder(java.lang.String, java.lang.String);
- minor: com.dansplugins.factionsystem.trace.TraceClient: added public static com.dansplugins.factionsystem.trace.TraceClient$Builder builder(java.lang.String, java.lang.String, java.lang.String);
- minor: storage path changed: src/main/kotlin/com/dansplugins/factionsystem/MedievalFactions.kt
Verification
Verified on a real Spigot server before publication; this release carries the exact jar that was verified.
- boot gate run: booted twice on a fresh Spigot server running Minecraft 1.19.4 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 1.21.11 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 26.2 (11 assertions passed).
- save-compatibility gate run on the
h2backend: data written byv6.1.0was loaded by this release across 5 restart cycles with nothing lost (34 assertions passed). - save-compatibility gate run on the
jsonbackend: data written byv6.1.0was loaded by this release across 5 restart cycles with nothing lost (36 assertions passed). - dependents gate run: Currencies v3.0.0, Fiefs v0.12.1, Democracy v0.3.0, MF_Bluemap v1.0 — each one's current stable release — enabled against this release across two boots (24 assertions passed).
Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.
drafted by Claude on behalf of Daniel Stephenson
6.1.0
For a server running v6.0.0, this is a safe drop-in upgrade. It fixes the plugin failing to enable on Minecraft versions older than 1.20.5, such as 1.19.4. It also adds an optional read-only REST API that other tools can use to read faction data. The API is off by default. Existing data, commands, permissions and config settings behave as before, and plugins built against 6.0.0 keep working.
Changes
Compatibility fixes
- The plugin enables again on servers older than 1.20.5, such as 1.19.4. On those versions, lingering harmful potions (poison, harming/instant damage, slowness, weakness) in claimed territory are still recognised by their base potion type (#2043).
- Accepting a duel no longer fails on servers older than 1.21.3. Both duellists are still restored to full health when the duel starts (#2043).
- Public class and method signatures from 6.0.0 are kept, so add-on plugins built against 6.0.0 run unchanged (#2047).
New: read-only REST API
- An opt-in HTTP API returns factions, players, faction relationships and claims as JSON. It also has a health check at
/api/healthand serves its OpenAPI spec at/api/openapi(#1915). - It is controlled by a new
apisection inconfig.yml:api.enabled(defaultfalse),api.host(default127.0.0.1, reachable only from the server machine) andapi.port(default8080). The API has no authentication. If you set the host to0.0.0.0, anyone who can reach that port can read your faction data, so firewall the port (#1915).
Usage reporting
- The shared
plugins/trace/config.ymlfile now accepts an optionaltags:block. Its tags are added to every usage report sent by plugins on the server. For example,ci: "true"keeps a test server's reports out of real-installation figures. Settingenabled: falsein that file still turns reporting off for every plugin (#2046).
Version
v6.0.0 → 6.1.0 — MINOR. Mechanical floor from comparing the two jars: MINOR.
Judgment: The main change is a new REST API (#1915). It is read-only and off by default (api.enabled: false, and the code also falls back to false), so no existing server opens a port on upgrade. The other changes add optional behaviour or fix compatibility: 6.0.0 failed to enable on pre-1.20.5 servers, duel acceptance failed on servers older than 1.21.3, and usage reporting can now read server-wide tags. The data format, commands, permissions and the meaning of existing config keys are unchanged, and #2047 keeps 6.0.0's public signatures, so nothing justifies raising the minor floor to major.
- minor: default config key added: api.enabled
- minor: default config key added: api.host
- minor: default config key added: api.port
- minor: default config value changed: version 6.0.0 → 6.1.0
- minor: public class added: com.dansplugins.factionsystem.api.MfApiServer
- minor: public class added: com.dansplugins.factionsystem.api.MfApiServer$Companion
- minor: public class added: com.dansplugins.factionsystem.api.controller.ClaimController
- minor: public class added: com.dansplugins.factionsystem.api.controller.FactionController
- minor: public class added: com.dansplugins.factionsystem.api.controller.PlayerController
- minor: public class added: com.dansplugins.factionsystem.api.controller.RelationshipController
- minor: public class added: com.dansplugins.factionsystem.api.dto.ClaimDto
- minor: public class added: com.dansplugins.factionsystem.api.dto.ClaimDto$Companion
- minor: public class added: com.dansplugins.factionsystem.api.dto.ErrorResponse
- minor: public class added: com.dansplugins.factionsystem.api.dto.FactionDto
- minor: public class added: com.dansplugins.factionsystem.api.dto.FactionDto$Companion
- minor: public class added: com.dansplugins.factionsystem.api.dto.PlayerDto
- minor: public class added: com.dansplugins.factionsystem.api.dto.PlayerDto$Companion
- minor: public class added: com.dansplugins.factionsystem.api.dto.PositionDto
- minor: public class added: com.dansplugins.factionsystem.api.dto.PositionDto$Companion
- minor: public class added: com.dansplugins.factionsystem.api.dto.RelationshipDto
- minor: public class added: com.dansplugins.factionsystem.api.dto.RelationshipDto$Companion
- minor: public class added: com.dansplugins.factionsystem.listener.AreaEffectCloudApplyListener$Companion
- minor: public class added: com.dansplugins.factionsystem.log.MfLegacySlf4jServiceProvider
- minor: com.dansplugins.factionsystem.claim.MfClaimService: added public final java.util.List<com.dansplugins.factionsystem.claim.MfClaimedChunk> getClaims();
- minor: com.dansplugins.factionsystem.listener.AreaEffectCloudApplyListener: added public static final com.dansplugins.factionsystem.listener.AreaEffectCloudApplyListener$Companion Companion;
- minor: com.dansplugins.factionsystem.listener.AreaEffectCloudApplyListener: added public static final java.util.Set access$getHARMFUL_POTION_TYPE_NAMES$cp();
- minor: com.dansplugins.factionsystem.log.MfSlf4jServiceProvider: added public java.lang.String getRequestedApiVersion();
- minor: com.dansplugins.factionsystem.trace.TraceClient: added public static final java.lang.String VERSION;
- minor: storage path changed: src/main/kotlin/com/dansplugins/factionsystem/MedievalFactions.kt
Verification
Verified on a real Spigot server before publication; this release carries the exact jar that was verified.
- boot gate run: booted twice on a fresh Spigot server running Minecraft 1.19.4 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 1.21.11 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 26.2 (11 assertions passed).
- save-compatibility gate run on the
h2backend: data written byv6.0.0was loaded by this release across 5 restart cycles with nothing lost (34 assertions passed). - save-compatibility gate run on the
jsonbackend: data written byv6.0.0was loaded by this release across 5 restart cycles with nothing lost (36 assertions passed). - dependents gate run: MF_Bluemap v1.0 — each one's current stable release — enabled against this release across two boots (18 assertions passed).
- Currencies v2.1.0-SNAPSHOT already fails to enable against the current stable
v6.0.0and is unchanged by this release (startup log contains 'Error occurred while enabling Currencies': java.lang.NoClassDefFoundError: com/dansplugins/factionsystem/shadow/preponderous/ponder/minecraft/bukkit/plugin/PluginsKt; [03:32:07] [Server thread/ERROR]: Error occurred while enabling Currencies v2.1.0-SNAPSHOT (Is it up to date?); at com.dansplugins.currencies.Currencies.onEnable(Currencies.kt:164)).
Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.
drafted by Claude on behalf of Daniel Stephenson
6.0.0
v6.0.0 is a major release for servers on v5.8.1. It adds a JSON storage backend as an alternative to the database, with /faction migrate to move data between the two. It also adds optional moderator approval for war, alliance and vassalization declarations, and optional syncing of your faction list to the DPC community API. Interaction protection changes in ways players will notice: it now covers more entities and its checks are stricter, and some commands behave differently. The plugin also now reports anonymous usage events by default; you can turn this off. Existing database setups keep working, and the plugin writes the new config keys into config.yml when it starts.
Changes
Storage
- New JSON storage backend, selected with
storage.type: jsonand stored atstorage.json.path. Use/faction migrate(permissionmf.migrate) to move data between the database and JSON. Migration will not run into a target that already has data (#1944) - The plugin now refuses to write to a JSON file it could not read. The unreadable file is copied aside first, so the stored data is never replaced with an empty file (#2011)
- Embedded H2 databases now open with
DB_CLOSE_ON_EXIT=FALSE.AUTO_SERVERURLs are left as they are.database.dialectnow accepts the documented spellings (#2038, #2039) - The database connection is now closed cleanly when the server shuts down (#1944)
Diplomacy and faction management
- Optional moderator approval for war, alliance and vassalization declarations, set with
factions.warDeclarationRequiresApproval,factions.allyDeclarationRequiresApprovalandfactions.vassalizeDeclarationRequiresApproval. Moderators review requests with/faction pendingactions,/faction approveand/faction deny(permissionmf.approve) (#1954) - New
/faction declinevassalizationcommand (permissionmf.declinevassalization) (#1920) /faction addmembernow asks for confirmation before moving a player who is already in another faction. Add-fto skip the prompt (#1919)- New
BYPASS_LOCKSfaction role permission (#1911) /f powernow shows the faction's claim count (#1973)
Protection and interaction
- Entity interaction protection now covers more than villagers and armour stands.
factions.nonMembersCanInteractWithEntitiescontrols it (#2001) - When an interaction is denied, only the block part of it is blocked (#2000)
- Players under interaction protection can now drink anywhere and eat in the wilderness (#1984)
- Wartime block permission checks now go strictly by action type (#1983)
- Pressure plates and locked blocks no longer flood chat with protection messages on physical interactions (#1976, #1980)
- Repeated physical interactions no longer queue duplicate player saves (#1982)
- Hostile-mob spawn checks now use a broader hostile-mob check
- Fixed a lock lookup that did not compare block coordinates correctly
Integrations
- PlaceholderAPI placeholders now work in faction chat formats (#1999)
- Optional DPC community API integration shares your faction list across servers. It is configured under
dpc-api.*and managed with/faction dpc(permissionmf.dpc). The default API URL now points at the API host (#1959, #2027) - Built against Spigot API 1.21.11, with compatibility for older server versions kept (#1974)
Stability
- Several commands, including
/faction map, now read the player's position and world on the main thread instead of off-thread (#2012, #2019, #2025) - The player save on quit no longer runs on the server thread (#2016)
- Gate distance checks now take the world into account and can no longer overflow (#2007)
Usage reporting
- The plugin now sends anonymous usage events (plugin name, version and command names) to a usage endpoint. Sending happens off the main thread. A startup notice in the console says whether reporting is on (#2029, #2031)
Upgrade notes
- Usage reporting is on by default. To turn it off, set
usage-reporting.enabled: falsein this plugin'sconfig.yml, or setenabled: falseinplugins/trace/config.ymlto turn it off for every plugin that uses it. - Back up your database before running
/faction migrate. The migration does not make its own backup, and its target must be empty. - Scripts or staff workflows that use
/faction addmemberon players who are already in a faction must now add-f. - Grant
mf.approve,mf.declinevassalization,mf.dpcandmf.migrateas your server needs. Check the newfactions.*RequiresApprovalandfactions.nonMembersCanInteractWithEntitiessettings inconfig.yml.
Version
v5.8.1 → 6.0.0 — MAJOR. Mechanical floor from comparing the two jars: MAJOR.
Judgment: I kept the mechanical floor of major, and the source supports it on its own. /faction addmember now asks for confirmation (or -f) before moving a player who is already in a faction (#1919). Entity interaction protection now covers more than villagers and armour stands (#2001). Wartime block checks now go strictly by action type (#1983), and spawn protection uses a new hostile-mob check instead of Monster (#1976 area / CreatureSpawnListener). Usage reporting sends events to an outside endpoint unless turned off. I could not see the patches for plugin.yml, config.yml, PlayerInteractListener, MfFactionCommand, the ally/war/vassalize commands and the language files because the diff was cut off, so their defaults and exact behaviour are unknown and I have not relied on them being safe.
- minor: permission added: mf.approve
- minor: permission added: mf.declinevassalization
- minor: permission added: mf.dpc
- minor: permission added: mf.migrate
- minor: default config key added: dpc-api.discord-link
- minor: default config key added: dpc-api.enabled
- minor: default config key added: dpc-api.key
- minor: default config key added: dpc-api.login-reminder
- minor: default config key added: dpc-api.server-address
- minor: default config key added: dpc-api.server-id
- minor: default config key added: dpc-api.share-server-ip
- minor: default config key added: dpc-api.sync-interval-minutes
- minor: default config key added: dpc-api.url
- minor: default config key added: factions.allyDeclarationRequiresApproval
- minor: default config key added: factions.nonMembersCanInteractWithEntities
- minor: default config key added: factions.vassalizeDeclarationRequiresApproval
- minor: default config key added: factions.warDeclarationRequiresApproval
- minor: default config key added: storage.json.path
- minor: default config key added: storage.type
- minor: default config key added: usage-reporting.enabled
- minor: default config key added: usage-reporting.endpoint
- minor: default config key added: usage-reporting.key
- minor: default config value changed: version 5.8.1 → 6.0.0
- minor: public class added: com.dansplugins.factionsystem.approval.MfApprovalRequest
- minor: public class added: com.dansplugins.factionsystem.approval.MfApprovalRequestId
- minor: public class added: com.dansplugins.factionsystem.approval.MfApprovalRequestId$Companion
- minor: public class added: com.dansplugins.factionsystem.approval.MfApprovalRequestService
- minor: public class added: com.dansplugins.factionsystem.approval.MfApprovalRequestType
- minor: public class added: com.dansplugins.factionsystem.approval.MfApprovalRequestType$WhenMappings
- minor: public class added: com.dansplugins.factionsystem.command.faction.approve.MfFactionApproveCommand
Verification
Verified on a real Spigot server before publication; this release carries the exact jar that was verified.
- boot gate run: booted twice on a fresh Spigot server (10 assertions passed).
- save-compatibility gate run on the
h2backend: data written byv5.8.1was loaded by this release across 5 restart cycles with nothing lost (34 assertions passed). - save-compatibility gate run on the
jsonbackend: data written byv5.8.1was loaded by this release across 5 restart cycles with nothing lost (35 assertions passed). - dependents gate run: MF_Bluemap v1.0 — each one's current stable release — enabled against this release across two boots (18 assertions passed).
- The current stable release
v5.8.1does not close its database cleanly on shutdown (medieval_factions_db.trace.dbleft behind after its own stops); this release does. - Currencies v2.1.0-SNAPSHOT already fails to enable against the current stable
v5.8.1and is unchanged by this release (startup log contains 'Error occurred while enabling Currencies': java.lang.NoClassDefFoundError: com/dansplugins/factionsystem/shadow/preponderous/ponder/minecraft/bukkit/plugin/PluginsKt; [01:54:37] [Server thread/ERROR]: Error occurred while enabling Currencies v2.1.0-SNAPSHOT (Is it up to date?); at com.dansplugins.currencies.Currencies.onEnable(Currencies.kt:164)).
Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.
drafted by Claude on behalf of Daniel Stephenson
Patches a protection bypass where holding any block listed in factions.wartimePlaceableBlocks incorrectly granted the ability to interact with all blocks in enemy territory — including opening chests, flipping levers, and operating doors — regardless of whether those blocks appeared in factions.wartimeInteractableBlocks.
Fixed
- Holding a block listed in
wartimePlaceableBlocksno longer allows unrestricted interaction with enemy faction blocks during wartime. Placement permissions and interaction permissions are now evaluated independently.
Known Limitations
The underlying listener logic that distinguishes between block placement and block interaction has not been fully refactored. The wartime permission system may still be susceptible to edge cases in this area. This is being tracked for a future release.
Upgrade Notes
No configuration changes are required. If you added blocks to wartimePlaceableBlocks as a workaround to grant interaction rights, those should be moved to wartimeInteractableBlocks instead.
Full Changelog
What's New
Wartime Block Controls Servers can now configure separate block lists for wartime — specifying which blocks are placeable, breakable, and interactable during active conflicts. This gives admins much finer control over PvP dynamics without touching normal gameplay.
Fence Gate Access
The nonMembersCanInteractWithDoors config option now also applies to fence gates, closing a long-standing gap in access control behavior.
Horse Despawn Fix Spawn blocking in claimed land has been scoped to hostile mobs only, preventing tamed horses and other passive mobs from despawning when players relog inside a claim.
Under the Hood
- Removed the Ponder dependency; utility functions are now inlined, trimming an external dependency from the project.
- Expanded unit test coverage for the core faction system.
- Added a database querying guide covering direct DB access for both Docker and VM setups.
- Repository aligned with DPC conventions for consistency across Dans-Plugins projects.
This release fixes an issue where the nonMembersCanInteractWithDoors configuration option was not functioning as intended and resolves a ladder bypass bug that could allow unintended access. These changes improve claim security and ensure configuration settings are properly enforced.
What’s Changed
- Fixed
nonMembersCanInteractWithDoorsconfig option behavior - Patched ladder bypass exploit affecting protected areas
Full Changelog
https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.7.1...v5.7.2
This release fixes an issue where ladder placement was incorrectly blocked in enemy territory during wartime. Ladder placement now behaves as expected, ensuring smoother and more consistent siege and combat gameplay.
What's Changed
- Fixed ladder placement being blocked in enemy territory during wartime.
Full Changelog
https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.7.0...v5.7.1
Medieval Factions v5.7.0 delivers a substantial set of improvements focused on stability, configuration flexibility, and faction management, alongside updates for the latest Minecraft version.
This release introduces leaderless faction support, expanded force/administrator command capabilities, and new world-based claim blocking options, giving server operators more control over how factions behave across different worlds. Protection logic has been tightened with fixes for locked chest hopper bypasses and updated handling for new potion effects and copper golems.
On the technical side, v5.7.0 includes multiple stability and reliability fixes, such as resolving NullPointerExceptions, improving concurrent gate save handling, and removing outdated territory item pickup/drop restrictions. Development and deployment workflows have also been enhanced with automated JAR publishing, improved documentation, and updated SpigotMC source-of-truth content.
Highlights
- Leaderless faction support with operator management commands
- World-based claim blocking configuration
- Fixed double-chest hopper bypass and protection edge cases
- Improved faction flag commands with force permissions and refactoring
- Test server updated to Minecraft 1.21.11
- Comprehensive in-repository documentation added
- Automated JAR publishing to GitHub Packages
Special thanks to @AmethystWyrm for their first contribution to the project.
For a complete list of changes, see the Full Changelog:
https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.6.1...v5.7.0
What's Changed
- Fix NoSuchElementException occurring during plugin initialization when player data is unavailable by @Copilot in https://github.com/Dans-Plugins/Medieval-Factions/pull/1887
- Fix /mf bypass not allowing players to attack entities in claimed chunks by @Copilot in https://github.com/Dans-Plugins/Medieval-Factions/pull/1884
- Add recursion depth cap to prevent infinite recursion in faction claim fill command by @Copilot in https://github.com/Dans-Plugins/Medieval-Factions/pull/1876
- Fix lock command to persist across multiple blocks like unlock command by @Copilot in https://github.com/Dans-Plugins/Medieval-Factions/pull/1881
- Fix Slimefun compatibility: Add comprehensive event listeners to prevent bypassing faction protection by @Copilot in https://github.com/Dans-Plugins/Medieval-Factions/pull/1878
- Fix entity protection in faction territories to respect relationships by @Copilot in https://github.com/Dans-Plugins/Medieval-Factions/pull/1899
- Optimize Dynmap integration to eliminate lag on server and web interface by @Copilot in https://github.com/Dans-Plugins/Medieval-Factions/pull/1883
Full Changelog: https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.6.0...v5.6.1
What's Changed
- Fix Ally Placeholder Issue and Enable PlaceholderAPI Testing by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1842
- Improve GitHub Issue Templates for Clarity and Consistency by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1843
- Make Gate Block Restrictions Configurable and Expand Default List by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1845
- Prevent Gate Blocks from Being Destroyed by Fire by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1846
- Add Support for Installing Currencies Plugin Expansion on Test Server by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1848
- Fixed plugin JARs getting deleted incorrectly in
post-create.shby @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1849 - Add Config Options to Restrict Block Actions in Unclaimed Wilderness Chunks by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1851
- Tests/clean up existing unit tests by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1854
- Updated Currencies to 2.1.0 by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1855
- Updated version to 5.6.0 by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1856
Full Changelog: https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.5.0...v5.6.0
Functionality Changes
- Made Dynmap processing more configurable by allowing optional realm and faction info display. #1829
- Updated Dynmap to reflect faction disbandment. #1830
- Prevented an anvil duplication exploit involving falling blocks in gates. #1831
Other Changes
- Added unit tests for Dynmap integration and simplified test server setup. #1826]
- Enabled BlueMap in the test server. #1828
- Updated project version to 5.5.0. #1833
Verification
- Updated the test container to Minecraft 1.21.4 and verified plugin compatibility. #1827
- Confirmed that factions persist when upgrading from version 5.4.0.
Functionality Changes
- Fixed an issue where the power insufficiency check failed when a faction attempted to conquer land.
- Added the ability for players to submit applications to join factions.
Other Changes
- Added a Dockerfile with Dynmap support.
- Updated
CONTRIBUTING.md. - Removed upgrade instructions for MF 5 from the README.
Verification
- Confirmed that factions persist when upgrading from version 5.3.0.
What's Changed
- Release/v5.1.4 by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1717
- Remove some unnecessary limitations on faction's land by @Tems-py in https://github.com/Dans-Plugins/Medieval-Factions/pull/1762
- Prevent using bucket on faction's claim by @Tems-py in https://github.com/Dans-Plugins/Medieval-Factions/pull/1763
- Removed old claim commands (Phase 3 deprecation) by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1769
- Config Option - Only Render Territories Upon Startup by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1768
- Added Brazilian Portuguese (pt-BR) translation for Faction-Medieval p… by @MestreWilll in https://github.com/Dans-Plugins/Medieval-Factions/pull/1758
- Test Server Dockerfile by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1775
- Config Option - Claim Fill Max Chunks by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1771
- Removed locale stuff from dockerfile by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1777
- Fixed disabling neutrality preventing the plugin from enabling by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1776
- Changed version to 5.3.0 by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1778
New Contributors
- @Tems-py made their first contribution in https://github.com/Dans-Plugins/Medieval-Factions/pull/1762
- @MestreWilll made their first contribution in https://github.com/Dans-Plugins/Medieval-Factions/pull/1758
Full Changelog: https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.2.0...v5.3.0
What's Changed
- Release/v5.1 (#1717) by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1718
- Removed chat preview listener. by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1719
- New Flag -
protectVillagerTradeby @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1725 - Added custom charts back into the MedievalFactions class. by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1720
- New Config Option -
factions.maxMembersby @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1722 - Expanded Territory Title Notifications by @Chocolate1Donut in https://github.com/Dans-Plugins/Medieval-Factions/pull/1736
- Apply lint to recent contribution. by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1738
- Toggle Dynmap Integration by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1737
- Toggle Block Destruction in Wartime by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1739
- New Config Option -
players.minPowerby @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1726 - Old Claim Commands Deprecation (Phase 2) by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1721
New Contributors
- @Chocolate1Donut made their first contribution in https://github.com/Dans-Plugins/Medieval-Factions/pull/1736
Full Changelog: https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.1.4...v5.2.0
What's Changed
- Release/v5.1 by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1704
- Added unique name check to
set namecommand. by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1713 - Denied access to
mf claim autocommand if either mf.claim.auto or mf.autoclaim perms are disabled. by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1714 - Made players only steal power upon killing a player if the victim has… by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1703
- Modified Language.kt to include internal resource bundles only if they exist by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1715
Full Changelog: https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.1.3...v5.1.4
What's Changed
- Allowed bypassed players to set their own role. by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1702
Full Changelog: https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.1.2...v5.1.3
What's Changed
- Language loading fix by @Kyrenic in https://github.com/Dans-Plugins/Medieval-Factions/pull/1692
- Dynmap performance improvements by @alyphen
Full Changelog: https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.1.1...v5.1.2
What's Changed
- Moved limit land check in move listener. by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1687
Full Changelog: https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.1.0...v5.1.1
What's Changed
- Added MF 5 info to README. by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1601
- Metric - Language Used by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1624
- Feature - Unclaim Others by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1620
- Contiguous claims config option implemented by @Kyrenic in https://github.com/Dans-Plugins/Medieval-Factions/pull/1637
- Removed 'mustBeOfficerToX' flags since they weren't being used. by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1634
- Fix codeowners by @alyphen in https://github.com/Dans-Plugins/Medieval-Factions/pull/1642
- JVM Name - MfFactionMember.getPlayerId() by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1632
- Add linting by @alyphen in https://github.com/Dans-Plugins/Medieval-Factions/pull/1643
- Claim commands backwards compatibility by @Kyrenic in https://github.com/Dans-Plugins/Medieval-Factions/pull/1644
- Restructured claim code by @Kyrenic in https://github.com/Dans-Plugins/Medieval-Factions/pull/1654
- Fixing a few bugs by @Kyrenic in https://github.com/Dans-Plugins/Medieval-Factions/pull/1656
- Feature - Disband Other Factions by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1617
- Flag - Allow Liege Interaction by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1633
- Prevent items from being taken from locked containers by hoppers, closes #1391 by @Kyrenic in https://github.com/Dans-Plugins/Medieval-Factions/pull/1658
- Prevent hoppers from picking up items from locked chests, closes #1391 by @Kyrenic in https://github.com/Dans-Plugins/Medieval-Factions/pull/1659
- Fix character encoding for German language file by @alyphen in https://github.com/Dans-Plugins/Medieval-Factions/pull/1665
- Display - Relationships in Info Command (Redone) by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1667
- Allowed operators to forcefully set roles. by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1669
- Create language files if nonexistent by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1670
- Edits to law list, law remove, law edit and law move by @Kyrenic in https://github.com/Dans-Plugins/Medieval-Factions/pull/1680
- Feature - Add Member command (redone) by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1668
- Fix - Unlock blocks upon getting broken by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1675
- Add GitHub actions CI config by @alyphen in https://github.com/Dans-Plugins/Medieval-Factions/pull/1681
- Fix - Prevent players from editing their role's permission to edit their own role's permissions. by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1677
New Contributors
- @Kyrenic made their first contribution in https://github.com/Dans-Plugins/Medieval-Factions/pull/1637
Full Changelog: https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.0.6...v5.1.0
What's changed
- #1391 Fix hoppers being able to take items from locked containers
What's Changed
- Added MF 5 info to README. by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1601
- Metric - Language Used by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1624
- Feature - Unclaim Others by @dmccoystephenson in https://github.com/Dans-Plugins/Medieval-Factions/pull/1620
Full Changelog: https://github.com/Dans-Plugins/Medieval-Factions/compare/v5.0.5...v5.1.0-snapshot.1
What's Changed
Fixed factions not being able to call allies into war with the 'invoke' command.
What's changed
- #1616 Fixed duels teleporting people to the same location in different dimensions
- #1621 Fixed players being teleported to the other player's location when duels finish
Expansions
Plugins that build on Medieval Factions and need it installed.
Renders Medieval Factions claims on BlueMap's web map. Originally written by Kilz.
An expansion for Medieval Factions that allows faction owners to create and mint local currencies.
Lets a Medieval Factions faction hold elections: members stand as candidates, vote, and follow the count.
Allows players to create fiefs and manage them.
Related plugins
Allows server owners to add cooking recipes for an enhanced roleplay experience.
Provides a virtual coinpurse and a physical currency item for simulating an economy.
Facilitates roleplay between players.
Introduces factions into the game in a simple, minimal, expandable way.
Something wrong, or something missing?
Bugs go to the plugin's issue tracker, where they can actually be fixed and tracked. Ideas for new behaviour go to the Dev Portal, where the community can upvote them.
