From 1750d62d3cc9fc70a4d7dd0a7c525cfff4773992 Mon Sep 17 00:00:00 2001 From: Starbeamrainbowlabs Date: Thu, 19 May 2022 22:50:53 +0100 Subject: [PATCH] core: add register_alias command it is backwards-compatible with worldedit.register_command --- worldeditadditions_commands/aliases.lua | 16 ++++---- .../core/register_alias.lua | 40 +++++++++++++++++++ worldeditadditions_core/init.lua | 1 + 3 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 worldeditadditions_core/core/register_alias.lua diff --git a/worldeditadditions_commands/aliases.lua b/worldeditadditions_commands/aliases.lua index 3d64993..bf102f6 100644 --- a/worldeditadditions_commands/aliases.lua +++ b/worldeditadditions_commands/aliases.lua @@ -1,14 +1,16 @@ -worldedit.alias_command("smoothadv", "convolve") -worldedit.alias_command("conv", "convolve") +local wea_c = worldeditadditions_core -worldedit.alias_command("naturalise", "layers") -worldedit.alias_command("naturalize", "layers") +wea_c.register_alias("smoothadv", "convolve") +wea_c.register_alias("conv", "convolve") -worldedit.alias_command("flora", "bonemeal") +wea_c.register_alias("naturalise", "layers") +wea_c.register_alias("naturalize", "layers") + +wea_c.register_alias("flora", "bonemeal") -- Measure Tools -worldedit.alias_command("mcount", "count") -worldedit.alias_command("mfacing", "mface") +wea_c.register_alias("mcount", "count") +wea_c.register_alias("mfacing", "mface") --- Overrides to core WorldEdit commands diff --git a/worldeditadditions_core/core/register_alias.lua b/worldeditadditions_core/core/register_alias.lua new file mode 100644 index 0000000..0e448a7 --- /dev/null +++ b/worldeditadditions_core/core/register_alias.lua @@ -0,0 +1,40 @@ + +local wea_c = worldeditadditions_core + +local function register_alias(cmdname_target, cmdname_source, override) + if override == nil then override = false end + + local def_source = wea_c.fetch_command_def(cmdname_source) + + if not def_source then + minetest.log("error", "worldeditadditions_core: Failed to register alias for "..cmdname_source.." → "..cmdname_target..", as the source command doesn't exist.") + return false + end + + if wea_c.fetch_command_def(cmdname_target) and not override then + minetest.log("error", "worldeditadditions_core: Failed to register alias for "..cmdname_source.." → "..cmdname_target..", as the target command exists and override wasn't set to true.") + return false + end + + print("DEBUG ALIAS source "..cmdname_source.." target "..cmdname_target) + + if minetest.chatcommands["/"..cmdname_target] then + minetest.override_chatcommand( + "/"..cmdname_target, + minetest.chatcommands["/"..cmdname_source] + ) + else + minetest.register_chatcommand( + "/"..cmdname_target, + minetest.chatcommands["/"..cmdname_source] + ) + end + wea_c.registered_commands[cmdname_target] = wea_c.registered_commands[cmdname_source] + + if minetest.global_exists("worldedit") then + worldedit.registered_commands[cmdname_target] = worldedit.registered_commands[cmdname_source] + end +end + + +return register_alias diff --git a/worldeditadditions_core/init.lua b/worldeditadditions_core/init.lua index 9a77be7..3ce5a68 100644 --- a/worldeditadditions_core/init.lua +++ b/worldeditadditions_core/init.lua @@ -25,6 +25,7 @@ worldeditadditions_core = { local wea_c = worldeditadditions_core wea_c.register_command = dofile(modpath.."/core/register_command.lua") wea_c.fetch_command_def = dofile(modpath.."/core/fetch_command_def.lua") +wea_c.register_alias = dofile(modpath.."/core/register_alias.lua") -- Initialise WorldEdit stuff if the WorldEdit mod is not present