unlimited pickaxe #1702

Closed
opened 2022-04-08 00:08:22 +00:00 by aliwoto · 17 comments

steps to reproduce

Set the replacer to a node which needs mesemaker priv to be placed (for example "Addjustable vaccuming tube".
Then try to use the replacer somewhere (works on any node).

Unexpected thing is that replacer will dig the node, but won't place anything in that position; this way it will just act as "unlimited pickaxe"... without getting any damage itself

I tried to test this on other nodes (or rather, all available nodes (TNT included)); seems like for the time being only nodes which need mesemaker priv works for this; also after seeing xp_redo's code, now I'm sure all tools which dig immediately won't give any xp (including replacer)

Not sure what's the difference of mesemaker nodes and TNT... seems like there is a completely separated checker for "tools which are not allowed to be placed on server" (even before checker for protection)

### steps to reproduce Set the replacer to a node which needs `mesemaker` priv to be placed (for example "Addjustable vaccuming tube". Then try to use the replacer somewhere (works on any node). Unexpected thing is that replacer will dig the node, but won't place anything in that position; this way it will just act as "unlimited pickaxe"... without getting any damage itself I tried to test this on other nodes (or rather, all available nodes (TNT included)); seems like for the time being only nodes which need mesemaker priv works for this; also after seeing xp_redo's code, now I'm sure all tools which dig immediately won't give any xp (including replacer) Not sure what's the difference of mesemaker nodes and TNT... seems like there is a completely separated checker for "tools which are not allowed to be placed on server" (even before checker for protection)
AliasAlreadyTaken added the
1. kind/bug
2. prio/critical
labels 2022-04-08 00:09:08 +00:00
Member

The node replacer already is an unlimited, instant pickaxe. I use it for mining nether basalt/ivory for that reason.

The node replacer already is an unlimited, instant pickaxe. I use it for mining nether basalt/ivory for that reason.

If the replacer makes a better mining tool than all the others together, then there's no point ever making a pickaxe?

In this case, the replacer needs rebalancing.

If the replacer makes a better mining tool than all the others together, then there's no point ever making a pickaxe? In this case, the replacer needs rebalancing.
AliasAlreadyTaken added the
1. kind/balancing
label 2022-04-08 00:33:59 +00:00
Member

On second thought, this actually is worse than the exploit that's fundamental to the tool existing in the first place.

On second thought, this actually *is* worse than the exploit that's fundamental to the tool existing in the first place.
Member
  1. the tool 100% needs to not "take" a node if it cannot "place" a node, no matter what the other considerations are.
  2. As a further step, perhaps the replacer shouldn't be able to replace a node that's on a higher "level" than the replacement?
1. the tool 100% needs to not "take" a node if it cannot "place" a node, no matter what the other considerations are. 1. As a further step, perhaps the replacer shouldn't be able to replace a node that's on a higher "level" than the replacement?

Or we could make the replacer only work in an owned area. That would rule out use in mining (unless the player took the extra step to make the area theirs temporarily. It would also rule out use in the nether, where it is most valuable and where no areas can exist.

Or we could make the replacer only work in an owned area. That would rule out use in mining (unless the player took the extra step to make the area theirs temporarily. It would also rule out use in the nether, where it is most valuable and where no areas can exist.
Member

hm.

only working in areas that you own would also keep people from digging lots of things over a large swath of area w/out removing/replacing the areas regularly, which seems desirable.

refusing to replace nodes when you can't "take" anything would also prevent people from using them to build on top of water, whether the area is protected or not. i've got a feeling that my "ocean building" update doesn't take the replacer into account.

further problems:

use an apple as the template. such a node can only be placed "on top" of another node, allowing you to replace any node that's not directly over a solid node to be replaced w/out cost

hm. only working in areas that you own would also keep people from digging lots of things over a large swath of area w/out removing/replacing the areas regularly, which seems desirable. refusing to replace nodes when you can't "take" anything would also prevent people from using them to build on top of water, whether the area is protected or not. i've got a feeling that my "ocean building" update doesn't take the replacer into account. further problems: use an apple as the template. such a node can only be placed "on top" of another node, allowing you to replace any node that's not directly over a solid node to be replaced w/out cost
Member

@AliasAlreadyTaken my "ocean builder" update doesn't seem to be live on the test server even? I assume because of that crash earlier? Which should be fixed? #1545

@AliasAlreadyTaken my "ocean builder" update doesn't seem to be live on the test server even? I assume because of that crash earlier? Which should be fixed? #1545

It's live on the testserver now, I'll test it this weekend

It's live on the testserver now, I'll test it this weekend
flux self-assigned this 2022-04-15 01:29:39 +00:00
flux added the
3. source/integration
label 2022-04-17 20:28:19 +00:00
Member

https://github.com/fluxionary/minetest-replacer_redo

i've been using it locally and it seems stable.

https://github.com/fluxionary/minetest-replacer_redo i've been using it locally and it seems stable.
flux added this to the flux's TODO list project 2022-07-02 20:33:08 +00:00
flux added the
4. step/discussion
label 2022-09-20 20:05:13 +00:00

With the discussion around restricting builders flight to owned areas in #3453 we could use a similar mechanic to restrict the replacer.

This would cause the replacer to become a builders tool, instead of a nether/mining/everywhere exploit.

With the discussion around restricting builders flight to owned areas in #3453 we could use a similar mechanic to restrict the replacer. This would cause the replacer to become a builders tool, instead of a nether/mining/everywhere exploit.
flux added
4. step/ready to QA test
and removed
4. step/discussion
labels 2023-03-04 20:04:10 +00:00
Member

i've added all of the restricted mesecons devices to the replacer blacklist: 8c7c894ac0

restricting use of the replacer to ones own protected areas will become another issue.

i've added all of the restricted mesecons devices to the replacer blacklist: https://gitea.your-land.de/your-land/yl_commons/commit/8c7c894ac00b0d18a3ca8df21b8d86719a865715 restricting use of the replacer to ones own protected areas will become another issue.
AliasAlreadyTaken added this to the 1.1.118 milestone 2023-04-13 19:25:15 +00:00

QA

There are also blocks on a blacklist on "nonmovables" by pistons. Do they overlap?

However, blacklist works

QA There are also blocks on a blacklist on "nonmovables" by pistons. Do they overlap? However, blacklist works
AliasAlreadyTaken added the
ugh/QA OK
label 2023-04-13 19:29:02 +00:00
Member

There are also blocks on a blacklist on "nonmovables" by pistons. Do they overlap?

there is certainly overlap, but not because the semantics are the same. there's not need to make both lists identical, or one a subset of the other, at least in the context of this issue.

> There are also blocks on a blacklist on "nonmovables" by pistons. Do they overlap? there is certainly overlap, but not because the semantics are the same. there's not need to make both lists identical, or one a subset of the other, at least in the context of this issue.
flux added
5. result/fixed
and removed
4. step/ready to QA test
labels 2023-04-25 20:28:07 +00:00
flux removed this from the flux's TODO list project 2023-04-25 20:28:11 +00:00
flux removed their assignment 2023-04-25 20:28:13 +00:00
Member

this is live

this is live
flux closed this issue 2023-04-25 20:28:29 +00:00

Breaks all legitimate use of mesemaker priv and node replacer to aid alignment in layout. Seems like the "nuclear option" instead of fixing the bug?

Breaks all legitimate use of mesemaker priv and node replacer to aid alignment in layout. Seems like the "nuclear option" instead of fixing the bug?

Breaks all legitimate use of mesemaker priv and node replacer to aid alignment in layout. Seems like the "nuclear option" instead of fixing the bug?

This is entirely not true. Expecially not "all legitimate use of mesemaker priv and node replacer" is broken. Your usecase creates a non-intended result: The replacer is able to create a state where tubes connect to a different machine part when the should not.

The "nuclear option" you are talking about is the minimum solution we can apply. Feel free to suggest a different (technical) solution and we will investigate it.

> Breaks all legitimate use of mesemaker priv and node replacer to aid alignment in layout. Seems like the "nuclear option" instead of fixing the bug? This is entirely not true. Expecially not "all legitimate use of mesemaker priv and node replacer" is broken. Your usecase creates a non-intended result: The replacer is able to create a state where tubes connect to a different machine part when the should not. The "nuclear option" you are talking about is the minimum solution we can apply. Feel free to suggest a different (technical) solution and we will investigate it.
Member

Breaks all legitimate use of mesemaker priv and node replacer to aid alignment in layout. Seems like the "nuclear option" instead of fixing the bug?

This is entirely not true. Expecially not "all legitimate use of mesemaker priv and node replacer" is broken. Your usecase creates a non-intended result: The replacer is able to create a state where tubes connect to a different machine part when the should not.

The "nuclear option" you are talking about is the minimum solution we can apply. Feel free to suggest a different (technical) solution and we will investigate it.

see what i wrote in #4289. it's possible create a mechanic to blacklist nodes dependent on player privileges, but not easily, if you don't want to break other things.

if you just want to rotate nodes once placed, the screwdriver/rhotator should work. if the screwdriver doesn't work, that's what we should fix. if you want rotation to not trigger callbacks that disconnect tubes, we should instead allow tubes to connect to more sides of the machines.

> > Breaks all legitimate use of mesemaker priv and node replacer to aid alignment in layout. Seems like the "nuclear option" instead of fixing the bug? > > This is entirely not true. Expecially not "all legitimate use of mesemaker priv and node replacer" is broken. Your usecase creates a non-intended result: The replacer is able to create a state where tubes connect to a different machine part when the should not. > > The "nuclear option" you are talking about is the minimum solution we can apply. Feel free to suggest a different (technical) solution and we will investigate it. see what i wrote in #4289. it's possible create a mechanic to blacklist nodes dependent on player privileges, but not easily, if you don't want to break other things. if you just want to rotate nodes once placed, the screwdriver/rhotator should work. if the screwdriver doesn't work, that's what we should fix. if you want rotation to not trigger callbacks that disconnect tubes, we should instead allow tubes to connect to more sides of the machines.
Sign in to join this conversation.
No Milestone
No project
No Assignees
4 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#1702
No description provided.