Update cleaner mod to v1.2...
https://github.com/AntumMT/mod-cleaner/releases/tag/v1.2
This commit is contained in:
parent
09b94a0279
commit
6904b8382a
@ -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
|
||||
|
@ -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].
|
||||
|
||||

|
||||
|
||||
### Licensing:
|
||||
|
||||
- Code: [MIT](LICENSE.txt)
|
||||
@ -77,7 +79,7 @@ cleaner.unsafe
|
||||
- [][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)
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 <world_path>/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
|
||||
----
|
||||
|
@ -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
|
||||
-- <h3>Required Privileges:</h3>
|
||||
--
|
||||
-- - 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 = "<action> <value>",
|
||||
.. 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)
|
||||
|
@ -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
|
||||
|
@ -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=
|
||||
|
@ -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."))
|
||||
|
@ -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
|
||||
|
BIN
mods/admin/cleaner/screenshot.png
Normal file
BIN
mods/admin/cleaner/screenshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 183 KiB |
@ -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
|
||||
|
@ -1,5 +1,6 @@
|
||||
|
||||
# Enables unsafe methods.
|
||||
# Enables unsafe methods & chat commands.
|
||||
#
|
||||
# - cleaner.remove_ore
|
||||
# - /remove_ores
|
||||
cleaner.unsafe (Enable unsafe methods) bool false
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user