summaryrefslogtreecommitdiff
path: root/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua9
1 files changed, 6 insertions, 3 deletions
diff --git a/init.lua b/init.lua
index b1d1b2a..2bf67fb 100644
--- a/init.lua
+++ b/init.lua
@@ -94,11 +94,12 @@ function playersettings.openform(player)
elseif def.type == "string" then
extras = (
"field[8,6;6,1;field;Enter value:;%s]" ..
- "textarea[8,7.5;6,2;;;Allowed values: %s]" ..
+ "textarea[8,7.5;6,2;;;Allowed values: %s\nCharacters limit: %d]" ..
"field_close_on_enter[field;false]"
):format(
core.formspec_escape(settingvalue),
- core.formspec_escape(def.values or "any string")
+ core.formspec_escape(def.values or "any string"),
+ def.max
)
elseif def.type == "number" then
local allowed = "any number"
@@ -177,7 +178,8 @@ function playersettings.handleform(player,form,fields)
playersettings.set(name,settingname,value)
end
elseif def.type == "string" and fields.field then
- playersettings.set(name,settingname,fields.field)
+ local value = fields.field:sub(1, def.max)
+ playersettings.set(name,settingname,value)
end
end
if fields.settinglist then
@@ -258,6 +260,7 @@ function playersettings.register(setting,def)
-- Type-specific checks
if def.type == "string" then
assert(type(def.values) == "string")
+ def.max = def.max or 200
elseif def.type == "enum" then
assert(type(def.values) == "table")
end