From e9322075a366f7d09b472194a13bdb239f7410cf Mon Sep 17 00:00:00 2001 From: orwell96 Date: Tue, 20 Feb 2018 16:22:31 +0100 Subject: Allow wagon owners to control their own trains ...even without the train_operator privilege This still doesn't allow them to control switches, but whatever... --- advtrains/wagons.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'advtrains/wagons.lua') diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua index fd01abd..81b7571 100644 --- a/advtrains/wagons.lua +++ b/advtrains/wagons.lua @@ -251,7 +251,7 @@ function wagon:on_step(dtime) --driver control for seatno, seat in ipairs(self.seats) do local driver=self.seatp[seatno] and minetest.get_player_by_name(self.seatp[seatno]) - local has_driverstand = self.seatp[seatno] and minetest.check_player_privs(self.seatp[seatno], {train_operator=true}) + local has_driverstand = self.seatp[seatno] and (minetest.check_player_privs(self.seatp[seatno], {train_operator=true}) or self.owner==self.seatp[seatno]) if self.seat_groups then has_driverstand = has_driverstand and (seat.driving_ctrl_access or self.seat_groups[seat.group].driving_ctrl_access) else -- cgit v1.2.3 From 4c512f1dc5755efc7afd55b58078ec466442f648 Mon Sep 17 00:00:00 2001 From: orwell96 Date: Tue, 20 Feb 2018 16:39:31 +0100 Subject: Allow wagon owners to drive their trains #2 The check was missing at check_seat_group_access --- advtrains/wagons.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'advtrains/wagons.lua') diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua index 81b7571..3ddd8b0 100644 --- a/advtrains/wagons.lua +++ b/advtrains/wagons.lua @@ -1084,7 +1084,7 @@ function wagon:seating_from_key_helper(pname, fields, no) end end function wagon:check_seat_group_access(pname, sgr) - if self.seat_groups[sgr].driving_ctrl_access and not minetest.check_player_privs(pname, "train_operator") then + if self.seat_groups[sgr].driving_ctrl_access and not (minetest.check_player_privs(pname, "train_operator") or self.owner==pname) then return false, "Missing train_operator privilege." end if not self.seat_access then -- cgit v1.2.3 From 481f6218a8b377a0826b7e080046b5a890702e12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20P=C3=A9rez-Cerezo?= Date: Wed, 21 Feb 2018 19:58:45 +0100 Subject: Log certain events in a logfile in the world directory (also fix the output of /at_sync_ndb) --- advtrains/wagons.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'advtrains/wagons.lua') diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua index 3ddd8b0..2dce41b 100644 --- a/advtrains/wagons.lua +++ b/advtrains/wagons.lua @@ -1087,6 +1087,9 @@ function wagon:check_seat_group_access(pname, sgr) if self.seat_groups[sgr].driving_ctrl_access and not (minetest.check_player_privs(pname, "train_operator") or self.owner==pname) then return false, "Missing train_operator privilege." end + if self.seat_groups[sgr].driving_ctrl_access then + advtrains.log("Drive", pname, self.object:getpos(), self:train().text_outside) + end if not self.seat_access then return true end @@ -1120,7 +1123,8 @@ function wagon:safe_decouple(pname) minetest.chat_send_player(pname, "Couple is locked (ask owner or admin to unlock it)") return false end - atprint("wagon:discouple() Splitting train", selftrain_id) + atprint("wagon:discouple() Splitting train", self.train_id) + advtrains.log("Discouple", pname, self.object:getpos(), self:train().text_outside) advtrains.split_train_at_wagon(self)--found in trainlogic.lua return true end -- cgit v1.2.3