public static bool ItemTool_StartUnsocketItem(OWItemSocket socket)
        {
            var socketId = QSBWorldSync.GetIdFromTypeSubset(ItemManager.GetObject(socket));

            QSBEventManager.FireEvent(EventNames.QSBSocketItem, socketId, 0, SocketEventType.StartUnsocket);
            return(true);
        }
        public static bool ItemTool_SocketItem(OWItem ____heldItem, OWItemSocket socket)
        {
            var socketId = QSBWorldSync.GetIdFromTypeSubset(ItemManager.GetObject(socket));
            var itemId   = QSBWorldSync.GetIdFromTypeSubset(ItemManager.GetObject(____heldItem));

            QSBEventManager.FireEvent(EventNames.QSBSocketItem, socketId, itemId, SocketEventType.Socket);
            return(true);
        }
        public static bool ItemTool_StartUnsocketItem(OWItemSocket socket)
        {
            var item = socket.GetSocketedItem().GetWorldObject <IQSBItem>();

            QSBPlayerManager.LocalPlayer.HeldItem = item;
            var socketId = socket.GetWorldObject <QSBItemSocket>().ObjectId;

            new SocketItemMessage(SocketMessageType.StartUnsocket, socketId).Send();
            return(true);
        }
        public static bool ItemTool_SocketItem(ItemTool __instance, OWItemSocket socket)
        {
            var qsbObj   = __instance._heldItem.GetWorldObject <IQSBItem>();
            var socketId = socket.GetWorldObject <QSBItemSocket>().ObjectId;
            var itemId   = qsbObj.ObjectId;

            QSBPlayerManager.LocalPlayer.HeldItem = null;
            new SocketItemMessage(SocketMessageType.Socket, socketId, itemId).Send();
            return(true);
        }