90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

1.20.4-0.0.4.0-beta1-neoforge

Changelog

[0.0.4.0-beta1] - 2024-05-25

Warning/Disclaimer: This update introduces breaking changes. Please make sure to back up your world before updating to this version. These changes are necessary to enable the new features and to make the mod scalable for future updates and keep it maintainable. Note that I'll try to keep these changes to a minimum in the future. But this will happen from time to time to enable new features and to improve the mod.

Breaking changes relate to:

  • the way region data is stored and thus the way it is read/written.

  • how the flags are handled - in particular, the way flags are inherited and overridden by parent regions

  • the structure and naming of some commands - which have changed to be more consistent

Added

  • Add commands to copy and clear region properties
  • Add enhanced flag management and messages
  • Add flag inheritance and overriding for regions
  • Add new Local Region shape: Sphere
  • Add the Global Region. It's the parent region of all Dimensional Regions. One region to rule them all!
  • API: New events for flag checks. You can now listen to flag checks and cancel them if needed and listen for the result of a check and manipulate the outcome.
  • Add new config options

Copy region properties

  • Add new command to copy properties from one Local Region to another Local Region:

    • /wp dim <dim> <region> copy flags to-local <target-dim> <target-region>: copy all flags from region to target-region
    • /wp dim <dim> <region> copy flags to-dim <target-dim>: copy all flags from region to target-dim
    • /wp dim <dim> <region> copy state to-local <target-dim> <target-region>: copy the region state from region and apply it to target-region
    • /wp dim <dim> <region> copy state to-dim <target-dim>: copy the region state from region and apply it to target-dim
    • /wp dim <dim> <region> copy players to-local <target-dim> <target-region> [group] : copy all players from region to target-region. To copy only a specific group (members, owners) add it as optional parameter
    • /wp dim <dim> <region> copy players to-dim <target-dim> [group] : copy all players from region to target-dim. To copy only a specific group (members, owners) add it as optional parameter
  • Add new commands to copy properties from one Dimensional Region to another Dimensional Region

    • /wp dim <dim> copy flags to-local <target-dim> <target-region>: copy all flags from dim to target-region
    • /wp dim <dim> copy flags to-dim <target-dim>: copy all flags from dim to target-dim
    • /wp dim <dim> copy state to-local <target-dim> <target-region>: copy the region state from dim and apply it to target-region
    • /wp dim <dim> copy state to-dim <target-dim>: copy the region state from dim and apply it to target-dim
    • /wp dim <dim> copy players to-local <target-dim> <target-region> [group] : copy all players from dim to target-region. To copy only a specific group (members, owners) add it as optional parameter
    • /wp dim <dim> copy players to-dim <target-dim> [group] : copy all players from dim to target-dim. To copy only a specific group (members, owners) add it as optional parameter

Enhanced Flags

  • Flags now have their own dedicated flag message which is shown when the flag is triggered.

  • It's now possible to mute flag messages for each individual flag (disabling the alert of the region will still mute all flags for the region).

  • Flag messages can contain placeholders for:

    • {player} - name of player
    • {flag} - name of triggered flag
    • {region} - name of involved region
    • {dimension} - name of dimension
    • {pos} - position of flag activation source [X=x, Y=y, Z=z]
  • Flag messages also can be formatted by using the minecraft default string formatting.

    • For example &c{player}&r tried to break a block in &9{region}&r! will result in a red player name and a blue region name.
    • Take a look at this tool for reference as well as the minecraft wiki.
  • The flag message examples are listed in the language file to enable I18n support for the examples.

  • Flags now have a FlagState instead of just being present/absent. When you add a flag, it will have the denied state to keep the same behavior as before. The different flag states are described as follows:

    • Allowed - The flag is allowed for the region and will be checked.
    • Denied - The flag is denied for the region and will be checked.
    • Disabled - The flag is disabled for the region and will not be checked.
    • Undefined - The flag is not defined for the region.
  • Flags can be disabled to keep the flags in the region but disable the flag check. This is useful when you need to disable a flag but don't want to lose the flag settings (flag message, muted state, etc.).

  • Add commands for enhanced flag management:

    • /wp flag local <dim> <local> <flag> state <Allowed|Denied|Disabled> - set the state for a flag
    • /wp flag local <dim> <local> <flag> override <true|false> - sets the flag to override the same flag in child regions
    • /wp flag local <dim> <local> <flag> msg set <msg> - set a new message for the flag. Check the wiki for a description of possible placeholders for messages.
    • /wp flag local <dim> <local> <flag> msg clear ...
    • /wp flag local <dim> <local> <flag> msg mute ...
  • Also added a command to list the region flags to the flag command

    • /wp flag local <dim> <local> - Lists all flags of the region

The same commands of course work for Dimensional and the Global Regions:

  • /wp flag dim ... to manage flag properties for a Dimensional Region
  • /wp flag global ... to manage flag properties for the Global Region

Flag inheritance & overriding for regions

  • Child regions now inherit the flags of their parent regions. This means that every region will also inherit the flags of the corresponding Dimensional region and the Global Region.
  • Parent regions can now override flags of child regions to enforce flags onto them.
  • Flag pagination now includes parent flags (links to parent flags and the parent itself are shown behind the flag name). The region type is indicated by an indicator. G for Global, D for Dimensional and L for Local Regions.
  • Flag list links for regions now also show number of flags from parent regions, which are considered for region checks in parentheses.
  • The commands to list the flags of a region (/wp ... list flag) are now prompting all responsible flags of the region, including the flags of the parent regions.
  • A new command has been added to only prompt the flags only of the supplied region
    • /wp ... list region-flag
  • Flag pagination now sorts flags by flag state and then by alphabetical order.
    • Green - allowed flags
    • Red - denied flags
    • Gray - disabled flags
  • Flags now have an internal category. This info will also be added to the wiki. The categories are a change to allow some other features to be added in the future. The categories are not final and may still change.

Sphere Local Region

  • Sphere Local Regions are now available. The sphere is defined by the center and the radius. The radius can either be defined by a BlockPos or the radius size. Note that the radius is not counting the center block. Because of this, it is only possible to create spheres with an odd diameter.
  • A sphere with radius 0 will only cover the center block.
  • Add commands to create a Sphere Local Region:
    • /wp local <dim> create <region-name> Sphere <center-pos> <radius-pos> [<parent-region>]
    • /wp local <dim> create <region-name> Sphere <center-pos> <radius> [<parent-region>]
  • You can change the area type of the region area at any time from a Cuboid to a Sphere and back.
  • Support to create Spherical Regions with the RegionMarker will be added soon

Config

  • yawp-common.toml - Add new permission config:
    • allow_region_tp - Decides whether teleporting inside/outside a region is allowed for everyone. Useful when using Waystones in regions for example.
    • disable_cmd_for_non_op. Defines whether mod commands are disabled for non-OP players. This is useful when you want to use the mod only for OPs or players which have their UUID entry in the config. Enable this if you don't want the YAWP command to be seen by non-permitted users.
    • hierarchy_ownership: Defines whether the region hierarchy should be considered for region ownership. If enabled, ownership of parent regions will automatically (implicit) apply to child regions. By default, this is set to true.
  • yawp-flags.toml - Add new flag configs:
    • remove_entities_for_spawning_flags: Toggles the de-spawning of entities when using the spawning-* flags.
  • break_flag_entities and break_flag_entity_tags are now also used for the place-blocks flag.

Global Region

  • The Global Region has the same properties as the Dimensional Regions but is not limited to one dimension. It is the parent region of all Dimensional Regions and considered everywhere for flag checks.
  • Add new commands for management of the Global Region:
    • /wp global info.
    • /wp global clear flags|players|teams|group.
    • /wp global add player|team|flag.
    • /wp global remove player|team|flag.
    • /wp global list flag|region-flag|group|dim.
    • /wp global state alert|enable.
    • /wp global reset.
    • /wp global ...
  • Add interactive CLI support for the Global Region

API

  • Add FlagCheckEvent. This event is fired before a flag is checked. It can be canceled and in the progress can be used to cancel the flag check entirely.
  • Add FlagCheckResult as an event. This event is fired after a flag check. It can be used to manipulate the outcome of the flag check. This event cannot be canceled.
  • Add UpdateArea event as subtype of RegionEvent. This event is fired whenever the area of a region is updated. It can be canceled to prevent the update.
  • Add RenameRegion event as subtype of RegionEvent. This event is fired whenever a region is renamed. It can be canceled to prevent the renaming.

Commands

  • You can now add multiple flags at once by using the new command syntax:
    • /wp ... add flags <flag1> <flag2> ... <flagN>
    • /wp ... add all-flags
  • You can also remove multiple flags at once using the new command syntax:
    • /wp ... remove flags <flag1> <flag2> ... <flagN>
  • Add interactive CLI support for enhanced flag management
  • Add new command to expand the area of a Local Region:
    • /wp local <dim> <local> area expand Cuboid [yMin] [yMax].
      • The optional parameters can be used to set a specific height.
      • Omitting the parameters will set the region area to the Minecraft version specific build limits
    • /wp local <dim> <local> area expand Sphere [<inc>].
      • The optional increment can be used to set increment the radius by a specific amount (negative or positive)
      • Omitting the parameter will increase the radius by 1.
  • Add new command to rename a Local Region: /wp local <dim> <local> rename <newName>.
  • Add new commands to add and remove offline players from/to regions.
    • /wp local <dim> <local> add player <group> by-name <player names separated by space>.
    • /wp local <dim> <local> remove player <group> by-name <player names separated by space>.
    • /wp local <dim> <local> add player <group> by-uuid <player uuid>.
    • /wp local <dim> <local> remove player <group> by-uuid <player uuid>.
    • Note that you can define multiple names for adding and removing but only one UUID at a time.
    • Same goes for the Global and Dimensional Regions as well.
  • There are new commands to clear players, teams, and flags for all region types.
    • /wp dim <dim> clear players|teams|flags|group ...
    • /wp global clear players|teams|flags|group ...
    • /wp local <dim> <region> clear players|teams|flags|group ...
  • Add new command to enable/disable all Local Regions in a dimension:
    • /wp dim <dim> state enable-local true|false
  • Add new command to enable/disable flag alert messages for all Local Regions in a dimension:
    • /wp dim <dim> state alert-local true|false
  • Add new command to delete all Local Regions in a dimension:
    • /wp dim <dim> delete-all regions forever seriously
  • Add new command to reset the Dimensional Region:
    • /wp dim <dim> reset dim
  • Add new command to reset all Local Regions in a Dimensional Region:
    • /wp dim <dim> reset regions

Changed

  • YAWP can now be used in single-player (open to LAN) worlds. It is still a server-side only mod, but now also works for integrated servers / LAN worlds and single player worlds.
  • Reworked the layout and design of the CLI to be more user-friendly and consistent for Local, Dimensional and Global Region types where possible.
  • Change flag pagination for regions to include a link to the flag info as well as some quick links.
  • Dimensional Regions now can be muted (as well as their flags, all or individually)
  • Change Dimensional Region CLI to include support for muting regions.
  • Rename spatial properties to area properties. This change also involves some commands and language keys.
  • Rearranged the area properties CLI page, trying to give a more concise overview.
  • Change command to update Local Region area:
    • Old: /wp region <dim> <region> area Cuboid <pos1> <pos2>
    • New: /wp local <dim> <local> area set Cuboid <pos1> <pos2>
  • When creating a Local Region you can no longer supply the owner of the region. Instead, you can optionally supply the region parent:
    • e.g.: /wp local <dim> create <region-name> Cuboid <center-pos> <radius-pos> [<parent-region>]
    • The argument will try to suggest only owned regions that fully include the new region. This will also be checked when executing the command. If the provided region is invalid, the Dimensional Region will be used instead.
    • Omitting the parent, will also set the Dimensional Region as parent
  • Creating a Local Region with the RegionMarker and the correlated command now also requires you to provide the parent region.
    • If there are multiple valid options available, you are required to select one.
    • If no parent is provided, the Dimensional Region will be used as parent.
  • Improved RegionMarker indicators for marked blocks. It's item name now shows colored indicators for
    • the amount of blocks which needs to be marked for a valid area
    • a selected teleport position
  • The RegionMarker now also prompts feedback for marked blocks and a valid area to the player.
  • Rename affiliation to groups. This change also involves some commands and language keys.
  • Change commands to manage groups (former known as affiliations):
    • Old: /wp region <dim> <region> add|list|remove affiliate player|team <member|owner> ...
    • New: /wp local <dim> <local> add|list|remove group player|team <member|owner> ...
  • Change commands to manage Local Regions:
    • Old: /wp region <dim> <region> ...
    • New: /wp local <dim> <local> ...
  • The spawning flags no longer remove entities with the PersistanceRequired tag or a custom name.
  • Renaming a Stick to create a RegionMarker is now disabled to prevent permission issues. This will come back in a future update with an overhaul of the RegionMarker.
  • Moved the region name examples (used when creating a new region) to the language file to enable I18n support for the examples.
  • Changed license from LGPL v3 to AGPL v3.
  • Change Dimensional Region state CLI to toggle the state (enable and alert) of all Local Regions in the dimension.
  • Rename config value break_flag_entities to covered_block_entities
  • Rename config value break_flag_entity_tags to covered_block_entity_tags
  • The region add flag command now has a new syntax. The state and override flag are optional and default to Denied and false.
    • Old: /wp ... add flag <flag>
    • New: /wp ... add flag <flag> [state] [override]

Removed

  • Remove UpdateRegionEvent introduced in 0.0.3.0-beta1. This is replaced by the UpdateArea and RenameRegion events.

Fixed

  • Fix some cli typos
  • Fix parent - child hierarchy inconsistency when deleting children
  • It is no longer possible to delete regions which have a Local Region as parent
  • Lang key fixes... well more like a whole overhaul of the language keys
  • Fix region teleport command not working properly for non-ops
  • Fix entry point for ignite-explosive flag mixin
  • Fix ignite-explosive flag not considering explosions not caused by players
  • The command /wp marker create ... and /wp dim <dim> create local ... now properly checks for permission for the parent region

Files

yawp-1.20.4-0.0.4.0-beta1-neoforge.jar(488.99 KiB) Primary Download

Project members

Z0rdak

Owner

Details

Licensed AGPL-3.0-only
Created 2 years ago
Updated 3 months ago