Releases: TownyAdvanced/FlagWar
Outlaw Teleportation Protections & 1.16.5 support
This release is a minor upgrade over https://github.com/TownyAdvanced/FlagWar/releases/tag/0.3.0.
Key Changes (See CHANGELOG.md for more)
- Platform Support: Set API level to 1.16; 1.16.5 supported*.
- A good portion of the Towny community still relies on 1.16.5
- *Java 16 is still required. Recommended: Amazon Corretto, Eclipse Adoptium, or the Microsoft Build of OpenJDK
- Support will be dropped in the future when 1.18.x is targeted. The goal is to support the two most recent API branches, if possible.
- NEW (Feature) Adds the
OutlawListener
, with anOutlawTeleportEvent
Event Handler.- Prevents enemy outlaws from being teleported away by Towny's outlaw entry prevention system while there is an active War Flag in play.
- Bump Required Towny version to 0.97.0.17+ (Required for the
OutlawListener
.)
- NEW (API): Added
FlagWarAPI#isUnderAttack(Nation)
, which checks if any town within a Nation is under attack.
Checksums
Be sure to validate the files, especially if you did not get them from here.
You can run the following from bash (or cygwin terminal), provided md5sum / sha256sum exist.
# For bash
md5sum -c md5.sums
sha256sum -c sha256.sums
# Or manually compare
cat ./sha256.sums
sha256sum ./FlagWar-0.4.0.jar
You can do something similar in PowerShell, too.
cat .\sha256.sums # See valid SHA256 sums
Get-FileHash -Path ".\FlagWar-0.4.0.jar" -Algorithm SHA256
Release 0.3.0: Initial General Availablity, Holographic War Flags
Notice of Removal from Towny
With the coming release of Towny 0.97.1.0, and effective for pre-releases starting with 0.97.0.14, FlagWar will (is) no longer be bundled directly within it. Admins are encouraged to use this release (or a later version) if they require the functionality.
Feature parity should be on-point, and the additional features over the old integrated system are a good start. Granted, there may be bugs that we are not yet aware of, so if you see something irregular, say something please.
Requirements:
- Paper 1.17, or greater
- Java 16
Changes since the last (Pre-)Release
Features
-
Added Holograms for War Flags (Courtesy of @gaffy00 with #58)
- Adds HolographicDisplays as a soft-dependency. Grab v2.4.5 (or greater) on BukkitDev, or check out it's documentation.
-
Restored WarZoneListener to functionality
- Was disabled due to a errant method.
API
- Removed
CellUnderAttack#isFlag(Block)
- Previously deprecated, use
#isFlagTimer(Block)
or#isFlagPart(Block)
instead.
- Previously deprecated, use
Build Environments
-
Updated to target Java 16, Paper 1.17.1, Towny 0.97.0.12*
- Should function with 0.97.0.3, but you should use a supported release!
- Due to using Java 16, some maven plugins require SNAPSHOT releases to function (shade). Builds may be unreliable until the updates are generally available.
-
Removed
alternatives
profile and updated GitHub Actions scripts.
Previous Changes
Changes for development versions 0.1.0 through 0.2.0 can be viewed on their independent release pages.
- (Overview) https://github.com/TownyAdvanced/FlagWar/releases
- https://github.com/TownyAdvanced/FlagWar/releases/tag/v0.1.0-devel
- https://github.com/TownyAdvanced/FlagWar/releases/tag/v0.1.1-devel
- https://github.com/TownyAdvanced/FlagWar/releases/tag/0.2.0-devel
Download Verification
If you obtained this release elsewhere, make sure that the checksums match. The MD5 and SHA256 values have been provided, and can be checked with md5sum -c FlagWar-0.3.0.md5
and sha256sum -c FlagWar-0.3.0.sha256
, respectively.
Development Release v0.2.0: Major fixes, New Flag Materials
Long overdue, but well worth the wait. This release introduces a couple of things, and fixes some major bugs on the back-end.
First things first, I would like to thank both @gaffy00 and @Mrredstone5230 for their contributions going into this release.
Secondly, I would like to note that configuration files may not automatically update with new keys. You are encouraged to generate a new config if you ran a previous pre-release or built from main. You will also need at least Towny 0.97.0.5, and Paper 1.16+ (or derivative) is preferred for this build.
Additions
- Added a CheckStyle configuration, based on traditional Sun style guidelines with some modified rules. (Non-Gameplay)
- Added a Messaging utility class, with debug methods. Config option to enable debug messaging. (PR #40)
- Rolling, viewer-friendly CHANGELOG.md file.
- Add ability to change War Flag timer materials. (PR #49, @gaffy00)
- Phase timing can be adjusted by increasing the ratio of specific materials.
- Example: Using
matX, matX, matX, matY, matY, matZ
produces a flag with three phases, at a 3:2:1 timing ratio.
Fixes
- Fix incorrect formatting of colored messages containing formatting characters. (PR #48, @gaffy00)
- Fix Localization Issues with parsing Regions and Region Variants (PR #43, @Mrredstone5230)
- Fix beacons not rendering (PR #40)
- Change
config:flag.waiting_time
to work as expected. Now reflects total length of a flag, not of the flag phase.
(PR #38)
Regressions
- Disabled WarZoneListener, has some issues with how it's functioning that negatively affects game-play.
Misc. Changes
-
Bumped Dependencies
- Towny 0.96.7.4 >> 0.97.0.6 (0.97.0.5 Minimum Req.)
- Spotbugs-Annotations 4.2.1 >> 4.2.3 (Compile Only)
- Jetbrains' Annoations 20.1.0 >> 21.0.1 (Compile Only)
- Add Maven-Checkstyle-Plugin 3.1.2, using Checkstyle 8.4.3 (Compile Only)
-
Upstream Deprecations
- Removed EconomyException (deprecated)
-
Code Cleanup / Refactoring
- Make code CheckStyle compliant and enforce through Maven.
- Target Java 11 & MC 1.16+.
- Switched to PAPER as the Bukkit API provider.
Trivia
- Was initially to be 0.1.2, bumped due to introduction of debug messaging and alternate flag materials.
FlagWar Dev. Release 0.1.1: Locked & localized!
NOTE: This build has seen some heavy regressions / bugs. If you are testing, it is currently advised to build against main
. A release of 0.1.2 should be out once I've assessed a solution to #33. Notable fixes in main: #34, #35.
This release of FlagWar introduces self-contained translations*, as well as a few other QOL changes and fixes.
Also, since 0.1.0 was broken on release, this is the first publicly testable version of FlagWar. So by all means, spam that Issue tracker (with legitimate tickets.)
* Really, only en_US is included... Other locales will require contributions.
Changes since v0.1.0-devel
(See 0.1.0's release for a summary of changes since modularization.)
- Localization config option enabled (bumped to 1.1)
- New Classes: LocaleUtil and Translate
- English translation available: Translation_en_US.properties (v1.0)
- Not configurable at runtime, translation done using ResourceBundles.
You can use custom translations by either recompiling, or extracting and re-archiving the jar.
- Not configurable at runtime, translation done using ResourceBundles.
- Other translations available - NEED CONTRIBUTIONS!
- Fixed issue with null listeners preventing proper plugin load. (Oops...)
- Dropped API version to 1.14 (Towny ultimately decides the minimum, FlagWar doesn't use anything new from 1.15/1.16)
- Made JUL logging events lazy - will only assign values if called.
- Fixed loading specific settings from TownySettings, properly target FlagWarConfig
Known Deficiencies:
- Does not implement a way to tell Towny if a town is under attack or not (aka: "is wartime" for EventWar).
- This was traditionally handled by the TownSpawnLevel class.
- Should be the next major thing tackled, aside from bugs.
Nerdy Checksums
File | SHA256 Checksum |
---|---|
FlagWar-0.1.1.jar | 1a0f9be367ffc1f571fa8420a1de16498f8aadcdc3bd8b6058297ca572f0adb3 |
FlagWar-0.1.1-javadoc.jar | f241675da67a2bb58bbfce7d70f5f12699fc0249734e731c2c7493dbc37dfbb7 |
FlagWar-0.1.1-sources.jar | 151d4144cb3d585cc6d3215ef4c54d1fdcf520d59554cb2096b68b4879a47baf |
License
As with 0.1.0, and all releases going forward, FlagWar is licensed under the Apache License, version 2.0.
Appropriate legal notices can be found in the NOTICE file.
FlagWar 0.1.0 (Development Pre-release)
This pre-release will not start due to an issue with loading listeners. See #13 for more details.
Release kept for archival / historical reasons; binaries have been removed.
This release marks the first publicly available development build for the decoupled FlagWar. While this version is incomplete, and not ready for production use quite yet, it should be functional enough for testing purposes. This version relies on translation strings from Towny, but implements it's own configuration file. Please make sure you have FlagWar disabled in Towny's implementation.
Please see the Feature Parity Checklist for known deficiencies in comparison to Towny's built-in FlagWar implementation.
For potential bugs not found in the Feature Parity Checklist, please look towards the issue tracker. If you find a unique bug, please log it so that a contributor can tackle it.
Major Differences:
- New package namespace:
io.github.townyadvanced.flagwar
- New
io.github.townyadvanced.flagwar.FlagWarAPI
class to handle some abstracted implementations. - Implements it's own version of the WarzoneListener.
- Heavy refactoring: Focus on accuracy and readability. (Let us know what broke, something likely did...)
- Utilizes a basic plugin configuration, rather than Towny's implementation of Dumptruckman's CommentedConfiguration.
- Licensed under the Apache License, Version 2 (See attached LICENSE and NOTICE files)
QOL Developer Improvements
- Contributor License Agreement is built into the license, rather than supplementing it.
- Certain dependencies are now tracked by Dependabot
- Prefer LF (Unix-style) line endings and use Spaces for indentation in
.editorconfig
- Enforce .editorconfig validation on
mvn verify
(or, any time it tries to compile or package) - Out of spec files can be formatted automatically by running
mvn editorconfig:format
- Add
.gitattributes
to preserve files on checkout and push - Shared some IntelliJ configuration files, including Copyright boilerplate and scopes.
Known Deficiencies:
Again, check the Feature Parity Checklist and the Issue tracker for updates.
- Does not implement it's own localization framework, reliance on Towny's language strings remains in this build.
- Does not implement several methods from Towny's implementation, due to original being outside of the FlagWar package at time of split.