From 81264c81f19f1bf13f27cef86c402de9aad27a3f Mon Sep 17 00:00:00 2001 From: cale Date: Tue, 19 Jan 2016 11:30:55 +0100 Subject: [PATCH] added a very simple clan system --- mods/clans/LICENSE.txt | 11 +++++++ mods/clans/init.lua | 73 ++++++++++++++++++++++++++++++++++++++++++ mods/clans/init.lua~ | 73 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 157 insertions(+) create mode 100644 mods/clans/LICENSE.txt create mode 100644 mods/clans/init.lua create mode 100644 mods/clans/init.lua~ diff --git a/mods/clans/LICENSE.txt b/mods/clans/LICENSE.txt new file mode 100644 index 0000000..dc44a2b --- /dev/null +++ b/mods/clans/LICENSE.txt @@ -0,0 +1,11 @@ +License for Code +---------------- + +Copyright (C) 2016 cd2 (cdqwertz) + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html diff --git a/mods/clans/init.lua b/mods/clans/init.lua new file mode 100644 index 0000000..81806cd --- /dev/null +++ b/mods/clans/init.lua @@ -0,0 +1,73 @@ +clans = {} +clans.all_clans = {} +clans.clans_file = minetest.get_worldpath() .. "/clans" + +function clans.create_clan(plname, clan_name) + clans.all_clans[clan_name] = {plname} + clans.save_clans() +end + +function clans.add_member(clan_name, plname) + table.insert(clans.all_clans[clan_name], plname) + clans.save_clans() +end + +function clans.load_clans() + local input = io.open(clans.clans_file, "r") + if input then + local str = input:read() + if str then + if minetest.deserialize(str) then + clans.all_clans = minetest.deserialize(str) + end + end + io.close(input) + end +end + +function clans.save_clans() + if clans.all_clans then + local output = io.open(clans.clans_file, "w") + local str = minetest.serialize(clans.all_clans) + output:write(str) + io.close(output) + end +end + +clans.load_clans() + +minetest.register_chatcommand("create_clan", { + params = "", + description = "Creates a clan", + privs = {}, + func = function(name, text) + if clans.all_clans[text] then + return true, "There already is a clan named " .. text + end + local player = minetest.get_player_by_name(name) + if player then + clans.create_clan(name, text) + return true, "Added a clan named " .. text + end + return true, "Error couldnt find player " .. name + end, +}) + +minetest.register_chatcommand("join_clan", { + params = "", + description = "Join a clan", + privs = {}, + func = function(name, text) + if not clans.all_clans[text] then + return true, "There is no clan named " .. text + end + local player = minetest.get_player_by_name(name) + if player then + clans.add_member(text, name) + return true, "Joined clan " .. text + end + return true, "Error couldnt find player " .. name + end, +}) + + diff --git a/mods/clans/init.lua~ b/mods/clans/init.lua~ new file mode 100644 index 0000000..81806cd --- /dev/null +++ b/mods/clans/init.lua~ @@ -0,0 +1,73 @@ +clans = {} +clans.all_clans = {} +clans.clans_file = minetest.get_worldpath() .. "/clans" + +function clans.create_clan(plname, clan_name) + clans.all_clans[clan_name] = {plname} + clans.save_clans() +end + +function clans.add_member(clan_name, plname) + table.insert(clans.all_clans[clan_name], plname) + clans.save_clans() +end + +function clans.load_clans() + local input = io.open(clans.clans_file, "r") + if input then + local str = input:read() + if str then + if minetest.deserialize(str) then + clans.all_clans = minetest.deserialize(str) + end + end + io.close(input) + end +end + +function clans.save_clans() + if clans.all_clans then + local output = io.open(clans.clans_file, "w") + local str = minetest.serialize(clans.all_clans) + output:write(str) + io.close(output) + end +end + +clans.load_clans() + +minetest.register_chatcommand("create_clan", { + params = "", + description = "Creates a clan", + privs = {}, + func = function(name, text) + if clans.all_clans[text] then + return true, "There already is a clan named " .. text + end + local player = minetest.get_player_by_name(name) + if player then + clans.create_clan(name, text) + return true, "Added a clan named " .. text + end + return true, "Error couldnt find player " .. name + end, +}) + +minetest.register_chatcommand("join_clan", { + params = "", + description = "Join a clan", + privs = {}, + func = function(name, text) + if not clans.all_clans[text] then + return true, "There is no clan named " .. text + end + local player = minetest.get_player_by_name(name) + if player then + clans.add_member(text, name) + return true, "Joined clan " .. text + end + return true, "Error couldnt find player " .. name + end, +}) + +