dRegions_Claim: type: task claim: # /drg claim [ID] - inject locally prerun instantly # Check Global region limits - define globalRegionLimit '' - if { - define playerGlobalRegions 'li@' - foreach { - define thisWorld '%value%' - foreach '' { - define region '%value%' - if ||]||false> { - define playerGlobalRegions ']||>' } } } - if { - run s@dRegions_Msg 'def:<&c>You already have total regions!' - queue clear } } # Check World region limits - define worldRegionLimit '' - if { - define playerWorldRegions 'li@' - foreach '' { - define region '%value%' - if ||]||false> { - define playerWorldRegions ']||>' } } - if { - run s@dRegions_Msg 'def:<&c>You already have regions in this world!' - queue clear } } # Check selection volume - define globalClaimVol '' - inject s@dWE_Commands p:selection_Size instantly - if { - if { - run s@dRegions_Msg 'def:<&c>Your selection exceeds the global limit!' - run s@dRegions_Msg 'def:<&7><&o>Selected <&8>(<&7><&o>%size%<&8>) <&7><&o>Limit <&8>(<&7><&o>%globalClaimVol%<&8>) <&7><&o>Over <&8>(<&7><&o><&8>)' - queue clear } } - define worldClaimVol '' - if { - if { - run s@dRegions_Msg 'def:<&c>Your selection exceeds the world limit!' - run s@dRegions_Msg 'def:<&7><&o>Selected <&8>(<&7><&o>%size%<&8>) <&7><&o>Limit <&8>(<&7><&o>%worldClaimVol%<&8>) <&7><&o>Over <&8>(<&7><&o><&8>)' - queue clear } } # Check inside existing/owned region - if '' { - if { - define playerWorldRegions 'li@' - foreach '' { - define region '%value%' - if ||]||false> { - define playerWorldRegions ']||>' } } } - define cuboids '' - foreach %cuboids% { - if && { - define isWithin '' } } - if { - run s@dRegions_Msg 'def:<&c>You may only claim regions within land you own' - queue clear } } # Check if region exists - define exists '' - if { - run s@dRegions_Msg 'def:<&c>There is an orphaned region by this name!' - run s@dRegions_Msg 'def:<&c>Please notify an admin!' - queue clear } else if { - run s@dRegions_Msg 'def:<&c>Region already exists!' - run s@dRegions_Msg 'def:<&7>You must want to update the region' # Check if is owner # Remove commented lines and re-indent to allow admins to "redefine" existing claims. # Otherwise, just use the redefine command as intended! # - if ! { - if ].not> { - run s@dRegions_Msg 'def:<&c>You are not an owner of this region!' - queue clear } # } - define update '' } # Check for overlapping regions - if ! { - if |%name%|%world%|]> { - run s@dRegions_Msg 'def:<&c>Region selection contains unowned regions!' - queue clear } } # Update the region - if { - yaml set 'regions.%name%.min:' 'id:dRegions_%world%_regions' - yaml set 'regions.%name%.max:' 'id:dRegions_%world%_regions' - yaml 'savefile:dRegions/worlds/%world%/regions.yml' 'id:dRegions_%world%_regions' - note cu@| 'as:dregions_%world%_%name%' - run s@dRegions_Msg 'def:<&f><&o>%name%<&7><&o> updated to selection' } else { - define ownerPlayers 'li@' - inject s@dRegions p:createRegionEntry instantly - run s@dRegions_Msg 'def:<&7><&o>Created %name% in %world%' }