mirror of
				https://gitlab.com/rubenwardy/awards.git
				synced 2025-10-31 04:55:32 +01:00 
			
		
		
		
	Secret awards, fixes
This commit is contained in:
		
							
								
								
									
										35
									
								
								api.lua
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								api.lua
									
									
									
									
									
								
							| @@ -261,15 +261,15 @@ minetest.register_chatcommand("list_awards", { | |||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
| minetest.register_chatcommand("awards", { | minetest.register_chatcommand("awards", { | ||||||
| 	params = "Empty params for your awards, player name for someone else's awards", | 	params = "", | ||||||
| 	description = "awards: list awards", | 	description = "awards: list awards", | ||||||
| 	func = function(name, param) | 	func = function(name, param) | ||||||
| 		awards.showto(name, name, nil, false) | 		awards.showto(name, name, nil, false) | ||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
| minetest.register_chatcommand("cawards", { | minetest.register_chatcommand("cawards", { | ||||||
| 	params = "Empty params for your awards, player name for someone else's awards", | 	params = "", | ||||||
| 	description = "awards: list awards", | 	description = "awards: list awards in chat", | ||||||
| 	func = function(name, param) | 	func = function(name, param) | ||||||
| 		awards.showto(name, name, nil, true) | 		awards.showto(name, name, nil, true) | ||||||
| 	end | 	end | ||||||
| @@ -313,16 +313,28 @@ function awards._order_awards(name) | |||||||
| end | end | ||||||
|  |  | ||||||
| function awards.showto(name, to, sid, text) | function awards.showto(name, to, sid, text) | ||||||
|  | 	if name == "" or name == nil then | ||||||
|  | 		name = to | ||||||
|  | 	end | ||||||
| 	if text then | 	if text then | ||||||
| 		if not awards.players[name] or not awards.players[name].unlocked  then | 		if not awards.players[name] or not awards.players[name].unlocked  then | ||||||
| 			minetest.chat_send_player(name, "You do not have any awards") | 			minetest.chat_send_player(to, "You have not unlocked any awards") | ||||||
| 			return | 			return | ||||||
| 		end | 		end | ||||||
| 		minetest.chat_send_player(to, name.."'s awards:") | 		minetest.chat_send_player(to, name.."'s awards:") | ||||||
|  |  | ||||||
| 		for _, str in pairs(awards.players[name].unlocked) do | 		for _, str in pairs(awards.players[name].unlocked) do | ||||||
|  | 			local def = awards.def[str] | ||||||
|  | 			if def and def.title then | ||||||
|  | 				if def.description then				 | ||||||
|  | 					minetest.chat_send_player(to, def.title..": "..def.description) | ||||||
|  | 				else | ||||||
|  | 					minetest.chat_send_player(to, def.title) | ||||||
|  | 				end | ||||||
|  | 			else | ||||||
| 				minetest.chat_send_player(to, str) | 				minetest.chat_send_player(to, str) | ||||||
| 			end | 			end | ||||||
|  | 		end | ||||||
| 	else | 	else | ||||||
| 		if sid == nil or sid < 1 then | 		if sid == nil or sid < 1 then | ||||||
| 			sid = 1 | 			sid = 1 | ||||||
| @@ -334,6 +346,13 @@ function awards.showto(name, to, sid, text) | |||||||
| 		if sid then | 		if sid then | ||||||
| 			local item = listofawards[sid+0] | 			local item = listofawards[sid+0] | ||||||
| 			local def = awards.def[item.name] | 			local def = awards.def[item.name] | ||||||
|  | 			if def and def.secret and not item.got then | ||||||
|  | 				formspec = formspec .. "label[1,2.75;Secret Award]".. | ||||||
|  | 									"image[1,0;3,3;unknown.png]" | ||||||
|  | 				if def and def.description then | ||||||
|  | 					formspec = formspec	.. "label[0,3.25;Unlock this award to find out what it is]"				 | ||||||
|  | 				end | ||||||
|  | 			else | ||||||
| 				local title = item.name | 				local title = item.name | ||||||
| 				if def and def.title then | 				if def and def.title then | ||||||
| 					title = def.title | 					title = def.title | ||||||
| @@ -351,6 +370,7 @@ function awards.showto(name, to, sid, text) | |||||||
| 					formspec = formspec	.. "label[0,3.25;"..def.description.."]"				 | 					formspec = formspec	.. "label[0,3.25;"..def.description.."]"				 | ||||||
| 				end | 				end | ||||||
| 			end | 			end | ||||||
|  | 		end | ||||||
| 		 | 		 | ||||||
| 		-- Create list box | 		-- Create list box | ||||||
| 		formspec = formspec .. "textlist[4.75,0;6,5;awards;"		 | 		formspec = formspec .. "textlist[4.75,0;6,5;awards;"		 | ||||||
| @@ -361,18 +381,21 @@ function awards.showto(name, to, sid, text) | |||||||
| 			end | 			end | ||||||
| 			first = false | 			first = false | ||||||
| 			local def = awards.def[award.name] | 			local def = awards.def[award.name] | ||||||
| 			local title = award.name |  | ||||||
| 			 | 			 | ||||||
|  | 			if def and def.secret and not award.got then | ||||||
|  | 				formspec = formspec .. "#ACACACSecret Award" | ||||||
|  | 			else | ||||||
|  | 				local title = award.name			 | ||||||
| 				if def and def.title then | 				if def and def.title then | ||||||
| 					title = def.title | 					title = def.title | ||||||
| 				end			 | 				end			 | ||||||
| 			 |  | ||||||
| 				if award.got then | 				if award.got then | ||||||
| 					formspec = formspec .. minetest.formspec_escape(title) | 					formspec = formspec .. minetest.formspec_escape(title) | ||||||
| 				else | 				else | ||||||
| 					formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title) | 					formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title) | ||||||
| 				end | 				end | ||||||
| 			end | 			end | ||||||
|  | 		end		 | ||||||
| 		formspec = formspec .. ";"..sid.."]" | 		formspec = formspec .. ";"..sid.."]" | ||||||
|  |  | ||||||
| 		-- Show formspec to user | 		-- Show formspec to user | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								init.lua
									
									
									
									
									
								
							| @@ -126,7 +126,7 @@ awards.register_achievement("award_death1",{ | |||||||
| -- Burned to death | -- Burned to death | ||||||
| awards.register_achievement("award_burn",{ | awards.register_achievement("award_burn",{ | ||||||
| 	title = S("You're a witch!"), | 	title = S("You're a witch!"), | ||||||
| 	description = S("Burn to death in a fire"), | 	description = S("Burn to death in a fire") | ||||||
| }) | }) | ||||||
|  |  | ||||||
| -- 1 sentence | -- 1 sentence | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								readme.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								readme.md
									
									
									
									
									
								
							| @@ -17,9 +17,10 @@ The API | |||||||
| 	* sound [optional] | 	* sound [optional] | ||||||
| 	* image [optional] | 	* image [optional] | ||||||
| 	* trigger [optional] [table] | 	* trigger [optional] [table] | ||||||
| 		* type - "dig" or "place" | 		* type - "dig", "place", "death", "chat" or "join" | ||||||
| 		* (for dig/place type) node - the nodes name | 		* (for dig/place type) node - the nodes name | ||||||
| 		* (for all types) target - how many to dig / place | 		* (for all types) target - how many to dig / place | ||||||
|  | 	* secret [optional] - if true, then player needs to unlock to find out what it is. | ||||||
| * awards.give_achievement(name,award) | * awards.give_achievement(name,award) | ||||||
| 	* -- gives an award to a player | 	* -- gives an award to a player | ||||||
| * awards.register_onDig(func(player,data)) | * awards.register_onDig(func(player,data)) | ||||||
| @@ -28,6 +29,10 @@ The API | |||||||
| 	* -- return award name or null | 	* -- return award name or null | ||||||
| * awards.register_onDeath(func(player,data)) | * awards.register_onDeath(func(player,data)) | ||||||
| 	* -- return award name or null | 	* -- return award name or null | ||||||
|  | * awards.register_onChat(func(player,data)) | ||||||
|  | 	* -- return award name or null | ||||||
|  | * awards.register_onJoin(func(player,data)) | ||||||
|  | 	* -- return award name or null | ||||||
|  |  | ||||||
|  |  | ||||||
| Player Data | Player Data | ||||||
| @@ -42,3 +47,6 @@ A list of data referenced/hashed by the player's name. | |||||||
| 	* place [table] - place counter | 	* place [table] - place counter | ||||||
| 		* modname [table] | 		* modname [table] | ||||||
| 			* itemname [int] | 			* itemname [int] | ||||||
|  | 	* deaths | ||||||
|  | 	* chats | ||||||
|  | 	* joins | ||||||
		Reference in New Issue
	
	Block a user