Added wrapper for commands
This commit is contained in:
parent
e2e1657b65
commit
c0db2e3301
@ -182,7 +182,7 @@ function better_commands.parse_selector(selector_data, context, require_one)
|
|||||||
if selector_data[3]:sub(1,1) ~= "@" then
|
if selector_data[3]:sub(1,1) ~= "@" then
|
||||||
local player = minetest.get_player_by_name(selector_data[3])
|
local player = minetest.get_player_by_name(selector_data[3])
|
||||||
if not player then
|
if not player then
|
||||||
return nil, S("Player @1 not found", selector_data[3])
|
return nil, S("No player was found")
|
||||||
else
|
else
|
||||||
return {player}
|
return {player}
|
||||||
end
|
end
|
||||||
@ -247,19 +247,19 @@ function better_commands.parse_selector(selector_data, context, require_one)
|
|||||||
for _, arg in ipairs(arg_table) do
|
for _, arg in ipairs(arg_table) do
|
||||||
local key, value = unpack(arg)
|
local key, value = unpack(arg)
|
||||||
if better_commands.supported_keys[key] == nil then
|
if better_commands.supported_keys[key] == nil then
|
||||||
return nil, S("Invalid key: @1", key)
|
return nil, S("Unknown option '@1'", key)
|
||||||
elseif key == "x" or key == "y" or key == "z" then
|
elseif key == "x" or key == "y" or key == "z" then
|
||||||
if checked[key] then
|
if checked[key] then
|
||||||
return nil, S("Duplicate key: @1", key)
|
return nil, S("Duplicate option '@1'", key)
|
||||||
end
|
end
|
||||||
if value:sub(1,1) == "~" then
|
if value:sub(1,1) == "!" then
|
||||||
value = value:sub(2,-1)
|
value = value:sub(2,-1)
|
||||||
if value == "" then value = 0 end
|
if value == "" then value = 0 end
|
||||||
end
|
end
|
||||||
checked[key] = true
|
checked[key] = true
|
||||||
pos[key] = tonumber(value)
|
pos[key] = tonumber(value)
|
||||||
if not pos[key] then
|
if not pos[key] then
|
||||||
return nil, S("Invalid value for @1", key)
|
return nil, S("Expected number for option '@1'", key)
|
||||||
end
|
end
|
||||||
checked[key] = true
|
checked[key] = true
|
||||||
elseif key == "sort" then
|
elseif key == "sort" then
|
||||||
@ -288,7 +288,7 @@ function better_commands.parse_selector(selector_data, context, require_one)
|
|||||||
local key, value = unpack(arg)
|
local key, value = unpack(arg)
|
||||||
if better_commands.supported_keys[key] == true then
|
if better_commands.supported_keys[key] == true then
|
||||||
if checked[key] then
|
if checked[key] then
|
||||||
return nil, S("Duplicate key: @1", key)
|
return nil, S("Duplicate option '@1'", key)
|
||||||
end
|
end
|
||||||
checked[key] = true
|
checked[key] = true
|
||||||
end
|
end
|
||||||
@ -315,7 +315,7 @@ function better_commands.parse_selector(selector_data, context, require_one)
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
if checked.type then
|
if checked.type then
|
||||||
return nil, S("Duplicate key: @1", key)
|
return nil, S("Duplicate option '@1'", key)
|
||||||
end
|
end
|
||||||
checked.type = true
|
checked.type = true
|
||||||
if not type_table[value] then
|
if not type_table[value] then
|
||||||
@ -330,7 +330,7 @@ function better_commands.parse_selector(selector_data, context, require_one)
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
if checked.name then
|
if checked.name then
|
||||||
return nil, S("Duplicate key: @1", key)
|
return nil, S("Duplicate option '@1'", key)
|
||||||
end
|
end
|
||||||
checked.name = true
|
checked.name = true
|
||||||
if obj_name ~= value then
|
if obj_name ~= value then
|
||||||
@ -339,11 +339,11 @@ function better_commands.parse_selector(selector_data, context, require_one)
|
|||||||
end
|
end
|
||||||
elseif key == "r" then
|
elseif key == "r" then
|
||||||
value = tonumber(value)
|
value = tonumber(value)
|
||||||
if not value then return nil, S("@1 must be a number", key) end
|
if not value then return nil, S("Expected number for option '@1'", key) end
|
||||||
matches = vector.distance(obj:get_pos(), pos) <= value
|
matches = vector.distance(obj:get_pos(), pos) <= value
|
||||||
elseif key == "rm" then
|
elseif key == "rm" then
|
||||||
value = tonumber(value)
|
value = tonumber(value)
|
||||||
if not value then return nil, S("@1 must be a number", key) end
|
if not value then return nil, S("Expected number for option '@1'", key) end
|
||||||
matches = vector.distance(obj:get_pos(), pos) >= value
|
matches = vector.distance(obj:get_pos(), pos) >= value
|
||||||
elseif key == "level" then
|
elseif key == "level" then
|
||||||
if not (obj.is_player and obj:is_player()) then
|
if not (obj.is_player and obj:is_player()) then
|
||||||
@ -357,7 +357,7 @@ function better_commands.parse_selector(selector_data, context, require_one)
|
|||||||
end
|
end
|
||||||
elseif key == "l" then
|
elseif key == "l" then
|
||||||
value = tonumber(value)
|
value = tonumber(value)
|
||||||
if not value then return nil, S("@1 must be a number", key) end
|
if not value then return nil, S("Expected number for option '@1'", key) end
|
||||||
if not (obj.is_player and obj:is_player()) then
|
if not (obj.is_player and obj:is_player()) then
|
||||||
matches = false
|
matches = false
|
||||||
else
|
else
|
||||||
@ -367,7 +367,7 @@ function better_commands.parse_selector(selector_data, context, require_one)
|
|||||||
end
|
end
|
||||||
elseif key == "lm" then
|
elseif key == "lm" then
|
||||||
value = tonumber(value)
|
value = tonumber(value)
|
||||||
if not value then return nil, S("@1 must be a number", key) end
|
if not value then return nil, S("Expected number for option '@1'", key) end
|
||||||
if not (obj.is_player and obj:is_player()) then
|
if not (obj.is_player and obj:is_player()) then
|
||||||
matches = false
|
matches = false
|
||||||
else
|
else
|
||||||
@ -386,10 +386,10 @@ function better_commands.parse_selector(selector_data, context, require_one)
|
|||||||
local gamemode = better_commands.gamemode_aliases[value] or value
|
local gamemode = better_commands.gamemode_aliases[value] or value
|
||||||
if better_commands.mcl then
|
if better_commands.mcl then
|
||||||
if table.indexof(mcl_gamemode.gamemodes, gamemode) == -1 then
|
if table.indexof(mcl_gamemode.gamemodes, gamemode) == -1 then
|
||||||
return nil, S("Invalid gamemode @1", gamemode)
|
return nil, S("Unknown game mode: @1", gamemode)
|
||||||
end
|
end
|
||||||
elseif gamemode ~= "creative" and gamemode ~= "survival" then
|
elseif gamemode ~= "creative" and gamemode ~= "survival" then
|
||||||
return nil, S("Invalid gamemode @1", gamemode)
|
return nil, S("Unknown game mode: @1", gamemode)
|
||||||
end
|
end
|
||||||
matches = better_commands.get_gamemode(obj) == gamemode
|
matches = better_commands.get_gamemode(obj) == gamemode
|
||||||
end
|
end
|
||||||
@ -444,9 +444,6 @@ end
|
|||||||
---@return string? err
|
---@return string? err
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
function better_commands.parse_pos(data, start, context)
|
function better_commands.parse_pos(data, start, context)
|
||||||
if not context then
|
|
||||||
return nil, S("Missing context")
|
|
||||||
end
|
|
||||||
local axes = {"x","y","z"}
|
local axes = {"x","y","z"}
|
||||||
local result = table.copy(context.pos)
|
local result = table.copy(context.pos)
|
||||||
local look
|
local look
|
||||||
@ -474,7 +471,7 @@ function better_commands.parse_pos(data, start, context)
|
|||||||
result[axes[i+1]] = tonumber(coordinate:sub(2,-1)) or 0
|
result[axes[i+1]] = tonumber(coordinate:sub(2,-1)) or 0
|
||||||
look = true
|
look = true
|
||||||
else
|
else
|
||||||
return nil, S("Invalid coordinate: @1", coordinate)
|
return nil, S("Invalid coordinate '@1'", coordinate)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if look then
|
if look then
|
||||||
@ -500,7 +497,7 @@ end
|
|||||||
---@nodiscard
|
---@nodiscard
|
||||||
function better_commands.parse_item(item_data, ignore_count)
|
function better_commands.parse_item(item_data, ignore_count)
|
||||||
if not better_commands.handle_alias(item_data[3]) then
|
if not better_commands.handle_alias(item_data[3]) then
|
||||||
return nil, S("Invalid item: @1", item_data[3])
|
return nil, S("Invalid item '@1'", item_data[3])
|
||||||
end
|
end
|
||||||
if item_data.type == "item" and not item_data.extra_data then
|
if item_data.type == "item" and not item_data.extra_data then
|
||||||
local stack = ItemStack(item_data[3])
|
local stack = ItemStack(item_data[3])
|
||||||
@ -521,7 +518,6 @@ function better_commands.parse_item(item_data, ignore_count)
|
|||||||
if arg_table then
|
if arg_table then
|
||||||
local meta = stack:get_meta()
|
local meta = stack:get_meta()
|
||||||
for key, value in pairs(arg_table) do
|
for key, value in pairs(arg_table) do
|
||||||
minetest.log(S("@1 = @2", key, value))
|
|
||||||
if key == "wear" then
|
if key == "wear" then
|
||||||
stack:set_wear(tonumber(value) or 0)
|
stack:set_wear(tonumber(value) or 0)
|
||||||
else
|
else
|
||||||
@ -535,7 +531,7 @@ function better_commands.parse_item(item_data, ignore_count)
|
|||||||
stack:set_wear(tonumber(item_data[6]) or stack:get_wear())
|
stack:set_wear(tonumber(item_data[6]) or stack:get_wear())
|
||||||
return stack
|
return stack
|
||||||
end
|
end
|
||||||
return nil, S("Invalid item: @1", item_data[3])
|
return nil, S("Invalid item: '@1'", item_data[3])
|
||||||
end
|
end
|
||||||
|
|
||||||
---Parses node data, returns node and metadata table
|
---Parses node data, returns node and metadata table
|
||||||
@ -550,10 +546,10 @@ function better_commands.parse_node(item_data)
|
|||||||
end
|
end
|
||||||
local itemstring = better_commands.handle_alias(item_data[3])
|
local itemstring = better_commands.handle_alias(item_data[3])
|
||||||
if not itemstring then
|
if not itemstring then
|
||||||
return nil, nil, S("Invalid item: @1", item_data[3])
|
return nil, nil, S("Unknown node '@1'", item_data[3])
|
||||||
end
|
end
|
||||||
if not minetest.registered_nodes[itemstring] then
|
if not minetest.registered_nodes[itemstring] then
|
||||||
return nil, nil, S("Not a node: @1", itemstring)
|
return nil, nil, S("'@1' is not a node", itemstring)
|
||||||
end
|
end
|
||||||
if item_data.type == "item" and not item_data.extra_data then
|
if item_data.type == "item" and not item_data.extra_data then
|
||||||
return {name = itemstring}
|
return {name = itemstring}
|
||||||
@ -573,7 +569,7 @@ function better_commands.parse_node(item_data)
|
|||||||
end
|
end
|
||||||
return node_table, meta_table
|
return node_table, meta_table
|
||||||
end
|
end
|
||||||
return nil, nil, S("Invalid item: @1", item_data[3])
|
return nil, nil, S("Invalid item '@1'", item_data[3])
|
||||||
end
|
end
|
||||||
|
|
||||||
---Parses a time string and returns a time (between 0 and 1)
|
---Parses a time string and returns a time (between 0 and 1)
|
||||||
@ -597,7 +593,7 @@ function better_commands.parse_time_string(time, absolute)
|
|||||||
if unit == "" then unit = "t" end
|
if unit == "" then unit = "t" end
|
||||||
amount = tonumber(amount)
|
amount = tonumber(amount)
|
||||||
end
|
end
|
||||||
-- Don't think it's even possible to be negative but just in case
|
-- The pattern shouldn't let through any negative numbers... but just in case
|
||||||
if amount < 0 then return nil, S("Amount must not be negative") end
|
if amount < 0 then return nil, S("Amount must not be negative") end
|
||||||
if unit == "s" then
|
if unit == "s" then
|
||||||
local second_multiplier = tonumber(minetest.settings:get("time_speed")) or 72
|
local second_multiplier = tonumber(minetest.settings:get("time_speed")) or 72
|
||||||
@ -605,7 +601,7 @@ function better_commands.parse_time_string(time, absolute)
|
|||||||
elseif unit == "d" then
|
elseif unit == "d" then
|
||||||
amount = amount * 24000
|
amount = amount * 24000
|
||||||
elseif unit ~= "t" then
|
elseif unit ~= "t" then
|
||||||
return nil, S("Unit must be either t (default), s, or d, not @1", unit)
|
return nil, S("Invalid unit '@1'", unit)
|
||||||
end
|
end
|
||||||
|
|
||||||
if not absolute then
|
if not absolute then
|
||||||
@ -647,7 +643,7 @@ function better_commands.expand_selectors(str, split_param, index, context)
|
|||||||
end
|
end
|
||||||
for j, obj in ipairs(targets) do
|
for j, obj in ipairs(targets) do
|
||||||
if j > 1 then next_part = next_part.." " end
|
if j > 1 then next_part = next_part.." " end
|
||||||
if not obj.is_player then
|
if not obj.is_player then -- this should only happen with @s
|
||||||
next_part = next_part..S("Command Block")
|
next_part = next_part..S("Command Block")
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
@ -13,7 +13,7 @@ function better_commands.get_scoreboard_names(selector, context, objective, requ
|
|||||||
local result = {}
|
local result = {}
|
||||||
local objectives = better_commands.scoreboard.objectives
|
local objectives = better_commands.scoreboard.objectives
|
||||||
if objective and not objectives[objective] then
|
if objective and not objectives[objective] then
|
||||||
return nil, S("Invalid objective: @1", objective)
|
return nil, S("Invalid objective '@1'", objective)
|
||||||
end
|
end
|
||||||
if selector[3] == "*" then
|
if selector[3] == "*" then
|
||||||
if objective then
|
if objective then
|
||||||
|
@ -28,6 +28,8 @@ Initial release. Missing *lots* of commands, several `execute` subcommands, lots
|
|||||||
* Added `/teammsg` command
|
* Added `/teammsg` command
|
||||||
* Added `/gamerule` and `/changesetting` commands
|
* Added `/gamerule` and `/changesetting` commands
|
||||||
* Command results are now shown to other players as well, unless `better_commands.send_command_feedback` is disabled
|
* Command results are now shown to other players as well, unless `better_commands.send_command_feedback` is disabled
|
||||||
|
* Error messages are now red
|
||||||
|
* Command outputs now match Minecraft's
|
||||||
### Bugfixes
|
### Bugfixes
|
||||||
* Fixed a bug with the `/kill` command (it should work now).
|
* Fixed a bug with the `/kill` command (it should work now).
|
||||||
* The `rm`/`r` selector arguments now actually treat their values as numbers (not strings), and are now inclusive as intended.
|
* The `rm`/`r` selector arguments now actually treat their values as numbers (not strings), and are now inclusive as intended.
|
||||||
|
@ -6,9 +6,6 @@ better_commands.register_command("ability", {
|
|||||||
description = S("Sets <priv> of <player> to [value] (true/false). If [value] is not supplied, returns the existing value of <priv>"),
|
description = S("Sets <priv> of <player> to [value] (true/false). If [value] is not supplied, returns the existing value of <priv>"),
|
||||||
privs = {privs = true},
|
privs = {privs = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not split_param[1] then
|
if not split_param[1] then
|
||||||
return false, nil, 0
|
return false, nil, 0
|
||||||
@ -46,12 +43,12 @@ better_commands.register_command("ability", {
|
|||||||
if minetest.registered_privileges[priv] then
|
if minetest.registered_privileges[priv] then
|
||||||
return true, S("@1 = @2", priv, tostring(privs[priv])), 1
|
return true, S("@1 = @2", priv, tostring(privs[priv])), 1
|
||||||
else
|
else
|
||||||
return false, minetest.colorize("red", S("Invalid privilege: @1", priv)), 0
|
return false, minetest.colorize("red", S("Invalid privilege '@1'", priv)), 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if not minetest.registered_privileges[priv] then
|
if not minetest.registered_privileges[priv] then
|
||||||
return false, minetest.colorize("red", S("Invalid privilege: @1", priv)), 0
|
return false, minetest.colorize("red", S("Invalid privilege '@1'", priv)), 0
|
||||||
else
|
else
|
||||||
if set == "true" then
|
if set == "true" then
|
||||||
privs[priv] = true
|
privs[priv] = true
|
||||||
|
@ -3,12 +3,9 @@ local S = minetest.get_translator(minetest.get_current_modname())
|
|||||||
|
|
||||||
better_commands.register_command("say", {
|
better_commands.register_command("say", {
|
||||||
params = S("<message>"),
|
params = S("<message>"),
|
||||||
description = S("Says <message> to all players (which can include selectors such as @@a if you have the server priv)"),
|
description = S("Says <message> to all players (which can include selectors such as @@a if you have the 'server' priv)"),
|
||||||
privs = {shout = true},
|
privs = {shout = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not split_param[1] then return false, nil, 0 end
|
if not split_param[1] then return false, nil, 0 end
|
||||||
local message
|
local message
|
||||||
@ -26,12 +23,9 @@ better_commands.register_command("say", {
|
|||||||
|
|
||||||
better_commands.register_command("msg", {
|
better_commands.register_command("msg", {
|
||||||
params = S("<target> <message>"),
|
params = S("<target> <message>"),
|
||||||
description = S("Sends <message> privately to <target> (which can include selectors like @@a if you have the server priv)"),
|
description = S("Sends <message> privately to <target> (which can include selectors like @@a if you have the 'server' priv)"),
|
||||||
privs = {shout = true},
|
privs = {shout = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not split_param[1] and split_param[2] then
|
if not split_param[1] and split_param[2] then
|
||||||
return false, nil, 0
|
return false, nil, 0
|
||||||
@ -65,13 +59,10 @@ better_commands.register_command_alias("w", "msg")
|
|||||||
better_commands.register_command_alias("tell", "msg")
|
better_commands.register_command_alias("tell", "msg")
|
||||||
|
|
||||||
better_commands.register_command("me", {
|
better_commands.register_command("me", {
|
||||||
description = S("Broadcasts a message about yourself (which can include selectors like @@a if you have the server priv)"),
|
description = S("Broadcasts a message about yourself (which can include selectors like @@a if you have the 'server' priv)"),
|
||||||
params = S("<action>"),
|
params = S("<action>"),
|
||||||
privs = {shout = true},
|
privs = {shout = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not split_param[1] then return false, nil, 0 end
|
if not split_param[1] then return false, nil, 0 end
|
||||||
local message
|
local message
|
||||||
@ -89,12 +80,9 @@ better_commands.register_command("me", {
|
|||||||
|
|
||||||
better_commands.register_command("teammsg", {
|
better_commands.register_command("teammsg", {
|
||||||
params = S("<message>"),
|
params = S("<message>"),
|
||||||
description = S("Sends <message> privately to all team members (which can include selectors like @@a if you have the server priv)"),
|
description = S("Sends <message> privately to all team members (which can include selectors like @@a if you have the 'server' priv)"),
|
||||||
privs = {shout = true},
|
privs = {shout = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not split_param[1] then
|
if not split_param[1] then
|
||||||
return false, nil, 0
|
return false, nil, 0
|
||||||
|
@ -5,8 +5,6 @@ better_commands.register_command("clear", {
|
|||||||
privs = { server = true },
|
privs = { server = true },
|
||||||
params = S("[targets] [items] [maxCount]"),
|
params = S("[targets] [items] [maxCount]"),
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
local selector = split_param[1]
|
local selector = split_param[1]
|
||||||
local targets, err
|
local targets, err
|
||||||
|
@ -6,9 +6,6 @@ better_commands.register_command("bc", {
|
|||||||
description = S("Runs any Better Commands command, so Better Commands don't have to override existing commands"),
|
description = S("Runs any Better Commands command, so Better Commands don't have to override existing commands"),
|
||||||
privs = {},
|
privs = {},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local command, command_param = param:match("^%/?([%S]+)%s*(.-)$")
|
local command, command_param = param:match("^%/?([%S]+)%s*(.-)$")
|
||||||
local def = better_commands.commands[command]
|
local def = better_commands.commands[command]
|
||||||
if def then
|
if def then
|
||||||
@ -31,9 +28,6 @@ better_commands.register_command("old", {
|
|||||||
description = S("Runs any command that Better Commands has overridden"),
|
description = S("Runs any command that Better Commands has overridden"),
|
||||||
privs = {},
|
privs = {},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local command, command_param = param:match("^%/?([%S]+)%s*(.-)$")
|
local command, command_param = param:match("^%/?([%S]+)%s*(.-)$")
|
||||||
local def = better_commands.old_commands[command]
|
local def = better_commands.old_commands[command]
|
||||||
if def then
|
if def then
|
||||||
|
@ -291,9 +291,6 @@ better_commands.register_command("execute", {
|
|||||||
description = S("Run any Better Command (not other commands) after changing the context"),
|
description = S("Run any Better Command (not other commands) after changing the context"),
|
||||||
privs = {server = true, ban = true, privs = true},
|
privs = {server = true, ban = true, privs = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not split_param[1] then return false, nil, 0 end
|
if not split_param[1] then return false, nil, 0 end
|
||||||
local branch = 1
|
local branch = 1
|
||||||
|
@ -14,9 +14,6 @@ better_commands.register_command("gamemode", {
|
|||||||
params = S("<gamemode> [player]"),
|
params = S("<gamemode> [player]"),
|
||||||
privs = {server = true},
|
privs = {server = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param, err = better_commands.parse_params(param)
|
local split_param, err = better_commands.parse_params(param)
|
||||||
if err then return false, minetest.colorize("red", err), 0 end
|
if err then return false, minetest.colorize("red", err), 0 end
|
||||||
local gamemode = split_param[1] and split_param[1][3]
|
local gamemode = split_param[1] and split_param[1][3]
|
||||||
|
@ -46,9 +46,6 @@ better_commands.register_command("give", {
|
|||||||
description = S("Gives [count] of <item> to <target>"),
|
description = S("Gives [count] of <item> to <target>"),
|
||||||
privs = {server = true},
|
privs = {server = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not (split_param[1] and split_param[2]) then
|
if not (split_param[1] and split_param[2]) then
|
||||||
return false, nil, 0
|
return false, nil, 0
|
||||||
|
@ -6,9 +6,6 @@ better_commands.register_command("kill", {
|
|||||||
description = S("Kills [target] or self"),
|
description = S("Kills [target] or self"),
|
||||||
privs = {server = true},
|
privs = {server = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
if param == "" then param = "@s" end
|
if param == "" then param = "@s" end
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
local targets, err = better_commands.parse_selector(split_param[1], context)
|
local targets, err = better_commands.parse_selector(split_param[1], context)
|
||||||
|
@ -6,8 +6,6 @@ better_commands.register_command("playsound", {
|
|||||||
description = S("Plays a sound"),
|
description = S("Plays a sound"),
|
||||||
privs = {server = true},
|
privs = {server = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not (split_param[1] and split_param[2]) then
|
if not (split_param[1] and split_param[2]) then
|
||||||
return false, nil, 0
|
return false, nil, 0
|
||||||
|
@ -20,8 +20,6 @@ better_commands.register_command("scoreboard", {
|
|||||||
description = S("Manupulates the scoreboard"),
|
description = S("Manupulates the scoreboard"),
|
||||||
privs = {server = true},
|
privs = {server = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not (split_param[1] and split_param[2]) then
|
if not (split_param[1] and split_param[2]) then
|
||||||
return false, minetest.colorize("red", S("Missing arguments")), 0
|
return false, minetest.colorize("red", S("Missing arguments")), 0
|
||||||
@ -581,9 +579,6 @@ better_commands.register_command("trigger", {
|
|||||||
privs = {},
|
privs = {},
|
||||||
param = "<objective> [add|set <value>]",
|
param = "<objective> [add|set <value>]",
|
||||||
func = function (name, param, context)
|
func = function (name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
if not (context.executor.is_player and context.executor:is_player()) then
|
if not (context.executor.is_player and context.executor:is_player()) then
|
||||||
return false, minetest.colorize("red", S("/trigger can only be used by players")), 0
|
return false, minetest.colorize("red", S("/trigger can only be used by players")), 0
|
||||||
end
|
end
|
||||||
|
@ -5,9 +5,6 @@ better_commands.register_command("setblock", {
|
|||||||
params = S("<pos> <block> [keep|replace]"),
|
params = S("<pos> <block> [keep|replace]"),
|
||||||
description = S("Places <block> at <pos>. If keep, only replace air"),
|
description = S("Places <block> at <pos>. If keep, only replace air"),
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not split_param[1] and split_param[2] and split_param[3] and split_param[4] then
|
if not split_param[1] and split_param[2] and split_param[3] and split_param[4] then
|
||||||
return false, nil, 0
|
return false, nil, 0
|
||||||
|
@ -6,8 +6,6 @@ better_commands.register_command("gamerule", {
|
|||||||
params = S("<setting> [value]"),
|
params = S("<setting> [value]"),
|
||||||
privs = {server = true},
|
privs = {server = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not split_param[1] then return false, nil, 0 end
|
if not split_param[1] then return false, nil, 0 end
|
||||||
local setting = split_param[1][3]
|
local setting = split_param[1][3]
|
||||||
|
@ -5,9 +5,6 @@ better_commands.register_command("spawnpoint", {
|
|||||||
privs = {server = true},
|
privs = {server = true},
|
||||||
params = S("[targets]"),
|
params = S("[targets]"),
|
||||||
func = function (name, param, context)
|
func = function (name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param, err = better_commands.parse_params(param)
|
local split_param, err = better_commands.parse_params(param)
|
||||||
if err then return false, minetest.colorize("red", err), 0 end
|
if err then return false, minetest.colorize("red", err), 0 end
|
||||||
local selector = split_param[1]
|
local selector = split_param[1]
|
||||||
@ -46,9 +43,6 @@ better_commands.register_command("clearspawnpoint", {
|
|||||||
privs = {server = true},
|
privs = {server = true},
|
||||||
params = S("[targets]"),
|
params = S("[targets]"),
|
||||||
func = function (name, param, context)
|
func = function (name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param, err = better_commands.parse_params(param)
|
local split_param, err = better_commands.parse_params(param)
|
||||||
if err then return false, minetest.colorize("red", err), 0 end
|
if err then return false, minetest.colorize("red", err), 0 end
|
||||||
local selector = split_param[1]
|
local selector = split_param[1]
|
||||||
|
@ -6,9 +6,6 @@ better_commands.register_command("summon", {
|
|||||||
params = S("<entity> [pos] [ (<yRot> [xRot]) | (facing <entity>) ])"),
|
params = S("<entity> [pos] [ (<yRot> [xRot]) | (facing <entity>) ])"),
|
||||||
privs = {server = true},
|
privs = {server = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
local entity = split_param[1]
|
local entity = split_param[1]
|
||||||
if not entity then return false, minetest.colorize("red", S("Missing entity")), 0 end
|
if not entity then return false, minetest.colorize("red", S("Missing entity")), 0 end
|
||||||
|
@ -6,9 +6,6 @@ better_commands.register_command("team", {
|
|||||||
description = S("Controls teams"),
|
description = S("Controls teams"),
|
||||||
privs = {server = true},
|
privs = {server = true},
|
||||||
func = function (name, param, context)
|
func = function (name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param, err = better_commands.parse_params(param)
|
local split_param, err = better_commands.parse_params(param)
|
||||||
if err then return false, minetest.colorize("red", err), 0 end
|
if err then return false, minetest.colorize("red", err), 0 end
|
||||||
if not split_param[1] then return false, minetest.colorize("red", S("Missing subcommand")), 0 end
|
if not split_param[1] then return false, minetest.colorize("red", S("Missing subcommand")), 0 end
|
||||||
|
@ -7,9 +7,6 @@ better_commands.register_command("teleport", {
|
|||||||
description = S("Teleports and rotates things"),
|
description = S("Teleports and rotates things"),
|
||||||
privs = {server = true},
|
privs = {server = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not split_param[1] then return false, nil, 0 end
|
if not split_param[1] then return false, nil, 0 end
|
||||||
if split_param[1].type == "selector" then
|
if split_param[1].type == "selector" then
|
||||||
|
@ -15,9 +15,6 @@ better_commands.register_command("time", {
|
|||||||
description = S("Sets or gets the time"),
|
description = S("Sets or gets the time"),
|
||||||
privs = {settime = true, server = true},
|
privs = {settime = true, server = true},
|
||||||
func = function(name, param, context)
|
func = function(name, param, context)
|
||||||
context = better_commands.complete_context(name, context)
|
|
||||||
if not context then return false, minetest.colorize("red", S("Missing context")), 0 end
|
|
||||||
if not context.executor then return false, minetest.colorize("red", S("Missing executor")), 0 end
|
|
||||||
local split_param = better_commands.parse_params(param)
|
local split_param = better_commands.parse_params(param)
|
||||||
if not (split_param[1] and split_param[2]) then return false, nil, 0 end
|
if not (split_param[1] and split_param[2]) then return false, nil, 0 end
|
||||||
local action = split_param[1][3]:lower()
|
local action = split_param[1][3]:lower()
|
||||||
|
@ -1,402 +0,0 @@
|
|||||||
# textdomain: better_commands
|
|
||||||
Unknown Falling Node=
|
|
||||||
Falling @1=
|
|
||||||
Command Block=
|
|
||||||
???=
|
|
||||||
Player @1 not found=
|
|
||||||
Invalid key: @1=
|
|
||||||
Duplicate key: @1=
|
|
||||||
Invalid value for @1=
|
|
||||||
Only 1 of keys c and limit can exist=
|
|
||||||
@1 must be a non-zero integer=
|
|
||||||
@1 must be a number=
|
|
||||||
Only 1 of keys m and gamemode can exist=
|
|
||||||
Multiple matching entities found=
|
|
||||||
Missing coordinate=
|
|
||||||
Cannot mix local and global coordinates=
|
|
||||||
Invalid coordinate: @1=
|
|
||||||
Invalid item: @1=
|
|
||||||
Invalid item=
|
|
||||||
Not a node: @1=
|
|
||||||
Invalid amount=
|
|
||||||
Amount must not be negative=
|
|
||||||
Unit must be either t (default), s, or d, not @1=
|
|
||||||
Missing context=
|
|
||||||
No entity was found=
|
|
||||||
@1 @= @2=
|
|
||||||
Invalid gamemode @1=
|
|
||||||
No targets found=
|
|
||||||
Multiple targets found=
|
|
||||||
Invalid objective: @1=
|
|
||||||
<player> <priv> [value]=
|
|
||||||
Sets <priv> of <player> to [value] (true/false). If [value] is not supplied, returns the existing value of <priv>=
|
|
||||||
[value] must be true or false (or missing), not '@1'=
|
|
||||||
Invalid privilege: @1=
|
|
||||||
@1 privilege @2 by @3=
|
|
||||||
@1 privilege @2 for @3=
|
|
||||||
Missing executor=
|
|
||||||
<message>=
|
|
||||||
Says <message> to all players (which can include selectors such as @@a if you have the server priv)=
|
|
||||||
<target> <message>=
|
|
||||||
Sends <message> privately to <target> (which can include selectors like @@a if you have the server priv)=
|
|
||||||
@1 whispers to you: =
|
|
||||||
You whisper to @1: =
|
|
||||||
Broadcasts a message about yourself (which can include selectors like @@a if you have the server priv)=
|
|
||||||
<action>=
|
|
||||||
Sends <message> privately to all team members (which can include selectors like @@a if you have the server priv)=
|
|
||||||
An entity is required to run this command here=
|
|
||||||
You must be on a team to message your team=
|
|
||||||
[@1] <@2> =
|
|
||||||
Clears player inventories=
|
|
||||||
[targets] [items] [maxCount]=
|
|
||||||
maxCount must be a number=
|
|
||||||
No items were found on player @1=
|
|
||||||
Found @1 matching items(s) on player @2=
|
|
||||||
Removed all items from player @1=
|
|
||||||
Removed @1 item(s) from player @2=
|
|
||||||
No items were found on @1 players=
|
|
||||||
Found @1 matching items(s) on @2 players=
|
|
||||||
Removed all items from @1 players=
|
|
||||||
Removed @1 items from @2 players=
|
|
||||||
No player was found=
|
|
||||||
<command data>=
|
|
||||||
Runs any Better Commands command, so Better Commands don't have to override existing commands=
|
|
||||||
You don't have permission to run this command (missing privileges: @1)=
|
|
||||||
Invalid command: @1=
|
|
||||||
Runs any command that Better Commands has overridden=
|
|
||||||
Missing argument for subcommand @1=
|
|
||||||
Invalid swizzle, expected combination of 'x', 'y', and 'z'=
|
|
||||||
Invalid entity anchor position @1=
|
|
||||||
Invalid target: @1=
|
|
||||||
Invalid argument for @1=
|
|
||||||
Invalid argument for rotated=
|
|
||||||
Missing argument(s)) for rotated=
|
|
||||||
Missing command=
|
|
||||||
Invalid command or privs: @1=
|
|
||||||
<align|anchored|as|at|facing|positioned|rotated|run> ...=
|
|
||||||
Run any Better Command (not other commands) after changing the context=
|
|
||||||
Invalid subcommand: @1=
|
|
||||||
Successfully executed @1 times=
|
|
||||||
Sets a player's gamemode=
|
|
||||||
<gamemode> [player]=
|
|
||||||
Missing gamemode=
|
|
||||||
Set own gamemode to @1=
|
|
||||||
Set gamemode of @1 to @2=
|
|
||||||
Set gamemode of @1 players to @2=
|
|
||||||
Cannot give an empty item=
|
|
||||||
Unknown item '@1'=
|
|
||||||
Giving 'ignore' is not allowed=
|
|
||||||
Gave [@1] to @2=
|
|
||||||
<target> <item> [count] [wear]=
|
|
||||||
Gives [count] of <item> to <target>=
|
|
||||||
Gave item(s) to @1 players=
|
|
||||||
<item> [count] [wear]=
|
|
||||||
Gives [count] of <item> to yourself=
|
|
||||||
[target]=
|
|
||||||
Kills [target] or self=
|
|
||||||
Killed @1=
|
|
||||||
Killed @1 entities=
|
|
||||||
=
|
|
||||||
Kills self=
|
|
||||||
Unexpected argument: @1=
|
|
||||||
<sound> <targets|pos> [volume] [pitch] [maxDistance]=
|
|
||||||
Plays a sound=
|
|
||||||
Must be a number, not @1=
|
|
||||||
Sound played=
|
|
||||||
objectives|players ...=
|
|
||||||
Manupulates the scoreboard=
|
|
||||||
Missing arguments=
|
|
||||||
Missing name=
|
|
||||||
Objective @1 already exists=
|
|
||||||
Missing criterion=
|
|
||||||
Invalid criterion @1=
|
|
||||||
Added objective @1=
|
|
||||||
There are no objectives=
|
|
||||||
There are @1 objective(s): @2=
|
|
||||||
Missing objective=
|
|
||||||
Unknown scoreboard objective '@1'=
|
|
||||||
Must be 'displayname' or 'numberformat'=
|
|
||||||
Missing display name=
|
|
||||||
@1 set to @2=
|
|
||||||
Cleared numberformat for @1=
|
|
||||||
Missing argument=
|
|
||||||
Invalid color=
|
|
||||||
Must be 'blank', 'fixed', or 'styled'=
|
|
||||||
Removed objective @1=
|
|
||||||
`list` support has not been added yet.=
|
|
||||||
`below_name` support has not been added yet.=
|
|
||||||
Must be 'list', 'below_name', 'sidebar', or 'sidebar.team.<color>=
|
|
||||||
Expected ascending|descending, got @1=
|
|
||||||
Display slot @1 does not support sorting.=
|
|
||||||
Set display slot @1 to show objective @2=
|
|
||||||
Expected 'add', 'list', 'modify', 'remove', or 'setdisplay', got '@1'=
|
|
||||||
Missing target=
|
|
||||||
Missing score=
|
|
||||||
No scores found=
|
|
||||||
Set score for @1=
|
|
||||||
Set score for @1 entities=
|
|
||||||
Must be 'name' or 'numberformat'=
|
|
||||||
Set display name of @1 to @2=
|
|
||||||
Set display name of @1 entities to @2=
|
|
||||||
Cleared format for @1=
|
|
||||||
Must be 'name' or 'numberformat', not @1=
|
|
||||||
@1 is not a trigger objective=
|
|
||||||
No players found=
|
|
||||||
Enabled trigger [@1] for @2=
|
|
||||||
Enabled trigger [@1] for @2 players=
|
|
||||||
@1 has @2 [@3]=
|
|
||||||
@1 does not have a score for @2=
|
|
||||||
There are no tracked players=
|
|
||||||
There are @1 tracked player(s): @2=
|
|
||||||
@1 has no scores=
|
|
||||||
@1 has @2 score(s): @3=
|
|
||||||
Missing source selector=
|
|
||||||
Missing source objective=
|
|
||||||
Invalid source objective=
|
|
||||||
Missing operator=
|
|
||||||
Invalid operator: @1=
|
|
||||||
Missing target selector=
|
|
||||||
Missing target objective=
|
|
||||||
Invalid target objective=
|
|
||||||
Skipping attempt to divide by zero=
|
|
||||||
@1 [@2] score of @3 @4 [@5] score of @6=
|
|
||||||
Changed @1 scores (@2 total operations)=
|
|
||||||
Missing selector=
|
|
||||||
Invalid objective=
|
|
||||||
Missing min=
|
|
||||||
Must be a number=
|
|
||||||
Missing max=
|
|
||||||
Randomized score for @1=
|
|
||||||
Randomized @2 scores=
|
|
||||||
Reset score for @1=
|
|
||||||
Reset @2 scores=
|
|
||||||
Player @1 has no scores recorded=
|
|
||||||
Score @1 is in range @2 to @3=
|
|
||||||
Score @1 is NOT in range @2 to @3=
|
|
||||||
Expected 'add', 'display', 'enable', 'get', 'list', 'operation', 'random', 'reset', 'set', or 'test', got @1=
|
|
||||||
Allows players to set their own scores in certain conditions=
|
|
||||||
/trigger can only be used by players=
|
|
||||||
You can only trigger objectives that are 'trigger' type=
|
|
||||||
You cannot trigger this objective yet=
|
|
||||||
Triggered [@1]=
|
|
||||||
Missing value=
|
|
||||||
Value must be a number=
|
|
||||||
Triggered [@1] (added @2 to value)=
|
|
||||||
Triggered [@1] (set value to @2)=
|
|
||||||
Expected 'add' or 'set', got @1=
|
|
||||||
Invalid color: @1=
|
|
||||||
No target entities found=
|
|
||||||
No entities found=
|
|
||||||
<pos> <block> [keep|replace]=
|
|
||||||
Places <block> at <pos>. If keep, only replace air=
|
|
||||||
Last argument ust be either 'replace' (default)), 'keep', or missing, not @1=
|
|
||||||
Position is not empty=
|
|
||||||
Node set=
|
|
||||||
Sets or queries settings=
|
|
||||||
<setting> [value]=
|
|
||||||
Failed. Cannot modify secure settings. Edit the settings file manually=
|
|
||||||
Set @1 to @2 (new setting)=
|
|
||||||
Set @1 to @2=
|
|
||||||
Setting @1 has not been set=
|
|
||||||
Sets players' spawnpoints=
|
|
||||||
[targets]=
|
|
||||||
Spawn point set=
|
|
||||||
Non-player entities are not supported by this command=
|
|
||||||
No player was found.=
|
|
||||||
Set spawn point to @1 for @2=
|
|
||||||
Set spawn point to @1 for @2 players=
|
|
||||||
Clear players' spawnpoints=
|
|
||||||
Spawn point cleared=
|
|
||||||
Cleared spawn point for @2=
|
|
||||||
Set spawn point for @2 players=
|
|
||||||
Summons an entity=
|
|
||||||
<entity> [pos] [ (<yRot> [xRot]) | (facing <entity>) ])=
|
|
||||||
Missing entity=
|
|
||||||
Invalid entity: @1=
|
|
||||||
Could not summon @1=
|
|
||||||
Summoned @1=
|
|
||||||
add|empty|join|leave|list|modify|remove ...=
|
|
||||||
Controls teams=
|
|
||||||
Missing subcommand=
|
|
||||||
Missing team name=
|
|
||||||
Team @1 already exists=
|
|
||||||
Invalid team name @1: Can only contain letters, numbers, and underscores=
|
|
||||||
Added team @1=
|
|
||||||
Removed team [@1]=
|
|
||||||
Removed all players from team [@1]=
|
|
||||||
Team @1 does not exist=
|
|
||||||
Joined team [@1]=
|
|
||||||
Added @1 to team [@2]=
|
|
||||||
Added @1 entities to [@2]=
|
|
||||||
Non-players cannot be on a team=
|
|
||||||
Removed @1 from any team=
|
|
||||||
There are @1 team(s): @2=
|
|
||||||
There are no teams=
|
|
||||||
Team [@1] has @2 member(s): @3=
|
|
||||||
There are no members on team [@1]=
|
|
||||||
Team [@1] does not exist=
|
|
||||||
Team name is required=
|
|
||||||
Unknown team '@1'=
|
|
||||||
Missing key=
|
|
||||||
Set color of team [@1] to @2=
|
|
||||||
Reset color of team [@1]=
|
|
||||||
Set display name of team [@1] to @2=
|
|
||||||
Reset display name of team [@1]=
|
|
||||||
Value must be 'true' or 'false', not @1=
|
|
||||||
Set friendly fire for team [@1] to @2=
|
|
||||||
Reset name format for team [@1]=
|
|
||||||
Set name format for team [@1] to @2=
|
|
||||||
Value must be 'color', 'displayName', 'friendlyFire', or 'nameFormat'=
|
|
||||||
Must be 'add', 'empty', 'join', 'leave', 'list', 'modify', or 'remove', not @1=
|
|
||||||
[entity/ies] <location/entity> ([yaw] [pitch] | [facing <location/entity>])=
|
|
||||||
Teleports and rotates things=
|
|
||||||
Command blocks can't teleport (although I did consider making it possible)=
|
|
||||||
Teleported @1 to @2=
|
|
||||||
Teleported @1 entities to @2=
|
|
||||||
(add <time>)|(set <time>)|(query daytime|gametime|day)=
|
|
||||||
Sets or gets the time=
|
|
||||||
Time set=
|
|
||||||
Current time: @1=
|
|
||||||
Time since world creation: @1=
|
|
||||||
Day count: @1=
|
|
||||||
Must be 'daytime', 'gametime', or 'day', got @1=
|
|
||||||
Must be 'add', 'set', or 'query'=
|
|
||||||
Item=
|
|
||||||
Falling Node=
|
|
||||||
Angelfish=
|
|
||||||
Bat=
|
|
||||||
Bird=
|
|
||||||
Blue Tang=
|
|
||||||
Cat=
|
|
||||||
Chicken=
|
|
||||||
Clownfish=
|
|
||||||
Cow=
|
|
||||||
Fox=
|
|
||||||
Frog=
|
|
||||||
Grizzly Bear=
|
|
||||||
Horse=
|
|
||||||
Opossum=
|
|
||||||
Owl=
|
|
||||||
Pig=
|
|
||||||
Rat=
|
|
||||||
Reindeer=
|
|
||||||
Sheep=
|
|
||||||
Song Bird=
|
|
||||||
Tropical Fish=
|
|
||||||
Turkey=
|
|
||||||
Wolf=
|
|
||||||
Badger=
|
|
||||||
Butterfly=
|
|
||||||
Fire Dragon=
|
|
||||||
Lightning Dragon=
|
|
||||||
Poison Dragon=
|
|
||||||
Ice Dragon=
|
|
||||||
Boss Dragon=
|
|
||||||
Elephant=
|
|
||||||
Gnorm=
|
|
||||||
Golem=
|
|
||||||
Hedgehog=
|
|
||||||
Nyan Cat=
|
|
||||||
Ogre=
|
|
||||||
Orc=
|
|
||||||
Morgul Orc=
|
|
||||||
Panda=
|
|
||||||
Flying Pig=
|
|
||||||
Skeleton=
|
|
||||||
Tortoise=
|
|
||||||
Treeman=
|
|
||||||
Wasp=
|
|
||||||
King of Sting=
|
|
||||||
Boss Waterdragon=
|
|
||||||
Waterdragon=
|
|
||||||
Whale=
|
|
||||||
Wyvern=
|
|
||||||
Jungle Wyvern=
|
|
||||||
Cyst=
|
|
||||||
Flyingrod=
|
|
||||||
Lavawalker=
|
|
||||||
Noodlemaster=
|
|
||||||
Razorback=
|
|
||||||
Soka Archer=
|
|
||||||
Soka Melee=
|
|
||||||
Tardigrade=
|
|
||||||
Flesh Whip=
|
|
||||||
Bee=
|
|
||||||
Bunny=
|
|
||||||
Kitten=
|
|
||||||
Penguin=
|
|
||||||
Pumba=
|
|
||||||
Balrog=
|
|
||||||
Crocodile=
|
|
||||||
Jellyfish=
|
|
||||||
Mese Monster=
|
|
||||||
Dirt Monster=
|
|
||||||
Dungeon Master=
|
|
||||||
Fire Spirit=
|
|
||||||
Land Guard=
|
|
||||||
Lava Flan=
|
|
||||||
Obsidian Flan=
|
|
||||||
Oerkki=
|
|
||||||
Sand Monster=
|
|
||||||
Spider=
|
|
||||||
Stone Monster=
|
|
||||||
Tree Monster=
|
|
||||||
Shark=
|
|
||||||
Skeleton Archer=
|
|
||||||
Dark Skeleton Archer=
|
|
||||||
Turtle=
|
|
||||||
Sea Turtle=
|
|
||||||
Ant Queen=
|
|
||||||
Ant Soldier=
|
|
||||||
Ant Worker=
|
|
||||||
Black Widow=
|
|
||||||
Bloco=
|
|
||||||
Crab=
|
|
||||||
Daddy Long Legs=
|
|
||||||
Dolidrosaurus=
|
|
||||||
Duck=
|
|
||||||
Duckking=
|
|
||||||
Echidna=
|
|
||||||
Enderduck=
|
|
||||||
Felucco=
|
|
||||||
Flying Duck=
|
|
||||||
Giant Sandworm=
|
|
||||||
Icelamander=
|
|
||||||
Icesnake=
|
|
||||||
Kraken=
|
|
||||||
Larva=
|
|
||||||
Lava Titan=
|
|
||||||
Manticore=
|
|
||||||
Mantis=
|
|
||||||
Mantis Beast=
|
|
||||||
Masticone=
|
|
||||||
Mese Dragon=
|
|
||||||
Moonheron=
|
|
||||||
Morbat=
|
|
||||||
Mordain=
|
|
||||||
Morde=
|
|
||||||
Morgre=
|
|
||||||
Morgut=
|
|
||||||
Morlu=
|
|
||||||
Mortick=
|
|
||||||
Morvalar=
|
|
||||||
Morvy=
|
|
||||||
Morwa=
|
|
||||||
Night Master=
|
|
||||||
Octopus=
|
|
||||||
Phoenix=
|
|
||||||
Pumpboom=
|
|
||||||
Pumpking=
|
|
||||||
Sand Bloco=
|
|
||||||
Sandworm=
|
|
||||||
Scrausics=
|
|
||||||
Signosigno=
|
|
||||||
Snow Biter=
|
|
||||||
Spiderduck=
|
|
||||||
Stoneater=
|
|
||||||
Swimming Duck=
|
|
||||||
Tarantula=
|
|
||||||
Uloboros=
|
|
||||||
Werewolf=
|
|
||||||
Xgaloctobus=
|
|
||||||
@1 Sheep=
|
|
Loading…
x
Reference in New Issue
Block a user