R-Remover-Tool

Building and entity removal tool

Total Downloads: 63,270 - First Release: Apr 3, 2015 - Last Update: Feb 7, 2018

5/5, 105 likes
  1. Nvm. Solved
     
    Last edited by a moderator: Aug 15, 2015
  2. Hello.

    I have a question.

    For the moment, only admins can use /remove

    Users cannot ( basic 1 )

    I read above that if I put basic 2 admins can then decide to give the remove to a player : /remove PLAYERNAME

    In addition to that, can you confirm that in the game players WILL NOT HAVE the option to demolish ( permanently )( right click on the hammer ) the structure around them if they have the control of the toolcupboard ?

    I think that with basic to 1 : they don't. I suppose with basic 2 they will not have the demolish option on the hammer as well ?

    My setup :

    Code:
     },
      "Remove": {
        "admin": 2,
        "all": 2,
        "basic": 2,
        "target": 1
      },
    and indeed I can give permission to someone to remove : The command is :
    /remove target (nick) (time)
     
    Last edited by a moderator: Aug 17, 2015
  3. You are going wrong

    The demolisher on the hammer belong to the game, the remover tool is a plugin.
    So the basic level just manage the remover tool.

    If you want to edit the demolisher hammer you need an another pluggin
     
  4. people playing for the moment on the server tell me they cannot use the demolish option in their house. It is not a big deal as I give the remove if they need it but how is it possible if it is a mechanism of the game ? ( could it be the BuildingProtector plugin? )
     
  5. sure, when BuildingProtector is ON, no one can destroy building. Just admins and moderator, kind of logic but what can people do if they can't build during the raid off :s
    That's a problem, I didn't notice that hammer was blocked too for players during raid off.
     
  6. Hi.

    Can you tell me if it is possible for a future update to allow me to set a timeframe for :

    Basic 0 from a specific hour to a specific hour ( allowing people to use the remove )
    Basic 2 : for the rest of the schedule ( allowing only admin to use it or give to players via target )

    eg :

    Remove allowed basic0 from 1am until 7pm and passsing automatically Basic 2 from 7pm till 1am ?

    Would be really great to control the server as admin !

    Thx.
     
    Last edited by a moderator: Aug 20, 2015
  7. Anyone having problems with players dieing when using the /remove command and hitting a wall ect?
     
  8. @Reneb I've had some problems with removing big stuffs with /remove all and also probably many people using it experience huge lag/spikes so I've come up with solution for the server where I'm admin and I thought I will give you the code here so if you wish you may update it's your choice i just wanted to share it and hopefully easy the pain for many server owners. (it's slower but efficient)

    Some private variables (you may wish to change this because if few remove all are triggered only one will run):
    Code:
            private List<UnityEngine.Collider> wasKilled;
            private List<Vector3> checkFrom;
            private int current;
    Just replace the whole void RemoveAllFrom(Vector3 sourcepos) with:
    Code:
    void RemoveAllFrom(Vector3 sourcepos)
            {
                current = 0;
                checkFrom = new List<Vector3>();
                wasKilled = new List<UnityEngine.Collider>();
                checkFrom.Add(sourcepos);
                DelayRemove();
            }
       
            void DelayRemove()
            {
                if (current >= checkFrom.Count) { return; }
                current++; var hits = UnityEngine.Physics.OverlapSphere(checkFrom[current - 1], 3f);
                foreach (var hit in hits)
                {
                    if (!(wasKilled.Contains(hit)))
                    {
                        wasKilled.Add(hit);
                        if (hit.GetComponentInParent<BuildingBlock>() != null)
                        {
                            BuildingBlock fbuildingblock = hit.GetComponentInParent<BuildingBlock>();
                            checkFrom.Add(fbuildingblock.transform.position);
                            if (!fbuildingblock.isDestroyed)
                                fbuildingblock.KillMessage();
                        }
                        else if (hit.GetComponentInParent<BasePlayer>() == null && hit.GetComponentInParent<BaseEntity>() != null)
                        {
                            if(!(hit.GetComponentInParent<BaseEntity>().isDestroyed))
                                hit.GetComponentInParent<BaseEntity>().KillMessage();
                        }
                    }
                }
                timer.Once(0.001f, () => DelayRemove());
            }
     
    Last edited by a moderator: Aug 21, 2015
  9. Can anyone help, after last nights update the remove tool no longer works
    Code:
    [Oxide] 9:59 PM [Error] Failed to call hook 'cmdChatRemove' on plugin 'RemoverTool v2.2.18' (NullReferenceException: Object reference not set to an instance of an object)
    [Oxide] 9:59 PM [Debug]   at Oxide.Core.Libraries.Permission.GetUserData (System.String userid) [0x00000] in <filename unknown>:0
      at Oxide.Core.Libraries.Permission.UserHasPermission (System.String userid, System.String perm) [0x00000] in <filename unknown>:0
      at Oxide.Plugins.RemoverTool.hasAccess (.BasePlayer player, System.String ttype) [0x00000] in <filename unknown>:0
      at Oxide.Plugins.RemoverTool.TriggerRemove (.BasePlayer player, System.String[] args, System.String ttype) [0x00000] in <filename unknown>:0
      at Oxide.Plugins.RemoverTool.cmdChatRemove (.BasePlayer player, System.String command, System.String[] args) [0x00000] in <filename unknown>:0
      at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
      at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
     
  10. Wulf

    Wulf Community Admin

    It works fine, your data/oxide.users.json file is somehow corrupt though. Check it using www.jsonlint.com.
     
  11. Just noticed with Toolcupboard set to false and rust:IO: true, you can't remove deployables. Is there a way to fix this at all?

    I'm guessing this is since building owner doesn't account deployables?
     
  12. Hey Wulf, thanks for the reply.

    I have no idea what im doing with this so ive cleared the oxide.users.json to see if this would fix the issue. Got this when trying to use /remove
    Code:
    [Error] Failed to call hook 'cmdChatRemove' on plugin 'RemoverTool v2.2.18' (NullReferenceException: Object reference not set to an instance of an object)
    [Oxide] 9:22 AM [Debug]   at Oxide.Core.Libraries.Permission.GetUserData (System.String userid) [0x00000] in <filename unknown>:0
      at Oxide.Core.Libraries.Permission.UserHasPermission (System.String userid, System.String perm) [0x00000] in <filename unknown>:0
      at Oxide.Plugins.RemoverTool.hasAccess (.BasePlayer player, System.String ttype) [0x00000] in <filename unknown>:0
      at Oxide.Plugins.RemoverTool.TriggerRemove (.BasePlayer player, System.String[] args, System.String ttype) [0x00000] in <filename unknown>:0
      at Oxide.Plugins.RemoverTool.cmdChatRemove (.BasePlayer player, System.String command, System.String[] args) [0x00000] in <filename unknown>:0
      at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
      at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
     
    Last edited by a moderator: Aug 22, 2015
  13. Wulf

    Wulf Community Admin

    Did you shutdown your server and delete the file? Deleting it while the server is running won't do anything.
     
  14. Lol I just have people who crash when using /remove... without the GUI that's better but it's still some crashes.
     
  15. Impossible
     
  16. Would it be possible to maje a timeframe for the remover tool ?

    Like for exemple : remove tool allowed from 1am until 7pm and not usable then from 7pm until 1am ( and you can choose the hours ? )

    I would love that ! Thx
     
  17. I Will make a console command to change the permission level for the remover tool and Then you will have to use the timed executed plugin
     
  18. Ok reneb. Never used that timed executed plugin ( but maybe I will be able to use the programmed command of rust admin ( rcon ) ?

    As I said ( just to be precise ) One part of the day ( from 1am till 7pm : there is no raid allowed on the server : buildingprotector ) and therefore I let people use remove ( I set basic = 0 ).

    From 7pm till 1am, I change the remove.cfg Basic = 2 in order to only allow admins to use it. But players cannot anymore and I am sure they do not use it when raiding with cupboard tool control ;-)

    I am excited to read the change you make then on this ;-) Like this I will be able to go and sleep before the end of raid time ^^ ;-) Thx Reneb.
     
  19. Timed executed is to execute console commands when you want (time)
     
  20. Hey, sorry for not replying to this quicker, our server went down yesterday and they have only just fixed it!

    Yes i deleted it, with the server stopped, no luck.

    Strangely, when they restarted my server the users.cfg was clear so i was no longer admin but the remove tool was working. Since then I have enabled myself as admin again and now its not working.

    Update: I started with a new profile on the server, removed all admin rights, new map, no plugins etc and still not working.

    Reverted everything, reinstalled the plugin and still getting this error when I try and use the /remove command in game:
    Code:
    [Oxide] 7:39 PM [Error] Failed to call hook 'cmdChatRemove' on plugin 'RemoverTool v2.2.18' (NullReferenceException: Object reference not set to an instance of an object)
    [Oxide] 7:39 PM [Debug]   at Oxide.Core.Libraries.Permission.GetUserData (System.String userid) [0x00000] in <filename unknown>:0
      at Oxide.Core.Libraries.Permission.UserHasPermission (System.String userid, System.String perm) [0x00000] in <filename unknown>:0
      at Oxide.Plugins.RemoverTool.hasAccess (.BasePlayer player, System.String ttype) [0x00000] in <filename unknown>:0
      at Oxide.Plugins.RemoverTool.TriggerRemove (.BasePlayer player, System.String[] args, System.String ttype) [0x00000] in <filename unknown>:0
      at Oxide.Plugins.RemoverTool.cmdChatRemove (.BasePlayer player, System.String command, System.String[] args) [0x00000] in <filename unknown>:0
      at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
      at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
     
    Last edited by a moderator: Aug 23, 2015