mirror of
				https://gitlab.com/rubenwardy/awards.git
				synced 2025-11-03 22:35:27 +01:00 
			
		
		
		
	Compare commits
	
		
			4 Commits
		
	
	
		
			github/for
			...
			89d4a93f3b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					89d4a93f3b | ||
| 
						 | 
					cae2c1ee3b | ||
| 
						 | 
					54db6ce0c0 | ||
| 
						 | 
					1ffa8f10ac | 
							
								
								
									
										14
									
								
								locale/de.po
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								locale/de.po
									
									
									
									
									
								
							@@ -102,8 +102,8 @@ msgstr[1] "Bauen Sie Blöcke ab: @1×@2"
 | 
			
		||||
#: triggers.lua
 | 
			
		||||
msgid "Mine @1 block."
 | 
			
		||||
msgid_plural "Mine @1 blocks."
 | 
			
		||||
msgstr[0] ""
 | 
			
		||||
msgstr[1] ""
 | 
			
		||||
msgstr[0] "Bauen Sie einen @1 Block ab."
 | 
			
		||||
msgstr[1] "Bauen Sie @1 Blöcke ab."
 | 
			
		||||
 | 
			
		||||
#: triggers.lua
 | 
			
		||||
msgid "@1/@2 placed"
 | 
			
		||||
@@ -119,8 +119,8 @@ msgstr[1] "Platzieren Sie Blöcke: @1×@2"
 | 
			
		||||
#: triggers.lua
 | 
			
		||||
msgid "Place a block."
 | 
			
		||||
msgid_plural "Place @1 blocks."
 | 
			
		||||
msgstr[0] ""
 | 
			
		||||
msgstr[1] ""
 | 
			
		||||
msgstr[0] "Platzieren Sie einen Block."
 | 
			
		||||
msgstr[1] "Platzieren Sie @1 Blöcke."
 | 
			
		||||
 | 
			
		||||
#: triggers.lua
 | 
			
		||||
msgid "@1/@2 eaten"
 | 
			
		||||
@@ -151,13 +151,13 @@ msgstr[1] "Sterben Sie @1 mal."
 | 
			
		||||
 | 
			
		||||
#: triggers.lua
 | 
			
		||||
msgid "@1/@2 chat messages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "@1/@2 Chatnachrichten"
 | 
			
		||||
 | 
			
		||||
#: triggers.lua
 | 
			
		||||
msgid "Write something in chat."
 | 
			
		||||
msgid_plural "Write @1 chat messages."
 | 
			
		||||
msgstr[0] ""
 | 
			
		||||
msgstr[1] ""
 | 
			
		||||
msgstr[0] "Schreiben Sie etwas im Chat."
 | 
			
		||||
msgstr[1] "Schreiben Sie @1 Chatnachrichten."
 | 
			
		||||
 | 
			
		||||
#: triggers.lua
 | 
			
		||||
msgid "@1/@2 game joins"
 | 
			
		||||
 
 | 
			
		||||
@@ -43,10 +43,6 @@ end
 | 
			
		||||
-- name - the name of the player
 | 
			
		||||
-- award - the name of the award to give
 | 
			
		||||
function awards.unlock(name, award)
 | 
			
		||||
	if not minetest.get_player_by_name(name) or not minetest.get_player_by_name(name):is_player() then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Access Player Data
 | 
			
		||||
	local data  = awards.player(name)
 | 
			
		||||
	local awdef = awards.registered_awards[award]
 | 
			
		||||
@@ -64,7 +60,7 @@ function awards.unlock(name, award)
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Unlock Award
 | 
			
		||||
	minetest.log("action", name.." has unlocked award "..award)
 | 
			
		||||
	minetest.log("action", name.." has unlocked award "..name)
 | 
			
		||||
	data.unlocked[award] = award
 | 
			
		||||
	awards.save()
 | 
			
		||||
 | 
			
		||||
@@ -95,7 +91,7 @@ function awards.unlock(name, award)
 | 
			
		||||
	local title = awdef.title or award
 | 
			
		||||
	local desc = awdef.description or ""
 | 
			
		||||
	local background = awdef.background or "awards_bg_default.png"
 | 
			
		||||
	local icon = awdef.icon.."^[resize:16x16" or "awards_unknown.png"
 | 
			
		||||
	local icon = awdef.icon or "awards_unknown.png"
 | 
			
		||||
	local sound = awdef.sound
 | 
			
		||||
	if sound == nil then
 | 
			
		||||
		-- Explicit check for nil because sound could be `false` to disable it
 | 
			
		||||
@@ -126,6 +122,9 @@ function awards.unlock(name, award)
 | 
			
		||||
		end
 | 
			
		||||
	else
 | 
			
		||||
		local player = minetest.get_player_by_name(name)
 | 
			
		||||
		if not (player and player.is_player and player:is_player()) then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
		local one = player:hud_add({
 | 
			
		||||
			hud_elem_type = "image",
 | 
			
		||||
			name = "award_bg",
 | 
			
		||||
 
 | 
			
		||||
@@ -62,9 +62,6 @@ function awards.register_trigger(tname, tdef)
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		function tdef.notify(player)
 | 
			
		||||
			if not player:is_player() or not minetest.get_player_by_name(player:get_player_name()) then
 | 
			
		||||
				return
 | 
			
		||||
			end
 | 
			
		||||
			assert(player and player.is_player and player:is_player())
 | 
			
		||||
			local name = player:get_player_name()
 | 
			
		||||
			local data = awards.player(name)
 | 
			
		||||
@@ -155,10 +152,6 @@ function awards.register_trigger(tname, tdef)
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			if not player:is_player() or not minetest.get_player_by_name(player:get_player_name()) then
 | 
			
		||||
				return
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			assert(player and player.is_player and player:is_player() and key)
 | 
			
		||||
			local name = player:get_player_name()
 | 
			
		||||
			local data = awards.player(name)
 | 
			
		||||
@@ -167,9 +160,8 @@ function awards.register_trigger(tname, tdef)
 | 
			
		||||
			data[tname] = data[tname] or {}
 | 
			
		||||
			local currentVal = (data[tname][key] or 0) + n
 | 
			
		||||
			data[tname][key] = currentVal
 | 
			
		||||
			data[tname].__total = (data[tname].__total or 0)
 | 
			
		||||
			if key:sub(1, 6) ~= "group:" then
 | 
			
		||||
				data[tname].__total = data[tname].__total + n
 | 
			
		||||
				data[tname].__total = (data[tname].__total or 0) + n
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			tdef:run_callbacks(player, data, function(entry)
 | 
			
		||||
@@ -181,6 +173,7 @@ function awards.register_trigger(tname, tdef)
 | 
			
		||||
				else
 | 
			
		||||
					return
 | 
			
		||||
				end
 | 
			
		||||
 | 
			
		||||
				if current >= entry.target then
 | 
			
		||||
					return entry.award
 | 
			
		||||
				end
 | 
			
		||||
@@ -208,7 +201,7 @@ end
 | 
			
		||||
 | 
			
		||||
function awards.increment_item_counter(data, field, itemname, count)
 | 
			
		||||
	itemname = minetest.registered_aliases[itemname] or itemname
 | 
			
		||||
	data[field][itemname] = (data[field][itemname] or 0) + (count or 1)
 | 
			
		||||
	data[field][itemname] = (data[field][itemname] or 0) + 1
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function awards.get_item_count(data, field, itemname)
 | 
			
		||||
 
 | 
			
		||||
@@ -2,28 +2,39 @@
 | 
			
		||||
 | 
			
		||||
local S = awards.gettext
 | 
			
		||||
 | 
			
		||||
minetest.register_privilege("awards_admin", { description = "Can manage awards of given player" })
 | 
			
		||||
 | 
			
		||||
minetest.register_chatcommand("awards", {
 | 
			
		||||
	params = S("[c|clear|disable|enable]"),
 | 
			
		||||
	description = S("Show, clear, disable or enable your awards"),
 | 
			
		||||
	params = "[c|clear|disable|enable] [player_name]",
 | 
			
		||||
	description = "Show, clear, disable or enable player's awards",
 | 
			
		||||
	func = function(name, param)
 | 
			
		||||
		if param == "clear" then
 | 
			
		||||
			awards.clear_player(name)
 | 
			
		||||
			minetest.chat_send_player(name,
 | 
			
		||||
			S("All your awards and statistics have been cleared. You can now start again."))
 | 
			
		||||
		elseif param == "disable" then
 | 
			
		||||
			awards.disable(name)
 | 
			
		||||
			minetest.chat_send_player(name, S("You have disabled awards."))
 | 
			
		||||
		elseif param == "enable" then
 | 
			
		||||
			awards.enable(name)
 | 
			
		||||
			minetest.chat_send_player(name, S("You have enabled awards."))
 | 
			
		||||
		elseif param == "c" then
 | 
			
		||||
			awards.show_to(name, name, nil, true)
 | 
			
		||||
		else
 | 
			
		||||
		if not minetest.check_player_privs(name, { awards_admin = true }) then
 | 
			
		||||
			return false, "You need awards_admin privilege!"
 | 
			
		||||
		end
 | 
			
		||||
		local action, playern = param:split(" ")[1], param:split(" ")[2] or name
 | 
			
		||||
		if action == "clear" then
 | 
			
		||||
			awards.clear_player(playern)
 | 
			
		||||
			minetest.chat_send_player(playern,
 | 
			
		||||
				S("All your awards and statistics have been cleared. You can now start again."))
 | 
			
		||||
			minetest.chat_send_player(name, "All awards and statistics of "..playern.." have been cleared.")
 | 
			
		||||
		elseif action == "disable" then
 | 
			
		||||
			awards.disable(playern)
 | 
			
		||||
			minetest.chat_send_player(playern, "Your awards are disabled.")
 | 
			
		||||
			minetest.chat_send_player(name, "You have disabled awards of "..playern..".")
 | 
			
		||||
		elseif action == "enable" then
 | 
			
		||||
			awards.enable(playern)
 | 
			
		||||
			minetest.chat_send_player(playern, "Your awards are enabled.")
 | 
			
		||||
			minetest.chat_send_player(name, "You have enabled awards of "..playern..".")
 | 
			
		||||
		elseif action == "c" then
 | 
			
		||||
			awards.show_to(playern, name, nil, true)
 | 
			
		||||
		elseif not action then
 | 
			
		||||
			awards.show_to(name, name, nil, false)
 | 
			
		||||
		else
 | 
			
		||||
			awards.show_to(action, name, nil, true)
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		if (param == "disable" or param == "enable") and minetest.global_exists("sfinv") then
 | 
			
		||||
			local player = minetest.get_player_by_name(name)
 | 
			
		||||
		if (action == "disable" or action == "enable") and minetest.global_exists("sfinv") then
 | 
			
		||||
			local player = minetest.get_player_by_name(playern)
 | 
			
		||||
			if player then
 | 
			
		||||
				sfinv.set_player_inventory_formspec(player)
 | 
			
		||||
			end
 | 
			
		||||
 
 | 
			
		||||
@@ -109,15 +109,15 @@ awards.register_trigger("craft", {
 | 
			
		||||
	end,
 | 
			
		||||
	key_is_item = true,
 | 
			
		||||
})
 | 
			
		||||
minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
 | 
			
		||||
	if not player or itemstack:is_empty() then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local itemname = itemstack:get_name()
 | 
			
		||||
	itemname = minetest.registered_aliases[itemname] or itemname
 | 
			
		||||
	awards.notify_craft(player, itemname, itemstack:get_count())
 | 
			
		||||
end)
 | 
			
		||||
--minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
 | 
			
		||||
--	if not player or itemstack:is_empty() then
 | 
			
		||||
--		return
 | 
			
		||||
--	end
 | 
			
		||||
--
 | 
			
		||||
--	local itemname = itemstack:get_name()
 | 
			
		||||
--	itemname = minetest.registered_aliases[itemname] or itemname
 | 
			
		||||
--	awards.notify_craft(player, itemname, itemstack:get_count())
 | 
			
		||||
--end)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
awards.register_trigger("eat", {
 | 
			
		||||
@@ -137,5 +137,5 @@ minetest.register_on_item_eat(function(_, _, itemstack, player, _)
 | 
			
		||||
 | 
			
		||||
	local itemname = itemstack:get_name()
 | 
			
		||||
	itemname = minetest.registered_aliases[itemname] or itemname
 | 
			
		||||
	awards.notify_eat(player, itemname)
 | 
			
		||||
	awards.notify_craft(player, itemname, itemstack:get_count())
 | 
			
		||||
end)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user