Freebie reports: We need an arena, where no one ... #2880

Open
opened 2022-10-17 16:31:19 +00:00 by yourland-report · 8 comments

Freebie reports a bug:

We need an arena, where no one can eat golden apples during pvp or something else for fair fights.

Player position:

{
	x = 1992.1689453125,
	y = 14.5,
	z = 1148.1999511719
}

Player look:

{
	x = 0.077658355236053,
	y = -0.3953852057457,
	z = 0.91522657871246
}

Player information:

{
	formspec_version = 6,
	ip_version = 6,
	min_rtt = 0.017000000923872,
	protocol_version = 41,
	avg_rtt = 0.020999999716878,
	min_jitter = 0,
	avg_jitter = 0.0099999997764826,
	connection_uptime = 133,
	major = 5,
	patch = 1,
	lang_code = "de",
	state = "Active",
	version_string = "5.6.1",
	max_jitter = 0.9889999628067,
	minor = 6,
	serialization_version = 29,
	max_rtt = 1.0110000371933
}

Player meta:

{
	fields = {
		crafted = "5",
		["3d_armor_inventory"] = "return {\"3d_armor:helmet_crystal 1 13620\", \"3d_armor:boots_crystal 1 13620\", \"shields:shield_crystal 1 13620\", \"3d_armor:leggings_crystal 1 13620\", \"3d_armor:chestplate_crystal 1 13620\", \"\"}",
		hud_state = "on",
		["stamina:level"] = "12",
		["stamina:poisoned"] = "no",
		yl_church = "return {[\"last_death\"] = {[\"y\"] = -12, [\"x\"] = 5984, [\"z\"] = 2968}, [\"last_death_portal\"] = 1649963868}",
		arenalib_infobox_arenaID = "0",
		xp = "7",
		digged_nodes = "1",
		partychat = "party",
		repellant = "0",
		yl_commons_player_created = "1649959597",
		yl_commons_player_joined = "1666024213",
		bitten = "0",
		played_time = "34697",
		jointime = "1649959597",
		placed_nodes = "2",
		died = "1",
		["stamina:exhaustion"] = "0"
	}
}

Log identifier


[MOD] yl_report log identifier = T6I93JhP2zSDijopYhyo0KiMWqPPDVDI

Profiler save:

profile-20221017T163119.json_prettyEE

Status:

# Server: version: 5.6.1-yl | game: Minetest Game | uptime: 2h 8min 20s | max lag: 2.47s | clients: Owlen, MineWorlds, icser, Easternwind, Bond007, Boot, Freebie, the_chosen_one, rabenkind, flux, fryr1234, Chache, MrUnix, Bailiff, ivann, wordes, Willow, Bla, debiankaios, Parrish

Teleport command:

/teleport xyz 1992 15 1148

Compass command:

/give_compass Construction T6I93JhP2zSDijopYhyo0KiMWqPPDVDI D2691E 1992 15 1148
Freebie reports a bug: > We need an arena, where no one can eat golden apples during pvp or something else for fair fights. Player position: ``` { x = 1992.1689453125, y = 14.5, z = 1148.1999511719 } ``` Player look: ``` { x = 0.077658355236053, y = -0.3953852057457, z = 0.91522657871246 } ``` Player information: ``` { formspec_version = 6, ip_version = 6, min_rtt = 0.017000000923872, protocol_version = 41, avg_rtt = 0.020999999716878, min_jitter = 0, avg_jitter = 0.0099999997764826, connection_uptime = 133, major = 5, patch = 1, lang_code = "de", state = "Active", version_string = "5.6.1", max_jitter = 0.9889999628067, minor = 6, serialization_version = 29, max_rtt = 1.0110000371933 } ``` Player meta: ``` { fields = { crafted = "5", ["3d_armor_inventory"] = "return {\"3d_armor:helmet_crystal 1 13620\", \"3d_armor:boots_crystal 1 13620\", \"shields:shield_crystal 1 13620\", \"3d_armor:leggings_crystal 1 13620\", \"3d_armor:chestplate_crystal 1 13620\", \"\"}", hud_state = "on", ["stamina:level"] = "12", ["stamina:poisoned"] = "no", yl_church = "return {[\"last_death\"] = {[\"y\"] = -12, [\"x\"] = 5984, [\"z\"] = 2968}, [\"last_death_portal\"] = 1649963868}", arenalib_infobox_arenaID = "0", xp = "7", digged_nodes = "1", partychat = "party", repellant = "0", yl_commons_player_created = "1649959597", yl_commons_player_joined = "1666024213", bitten = "0", played_time = "34697", jointime = "1649959597", placed_nodes = "2", died = "1", ["stamina:exhaustion"] = "0" } } ``` Log identifier ``` [MOD] yl_report log identifier = T6I93JhP2zSDijopYhyo0KiMWqPPDVDI ``` Profiler save: ``` profile-20221017T163119.json_prettyEE ``` Status: ``` # Server: version: 5.6.1-yl | game: Minetest Game | uptime: 2h 8min 20s | max lag: 2.47s | clients: Owlen, MineWorlds, icser, Easternwind, Bond007, Boot, Freebie, the_chosen_one, rabenkind, flux, fryr1234, Chache, MrUnix, Bailiff, ivann, wordes, Willow, Bla, debiankaios, Parrish ``` Teleport command: ``` /teleport xyz 1992 15 1148 ``` Compass command: ``` /give_compass Construction T6I93JhP2zSDijopYhyo0KiMWqPPDVDI D2691E 1992 15 1148 ```
AliasAlreadyTaken was assigned by yourland-report 2022-10-17 16:31:19 +00:00

Suggested Approach 1:

  1. In Arena pvp fights, contestants can decide which items are allowed in inventory + bags to enter the arena. Lets call this allow mode.
  2. In addition to (1) we may also have a disallowed mode, like these items are the only disallowed items, everything else is allowed in inventory + bags.
  3. We may also let contestants decide the quantity of each item in allowed mode using a integer textbox field.

Suggested Implementation:
Note: This implementation does not cover (3).

We may use a special chest (Lets call it ChestX). So participants deposit clones of the allowable (or disallowable) items (they get back the original item, just like sortable tubes). For example, I want pvp with bare hands so I add only carrot to ChestX in allow mode. After the game starts if I enter the arena with items other than carrots in inventory or bags then I will be prevented to enter the arena with a displayed warning in console that "You are carrying more kind of items than allowed".

Pros: Privacy friendly since contestants do not know the exact contents of rivals' inventory in case of disallow mode of ChestX.
Cons: N/A


Suggested Approach 2:

Transparency can also be achieved if we somehow show the contents of inventory + bags to each of the pvp participants.

Suggested Implementation:

  1. Let's say 3 Participants resgister as pvp contentants (maybe console type /register Bond007 while inside the arena?) so that public cannot see the inventory + bags contents.
  2. After registration each mark themselves "ready" by typing /ready while inside the arena. This locks the contestants' inventories + bags and let's other contentants know that they are ready.
  3. On console typing /show-inventory the console shows the item names of all the inventory + bags of each contestant to verify visually.
  4. Now the participants can pvp each other. This step does not need to have special control. Contestants can manage through regular chat.

Cons:

  • It is easy to abuse this method, players can demand someone stole something and to visually verify their inventory using this method.
  • It is invasion of privacy since inventory contents non-relevant to fight are also make public to the contestants.
  • If one contestant's inventory and bags are full and they get caught using let's say gApples during visual verification, and they /unready and dispose off the gApples and /ready again, they say ok now they've removed it. So other contestants need to /show-inventory and verify the mess of item-names again. It'll be a huge list in console.
**Suggested Approach 1:** 1) In Arena pvp fights, contestants can decide which items are allowed in inventory + bags to enter the arena. Lets call this allow mode. 2) In addition to (1) we may also have a disallowed mode, like these items are the only disallowed items, everything else is allowed in inventory + bags. 3) We may also let contestants decide the quantity of each item in allowed mode using a integer textbox field. **Suggested Implementation:** Note: This implementation does not cover (3). We may use a special chest (Lets call it ChestX). So participants deposit clones of the allowable (or disallowable) items (they get back the original item, just like sortable tubes). For example, I want pvp with bare hands so I add only carrot to ChestX in allow mode. After the game starts if I enter the arena with items other than carrots in inventory or bags then I will be prevented to enter the arena with a displayed warning in console that "You are carrying more kind of items than allowed". Pros: Privacy friendly since contestants do not know the exact contents of rivals' inventory in case of disallow mode of ChestX. **Cons: N/A** ----- **Suggested Approach 2:** Transparency can also be achieved if we somehow show the contents of inventory + bags to each of the pvp participants. **Suggested Implementation:** 1) Let's say 3 Participants resgister as pvp contentants (maybe console type /register Bond007 while inside the arena?) so that public cannot see the inventory + bags contents. 2) After registration each mark themselves "ready" by typing /ready while inside the arena. This locks the contestants' inventories + bags and let's other contentants know that they are ready. 3) On console typing /show-inventory the console shows the item names of all the inventory + bags of each contestant to verify visually. 4) Now the participants can pvp each other. This step does not need to have special control. Contestants can manage through regular chat. **Cons:** - It is easy to abuse this method, players can demand someone stole something and to visually verify their inventory using this method. - It is invasion of privacy since inventory contents non-relevant to fight are also make public to the contestants. - If one contestant's inventory and bags are full and they get caught using let's say gApples during visual verification, and they /unready and dispose off the gApples and /ready again, they say ok now they've removed it. So other contestants need to /show-inventory and verify the mess of item-names again. It'll be a huge list in console.
flux added the
1. kind/enhancement
4. step/discussion
labels 2022-10-17 17:39:28 +00:00
Member

see e.g. your-land/reports#359 for an example of a social issue caused by players "cheating" on the rules they agreed upon.

i.m.o. this is a social issue which needs a social solution, because no good technical solution exists, particularly not one that's easy to implement.

the technical side of this is incredibly difficult to fully resolve - it would involve an AI that could interpret players' wishes and translate that into rules for the arena.

however, we can imagine adding some buttons to the "player vs. player" arena game-mode formspec to enable or disable the use of certain items, or to enact other restrictions. providing a free-form textbox to specify either what is or isn't allowed is a terrible suggestion, as it depends on players knowing itemstrings and correctly spelling everything, neither of which is a reasonable expectation.

given that players have a way of choosing restrictions, how would we prevent players from bringing illegal items into the arena? it can't just be a one-time check - imagine if someone threw a balrog whip into the arena from above and one of the fighters picked it up. checking every step would be expensive, and a player might still be able to pick up the whip and use it before the next server step, particularly if there's lag. more-over, dropped items aren't necessarily the only way to get a new item to a player after the tournament has started, e.g. the unimplemented "barter command" (#423), or the "feed other players" mechanic ( #2745). in general, there's no solution w/out overriding just about everything in the game.

we could override the on_use etc. methods of the item to cause a player to immediately loose the game if they use an illegal item, but this has implications for other players who are legitimately using items no-where near the arena. also, given that the arena is already somewhat buggy w.r.t. when rounds start and end, and who's "involved" (#2439)

see e.g. https://gitea.your-land.de/your-land/reports/issues/359 for an example of a social issue caused by players "cheating" on the rules they agreed upon. i.m.o. this is a social issue which needs a social solution, because no good technical solution exists, particularly not one that's easy to implement. the technical side of this is incredibly difficult to fully resolve - it would involve an AI that could interpret players' wishes and translate that into rules for the arena. however, we can imagine adding some buttons to the "player vs. player" arena game-mode formspec to enable or disable the use of certain items, or to enact other restrictions. providing a free-form textbox to specify either what is or isn't allowed is a terrible suggestion, as it depends on players knowing itemstrings and correctly spelling everything, neither of which is a reasonable expectation. given that players have a way of choosing restrictions, how would we prevent players from bringing illegal items into the arena? it can't just be a one-time check - imagine if someone threw a balrog whip into the arena from above and one of the fighters picked it up. checking every step would be expensive, and a player might still be able to pick up the whip and use it before the next server step, particularly if there's lag. more-over, dropped items aren't necessarily the only way to get a new item to a player after the tournament has started, e.g. the unimplemented "barter command" (#423), or the "feed other players" mechanic ( #2745). in general, there's no solution w/out overriding just about everything in the game. we could override the `on_use` etc. methods of the item to cause a player to immediately loose the game if they use an illegal item, but this has implications for other players who are legitimately using items no-where near the arena. also, given that the arena is already somewhat buggy w.r.t. when rounds start and end, and who's "involved" (#2439)

As flux said, it is more a social issue that needs a social solution. Why not use bailiffs as neutral seconds?

Why not give bailiffs the priv to look in all players inventory and bags, the one who set their pvp to fight. So the seconds could look for undesired items.

As flux said, it is more a social issue that needs a social solution. Why not use bailiffs as neutral seconds? Why not give bailiffs the priv to look in all players inventory and bags, the one who set their pvp to fight. So the seconds could look for undesired items.
Member

Why not give bailiffs the priv to look in all players inventory and bags, the one who set their pvp to fight. So the seconds could look for undesired items.

currently, admins don't even have the ability to do that w/out a bunch of work. though i've wanted to make a generic "inventory inspector" for a long time now.

> Why not give bailiffs the priv to look in all players inventory and bags, the one who set their pvp to fight. So the seconds could look for undesired items. currently, admins don't even have the ability to do that w/out a bunch of work. though i've wanted to make a generic "inventory inspector" for a long time now.

Im unsure if PVP is used that much in YL that its worth all the work the solutions would require. especially making it a bailiffs job to check inventories. bailiffs arent available all the time and even if most are players too probably busy playing.

but yes option for admins to check inventories more easily would be really usefull

Im unsure if PVP is used that much in YL that its worth all the work the solutions would require. especially making it a bailiffs job to check inventories. bailiffs arent available all the time and even if most are players too probably busy playing. but yes option for admins to check inventories more easily would be really usefull

arena_lib allows restricting the inventory. It takes the contents of the inv and stores it away.

When someone eats a golden apple, are there not icons or sprites emerging from the person?

Staff or bailiff inv access: Sure, could be useful in some rare cases. However searching a player's inventory is some invasion of privacy I do not want as a easily available option. We do not read players mails, we do not search players areas, we do not read players PMs or anything, unless there's a report or the safe operation of the server forces us to.

However, when a player agrees to publish their inventory temporarily to trusted parties (read: bailiffs) or their pvp oppponent, we could implement such a /publish_inventory command

Another way to do it could be a chest, where participants add items to, which are forbidden. Then, when they enter the arena, there's a message whenever a player uses such a forbidden item or has it in inventory.

arena_lib allows restricting the inventory. It takes the contents of the inv and stores it away. When someone eats a golden apple, are there not icons or sprites emerging from the person? Staff or bailiff inv access: Sure, could be useful in some rare cases. However searching a player's inventory is some invasion of privacy I do not want as a easily available option. We do not read players mails, we do not search players areas, we do not read players PMs or anything, unless there's a report or the safe operation of the server forces us to. However, when a player agrees to publish their inventory temporarily to trusted parties (read: bailiffs) or their pvp oppponent, we could implement such a /publish_inventory command Another way to do it could be a chest, where participants add items to, which are forbidden. Then, when they enter the arena, there's a message whenever a player uses such a forbidden item or has it in inventory.
Member

Another way to do it could be a chest, where participants add items to, which are forbidden. Then, when they enter the arena, there's a message whenever a player uses such a forbidden item or has it in inventory.

That would be a cool option, even for some quests.

> Another way to do it could be a chest, where participants add items to, which are forbidden. Then, when they enter the arena, there's a message whenever a player uses such a forbidden item or has it in inventory. That would be a cool option, even for some quests.

I know this is a very late response, but in regards to wanting an inventory viewer I found a mod, it does work, but you can't view bags only main inventory and craft grid inventory.

https://content.minetest.net/packages/Acronymmk/inv_inspector/

I know this is a very late response, but in regards to wanting an inventory viewer I found a mod, it does work, but you can't view bags only main inventory and craft grid inventory. https://content.minetest.net/packages/Acronymmk/inv_inspector/
Sign in to join this conversation.
No Milestone
No project
No Assignees
8 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: your-land/bugtracker#2880
No description provided.