Software / code / prosody
File
plugins/muc/name.lib.lua @ 10921:6eb5d2bb11af
util-src: Use the luaL_pushfail API added in Lua 5.4 to highlight all failure conditions
Actually just an alias of pushnil, but it does make it more obvious
where the failure conditions are, which is good for readability.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 07 Jun 2020 02:25:56 +0200 |
| parent | 9034:1c709e3d2e5e |
| child | 11057:13eee48071c8 |
line wrap: on
line source
-- Prosody IM -- Copyright (C) 2008-2010 Matthew Wild -- Copyright (C) 2008-2010 Waqas Hussain -- Copyright (C) 2014 Daurnimator -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. -- local jid_split = require "util.jid".split; local function get_name(room) return room._data.name or jid_split(room.jid); end local function set_name(room, name) if name == "" then name = nil; end if room._data.name == name then return false; end room._data.name = name; return true; end local function insert_name_into_form(event) table.insert(event.form, { name = "muc#roomconfig_roomname"; type = "text-single"; label = "Title"; value = event.room._data.name; }); end module:hook("muc-disco#info", function(event) event.reply:tag("identity", {category="conference", type="text", name=get_name(event.room)}):up(); insert_name_into_form(event); end); module:hook("muc-config-form", insert_name_into_form, 100-1); module:hook("muc-config-submitted/muc#roomconfig_roomname", function(event) if set_name(event.room, event.value) then event.status_codes["104"] = true; end end); return { get = get_name; set = set_name; };