Skip to content

Commit cae6fec

Browse files
Add @n (surprisingly easy)
1 parent 6df3fb7 commit cae6fec

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

API/parsing.lua

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ function better_commands.parse_params(str)
1010
local found = {}
1111
-- selectors, @?[data]
1212
repeat
13-
tmp = {str:find("(@[psaer])%s*(%[.-%])", i)}
13+
tmp = {str:find("(@[parsen])%s*(%[.-%])", i)}
1414
if tmp[1] then
1515
i = tmp[2] + 1
1616
tmp.type = "selector"
@@ -95,7 +95,7 @@ function better_commands.parse_params(str)
9595
end
9696
end
9797
if not overlap then
98-
if tmp[3]:find("^@[psaer]$") then
98+
if tmp[3]:find("^@[parsen]$") then
9999
tmp.type = "selector"
100100
elseif better_commands.players[tmp[3]] then
101101
tmp.type = "selector"
@@ -203,14 +203,13 @@ function better_commands.parse_selector(selector_data, context, require_one)
203203
if selector == "@s" then
204204
return {caller}
205205
end
206-
if selector == "@e" or selector == "@a" or selector == "@p" or selector == "@r" then
207-
for _, player in pairs(minetest.get_connected_players()) do
208-
if player:get_pos() then
209-
table.insert(objects, player)
210-
end
206+
-- Always include players
207+
for _, player in pairs(minetest.get_connected_players()) do
208+
if player:get_pos() then
209+
table.insert(objects, player)
211210
end
212211
end
213-
if selector == "@e" then
212+
if selector == "@e" or selector == "@n" then
214213
for _, luaentity in pairs(minetest.luaentities) do
215214
if luaentity.object:get_pos() then
216215
table.insert(objects, luaentity.object)
@@ -231,15 +230,15 @@ function better_commands.parse_selector(selector_data, context, require_one)
231230
end
232231

233232
local sort
234-
if selector == "@p" then
233+
if selector == "@p" or selector == "@n" then
235234
sort = "nearest"
236235
elseif selector == "@r" then
237236
sort = "random"
238237
else
239238
sort = "arbitrary"
240239
end
241240
local limit
242-
if selector == "@p" or selector == "@r" then limit = 1 end
241+
if selector == "@p" or selector == "@n" or selector == "@r" then limit = 1 end
243242

244243
if arg_table then
245244
-- Look for pos first

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* Added `/stop` command
66
* Added `/weather` command
77
* Added `/toggledownfall` command
8+
* Added `@n` selector
89
### Bugfixes
910
* Leaving out arguments no longer fails to show the `params` string.
1011

0 commit comments

Comments
 (0)