# dminereset system # mine admins require op or dminereset.command permission # mines are stored in dmineresets_saves.yml and it is editable and reloadable. # Created by Talamar1 dminereset: type: world debug: false events: on server start: - run dminereset_task_init delay:5t dminereset_task_init: type: task debug: false script: - inject dminereset_command_reload - ^flag server dmr:! - ^foreach { - run dminereset_queue_check def:%value% } dminereset_dmr: type: command debug: false name: dmr description: dMineReset Command usage: /dmr <&lb>command<&rb> (arg1<&pipe>arg2...) aliases: dminereset script: - if == 0 { - inject dminereset_command_help - queue clear } - define arg1 - define cmdList li@create|delete|rename|set|resize|disable|enable|list|clear|reload|reset|tp|save - if { - if || { - inject dminereset_command_%arg1% - queue clear } else { - narrate "<&6>You do not have permission to use that dminereset command." - queue clear } } - inject dminereset_command_help dminereset_command_help: type: task debug: false script: - if narrate "<&6>/dmr create <&lb>minename<&rb>" - if narrate "<&6>/dmr delete <&lb>minename<&rb>" - if narrate "<&6>/dmr save" - if narrate "<&6>/dmr set <&lb>minename<&rb> <<>setting<>> <<>value<>>" - if narrate "<&6>/dmr select <&lb>minename<&rb>" - if narrate "<&6>/dmr resize <&lb>minename<&rb>" - if narrate "<&6>/dmr rename <&lb>old minename<&rb> <&lb>new minename<&rb>" - if narrate "<&6>/dmr reload" - if narrate "<&6>/dmr clear" - if narrate "<&6>/dmr reset <&lb>minename<&rb>" - if narrate "<&6>/dmr list" dminereset_command_create: type: task debug: false script: - if { - narrate "<&6>/dmr create <<>mine name<>>" - narrate "<&6>mine name - name for your mine" - queue clear } - define arg2 - if %arg2% != { - narrate "<&6>That value doesn't look right." - queue clear } - if { - narrate "<&6>mine with that name already exists." - queue clear } - if li@help|false|true|null contains %arg2% { - narrate "<&6>That is not a valid mine name." - queue clear } - if { - narrate "<&6>You don't have an area selected with WorldEdit wand." - queue clear } - narrate "Creating new mine" - run dminereset_task_yaml_copy def:dmr.mines.default|dmr.mines.%arg2% instantly - inject dminereset_command_save - note as:dmr_%arg2% - flag player dmr.edit:%arg2% - narrate "mine created." dminereset_command_save: type: task debug: false script: - ^yaml savefile:dminereset_saves.yml id:dminereset_saves dminereset_command_delete: type: task debug: false script: - define mine >> - if %mine% == help { - narrate "<&6>/dmr delete <<>mine Name<>>" - narrate "<&6>Either select an mine or provide an mine name" - queue clear } - if %mine% != { - narrate "<&6>That value doesn't look right." - queue clear } - narrate "Deleting selected mine." - yaml id:dminereset_saves set dmr.mines.%mine%:! - flag player dmr.edit:! - note remove as:dmr_%mine% - inject dminereset_command_save dminereset_command_reset: type: task debug: false script: - define mine >> - if %mine% == help { - narrate "<&6>/dmr delete <<>mine Name<>>" - narrate "<&6>Either select an mine or provide an mine name" - queue clear } - if %mine% != { - narrate "<&6>That value doesn't look right." - queue clear } - narrate "Resetting mine<&co> %mine%." - if { - modifyblock cu@dmr_%mine% } else { - modifyblock cu@dmr_%mine% no_physics } dminereset_command_reload: type: task debug: false script: - ^if yaml unload id:dminereset_saves - ^if { - announce "<&lb>dminereset<&rb> Loading MineReset Config File" - yaml load:dminereset_saves.yml id:dminereset_saves } else { - announce "<&lb>dminereset<&rb> Creating MineReset Config File" - yaml create id:dminereset_saves - yaml savefile:dminereset_saves.yml id:dminereset_saves - inject dminereset_command_reset_default } dminereset_command_clear: type: task debug: false script: - yaml unload id:dminereset_saves - yaml create id:dminereset_saves - inject dminereset_command_save dminereset_command_select: type: task debug: false script: - if { - narrate "<&6>/dmr select <<>mine name<>>" - narrate "<&6>mine name - name for your mine" - queue clear } - if ]> { - narrate "<&6>That value doesn't look right." - queue clear } - define arg2 - if { - narrate "<&6>Selecting mine with name<&co> %arg2%" - flag player dmr.edit:%arg2% } else { - narrate "<&6>mine with that name not found." } dminereset_command_resize: type: task debug: false script: - if ! { - narrate "You don't have an mine selected." - queue clear } - if { - narrate "<&6>You don't have an area selected with WorldEdit wand." - queue clear } - narrate "Resizing mine %mine%" - yaml id:dminereset_saves set dmr.mines..cuboid: - inject dminereset_command_save - note as:dmr_ - narrate "Mine resized." dminereset_command_blockmgmt: type: task debug: false script: - define arg2 - define arg3 - if %arg2% == help || ( li@add|del contains %arg2% && <= 0 ) { - narrate "<&6>/dmr %arg1% add - add block(s) to list" - narrate "<&6>/dmr %arg1% del - delete block(s) from list" - narrate "<&6>/dmr %arg1% list - list all blocks" - narrate "<&6>/dmr %arg1% clear - clear all blocks in list" - queue clear } - if ! { - narrate "You don't have an mine selected." - queue clear } - define mine - define settings li@add|del|list|clear - if inject dminereset_blockmgmt_%arg2% else narrate "Invalid %arg1% command" dminereset_blockmgmt_add: type: task debug: false script: - define mine > - define arg1 > - define arg3 > - if %arg3% == help { - narrate "<&6>/dmr %arg1% add <<>value<&pipe>value<&pipe>...<>>" - narrate "Where <&dq>value<&dq> is a <&pipe> separated list of block or material IDs." - queue clear } - foreach { - define newmat - if { - narrate "%value% is %newmat%" - if ! { - yaml id:dminereset_saves set dmr.mines.%mine%.settings.%arg1%:->:%newmat% - narrate "Added blocks to %arg1% list for %mine%" } else { - narrate "Item already in list" } } else { - narrate "%value% is not a valid block or item" } } - inject dminereset_command_save dminereset_blockmgmt_del: type: task debug: false script: - if %arg3% == help { - narrate "<&6>/dmr %arg1% del <<>value<&pipe>value<&pipe>...<>>" - narrate "Where <&dq>value<&dq> is a <&pipe> separated list of block or material IDs." - queue clear } - foreach { - define newmat - if { - narrate "%newmat% is valid" - if { - yaml id:dminereset_saves set dmr.mines.%mine%.settings.%arg1%:<-:%newmat% - narrate "Deleted blocks from %arg1% list for %mine%" } } else { - narrate "%value% is not a valid block or item" } } - inject dminereset_command_save dminereset_blockmgmt_list: type: task debug: false script: - if > 0 { - define blocklist - narrate "%blocklist%" } dminereset_blockmgmt_clear: type: task debug: false script: - yaml id:dminereset_saves set dmr.mines.%mine%.settings.%arg1%:! - narrate "Cleared blocks from %arg1% list for %mine%" - inject dminereset_command_save dminereset_command_rename: type: task debug: false script: - if || { - narrate "<&6>/dmr select <<>mine name<>>" - narrate "<&6>mine name - name for your mine" - queue clear } - if ]> || ]> { - narrate "<&6>That value doesn't look right." - queue clear } - define arg2 - define arg3 - if li@help|false|true|null|%arg2% contains %arg3% { - narrate "<&6>That is not a valid mine name." - queue clear } - if { - narrate "<&6>Renaming mine with name<&co> %arg2% to<&co> %arg3%" - run dminereset_task_yaml_copy def:dmr.mines.%arg2%|dmr.mines.%arg3% instantly - run dminereset_command_delete def:%arg2% instantly - note as:dmr_%arg3% - inject dminereset_command_save } else { - narrate "<&6>mine with that name not found." } dminereset_command_lock: type: task debug: false script: - if && ! { - narrate "<&6>/dmr locked <<>mine ID<>>" - narrate "<&6>Either select an mine or provide an mine name" - queue clear } - if define mine else define mine - if %mine% != { - narrate "<&6>That value doesn't look right." - queue clear } - if { - yaml id:dminereset_saves set dmr.mines.%mine%.settings.locked:true - narrate "<&6>Locking mine with name: %mine%" - inject dminereset_task_scan_chests - inject dminereset_command_save } else { - narrate "<&6>mine with that name not found." } dminereset_command_unlock: type: task debug: false script: - if && ! { - narrate "<&6>/dmr locked <<>mine ID<>>" - narrate "<&6>Either select an mine or provide an mine name" - queue clear } - if define mine else define mine - if %mine% != { - narrate "<&6>That value doesn't look right." - queue clear } - if { - yaml id:dminereset_saves set dmr.mines.%mine%.settings.locked:false - narrate "<&6>Unlocking mine with name: %mine%" - inject dminereset_command_save } else { - narrate "<&6>mine with that name not found." } dminereset_command_enable: type: task debug: false script: - if && ! { - narrate "<&6>/dmr enable <<>mine ID<>>" - narrate "<&6>Either select an mine or provide an mine name" - queue clear } - if define mine else define mine - if %mine% != { - narrate "<&6>That value doesn't look right." - queue clear } - if { - yaml id:dminereset_saves set dmr.mines.%mine%.settings.enable:true - narrate "<&6>Enabling mine with name: %mine%" - inject dminereset_command_save } else { - narrate "<&6>mine with that name not found." } dminereset_command_disable: type: task debug: false script: - if && ! { - narrate "<&6>/dmr enable <<>mine ID<>>" - narrate "<&6>Either select an mine or provide an mine name" - queue clear } - if define mine else define mine - if %mine% != { - narrate "<&6>That value doesn't look right." - queue clear } - if { - yaml id:dminereset_saves set dmr.mines.%mine%.settings.enable:false - narrate "<&6>Disabling mine with name: %mine%" - inject dminereset_command_save } else { - narrate "<&6>mine with that name not found." } dminereset_command_list: type: task debug: false script: - foreach { - narrate "<&6>mine: %value%" } dminereset_command_set: type: task debug: false script: - define arg2 - define arg3 - if %arg2% == help { - narrate "<&6>/dmr set <<>setting<>> <<>value<>>" - narrate "<&6>setting - setting to change" - narrate "<&6><&sp><&sp><&sp>restock" - narrate "<&6><&sp><&sp><&sp>min_players" - narrate "<&6><&sp><&sp><&sp>max_players" - narrate "<&6><&sp><&sp><&sp>lightning" - narrate "<&6><&sp><&sp><&sp>lightning_delay" - narrate "<&6><&sp><&sp><&sp>countdown" - narrate "<&6><&sp><&sp><&sp>timer" - narrate "<&6>value - value to assign to setting" - queue clear } - if ! { - narrate "You don't have an mine selected." - queue clear } - define mine - define settings li@restock|min_players|max_players|lightning|lightning_delay|countdown|timer - if { - inject dminereset_setting_%arg2% } else { - narrate "Invalid setting" - queue clear } dminereset_setting_countdown: type: task debug: false script: - if { - yaml id:dminereset_saves set dmr.mines.%mine%.settings.countdown:%arg3% - narrate "<&6>Changing COUNTDOWN on mine <<>%mine%<>> with value: %arg3%" - inject dminereset_command_save } else { - narrate "<&6>/dmr set countdown <<>value<>>" - narrate "<&6>Number = Seconds to countdown at start of game." - narrate "<&6>Available values are numbers > 0 " - narrate "<&6>Default is 10" } dminereset_setting_timer: type: task debug: false script: - if { - yaml id:dminereset_saves set dmr.mines.%mine%.settings.timer:%arg3% - narrate "<&6>Changing TIMER on mine <<>%mine%<>> with value: %arg3%" - inject dminereset_command_save } else { - narrate "<&6>/dmr set countdown <<>value<>>" - narrate "<&6>Number = Timer to wait for players to join." - narrate "<&6>Available values are numbers > 0 " - narrate "<&6>Default is 30" } dminereset_task_block_rollback: type: task debug: false script: - ^define mine %1% - ^if { - if { - foreach { - modifyblock } } - if { - foreach { - modifyblock m@air } } - yaml id:dminereset_saves set dmr.mines.%mine%.track:! - inject dminereset_command_save } dminereset_task_yaml_copy: type: task debug: false script: - define sourcekey %1% - define destkey %2% - if { - narrate "Source invalid for yaml copy" - queue stop } - if > 0 { - foreach { - run dminereset_task_yaml_copy def:%1%.%value%|%2%.%value% instantly } } else { - if { - foreach { - yaml id:dminereset_saves set %2%:->:%value% } } else { - yaml id:dminereset_saves set %2%: } }