diff --git a/README.md b/README.md index 97b02032..ddc0aa97 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ The game includes the mods from the default [minetest_game](https://github.com/m * admin/ * [alternode][] ([MIT][lic.alternode]) -- version: [1.3][ver.alternode] *2021-05-18* - * [cleaner][] ([MIT][lic.cleaner]) -- version: [182726e Git][ver.cleaner] *2021-07-29* + * [cleaner][] ([MIT][lic.cleaner]) -- version: [1.2][ver.cleaner] *2021-08-02* * [no_fall_damage][] ([MIT][lic.no_fall_damage]) -- version [1.0.0][ver.no_fall_damage] *2020-12-19* * [spectator_mode][] ([WTFPL][lic.spectator_mode]) -- version: [3648371 Git][ver.spectator_mode] *2020-07-15* * [whitelist][] ([MIT][lic.whitelist]) -- version: [1.1][ver.whitelist] *2021-06-09* @@ -580,7 +580,7 @@ The game includes the mods from the default [minetest_game](https://github.com/m [ver.castle_weapons]: https://github.com/minetest-mods/castle_weapons/tree/d3cf095 [ver.chatlog]: https://github.com/AntumMT/mod-chatlog/tree/v1.1 [ver.christmas]: https://github.com/TheZenKitteh/minetest-christmas/tree/d3bd872 -[ver.cleaner]: https://github.com/AntumMT/mod-cleaner/tree/182726e +[ver.cleaner]: https://github.com/AntumMT/mod-cleaner/releases/tag/v1.2 [ver.cmer]: https://github.com/AntumMT/mod-cmer/tree/2843875 [ver.cmer_chicken]: http://github.com/AntumMT/mod-cmer/tree/085706f [ver.cmer_ghost]: https://github.com/AntumMT/mod-cmer/tree/2f70906 diff --git a/mods/admin/cleaner/README.md b/mods/admin/cleaner/README.md index 970dd5bf..5a76f264 100644 --- a/mods/admin/cleaner/README.md +++ b/mods/admin/cleaner/README.md @@ -4,6 +4,8 @@ A [Minetest][] mod that can be used to remove/replace unknown entities, nodes, & items. Originally forked from [PilzAdam's ***clean*** mod][f.pilzadam]. +![screenshot](screenshot.png) + ### Licensing: - Code: [MIT](LICENSE.txt) @@ -77,7 +79,7 @@ cleaner.unsafe - [![ContentDB](https://content.minetest.net/packages/AntumDeluge/cleaner/shields/title/)][ContentDB] - [Forum](https://forum.minetest.net/viewtopic.php?t=18381) - [Git repo](https://github.com/AntumMT/mod-cleaner) -- [API](https://antummt.github.io/mod-cleaner/docs/reference) +- [Reference](https://antummt.github.io/mod-cleaner/reference) - [Changelog](changelog.txt) - [TODO](TODO.txt) diff --git a/mods/admin/cleaner/TODO.txt b/mods/admin/cleaner/TODO.txt index 74c15283..d49535a6 100644 --- a/mods/admin/cleaner/TODO.txt +++ b/mods/admin/cleaner/TODO.txt @@ -5,8 +5,7 @@ TODO: - creative - storage (chests, etc.) - add LBM when removing an item if it is a node -- update localization files - add "radius" option for pencil or "xlen", "ylen", & "zlen" options - add "xrotate" & "zrorate" modes for pencil -- fix pencil "write" mode when pointing to side of node (node gets placed below) -- add config file usage to HTML docs +- don't require "server" priv for "find_unknown_nodes" & "find_neaby_nodes" commands +- add chat command to find nodes with specified attributes diff --git a/mods/admin/cleaner/api.lua b/mods/admin/cleaner/api.lua index 5bc795cb..a8941489 100644 --- a/mods/admin/cleaner/api.lua +++ b/mods/admin/cleaner/api.lua @@ -141,9 +141,9 @@ function cleaner.register_node_replacement(src, tgt) end ---- Unsafe methods. +--- Unsafe Methods. -- --- Enabled with `cleaner.unsafe` setting. +-- Enabled with [cleaner.unsafe](settings.html#cleaner.unsafe) setting. -- -- @section unsafe @@ -153,7 +153,7 @@ if cleaner.unsafe then --- Retrieves list of ores to be removed. -- - -- @treturn table Ores to be replaced. + -- @treturn table Ores to be removed. function cleaner.get_remove_ores() return remove_ores end diff --git a/mods/admin/cleaner/changelog.txt b/mods/admin/cleaner/changelog.txt index e57265b5..debb175e 100644 --- a/mods/admin/cleaner/changelog.txt +++ b/mods/admin/cleaner/changelog.txt @@ -2,20 +2,21 @@ v1.2 ---- - added API -- added chat commands: - - remove_entities - - remove_nodes - - replace_items - - replace_nodes - - find_unknown_nodes - - replace_ores (unsafe) - added support for unregistering ores (unsafe) - added setting for enabling "unsafe" methods & commands - all types are loaded from /cleaner.json file - added localization support - added Spanish localization - added pencil tool for erasing, adding, & swapping nodes -- added "cleaner" chat command for managing pencil tool settings +- added chat commands: + - remove_entities + - remove_nodes + - replace_items + - replace_nodes + - find_unknown_nodes + - find_nearby_nodes + - remove_ores (unsafe) + - ctool (manages wielded cleaner tool settings) v1.1 ---- diff --git a/mods/admin/cleaner/chat.lua b/mods/admin/cleaner/chat.lua index ae8fbf2e..4a22126e 100644 --- a/mods/admin/cleaner/chat.lua +++ b/mods/admin/cleaner/chat.lua @@ -32,6 +32,9 @@ local param_def = { old_item = {name=S("old_item"), desc=S("Technical name of item to be replaced.")}, new_item = {name=S("new_item"), desc=S("Technical name of item to be used in place.")}, ore = {name=S("ore"), desc=S("Ore technical name.")}, + action = {name=S("action"), + desc=S('Action to execute. Can be one of "@1", "@2", or "@3".', "status", "setmode", "setnode")}, + value = {name=S("value"), desc=S('Mode or node to be set for tool (not required for "@1" action).', "status")}, } local cmd_repo = { @@ -54,6 +57,10 @@ local cmd_repo = { cmd = "find_unknown_nodes", oparams = {radius=100}, }, + near_node = { + cmd = "find_nearby_nodes", + oparams = {radius=5}, + }, item = { cmd = "replace_items", params = {"old_item", "new_item"}, @@ -62,6 +69,10 @@ local cmd_repo = { cmd = "remove_ores", params = {"ore"}, }, + tool = { + cmd = "ctool", + params = {"action", "value"}, + }, param = { missing = S("Missing parameter."), excess = S("Too many parameters."), @@ -181,11 +192,32 @@ local function format_help(cmd) end +local function check_radius(radius, pname) + local is_admin = core.check_player_privs(pname, {server=true}) + + if not is_admin and radius > 10 then + radius = 10 + return radius, S("You do not have permission to set radius that high. Reduced to @1.", radius) + end + + if radius > 100 then + radius = 100 + return radius, S("Radius is too high. Reduced to @1.", radius) + end + + return radius +end + + --- Removes nearby entities. -- -- @chatcmd remove_entities -- @param entity Entity technical name. --- @tparam[opt] int radius +-- @tparam[opt] int radius Search radius (default: 100). +-- @priv server +-- @usage +-- # remove all mobs:horse entities within a radius of 10 nodes +-- /remove_entities mobs:horse 10 core.register_chatcommand(cmd_repo.entity.cmd, { privs = {server=true}, description = S("Remove an entity from game.") .. "\n\n" @@ -209,6 +241,11 @@ core.register_chatcommand(cmd_repo.entity.cmd, { err = cmd_repo.param.mal_radius end + local radius, msg = check_radius(radius, name) + if msg then + core.chat_send_player(name, msg) + end + if err then return false, err .. "\n\n" .. format_help(cmd_repo.entity.cmd) end @@ -240,7 +277,11 @@ core.register_chatcommand(cmd_repo.entity.cmd, { -- -- @chatcmd remove_nodes -- @param node Node technical name. --- @tparam[opt] int radius +-- @tparam[opt] int radius Search radius (default: 5). +-- @priv server +-- @usage +-- # remove all default:dirt nodes within a radius of 10 +-- /remove_nodes default:dirt 10 core.register_chatcommand(cmd_repo.rem_node.cmd, { privs = {server=true}, description = S("Remove a node from game.") .. "\n\n" @@ -264,6 +305,11 @@ core.register_chatcommand(cmd_repo.rem_node.cmd, { err = cmd_repo.param.mal_radius end + local radius, msg = check_radius(radius, name) + if msg then + core.chat_send_player(name, msg) + end + if err then return false, err .. "\n\n" .. format_help(cmd_repo.rem_node.cmd) end @@ -288,6 +334,10 @@ core.register_chatcommand(cmd_repo.rem_node.cmd, { -- @chatcmd replace_items -- @param old_item Technical name of item to replace. -- @param new_item Technical name of item to be used in place. +-- @priv server +-- @usage +-- # replace default:sword_wood with default:sword_mese +-- /replace_items default:sword_wood default:sword_mese core.register_chatcommand(cmd_repo.item.cmd, { privs = {server=true}, description = S("Replace an item in game.") .. "\n\n" @@ -316,7 +366,11 @@ core.register_chatcommand(cmd_repo.item.cmd, { -- @chatcmd replace_nodes -- @param old_node Technical name of node to replace. -- @param new_node Technical name of node to be used in place. --- @tparam[opt] int radius +-- @tparam[opt] int radius Search radius (default: 5). +-- @priv server +-- @usage +-- # replace all default:dirt nodes with default:cobble within a radius of 10 +-- /replace_nodes default:dirt default:cobble 10 core.register_chatcommand(cmd_repo.rep_node.cmd, { privs = {server=true}, description = S("Replace a node in game.") .. "\n\n" @@ -342,6 +396,11 @@ core.register_chatcommand(cmd_repo.rep_node.cmd, { return false, cmd_repo.param.mal_radius .. "\n\n" .. help end + local radius, msg = check_radius(radius, name) + if msg then + core.chat_send_player(name, msg) + end + if not core.registered_nodes[tgt] then return false, S('Cannot use unknown node "@1" as replacement.', tgt) end @@ -366,7 +425,11 @@ core.register_chatcommand(cmd_repo.rep_node.cmd, { --- Checks for nearby unknown nodes. -- -- @chatcmd find_unknown_nodes --- @tparam[opt] int radius Search radius. +-- @tparam[opt] int radius Search radius (default: 100). +-- @priv server +-- @usage +-- # print names of all unknown nodes within radius of 10 +-- /find_unknown_nodes 10 core.register_chatcommand(cmd_repo.find_node.cmd, { privs = {server=true}, description = S("Find names of unknown nodes.") .. "\n\n" @@ -388,6 +451,11 @@ core.register_chatcommand(cmd_repo.find_node.cmd, { return false, cmd_repo.param.mal_radius .. "\n\n" .. help end + local radius, msg = check_radius(radius, name) + if msg then + core.chat_send_player(name, msg) + end + local ppos = core.get_player_by_name(name):get_pos() local checked_nodes = {} @@ -403,9 +471,9 @@ core.register_chatcommand(cmd_repo.find_node.cmd, { end end - local msg - if #unknown_nodes > 0 then - msg = S("Found unknown nodes: @1", table.concat(unknown_nodes, ", ")) + local node_count = #unknown_nodes + if node_count > 0 then + msg = S("Found unknown nodes: @1", node_count) .. "\n " .. table.concat(unknown_nodes, ", ") else msg = S("No unknown nodes found.") end @@ -414,10 +482,71 @@ core.register_chatcommand(cmd_repo.find_node.cmd, { end, }) - ---- Unsafe commands. +--- Finds names of nearby nodes. -- --- Enabled with `cleaner.unsafe` setting. +-- @chatcmd find_nearby_nodes +-- @tparam[opt] int radius Search radius (default: 5). +-- @priv server +-- @usage +-- # print names of all node types found within radius of 10 +-- /find_nearby_nodes 10 +core.register_chatcommand(cmd_repo.near_node.cmd, { + privs = {server=true}, + description = S("Find names of nearby nodes.") .. "\n\n" + .. format_params(cmd_repo.near_node.cmd), + params = cmd_repo.near_node.help.param_string, + func = function(name, param) + local help = format_help(cmd_repo.near_node.cmd) + + if param:find(" ") then + return false, cmd_repo.param.excess .. "\n\n" .. help + end + + local radius = cmd_repo.near_node.oparams.radius + if param and param:trim() ~= "" then + radius = tonumber(param) + end + + if not radius then + return false, cmd_repo.param.mal_radius .. "\n\n" .. help + end + + local radius, msg = check_radius(radius, name) + if msg then + core.chat_send_player(name, msg) + end + + local ppos = core.get_player_by_name(name):get_pos() + + local node_names = {} + for _, npos in ipairs(pos_list(ppos, radius)) do + local node = core.get_node_or_nil(npos) + if node and not node_names[node.name] then + node_names[node.name] = true + end + end + + local found_nodes = {} + for k, _ in pairs(node_names) do + table.insert(found_nodes, k) + end + + local msg + local node_count = #found_nodes + if node_count > 0 then + msg = S("Nearby nodes: @1", node_count) .. "\n " .. table.concat(found_nodes, ", ") + else + msg = S("No nearby nodes found.") + end + + return true, msg + end, +}) + + +--- Unsafe Commands. +-- +-- Enabled with [cleaner.unsafe](settings.html#cleaner.unsafe) setting. -- -- @section unsafe @@ -427,6 +556,12 @@ if cleaner.unsafe then -- -- @chatcmd remove_ores -- @param ore Ore technical name. + -- @priv server + -- @note This action is reverted after server restart. To make changes permanent, + -- use the [cleaner.json](config.html#cleaner.json) config. + -- @usage + -- # remove all registered ores that add default:stone_with_iron to world + -- /remove_ores default:stone_with_iron core.register_chatcommand(cmd_repo.ore.cmd, { privs = {server=true}, description = S("Remove an ore from game.") .. "\n\n" @@ -463,17 +598,24 @@ end --- @section end ---- Manages settings for wielded cleaner tool. +--- Manages settings for wielded [cleaner tool](tools.html). -- --- @chatcmd cleaner +--

Required Privileges:

+-- +-- - server +-- +-- @chatcmd ctool -- @param action Action to execute. Can be "status", "setmode", or "setnode". --- @param value Mode or node to be set for tool. -core.register_chatcommand("cleaner", { +-- @param value Mode or node to be set for tool (not required for "status" action). +-- @usage +-- # while cleaner:pencil is wielded, configure to place default:dirt node when used +-- /ctool setmode write +-- /ctool setnode default:dirt +core.register_chatcommand(cmd_repo.tool.cmd, { privs = {server=true}, description = S("Manage settings for wielded cleaner tool.") .. "\n\n" - .. S("Params:") .. "\n action: Action to execute. Can be one of \"status\", \"setmode\", or \"setnode\"." - .. "\n value: Mode or node to be set for tool.", - params = " ", + .. format_params(cmd_repo.tool.cmd), + params = cmd_repo.tool.help.param_string, func = function(name, param) local action, value = param local idx = param:find(" ") @@ -483,23 +625,25 @@ core.register_chatcommand("cleaner", { value = param[2] end + local help = format_help(cmd_repo.tool.cmd) + local player = core.get_player_by_name(name) local stack = player:get_wielded_item() local iname = aux.tool:format_name(stack) local imeta = stack:get_meta() if iname ~= "cleaner:pencil" then - return false, S("Unrecognized wielded item: @1", iname) + return false, S("Unrecognized wielded item: @1", iname) .. "\n\n" .. help end if action == "status" then - core.chat_send_player(name, iname .. ": " - .. S("mode=@1, node=@2", imeta:get_string("mode"), imeta:get_string("node"))) + core.chat_send_player(name, iname .. ": " .. S("mode") .. "=" .. imeta:get_string("mode") + .. ", " .. S("node") .. "=" .. imeta:get_string("node")) return true end if not action or not value then - return false, S("Missing parameter.") + return false, S("Missing parameter.") .. "\n\n" .. help end if action == "setmode" then @@ -507,7 +651,7 @@ core.register_chatcommand("cleaner", { elseif action == "setnode" then stack = aux.tool:set_node(stack, value, name) else - return false, S("Unrecognized action: @1", action) + return false, S("Unrecognized action: @1", action) .. "\n\n" .. help end return player:set_wielded_item(stack) diff --git a/mods/admin/cleaner/locale/cleaner.es.tr b/mods/admin/cleaner/locale/cleaner.es.tr index 37b5bcea..bbc00072 100644 --- a/mods/admin/cleaner/locale/cleaner.es.tr +++ b/mods/admin/cleaner/locale/cleaner.es.tr @@ -5,6 +5,7 @@ # chat commands entity=entidad +mode=modo node=nodo radius=radio old_item=objeto_antiguo @@ -12,6 +13,8 @@ new_item=objeto_nuevo old_node=nodo_antiguo new_node=nodo_nuevo ore=mineral +action=acción +value=valor Usage:=Uso: Params:=Parámetros: default: @1=por defecto: @1 @@ -23,11 +26,14 @@ Technical name of node to be used in place.=Nombre técnico del nodo de reemplaz Technical name of item to be replaced.=Nombre técnico del objeto reemplazado. Technical name of item to be used in place.=Nombre técnico del objeto de reemplazo. Ore technical name.=Nombre técnico de mineral. +Action to execute. Can be one of "@1", "@2", or "@3".=La acción para ejecutar. Puede ser "@1", "@2", o "@3". +Mode or node to be set for tool (not required for "@1" action).=Modo o nodo para configurar a la herramienta (no se requiere para la acción de "@1"). Remove an entity from game.=Eliminar una entidad del juego. Remove a node from game.=Eliminar un nodo del juego. Replace an item in game.=Sustituir un objecto del juego. Replace a node in game.=Sustituir un nodo del juego. -Find names of unknown nodes.=Encontrar los nombres de nodos desconocidos. +Find names of unknown nodes.=Descubrir los nombres de nodos desconocidos. +Find names of nearby nodes.=Descubrir los nombres de nodos cercanos. Remove an ore from game.=Eliminar un mineral del juego. Missing parameter.=Parámetro extraviado. Too many parameters.=Demasiados parámetros. @@ -39,6 +45,22 @@ Removed @1 nodes.=Se eliminaron @1 nodos. Removed @1 entities.=Se eliminaron @1 entidades. Found unknown nodes: @1=Se encontraron @1 nodos desconocidos. No unknown nodes found.=No se encontraron nodos desconocidos. +Nearby nodes: @1=Nodos cercanos: @1 +No nearby nodes found.=No se encontraron nodos cercanos. Ore "@1" not found, not unregistering.=No se encontró el mineral "@1", se mantiene registrado. Unregistered @1 ores (this will be undone after server restart).=Se anuló @1 minerales del registro. Success!=¡Éxito! +Manage settings for wielded cleaner tool.=Administrar a los ajustes de la herramienta cleaner empuñada. +Unrecognized wielded item: @1=Objeto empuñado desconocido: @1 +Unrecognized action: @1=Acción desconocido: @1 +You do not have permission to set radius that high. Reduced to @1.=No tienes permiso para poner al radio tan alto. Se reduce a @1. +Radius is too high. Reduced to @1.=El radio es demasiado alto. Se reduce a @1. + +# tools: +@1: mode set to: @2=@1: modo configurado para: @2 +@1: node set to: @2=@1: nodo configurado para: @2 +Modes for tool "@1" not available.=Modos para herramienta "@1" no disponibles. +You do not have permission to use this item. Missing privs: @1=No tienes permiso para usar este objeto. Privs que faltan: @1 +Unknown mode: @1=Modo desconocido: @1 +Can't place node there.=No se puede poner nodo allí. +Cannot place unknown node: @1=No se puede poner nodo desconocido: @1 diff --git a/mods/admin/cleaner/locale/template.txt b/mods/admin/cleaner/locale/template.txt index 4f818623..5373fb70 100644 --- a/mods/admin/cleaner/locale/template.txt +++ b/mods/admin/cleaner/locale/template.txt @@ -5,6 +5,7 @@ # chat commands entity= +mode= node= radius= old_item= @@ -12,6 +13,8 @@ new_item= old_node= new_node= ore= +action= +value= Usage:= Params:= default: @1= @@ -23,11 +26,14 @@ Technical name of node to be used in place.= Technical name of item to be replaced.= Technical name of item to be used in place.= Ore technical name.= +Action to execute. Can be one of "@1", "@2", or "@3".= +Mode or node to be set for tool (not required for "@1" action).= Remove an entity from game.= Remove a node from game.= Replace an item in game.= Replace a node in game.= Find names of unknown nodes.= +Find names of nearby nodes.= Remove an ore from game.= Missing parameter.= Too many parameters.= @@ -39,6 +45,22 @@ Removed @1 nodes.= Removed @1 entities.= Found unknown nodes: @1= No unknown nodes found.= +Nearby nodes: @1= +No nearby nodes found.= Ore "@1" not found, not unregistering.= Unregistered @1 ores (this will be undone after server restart).= Success!= +Manage settings for wielded cleaner tool.= +Unrecognized wielded item: @1= +Unrecognized action: @1= +You do not have permission to set radius that high. Reduced to @1.= +Radius is too high. Reduced to @1.= + +# tools: +@1: mode set to: @2= +Modes for tool "@1" not available.= +@1: node set to: @2= +You do not have permission to use this item. Missing privs: @1= +Can't place node there.= +Unknown mode: @1= +Cannot place unknown node: @1= diff --git a/mods/admin/cleaner/misc_functions.lua b/mods/admin/cleaner/misc_functions.lua index df6bfd4a..899b9812 100644 --- a/mods/admin/cleaner/misc_functions.lua +++ b/mods/admin/cleaner/misc_functions.lua @@ -98,8 +98,7 @@ local tool = { imeta:set_string("mode", mode) if pname then - core.chat_send_player(pname, iname .. ": " - .. S("mode set to: @1", imeta:get_string("mode"))) + core.chat_send_player(pname, S("@1: mode set to: @2", iname, imeta:get_string("mode"))) end local new_stack @@ -120,7 +119,7 @@ local tool = { local modes = self.modes[iname] if not modes then - return false, stack, "modes for tool \"" .. stack:get_name() .. "\" not available." + return false, stack, S('Modes for tool "@1" not available.', stack:get_name()) end local imeta = stack:get_meta() @@ -145,20 +144,21 @@ local tool = { imeta:set_string("node", node) if pname then - core.chat_send_player(pname, stack:get_name() .. ": " - .. S("node set to: @1", imeta:get_string("node"))) + core.chat_send_player(pname, S("@1: node set to: @2", stack:get_name(), imeta:get_string("node"))) end return stack end, } +local sound_handle + tool.on_use = function(stack, user, pointed_thing) if not user:is_player() then return end local pname = user:get_player_name() if not core.get_player_privs(pname).server then - core.chat_send_player(pname, S("You do not have permission to use this item. Missing privs: server")) + core.chat_send_player(pname, S("You do not have permission to use this item. Missing privs: @1", "server")) return stack end @@ -184,7 +184,7 @@ tool.on_use = function(stack, user, pointed_thing) elseif mode == "write" then local node_above = core.get_node_or_nil(pointed_thing.above) if not node_above or node_above.name == "air" then - core.place_node(pointed_thing.above, {name=new_node_name}) + core.set_node(pointed_thing.above, {name=new_node_name}) sound_handle = core.sound_play("cleaner_pencil_write", {object=user}) else core.chat_send_player(pname, S("Can't place node there.")) diff --git a/mods/admin/cleaner/mod.conf b/mods/admin/cleaner/mod.conf index a1a64722..150080dc 100644 --- a/mods/admin/cleaner/mod.conf +++ b/mods/admin/cleaner/mod.conf @@ -1,6 +1,6 @@ name = cleaner description = A mod that can be used to remove/replace unknown entities, nodes, & items. -version = 1.1 +version = 1.2 license = MIT author = PilzAdam, Jordan Irwin (AntumDeluge) min_minetest_version = 5.0 diff --git a/mods/admin/cleaner/screenshot.png b/mods/admin/cleaner/screenshot.png new file mode 100644 index 00000000..639655d7 Binary files /dev/null and b/mods/admin/cleaner/screenshot.png differ diff --git a/mods/admin/cleaner/settings.lua b/mods/admin/cleaner/settings.lua index 3729f8bd..16c2f42c 100644 --- a/mods/admin/cleaner/settings.lua +++ b/mods/admin/cleaner/settings.lua @@ -4,9 +4,10 @@ -- @topic settings ---- Enables unsafe methods. +--- Enables unsafe methods & chat commands. -- --- `cleaner.remove_ore` +-- - `cleaner.remove_ore` +-- - `/remove_ores` -- -- @setting cleaner.unsafe -- @settype bool diff --git a/mods/admin/cleaner/settingtypes.txt b/mods/admin/cleaner/settingtypes.txt index 80cca373..b5debc79 100644 --- a/mods/admin/cleaner/settingtypes.txt +++ b/mods/admin/cleaner/settingtypes.txt @@ -1,5 +1,6 @@ -# Enables unsafe methods. +# Enables unsafe methods & chat commands. # # - cleaner.remove_ore +# - /remove_ores cleaner.unsafe (Enable unsafe methods) bool false diff --git a/mods/admin/cleaner/tools.lua b/mods/admin/cleaner/tools.lua index c6c3f80f..cc1c4059 100644 --- a/mods/admin/cleaner/tools.lua +++ b/mods/admin/cleaner/tools.lua @@ -9,13 +9,11 @@ local S = core.get_translator(cleaner.modname) local aux = dofile(cleaner.modpath .. "/misc_functions.lua") -local sound_handle - --- Master Pencil -- -- @tool cleaner:pencil -- @img cleaner_pencil.png --- @privs server +-- @priv server -- @usage -- place (right-click): -- - when not pointing at a node, changes modes diff --git a/settingtypes.txt b/settingtypes.txt index 7fe5e980..c2e7e3e2 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -1644,9 +1644,10 @@ chatlog.disable (Disable chatlog) bool false [*cleaner] -# Enables unsafe methods. +# Enables unsafe methods & chat commands. # # - cleaner.remove_ore +# - /remove_ores cleaner.unsafe (Enable unsafe methods) bool false