summaryrefslogtreecommitdiff
path: root/marriage.lua
diff options
context:
space:
mode:
authorElias Fleckenstein <eliasfleckenstein@web.de>2021-11-12 14:39:15 +0100
committerElias Fleckenstein <eliasfleckenstein@web.de>2021-11-12 14:39:15 +0100
commit19cd4e7ea97d08d61b5ba650a471bbd2e814d779 (patch)
tree78aeec5b2be9c5f7519554ad936405c68c40f637 /marriage.lua
parentd4da90fada58be5eda399795ffbc82a1365d348b (diff)
downloadfurrybot-19cd4e7ea97d08d61b5ba650a471bbd2e814d779.tar.xz
Structure overhaul
Diffstat (limited to 'marriage.lua')
-rw-r--r--marriage.lua47
1 files changed, 47 insertions, 0 deletions
diff --git a/marriage.lua b/marriage.lua
new file mode 100644
index 0000000..2f99b9d
--- /dev/null
+++ b/marriage.lua
@@ -0,0 +1,47 @@
+local http, env, storage
+local C = minetest.get_color_escape_sequence
+
+furrybot.request_command("marry", "marry another player", function(name, target)
+ if storage:contains(name .. ".partner", target) then
+ furrybot.error_message(name, "You are already married to", storage:get_string(name .. ".partner"))
+ return false
+ elseif storage:contains(target .. ".partner", name) then
+ furrybot.error_message(name, target .. " is already married to", storage:get_string(target .. ".partner"))
+ return false
+ else
+ furrybot.ping_message(target, name .. " proposes to you. Type !accept to accept or !deny to deny.", furrybot.colors.system)
+ end
+end, function(name, target)
+ storage:set_string(name .. ".partner", target)
+ storage:set_string(target .. ".partner", name)
+ furrybot.send("Congratulations, " .. furrybot.ping(name, furrybot.colors.roleplay) .. "&" .. furrybot.ping(target, furrybot.colors.roleplay) .. ", you are married. You may now kiss :).", furrybot.colors.roleplay)
+end, true)
+
+furrybot.commands.divorce = {
+ unsafe = true,
+ func = function(name)
+ if storage:contains(name .. ".partner") then
+ local partner = storage:get_string(name .. ".partner")
+ storage:set_string(name .. ".partner", "")
+ storage:set_string(partner .. ".partner", "")
+ furrybot.ping_message(name, "divorces from " .. partner .. " :(", furrybot.colors.roleplay)
+ else
+ furrybot.error_message(name, "You are not married")
+ end
+ end,
+}
+
+furrybot.commands.partner = {
+ func = function(name, target)
+ target = target or name
+ if storage:contains(target .. ".partner") then
+ furrybot.ping_message(name, (target == name and "You are" or target .. " is") .. " married to " .. storage:get_string(target .. ".partner"), furrybot.colors.system)
+ else
+ furrybot.error_message(name, (target == name and "You are" or target .. " is") .. " not married")
+ end
+ end,
+}
+
+return function(_http, _env, _storage)
+ http, env, storage = _http, _env, _storage
+end