~gpcf/advtrains-devel

Add /at_chown to allow changing wagon ownership v1 PROPOSED

Maverick2797: 2
 Add /at_chown to allow changing wagon ownership
 Add /at_chown to allow changing wagon ownership

 2 files changed, 58 insertions(+), 0 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~gpcf/advtrains-devel/patches/57342/mbox | git am -3
Learn more about email & git

[PATCH] Add /at_chown to allow changing wagon ownership Export this patch

---
 advtrains/wagons.lua | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua
index cf15871..e6f4fe6 100644
--- a/advtrains/wagons.lua
+++ b/advtrains/wagons.lua
@@ -1558,3 +1558,32 @@ function advtrains.wagon_entity_pairs_in_train(train_id)
	if not train then return function() end end
	return advtrains.next_wagon_entity_in_train, train, 0
end

minetest.register_chatcommand("at_chown", {
	params = "<wagon_id> <player_name>",
	description = "Change the owner of an advtrains wagon",
	privs = {train_admin=true},
	func = function(name, param)
		local params = string.split(param," ")
		local wid = params[1]
		local new_owner = params[2]
		if not wid then return false end --no params added
		--player name checks
		if not new_owner then return false, attrans("Please specify a player name to transfer ownership to.") end --no player name argument
		if not core.player_exists(new_owner) then return false, attrans("That player does not exist!") end --is a valid player
		--wagon id checks
		if not wid:match("%d%d%d%d%d%d") then return false, attrans("Not a valid wagon id.") end -- invalid wagon id
		local w_data = advtrains.wagons[wid]
		if not w_data then return false, attrans("That wagon does not exist!") end
		-- actually chown the wagon
		local curr_owner = w_data.owner
		w_data.owner = new_owner
		advtrains.wagons[wid] = w_data
		advtrains.log("Chown", name, minetest.get_player_by_name(name):get_pos(), "wid="..wid..", from="..curr_owner..", to="..new_owner)

		if name ~= new_owner then
			minetest.chat_send_player(new_owner, attrans("You have been given ownership of wagon @1", wid))
		end
		return true, attrans("Wagon @1 ownership changed from @2 to @3", wid, curr_owner, new_owner)
	end
})
\ No newline at end of file
-- 
2.46.0

[PATCH v2] Add /at_chown to allow changing wagon ownership Export this patch

diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua
index cf15871..7095c05 100644
--- a/advtrains/wagons.lua
+++ b/advtrains/wagons.lua
@@ -1558,3 +1558,32 @@ function advtrains.wagon_entity_pairs_in_train(train_id)
	if not train then return function() end end
	return advtrains.next_wagon_entity_in_train, train, 0
end

minetest.register_chatcommand("at_chown", {
	params = "<wagon_id> <player_name>",
	description = "Change the owner of an advtrains wagon",
	privs = {train_admin=true},
	func = function(name, param)
		local params = string.split(param," ")
		local wid = params[1]
		local new_owner = params[2]
		if not wid then return false end --no params added
		--player name checks
		if not new_owner then return false, attrans("Please specify a player name to transfer ownership to.") end --no player name argument
		if not core.player_exists(new_owner) then return false, attrans("That player does not exist!") end --is a valid player
		--wagon id checks
		if not wid:match("%d%d%d%d%d%d") then return false, attrans("Not a valid wagon id.") end -- invalid wagon id
		local w_data = advtrains.wagons[wid]
		if not w_data then return false, attrans("That wagon does not exist!") end
		-- actually chown the wagon
		local curr_owner = w_data.owner
		w_data.owner = new_owner
		advtrains.wagons[wid] = w_data
		advtrains.log("Chown", name, core.get_player_by_name(name):get_pos(), "wid="..wid..", from="..curr_owner..", to="..new_owner)

		if name ~= new_owner then
			core.chat_send_player(new_owner, attrans("You have been given ownership of wagon @1", wid))
		end
		return true, attrans("Wagon @1 ownership changed from @2 to @3", wid, curr_owner, new_owner)
	end
})
\ No newline at end of file
-- 
2.46.0