Flags for JPipes

Right now with TruePVE, you can damage anyones JPipes. Is there a way we could get a flag to prevent damage to these? Not sure exactly how to go about this as I have EntityOwner but when you look at the JPipes and type in /prod it comes back as Owner being unknown. Or would another plugin help prevent this like DamageControl? If anyone has any ideas please let me know or if the Owner could add a flag some how that would be awesome. Thanks in advance for anything. 

post your config

It's the normal/default TruePVE settings

alright. i will need you to use tpve.trace and then destroy a pipe, and send me the log. i do not use the plugin nor know how :p

======================
== STARTING TRACE ==
== 09:12:33.56983 ==
======================
From: BasePlayer, player
To: BuildingBlock, wall.low
No shared locations (empty location) - no exclusions
No exclusion found - looking up RuleSet...
Using RuleSet "default"
Initiator is player who does not own non-player target; block and return

Merged post

The other thing is when you hit the pipe with a Hammer it shows who the Owner is but when you type in /prod to see the Owner it says unknown. 

Initiator is player who does not own non-player target; block and return

this states the damage was blocked. i need a trace showing the damage was allowed

But that's just it, damage was dealt to the pipe. Nothing else can be damaged except the JPipes

nah, that's not possible. damage was blocked in that trace because it had an owner.

it's what you've been saying all along. the damage is not blocked when it has no owner.

use this to confirm:

replace

            if (entity.OwnerID == 0 || entity is BaseHelicopter)
            {
                return false;
            }​

with

            if (entity.OwnerID == 0 || entity is BaseHelicopter)
            {
                return entity.prefabID == 310235277 && !entity.enableSaving;
            }​

in the CS

I'll give that a try when I get back home

Merged post

https://i.imgur.com/IyGfJrT.jpg

Copied that exact text and tried to find it in the .cs file with No Results

ah right, that only applies to my test version. my apologies. damage was blocked regardless of having an owner then.

start a trace, do damage for a few seconds, end the trace, and post the entire trace file to pastebin and give me the link. then i can sort out the blocked damage from the allowed damage myself

I'm unfamiliar with pastebin and how it works. I tried before and couldn't get the thing pasted on here. I'll do another trace

watch a video. it's far better to paste large texts from there than posting them here. they lose all format and look awful

there is also ways to insert snippets of code but you have to click the button to use it :D

buttons are <> and {;} when you're editing or replying

So I placed a Quarry, Furnace, and TC down and then created a JPipe. I then had the player throw C4 at it and it caused damage. This is what the trace came back as. He did not have Auth on the TC either

======================
== STARTING TRACE ==
== 06:44:45.08421 ==
======================
From: BasePlayer, player
To: BuildingBlock, wall.low
Checking exclusions between [empty] and [empty]
Shared locations: none
No shared locations, or no matching exclusion mapping - no exclusions
No exclusion found - looking up RuleSet...
Using RuleSet "default"
Initiator is player with authorization over non-player target; allow and return

======================
== STARTING TRACE ==
== 06:44:46.66032 ==
======================
From: BasePlayer, player
To: BuildingBlock, wall.low
Checking exclusions between [empty] and [empty]
Shared locations: none
No shared locations, or no matching exclusion mapping - no exclusions
No exclusion found - looking up RuleSet...
Using RuleSet "default"
Initiator is player with authorization over non-player target; allow and return

ok perfect. you can replace to fix this yourself after all. I would post an update, but it must wait until I fix other issues with it. this solution will likely be temporary as well

                if (entity.OwnerID == player.userID || entity.OwnerID == 0)
                {
                    return true; // allow damage to entities that the player owns
                }​

replace with

                if (entity.OwnerID == player.userID || entity.OwnerID == 0)
                {
                    return entity.prefabID != 310235277 && entity.enableSaving;
                }

this happens because of the AuthorizedDamage flag. no surprise there.

this wouldn't be an issue if JPipes properly assigned the OwnerID to each pipe. you should request this bug be fixed :p

Thanks boss. I'll try this later this afternoon. I posted something in the JPipes section asking for an Owner to be assigned when the pipe is placed. Thanks again and I'll let you know later if it worked or not.