implemented utils 'is_player_invited', 'cancel_invite' and getter 'get_inviter'
parent
2fff4fa55a
commit
8d9a3281be
3
DOCS.md
3
DOCS.md
|
@ -6,13 +6,16 @@ Because it's always good to understand the API without surfing the code, init? :
|
|||
|
||||
### 1.1 Utils
|
||||
|
||||
* `parties.is_player_invited(p_name)`: (bool) checks whether a player has a pending invite
|
||||
* `parties.is_player_in_party(p_name)`: (bool) checks whether a player is in any party
|
||||
* `parties.is_player_party_leader(p_name)`: (bool) checks whether a player is the party leader of any party
|
||||
* `parties.chat_send_party(p_name, msg, as_broadcast)`: (nil) sends a message to every player inside the party where `p_name` is (`p_name` doesn't necessarily have to be the party leader). If `as_broadcast` is true, it'll be sent without following Minetest chat format. If false, `p_name` will be pointed as the sender when formatting the message
|
||||
* `parties.change_party_leader(old_leader, new_leader)`: (nil) changes the party leader
|
||||
* `parties.cancel_invite(p_name)`: (nil) cancels a pending invite
|
||||
|
||||
### 1.2 Getters
|
||||
|
||||
* `parties.get_inviter(p_name)`: (string) returns the name of the player who invited `p_name`, if an event is pending
|
||||
* `parties.get_party_leader(p_name)`: (string) returns the party leader of the party where `p_name` is in
|
||||
* `parties.get_party_members(party_leader)`: (table) returns a list of every player inside the party where `party_leader` is in
|
||||
|
||||
|
|
32
api.lua
32
api.lua
|
@ -28,7 +28,7 @@ function parties.invite(sender, p_name)
|
|||
minetest.chat_send_player(sender, minetest.colorize("#e6482e", S("[!] This player is not online!")))
|
||||
return end
|
||||
|
||||
-- se è già stato invitato
|
||||
-- se è già stato invitato dalla stessa persona
|
||||
if players_invited[p_name] and players_invited[p_name] == sender then
|
||||
minetest.chat_send_player(sender, minetest.colorize("#e6482e", S("[!] You've already invited this player!")))
|
||||
return end
|
||||
|
@ -56,9 +56,11 @@ function parties.invite(sender, p_name)
|
|||
|
||||
-- se non ha accettato dopo 15 secondi, annullo l'invito
|
||||
minetest.after(15, function()
|
||||
if minetest.get_player_by_name(sender) and minetest.get_player_by_name(p_name) and players_invited[p_name] and players_invited[p_name] == sender then
|
||||
if players_invited[p_name] and players_invited[p_name] == sender then
|
||||
players_invited[p_name] = nil
|
||||
minetest.chat_send_player(sender, format_party_message(minetest.colorize("#ededed", S("No answer from @1...", p_name))))
|
||||
if minetest.get_player_by_name(sender) then
|
||||
minetest.chat_send_player(sender, format_party_message(minetest.colorize("#ededed", S("No answer from @1...", p_name))))
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
@ -114,6 +116,8 @@ function parties.leave(p_name)
|
|||
minetest.chat_send_player(p_name, minetest.colorize("#e6482e", S("[!] You must enter a party first!")))
|
||||
return end
|
||||
|
||||
-- se si aveva invitato qualcuno
|
||||
|
||||
local party_leader = players_in_parties[p_name]
|
||||
|
||||
-- rimuovo dal gruppo
|
||||
|
@ -191,6 +195,13 @@ end
|
|||
--------------------UTILS---------------------
|
||||
----------------------------------------------
|
||||
|
||||
function parties.is_player_invited(p_name)
|
||||
if players_invited[p_name] then return true
|
||||
else return false end
|
||||
end
|
||||
|
||||
|
||||
|
||||
function parties.is_player_in_party(p_name)
|
||||
if players_in_parties[p_name] then return true
|
||||
else return false end
|
||||
|
@ -246,12 +257,23 @@ end
|
|||
|
||||
|
||||
|
||||
function parties.cancel_invite(p_name)
|
||||
players_invited[p_name] = nil
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
----------------------------------------------
|
||||
-----------------GETTERS----------------------
|
||||
----------------------------------------------
|
||||
|
||||
function parties.get_inviter(p_name)
|
||||
return players_invited[p_name]
|
||||
end
|
||||
|
||||
|
||||
|
||||
function parties.get_party_leader(p_name)
|
||||
return players_in_parties[p_name]
|
||||
end
|
||||
|
@ -262,6 +284,10 @@ function parties.get_party_members(party_leader)
|
|||
return current_parties[party_leader]
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
----------------------------------------------
|
||||
---------------FUNZIONI LOCALI----------------
|
||||
----------------------------------------------
|
||||
|
|
|
@ -2,7 +2,11 @@ minetest.register_on_leaveplayer(function(player)
|
|||
|
||||
local p_name = player:get_player_name()
|
||||
|
||||
if not parties.is_player_in_party(p_name) then return end
|
||||
if parties.is_player_in_party(p_name) then
|
||||
parties.leave(p_name)
|
||||
end
|
||||
|
||||
parties.leave(p_name)
|
||||
if parties.is_player_invited(p_name) then
|
||||
parties.cancel_invite(p_name)
|
||||
end
|
||||
end)
|
||||
|
|
Loading…
Reference in New Issue