extend chat command

This commit is contained in:
Dirk Sohler 2019-02-16 17:33:16 +01:00
parent 028cdbf99e
commit 613ebf046d
No known key found for this signature in database
GPG Key ID: B9751241BD7D4E1A
4 changed files with 39 additions and 6 deletions

@ -1,6 +1,6 @@
# textdomain: mtimer # textdomain: mtimer
# Configuration Selection Menu # Configuration Selection Menu and chat command help
Toggle Visibility=Sichtbarkeit umschalten Toggle Visibility=Sichtbarkeit umschalten
Set Position=Position setzen Set Position=Position setzen
Set Color=Farbe einstellen Set Color=Farbe einstellen
@ -8,6 +8,7 @@ Timezone Offset=Zeitzonenunterschied
Ingame Time Representation=Spielzeit-Repräsentation Ingame Time Representation=Spielzeit-Repräsentation
Real World Time Representation=Realzeit-Repräsentation Real World Time Representation=Realzeit-Repräsentation
Set Timer Text=Timertext einstellen Set Timer Text=Timertext einstellen
Open Main Menu=Hauptmenü öffnen
# Visibility # Visibility
mTimer Visibility=mTimer-Sichtbarkeit mTimer Visibility=mTimer-Sichtbarkeit
@ -17,7 +18,7 @@ Invisible=Unsichtbar
# Generic Formspec Strings # Generic Formspec Strings
Default=Standard Default=Standard
Exit=Verlassen Exit=Verlassen
Back=Zurück Main Menu=Hauptmenü
# Timer Weekdays # Timer Weekdays
Monday=Montag Monday=Montag

@ -1,10 +1,42 @@
local m = mtimer local m = mtimer
local S = m.translator local S = m.translator
local fs = m.show_formspec
local cs = minetest.chat_send_player
local command = function (command)
return minetest.colorize('cyan', '/mtimer '..command..' ')
end
minetest.register_chatcommand('mtimer', { minetest.register_chatcommand('mtimer', {
description = S('Configure timer display'), description = S('Configure timer display'),
params = '<vi/po/co/tz/in/re/te/help>',
func = function(name, parameters) func = function(name, parameters)
local action = parameters:match('%a+') local action = parameters:match('%a+')
if not action then m.show_formspec.menu(name) end
if not minetest.get_player_by_name(name) then return end
if not action then fs.main_menu(name) end
if action == 'vi' then fs.set_visibility(name) end
if action == 'po' then fs.set_position(name) end
if action == 'co' then fs.set_color(name) end
if action == 'tz' then fs.timezone_offset(name) end
if action == 'in' then fs.ingame_time(name) end
if action == 're' then fs.real_time(name) end
if action == 'te' then fs.timer_text(name) end
if action == 'help' then
local message = {
command('vi')..S('Set Visibility'),
command('po')..S('Set Position'),
command('co')..S('Set Color'),
command('tz')..S('Timezone Offset'),
command('in')..S('Ingame Time Representation'),
command('re')..S('Real World Time Representation'),
command('te')..S('Set Timer Text'),
command(' ')..S('Open Main Menu')
}
cs(name, table.concat(message, '\n'))
end
end end
}) })

@ -2,7 +2,7 @@ local m = mtimer
local S = m.translator local S = m.translator
mtimer.show_formspec.menu = function (player_name) mtimer.show_formspec.main_menu = function (player_name)
minetest.show_formspec(player_name, 'mtimer:main_menu', [[ minetest.show_formspec(player_name, 'mtimer:main_menu', [[
size[4,7.75] size[4,7.75]
button[0,0;4,1;set_visibility;]]..S('Set Visibility')..[[] button[0,0;4,1;set_visibility;]]..S('Set Visibility')..[[]
@ -25,6 +25,6 @@ mtimer.show_formspec.set_visibility = function (player_name)
button[2,0.5;2,1;invisible;]]..S('Invisible')..[[] button[2,0.5;2,1;invisible;]]..S('Invisible')..[[]
button[4,0.5;2,1;default;]]..S('Default')..[[] button[4,0.5;2,1;default;]]..S('Default')..[[]
button_exit[0,1.5;3,1;exit;]]..S('Exit')..[[] button_exit[0,1.5;3,1;exit;]]..S('Exit')..[[]
button[3,1.5;3,1;back;]]..S('Back')..[[] button[3,1.5;3,1;back;]]..S('Main Menu')..[[]
]]) ]])
end end

@ -22,7 +22,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
-- Back to menu from all formspecs -- Back to menu from all formspecs
if fields.back then f.menu(name) end if fields.back then f.main_menu(name) end
-- DEBUG: Print all player meta data -- DEBUG: Print all player meta data