IntellectualSites / IntellectualSites/PlotSquared

#mask pattern does not work in wall "filling"

Open
#4,311 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Enhancement
Dominant language
Java
Stars
653
Forks
975
Avg merge
2m
Merged PRs (30d)
6

Description

Server Implementation

Paper

Server Version

1.20

Describe the bug

Using the pattern "#mask[=y>=-64&&y<=63][stone][grass_block]" in worlds.yml for wall filling does not work. But it does work with the command: /p set wall #mask[=y>=-64&&y<=63][stone][grass_block]

To Reproduce
  1. Create any world.yml
  2. Change worlds.yml to:
worlds:
  test:
    plot:
      height: 64
      size: 45
      filling: dirt
      floor: grass_block
      bedrock: true
      biome: minecraft:plains
      sign_material: SPRUCE_WALL_SIGN
      auto_merge: false
      create_signs: true
    wall:
      place_top_block: true
      block: stone_slab
      block_claimed: deepslate_brick_slab
      filling: '#mask[=y>=-64&&y<=63][stone][grass_block]'
      height: 64
    road:
      width: 9
      height: 64
      block: stone
      flags: {}
    home:
      nonmembers: side
      default: side
    schematic:
      specify_on_claim: false
      on_claim: false
      file: 'null'
      schematics: []
    chat:
      forced: false
      enabled: true
    economy:
      prices:
        merge: 100
        sell: 0
        claim: 100
      use: true
    world:
      max_gen_height: 319
      max_height: 320
      gamemode: survival
      min_gen_height: -64
      min_height: -63
      border: false
      border_size: 1
    event:
      spawn:
        egg: true
        breeding: false
        custom: true
    natural_mob_spawning: false
    mob_spawner_spawning: true
    flags: {}
    misc_spawn_unowned: false```

3. Startup error in console "Failed to parse pattern"

### Expected behaviour

The pattern should also work in the worlds.yml, not only with a command.
(It should fill everything up with stone, except for the block at height 64, which should be grass_block)

### Screenshots / Videos

_No response_

### Error log (if applicable)

[20:52:46 ERROR]: [PlotSquared/ClassicPlotWorld] Failed to parse pattern '#mask[=y>=-64&&y<=63][stone][grass_block]', check your worlds.yml
[20:52:46 ERROR]: [PlotSquared/ClassicPlotWorld] Falling back to minecraft:stone

### Plot Debugpaste

https://athion.net/ISPaster/paste/view/eac02ef7ea36477a95c8e0dc96a0dec7

### PlotSquared Version

7.3.2-Premium

### Checklist

- [X] I have included a Plot debugpaste.
- [X] I am using the newest build from https://www.spigotmc.org/resources/77506/ and the issue still persists.

### Anything else?

_No response_

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the worlds.yml wall.filling configuration and the pattern-parsing path that reports “Failed to parse pattern”; compare it with the /p set wall command path, where the same pattern works. Reproduce on PlotSquared 7.3.2-Premium using the supplied configuration. Done means startup accepts the pattern and wall filling uses stone except at height 64, which uses grass_block.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
game-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.