Skip to content

Releases: TownyAdvanced/FlagWar

Outlaw Teleportation Protections & 1.16.5 support

12 Aug 05:40
911a38e
Compare
Choose a tag to compare

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 an OutlawTeleportEvent 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

17 Jul 07:22
bea85e7
Compare
Choose a tag to compare

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.

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.

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

18 Jun 20:10
Compare
Choose a tag to compare

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!

04 Mar 06:13
Compare
Choose a tag to compare

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.
    • 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)

19 Feb 03:37
Compare
Choose a tag to compare
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.