Block Conditions
Condition settings
All conditions are formated the same, you have:
{theCondition}{theCondition}Msg: The message to send if the condition is invalid{theCondition}Cancel: Whether or not the event should be cancelled if the condition is invalid{theCondition}Cmds: The command(s) to run if the condition is invalid- Example:
 
blockConditions:
     ifBlockAge: <2
     ifBlockAgeMsg: "héhéhé you can custom your message here"
     ifBlockAgeCancel: true
     ifBlockAgeCmds:
     - say how sad
info
For numerical conditions, you can assign 2 conditions at the same time.
Example:
"I want to create a condition that only activates if the value is greater than 50 but less than 250"
{theCondition}: 50 < CONDITION < 250
ifContainerEmpty - Not
- Description: Check if the block contains items or not.
 - Example:
 
blockConditions:
      ifContainerEmpty: true
      ifContainerNotEmpty: true
ifContainerContains
- Description: Check if the block contains material(s)
 - Example:
 
blockConditions:
      requiredItems:
        requiredItem0:
          material: STONE
          amount: 1
          notExecutableItem: false
ifContainerContainsEI
- Description: Check if the block contains EI(s)
 - Example:
 
 blockConditions:
      requiredExecutableItems:
        requiredEI0:
          executableItem: Bergbauhammer
          amount: 1
ifIsPowered - Not
- Description: Checks if the target block is (or must not be) powered by a redstone signal
 - Example:
 
blockConditions:
    ifIsPowered: false   
    ifIsPoweredMsg: ''
    
    ifMustBeNotPowered: true 
    ifMustBeNotPoweredMsg: ''
- Example Situations:
- If the block you are clicking at is a lit redstone lamp, the activator will activate
 
 - Required: NO (Default: false)
 
ifMustBeNatural - ifMustBeNotNatural
- Description: Checks if the target block is a natural block (so not a placed block) (CORE PROTECT MUST BE INSTALLED)
 
danger
Don't use that in an activator very frenquetly used because it will require a lot of performances
- Example:
 
    blockConditions:
      ifMustBeNotNatural: true
      ifMustBeNotNaturalMsg: ''
      ifMustBeNotNaturalCancel: true
    blockConditions:
      ifMustBeNatural: true
      ifMustBeNaturalMsg: ''
      ifMustBeNaturalCancel: true
- Example Situations:
- If the block you are clicking is/isn't natural, the activator will activate
 
 - Required: NO (Default: false)
 
ifPlayerMustBeOnTheBlock
- Description: Checks if the target block has a player on top of it
 - Example:
 
blockConditions:
    ifPlayerMustBeOnTheBlock: false   
    ifPlayerMustBeOnTheBlockMsg: ''
- Example Situations:
- If the block you are clicking has a player on top of it, the activator activates
 
 - Required: NO (Default: false)
 
ifNoPlayerMustBeOnTheBlock
- Description: Checks if the target block has no player on top of it
 - Example:
 
blockConditions:
    ifNoPlayerMustBeOnTheBlock: false   
    ifNoPlayerMustBeOnTheBlockMsg: ''
- Example Situations:
- If the block you are clicking has a player on top of it, the activator doesn't activate
 
 - Required: NO (Default: false)
 
ifPlantFullyGrown - ifPlantNotFullyGrown
- Description: Checks if the target block is a fully grown plant.
 - Example:
 
blockConditions:
    ifPlantFullyGrown: true    
    ifPlantFullyGrownMsg: ''
##################################################
blockConditions:
    ifPlantNotFullyGrown: true    
    ifPlantNotFullyGrownMsg: ''
- Example Situations:
- If the wheat crop is fully grown, the activator will activate.
 
 - Required: NO (Default: false)
 
ifBlockAge
- Description: Checks the target block age (crops)
 - Example:
 
blockConditions:
        ifBlockAge: <2
        ifBlockAgeMsg: "héhéhé you can custom your message here"
ifBlockLocationX - Y -Z
- Description: Checks the target block location X / Y / Z
 - Example:
 
  blockConditions:
    ifBlockLocationX: 500 < CONDITION < 1500
    ifBlockLocationXMsg: "héhéhé you can custom your message here"
   
    ifBlockLocationY: 50 < CONDITION < 150
    ifBlockLocationYMsg: "héhéhé you can custom your message here"
        
    ifBlockLocationZ: 500 < CONDITION < 1500
    ifBlockLocationZMsg: "héhéhé you can custom your message here"
ifUsage
- It checks the usage of the clicked ExecutableBlock, if the usage is valid, the activator will work, otherwise an error message is displayed.
 - Example:
 
  blockConditions:
    ifUsage: 4< #it also supports intervals like  4 < CONDITION <= 8
    ifUsageMsg: "&cError the executableBlock clicked must have more than 3 usages but less than 10"
- Required: NO
 
ifContainerContainsSellableItem
- Description: Checks if the clicked container has items that can be sold
 - Example:
 
  blockConditions:
    ifContainerContainsSellableItem: true
    ifContainerContainsSellableItemMsg: "&cError the executableBlock clicked must have more than 3 usages but less than 10"
Block Around Conditions
- Description: Checks the blocks around the clicked block:
 - Example:
 
blockConditions:
      blockAroundCdts:
        blockAround0:
          southValue: 0
          northValue: 0
          westValue: 0
          eastValue: 0
          aboveValue: 1
          underValue: 0
          errorMsg: '&c&oA block is not placed correctly !'
          blockTypeMustBe:
          - STONE
          - COBBLESTONE
          - ANDESITE
          - ITEMSADDER:turquoise_block
          - EXECUTABLEBLOCKS:CUSTOMDIRT
          - !DIRT
          - ALL_ORES
blockConditions:
      requiredItems: {}
      requiredExecutableItems: {}
      blockAroundCdts:
        blockAround0:
          southValue: 0
          northValue: 0
          westValue: 0
          eastValue: 0
          aboveValue: 0
          underValue: 1
          errorMsg: ''
          blockTypeMustBe:
          - stone
          placeholdersConditions:
            plchCdt0:
              type: PLAYER_STRING
              comparator: EQUALS
              part1: '%var_x%'
              part2: '10'
              cancelEventIfNotValid: false
              messageIfNotValid: ''
              messageIfNotValidForTarget: ''
              stopCheckingOtherConditionsIfNotValid: true
              placeholderConditionCmds:
              - say not run
Q: What exactly is going on in placeholder conditions?
A: The placeholder %var_x% is being parsed according to the block in that position. Meaning, you can use this method to assign a specific number to insane amount of unique EBs without writing each id that may change overtime in blockTypeMustBe