1. @Wulf
    current implementation of OnRecycleItem hook calling differs from previous one,
    should we null the Blueprint now (but we cant) instead of returning False or what ever? Why this was changed?


    Code:
            if (Interface.CallHook("OnRecycleItem", (object) this, (object) slot2) != null)
            {
              if (!this.HasRecyclable())
              {
                this.StopRecycling();
                return;
              }
            }
            else if (!((UnityEngine.Object) slot2.info.Blueprint != (UnityEngine.Object) null))
              continue;
    
    compared to previous
    Code:
            if (Interface.CallHook("OnRecycleItem", (object) this, (object) slot2) != null)
            {
              if (this.HasRecyclable())
                return;
              this.StopRecycling();
              return;
            }
     
  2. Wulf

    Wulf Community Admin

    It has not changed. This is the current placement of it:

    39ac5e6e4556f71db57b5a01ebb363b9.png

    If you are self-patching, you're likely using an old version of the patcher and Oxide.Core.dll.
     
  3. redownloaded github.com/OxideMod/Oxide.Rust/releases/download/2.0.3904/Oxide.Rust.zip

    upload_2018-4-29_10-21-39.png
     
  4. Wulf

    Wulf Community Admin

    Ahh, right... it has a patch too. So yes, the index for the patch was off, but is now fixed. Thanks for the report!
     
  5. @Wulf sorry, but this can't be usable again (
    Code:
            if (Interface.CallHook("OnRecycleItem", (object) this, (object) slot2) != null && !this.HasRecyclable())
            {
              this.StopRecycling();
              return;
            }
    
     
  6. Wulf

    Wulf Community Admin

    What is wrong about it? It's technically the same as what is in your first post, but I'll adjust it so it's exactly.
     
  7. the whole thing is that if we manipulate item in recycler manually and return false on OnRecycleItem hook, current code is not breaking execution, but checks is there any items to recycle, but it's not correct.
    should be as a few patches ago
    Code:
            if (Interface.CallHook("OnRecycleItem", (object) this, (object) slot2) != null)
            {
              if (this.HasRecyclable())
                return;
              this.StopRecycling();
              return;
            }