added new clan system

This commit is contained in:
cale 2016-12-26 11:05:28 +01:00
parent b3350a41c1
commit 5bea54276c
5 changed files with 135 additions and 152 deletions

View File

@ -32,38 +32,38 @@ function character_editor.set_texture(player, pos, texture)
character_editor.update_character(player)
end
default.player_inventory.register_tab({
name = "Settings",
type = "normal",
formspec = "size[8,7.5;]" ..
default.gui_colors ..
default.gui_bg ..
"label[0,0;Language:]" ..
"button[0,0.5;1,1;lang_EN;EN]" ..
"button[1,0.5;1,1;lang_DE;DE]" ..
"button[2,0.5;1,1;lang_FR;FR]" ..
"button[3,0.5;1,1;lang_ID;ID]" ..
"button[4,0.5;1,1;lang_TR;TR]",
on_event = function(player, fields)
local name = player:get_player_name()
if fields["lang_EN"] then
print("EN")
character_editor.language[name] = ""
elseif fields["lang_DE"] then
print("DE")
character_editor.language[name] = "de/"
elseif fields["lang_FR"] then
print("FR")
character_editor.language[name] = "fr/"
elseif fields["lang_ID"] then
print("ID")
character_editor.language[name] = "id/"
elseif fields["lang_TR"] then
print("TR")
character_editor.language[name] = "tr/"
end
end
})
--default.player_inventory.register_tab({
-- name = "Settings",
-- type = "normal",
-- formspec = "size[8,7.5;]" ..
-- default.gui_colors ..
-- default.gui_bg ..
-- "label[0,0;Language:]" ..
-- "button[0,0.5;1,1;lang_EN;EN]" ..
-- "button[1,0.5;1,1;lang_DE;DE]" ..
-- "button[2,0.5;1,1;lang_FR;FR]" ..
-- "button[3,0.5;1,1;lang_ID;ID]" ..
-- "button[4,0.5;1,1;lang_TR;TR]",
-- on_event = function(player, fields)
-- local name = player:get_player_name()
-- if fields["lang_EN"] then
-- print("EN")
-- character_editor.language[name] = ""
-- elseif fields["lang_DE"] then
-- print("DE")
-- character_editor.language[name] = "de/"
-- elseif fields["lang_FR"] then
-- print("FR")
-- character_editor.language[name] = "fr/"
-- elseif fields["lang_ID"] then
-- print("ID")
-- character_editor.language[name] = "id/"
-- elseif fields["lang_TR"] then
-- print("TR")
-- character_editor.language[name] = "tr/"
-- end
-- end
--})
minetest.register_chatcommand("shirt", {
params = "<name>",

1
mods/clans/depends.txt Normal file
View File

@ -0,0 +1 @@
default

View File

@ -1,47 +1,67 @@
clans = {}
clans.players = {}
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.remove_member(clan_name, plname)
for k,v in pairs(clans.all_clans[clan_name]) do
if v == plname then
table.remove(clans.all_clans[clan_name], k)
clans.save_clans()
break
end
function clans.create_clan(clan_name)
if not(clans.all_clans[clan_name]) then
clans.all_clans[clan_name] = {}
clans.save_clans()
return true
else
return false
end
end
function clans.show_my_clans(plname)
local str = ""
for k,v in pairs(clans.all_clans) do
for m,n in pairs(clans.all_clans[k]) do
if n == plname then
str = str .. k .. ","
break
end
end
function clans.join_clan(clan_name, name)
if clans.all_clans[clan_name] then
clans.players[name] = clan_name
clans.save_clans()
return true
else
clans.save_clans()
return false
end
return str
end
function clans.leave_clan(name)
clans.players[name] = ""
clans.save_clans()
end
function clans.get_members(clan_name)
local members = {}
for name, clan in pairs(clans.players) do
if clan == clan_name then
table.insert(members, name)
end
end
return members
end
function clans.list_clans()
local all_clans = {}
for name, _ in pairs(clans.all_clans) do
table.insert(all_clans, name)
end
return all_clans
end
--TODO
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)
local data = minetest.deserialize(str)
clans.all_clans = data.all_clans
clans.players = data.players
end
end
io.close(input)
@ -50,8 +70,12 @@ end
function clans.save_clans()
if clans.all_clans then
local data = {}
data.all_clans = clans.all_clans
data.players = clans.players
local output = io.open(clans.clans_file, "w")
local str = minetest.serialize(clans.all_clans)
local str = minetest.serialize(data)
output:write(str)
io.close(output)
end
@ -59,98 +83,49 @@ end
clans.load_clans()
minetest.register_chatcommand("create_clan", {
params = "<name>",
description = "Creates a clan",
privs = {},
minetest.register_chatcommand("clan", {
params = "join/leave/new/show/all (<clan>)",
description = "",
privs = {interact = true},
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
local params = string.split(text, " ")
if #params > 0 then
if params[1] == "join" and #params > 1 then
local out = clans.join_clan(params[2], name)
if out then
clans.join_clan(params[2], name)
return true, "Done"
else
return false, "Error"
end
elseif params[1] == "leave" then
clans.leave_clan(name)
return true, "Done"
elseif (params[1] == "new" or params[1] == "add" or params[1] == "create") and #params > 1 then
local out = clans.create_clan(params[2])
if out then
clans.join_clan(params[2], name)
return true, "Done"
else
return false, "Error"
end
elseif params[1] == "show" then
if clans.players[name] then
return true, "Members: " .. table.concat(clans.get_members(clans.players[name]), ", ")
else
return false, "Error"
end
elseif (params[1] == "all" or params[1] == "list") then
return true, "Clans: " .. table.concat(clans.list_clans(), ", ")
else
return false, "/clan join/leave/new/show/all (<clan>)"
end
end
return true, "Error couldnt find player " .. name
end,
})
minetest.register_chatcommand("join_clan", {
params = "<name>",
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,
})
minetest.register_chatcommand("leave_clan", {
params = "<name>",
description = "Leave 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.remove_member(text, name)
return true, "Left clan " .. text
end
return true, "Error couldnt find player " .. name
end,
})
minetest.register_chatcommand("list_clans", {
params = "<name>",
description = "Shows all clans",
privs = {},
func = function(name, text)
if not clans.all_clans then
return true, "Error"
end
local keys = {}
local i = 0
for k,_ in pairs(clans.all_clans) do
keys[i] = k
i= i+1
end
if not keys then
return true, "Error"
end
minetest.chat_send_player(name, table.concat(keys, ","))
return true, "type /join_clan <clan> to join a clan"
end,
})
minetest.register_chatcommand("show_clan", {
params = "<name>",
description = "Shows the clan",
privs = {},
func = function(name, text)
if not clans.all_clans[text] then
return true, "There is no clan named " .. text
end
minetest.chat_send_player(name, table.concat(clans.all_clans[text], ","))
return true, "type /join_clan " .. text .." to join this clan"
end,
})
minetest.register_chatcommand("my_clans", {
params = "<name>",
description = "Shows the clan",
privs = {},
func = function(name, text)
minetest.chat_send_player(name, clans.show_my_clans(name))
return true, "type /leave_clan <name> to leave a clan"
end,
})

View File

@ -315,6 +315,13 @@ minetest.register_craft({
}
})
minetest.register_craft({
output = "default:workbench",
recipe = {
{"default:birch_wood", "default:birch_wood", "default:birch_wood"},
}
})
minetest.register_craft({
output = "default:workbench_v2",
recipe = {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 B

After

Width:  |  Height:  |  Size: 292 B