assignplayerchunklogin: type: world debug: true events: on player login: - wait 2s #Find player's current chunk coordinates. Save them to a player flag. - flag player playerchunkstrx: - flag player playerchunkstrz: - define current_player_chunk_def_str ", " - flag player current_player_chunk_str:<[current_player_chunk_def_str]> #Assign player holding flags if they don't exist - if !: - flag player player_domainnameflag:null - if !: - flag player player_domainnameflag:null - if !: - flag player player_countynameflag:null - if !: - flag player player_duchynameflag:null - flag player chunktrackercooldown chunktracker: type: world events: after player walks flagged:chunktrackercooldown: - foreach as:player: - flag player chunktrackercooldown:! # Find player location, translate to chunk coords by dividing by 16 - flag player playerchunkstrx: - flag player playerchunkstrz: # Temporarily store calculated player chunk location - define new_player_chunk_temp_str "," #Compare new chunk coords with stored chunk coords - if <[new_player_chunk_temp_str]> != : #If the new chunk is different from the old chunk, check if #the player has moved into a new holding. Save the new chunk #coords for next comparison. - flag player current_player_chunk_str:<[new_player_chunk_temp_str]> - narrate "New Chunk! " # WILDERNESS AND TITLE LOGIC - define currchunk ,world4]> - if <[currchunk].flag[chunk_domainnameflag]> != : - flag player player_domainnameflag:<[currchunk]>.flag[chunk_domainnameflag]> - title title: subtitle:<&7>The<&sp><&2>Domain stay:2s targets:<[player]> - if <[currchunk]>.flag[chunk_baronynameflag]> != : - flag player player_baronynameflag:<[currchunk]>.flag[chunk_baronynameflag]> - if <[currchunk]>.flag[chunk_countynameflag]> != : - flag player player_countynameflag:<[currchunk]>.flag[chunk_countynameflag]> - if <[currchunk]>.flag[chunk_duchynameflag]> != : - flag player player_duchynameflag:<[currchunk]>.flag[chunk_duchynameflag]> - wait 56t - flag player chunktrackercooldown build_chunk_map_command: type: command name: buildchunkmap description: Reads fealty_data.yml and builds the chunk lookup map. usage: /buildchunkmap permission: denizen.buildchunkmap script: - narrate "Starting chunk map build from fealty_data.yml..." - narrate "This is a one-time process and may take a moment. The server will freeze during the initial load." - fileread path:data/regionstest.yml save:raw_file_content - define decoded_content - define parsed_yaml <[decoded_content].parse_yaml> - define fealty_data <[parsed_yaml].get[fealty_data]> - flag server fealty_data:<[fealty_data]> - narrate "YAML loaded successfully. Found <[fealty_data].size> territory entries." read_fealty_data: type: command name: readfealtydata description: Reads fealty_data.yml and reads from it. usage: /readfealtydata permission: denizen.readfealty script: - define worldname world4 - foreach as:holdinginfo key:holdingid: - define holdingname <[holdinginfo].get[name]> - narrate "The name of territory ID <[holdingid]> is <[holdingname]>." - define holdinglevel <[holdinginfo].get[level]> - if <[holdinglevel]> == domain: - define chunk_set <[holdinginfo].get[chunk_set]> - narrate "Getting Chunk Set:" - else: - define chunk_set <[holdinginfo].get[demesne_set]> - narrate "Getting Demesne Set:" - narrate "This territory contains <[chunk_set].size> chunks." - define chunkcounter 1 - foreach <[chunk_set]> as:chunk_coord: - if <[chunkcounter]> > 5: - foreach stop - define current_chunk_x <[chunk_coord].get[1]> - define current_chunk_z <[chunk_coord].get[2]> - define chunk_str "<[current_chunk_x]>,<[current_chunk_z]>" - narrate "Chunk <[chunkcounter]>: <[chunk_str]>" - define currchunk ,world4]> - flag <[currchunk]> fealtyflag - choose <[holdinglevel]>: - case domain: - flag <[currchunk]> chunk_domainnameflag:<[holdingname]> - narrate <[currchunk].has_flag[chunk_domainnameflag]> - case barony: - flag <[currchunk]> chunk_baronynameflag:<[holdingname]> - case county: - flag <[currchunk]> chunk_countynameflag:<[holdingname]> - case duchy: - flag <[currchunk]> chunk_duchynameflag:<[holdingname]> - define chunkcounter:++ - wait 5t